Contratti¶
Un Contratto definisce le regole su cui si fondano i calcoli del tempo di lavoro per un lavoratore: orario settimanale, giorni di riposo, modalità di calcolo degli straordinari, periodo di quadratura. Si configura una sola volta per tipologia (es. Operatore FT, Part Time 30h, Stagionale) e poi si assegna ai lavoratori dalla guida Utenti.
La sezione Gestione contratti ospita anche tre liste accessorie — Orari di lavoro, Calendari e festività, Rotazione turni — che vengono assegnate al lavoratore dal dialog Modifica utente o richiamate nella pianificazione turni (vedi Turni).
| A cosa serve | Configurare i Contratti dell'organizzazione e i loro elementi accessori (orari, calendari, rotazioni) |
| Chi la usa | Proprietario · Super Manager |
| Dove la trovi | Impostazioni → Gestione contratti |
⚠️ Anche il Manager vi accede (verificato a video 15/08). In produzione il Manager ha la voce Gestione contratti nel menu ingranaggio e può aprire e modificare i contratti dell'organizzazione (lista completa + dialog con Salva attivo). I contratti sono configurazione di organizzazione: che un Manager possa scriverli rientra nel filone permessi Q109 (scritture org-level non ristrette a Proprietario/SM) — domanda al dev “è voluto?”, non un'indicazione operativa.
La schermata Gestione contratti¶
La schermata si apre sulla tab Contratti, una delle cinque tab che la compongono: Contratti, Orari di lavoro, Calendari e festività, Rotazione turni, Causali. Le ultime quattro contengono elementi accessori che il Contratto può richiamare; la tab Causali è documentata nella guida Richieste e giustificativi.
In alto a destra di ogni tab: il pulsante + per aggiungere un elemento e il campo di ricerca.

Tab Contratti — la lista¶
La lista mostra tutti i contratti dell'organizzazione, una riga per contratto.
Le colonne (etichette esatte a video) sono: Nome, Tipo (Tempo pieno, Part time, Stagionale, Chiamata), Giorni lavorativi, Min. settimana, Max. settimana (ore settimanali, es. 30 ore), Riposo giornaliero, Riposo settimanale (es. 11 ore / 24 ore), Max giornate annuali, Tag, Pausa.
💡 Prima colonna = ID stabile del contratto La prima colonna numerica non è un progressivo di riga ma l'ID stabile assegnato al contratto alla creazione. Riordinando la lista (es. per Ore settimanali max), i numeri non cambiano e restano attaccati al nome del contratto.
A destra di ogni riga: le icone ✏️ matita (apri Modifica) e 🗑️ cestino (elimina — vedi sezione "Eliminare contratti, orari, calendari e rotazioni").
💡 Tag — creati da HyWork, applicati da te I Tag sono etichette colorate (badge) per marcare contratti e rapporti di lavoro e per pilotare logiche/script personalizzati. L'anagrafica dei tag è gestita solo da HyWork (dal pannello di amministrazione): il cliente non crea i tag, li applica soltanto. Ogni tag ha un contesto fisso (non modificabile) che decide dove si applica: - Contratto → si applica alla definizione del contratto (qui, campo Tag del dialog); - Rapporto contrattuale → si applica al singolo rapporto di lavoro dell'utente (in Utenti → Posizione lavorativa → Nuovo Rapporto di Lavoro).
Nel selettore + Aggiungi tag vedi solo i tag del contesto giusto: nel dialog contratto compaiono solo i tag di contesto Contratto (se non ce ne sono → "Nessun tag disponibile"), nel rapporto di lavoro solo quelli di contesto Rapporto contrattuale. Scelto il tag → Conferma; il badge compare nella colonna Tag.
💡 A cosa serve un tag (esempio reale)
Un tag può fare da interruttore per uno script che scrive HyWork: lo script fillReports (generazione report) legge i tag. Es. il tag SenzaSoglia15min (contesto Rapporto contrattuale) dice a fillReports di non arrotondare ai 15 minuti la timbratura in ingresso per quel rapporto. Lo script è lato backend HyWork: non è configurabile dal pannello cliente.

⚠️ Colonna Pausa: visibile ma non editabile
La colonna Pausa è ancora presente e mostra sempre —: nel dialog Modifica Contratto non c'è un campo per valorizzarla. Le vecchie colonne Tolleranza in difetto e Tolleranza in eccesso sono invece state rimosse dalla lista.

Creare e modificare un Contratto¶
Per crearne uno nuovo, clicca + in alto a destra: si apre il dialog Crea Contratto. Per modificarne uno esistente, clicca la matita sulla sua riga: si apre il dialog Modifica Contratto precompilato con i valori salvati.
Il dialog ha due tab: Definizione (regole di calcolo del tempo di lavoro) e Contatori (set di regole agganciati al contratto). Il titolo del dialog riporta il nome del contratto in modifica (es. Modifica Contratto — Amministrazione BO PT30). I pulsanti in fondo sono Salva e Annulla.
Tab Definizione¶
Tre campi base in alto e tre fisarmoniche sotto.
| Campo | Cosa fa |
|---|---|
| Nome | Etichetta del contratto, visibile nella lista e nel dialog Modifica utente al momento dell'assegnazione. Obbligatorio |
| Tipo | Dropdown con quattro valori: Tempo pieno, Part time, Stagionale, Chiamata. Categorizza il contratto |
| Tag | Una o più etichette (badge colorati) scelte tra i tag disponibili creati da HyWork (contesto Contratto). Facoltativo — vedi callout Tag dei contratti sopra |

Fisarmonica Orario di lavoro¶
Definisce i parametri base del tempo di lavoro settimanale.
| Campo | Cosa fa |
|---|---|
| Giorni lavorativi (sett.) | Numero di giorni lavorati a settimana (es. 5, 6) |
| Min. settimana / Max. settimana | Range di ore settimanali consentite |
| Riposo giornaliero / Riposo settimanale | Ore minime di riposo richieste tra turni e tra settimane |
| Massimo giornate annuali | Numero massimo di giornate lavorabili nell'anno (label Massimo giornate annuali nel dialog ↔ header colonna lista Max giornate annuali, vedi Q43) |
HyWork ha una logica permissiva: se in pianificazione assegni un turno che viola un parametro contrattuale (es. ore in eccesso, riposo insufficiente), l'operazione viene comunque accettata e segnalata con un alert visibile in Turni.

Fisarmonica Calcolo¶
Configura come HyWork calcola straordinari e quadratura del periodo. Tre dropdown e un toggle.
| Campo | Cosa fa |
|---|---|
| Modalità di gestione degli straordinari | Tre valori: Manuale (Manager classifica le ore eccedenti), Automatico (calcolo automatico secondo regole), Disabilitato (nessuno straordinario, contratto forfettario) |
| Periodo calcolo quadratura | Tre valori: Orario, Giornaliero, Settimanale — definisce la finestra su cui si misura la conformità al contratto |
| Calcolo quadratura su | Contratto (ore previste dal contratto), Programmate (ore dei turni pianificati), Entrambe (delta per entrambe le basi) — base di confronto della quadratura |
| Spezza turni a cavallo della mezzanotte | Toggle: divide a mezzanotte i turni notturni che attraversano due giornate, separando le ore prima/dopo la mezzanotte |
💡 Quando si sceglie cosa per Modalità di gestione degli straordinari - Manuale: quando il Manager vuole controllo umano sulla classificazione, es. turni con ore eccedenti programmate. - Automatico: quando esistono regole replicabili e si vuole eliminare il lavoro manuale di classificazione. - Disabilitato: per contratti forfettari (Stagionale, Chiamata, alcuni Part time) dove non si distinguono ore ordinarie/straordinarie.
📝 Comportamento verificato a video (retest 18/06) — Cambiando Calcolo quadratura su sullo stesso lavoratore, il delta del Foglio presenze cambia base: Contratto → −45:00, Programmate → −00:15, Entrambe → mostra entrambe le righe. Il dropdown incide davvero sui calcoli. La task Q31.C resta comunque aperta su ClickUp, insieme alle altre domande sulla fisarmonica Calcolo (Q31.A/B/D).
⚠️ Modificare un contratto in uso ricalcola retroattivamente, senza avviso Modificare un contratto già assegnato a uno o più lavoratori ricalcola retroattivamente le quadrature dei periodi passati, senza alcun warning all'utente.

Fisarmonica Assenze¶
Un solo campo: Tipo di calcolo delle assenze, con due valori: - Contratto: la durata di un'assenza è calcolata sulle ore previste dal contratto per quella giornata - Turni: la durata è calcolata sulle ore dei turni pianificati per quella giornata
Il dettaglio dei calcoli effettivi sul Foglio presenze e l'interazione con i giustificativi sono documentati in Richieste e giustificativi.

Tab Contatori¶
Aggancia al contratto i set di regole dei contatori (es. ferie, permessi, banca ore). Si gestiscono dalla guida dedicata Contatori.
Una barra in alto riassume la gerarchia di priorità con cui HyWork applica le regole — per il dettaglio vedi Contatori.
💡 Messaggio "Nessun set disponibile" Cliccando + Aggiungi set di regole, se non ce ne sono disponibili (nessuno creato in Contatori, oppure tutti già collegati a questo contratto), compare il messaggio: "Nessun set disponibile — Tutti i set attivi risultano già collegati o non ce ne sono nell'organizzazione".

Salvare il dialog¶
In fondo al dialog: pulsante Salva e pulsante Annulla per chiudere senza salvare.
Tab Orari di lavoro¶
La tab elenca gli Orari di lavoro dell'organizzazione: template orari riutilizzabili (es. Lun-Ven 9-18, Mar-Sab turni), assegnati ai lavoratori dal dialog Modifica utente. È una sezione opzionale: si usa solo se servono orari fissi da agganciare ai lavoratori.
Per crearne uno nuovo, clicca + in alto a destra: si apre il dialog Aggiungi Orario di lavoro. Per modificarne uno esistente, clicca la matita sulla sua riga.
Il dialog ha questi campi:
| Campo | Cosa fa |
|---|---|
| Nome | Etichetta dell'orario. Obbligatorio |
| Giorni / Fasce orarie | Per ciascun giorno selezionato, una o più fasce di lavoro (vedi sotto) |
| Settimane di rotazione | Numero di settimane diverse in rotazione (es. settimana A vs settimana B). Vedi sotto |
Per salvare, clicca Aggiungi o Modifica.
Anche per gli Orari vale la logica permissiva: assegnare in pianificazione un turno fuori dall'orario configurato (giorno o fascia diversa) è consentito ma genera un alert in Turni.

Selettore ora¶
Ogni fascia è composta da inizio > fine, ciascuno nel formato Ora : Minuto con un'icona orologio. Cliccando il campo (o l'orologio) si apre un menu a due colonne — Ora (a sinistra) e Minuto (a destra) — in cui scorri e selezioni il valore; quello scelto è evidenziato in turchese. Selezionato l'orario, il menu si chiude.

Fasce orarie multiple e settimane di rotazione¶
Per aggiungere una fascia oraria allo stesso giorno (turni spezzati: es. 9-13 + 15-19), clicca il pulsante + accanto alla riga della fascia. Il 🗑️ cestino rimuove la fascia.
Per gestire rotazioni settimanali, espandi il pannello Settimane sulla sinistra del dialog. Ogni settimana ha una sua configurazione indipendente di giorni e fasce. Aggiungi una settimana col +, rimuovila col cestino. La Settimana 1 non è eliminabile (è la base di rotazione).
Copiare la configurazione di un giorno¶
Ogni giorno ha una barra di icone per riusare la sua configurazione oraria sugli altri giorni, senza reimpostarla a mano:
| Icona | Cosa fa |
|---|---|
| Copia | Copia le fasce orarie del giorno |
| Incolla | Incolla le fasce copiate sul giorno corrente |
| Applica a tutta la settimana | Riporta le fasce del giorno su tutti i giorni della settimana |
| Applica ai giorni | Apre il modal Applica ai giorni con le checkbox Lun-Dom: spunti i giorni su cui riportare la configurazione, poi confermi |
💡 Utile per orari uguali su più giorni (es. Lun-Ven 08:00-14:00): imposti un giorno, poi Applica ai giorni → spunti Lun-Ven.

Tab Calendari e festività¶
La tab elenca i Calendari di festività dell'organizzazione: per ciascun anno (range supportato 2021-2035), si configurano quali giorni del calendario sono festivi e/o non lavorativi. Sezione opzionale, utile per gestire festività diverse fra sedi (es. patrono di Bologna ≠ Milano).
Per crearne uno nuovo, clicca +: si apre il dialog Calendario e festività. Per modificarne uno, clicca la matita.
Struttura del dialog¶
Il dialog si articola su due livelli:
-
Dialog principale — campo Nome + pannello anni a sinistra + 12 campi mensili compatti a destra. Ogni campo mensile mostra il numero di giorni lavorativi residui del mese (es. Gennaio 25 = 25 giorni lavorativi su 31 totali, dopo aver sottratto domeniche e festività italiane standard ticcate come non lavorative). Cliccando l'icona 📅 di un mese si apre il sotto-dialog di dettaglio.
-
Sotto-dialog grid mensile — grid Lun-Dom con tutti i giorni del mese. In alto una legenda: FESTIVO (cella turchese) e Non lavorativo. Ogni giorno ha un pulsante Non lavorativo con stato ✓ (attivo) o — (non attivo). Pulsanti Annulla / Applica in basso (non Salva: il sotto-dialog applica al dialog principale, il salvataggio definitivo è del dialog principale).
Per gestire più anni sullo stesso calendario, clicca + Aggiungi anno in alto a sinistra (pannello Seleziona l'anno).
Sezione "giorni non lavorativi della settimana"¶
Nel dialog principale, sotto i 12 campi mensili, c'è la sezione "Seleziona i giorni non lavorativi della settimana" con i toggle LUN-DOM: spunti i giorni ricorrentemente non lavorativi (es. Sabato e Domenica) e valgono per tutto l'anno, senza marcarli mese per mese.
Gli stati di ogni giorno + legenda¶
Nel grid mensile ogni giorno combina due cose: lo sfondo turchese = festivo (festività riconosciuta in automatico) e il toggle Non lavorativo (✓ / —). Per marcare un giorno come non lavorativo si preme il suo pulsante Non lavorativo nella cella.


Tab Rotazione turni¶
La tab elenca le Rotazioni di turni: sequenze cicliche di Modelli di Turno (es. M-M-M-M-M-R-R-P-P-P-P-P-R-R) che HyWork applica in modo ripetitivo al lavoratore in pianificazione. Sezione opzionale, utile per pattern fissi di lavoro su più giorni o settimane (vedi Turni per come la rotazione si applica in pianificazione).
Per crearne una nuova, clicca + in alto a destra. Per modificarne una esistente, clicca la matita: si apre il dialog Modifica Rotazione turni.
Struttura del dialog Modifica Rotazione turni¶
Il dialog ha:
- Nome della rotazione (obbligatorio, in alto).
- Griglia di slot giornalieri raggruppati per settimana (Settimana 1 = Giorno 1-7, Settimana 2 = Giorno 8-14, e così via): Giorno 1 … Giorno 49 (massimo 49 giorni = 7 settimane). Ogni settimana ha un'icona copia per duplicarne la configurazione.
Ogni slot rappresenta un giorno del ciclo di rotazione e può essere:
- Compilato con un Modello di Turno — lo slot mostra fascia oraria (es. 08:00–16:30), codice modello (es. CS-M1) e qualifica/spazio del modello.
- Vuoto — etichetta Vuoto. Equivale a un giorno di riposo nel ciclo.
Per assegnare un modello a uno slot, clicca + sullo slot: si apre il dialog Quale Modello di Turno? (vedi sotto). Una volta scelto, lo slot viene compilato.
Pulsanti in basso: Annulla (esce senza salvare) e Salva. Il campo nome è etichettato Nome (italiano).
⚠️ Massimo 49 giorni (7 settimane) La rotazione supporta fino a 49 giorni. Se serve un pattern più lungo, non è configurabile da UI.
⚠️ I turni generati da una rotazione non restano legati alla rotazione Una volta applicata a calendario, i turni creati da una rotazione non mantengono il collegamento con la rotazione di origine. Di conseguenza, eliminando o modificando la rotazione non scatta alcun blocco né avviso "in uso": i turni già a calendario restano e vanno gestiti a mano.
Dialog "Quale Modello di Turno?"¶
Cliccando + su uno slot della griglia rotazione si apre il dialog Quale Modello di Turno?. In alto ci sono delle tab di filtro per qualifica (es. Addetto Amministrazione, Customer & Admin Manager, Customer Support, Operations Manager, Operatore FT, Operatore PT30): selezionandone una la lista mostra solo i modelli di quella qualifica. Ogni riga mostra: fascia oraria, spazio, codice/nome del modello, qualifica.
In fondo alla lista c'è il riquadro "Ti serve un turno diverso? Crea qui il tuo turno" con pulsante + che apre la creazione di un nuovo Modello di Turno senza uscire dal flusso rotazione.
⚠️ Rotazioni con qualifiche miste → avviso Se una rotazione contiene modelli di turno di qualifiche diverse, il dialog mostra l'avviso "Ci sono modelli di turno con diverse qualifiche". Non è un blocco: la rotazione mista è permessa, ma segnalata.


Causali¶
La tab Causali raccoglie le motivazioni di assenza usate nelle richieste (es. Ferie, Malattia, ROL). La gestione completa delle causali, dei giustificativi e del flusso di approvazione è documentata nella guida Richieste e giustificativi.
Eliminare contratti, orari, calendari e rotazioni¶
In tutte le tab di Gestione contratti, l'icona 🗑️ cestino sulla riga apre un dialog di conferma. Confermando, l'elemento viene eliminato definitivamente (breve overlay di caricamento).
A differenza di Spazi di lavoro, Reparti e Qualifiche (vedi Spazi di lavoro, Reparti, Qualifiche) — dove l'archiviazione è reversibile e gli elementi finiscono in una tab Archiviati — qui non c'è recupero: il dato viene cancellato dal sistema.
⚠️ Un elemento in uso NON si può eliminare (blocco) Se provi a eliminare un Contratto, un Orario di lavoro o un Calendario ancora assegnato a dei lavoratori, l'operazione viene bloccata: compare un dialog di errore con l'elenco degli utenti collegati. Prima devi rimuovere l'elemento da quei lavoratori (dalla guida Utenti). - Contratto → titolo "Impossibile eliminare il contratto", corpo "The contract is still linked to active users." - Orario → titolo "Impossibile eliminare l'orario di lavoro", corpo "The working hours profile is still assigned to active users." - Calendario → titolo "Impossibile eliminare il calendario lavorativo", corpo "The working calendar is still assigned to active users."
⚠️ Corpo del messaggio ancora in inglese Nei dialog di blocco il titolo è in italiano ma il corpo del messaggio è in inglese (vedi virgolette sopra). Bug di localizzazione noto.
💡 La Rotazione turni fa eccezione: si elimina sempre La Rotazione turni non ha il blocco "in uso": eliminandola compare solo il dialog di conferma standard "Sicuro? Continua per eliminare la rotazione turni selezionata". Questo conferma che i turni generati da una rotazione non restano legati ad essa.
⚠️ Bug wording: dialog eliminazione Causali Nel dialog di eliminazione di una Causale (tab Causali) il testo dice "Continua per eliminare il giustificativo selezionato" invece di "…la causale selezionata". Wording errato.
Problemi comuni¶
| Problema | Causa | Soluzione |
|---|---|---|
| Ho creato un Contratto ma non lo vedo nelle quadrature di un lavoratore | Il contratto non è ancora stato assegnato | Vai nella guida Utenti, apri il dialog del lavoratore e assegnagli il contratto |
| Modifico un campo del Contratto e le ore lavorate del mese scorso cambiano da sole | I parametri si applicano retroattivamente alle quadrature già calcolate (bug noto Q31.E) | Prima di modificare un contratto in uso, valuta l'impatto sui dati storici; valuta se serve creare un nuovo contratto e riassegnarlo |
| Provo a eliminare un contratto/orario/calendario e mi esce "Impossibile eliminare…" | L'elemento è ancora assegnato a dei lavoratori → l'eliminazione è bloccata (Q1) | Rimuovi prima l'elemento dai lavoratori elencati nel dialog (dalla guida Utenti), poi rielimina |
| Nella lista vedo la colonna Pausa ma è sempre "—" | La colonna è visibile ma non ha un campo per valorizzarla (Q31.G aperto) | Per ora resta vuota, è un comportamento noto |
| Ho eliminato un orario/calendario/rotazione non in uso e voglio recuperarlo | In Gestione contratti il cestino elimina, non archivia: non c'è tab Archiviati | Il dato è perso, va ricreato. Vedi sezione "Eliminare contratti, orari, calendari e rotazioni" sopra |