+ ) : (
+ <>
+
- {filteredGuards.length === 0 && !showOvertimeGuards && availableGuards && availableGuards.some(g => g.isAvailable && g.requiresOvertime) && (
-
- ℹ️ Alcune guardie disponibili richiedono straordinario. Clicca "Mostra Straordinario" per vederle.
-
- )}
- >
- );
- })()}
- >
- )}
- {availableGuards && availableGuards.length > 0 && selectedGuardId && (
-
- {(() => {
- const guard = availableGuards.find(g => g.guardId === selectedGuardId);
- if (!guard) return null;
- return (
- <>
-
- Ore assegnate: {guard.weeklyHoursAssigned}h / {guard.weeklyHoursMax}h (rimangono {guard.weeklyHoursRemaining}h)
+ ))
+ ) : (
+
+ {showOvertimeGuards
+ ? "Nessuna guardia disponibile"
+ : "Nessuna guardia con ore ordinarie (prova 'Mostra Straordinario')"}
+
+ )}
+
+
+ {filteredGuards.length === 0 && !showOvertimeGuards && hasOvertimeGuards && (
+
+ ℹ️ Alcune guardie disponibili richiedono straordinario. Clicca "Mostra Straordinario" per vederle.
- {guard.conflicts && guard.conflicts.length > 0 && (
-
- ⚠️ Conflitto: {guard.conflicts.map((c: any) =>
- `${c.siteName} (${new Date(c.from).toLocaleTimeString('it-IT', {hour: '2-digit', minute:'2-digit'})} - ${new Date(c.to).toLocaleTimeString('it-IT', {hour: '2-digit', minute:'2-digit'})})`
- ).join(", ")}
-
- )}
- {guard.unavailabilityReasons && guard.unavailabilityReasons.length > 0 && (
-
- {guard.unavailabilityReasons.join(", ")}
-
- )}
- >
- );
- })()}
+ )}
+ {filteredGuards.length > 0 && selectedGuardId && (
+
+ {(() => {
+ const guard = availableGuards?.find(g => g.guardId === selectedGuardId);
+ if (!guard) return null;
+ return (
+ <>
+
+ Ore ordinarie: {guard.ordinaryHoursRemaining}h / 40h disponibili
+ {guard.requiresOvertime && ` • Straordinario: ${guard.overtimeHoursRemaining}h / 8h`}
+
+
+ Ore assegnate: {guard.weeklyHoursAssigned}h / {guard.weeklyHoursMax}h (rimangono {guard.weeklyHoursRemaining}h)
+
+ {guard.nightHoursAssigned > 0 && (
+
+ Ore notturne: {guard.nightHoursAssigned}h / 48h settimanali
+
+ )}
+ {guard.hasRestViolation && (
+
+ ⚠️ Attenzione: riposo insufficiente dall'ultimo turno
+
+ )}
+ {guard.conflicts && guard.conflicts.length > 0 && (
+
+ ⚠️ Conflitto: {guard.conflicts.map((c: any) =>
+ `${c.siteName} (${new Date(c.from).toLocaleTimeString('it-IT', {hour: '2-digit', minute:'2-digit'})} - ${new Date(c.to).toLocaleTimeString('it-IT', {hour: '2-digit', minute:'2-digit'})})`
+ ).join(", ")}
+
+ )}
+ {guard.unavailabilityReasons && guard.unavailabilityReasons.length > 0 && (
+
+ {guard.unavailabilityReasons.join(", ")}
+
+ )}
+ >
+ );
+ })()}
+
+ )}
+ >
+ )}