Vai al contenuto

Flusso di entrata (DDT di carico)

Panoramica

Quando arriva merce in magazzino e si registra un DDT di carico (COGV14W), il sistema WMS assegna una locazione di arrivo (classe "A") e traccia la giacenza per ogni articolo in quella ubicazione. Da quel momento, l'APP tablet puo' gestire lo stoccaggio fisico.

Flusso passo per passo

1. Inserimento DDT di carico

Quando l'operatore registra un nuovo DDT di carico con gestione-tablet = "S":

  1. Il sistema chiede di selezionare una locazione di arrivo (classe "A") tramite la griglia di WMSW01
  2. Crea un record in dfdoctes con classe "DM" e stato-doc = "B" (disponibile per l'APP)
  3. Se la locazione non ha un fornitore associato, la collega automaticamente (loc-ana)
  4. Per ogni riga del DDT (ogni articolo, esclusi i servizi):
  5. Aggiorna dfgiacenzeloc: la giacenza nella locazione aumenta della quantita' della riga
  6. Se il record di giacenza non esiste, lo crea
  7. Inserisce un movimento in dfmovimentiloc con segno "E" (Entrata)

Condizioni per l'attivazione: la data del DDT deve essere >= 25/08/2025 e la causale del DDT non deve essere quella esclusa dalla configurazione (cau-no-aggancio-tablet).

2. L'APP tablet prende in carico il DDT

L'APP legge il record dfdoctes con stato-doc = "B" e mostra il DDT all'operatore di magazzino. Quando l'operatore conferma lo stoccaggio fisico, l'APP scrive un movimento speciale in dfmovimentiloc con mloc-doc-key = "stock" — questo e' il segnale convenzionale di "carico stoccato".

3. Verifica stato carico (apertura DDT esistente)

Quando si riapre un DDT di carico gia' inserito, il sistema chiama controllo-entrata per verificare:

  • Se df-dtes-fl-blocco = "S": mostra l'avviso "DDT collegato a movimentazione articoli da APP". L'operatore puo' visualizzare ma non modificare le quantita' gia' movimentate dall'APP
  • Restituisce la locazione assegnata e l'indicazione di esistenza movimenti (fl-mov-loc = "S")

4. Completamento carico → creazione BDP

Dall'interno del DDT di carico (tasto F6), l'operatore puo' richiedere il completamento carico che genera BDP per prelevare la merce dalla locazione di arrivo:

  1. Il sistema verifica se il carico e' gia' stato stoccato dall'APP (carico-stoccato). Se esito = "S", blocca l'operazione con "DDT di carico gia' Stoccato con movimentazione APP Locazioni: operazione 'COMPLETA-CARICO' non abilitata"
  2. Se non stoccato, lancia COGF64 in modalita' COMPLETA-CARICO
  3. COGF64 crea i BDP e per ciascuno:
  4. Chiama WMSW01 (operazione blank) per registrare il BDP nella locazione di partenza (dfdoctes classe "BDP")
  5. Crea il raccordo dfdocrac tra DDT di carico (padre "DM") e BDP (figlio "BDP")
  6. Chiama scarico-entrata per scaricare la locazione di arrivo:
  7. Per ogni BDP collegato al DDT (via COGGENER tipo "EB"):
    • dfgiacenzeloc: la giacenza nella locazione di arrivo diminuisce della quantita' del BDP
    • dfmovimentiloc: nuovo movimento con segno "U" (Uscita), tipo "M" (Movimento)
  8. Blocca il DDT di carico: df-dtes-fl-blocco = "S" (non piu' gestibile dall'APP)
  9. Se la giacenza nella locazione di arrivo si azzera per tutti gli articoli, libera la locazione (loc-ana = spaces)

Schema riepilogativo

DDT di carico (COGV14W)
    │
    ├── dfdoctes: INSERT (classe="DM", stato-doc="B", locazione=arrivo)
    ├── dfgiacenzeloc: += qta per ogni riga DDT (entrata in locazione arrivo)
    └── dfmovimentiloc: INSERT segno="E" per ogni riga DDT
         │
         │ ... APP tablet conferma stoccaggio (mloc-doc-key="stock") ...
         │
         ▼
Completamento carico (F6 → COGF64)
    │
    ├── Per ogni BDP creato:
    │   ├── dfdoctes: INSERT (classe="BDP", locazione=partenza, stato-doc="A")
    │   └── dfdocrac: INSERT (padre="DM" → figlio="BDP")
    │
    └── Scarico locazione arrivo:
        ├── dfdoctes DDT: fl-blocco="S"
        ├── dfgiacenzeloc: -= qta BDP (uscita dalla locazione di arrivo)
        ├── dfmovimentiloc: INSERT segno="U" tipo="M"
        └── Se giacenza=0 → locazione liberata

Tabelle coinvolte

Tabella Operazione Quando
dfdoctes INSERT (classe "DM") Inserimento DDT
dfdoctes UPDATE fl-blocco="S" Completamento carico
dfgiacenzeloc += quantita' Inserimento DDT (entrata)
dfgiacenzeloc -= quantita' Completamento carico (uscita da arrivo)
dfmovimentiloc INSERT segno="E" Inserimento DDT
dfmovimentiloc INSERT segno="U" Completamento carico
dfdoctes INSERT (classe "BDP") Creazione BDP
dfdocrac INSERT (DM→BDP) Collegamento DDT-BDP
dflocazioni UPDATE loc-ana Associazione fornitore (se libera)

Vedi anche