Flusso di uscita (BDP e DDT)
Panoramica
Il flusso di uscita collega tre momenti: la creazione del BDP (buono di prelievo), il prelievo fisico dall'APP tablet e l'emissione del DDT di uscita che conferma la spedizione e scarica le giacenze dalle locazioni.
Creazione BDP (COGM58)
Con locazione di default (flusso standard)
Se locazione-default-partenza e' configurata, il sistema assegna automaticamente ogni nuovo BDP alla locazione di staging:
- L'operatore crea il BDP normalmente in COGM58
- WMSW01 viene chiamato con
loc-classe = "P"etipo-doc = "B" - La locazione di default viene pre-selezionata automaticamente (nessuna interazione)
- Il sistema crea:
dfdoctes: classe"BDP",locazione = locazione-default-partenza,stato-doc = "A",fl-lavorato = "S"dfdocrac: raccordoDM → BDP(collega al DDT di carico di origine, TASK-2678)dfdocrac: raccordoCOV → BDP(collega all'ordine di vendita, se presente)- Per ogni riga del BDP (esclusi servizi):
dfgiacenzeloc: la giacenza nella locazione di default aumentadfmovimentiloc: INSERT con segno"E"(il BDP "carica" la locazione di partenza)
Senza locazione di default
Se locazione-default-partenza non e' configurata, il sistema mostra la griglia di selezione locazioni e l'operatore sceglie manualmente la locazione di partenza. In questo caso, la locazione scelta viene anche associata al cliente (loc-ana).
Creazione BDP da evasione locazione (COGF64)
Da Scheda ordini distribuzione, l'operatore puo' filtrare gli ordini per una specifica locazione e creare BDP con la merce effettivamente presente in quella ubicazione:
- L'operatore inserisce il codice locazione nel filtro
tm-locazione(F8 per lookup) - Il sistema chiama
verifica-locazioneper validare il codice - Chiama
esporta-giacenze-loc: scarica dadfgiacenzelocle giacenze disponibili (giacenza - qta-in-uscita) su un file di transito - La griglia ordini mostra solo gli articoli presenti nella locazione selezionata
- Alla creazione BDP:
- Operazione blank: registra il BDP nella locazione (
dfdoctes+dfdocraccon padre"LOC") scarico-locazione: scarica la giacenza dalla locazione (dfgiacenzeloc-= qta,dfmovimentilocINSERT segno"U")
Vincolo: con gestione-tablet = "S", la creazione BDP e' consentita solo se invocata come COMPLETA-CARICO da un DDT oppure come evasione da locazione. In caso contrario il sistema mostra "Creazione BDP consentita solo se operazione di 'Completa Carico' o Evasione da Locazione...".
Spostamento fisico (APP tablet)
Dopo la creazione, il BDP e' nella locazione di default. L'operatore di magazzino, tramite l'APP tablet:
- Vede il BDP con
stato-doc = "A"(aperto) - Preleva fisicamente la merce
- Conferma lo spostamento, e l'APP aggiorna la locazione nel DB Frontiera
Fino a quando il BDP non viene spostato dalla locazione di default, non e' selezionabile per la creazione di DDT di uscita.
Selezione BDP per DDT di uscita (COGS61)
Quando l'operatore sceglie i BDP da includere in un DDT di uscita:
- Per ogni BDP nella lista, il sistema chiama
verifica-locaz-bdp - Cerca in
dfdoctesla locazione del BDP (classe"BDP") - Se la locazione coincide con
locazione-default-partenza: il BDP e' ancora in transito - Selezione singola: il sistema mostra "BDP non selezionabile perche' ancora su locazione transitoria!!"
- Selezione multipla ("seleziona tutti"): il BDP viene escluso silenziosamente
Solo i BDP che sono stati spostati alla locazione reale possono essere selezionati.
Emissione DDT di uscita (COGV50W)
Inserimento DDT con BDP
Quando si conferma un DDT di uscita con BDP collegati:
- Il sistema chiama
ddt-uscitaconloc-classe = "P"etipo-doc = "U" - Per ogni BDP collegato (via COGGENER tipo
"BB"): - Se il BDP e' marcato con
fl-blocco = "X"(gia' usato in un DDT precedentemente cancellato): segnastato = "C"e passa al successivo senza aggiornare giacenze (evita doppio conteggio) - Trova la locazione del BDP:
- Se BDP da completamento lotti: cerca
dfdoctesclasse"BDP" - Se BDP da evasione ordini: cerca via
dfdocracclasse padre"COV", figlio"BDPP"→ poidfdoctesclasse"BDPP"
- Se BDP da completamento lotti: cerca
- Per ogni riga del BDP (esclusi servizi):
dfgiacenzeloc: giacenza -= quantita' riga (uscita dalla locazione di partenza)- Se la giacenza arriva a zero:
fl-canc = "C"(cancellazione logica) dfmovimentiloc: INSERT con segno"U"(Uscita)
dfdoctesdel BDP:stato = "C"(chiuso),agg-area = 1- Se tutte le giacenze nella locazione si azzerano: libera la locazione (
loc-ana = spaces)
Modifica DDT con nuovi BDP aggiunti
Quando si modifica un DDT di uscita aggiungendo BDP:
- Il sistema chiama
modifica-ddt-usc - Prima verifica se esistono gia' movimenti per quel BDP sul DDT (per evitare doppio conteggio)
- Se non ci sono movimenti precedenti: procede come per
ddt-uscita
Schema riepilogativo
Creazione BDP (COGM58)
│
├── dfdoctes: INSERT (classe="BDP", locazione=default, stato-doc="A")
├── dfdocrac: INSERT raccordi (DM→BDP, COV→BDP)
├── dfgiacenzeloc: += qta (la locazione di default si "carica")
└── dfmovimentiloc: INSERT segno="E"
│
│ ... APP tablet sposta BDP dalla locazione di default alla reale ...
│
▼
Selezione BDP (COGS61)
│
└── verifica-locaz-bdp: BDP in locazione default? → NON selezionabile
BDP in locazione reale? → OK
│
▼
DDT di uscita (COGV50W)
│
├── Per ogni BDP:
│ ├── dfgiacenzeloc: -= qta (uscita dalla locazione di partenza)
│ ├── dfmovimentiloc: INSERT segno="U"
│ └── dfdoctes BDP: stato-doc="C" (chiuso)
│
└── Se giacenza locazione=0 → locazione liberata
Vedi anche
- Modifica e cancellazione BDP/DDT — cosa succede quando si cancella un DDT di uscita o un BDP
- Flusso di entrata — come arriva la merce nella locazione