Release storico UDC e picking list

This commit is contained in:
2026-06-03 11:41:25 +02:00
parent 4dabba8ce7
commit 742f6a9fe9
28 changed files with 2021 additions and 42 deletions

View File

@@ -0,0 +1,68 @@
# Specifica - Storico Picking List
## Obiettivo
La finestra "Storico Picking List" deve permettere di consultare le picking list visibili nel modello dati Python parallelo, comprese quelle gia' esaurite, mostrando lo stato sintetico della lista e il dettaglio delle UDC.
## Accesso
- La finestra si apre dal launcher principale tramite il pulsante "Storico Picking List".
- In una fase successiva potra' essere collegata alla form "Gestione Picking List" per aprire direttamente il dettaglio della lista selezionata.
- La finestra e' disponibile agli operatori autenticati secondo il permesso `launcher.open_history_pickinglist`.
## Comportamento UI
- La finestra usa lo stesso posizionamento delle altre form del backoffice.
- Tutte le interrogazioni al database sono asincrone.
- Durante il caricamento della lista e del dettaglio deve comparire l'overlay standard dell'applicazione.
- La parte alta mostra l'elenco delle picking list.
- La parte bassa mostra il dettaglio della picking list selezionata.
- Il filtro principale e' il numero documento, con ricerca parziale.
## Logica dati
La form usa un ramo di lettura storico Python separato dalle viste operative C#.
Oggetti SQL dedicati:
- `dbo.py_vPreparaPackingListSAMA1`
- `dbo.py_vPreparaPackingList`
- `dbo.py_XMag_ViewPackingListStorico`
Questi oggetti sono creati dallo script `apply_python_pickinglist_history_views.sql` e possono essere rimossi con `rollback_python_pickinglist_history_views.sql`.
La vista storica non usa `dbo.vPreparaPackingListSAMA1`, `dbo.vPreparaPackingList` o `dbo.XMag_ViewPackingList`, cosi' il programma C# continua a lavorare sul proprio ramo legacy.
La vista `dbo.py_vPreparaPackingListSAMA1` include:
- documenti dell'anno corrente: `BAMTES.ANNDOC >= YEAR(GETDATE())`
- documenti aperti e chiusi: `BAMTES.STATO IN ('P', 'D')`
- nessun filtro sugli ultimi 10 giorni
La lista alta aggrega per documento:
- data documento
- stato documento gestionale
- totale UDC
- righe residue
- righe spedite
- stato operativo
- stato prenotazione Python
Lo stato operativo e' calcolato cosi':
- `Chiusa`: il documento gestionale ha `BAMTES.STATO = 'D'`.
- `Da lavorare`: nessuna riga risulta spedita.
- `In corso`: almeno una riga risulta spedita e almeno una riga resta da lavorare.
- `Esaurita`: non restano righe operative.
Il criterio primario per riconoscere una picking list lavorata nello storico e' lo stato gestionale `BAMTES.STATO`.
La cella `9999 = 7G.1.1` resta un indizio logistico importante, ma non e' sufficiente come unico criterio storico perche' una UDC non piu' in giacenza puo' ricadere nei fallback della vista.
## Convenzioni operative
Una riga con `Cella = 9999` viene considerata spedita/prelevata, coerentemente con la convenzione `7G.1.1` osservata sul barcode.
## Limiti noti
Questa finestra e' una prima vista storica di consultazione. Non sostituisce ancora una vera storicizzazione annuale progettata a database. Quando il database verra' riprogettato per FlyWMS, sara' preferibile costruire una vista storica dedicata, con date di chiusura lista, utente, tempi e movimento UDC collegato.