Compare commits
2 Commits
9d33dbfa22
...
54d0048d5d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
54d0048d5d | ||
|
|
19ffe5931b |
BIN
database-backups/vigilanzaturni_v1.0.17_20251017_154110.sql.gz
Normal file
BIN
database-backups/vigilanzaturni_v1.0.17_20251017_154110.sql.gz
Normal file
Binary file not shown.
Binary file not shown.
@ -669,6 +669,27 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
.from(sites)
|
.from(sites)
|
||||||
.where(eq(sites.isActive, true));
|
.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
|
// Ottieni turni del giorno con assegnazioni
|
||||||
const dayShifts = await db
|
const dayShifts = await db
|
||||||
.select({
|
.select({
|
||||||
@ -686,8 +707,8 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
)
|
)
|
||||||
.groupBy(shifts.id);
|
.groupBy(shifts.id);
|
||||||
|
|
||||||
// Calcola copertura per ogni sito
|
// Calcola copertura per ogni sito con contratto valido
|
||||||
const sitesWithCoverage = allSites.map((site: any) => {
|
const sitesWithCoverage = sitesWithValidContract.map((site: any) => {
|
||||||
const siteShifts = dayShifts.filter((s: any) => s.shift.siteId === site.id);
|
const siteShifts = dayShifts.filter((s: any) => s.shift.siteId === site.id);
|
||||||
|
|
||||||
// Verifica copertura per ogni turno
|
// Verifica copertura per ogni turno
|
||||||
@ -736,7 +757,7 @@ export async function registerRoutes(app: Express): Promise<Server> {
|
|||||||
res.json({
|
res.json({
|
||||||
date: dateStr,
|
date: dateStr,
|
||||||
uncoveredSites: sortedUncoveredSites,
|
uncoveredSites: sortedUncoveredSites,
|
||||||
totalSites: allSites.length,
|
totalSites: sitesWithValidContract.length,
|
||||||
totalUncovered: uncoveredSites.length
|
totalUncovered: uncoveredSites.length
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
10
version.json
10
version.json
@ -1,7 +1,13 @@
|
|||||||
{
|
{
|
||||||
"version": "1.0.16",
|
"version": "1.0.17",
|
||||||
"lastUpdate": "2025-10-17T15:19:44.130Z",
|
"lastUpdate": "2025-10-17T15:41:26.844Z",
|
||||||
"changelog": [
|
"changelog": [
|
||||||
|
{
|
||||||
|
"version": "1.0.17",
|
||||||
|
"date": "2025-10-17",
|
||||||
|
"type": "patch",
|
||||||
|
"description": "Deployment automatico v1.0.17"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "1.0.16",
|
"version": "1.0.16",
|
||||||
"date": "2025-10-17",
|
"date": "2025-10-17",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user