COGY78 - Liquidazione IVA Telematica¶
Sorgente: cbl/cogy78.cbl | Program-ID: COGY78 | Tipo: interattivo a griglia con elaborazione e export XML
Menu: Contabilita' > Documenti Iva > Stampe > Liquidazione Iva telematica
Scopo¶
Calcola e produce la comunicazione telematica trimestrale IVA (LIPE - Liquidazione Periodica IVA) da trasmettere all'Agenzia delle Entrate. Il programma lavora in due fasi distinte presentate su un tab-control a due pagine: la prima pagina raccoglie i parametri della dichiarazione (anno, trimestre, dati del dichiarante, opzioni prorata, acconto), la seconda esegue il calcolo e presenta i risultati in griglia modificabile. Alla conferma, genera il file XML nel formato telematico e lo copia nella cartella di destinazione configurata; facoltativamente puo' produrre anche un PDF tramite COGY79.
File e tabelle¶
| File/Tabella | Copybook | Modalita' | Uso |
|---|---|---|---|
| COGTABEL | cogtabel.cpy, cogtabel.fd, cogtabel.k01 |
Input/Output | Legge parametri periodo (tipo 66), saldi IVA periodo precedente (tipo 49), tipi documento RC/NR (tipo 'AT'); aggiorna saldi dopo calcolo |
| COGARIVA | cogariva.cpy, cogariva.fd, cogariva.k01 |
Input sequenziale | Registro IVA: scansione per anno (iva-anno) per calcolo debiti/crediti |
| COGARIV2 | cogariv2.cpy, cogariv2.fd, cogariv2.k01, cogariv2.k02 |
Input/Output | Movimenti IVA con data di competenza diversa dal periodo (prorata, IVA di cassa); chiave secondaria .k02 usata per filtraggio per data competenza |
| COGGEANA | coggeana.cpy, coggeana.fd, coggeana.k01 |
Input | Legge ragione sociale, P.IVA e codice fiscale dell'azienda contribuente |
| COGCNDCF | (inclusa tramite cogy78.select / cogy78.fd) |
Input | Legge il codice fiscale del dichiarante da tabella condizioni cliente |
| COGTRANS | (definito inline nel sorgente) | Output / Input-Output | File temporaneo di lavoro con i dati delle righe VP1-VP14 per ogni periodo del trimestre; eliminato alla chiusura |
| FEURTAB | feurtab.fd, cogfiles.cpy |
Utility runtime | File di supporto AcuCOBOL |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazioni RNEWCONF (batch di 12 chiavi, vedere sezione Configurazioni) |
| COGE05 | Validazione formale del codice fiscale (usato su codice dichiarante, P.IVA controllante, codice fiscale CAF) |
| GRIDADMN | Gestione griglia risultati (Prepara, operazioni su colonne) |
| W$MENU | Popup menu contestuale sulla griglia |
| COPIAF | Copia il file XML generato dalla directory temporanea alla cartella di destinazione configurata |
| DIALOGS | Dialog di conferma con opzioni dopo la creazione dell'XML |
| COGU10W | Utility arrotondamento numerico (per calcolo prorata) |
| COGY79 | Genera la stampa PDF della liquidazione (richiamato da dialog post-estrazione con F9) |
| c$justify | Funzione di sistema AcuCOBOL per giustificazione stringhe XML |
Copybook principali¶
Screen Designer / griglia: cogy78.select, cogy78.fd, cogy78.wrk, cogy78.prc, cogy78.decla, cogy78-01.scr, cogy78.tm, cogy78.imppredf-wrk, wgrid.cpy, utilgdad.cpy
Gestionale: cogazien.cpy, cogfiles.cpy, cogcont1.cpy, k-tipi-cogtabel.cpy, k-personal.cpy
Utility: wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy, utilncnf.cpy, utils52.cpy, utils93.cpy, utilu10.cpy, utilu20.cpy, utilw73.cpy, utilimppredf.cpy, utildlg.cpy, k-u10.cpy, wcont.cpy, u-copiaf.cpy, utilcogy58.cpy, wcont1.cpy, l-copiaf.cpy, acucobol810.def, cxml-wrk.cpy
Logica di elaborazione¶
Apertura: inizializzazione standard, lettura configurazioni RNEWCONF (x-configurazione), lettura dati azienda, creazione del file temporaneo COGTRANS. Caricamento bitmap e pulsante custom F5 (Commessa). Costruzione menu popup griglia.
Pagina filtri (tab 1 - a-pag-filtri): raccoglie i parametri della dichiarazione:
- Anno dichiarazione (validato tra 2017 e 2030)
- Trimestre (1-5; il valore 5 indica il quinto trimestre per regimi speciali)
- Modalita' periodo: mensile ("M") o trimestrale ("T"), letta da conta1-periodo (COGTABEL tipo 66)
- Dati dichiarante: codice fiscale, flag caricamento, P.IVA controllante, ultimo mese, liquidazione di gruppo, codice fiscale obbligato, carica, P.IVA dichiarante, codice fiscale CAF
- Opzioni: flag prorata, percentuale prorata, operazione straordinaria, metodo calcolo acconto, impegno telematico, data impegno
La conferma con F3 o F7 passa alla pagina risultati.
Calcolo IVA (carico-cogtrans): il calcolo viene eseguito solo alla prima apertura dei risultati (w-primo = "N"). Per ciascun periodo (1 mese per regime mensile, 1 trimestre per regime trimestrale):
- Scansione di COGARIVA per l'anno (x-calcola-iva): accumula debiti e crediti per aliquota
- Lettura di COGARIV2 per movimenti con data di competenza diversa (IVA di cassa o prorata)
- Calcolo delle righe VP1-VP14 (struttura della comunicazione telematica), scritte su COGTRANS
- Risoluzione del saldo precedente da COGTABEL tipo 49
- Applicazione prorata se attiva: trs-crediti-prorata = trs-crediti-no-prorata * tm-perc-prorata / 100
- Calcolo interessi trimestrali (riga VP12) con percentuale da configurazione RILIVA.PERCENTUALE-INTERESSI-IVA-TRIM
- Se abilitata, applicazione IVA margine (x-iva-margine)
Pagina risultati (tab 2 - a-pag-risultati): la griglia mostra le righe VP1-VP14 per il periodo selezionato. Le celle modificabili (debiti/crediti) sono editabili direttamente; al termine di ogni modifica (x-controlla-tm-r-crediti, x-controlla-tm-r-debiti) il saldo viene ricalcolato e sincronizzato su COGTRANS. In regime mensile, F5/F6 scorrono tra i 3 mesi del trimestre.
Estrazione XML (x-estrai): alla pressione di F7 con conferma, genera il file XML nel formato telematico LIPE nella directory temporanea (open-xml, xml-frontespizio, xml-dati-contabili) usando le routine cxml-*. Poi lo copia nella cartella configurata (tm-cfg-folder-out) tramite COPIAF con nome IT<PIVA>_LI_<ANNO><TRIMESTRE>.XML. Dialog DIALOGS propone Esc (esci) o F9 (PDF via COGY79).
Chiusura: chiude e cancella il file temporaneo COGTRANS e il file griglia t-grid-det.
Configurazioni RNEWCONF¶
Lette in batch all'avvio tramite call "RNEWCONF":
| Gruppo | Chiave | Campo destinazione | Uso |
|---|---|---|---|
| (azienda) | cfis-caf |
tm-cfg-cfis-caf |
Codice fiscale CAF pre-compilato |
| CONTABIL | tipo-doc-iva-docmag-vendita |
tm-cfg-docmag-vendita |
Tipo documento vendita per IVA |
| CONTABIL | tipo-doc-iva-docmag-resi-cli |
tm-cfg-docmag-resi |
Tipo documento resi cliente per IVA |
| fatturepa | split-payment-art-ese |
tm-cfg-split-art-ese |
Articolo di esenzione split payment |
| RILIVA | PERCENTUALE-INTERESSI-IVA-TRIM |
tm-cfg-interessi |
Percentuale interessi trimestrali (default 1 se zero) |
| contabil | iva-margine-art1 |
tm-cfg-iva-marg-art1 |
Articolo 1 IVA margine |
| contabil | iva-margine-art2 |
tm-cfg-iva-marg-art2 |
Articolo 2 IVA margine |
| contabil | iva-margine-aliq1 |
tm-cfg-iva-marg-aliq1 |
Aliquota 1 IVA margine |
| contabil | iva-margine-aliq2 |
tm-cfg-iva-marg-aliq2 |
Aliquota 2 IVA margine |
| contabil | iva-margine-abilita |
tm-cfg-iva-marg-abilita |
Abilita gestione IVA margine |
| contabil | lipe-conteggio-imponibile |
tm-cfg-lipe-impon |
Modalita' conteggio imponibile LIPE |
| odonto | gestione-iva-ordinaria |
tm-cfg-odonto-iva-ordinaria |
Gestione IVA ordinaria per Odontosoft |
Note¶
- Il file COGTRANS e' dichiarato inline con record strutturato (righe VP, periodo, mese, trimestre, debiti, crediti, prorata); non usa copybook FD.
- La struttura XML e' hardcoded con namespace
urn:www.agenziaentrate.gov.it:specificheTecniche:sco:ivp; il codice fornitura e' fisso a "IVP18". - I filtri salvati (preset) sono gestiti tramite
utilimppredf.cpycon le routinez-imppredf-carica-default,z-imppredf-seleziona,z-imppredf-salva. - COGARIV2 viene usato per i movimenti con competenza IVA diversa dalla data documento (IVA di cassa e rettifiche prorata); se il movimento originale non e' piu' trovato in COGARIVA, il record COGARIV2 viene eliminato.
- Il quinto trimestre (
tm-trimestre = 5) corrisponde ai mesi ottobre-dicembre per contribuenti con periodo diverso.
Storico modifiche¶
2026-07-28 - Encoding XML in base alla versione del runtime¶
Nella fase di estrazione (x-estrai), prima dell'apertura del file XML (cxml-f-open), il campo
xml-w-encoding viene ora impostato in base a ext-runtime-version: "utf-8" per i runtime versione
07, 08, 09, 1000 e 1001; "iso-8859-1" per le versioni precedenti. In questo modo la dichiarazione di
encoding nel prologo del file XML LIPE rispecchia i byte effettivamente prodotti dal runtime AcuCOBOL
in uso. Contestualmente e' stato rimosso un end-perform residuo (senza perform di apertura
corrispondente) nel blocco di segnalazione precedente, che poteva alterare il flusso di controllo.
Documentazione tecnica generata -- 2026-07-15