Vai al contenuto

COGC11 - Riorganizzazione saldi esercizio contabile (eliminazione anno)

Sorgente: cbl/cogc11.cbl | Tipo: interattivo a maschera con elaborazione batch | Program-ID: COGC11

Menu: Sistema > Archivi > Riorganizzazioni > Saldi Eser. Contabile


Scopo

COGC11 elimina dall'archivio dei saldi contabili progressivi (COGSLPCO) tutti i record relativi a un determinato esercizio contabile, riducendo la dimensione dell'archivio dai saldi di esercizi ormai chiusi e non piu' necessari. Non e' un ricalcolo: e' una riorganizzazione che riscrive l'archivio saltando l'anno indicato.

L'operatore digita l'esercizio da eliminare (nel formato "anno inizio / anno fine", campi esercizio1/esercizio2); il programma rifiuta l'eliminazione dell'esercizio corrente e di quello precedente (conta-cones / conta-conepre), letti dalla tabella esercizio.

L'eliminazione riguarda solo i saldi (COGSLPCO): la stessa maschera avvisa che, per eliminare i movimenti di prima nota, occorre agire a livello di sistema operativo cancellando il relativo archivio.

File e tabelle principali

File/Tabella Copybook / definizione Uso
COGSLPCO record con1-rec definito inline nel sorgente; layout logico in COGSLPCO.CPY (con-rec) Saldi progressivi per conto da riorganizzare: letti in sequenza, i record dell'anno da eliminare vengono scartati e i restanti riscritti
FEURLAV (file di lavoro) record con2-rec inline (stesso layout di con1-rec) File di appoggio temporaneo #$PCON.ARC (in ext-tmp-dir): raccoglie tutti i record di COGSLPCO (compresi quelli da eliminare) prima della riscrittura
COGTABEL (feurtab) cogfiles.cpy / COGTABEL.CPY Tabella esercizio: tipo 66 letto in conta-rec (fornisce conta-cones esercizio corrente e conta-conepre esercizio precedente per il controllo di sicurezza)
COGPNCON COGPNCON.CPY Piano dei conti (aperto a supporto, non centrale nella logica)
masch = COGE01.SEQ record rec-masch inline Maschera testuale caricata riga per riga in eletab per il layout video

I campi chiave del saldo (con-rec) rilevanti per il filtro sono con-mastro, con-conto, con-sconto e con-anno (chiave con-chia); il confronto avviene su con-anno = esercizior (l'esercizio digitato, ricomposto in esercizior).

Logica di elaborazione

Il programma opera in due passate attraverso un file di lavoro sequenziale, per evitare di modificare COGSLPCO in-place durante la scansione:

  1. apri — inizializzazioni (ctr-abil, rd-azi, open-files), lettura tabella esercizio (COGTABEL tipo 66 → conta-rec) e caricamento della maschera video da COGE01.SEQ.
  2. Maschera e conferma — l'operatore conferma di aver eseguito il salvataggio archivi (SI/NO); se NO il programma termina invitando al backup. Poi digita l'esercizio da eliminare. Se coincide con l'esercizio corrente o precedente, l'operazione viene bloccata con messaggio. Ultima conferma "PROSEGUO?".
  3. a200/a210/a220 (copia su file di lavoro) — apre in output il file di lavoro #$PCON.ARC (FEURLAV), posiziona COGSLPCO sulla chiave minima (start ... key not < con1-chia) e lo legge sequenzialmente (read cogslpco next), riscrivendo ogni record su FEURLAV; per i record il cui con-anno coincide con l'esercizio scelto incrementa il contatore totmov.
  4. a300 — se totmov = zero segnala "ESERCIZIO INESISTENTE" e termina; altrimenti chiude COGSLPCO e FEURLAV.
  5. a310/a320/a330/a335 (ricostruzione archivio) — riapre COGSLPCO in output (svuotandolo) e rilegge il file di lavoro: scrive su COGSLPCO solo i record il cui con-anno non coincide con l'esercizio eliminato (if con-anno = esercizior go to a330, cioe' salta), scartando cosi' definitivamente l'anno richiesto.
  6. a400/fine — messaggio di fine elaborazione e chiusura di FEURLAV, COGTABEL, COGSLPCO.

Note e avvertenze operative

  • Da eseguire in esclusiva: il programma riapre COGSLPCO in OUTPUT, azzerando fisicamente l'archivio prima di riscriverlo dal file di lavoro. Se altri utenti operano contemporaneamente sui saldi contabili l'archivio risultante e' incoerente. Va lanciato senza altri accessi in corso.
  • Backup obbligatorio: la maschera richiede esplicita conferma di avvenuto salvataggio archivi; rispondendo NO il programma esce senza operare. L'operazione non e' reversibile a livello dati.
  • Solo saldi, non movimenti: elimina i record di COGSLPCO dell'anno; i movimenti di prima nota dell'esercizio restano e, come indicato dalla maschera, vanno eventualmente rimossi separatamente cancellando il relativo archivio.
  • Protezione esercizi in uso: non e' possibile eliminare l'esercizio corrente (conta-cones) ne' quello precedente (conta-conepre).
  • Sorgente legacy: elaborazione governata da GO TO fra paragrafi numerati (a200-a400) e PERFORM ... THRU (es. cstato thru ex-cstato); source-computer/object-computer a rmcobol. Da non replicare nei nuovi sviluppi.