Vai al contenuto

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

  1. 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").
  2. a4 — azzera accumulatori; legge la tabella esercizio (tipo 66) in conta-rec; imposta default maschera (anno, date, divisa conto via get-divisa-conto, tm-tipobil='M', tm-rispor='G').
  3. 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 aiuto COGE22).
  4. a-riga-finex-imposta-conferma; compone le intestazioni di stampa in base a tm-parziale.
  5. a222 — conferma stampa via COGS54; determina i codici esercizio da conta-rec.
  6. Caricamento transito:
  7. tm-parziale = "S"parz-00: legge contabilizzato PRE/ATT (COGCOATT) e p.nota (COGPNONC) filtrando per intervallo tm-dat2..tm-dat1.
  8. altrimenti → read-cont (contabilizzato) + scansione COGPNONC (a160/leggi60): per ogni movimento di conto di reddito recupera la ripartizione CDC da COGMOVCC (o usa il movimento intero se non ripartito) e chiama upd-transito.
  9. upd-transito — accumula importo (convertito in tm-divisa via COGU10W) in dare/avere del record di transito, azzerando conto/sottoconto o liv2/liv3 secondo tm-tipobil.
  10. Stampa: elabora00/elabora01...a999 (per contabilita' generale via ela-gen se tm-rispor='G'): scansione del transito, rotture rotgruppo/rotconto, righe conto (rig5) e righe centro di costo (rig7 in st-tr-00/st-tr-01), totali e, se richiesto, determinazione Utile/Perdita (a999-a).
  11. fine/fine1/z-chiudi — chiude la stampa (COGS54 after-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 tramite open-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-transito con liv a zero).
  • Il campo tm-rispor distingue due percorsi di stampa completi: G (contabilita' generale, chiave alt. tra-chia1, paragrafi ela-gen*) e il ramo standard per centro di costo. La logica di azzeramento livelli in upd-transito (commenti 190516) dipende da tm-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 TO fra i paragrafi di lettura/rottura/stampa e di PERFORM ... 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.