Vai al contenuto

COGR33 - Ricostruzione data righe commessa

Sorgente: cbl/cogr33.cbl | Tipo: Programma di menu / elaborazione | Program-ID: COGR33

Menu: Sistema > Archivi > Ricostruzioni [Data Righe Commessa]


Scopo

COGR33 ricostruisce il campo data (rgc-data) sulle righe della commessa (COGRIGCM). Ogni riga commessa e' collegata a un documento sorgente diverso a seconda del suo tipo (rgc-tip): il programma scandisce tutte le righe commessa, per ciascuna risale al documento collegato tramite la chiave rgc-chiave, ne legge la data e - se diversa da quella memorizzata - la riscrive sulla riga commessa. Serve a riallineare la data delle righe commessa alla data reale del documento di origine.

L'esecuzione e' interattiva: la maschera richiede solo la conferma (F3); non ci sono filtri per merce, commessa o data. Vengono elaborate tutte le righe di COGRIGCM. La maschera mostra due contatori: righe lette (tm-ctr-r-l) e righe scritte/modificate (tm-ctr-r-s).

File e tabelle principali

File/Tabella Copybook Uso
COGRIGCM cogrigcm.fd (rgc-rec) + cogrigcm.k02 Righe commessa: scansione completa (chiave 2), lettura tipo/chiave, riscrittura di rgc-data
COGTESBO cogtesbo.fd (tes-rec) Testata documento di magazzino/fattura: fonte della data (tes-data) per i tipi RC e TD
COGMOMAG cogmomag.fd (mag-rec) Movimento di magazzino: fonte della data (mag-da3) per il tipo RD
COGCONTR cogcontr.fd (con-recz) Righe contratto/fattura: ponte per il tipo RC (da con-chiap a con-testa -> COGTESBO)
COGDMRIG cogdmrig.fd (dmr-rec) + cogkydmr.fd Righe distinta/movimento: fonte della data (dmr-data) per il tipo RR

Flusso principale

  1. main / apri - init, ctr-abil, rd-azi, open-files; prepara la maschera "Ricostruzione data su righe commessa".
  2. Maschera con sola conferma: acc-conf; con F3 esegue a-elabora, con ESC/F2 termina.
  3. a-elabora - azzera i contatori, scandisce tutta la COGRIGCM (chiave 2). Per ogni riga incrementa il contatore letti e, in base a rgc-tip, determina la data corretta in a1-data:
  4. RC -> a1-tipo-rc: usa rgc-chiave come con-chiap, ricava con-testa -> tes-chia3, legge COGTESBO, prende tes-data;
  5. RD -> a2-tipo-rd: usa rgc-chiave come mag-chiap, legge COGMOMAG, prende mag-da3;
  6. RR -> a3-tipo-rr: usa rgc-chiave come dmr-chia1, legge COGDMRIG, prende dmr-data;
  7. TD -> a4-tipo-td: usa rgc-chiave come tes-chia3, legge COGTESBO, prende tes-data;
  8. altri tipi -> avviso "riga di tipo non previsto, non elaborata" e mantiene la data corrente.
  9. Se il documento collegato non viene trovato, viene mostrato un avviso (con commessa/sottocommessa e chiave) e la data della riga resta invariata (a1-data = rgc-data).
  10. Se a1-data differisce da rgc-data, riscrive la riga (rwr-cogrigcm) e incrementa il contatore scritti; in caso di errore in riscrittura avvisa.

Tipi di riga commessa gestiti (rgc-tip)

Tipo Documento collegato Chiave usata Campo data
RC Riga contratto/fattura -> testata (COGCONTR -> COGTESBO) rgc-chiave -> con-chiap -> con-testa tes-data
RD Movimento di magazzino (COGMOMAG) rgc-chiave -> mag-chiap mag-da3
RR Riga distinta/movimento (COGDMRIG) rgc-chiave -> dmr-chia1 dmr-data
TD Testata documento di magazzino (COGTESBO) rgc-chiave -> tes-chia3 tes-data

Note

  • Il layout di rgc-chiave (40 caratteri) e' polimorfo: il suo contenuto dipende da rgc-tip e viene reinterpretato di volta in volta come chiave del documento collegato (contratto, movimento magazzino, riga distinta o testata documento).
  • Le righe di tipo non gestito (diverso da RC/RD/RR/TD) non sono modificate: viene solo emesso un avviso e mantenuta la data esistente.
  • Se il documento collegato non e' rintracciabile la data della riga resta invariata (nessuna riscrittura), con avviso a video: e' un modo per segnalare righe orfane.
  • Non ci sono filtri: l'elaborazione e' sempre a tappeto su tutta COGRIGCM.
  • La chiave secondaria cogrigcm.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).