116 lines
3.1 KiB
Markdown
116 lines
3.1 KiB
Markdown
# 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
|