Vai al contenuto

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

  1. main / apri - init, ctr-abil, apertura log di debug (gesdebug-*); se r24-called = "COGR24-CALLED" imposta la modalita' richiamata (merce/magazzino/silent-mode dal linkage). rd-azi, open-files.
  2. x99-confi - legge da RNEWCONF la configurazione prenotazioni (vedi sotto) in tm-cfg-fl-prenotazioni.
  3. Se richiamato: elabora direttamente tratta-dati sulla merce/magazzino del linkage e termina.
  4. Modalita' interattiva: maschera "Ricreazione Prenotato Magazzino" con a-tm-merce (merce facoltativa) e a-tm-mag (magazzino facoltativo, aiuto F8 send-w36); F3 -> a-fine-dati. Richiesta di conferma stampa via COGS54, poi tratta-dati.
  5. tratta-dati -> tratta-merce -> tratta-rigbp: ciclo magazzini (tipo M), per ogni magazzino ciclo merci, per ogni merce somma il prenotato.
  6. tratta-rigbp - azzera tot-qta, salva il vecchio msal-qta-prenotata in old-qta, scandisce COGRIGBP per la merce (chiave 2) filtrando sul magazzino corrente. Per ogni riga legge la testata COGTESBP:
  7. se tbp-fl-cls = "T" (stato transitorio residuo da evasioni interrotte) la forza a "C" e riscrive la testata;
  8. se la testata risulta chiusa (tbp-fl-cls = "C") salta la riga;
  9. altrimenti somma rbp-qta a tot-qta, con o senza controllo tramite COGSA0 a seconda della configurazione prenotazioni.
  10. tratta-rigbp-fine - se tot-qta differisce da old-qta registra la variazione con COGU12; in modalita' richiamata restituisce r24-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-cls diverso 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.k02 e' inclusa manualmente a fine procedure division (non generata da Screens).
  • Il codice usa PERFORM ... THRU e GO TO (sorgente legacy pre-convenzioni attuali).