Vai al contenuto

COGC02 — Creazione articolo di chiusura conti di reddito

Intestazione

Campo Valore
Sorgente cbl/cogc02.cbl
Program-ID COGC02
Tipo Programma interattivo con maschera (Screen Designer)
Posizione menu Contabilita' > Bilancio > Chiusura/Riapertura Esercizio > Creazione Art.Chiusura C/Reddito

Scopo

COGC02 genera l'articolo contabile di chiusura dei conti di reddito (costi e ricavi) a fine esercizio. Scorre i saldi progressivi del piano dei conti (COGSLPCO), individua i conti di reddito e produce, per ciascuno, una scrittura di prima nota in doppia partita che azzera il conto contro il relativo conto di riepilogo (tipicamente il conto economico / profitti e perdite).

Le scritture generate non vengono inserite direttamente nella prima nota definitiva: sono scritte in un archivio di transito (ECONO.ARC, file logico cogtrans) creato in open output. Al termine, previa conferma dell'operatore, il programma richiama COGC03 per la stampa/consolidamento dell'articolo di chiusura.

L'operatore inserisce da maschera i parametri dell'articolo (data articolo, data di competenza economica, tipo operazione, descrizione sui movimenti); la data effettiva e l'esercizio sono ricavati dalla tabella dati contabili (COGTABEL tipo 66, record conta-rec).


Struttura / Flusso

Il programma segue lo schema standard "maschera con accept in sequenza + GO TO tra paragrafi di campo" tipico dei programmi contabili convertiti a Windows.

  1. apri / main: controllo abilitazione (ctr-abil), init programma (z-99-init-program), caricamento lingua, lettura azienda (rd-azi), apertura file (open-files). Attiva i tasti funzione F3 (conferma), F8 (calendario) e F8 (aiuto tipo operazione).
  2. Legge da COGTABEL il record esercizio contabile (euta-tipo = 66, euta-codr = 0) e lo travasa in conta-rec.
  3. Costruisce il nome fisico dell'archivio di transito cogtrans in w-trs-name: ext-arc-dir + slash OS + conta-cone1(2:3) + "ECONO.ARC".
  4. Costruisce e visualizza la maschera (rd-msk-pop, z-costruisci-controlli).

  5. a4 (ricarica dati maschera): rilegge COGTABEL tipo 66, imposta l'esercizio visualizzato (tm-esercizio1/tm-esercizio2 da conta-cone1/conta-cone2), la data di chiusura precedente (conta-conchiupre*) come data effettiva e come data di competenza proposta, formatta le date via COGS52W e imposta la descrizione di default "CHIUSURA CONTI DI REDDITO " + conta-conchiuprea.

  6. Accept dei campi (ognuno un paragrafo con navigazione F2 = campo precedente, ESC, F-event mouse):

  7. a-tm-dataart — data articolo (via COGS52W, con calendario F8).
  8. a-tm-data-competenza — data di competenza economica del documento (via COGS52W).
  9. a-tm-t-o — tipo operazione (accept, con aiuto F8 tramite COGE65).
  10. a-tm-descri — descrizione sui movimenti.
  11. a-inizio-dati — validazione complessiva (x-imposta-conferma) e attesa conferma F3.

  12. Elaborazione (da a-inizio-dati):

  13. open output cogtrans; se il file e' gia' in uso (stato ≠ "00") esce con messaggio "Funzione gia' in uso!!!".
  14. a220 / a220-loop: scan sequenziale di COGSLPCO (st-cogslpco-notmin + rdnxt-cogslpco) su tutti i conti; per ogni saldo progressivo:
    • salta i record con con-anno diverso dall'esercizio (tm-esercizio);
    • a ogni cambio mastro rilegge COGPNCON (rd-cogpncon) per verificare che il mastro sia sul piano dei conti;
    • considera solo i conti di reddito (pco-reddito = "R");
    • verifica che il conto di riepilogo sia completo (pco-riemastro / pco-rieconto / pco-riesotco non a zero), altrimenti blocca con messaggio;
    • scarta i mastri (record con con-sconto = 0);
    • doppia passata governata da fl-fine: nella prima passata (" ") elabora i conti con saldo dare < avere, nella seconda ("F") quelli con dare > avere, in modo da separare i due segni nell'articolo;
    • se con-prodare ≠ con-proavere, chiama x1-wr-pno che scrive le due righe contrapposte in cogtrans.
  15. a800: alterna le due passate (" ""F"), poi ferma il clessidra.
  16. a805: chiede conferma stampa ("Vuoi la stampa dell'articolo?"); su F3 chiude i file e chiama COGC03.

  17. fine / z-chiudi: chiusura file (cogpncon, cogtrans, feurtab, cogslpco), chiusura finestra, z-99-exit-program, exit program.

Generazione delle righe di prima nota (x1-wr-pno)

Per ogni conto di reddito con saldo non pareggiato genera due righe contrapposte nel record pno-rec (poi copiato in trs-rec e scritto con wr-cogtrans):

  • Riga sul conto di riepilogo (pco-riemastro/pco-rieconto/pco-riesotco), importo = con-prodare − con-proavere, segno "D" se dare > avere altrimenti "A".
  • Riga sul conto di reddito (con-mastro/con-conto/con-sconto), con segno invertito rispetto alla prima.

Numerazione documento: alla prima scrittura (ctr = 1) x11-agg-num richiama COGS25 (progressivo tipo 5, anno/mese dalla data articolo) per ottenere il numero documento (documento); il progressivo riga (pno-pro) e' incrementato per ogni scrittura. La data di competenza economica (pno-data-econ) e' valorizzata con tm-data-competenza (modifica 060919; in precedenza usava pno-datamov). Anno prima nota (pno-anno) = conta-cones9 (esercizio in corso).

Controlli di campo

  • x-controlla-tm-dataart — data articolo obbligatoria e non anteriore alla data effettiva.
  • x-controlla-tm-data-competenza — segnala (non bloccante) se la data di competenza differisce dalla data di chiusura precedente in conta-conchiupre*.
  • x-controlla-tm-t-o — tipo operazione esistente su COGTABEL tipo 65 (ne recupera la descrizione euta-descr).
  • x-controlla-tm-descri — descrizione movimento obbligatoria.

File e tabelle principali

File logico Record Modalita' Uso
COGSLPCO con-rec Input (scan) Saldi progressivi piano dei conti. Chiave con-chia (con-mastro, con-conto, con-sconto, con-anno); importi con-prodare / con-proavere, con-currency. Fonte dei saldi da chiudere
COGPNCON pco-rec Input Anagrafica piano dei conti. Usa pco-reddito (flag conto di reddito "R") e il conto di riepilogo pco-riemastro / pco-rieconto / pco-riesotco
cogtrans (ECONO.ARC) trs-rec Output Archivio di transito delle scritture di chiusura generate. Record con layout prima nota (cogpnonc.cpy con prefisso trs-); chiavi multiple (trs-chia, trs-chia2, trs-chia3, trs-cc, trs-valuta, trs-partita, trs-chia7 = trs-data-econ + trs-chia)
COGTABEL euta-rec Input Tabelle generiche contabili. Tipo 66 = esercizio contabile (letto in conta-rec); tipo 65 = tipi operazione
FEURTAB fil-rec Input Tabella nomi file (cogfiles.cpy)

Il record di prima nota generato usa pno-rec (cogpnonc.cpy): chiave pno-chia (pno-anno, pno-docum, pno-pro), conto (pno-mastro/pno-conto/pno-sconto), importo pno-importo, pno-segno, pno-data-econ, pno-to, pno-des, pno-currency.


Copybook principali

Screen Designer (gestiti dal tool Screens, non presenti in cpy/)

Copybook Contenuto
cogc02.select SELECT dei file
cogc02.fd FD dei file
cogc02.wrk Working storage della maschera
cogc02.decla Declaratives
cogc02-01.scr Definizione screen
cogc02.prc Paragrafi di accesso ai file (verbi rd-/st-/rdnxt-/wr-)

Strutture dati

Copybook Contenuto
cogfiles.cpy FD di FEURTAB (fil-rec)
cogconta.cpy Record conta-rec (dati contabili generici: esercizio, date di chiusura)
cogpnonc.cpy Record prima nota pno-rec (usato sia come layout sia, con replacing "pno-" by "trs-", come record di cogtrans)
cogazien.cpy Dati azienda
wcont.cpy / wcont1.cpy Aree di lavoro contabili (linkage)
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy Working storage comuni
feurtab.fd FD tabella file Eurosystem
cogtrans.k00 Verbi di accesso al file di transito cogtrans

Utility (interfacce di CALL)

Copybook Contenuto
utile65.cpy Interfaccia COGE65 (util-e65: e65-called, e65-caller, e65-out-cod)
utils25.cpy Interfaccia COGS25 (util-s25: s25-i-mag, s25-i-cod, s25-i-aa, s25-i-mm, s25-o-num)
utils52.cpy Interfaccia COGS52W (util-s52: s52-ope, s52-data, s52-data-edit, s52-exception, s52-o-control-id)

Fine procedure division

grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogc02.prc, cogtrans.k00.


Sottoprogrammi chiamati (CALL)

Programma Sorgente Scopo
COGS52W cbl/cogs52w.cbl Edit/gestione date con calendario (data articolo, data effettiva, data competenza)
COGE65 cbl/coge65.cbl Aiuto/gestione tabella tipi operazione (F8 sul campo tipo operazione)
COGS25 cbl/cogs25.cbl Assegnazione numero documento progressivo (tipo 5) per l'articolo di chiusura
COGC03 cbl/cogc03.cbl Stampa / consolidamento dell'articolo di chiusura generato in cogtrans

Note

  • L'archivio cogtrans (ECONO.ARC) e' dichiarato manualmente nel sorgente (SELECT/FD nel corpo del programma) e non tramite Screen Designer; il suo record e' derivato da cogpnonc.cpy con replacing leading "pno-" by "trs-". I verbi di accesso arrivano da cogtrans.k00.
  • L'open output cogtrans serve anche da lock funzionale: se il file e' gia' aperto da un'altra sessione, la creazione fallisce e il programma segnala "Funzione gia' in uso!!!".
  • La doppia passata su COGSLPCO (fl-fine " " poi "F") raggruppa nell'articolo prima i conti a saldo avere e poi quelli a saldo dare; non e' un filtro sui dati ma un ordinamento del risultato.
  • Modifica 060919: introdotta la gestione esplicita della data di competenza economica (tm-data-competenza), proposta uguale alla data di chiusura precedente e riportata su pno-data-econ di ogni riga generata (in precedenza si usava pno-datamov).
  • Il segno delle due righe generate e' sempre contrapposto (doppia partita): una sul conto di reddito, l'altra sul conto di riepilogo indicato in anagrafica piano dei conti.
  • Se un conto di reddito ha il conto di riepilogo mancante o incompleto, l'elaborazione si interrompe con messaggio bloccante (non genera un articolo parziale).