Vai al contenuto

COGC05 — Contabilizzazione articolo di chiusura C/Economico

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

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


Scopo

Contabilizza in prima nota l'articolo di chiusura del conto economico, trasferendo i movimenti generati (e depositati nell'archivio provvisorio ??ECONO.ARC) nella prima nota definitiva e aggiornando i saldi progressivi. Contestualmente produce il giornale bollato su file di stampa e riporta i movimenti nell'archivio della prima nota dell'anno precedente.

Per ogni movimento letto dal conto di transito, il programma: aggiorna i saldi progressivi a livello di sottoconto, conto e mastro (COGSLPCO); scrive il movimento nell'archivio prima nota anno attuale (COGCOATT) e anno precedente (COGCOPRE); accoda la riga al file del giornale bollato. I saldi dei conti di reddito (piano conti con pco-reddito = "R") vengono girocontati sull'apposito conto di transito indicato nell'esercizio contabile (conta1-mastro/conto/sconto). Al termine verifica la quadratura (totale Dare = totale Avere): se non quadra segnala di ripristinare gli archivi.

File e tabelle principali

File/Tabella Copybook Uso
COGTABEL (feurtab) cogfiles.cpy Esercizio contabile: euta-tipo 66 con euta-codr 1conta1-rec (conto di transito reddito) e euta-codr 0conta-rec (esercizio corrente). Anche euta-tipo "AF" per euta-doc-reddito
COGTRANS = ??ECONO.ARC cogpnonc.cpy (replacing pno-trs-) Conto di transito: movimenti dell'articolo di chiusura da contabilizzare; scandito per chiave trs-chia3
COGCOATT cogcoatt.cpy Prima nota contabilizzata anno attuale (att-rec); scritta con wr-cogcoatt
COGCOPRE cogcopre.cpy Prima nota contabilizzata anno precedente (pre-rec); scritta con write pre-rec (anno conta-conepre)
COGSLPCO cogcont1.cpy Saldi progressivi per conto (con-rec): con-prodare, con-proavere, con-saldo(mese), con-currency; aggiornati per sottoconto/conto/mastro
COGPNCON cogpncon.cpy Piano dei conti: lettura del mastro per determinare pco-reddito
FEURLAV = GIORNA#$.ARC (record lav-rec pic x(300)) File sequenziale del giornale bollato (aperto in output); ogni movimento vi viene scritto con write lav-rec from pno-rec

Copybook di servizio: cogconta.cpy (conta-rec/conta1-rec), cogpnonc.cpy (pno-rec), utile65.cpy, utils25.cpy, utils52.cpy (data articolo), utilu10.cpy/k-u10.cpy (cambio/edit divisa).

Flusso principale

  1. apri — init, open-files; legge esercizio contabile (euta-tipo 66, codr 1 in conta1-rec e codr 0 in conta-rec); compone il nome del conto di transito ??ECONO.ARC da conta-cone1.
  2. apri38c / apri40 / apri50 — apre in input COGTRANS e in I/O gli archivi prima nota contabilizzata attuale (COGCOATT, nf-name-att) e precedente (COGCOPRE, nf-name-pre) tramite open-pn-contabilizzata; compone il nome del file giornale GIORNA#$.ARC.
  3. a4 / a-tm-risp1 — maschera: chiede conferma (tm-risp1) che il salvataggio degli archivi sia stato eseguito prima di procedere; avviso sul ripristino in caso di fine anomala.
  4. a-inizio-dati — conferma finale (acc-conf, F3); apre in output FEURLAV; scandisce il transito da st-cogtrans-notmin-chia3.
  5. a220 — loop di lettura movimenti (rdnxt-cogtrans); per ogni movimento legge il mastro sul piano conti per ricavare pco-reddito; richiama in sequenza aggiornasaldo, aggiornaconto, aggiornamastr.
  6. a225 — se conto di reddito, sostituisce mastro/conto/sottoconto con il conto di transito (conta1-*); converte l'importo in Euro (COGU10W); scrive il movimento in COGCOATT.
  7. a227 / a230 — scrive la riga sul giornale bollato (FEURLAV); scrive il movimento nell'archivio anno precedente (COGCOPRE, gestendo eventuale data effettiva pno-eff*); aggiorna euta-doc-reddito in tabella (euta-tipo "AF").
  8. a240 — accumula totali Dare/Avere (totd/tota); aggiorna la maschera con documento, data articolo e conto in lavorazione.
  9. a800 — a fine scansione edita i totali; se totd not = tota segnala chiusura non quadrata; altrimenti mostra il riepilogo.
  10. aggiornasaldo / aggiornaconto / aggiornamastr (fino a ex-*) — aggiornano i saldi progressivi (COGSLPCO) rispettivamente a livello di sottoconto, conto e mastro, per l'anno corrente e (se pno-effa) per l'anno precedente, creando il record saldo se assente; conversione divisa via COGU10W.
  11. fine / z-chiudi — chiude tutti gli archivi ed esce.

Sottoprogrammi chiamati

Programma Ruolo
COGU10W Cambio ed editing importi in divisa (k-u10-cambio, k-u10-edita)
COGS52W Editing/formattazione della data articolo (s52-data-edit)

Note

  • Il programma non elabora se il transito ??ECONO.ARC non contiene movimenti ("Nessun Movimento da Contabilizzare").
  • La quadratura Dare/Avere e' un controllo a posteriori: se fallisce, i movimenti sono gia' stati scritti negli archivi, per questo la maschera richiede esplicita conferma del salvataggio preventivo e avvisa di ripristinare gli archivi in caso di anomalia.
  • Gli errori gravi su saldi, giornale o archivi prima nota interrompono l'elaborazione (go to fine) con messaggio di ripristino: l'elaborazione non e' transazionale.
  • Il sorgente usa estesamente GO TO fra i paragrafi di apertura/elaborazione (a220..a240, aggiorna*55/100/200) e PERFORM ... THRU (cstato thru ex-cstato, aggiornasaldo thru ex-aggiornasaldo, ecc.): forme legacy della conversione, da non replicare.
  • A fine procedure division sono incluse manualmente le chiavi secondarie del conto di transito: cogtrans.k00 e cogtrans.k03.