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 66 → conta-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¶
apri/apri39/apri40— inizializzazioni,open-files; legge l'esercizio contabile (euta-tipo 66) inconta-rec; costruisce il nomeCHIUS.ARCdaconta-cone1e apre in i-oFEURPNO; apre in i-o l'archivio movimenti anno precedenteFARCPRE(nome ottenuto daopen-pn-contabilizzata, opzione"PRE").a4— imposta la maschera; mostra l'esercizio (conta-cone1/cone2); avvisa che in caso di fine anomala gli archivi vanno ripristinati prima di ripetere.a-tm-risp1— check-box di conferma "salvataggio eseguito" (S60/S95), obbligatorio.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 giornaleGIORNA#$.ARC.a210— apre in output il file giornaleFEURLAV.a215/a220— posiziona suFEURPNOper chiavepnt-chia3e scandisce i movimenti in sequenza (read feurpno next); se non c'e' nulla da contabilizzare esce.- Per ogni movimento:
aggiornasaldo/aggiornaconto/aggiornamastraggiornano i saldiCOGSLPCOa livello di sottoconto, conto e mastro (dare/avere econ-saldo(pno-effm)), creando il record se assente;a227converte l'importo in euro se necessario (COGU10W, operazione cambio) e scrive la riga nel giornale;a230ribalta le date effettive in date di movimento, scrive il record suFARCPREe aggiorna il documento patrimoniale suCOGTABELtipo"AF";a240accumula i totali dare/avere e aggiorna i campi video documento/data/movimento. a800— al termine della scansione mostra i totali dare e avere (edit viaCOGU10W); setotddiverso datotasegnala "chiusura non quadrata, ripristinare archivi".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 TOper il ciclo di scansione (a220/a240) e delle route di gestione errore, ePERFORM ... 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 inFARCPREe 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-contoazzerati). - Gli importi non in euro (
pno-currencydiverso da"E") vengono convertiti in euro prima della scrittura sia sul giornale sia sui saldi.