Compare commits

...

2 Commits

Author SHA1 Message Date
Marco Lanzara
54d0048d5d 🚀 Release v1.0.17
- Tipo: patch
- Database backup: database-backups/vigilanzaturni_v1.0.17_20251017_154110.sql.gz
- Data: 2025-10-17 15:41:26
2025-10-17 15:41:26 +00:00
marco370
19ffe5931b Filter sites by contract validity to accurately reflect coverage
Refine site filtering in route registration to include only sites with valid contracts for the selected date, updating coverage calculations and total site counts accordingly.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: e5565357-90e1-419f-b9a8-6ee8394636df
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/6d543d2c-20b9-4ea6-93fe-70fe9b1d9f80/e5565357-90e1-419f-b9a8-6ee8394636df/FlO7tHX
2025-10-17 15:35:37 +00:00
4 changed files with 32 additions and 5 deletions

View File

@ -669,6 +669,27 @@ export async function registerRoutes(app: Express): Promise<Server> {
.from(sites)
.where(eq(sites.isActive, true));
// Filtra siti con contratto valido per la data selezionata
const sitesWithValidContract = allSites.filter((site: any) => {
// Se il sito non ha date contrattuali, lo escludiamo
if (!site.contractStartDate || !site.contractEndDate) {
return false;
}
// Normalizza date per confronto day-only
const selectedDate = new Date(dateStr);
selectedDate.setHours(0, 0, 0, 0);
const contractStart = new Date(site.contractStartDate);
contractStart.setHours(0, 0, 0, 0);
const contractEnd = new Date(site.contractEndDate);
contractEnd.setHours(23, 59, 59, 999);
// Verifica che la data selezionata sia dentro il periodo contrattuale
return selectedDate >= contractStart && selectedDate <= contractEnd;
});
// Ottieni turni del giorno con assegnazioni
const dayShifts = await db
.select({
@ -686,8 +707,8 @@ export async function registerRoutes(app: Express): Promise<Server> {
)
.groupBy(shifts.id);
// Calcola copertura per ogni sito
const sitesWithCoverage = allSites.map((site: any) => {
// Calcola copertura per ogni sito con contratto valido
const sitesWithCoverage = sitesWithValidContract.map((site: any) => {
const siteShifts = dayShifts.filter((s: any) => s.shift.siteId === site.id);
// Verifica copertura per ogni turno
@ -736,7 +757,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
res.json({
date: dateStr,
uncoveredSites: sortedUncoveredSites,
totalSites: allSites.length,
totalSites: sitesWithValidContract.length,
totalUncovered: uncoveredSites.length
});
} catch (error) {

View File

@ -1,7 +1,13 @@
{
"version": "1.0.16",
"lastUpdate": "2025-10-17T15:19:44.130Z",
"version": "1.0.17",
"lastUpdate": "2025-10-17T15:41:26.844Z",
"changelog": [
{
"version": "1.0.17",
"date": "2025-10-17",
"type": "patch",
"description": "Deployment automatico v1.0.17"
},
{
"version": "1.0.16",
"date": "2025-10-17",