Compare commits

...

3 Commits

Author SHA1 Message Date
Marco Lanzara
c8fa396c8f 🚀 Release v1.0.50
- Tipo: patch
- Database backup: database-backups/vigilanzaturni_v1.0.50_20251024_102610.sql.gz
- Data: 2025-10-24 10:26:29
2025-10-24 10:26:29 +00:00
marco370
5c8ebf7218 Add pages to view security guard shifts and client data
Implement new frontend pages for displaying guard shift schedules and client information.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: e0b5b11c-5b75-4389-8ea9-5f3cd9332f88
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80/e0b5b11c-5b75-4389-8ea9-5f3cd9332f88/rjLU1aT
2025-10-23 17:20:22 +00:00
marco370
fbc4f96a46 Improve service planning display and guard information retrieval
Updates the header text for the service planning page from "Visione Servizi" to "Planning di Servizio". Modifies the backend to retrieve and display guard names by concatenating first and last names, instead of using a single `fullName` field. Adjusts database query ordering for guards and patrol route stops, and refactors the `patrolRouteStops` join condition.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: e0b5b11c-5b75-4389-8ea9-5f3cd9332f88
Replit-Commit-Checkpoint-Type: intermediate_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80/e0b5b11c-5b75-4389-8ea9-5f3cd9332f88/rjLU1aT
2025-10-23 17:20:00 +00:00
5 changed files with 17 additions and 17 deletions

View File

@ -140,7 +140,7 @@ export default function ServicePlanning() {
{/* Header */} {/* Header */}
<div className="flex items-center justify-between"> <div className="flex items-center justify-between">
<div> <div>
<h1 className="text-3xl font-bold">Visione Servizi</h1> <h1 className="text-3xl font-bold">Planning di Servizio</h1>
<p className="text-muted-foreground"> <p className="text-muted-foreground">
Visualizza orari e dotazioni per agente fisso, agente mobile o per sito Visualizza orari e dotazioni per agente fisso, agente mobile o per sito
</p> </p>

View File

@ -1501,7 +1501,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
.select() .select()
.from(guards) .from(guards)
.where(eq(guards.location, location as any)) .where(eq(guards.location, location as any))
.orderBy(guards.fullName); .orderBy(guards.firstName, guards.lastName);
// Ottieni tutti i turni della settimana // Ottieni tutti i turni della settimana
const allWeekShifts = await db const allWeekShifts = await db
@ -1579,7 +1579,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
return { return {
guardId: guard.id, guardId: guard.id,
guardName: guard.fullName, guardName: `${guard.firstName} ${guard.lastName}`,
badgeNumber: guard.badgeNumber, badgeNumber: guard.badgeNumber,
shifts, shifts,
totalHours, totalHours,
@ -1616,7 +1616,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
.select() .select()
.from(guards) .from(guards)
.where(eq(guards.location, location as any)) .where(eq(guards.location, location as any))
.orderBy(guards.fullName); .orderBy(guards.firstName, guards.lastName);
// Ottieni tutte le patrol routes della settimana per la sede // Ottieni tutte le patrol routes della settimana per la sede
const weekRoutes = await db const weekRoutes = await db
@ -1646,7 +1646,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
}) })
.from(patrolRouteStops) .from(patrolRouteStops)
.innerJoin(sites, eq(patrolRouteStops.siteId, sites.id)) .innerJoin(sites, eq(patrolRouteStops.siteId, sites.id))
.where(eq(patrolRouteStops.routeId, routeData.route.id)) .where(eq(patrolRouteStops.patrolRouteId, routeData.route.id))
.orderBy(asc(patrolRouteStops.sequenceOrder)); .orderBy(asc(patrolRouteStops.sequenceOrder));
return { return {
@ -1680,7 +1680,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
return { return {
guardId: guard.id, guardId: guard.id,
guardName: guard.fullName, guardName: `${guard.firstName} ${guard.lastName}`,
badgeNumber: guard.badgeNumber, badgeNumber: guard.badgeNumber,
routes: guardRoutes, routes: guardRoutes,
totalRoutes, totalRoutes,
@ -1723,7 +1723,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
.select() .select()
.from(guards) .from(guards)
.where(eq(guards.location, location as any)) .where(eq(guards.location, location as any))
.orderBy(guards.fullName); .orderBy(guards.firstName, guards.lastName);
// Ottieni tutti i turni della settimana per la sede (con JOIN su sites per filtrare location) // Ottieni tutti i turni della settimana per la sede (con JOIN su sites per filtrare location)
const weekShifts = await db const weekShifts = await db
@ -1792,7 +1792,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
return { return {
guardId: guard.id, guardId: guard.id,
guardName: guard.fullName, guardName: `${guard.firstName} ${guard.lastName}`,
badgeNumber: guard.badgeNumber, badgeNumber: guard.badgeNumber,
shifts, shifts,
totalHours, totalHours,
@ -1961,7 +1961,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
.select() .select()
.from(guards) .from(guards)
.where(eq(guards.location, location as any)) .where(eq(guards.location, location as any))
.orderBy(guards.fullName); .orderBy(guards.firstName, guards.lastName);
// Ottieni tutti i turni del mese per la sede // Ottieni tutti i turni del mese per la sede
const monthShifts = await db const monthShifts = await db

View File

@ -1,7 +1,13 @@
{ {
"version": "1.0.49", "version": "1.0.50",
"lastUpdate": "2025-10-23T17:04:52.044Z", "lastUpdate": "2025-10-24T10:26:29.152Z",
"changelog": [ "changelog": [
{
"version": "1.0.50",
"date": "2025-10-24",
"type": "patch",
"description": "Deployment automatico v1.0.50"
},
{ {
"version": "1.0.49", "version": "1.0.49",
"date": "2025-10-23", "date": "2025-10-23",
@ -295,12 +301,6 @@
"date": "2025-10-17", "date": "2025-10-17",
"type": "patch", "type": "patch",
"description": "Deployment automatico v1.0.1" "description": "Deployment automatico v1.0.1"
},
{
"version": "1.0.0",
"date": "2025-01-17",
"type": "initial",
"description": "Versione iniziale VigilanzaTurni - Sistema completo gestione turni vigilanza"
} }
] ]
} }