Vai al contenuto

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

  1. apri — inizializzazioni, lettura azienda ed esercizio (COGTABEL tipo 66 → conta-rec), preparazione maschera "Ricostruzione Saldi Contabili".
  2. a4 / a-tm-ric — scelta esercizio da ricostruire (C corrente / P precedente), validazione e conferma (acc-conf).
  3. a008 — in base a tm-ric apre l'archivio movimenti contabilizzati dell'anno corretto (open-pn-contabilizzata, ramo "ATT" o "PRE"), imposta l'esercizio di lavoro (esercizio1/2esercizior) e apre farc in input.
  4. a100/a110/a120/a130 (azzeramento saldi) — scandisce COGSLPCO e, per i soli record dell'esercizio (con-anno = esercizior), azzera con-prodare, con-proavere e tutti i 12 con-saldo(n), poi rewrite. Al termine riapre COGSLPCO in i-o.
  5. Accumulo (a855/a860/a865/a870/a875) — scandisce farc in ordine di conto (start ... key not < arc-chia2, read next into pno-rec). Per ogni movimento:
  6. filtro data in base all'esercizio scelto: per C scarta i movimenti antecedenti la data di riapertura (conta-conchiuatt con giorno/mese forzati); per P scarta i movimenti oltre la chiusura precedente (conta-conchiupre9 - 00010000);
  7. conversione valuta: l'importo viene riportato nella divisa di conto (w-currency-conto) via COGU10 (z-u10, operazione cambio);
  8. esclude i movimenti con data di effetto/competenza valorizzata (pno-effa not = zero → salta);
  9. alla rottura di sottoconto/conto/mastro (confronto con cmastro/cconto/csconto) scrive i totali accumulati chiamando rsconto, rconto, rmastro;
  10. accumula l'importo, con segno, nei totalizzatori dei tre livelli e nel saldo del mese pno-movm: se pno-segno = "D" somma (dare) ai totalizzatori dare e ai ele*(pno-movm); altrimenti somma all'avere e sottrae dai ele*(pno-movm). Aggiorna anche i totali generali totd/tota.
  11. rsconto / rconto / rmastro — per ciascun livello (sottoconto, conto con con-sconto = 0, mastro con con-conto = 0 e con-sconto = 0) leggono/creano il record COGSLPCO dell'esercizio e vi scrivono i progressivi dare/avere e i 12 saldi mensili accumulati (elesconto/eleconto/elemastro), poi azzerano i rispettivi totalizzatori.
  12. a950 / fine — a fine scansione forza l'ultima rottura (rsconto/rconto/rmastro), mostra i totali progressivi dare/avere e, se totd 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 COGSLPCO per 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 TO fra paragrafi (a008, a100, a855, a950, fine) e da PERFORM ... THRU (rsconto thru ex-rsconto, ecc.). Da non replicare nei nuovi sviluppi.