Form straordinari
Il Form straordinari (/dashboard/overtime) consente di richiedere ore di straordinario per sé o per uno o più collaboratori, su un progetto specifico.
Esperienza utente
Campi principali
| Campo | Note |
|---|---|
| Modalità richiesta | "Per me stesso" oppure "Per uno o più collaboratori" |
| Progetto | Select da progetti assegnati |
| Collaboratori | Multi-select (solo in modalità multi) |
| Data | Non precedente a oggi |
| Ora inizio / fine | Calcolo automatico ore totali |
| Tipo straordinario | Feriale, Notturno, Festivo, Domenicale, Reperibilità/Intervento |
| Luogo di lavoro | On-site, Remoto, Cliente |
| Descrizione attività | Testo libero |
Flusso
- Scelta modalità e progetto
- Se multi-collaboratore: caricamento lista persone del progetto
- Compilazione orari e dettagli
- Invio → conferma successo
Chi può accedere
Tutti gli utenti autorizzati.
Dettaglio tecnico
Caricamento collaboratori
Il set di persone selezionabili dipende dal progetto:
| Progetto | Fonte persone |
|---|---|
| Paradigma Processi | PeopleService.getAllUsers() — tutta l'anagrafica |
| Altri progetti | ProjectService.getProjectById() — solo membri del progetto |
Validazione orari
timeRangeValidator custom verifica coerenza inizio/fine. sumHours è calcolato automaticamente dai campi ora.
Integrazione Zapier
ZapierService.sendOvertimeToZapier() → stesso endpoint Zapier su Lambda people (/v1/persons/zapier).
Form dinamico
showRequestModeMultiple signal attiva/disattiva il controllo multi-select collaboratori in base alla modalità scelta (setupFormSubscriptions).
File principali
| File | Ruolo |
|---|---|
src/pages/overtime-form/overtime-form.component.ts |
Form, validazione, submit |
src/services/zapier.service.ts |
Invio |
src/services/project.service.ts |
Membri progetto |
src/models/zapier.ts |
OvertimeData |