COGE94 - Stampa Bollato Corrispettivi
Panoramica
COGE94 e' il programma di stampa del registro (bollato) IVA dei corrispettivi. E' un programma di stampa batch con maschera GUI di richiesta parametri: seleziona i movimenti IVA del registro corrispettivi ("CO") per anno di competenza e per intervallo di numeri documento o di date, li stampa in formato tabellare con riepilogo per aliquota IVA e totale generale, e aggiorna il numeratore del foglio del registro. Puo' essere avviato in modo interattivo dal menu oppure richiamato in modo silente dalla stampa bollati multipli (COGY81) tramite il copybook di linkage utilstaiva.cpy: in quel caso salta la maschera e usa i parametri ricevuti. In presenza di configurazione "area report" attiva, la stampa avviene tramite modello Word (WORDMDL) anziche' su stampante testuale.
| Menu |
Percorso |
| Contabilita' |
Documenti Iva > Stampe > Bollato Corrispettivi |
Struttura del programma
File e tabelle utilizzati
| File/Tabella |
Tipo |
Descrizione |
| COGARIVA |
Indexed (I-O) |
Movimenti registro IVA; scansione per anno/registro "CO"/numero documento (chiave iva-chia) |
| COGTABEL / FEURTAB |
Indexed (I-O) |
Tabelle generiche: tipi documento (tipo 68), aliquote IVA (67), esenzioni (69), descrizione registro (tipo "AD"), progressivo IVA corrispettivi (tipo 66); aggiornata a fine stampa |
| COGGEANA |
Indexed |
Anagrafica: cliente interno per intestazione/numerazione registro |
| flsta (STot) |
Print |
File di stampa testuale (riga) verso stampante/emulazione |
Copybook principali
| Copybook |
Descrizione |
| coge94.select / coge94.fd / coge94.wrk / coge94.prc / coge94-01.scr |
Definizioni generate da Screens (file, working, procedure di supporto, maschera) |
| utilstaiva.cpy |
Area di linkage per l'invocazione da stampa multipla (COGY81): parametri, flag prova/definitiva, esito stampato |
| utilcogpa3.cpy |
Interfaccia a COGPA3 per la risoluzione del modello Word (area report) |
| utilwordmdl.cpy |
Interfaccia a WORDMDL per la generazione XML/stampa da modello |
| utils25.cpy / utils52.cpy / utils54.cpy |
Interfacce a COGS25 (numeratori), COGS52W (date/anno), COGS54 (scelta stampante) |
| utilu10.cpy |
Interfaccia a COGU10W per l'edit degli importi in valuta |
| utilncnf.cpy / utilcogsc1.cpy |
Lettura configurazioni RNEWCONF / COGSC1 |
| cogcont1.cpy / cogazien.cpy |
Dati contabili e dati azienda |
Chiamate a sottoprogrammi (CALL)
| Programma |
Scopo |
| RNEWCONF / COGSC1 |
Lettura configurazione "area-report-attivo" per il gruppo "stampe" |
| COGS25 |
Lettura/scrittura numeratore foglio del registro (tipo "76", registro "CO") |
| COGS52W |
Gestione e validazione campi data e anno competenza in maschera |
| COGS54 |
Selezione stampante/emulazione e gestione stampa |
| COGPA3 |
Risoluzione del modello Word e delle tabelle di composizione (TAB-DET, TAB-RIA) |
| WORDMDL |
Apertura/scrittura/chiusura file XML ed esecuzione stampa da modello |
| COGU10W |
Edit formattato degli importi in valuta di conto |
| C$JUSTIFY |
Allineamento a destra dei campi importo nell'export XML |
Logica di elaborazione
apri / main - Inizializzazione: ctr-abil, z-99-init-program, x-carica-lingua, rd-azi, open-files. Legge la configurazione "area-report-attivo" (via COGSC1 e RNEWCONF) in tm-cfg-area-report-attivo. Rileva se e' stato invocato dalla stampa multipla controllando staiva-called = "COGE94": in tal caso copia util-staiva in w-util-staiva e imposta w-dc-called = "S".
a4 - Prepara i default: max-riga da az-bol-n-rig, tipo selezione "D" (per data), flag annullo/numerazione. Se richiamato (w-dc-called = "S") carica i parametri da w-staiva-*, interroga COGS25 per il foglio del registro e salta direttamente a a-riga-fine-called.
- Paragrafi
a-tm-* (a-tm-gip-spazio, a-tm-tipos, a-tm-gip-anno, a-tm-gip-num1/num2, a-tm-gip-datada/dataa, a-tm-numeraz, a-tm-gip-numpag, a-tm-flannul) - Sequenza interattiva di accept dei parametri con navigazione avanti/indietro (F2), controlli e messaggi. La visibilita' dei campi dipende dal tipo selezione (per numero "N" o per data "D") gestita in z-cambia-tm-gip-lines.
a-riga-fine / a-riga-fine-called - Se "area report" attiva, chiama COGPA3 per ottenere il modello e gli indici delle tabelle TAB-DET/TAB-RIA; imposta w-eseguo-stampa-wordmdl = "S". Chiama COGS54 per la stampante. In modalita' richiamata esegue pre-elab per verificare la presenza di movimenti (se assenti, esce segnalando staiva-fl-stampato = "N").
a010 / a013 / a015 / a060 / a055 / a065 / a069-a080 - Scansione di COGARIVA: st-cogariva-notmin + rdnxt-cogariva in loop; filtra per anno, registro "CO", intervallo numeri/date. Per ogni riga ricerca in COGTABEL il tipo documento (segno), l'aliquota IVA e l'esenzione; calcola imponibile, IVA e scorporo; accumula nei totali documento e nella tabella riepilogativa per aliquota (tabrie). Le righe di dettaglio vengono emesse da write-rec.
b055-b070 (b5-riga-riep-iva) - Ordina e stampa la tabella riepilogativa per aliquota IVA; accumula totimpon, totscorpo, totiva.
b080 / b099 - Stampa Totale Generale; aggiorna sulla tabella COGTABEL (tipo 66) il valore IVA corrispettivi (conta1-ivacor). Con tm-flannul = "S" stampa le righe di annullo automatico (b300-loop).
intesta / z-intesta / write-rec / move-tot-val - Gestione intestazione pagina (anagrafica cliente interno, P.IVA, descrizione registro), avanzamento pagina e formattazione righe. In modalita' Word tutta l'emissione passa da scrivi-tag / b5-riga-standard / b5-riga-riep-iva verso i tag XML del modello.
video-reg / registra-numpag / z-chiudi - In modalita' Word chiude e lancia l'esecuzione del modello (WORDMDL "Esegui"); altrimenti chiude la stampa COGS54. Se tm-numeraz = "S", aggiorna il numeratore foglio via COGS25 (in modalita' richiamata solo se elaborazione definitiva w-staiva-prova-def = "D"). Chiude i file ed esce.
Note tecniche
- Configurazione RNEWCONF: gruppo
stampe, chiave area-report-attivo (pacchetto "C", suddivisione "G"/"COGE94"), che determina se la stampa avviene su modello Word (WORDMDL/COGPA3) o in modalita' testuale legacy.
- Numerazione registro: usa COGS25 con tipo numeratore "76" e registro IVA "CO"; il numero foglio passato a Word e' quello "originale" mentre a WORDMDL viene passato -1 (TASK-2946), poiche' WORDMDL somma le pagine effettivamente stampate.
- Il codice contiene numerosi
GO TO ed etichette numeriche (a013, a055, b055, ...) e PERFORM ... THRU: e' codice legacy antecedente alle convenzioni attuali del progetto; da non prendere a modello per nuovi sviluppi.
- Larghezza stampa 110/132 caratteri; edit importi tramite COGU10W in valuta di conto (
w-currency-conto).
- Discrepanza etichetta/funzione: nessuna. L'etichetta di menu "Bollato Corrispettivi" corrisponde alla funzione reale (stampa del registro IVA corrispettivi, registro interno "CO").