Vai al contenuto

Ciclo evasione ordini

Contesto

Il ciclo di evasione di un ordine cliente coinvolge diverse tabelle collegate tra loro. Questa pagina documenta le tabelle, le chiavi di raccordo e i programmi che gestiscono ciascun passaggio.

Il flusso tipico e':

  1. Inserimento ordine e consegne collegate
  2. Creazione buono di prelievo (BDP) agganciato alla consegna
  3. Evasione BDP tramite DDT che chiude consegna e ordine

Tabelle coinvolte

Tabella Copybook Descrizione
COGTESOR cogtesor.cpy Testata ordine
COGRIGOR cogrigor.cpy Righe ordine
COGCONOR cogconor.cpy Righe consegna (collegate all'ordine)
COGTESBP cogtesbp.cpy Testata buono di prelievo
COGRIGBP cogrigbp.cpy Righe buono di prelievo
COGTESBO cogtesbo.cpy Testata documento di magazzino (DDT)
COGGENER coggener.cpy Raccordi generici (legame BDP-DDT)
COGLEGCM coglegcm.cpy Legame consegna-movimento magazzino

Schema dei collegamenti

COGTESOR (testata ordine)
  tor-chia1 = tor-tipo + tor-anno + tor-numero + tor-progr
  tor-clifor = cliente
  tor-chiu = "C" se chiuso
  |
  +--< COGRIGOR (righe ordine)
  |      ror-chia1 = ror-testa + ror-merce + ror-rig-pro
  |      ror-testa = tor-chia1
  |      ror-qtaord = quantita' ordinata
  |      ror-qtacons = quantita' consegnata
  |      ror-flagchiu = "C" se chiusa
  |
  +--< COGCONOR (righe consegna)
         cor-chia1 = cor-testa + cor-progr
              cor-testa = cor-mag + cor-anno + cor-tipo + cor-numero
         cor-chia2 = cor-o-testa + cor-merce + cor-data + cor-o-rig-pro
              cor-o-testa = riferimento a ror-testa (ordine)
              cor-merce = merce della riga ordine
              cor-o-rig-pro = progressivo riga ordine
         cor-qta = quantita' da consegnare
         cor-qtacons = quantita' gia' consegnata (evasa via DDT)
         cor-fl-close = "C" se chiusa
         |
         +--< COGRIGBP (righe buono di prelievo)
         |      rbp-chia1 = rbp-testa + rbp-prog
         |           rbp-testa = rbp-mag + rbp-aa + rbp-num + rbp-mm + rbp-gg
         |      rbp-merce = codice merce
         |      rbp-qta = quantita' BDP
         |      rbp-cli = cliente
         |      rbp-consegna = cor-chia1 (riferimento alla consegna)
         |           rbp-c-testa + rbp-c-progr
         |      |
         |      +--- COGTESBP (testata BDP)
         |             tbp-chia1 = rbp-testa
         |             tbp-cli = cliente
         |             tbp-fl-cls = "A" aperto, "C" chiuso
         |
         +--< COGLEGCM (legame consegna <-> movimento magazzino)
                lcm-chia1 = lcm-tip + lcm-rig-cons + lcm-mov-maga + lcm-pro
                lcm-chia2 = lcm-tip + lcm-mov-maga + lcm-rig-cons + lcm-pro
                     lcm-tip = "CM"
                     lcm-rig-cons = cor-chia1 (riga consegna)
                     lcm-mov-maga = riga DDT (tes-chia3 + progressivo)
                lcm-rig-ordi = lcm-ordi + lcm-merce + lcm-rig-pro
                     lcm-ordi = riferimento a ror-testa (ordine)

Raccordo BDP <-> DDT (COGGENER tipo "BB")

Il legame tra BDP e DDT e' registrato su COGGENER con tipo "BB":

COGGENER tipo "BB"
  gnr-chia1 = gnr-tip + gnr-parte-1 + gnr-parte-2 + gnr-prog
  gnr-chia2 = gnr-tip + gnr-parte-2 + gnr-parte-1 + gnr-prog  (indice inverso)
       gnr-parte-1 = tes-chia3 (testata DDT, 12 char)
       gnr-parte-2 = rbp-testa (testata BDP, 15 char)

Questo permette di:

  • Da un DDT trovare i BDP: cercare su chia1 con tip="BB" + parte-1=tes-chia3
  • Da un BDP trovare il DDT: cercare su chia2 con tip="BB" + parte-2=rbp-testa

Programmi principali per fase

1. Gestione ordini e consegne

Programma Funzione
COGO05W Gestione ordine cliente (inserimento/modifica righe)
COGO16CW Inserimento automatico consegne da ordine
COGU13 Quadratura ordine-consegne (aggiorna tor-chiu, cor-qtacons)

2. Buoni di prelievo

Programma Funzione
COGM58 Creazione BDP da ordine
COGM65 Gestione BDP (creazione, modifica, cancellazione)
COGSA0 Subroutine creazione BDP (CREA-BDP-SINGOLO, AGGIUNGI-A-BDP)

3. Evasione e DDT

Programma Funzione
COGV50W Evasione BDP e creazione DDT (programma principale)
COGD27 Evasione BDP (versione ridotta, crea legame BB su COGGENER)
COGU09 Gestione legami consegna <-> movimento magazzino (COGLEGCM)

Flusso di evasione (sequenza operazioni)

  1. COGM58/COGM65 crea il BDP: scrive COGTESBP + COGRIGBP con rbp-consegna = cor-chia1
  2. COGV50W/COGD27 evade il BDP:
  3. Crea il DDT (COGTESBO)
  4. Scrive il legame COGGENER tipo "BB" (DDT <-> BDP)
  5. Chiama COGU09 che scrive COGLEGCM tipo "CM" (consegna <-> riga DDT)
  6. Aggiorna cor-qtacons sulla consegna
  7. Aggiorna ror-qtacons sulla riga ordine
  8. Chiude BDP (tbp-fl-cls = "C")
  9. Chiude consegna e ordine se completamente evasi

Catena di riconciliazione (da BDP a ordine)

Quando si deve risalire dalla riga BDP all'ordine collegato:

COGRIGBP.rbp-consegna
   -> COGCONOR.cor-chia1  (se la consegna esiste)
      -> cor-o-testa = riferimento ordine
         -> COGTESOR.tor-chia1

oppure (se la consegna e' stata cancellata, via DDT):

COGRIGBP.rbp-testa
   -> COGGENER chia2 (tip="BB", parte-2=rbp-testa)
      -> gnr-parte-1 = testata DDT
         -> COGLEGCM chia2 (tip="CM", mov-maga=DDT)
            -> lcm-rig-ordi = ordine + merce + rig-pro
               -> COGCONOR chia2 (cor-o-testa + cor-merce)
                  = nuova consegna