COG014 — Bilancio di verifica per centro di costo¶
Sorgente: cbl/cog014.cbl | Tipo: stampa/report batch con maschera di selezione | Program-ID: cog014
Menu: Contabilita' > Centri di Costo > Bilancio di Verifica ; Contabilita' > Centri di Costo > Stampe > Bilancio di Verifica
Scopo¶
Stampa il bilancio di verifica limitato ai conti di reddito, ripartiti per centro di costo/profitto. Il programma scandisce i movimenti contabili dei conti economici (flag pco-reddito = "R"), ne recupera la ripartizione per centro di costo dai movimenti CDC (COGMOVCC), accumula dare/avere in un file di transito indicizzato e produce la stampa con rotture per mastro/conto e totali, con calcolo opzionale di Utile/Perdita d'esercizio.
L'ordinamento della stampa e' pilotato da tm-rispor: valore G (default) produce l'elaborazione ordinata per contabilita' generale (paragrafo ela-gen, chiave alternativa tra-chia1 su centro di costo+conto), altrimenti la stampa procede per chiave primaria del transito (mastro/conto/sottoconto). Sono gestiti: bilancio dell'esercizio precedente o corrente (tm-esprec), bilancio parziale per intervallo di date (tm-parziale/parz-00), livello di dettaglio (mastro/conto/sottoconto — tm-tipobil), scelta fra data registrazione e data competenza economica (tm-data-reg/tm-data-econ) e divisa di stampa (tm-divisa).
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
FEURTAB / COGTABEL |
cogfiles.cpy (FD), cog014.fd |
Tabelle generiche: tipo 66 (parametri esercizio → conta-rec), tipo 56 (divise, euta-ve-des) |
COGPNONC |
via cog014.fd / paragrafi st-/rdnxt-cogpnonc |
Prima nota non contabilizzata + saldi: pno-mastro/conto/sconto, pno-segno, pno-importo, pno-datamov, pno-dataeff, pno-data-econ, pno-currency |
COGCOATT |
cogcoatt.cpy |
Prima nota contabilizzata (attuale/precedente): att-mastro, att-segno, att-importo, att-datamov, att-dataeff, att-data-econ, att-currency |
COGMOVCC |
cogmovcc.cpy |
Movimenti per centro di costo/profitto: cdc-mastro/conto/sconto, cdc-liv1/2/3, cdc-importo, cdc-segno, cdc-currency (chiave cdc-chia = chiave documento p.nota) |
COGPNCON |
via rd-cogpncon |
Piano dei conti: pco-reddito, pco-des (descrizioni conto) |
COGCCOPR |
cogccopr.cpy |
Anagrafica centri di costo: cco-liv1/2/3, cco-des |
transito |
FD inline (tra-rec) |
File di transito indicizzato (temporaneo #$cog014.<operatore>): chiave tra-chia (mastro/conto/sconto/cco), chiave alt. tra-chia1 (cco+conto); accumula tra-dare/tra-avere |
sta (flsta) |
flsta.cpy |
File di stampa |
Struttura di servizio cogconta.cpy (conta-rec): codici/date esercizio (conta-cone1/cones1, conta-conepre9, conta-cones9, conta-conchiupre9, conta-dachiur). Servizi: COGS52/utils52 (date), COGS54/utils54 (stampa), COGU10W/utilu10 (cambio divisa/editing importi), COGE22/utile22 (aiuto divise), getdcont.cpy (divisa conto), open-pn-contabilizzata (apertura contabilizzato PRE/ATT).
Flusso principale¶
apri— init,rd-azi,open-files; crea e apre in i-o (con lock) il file di transito#$cog014.<operatore>(stato <> 00 = "Programma gia' in uso").a4— azzera accumulatori; legge la tabella esercizio (tipo 66) inconta-rec; imposta default maschera (anno, date, divisa conto viaget-divisa-conto,tm-tipobil='M',tm-rispor='G').a-tm-esprec...a-tm-divisa— catena di accept dei parametri (esercizio precedente, parziale, date, data reg/econ, utile/perdita, livello dettaglio, ordinamento, divisa con aiutoCOGE22).a-riga-fine—x-imposta-conferma; compone le intestazioni di stampa in base atm-parziale.a222— conferma stampa viaCOGS54; determina i codici esercizio daconta-rec.- Caricamento transito:
tm-parziale = "S"→parz-00: legge contabilizzato PRE/ATT (COGCOATT) e p.nota (COGPNONC) filtrando per intervallotm-dat2..tm-dat1.- altrimenti →
read-cont(contabilizzato) + scansioneCOGPNONC(a160/leggi60): per ogni movimento di conto di reddito recupera la ripartizione CDC daCOGMOVCC(o usa il movimento intero se non ripartito) e chiamaupd-transito. upd-transito— accumula importo (convertito intm-divisaviaCOGU10W) in dare/avere del record di transito, azzerando conto/sottoconto o liv2/liv3 secondotm-tipobil.- Stampa:
elabora00/elabora01...a999(per contabilita' generale viaela-gensetm-rispor='G'): scansione del transito, rotturerotgruppo/rotconto, righe conto (rig5) e righe centro di costo (rig7inst-tr-00/st-tr-01), totali e, se richiesto, determinazione Utile/Perdita (a999-a). fine/fine1/z-chiudi— chiude la stampa (COGS54after-print) e i file, elimina implicitamente il transito, termina.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
COGS54 |
Selezione stampante e gestione del ciclo di stampa (before/after print) |
COGS52 |
Editing/validazione date (inizio/fine bilancio) |
COGU10W |
Conversione cambio divisa e editing/visualizzazione importi |
COGE22 |
Aiuto/gestione divise (F8 sul campo divisa) |
Note¶
- Il bilancio e' limitato ai conti di reddito (
pco-reddito = "R"): i conti patrimoniali non compaiono. La sorgente dei dati e' duplice — contabilizzato (COGCOATT, aperto come PRE o ATT tramiteopen-pn-contabilizzata) e non contabilizzato/saldi (COGPNONC). - La ripartizione per centro di costo viene da
COGMOVCC(chiave = chiave documento di p.nota); un movimento non ripartito viene attribuito integralmente al conto senza CDC (upd-transitocon liv a zero). - Il campo
tm-rispordistingue due percorsi di stampa completi:G(contabilita' generale, chiave alt.tra-chia1, paragrafiela-gen*) e il ramo standard per centro di costo. La logica di azzeramento livelli inupd-transito(commenti190516) dipende datm-tipobil. - Il file di transito e' per operatore (
#$cog014.<wo-oper>), aperto con lock: apertura in output con stato <> 00 segnala programma gia' in uso. - Il sorgente fa uso pervasivo di
GO TOfra i paragrafi di lettura/rottura/stampa e diPERFORM ... THRU(intesta thru ex-intesta,rotgruppo thru ex-rotgruppo,upd-transito thru ex-upd-transito,read-cont thru ex-read-cont,parz-00 thru ex-parz-00): forme legacy della conversione, da non replicare.