Milestone ultima alpha
This commit is contained in:
115
diagramma_scarico_udc.md
Normal file
115
diagramma_scarico_udc.md
Normal 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
|
||||
Reference in New Issue
Block a user