You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Attività: data di fine precedente all'inizio genera ore positive #1910
Nelle Attività è possibile impostare una data/ora di fine precedente a quella di inizio. Il sistema mostra un avviso, ma calcola comunque un numero di ore positivo e non impedisce il salvataggio.
Come riprodurre
Impostare Inizio: 02/09/2026 14:30
Impostare Fine: 27/08/2026 18:30
Il campo Ore riporta 140,000
Comportamento atteso
La data/ora di fine non deve poter precedere quella di inizio. Il sistema dovrebbe bloccare il salvataggio e mostrare un messaggio di validazione chiaro.
Ciao @sajotrei, ho fatto delle prove sia nella versione master sia 2.10.4 ma non trovo riscontro con quanto dichiarato. Quando imposto l'orario di fine, la data d'inizio cambia automaticamente e coincide con quella di fine. Il problema capita in attività particolari o in tutte?
Ciao @vschivo13, ho verificato meglio il comportamento sulla 2.10.4.
Confermo che dalla normale modifica della sessione il JavaScript tende a riallineare automaticamente le date, come hai riscontrato.
Il problema però rimane lato backend: in modules/interventi/src/Components/Sessione.php il calcolo delle ore usa DateTime::diff() senza verificare prima che orario_fine sia successivo a orario_inizio.
Inoltre in actions.php, nei percorsi edit_sessione, update_inline_sessione e add_sessione, non vedo una validazione server-side che impedisca il salvataggio di un intervallo non valido.
Direi quindi che la regola dovrebbe essere verificata anche lato PHP:
orario_fine > orario_inizio
In questo modo verrebbero bloccate sia le sessioni con fine precedente all'inizio, sia quelle con durata pari a zero.
Se può essere utile posso preparare una PR con la correzione, più tardi ci provo
Abbiamo preparato un fix per questo problema e inviato una pull request.
In pratica, quando si salvava una sessione di lavoro con la data e ora di fine messa prima di quella di inizio, il programma mostrava un avviso ma poi salvava comunque un numero di ore positivo. Con la modifica, il salvataggio viene ora bloccato dal server e compare un messaggio chiaro che segnala l'errore, così non è più possibile salvare un intervallo di date sbagliato.
Activity
vschivo13 commentedon Sep 7, 2026
Ciao @sajotrei, ho fatto delle prove sia nella versione master sia 2.10.4 ma non trovo riscontro con quanto dichiarato. Quando imposto l'orario di fine, la data d'inizio cambia automaticamente e coincide con quella di fine. Il problema capita in attività particolari o in tutte?
sajotrei commentedon Sep 26, 2026
Ciao @vschivo13, ho verificato meglio il comportamento sulla 2.10.4.
Confermo che dalla normale modifica della sessione il JavaScript tende a riallineare automaticamente le date, come hai riscontrato.
Il problema però rimane lato backend: in
modules/interventi/src/Components/Sessione.phpil calcolo delle ore usaDateTime::diff()senza verificare prima cheorario_finesia successivo aorario_inizio.Inoltre in
actions.php, nei percorsiedit_sessione,update_inline_sessioneeadd_sessione, non vedo una validazione server-side che impedisca il salvataggio di un intervallo non valido.Direi quindi che la regola dovrebbe essere verificata anche lato PHP:
orario_fine > orario_inizioIn questo modo verrebbero bloccate sia le sessioni con fine precedente all'inizio, sia quelle con durata pari a zero.
Se può essere utile posso preparare una PR con la correzione, più tardi ci provo
Andrea-Bruno commentedon Oct 15, 2026
Abbiamo preparato un fix per questo problema e inviato una pull request.
In pratica, quando si salvava una sessione di lavoro con la data e ora di fine messa prima di quella di inizio, il programma mostrava un avviso ma poi salvava comunque un numero di ore positivo. Con la modifica, il salvataggio viene ora bloccato dal server e compare un messaggio chiaro che segnala l'errore, così non è più possibile salvare un intervallo di date sbagliato.
La pull request con la modifica è qui: #1931
sajotrei commentedon Oct 15, 2026
ciao @Andrea-Bruno
grazie per il riscontro
avevo pubblicato la PR fix: valida la durata delle sessioni attività #1919 che risolveva il problema.