Milestone ultima alpha

This commit is contained in:
2026-05-22 14:25:09 +02:00
parent 8489cd7459
commit a5e704c214
25 changed files with 3896 additions and 273 deletions

115
diagramma_scarico_udc.md Normal file
View File

@@ -0,0 +1,115 @@
# Diagramma Operativo - Scarico UDC / Prelievo
## Obiettivo
Prelevare una UDC dal magazzino e scaricarla verso la cella virtuale `9000000`.
## Nota importante
Dal codice C# emergono **due sottocasi diversi**:
- `scarico picking list`
- parte da `F1` o `F2`
- valida il pallet atteso della coda
- `scarico diretto`
- parte dal pulsante `F4 Elimina`
- non richiede una picking list prenotata
Questo diagramma descrive il **primo scarico UDC diretto**, cioe' il prelievo senza navigazione picking list.
## Stato iniziale del barcode
- form aperta
- nessuna operazione pendente
- focus sul campo `Pallet`
- prima label di stato neutra o grigia
- campo `Cella` non significativo finche' non si entra nel comando
## Come si entra nello stato iniziale dello scarico
Dal comportamento C# la strada piu' fedele e':
1. l'operatore preme `F4`
2. la form entra in modalita' scarico diretto
3. la prima label deve indicare:
- `OP Scarico`
4. il campo `Cella` viene preimpostato a:
- `9000000`
5. il focus va sul campo `Pallet`
## Stato operativo durante lo scarico
- `Pallet` = da leggere
- `Cella` = `9000000`
- focus sul campo `Pallet`
- label 1 grigia con:
- `OP Scarico`
## Sequenza operativa
```mermaid
flowchart TD
A["Stato neutro"] --> B["Operatore preme F4"]
B --> C["Form entra in OP Scarico"]
C --> D["Cella preimpostata a 9000000"]
D --> E["Focus sul campo Pallet"]
E --> F["Operatore legge barcode pallet"]
F --> G{"Invio automatico del lettore o Enter manuale"}
G --> H["Esecuzione stored sp_xMagGestioneMagazziniPallet"]
H --> I{"Esito OK?"}
I -- Si --> L["Label 1 verde/giallo: Ok Scarico"]
L --> M["Label 2 = lotto"]
M --> N["Label 3 = codice prodotto"]
N --> O["Label 4 = descrizione articolo"]
O --> P["Focus torna su Pallet per operazione successiva"]
I -- No --> Q["Label 1 rossa con errore"]
Q --> R["Focus torna su Pallet"]
```
## Stato finale se l'operazione va bene
- prima label:
- verde chiaro o giallo-verde
- testo tipo `Ok Scarico`
- seconda label:
- lotto del pallet movimentato
- terza label:
- codice prodotto
- quarta label:
- descrizione articolo
- focus:
- torna sul campo `Pallet`
- campo `Cella`:
- resta `9000000`
## Stato finale se l'operazione fallisce
- prima label rossa
- testo di errore operativo
- focus sul campo `Pallet`
- nessun avanzamento di coda
## Coerenza con il C#
I punti dedotti direttamente dal codice C# sono:
- `F4 Elimina` forza uno scarico verso `9000000`
- lo scarico usa:
- `sp_xMagGestioneMagazziniPallet`
- dopo il movimento il C# richiama:
- `GetDatiPallet(...)`
- e se il pallet non e' piu' nella vista picking passa a:
- `GetDatiPalletLotto(...)`
- da quest'ultima lettura arrivano:
- `Ok Scarico`
- lotto
- codice prodotto
- descrizione articolo
## Punto ancora da verificare sul campo
Da confermare in prova reale:
- se nel client legacy il colore di successo finale dello scarico diretto sia:
- verde chiaro
- oppure giallo-verde
- se il focus torni sempre al campo `Pallet` anche dopo errore
- se il lettore genera davvero `Enter` automatico in ogni scenario di scansione