Vai al contenuto

COGE83 -- Stampa Schede Contabili (con creazione saldi)

Sorgente: cbl/coge83.cbl | Tipo: Programma interattivo a maschera con stampa | Program-ID: COGE83

Menu: Contabilita' > Prima Nota > Stampe > Schede Contabili


Scopo

Stampa le schede contabili (mastrini) dei conti del piano dei conti in un intervallo di date, calcolando contestualmente i saldi. Presenta una maschera di richiesta parametri (esercizio, intervallo conti, intervallo date, opzioni di stampa) e produce:

  • una stampa formattata (via COGS54, spool/stampante), oppure
  • una stampa su modello Word/Area Report (WORDMDL) quando la configurazione area-report-attivo e' abilitata, oppure
  • il solo calcolo dei saldi (opzione "solo calcolo") senza stampa.

Durante l'elaborazione riversa i movimenti selezionati in un file di transito (COGTRANS), da cui rilegge in ordine di conto per stampare le righe di dettaglio e i saldi (di periodo, progressivo, iniziale).

Il programma e' anche riutilizzato come motore di stampa da COGE87: quando il campo di linkage e83-progr = "COGE87" la maschera viene bypassata e i parametri arrivano gia' valorizzati dal chiamante (paragrafo apri -> salto a a-riga-stp).


File e tabelle

Tabella Ruolo / campi principali
FEURTAB / COGTABEL Tabelle generiche azienda: tipo 66 (parametri contabilita', conta-rec: esercizi conta-cones9/conta-conepre9, conta-cone1/conta-cone2), tipo 56 (divise, euta-ve-des)
COGCOATT Movimenti contabili attuali/contabilizzati (record att-*: att-con, att-datamov, att-docum, att-importo, att-divimpo, att-data-econ, att-rif-giornale). Scansione per chiave 2 (st-cogcoatt-notmin-chia2)
COGPNONC Prima nota non contabilizzata (record pno-*: pno-con, pno-datamov, pno-fl-pro provvisorio, pno-data-econ). Scansione per chiave 2 (st-cogpnonc-notmin-chia2)
COGPNCON Piano dei conti (pco-*: pco-tipoanagr tipo anagrafica C/F/S)
COGGEANA Anagrafiche generiche (ana-tipo, ana-cod, ana-nome) per decodifica intestazione conto anagrafico
COGSALCO Saldi conti: file di appoggio creato in $TMP/COGSALCO.ARC, riscritto con i saldi calcolati (sa-rec, sa-importo, sa-progr)
COGTRANS File di transito temporaneo ($TMP/#$COGE83.<oper>) dei movimenti selezionati; record trs-rec (chiave trs-chia1 per conto/data/docum, chiave alternata trs-chia2 per nome). Riletto in a029/a030 per la stampa
STA (sta) File sequenziale di stampa $TMP/coge83st.<oper> (righe riga-s)
STAMPALF (stampalf) File indicizzato $TMP/#$ALF83.<oper> per la stampa in ordine alfabetico (alf-rec, chiave alf-chia = nome+conto+progr)

I movimenti e i saldi sono acceduti tramite i gestori tabella standard (rd-, st-...-notmin, rdnxt-, wr-cogtrans).

Copybook principali

Copybook Descrizione
coge83.select, coge83.fd, coge83.wrk, coge83-01.scr, coge83.prc, coge83.decla Screen Designer (maschera, FD, working, procedure)
feurtab.fd, cogfiles.cpy FEURTAB / layout tabelle generiche
cogsalco.fd/.cpy, cogcoatt.fd/.cpy, flsta.fd/.cpy File saldi, movimenti, stampa
cogconta.cpy Layout conta-rec parametri contabilita'
cogazien.cpy Dati azienda (az-personal, az-ges-ip, az-int)
wgrave, wnscr, wopenf, wstato Working storage standard
k-personal.cpy Costanti personalizzazioni (k-personal-unione-ag-bo)
k-u10.cpy, utilu10.cpy Edit importi (COGU10W)
utilncnf.cpy Linkage RNEWCONF
utilgesstr.cpy Linkage GESSTR (giustificazione/formattazione stringhe)
utilwordmdl.cpy, utilcogpa3.cpy, utilcogsc1.cpy Stampa su modello Word / Area Report
utile22.cpy, utils52.cpy, utils54.cpy, utils67.cpy, utils99.cpy, utilu40.cpy Linkage sottoprogrammi divisa/data/spool/conto/help/selezione conti
wcont.cpy, wcont1.cpy, utile83.cpy Linkage in ingresso (stringhe, util-e83)
getdcont.cpy Utility contabili
cogcoatt.k02, cogpnonc.k02, cogtrans.k01 Chiavi secondarie/primarie aggiunte manualmente

Chiamate ad altri programmi

Modulo Scopo
RNEWCONF Lettura configurazioni RNEWCONF (chiavi STAMPA-RIGA-AGGIUNTIVA, area-report-attivo)
COGSC1 Lettura configurazione pacchetto (personalizzazione area-report-attivo per programma)
COGS52W Gestione/validazione campi data con calendario F8 (tm-data-da, tm-data-a)
COGS54 Selezione emulazione/dispositivo di stampa; ritorna righe per pagina (max-rig)
COGS67W Aiuto/selezione conto del piano dei conti (via z-s67-...)
COGS99W Help maschera
COGS95 / COGS60W Toggle SI/NO e opzioni a scelta (chiamate incapsulate in z-s95-.../z-s60-...)
COGE22 Aiuto/gestione divise (F8 su campo divisa)
COGU40 Selezione multipla conti (modalita' "tipo selezione = S")
COGU10W Edit/formattazione importi con divisa
COGPA3 Reperimento modello Word/Area Report e composizione tabelle (cogpa3-modello, cogpa3-tabelle)
WORDMDL Motore di stampa su modello Word/XML (apertura XML, scrittura tag, chiusura)
WIN157 Selezione esercizio contabile (anno1/anno2)
GESSTR Elaborazione stringhe (giustificazione testo di stampa)
C$JUSTIFY Routine ACUCOBOL di allineamento campi
DTPRG / PRGDT Conversione data <-> numero progressivo giorni (calcolo data inizio esercizio)

Flusso / Paragrafi principali

  1. main/apri: init programma, lettura azienda (rd-azi), apertura file; lettura configurazioni RNEWCONF; apertura del transito COGTRANS in output (con guardia "Funzione gia' in uso dall'operatore!!" se stato <> "00"), poi in I-O; apertura STAMPALF e COGSALCO di appoggio. Se e83-progr = "COGE87" salta la maschera e va a a-riga-stp.
  2. a4: inizializza la maschera con i valori di default e carica i controlli.
  3. Paragrafi a-tm-...: catena di accept dei campi di maschera (esercizio, esclusione documenti chiusura, movimenti non contabilizzati, elimina schede senza movimenti, solo calcolo, saldi anagrafici, tipo selezione, intervallo conti tm-pc-da/tm-pc-a, ordinamento, date, data registrazione/competenza, date valuta, elimina schede a zero, saldi progressivi, prima nota provvisoria, divisa). Navigazione con F2 (indietro), ESC (annulla), F8 (aiuto/calendario), gestione eventi mouse (x-test-mouse).
  4. a-riga-stp: decide se stampare su Area Report/Word (se area-report-attivo = "S", tm-solo-calc = "N" e ordinamento/opzioni compatibili) oppure su spool classico; apre il file di stampa sta; apre la prima nota contabilizzata (open-pn-contabilizzata) sull'esercizio corretto.
  5. cr-00 / cr-30: scansione di COGCOATT (movimenti) e COGPNONC (prima nota non contabilizzata), applicazione dei filtri (intervallo conti, date, esclusione documenti di chiusura, provvisori, personalizzazioni aziendali) e scrittura dei record selezionati nel transito COGTRANS (wr-cogtrans).
  6. a029 / a030: rilettura sequenziale del transito per conto; ad ogni rottura conto stampa dettaglio e richiama ctr-saldo/rotconto per i saldi di periodo/progressivo/iniziale; scrive su sta/stampalf o emette i tag WORDMDL.
  7. wr-saldo / scrivi-s-periodo: scrittura saldi in COGSALCO e riga "SALDO DEL PERIODO".
  8. fine: chiusura file e uscita.

La gestione errori usa box-msg/vbx-msg/vbx-msg-error per i messaggi a video e perform grave per gli errori gravi di I/O (con file-err, tipo-err, chia-err).

Configurazioni

Il programma legge due chiavi RNEWCONF (pacchetto "C"):

Gruppo Chiave Effetto
COGE83 STAMPA-RIGA-AGGIUNTIVA Valorizza tm-cfg-valu (default per l'opzione "date valuta" della maschera). Letta in x99-confi
stampe area-report-attivo (sub COGE83) Abilita la stampa su modello Word/Area Report. Letta via COGSC1 + RNEWCONF; forzata a "N" per la personalizzazione k-personal-unione-ag-bo e per stampa alfabetica o eliminazione schede a saldo zero

Note

  • Personalizzazioni aziendali: az-personal = "EF" (Eurofrutta) esclude i movimenti con dataeff = 19990531; az-personal = k-personal-unione-ag-bo (Unione Agricoltori BO) usa layout di stampa dedicati (rig4-uni, rig3a-uni, rig5-uni) ed esclude i movimenti di apertura esercizio (mastro 28, conto 1, T.O. "081").
  • Prima nota provvisoria: gestita solo con az-ges-ip = "S"; i flag fl-pno-pro ("P"/"O") pilotano l'inclusione dei provvisori in base a tm-prov/tm-869 (opzioni F8/F6/F9 sul campo provvisoria).
  • Data competenza: con tm-data-econ = "S" i movimenti sono analizzati per data di competenza economica (att-data-econ/pno-data-econ) anziche' per data registrazione; le righe interessate sono marcate con trs-data-comp = "C".
  • La stampa su Area Report/Word e' inibita per l'ordinamento alfabetico e per l'opzione "elimina schede a saldo zero" (richiedono rilettura sequenziale finale non compatibile con la generazione tag a modello).