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':
- Inserimento ordine e consegne collegate
- Creazione buono di prelievo (BDP) agganciato alla consegna
- 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)¶
- COGM58/COGM65 crea il BDP: scrive COGTESBP + COGRIGBP con
rbp-consegna = cor-chia1 - COGV50W/COGD27 evade il BDP:
- Crea il DDT (COGTESBO)
- Scrive il legame COGGENER tipo "BB" (DDT <-> BDP)
- Chiama COGU09 che scrive COGLEGCM tipo "CM" (consegna <-> riga DDT)
- Aggiorna
cor-qtaconssulla consegna - Aggiorna
ror-qtaconssulla riga ordine - Chiude BDP (
tbp-fl-cls = "C") - 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