Vai al contenuto

COGE80 -- Stampa Giornale Bollato

Sorgente: cbl/coge80.cbl | Program-ID: COGE80 | Tipo: Stampa

Menu: Contabilita' > Bilancio > Chiusura/Riapertura Esercizio > Stampa Giornale Bollato


Scopo

Produce la stampa del giornale bollato di contabilita', il registro cronologico ufficiale dei movimenti contabili. Legge il file sequenziale GIORNA#$.ARC (generato dalla contabilizzazione) e stampa i movimenti con intestazione aziendale, numerazione progressiva dei fogli, totali giornalieri e di periodo.

Supporta due formati di stampa (standard e riepilogativo), intestazione con dati aziendali, salto pagina, annullo automatico delle righe rimanenti e numerazione progressiva righe bollate.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB (COGTABEL) Indicizzato Input Tabella generica (tipo 66: esercizio, tipo 65: tipi operazione per descrizione causale)
STAGIOR Sequenziale Input File giornale contabilizzato (GIORNA#$.ARC nella dir archivi)
COGPNCON Indicizzato Input Piano dei conti (via coge80.select)
COGGEANA Indicizzato Input Anagrafica generale (via coge80.select)
FLSTA Sequenziale Output File di stampa

Struttura STAGIOR

Il record STAGIOR utilizza la copybook cogpnonc.cpy, ovvero la struttura dei movimenti di prima nota contabilizzata (pno-*): - pno-mova, pno-movm, pno-movg: anno/mese/giorno del movimento - pno-mastro, pno-conto, pno-sconto: codice conto - pno-importo: importo - pno-segno: "D" (dare) o "A" (avere) - pno-des: descrizione del movimento - pno-to: tipo operazione - pno-docum1, pno-docum: numeri documento/protocollo - pno-currency: divisa - pno-fl-pro: flag provvisorio

Copybook utilizzate

Copybook Descrizione
feurtab.fd SELECT della tabella COGTABEL
coge80.select SELECT generati da Screens (COGPNCON, COGGEANA)
coge80.fd FD generata da Screens
coge80.wrk Working-storage generata da Screens
coge80.decla Declaratives per gestione errori I/O
coge80-01.scr Screen principale
cogpnonc.cpy Struttura record prima nota contabilizzata (pno-*)
flsta.fd / flsta.cpy File di stampa
cogfiles.cpy Definizione record COGTABEL (euta-*)
k-u10.cpy Costanti per COGU10W
wgrave.cpy Variabili messaggi gravi
wnscr.cpy Variabili screen
wopenf.cpy Variabili apertura file
wstato.cpy Variabili di stato
cogazien.cpy Dati azienda corrente (az-bol-n-rig, az-st-nriga, az-st-ndoc, az-bol-spz-int, az-personal)
utils25.cpy Utility numeratori progressivi (COGS25)
utils52.cpy Utility gestione date (COGS52W)
utils54.cpy Utility stampa (COGS54)
utilu10.cpy Utility conversione importi (COGU10W)
utilncnf.cpy Utility configurazione (RNEWCONF)
wcont.cpy / wcont1.cpy Struttura linkage standard

Struttura del programma

Flusso principale

  1. apri: inizializzazione, apertura file, apertura STAGIOR (GIORNA#$.ARC nella directory archivi). Se il file non esiste o e' vuoto, segnala e esce. Legge il primo record per determinare anno (dep-anno) e divisa (w-currency-conto). Calcola max-riga = az-bol-n-rig - 8.

  2. Configurazione: lettura parametri da RNEWCONF (percorso "PRNTCOGE80"):

  3. tm-cfg-ord: ordinamento
  4. tm-cfg-sta: stampa intestazione (default)
  5. tm-cfg-intesta: testo intestazione personalizzata
  6. tm-cfg-tp-st: tipo stampa ("R" = riepilogativo)
  7. tm-cfg-tp-cn: tipo contabilizzazione

  8. a4: inizializzazione maschera, default tm-pagina da configurazione, tm-rispinte = "N", tm-flannul = "S".

  9. Parametri (sequenza di accept):

  10. a-tm-pagina: stampa intestazione S/N (F1 per configurazione)
  11. a-tm-rispinte: salto pagina S/N (visibile solo se non intestazione)
  12. a-tm-anno: anno per numerazione (COGS52W per calendario). Proposto automaticamente.
  13. a-tm-num-foglio: numero foglio iniziale. Letto da COGS25 (numeratore 37 per anno).
  14. a-tm-nriga: numero riga bollata iniziale (visibile se az-st-nriga != "N"). Letto da COGS25 (numeratore 36 per anno).
  15. a-tm-flannul: annullo automatico righe rimanenti S/N

  16. a-riga-fine: validazione, scelta stampa (COGS54).

  17. Elaborazione stampa:

  18. Se intestazione: z-intesta stampa intestazione iniziale
  19. Se salto pagina: s-intesta stampa intestazione sottocolonne
  20. a010 -> a013: loop lettura sequenziale STAGIOR
  21. a016a/a016b: rottura mese (se cambia pno-movm, esegue rotmese)
  22. a017a/a017f: rottura giorno (se cambia pno-movg, esegue rotgior)
  23. a030/a040/a050: risoluzione conto e anagrafica (COGPNCON, COGGEANA)
  24. a055w: formattazione e scrittura riga stampa (due formati: standard rdx/rd1/rd2 oppure riepilogativo e2x/e3x)
  25. Accumulo totali giornalieri (totgiod/totgioa) e mensili (totmesd/totmesa)

  26. a999: fine file, stampa ultimo totale mese.

  27. b300-ok / b300-loop: se tm-flannul = "S", riempie le righe rimanenti con asterischi.

  28. b400-ex: aggiornamento numeratori (foglio tramite a-intesta, riga tramite a-riga).

Logica dei cambi pagina e intestazione

Condizione Azione
tm-pagina = "S" Stampa intestazione completa con dati aziendali, P.IVA, anno, pagina
tm-rispinte = "S" e ctr > max-riga Salto pagina e nuova intestazione (via intesta)
tm-flannul = "S" Annullo righe rimanenti con asterischi dopo ultimo movimento

Formati di stampa

Formato standard (tm-cfg-tp-st != "R"): - Riga intestazione: ri1 (N.DOC/N.RIGA + DATA DOC. + COD.CONTO + DESCRIZIONE + IMPORTO DARE/AVERE) - Riga sottointestazione: ri2 (DESCRIZIONE CAUSALE + DESCRIZIONE VARIABILE) + ri3 (RIFERIMENTO ESERCIZIO PRECEDENTE) - Righe dettaglio: rdx (num_doc + data_reg + conto + descrizione + dare/avere) + rd1 (causale + descrizione) + rd2 (data registrazione) - Righe totali: rt (TOTALE GIORNO/PERIODO + dare + avere)

Formato riepilogativo (tm-cfg-tp-st = "R"): - Riga intestazione: e2d (Numero + ES + Dt.Reg. + C/Conto + Descrizione + N.Prot. + Dare + Avere) - Righe dettaglio: e2x (nrig + eser + data_reg + conto + descr + des_mov + n_prot + dare + avere) - Sottorighe: e3x (descrizione movimento) - Righe totali: e2t

Chiamate esterne

Programma Modalita' Scopo
COGS54 CALL Gestione stampa (anteprima/stampante/file)
COGU10W CALL Edita importi e conversione divisa
COGS52W CALL Gestione date con calendario
COGS25 CALL Lettura/aggiornamento numeratori progressivi (foglio=37, riga=36)
RNEWCONF CALL Lettura/modifica configurazione (percorso PRNTCOGE80)
COGS95 CALL (via perform z-s95-*) Gestione check-box

Variabili principali

Variabile Tipo Descrizione
tab-maschera 01 tm-pagina, tm-rispinte, tm-anno, tm-num-foglio, tm-nriga, tm-flannul
tm-cfg 01 Configurazione: tm-cfg-ord, tm-cfg-sta, tm-cfg-intesta, tm-cfg-tp-st, tm-cfg-tp-cn
dep-anno 77 Anno di competenza (dal primo record STAGIOR)
sav-num-foglio 77 Numero foglio iniziale (per confronto e aggiornamento)
sav-nriga 77 Numero riga iniziale (per confronto e aggiornamento)
totgiod / totgioa 77 Totali giornalieri dare/avere
totmesd / totmesa 77 Totali periodo dare/avere
max-riga 77 Righe per pagina (az-bol-n-rig - 8)
ctr 77 Contatore righe nella pagina corrente
comgior / commese / comanno 77 Valori correnti per rottura giorno/mese/anno
w-currency-conto -- Divisa (E=Euro, L=Lira)

Configurazione RNEWCONF

Percorso: PRNTCOGE80, pacchetto: "C"

Chiave Variabile Descrizione
euta-c083-ord tm-cfg-ord Ordinamento stampa
euta-c083-sta tm-cfg-sta Stampa intestazione (default)
euta-c083-intesta tm-cfg-intesta Testo intestazione personalizzata
euta-c083-tp-st tm-cfg-tp-st Tipo stampa (vuoto=standard, "R"=riepilogativo)
euta-c083-tp-cn tm-cfg-tp-cn Tipo contabilizzazione

Note

  • Il file STAGIOR viene aperto in input dalla directory archivi come GIORNA#$.ARC.
  • La personalizzazione "EX" (az-personal = "EX") disabilita la stampa del totale periodo.
  • I numeratori progressivi (foglio e riga) vengono aggiornati automaticamente solo se il valore finale e' diverso da quello iniziale.
  • La visibilita' del campo "Numero Riga" dipende dalla configurazione aziendale az-st-nriga ("S" = numero riga progressivo, "D" = numero riga per documento, "N" = non visibile).
  • Il campo az-st-ndoc controlla se stampare il numero documento ("N" = no).