COGC13 - Ricostruzione saldi contabili (dai movimenti di prima nota)¶
Sorgente: cbl/cogc13.cbl | Tipo: interattivo GUI a maschera con elaborazione batch | Program-ID: COGC13
Menu: Sistema > Archivi > Ricostruzioni > Saldi Contabili
Scopo¶
COGC13 ricostruisce da zero i saldi contabili progressivi (COGSLPCO) di un esercizio, azzerandoli e ricalcolandoli sommando tutti i movimenti di prima nota contabilizzata dell'anno. Serve a riallineare i saldi progressivi (dare/avere complessivi e mensili) ai movimenti effettivi, correggendo eventuali disallineamenti accumulati.
L'operatore sceglie se ricostruire i saldi dell'esercizio in corso (C) o precedente (P), tramite il campo radio tm-ric. In base alla scelta il programma apre l'archivio movimenti contabilizzati dell'anno corretto e usa la relativa data di riferimento per il filtro. Al termine confronta i totali dare/avere ricostruiti: se non quadrano segnala di ripristinare gli archivi.
File e tabelle principali¶
| File/Tabella | Copybook / definizione | Uso |
|---|---|---|
COGSLPCO |
record con-rec (COGSLPCO.CPY) |
Saldi progressivi per conto da ricostruire: prima azzerati (con-prodare, con-proavere, con-saldo(1..12)) per l'esercizio, poi riscritti a livello sottoconto/conto/mastro con i valori ricalcolati |
farc (archivio movimenti contabilizzati) |
record arc-rec inline; letto in pno-rec (COGPNONC.CPY) |
Prima nota contabilizzata dell'esercizio scelto: scandita sulla chiave secondaria arc-chia2 (ordinamento per conto), sorgente dei movimenti da sommare |
COGTABEL (feurtab) |
cogfiles.cpy / tipo 66 → conta-rec |
Tabella esercizio: fornisce codici esercizio corrente/precedente (conta-cones1/2, conta-cone1/2) e le date di chiusura (conta-conchiuatt, conta-conchiupre9) usate come limiti del filtro data |
Campi chiave del saldo (con-rec): con-mastro, con-conto, con-sconto, con-anno (chiave), piu' con-prodare, con-proavere, la tabella dei 12 saldi mensili con-saldo(n) (via con-tabsaldi), con-currency, con-prev.
Campi del movimento (pno-rec) usati nel calcolo: pno-mastro, pno-conto, pno-sconto (rottura di conto), pno-movm (mese del movimento → indice del saldo mensile), pno-datamov (data movimento, per il filtro), pno-segno (D dare / altrimenti avere), pno-importo, pno-currency, pno-effa (anno della data di effetto/competenza: se valorizzato il movimento e' escluso dal ricalcolo dei progressivi), pno-chia2 (chiave secondaria per la scansione ordinata per conto).
Logica di elaborazione¶
apri— inizializzazioni, lettura azienda ed esercizio (COGTABEL tipo 66 →conta-rec), preparazione maschera "Ricostruzione Saldi Contabili".a4/a-tm-ric— scelta esercizio da ricostruire (Ccorrente /Pprecedente), validazione e conferma (acc-conf).a008— in base atm-ricapre l'archivio movimenti contabilizzati dell'anno corretto (open-pn-contabilizzata, ramo "ATT" o "PRE"), imposta l'esercizio di lavoro (esercizio1/2→esercizior) e aprefarcin input.a100/a110/a120/a130(azzeramento saldi) — scandisceCOGSLPCOe, per i soli record dell'esercizio (con-anno = esercizior), azzeracon-prodare,con-proaveree tutti i 12con-saldo(n), poirewrite. Al termine riapreCOGSLPCOin i-o.- Accumulo (
a855/a860/a865/a870/a875) — scandiscefarcin ordine di conto (start ... key not < arc-chia2,read next into pno-rec). Per ogni movimento: - filtro data in base all'esercizio scelto: per
Cscarta i movimenti antecedenti la data di riapertura (conta-conchiuattcon giorno/mese forzati); perPscarta i movimenti oltre la chiusura precedente (conta-conchiupre9 - 00010000); - conversione valuta: l'importo viene riportato nella divisa di conto (
w-currency-conto) via COGU10 (z-u10, operazione cambio); - esclude i movimenti con data di effetto/competenza valorizzata (
pno-effa not = zero → salta); - alla rottura di sottoconto/conto/mastro (confronto con
cmastro/cconto/csconto) scrive i totali accumulati chiamandorsconto,rconto,rmastro; - accumula l'importo, con segno, nei totalizzatori dei tre livelli e nel saldo del mese
pno-movm: sepno-segno = "D"somma (dare) ai totalizzatori dare e aiele*(pno-movm); altrimenti somma all'avere e sottrae daiele*(pno-movm). Aggiorna anche i totali generalitotd/tota. rsconto/rconto/rmastro— per ciascun livello (sottoconto, conto concon-sconto = 0, mastro concon-conto = 0econ-sconto = 0) leggono/creano il recordCOGSLPCOdell'esercizio e vi scrivono i progressivi dare/avere e i 12 saldi mensili accumulati (elesconto/eleconto/elemastro), poi azzerano i rispettivi totalizzatori.a950/fine— a fine scansione forza l'ultima rottura (rsconto/rconto/rmastro), mostra i totali progressivi dare/avere e, setotd not = tota, segnala "ELABORAZ. NON QUADRATA, RIPRISTINARE ARCHIVI". Chiude gli archivi e termina.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGU10 | Conversione cambio valuta / editing importi: riporta ogni movimento alla divisa di conto (z-u10, k-u10-cambio) |
Note e avvertenze operative¶
- Da eseguire in esclusiva: azzera e riscrive massivamente
COGSLPCOper l'esercizio; deve girare senza altri accessi in corso sui saldi contabili o sulla prima nota. - Backup consigliato: in caso di elaborazione non quadrata (
totd not = tota) il programma stesso invita a ripristinare gli archivi; la mancata quadratura indica un problema sui movimenti sorgente. - Ricostruzione totale, non incrementale: i saldi dell'anno vengono azzerati e ricalcolati integralmente dai movimenti; eventuali saldi di riporto/apertura (
con-prev) non vengono toccati dal ricalcolo dei progressivi di periodo. - Aggregazione a tre livelli: il ciclo accumula in parallelo i totali per sottoconto, conto e mastro sfruttando l'ordinamento per conto (
arc-chia2); la correttezza dipende dalla scansione ordinata dell'archivio movimenti. - Conversione valuta: tutti gli importi sono normalizzati alla divisa di conto prima dell'accumulo (COGU10), quindi i saldi risultano espressi in un'unica divisa (
con-currency = w-currency-conto). - Sorgente legacy convertito a GUI: elaborazione governata da numerosi
GO TOfra paragrafi (a008,a100,a855,a950,fine) e daPERFORM ... THRU(rsconto thru ex-rsconto, ecc.). Da non replicare nei nuovi sviluppi.