Skip to content

Attività: data di fine precedente all'inizio genera ore positive #1910

Open

Description

@sajotrei

Descrizione

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

  1. Impostare Inizio: 02/09/2026 14:30
  2. Impostare Fine: 27/08/2026 18:30
  3. 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.

Versione: OpenSTAManager 2.10.4

Image

Activity

  1. vschivo13 commented on Sep 7, 2026

    @vschivo13
    Contributor

    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?

  2. sajotrei commented on Sep 26, 2026

    @sajotrei
    ContributorAuthor

    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

  3. Andrea-Bruno commented on Oct 15, 2026

    @Andrea-Bruno

    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

  4. sajotrei commented on Oct 15, 2026

    @sajotrei
    ContributorAuthor

    ciao @Andrea-Bruno
    grazie per il riscontro
    avevo pubblicato la PR fix: valida la durata delle sessioni attività #1919 che risolveva il problema.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions