COGR24 - Ricostruzione prenotato magazzino¶
Sorgente: cbl/cogr24.cbl | Tipo: Programma di menu / elaborazione (richiamabile) | Program-ID: COGR24
Menu: Sistema > Archivi > Ricostruzioni [Prenotato Magazzino]
Scopo¶
COGR24 ricostruisce la quantita' prenotata di magazzino (msal-qta-prenotata sul saldo merce/magazzino COGSLMAG). Per ogni coppia merce/magazzino ricalcola il prenotato sommando le quantita' delle righe dei documenti di prenotazione (BDP - buoni di prelievo/prenotazione, righe COGRIGBP) ancora aperte, poi registra la variazione tramite COGU12. Serve a riallineare il saldo prenotato ai buoni di prenotazione effettivamente aperti.
Il programma puo' essere lanciato interattivamente (maschera con merce/magazzino facoltativi e stampa a video del prospetto scostamenti) oppure richiamato in modalita' "silent" su una singola merce/magazzino (linkage utilr24.cpy, r24-called = "COGR24-CALLED"), restituendo la quantita' ricostruita in r24-qta-scritta.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGMAGAZ | cogmagaz.fd (magz-rec) |
Elenco magazzini (tipo M): ciclo esterno o filtro sul magazzino scelto |
| COGMERCI | cogmerci.fd (mer-rec) |
Anagrafica merce: ciclo interno o filtro sulla merce scelta |
| COGMERAP | cogmerap.fd (map-rec) |
Flag gestione giacenza map-fl-gia (determina se stampare il prospetto) |
| COGSLMAG | cogslmag.fd (msal-rec) |
Saldo merce/magazzino: lettura del vecchio msal-qta-prenotata, destinazione della ricostruzione (via COGU12) |
| COGRIGBP | cogrigbp.fd (rbp-rec) + cogrigbp.k02 |
Righe BDP (prenotazioni): scansione per merce (chiave 2), somma rbp-qta delle righe con testata aperta |
| COGTESBP | cogtesbp.fd (tbp-rec) |
Testata BDP: stato di chiusura tbp-fl-cls (verifica riga aperta) |
Flusso principale¶
main / apri- init,ctr-abil, apertura log di debug (gesdebug-*); ser24-called = "COGR24-CALLED"imposta la modalita' richiamata (merce/magazzino/silent-mode dal linkage).rd-azi,open-files.x99-confi- legge da RNEWCONF la configurazione prenotazioni (vedi sotto) intm-cfg-fl-prenotazioni.- Se richiamato: elabora direttamente
tratta-datisulla merce/magazzino del linkage e termina. - Modalita' interattiva: maschera "Ricreazione Prenotato Magazzino" con
a-tm-merce(merce facoltativa) ea-tm-mag(magazzino facoltativo, aiuto F8send-w36); F3 ->a-fine-dati. Richiesta di conferma stampa via COGS54, poitratta-dati. tratta-dati->tratta-merce->tratta-rigbp: ciclo magazzini (tipoM), per ogni magazzino ciclo merci, per ogni merce somma il prenotato.tratta-rigbp- azzeratot-qta, salva il vecchiomsal-qta-prenotatainold-qta, scandisceCOGRIGBPper la merce (chiave 2) filtrando sul magazzino corrente. Per ogni riga legge la testataCOGTESBP:- se
tbp-fl-cls = "T"(stato transitorio residuo da evasioni interrotte) la forza a"C"e riscrive la testata; - se la testata risulta chiusa (
tbp-fl-cls = "C") salta la riga; - altrimenti somma
rbp-qtaatot-qta, con o senza controllo tramite COGSA0 a seconda della configurazione prenotazioni. tratta-rigbp-fine- setot-qtadifferisce daold-qtaregistra la variazione con COGU12; in modalita' richiamata restituiscer24-qta-scritta = tot-qta; in interattivo stampa la riga di scostamento (saldo letto vs scritto) sul report e sul log.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGU12 | Aggiornamento saldo di magazzino: registra la variazione del prenotato (tipo P, entrata/uscita U, con giacenza), con u12-chiave-doc = rbp-chia1 |
| COGSA0 | Con configurazione prenotazioni attiva, verifica se la quantita' della riga BDP concorre al prenotato (CONTROLLA-QTA-PRENO, esito in cogsa0-o-esito) |
| COGS54 | Richiesta/gestione conferma e chiusura stampa (parametro s54-after-print) |
| RNEWCONF | Lettura configurazione prenotazioni |
| COGS68W / COGS52 / COGS60 / COGS93 / COGS95 | Gestori ausiliari maschera |
| SEND-W36 | Aiuto magazzino (sendw36.cpy) |
| GESDEBUG | Log di elaborazione ed errori |
Configurazioni (RNEWCONF)¶
| Pacchetto | Gruppo | Chiave | Uso |
|---|---|---|---|
| C | PRENOTAZIO | ATTIVA-PRENOTAZIONI | Se = "N" somma sempre rbp-qta di ogni riga aperta; altrimenti delega a COGSA0 (CONTROLLA-QTA-PRENO) la decisione se la quantita' concorre al prenotato |
Parametri COGU12 (aggiornamento saldo)¶
u12-tipo = "P" (prenotato), u12-mag, u12-merce, u12-qta-old = old-qta, u12-qta-new = tot-qta, u12-con-gia = "SI", u12-entrusc = "U", u12-program-id, u12-nota = "tratta-rigbp-02", u12-chiave-doc = rbp-chia1.
Note¶
- Sono considerate solo le righe BDP la cui testata NON e' chiusa (
tbp-fl-clsdiverso da"C"). Le testate rimaste in stato"T"(evasioni interrotte) vengono forzate a"C"e riscritte prima di essere scartate. - La scrittura del saldo passa sempre da COGU12 (canale unico di aggiornamento), non con rewrite diretta di
COGSLMAG. - In modalita' interattiva viene prodotto un report di stampa e un log (
COGR24.LOG) con le sole merci il cui prenotato ricalcolato differisce da quello memorizzato; a fine elaborazione, se ci sono stati errori, l'utente e' avvisato di consultare il log. - La chiave secondaria
cogrigbp.k02e' inclusa manualmente a fine procedure division (non generata da Screens). - Il codice usa
PERFORM ... THRUeGO TO(sorgente legacy pre-convenzioni attuali).