# Turni Il sistema utilizza un'architettura a tre livelli: - **TURNI**: template che definiscono orari standard con relative pause - **PROGRAMMAZIONI**: regole che stabiliscono quando e con quale ricorrenza applicare i turni - **PIANIFICAZIONI**: assegnazioni concrete a operatori specifici su date specifiche Questo approccio permette di: - Modificare gli orari una sola volta applicandoli a tutte le programmazioni - Definire schemi ricorrenti complessi - Tracciare lo stato del turno assegnato all'operatore (programmato, in corso, completato, assente) ## Turni La creazione di un turno avviene cliccando sul tasto **"Nuovo"** e compilando i seguenti campi: ![nuovo](nuovoturno.png) **Campi Obbligatori** - **Nome**: Identificativo del turno (es: "Turno di mattina", "Turno di notte") - **Ora Inizio**: orario di inizio del turno - **Ora Fine**: orario di fine del turno **Campi Opzionali** - **Inizio pausa**: orario di inizio della pausa - **Fine pausa**: orario di fine della pausa Per **eliminare** un turno: 1. Selezionare il turno dalla lista 2. Cliccare sul pulsante **"Elimina"** Una volta salvato il turno, il sistema calcola automaticamente: - **Durata turno**: durata turno - durata pausa (tempo lavorativo effettivo in ore) - **Durata pausa**: tempo di pausa (in minuti) ## Programmazione Dopo aver creato il turno, è necessario creare una **programmazione** che definisce: - Quando e come il turno deve essere applicato (ricorrenza) - Per quale periodo (date inizio/fine) - Quanti operatori servono (opzionale) Cliccare su **"+ Aggiungi programmazione"** per procedere. ![programmazione](nuovaprogrammazione.png) **Informazioni Base**: - **Nome**: identificativo della programmazione (es: "Turno - Reparto/Cantiere") - **Data Inizio**: data di inizio validità della programmazione - **Data Fine**: data di fine validità (se vuota, la programmazione è indefinita) **Gestione Operatori** (Opzionale): - **Numero minimo di operatori**: numero minimo di operatori richiesti per questo turno (default: 1) - **Numero massimo di operatori**: numero massimo di operatori assegnabili a questo turno **Tipo di Ricorrenza**: Definisce **quanto spesso** il turno deve ripetersi: - **Giornaliera**: il turno si ripete ogni giorno - **Settimanale**: il turno si ripete in specifici giorni della settimana - **Mensile**: il turno si ripete in specifici giorni del mese - **Personalizzata**: regole di ricorrenza avanzate **Regole di Ricorrenza** (Sezione Gialla) Questa sezione permette di configurare **in dettaglio** come il turno deve ripetersi: - **Intervallo**: ogni quanto il turno si ripete: **Esempio**: - Intervallo = 1 → ogni giorno, ogni settimana - Intervallo = 2 → a giorni alterni, a settimane alternate - Intervallo = 3 → ogni 3 giorni, ogni 3 settimane - **Giorni Settimana** *(solo per ricorrenza Settimanale)*: seleziona i giorni della settimana in cui applicare il turno **Esempio**: Lun-Ven per turni feriali - **Mesi dell'anno**: limita la programmazione a specifici mesi **Esempio**: Dicembre, Gennaio, Febbraio (stagione invernale) - **Date Escluse**: date specifiche da **escludere** dalla programmazione. Cliccare sull'icona calendario per aggiungere date. **Esempio**: 25 Dicembre, 1 Gennaio (festività) - **Date Incluse**: date specifiche da **includere forzatamente** nella programmazione. Cliccare sull'icona calendario per aggiungere date - **Esempio**: 24 Dicembre, 6 Gennaio (giorni lavorativi eccezionali) **Esempi Pratici:** - Esempio 1: Turno di Mattina dal Lunedì al Venerdì - **Tipo Ricorrenza**: Settimanale - **Intervallo**: 1 - **Giorni Settimana**: Lun, Mar, Mer, Gio, Ven - **Date Escluse**: Festività aziendali --- - Esempio 2: Turno Notturno a Settimane Alterne - **Tipo Ricorrenza**: Settimanale - **Intervallo**: 2 - **Giorni Settimana**: Tutti i giorni --- - Esempio 3: Elaborazione Paghe - **Nome**: Elaborazione Paghe - **Template**: Turno Ufficio (09:00-18:00) - **Tipo Ricorrenza**: Mensile - **Periodo**: 01/01/2025 → 31/12/2025 - **Operatori**: min 3, max 5 - **Ricorrenza**: - Giorni del mese: 1, 15 - Intervallo: 1 (ogni mese) --- - Esempio 4: Estate - Lun/Mer/Ven - **Nome**: Estate - Lun/Mer/Ven - **Template**: Turno Part-Time (08:00-13:00) - **Tipo Ricorrenza**: Personalizzata - **Periodo**: 01/06/2025 → 31/08/2025 - **Operatori**: min 2, max 3 - **Ricorrenza**: - Giorni: Lunedì, Mercoledì, Venerdì - Mesi: Giugno, Luglio, Agosto - Date Escluse: 15/08/2025 (Ferragosto) ## Pianificazione La pianificazione permette di assegnare gli operatori ai turni programmati tramite un'interfaccia **drag & drop** (trascina e rilascia). **Struttura** - Lista operatori sul lato sinistro - Lista turni validi nel periodo selezionato sul lato destro Ogni turno mostra: - Nome del turno e orario (es: "Turno di mattina - reparto 1, Orario: 06:00 - 14:00") - Indicatore operatori: "6 / 7" (6 operatori assegnati su un massimo di 7) - Barra di avanzamento degli operatori aggiunti: Min 1 - Max 7 - Elenco operatori già assegnati (sfondo giallo) N.B. l'indicatore degli operatori e la barra di avanzamento sono visualizzati solo nel caso in cui ci sia un numero massimo di operatori **Come assegnare un operatore**: 1. **Seleziona** l'operatore dalla lista di sinistra 2. **Trascina** (drag) l'operatore sul turno desiderato 3. **Rilascia** (drop) per confermare l'assegnazione 4. L'operatore apparirà nel turno con sfondo bianco **Come rimuovere un operatore da un turno**: 1. **Seleziona** l'operatore dal turno (sfondo giallo) 2. **Trascina** l'operatore verso la lista operatori di sinistra 3. **Rilascia** nella lista operatori 4. L'operatore tornerà disponibile nella lista 5. Cliccare **Salva** per confermare Per ogni modifica effettuato in alto apparirà la scritta "Modifiche non salvate" fino al salvataggio ![pianificazione](pianificazione.png) È possibile pianificare gli operatori per diversi periodi temporali: | Modalità | Periodo Coperto | |----------|-----------------| | **Settimanale** | Dal lunedì alla domenica della settimana selezionata | | **Mensile** | Mese selezionato | | **Annuale** | Anno selezionato | | **Intervallo personalizzato** | Periodo definito dall'utente | **Navigazione**: Utilizzare le frecce "◄" e "►" per spostarsi tra i periodi **Banner Giallo di Avviso**: Se esistono turni già pianificati per il periodo selezionato, il sistema mostra un banner giallo: > ⚠️ **Giorni con pianificazione esistente** > > Dal xx/xx/xxxx al xx/xx/xxxx sono già stati assegnati turni settimanali. I turni assegnati parzialmente o completamente sono evidenziati in giallo. Infatti quando si **cambia il tipo di pianificazione** (es: da settimanale a mensile, o da mensile ad annuale), il sistema rileva eventuali conflitti con pianificazioni esistenti. **Scenario tipico**: 1. Hai pianificato turni in modalità **Settimanale** 2. Passi alla modalità **Mensile** o **Annuale** 3. Il sistema mostra il banner di avviso **Salva**: salva le modifiche solo per l'intervallo selezionato Oltre alla vista di pianificazione principale, il sistema offre una **vista calendario mensile** per ogni operatore, che permette di visualizzare in modo chiaro tutti i turni assegnati nel mese. 1. Cliccare sull'**icona calendario** accanto al nome dell'operatore nella lista 2. Si aprirà una finestra modale con il calendario mensile dell'operatore I giorni in cui l'operatore ha dei turni assegnati sono evidenziati in giallo e mostrano: - **Nome del turno** - **Orario**: HH:MM - HH:MM (es: 06:00 - 14:00) ## Calendario Il **Calendario** offre una vista d'insieme completa di tutti gli operatori e dei loro turni, permettendo di monitorare la pianificazione settimanale e lo stato di avanzamento dei turni. **Struttura**: - A Sinistra: elenco completo dei dipendenti - A destra: una colonna per ogni giorno della settimana Ogni turno assegnato viene visualizzato come un **badge colorato** con le seguenti informazioni: - **Nome del turno** (es: "Turno di mattina - reparto 1") - **Orario**: HH:MM - HH:MM (es: 06:00 - 14:00) Il sistema utilizza **colori diversi** per indicare lo stato del turno o eventuali assenze ![calendario](calendario.png)