# 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