Vai al contenuto

COGC09 — Contabilizzazione articolo di chiusura

Sorgente: cbl/cogc09.cbl | Tipo: interattivo con elaborazione batch | Program-ID: cogc09

Menu: Contabilita' > Bilancio > Chiusura/Riapertura Esercizio > Contabilizz. Art. Chiusura


Scopo

Contabilizza definitivamente l'articolo di chiusura dell'esercizio (generato in precedenza in CHIUS.ARC, cfr. COGC06) aggiornando i saldi progressivi dei conti e producendo il giornale bollato delle scritture di chiusura. Per ogni movimento dell'articolo di chiusura il programma aggiorna i saldi a livello di sottoconto, conto e mastro (dare/avere e saldo del mese di competenza) su COGSLPCO, riporta il movimento nell'archivio dei movimenti dell'anno precedente (PRE..., file farcpre) e scrive la riga nel file sequenziale del giornale (GIORNA#$.ARC).

Prima di procedere l'operatore deve confermare, con un flag, di aver eseguito il salvataggio degli archivi (in caso di interruzione anomala gli archivi vanno ripristinati prima di ripetere la funzione). Al termine viene mostrato il totale dare/avere e, se non quadrano, viene segnalata la chiusura non quadrata con invito al ripristino.

File e tabelle principali

File/Tabella Copybook Uso
COGTABEL (feurtab) cogfiles.cpy Parametri esercizio: euta-tipo 66conta-rec; scrittura documento patrimoniale su euta-tipo "AF" / euta-cod (euta-doc-patrimoniale)
FEURPNO = CHIUS.ARC cogpnonc.cpy (replacing pno-pnt-) Archivio prima nota di chiusura da contabilizzare (aperto i-o); letto in sequenza per chiave pnt-chia3
FARCPRE = PRE... cogpnonc.cpy (replacing pno-arp-) Archivio movimenti dell'anno precedente: i movimenti chiusi vengono riscritti qui (write arp-rec)
FEURLAV = GIORNA#$.ARC (record lav-rec pic x(300)) File sequenziale del giornale bollato (aperto output), una riga per movimento
COGSLPCO (aperto/gestito da opengen.cpy) Saldi progressivi per conto (con-rec): mastro/conto/sconto/anno, con-prodare/con-proavere, con-saldo(mese), con-currency

Copybook di working/servizio: cogazien.cpy, cogconta.cpy (conta-rec: codici esercizio conta-cone1/conta-cone2), cogpnonc.cpy (pno-rec di lavoro), utils52.cpy/utilu10.cpy (date ed editing importi), k-u10.cpy.

Flusso principale

  1. apri / apri39 / apri40 — inizializzazioni, open-files; legge l'esercizio contabile (euta-tipo 66) in conta-rec; costruisce il nome CHIUS.ARC da conta-cone1 e apre in i-o FEURPNO; apre in i-o l'archivio movimenti anno precedente FARCPRE (nome ottenuto da open-pn-contabilizzata, opzione "PRE").
  2. a4 — imposta la maschera; mostra l'esercizio (conta-cone1/cone2); avvisa che in caso di fine anomala gli archivi vanno ripristinati prima di ripetere.
  3. a-tm-risp1 — check-box di conferma "salvataggio eseguito" (S60/S95), obbligatorio.
  4. a-inizio-dati — validazione (x-controlla-tm-risp1: deve essere "S") e conferma finale (acc-conf); rende visibili i campi di avanzamento e costruisce il nome del file giornale GIORNA#$.ARC.
  5. a210 — apre in output il file giornale FEURLAV.
  6. a215 / a220 — posiziona su FEURPNO per chiave pnt-chia3 e scandisce i movimenti in sequenza (read feurpno next); se non c'e' nulla da contabilizzare esce.
  7. Per ogni movimento: aggiornasaldo / aggiornaconto / aggiornamastr aggiornano i saldi COGSLPCO a livello di sottoconto, conto e mastro (dare/avere e con-saldo(pno-effm)), creando il record se assente; a227 converte l'importo in euro se necessario (COGU10W, operazione cambio) e scrive la riga nel giornale; a230 ribalta le date effettive in date di movimento, scrive il record su FARCPRE e aggiorna il documento patrimoniale su COGTABEL tipo "AF"; a240 accumula i totali dare/avere e aggiorna i campi video documento/data/movimento.
  8. a800 — al termine della scansione mostra i totali dare e avere (edit via COGU10W); se totd diverso da tota segnala "chiusura non quadrata, ripristinare archivi".
  9. fine / z-chiudi — chiude tutti i file (feurlav, farcpre, cogtabel, cogslpco, feurpno, cogpncon) e la finestra, exit program.

Sottoprogrammi chiamati

Programma Ruolo
COGU10W Conversione/edit importi in divisa (cambio verso euro, editing per visualizzazione)
COGS52W Editing/formattazione data articolo per la visualizzazione

Note

  • Sorgente in stile legacy: uso estensivo di GO TO per il ciclo di scansione (a220/a240) e delle route di gestione errore, e PERFORM ... THRU (aggiornasaldo thru ex-aggiornasaldo, aggiornaconto thru ex-aggiornaconto, aggiornamastr thru ex-aggiornamastr, cstato thru ex-cstato). Da non replicare.
  • La funzione e' distruttiva sui saldi: aggiorna COGSLPCO, sposta i movimenti in FARCPRE e produce il giornale. Una interruzione a meta' lascia gli archivi inconsistenti; per questo e' obbligatoria la conferma del salvataggio preventivo e ripetuti avvisi di ripristino in caso di errore grave.
  • Gli aggiornamenti saldo (sottoconto/conto/mastro) condividono la stessa logica ripetuta tre volte con chiavi progressivamente meno specifiche (con-sconto/con-conto azzerati).
  • Gli importi non in euro (pno-currency diverso da "E") vengono convertiti in euro prima della scrittura sia sul giornale sia sui saldi.