COGY90 -- Pre-Liquidazione IVA per Cassa¶
Sorgente: cbl/cogy90.cbl | Tipo: Programma con griglia e stampa | Program-ID: COGY90
Menu: Contabilita' > Documenti Iva > Iva per cassa > Pre-Liquidazione IVA per cassa
Scopo¶
Calcola il conteggio di pre-liquidazione dell'IVA per cassa (esigibilita' differita, iva-val = "K"). Per ogni fattura con IVA per cassa, determina la percentuale di incasso/pagamento nel periodo e calcola l'IVA da liquidare proporzionalmente. Gestisce anche i documenti oltre un anno (obbligo di liquidazione integrale) e l'IVA ordinaria (non per cassa).
Interfaccia utente¶
Maschera filtri¶
| Campo | Tipo | Descrizione |
|---|---|---|
tm-ultima-liquidazione |
9(08) | Data ultima liquidazione confermata (read-only) |
tm-data-init |
9(08) | Data inizio periodo (AAAAMMGG) |
tm-data-fine |
9(08) | Data fine periodo (AAAAMMGG) |
Totali (campi display)¶
| Campo | Descrizione |
|---|---|
tm-tot-v-imp |
Totale vendite imponibile |
tm-tot-v-iva |
Totale vendite IVA |
tm-tot-a-imp |
Totale acquisti imponibile |
tm-tot-a-iva |
Totale acquisti IVA |
tm-tot-iva-liq |
Totale IVA da liquidare |
tm-att-iva-cli |
Attesa IVA clienti (non ancora incassata) |
tm-att-iva-for |
Attesa IVA fornitori (non ancora pagata) |
tm-att-differenza |
Differenza attesa clienti - fornitori |
tm-inc-imp |
Incassato imponibile |
tm-inc-iva |
Incassato IVA |
Griglia¶
La griglia e' gestita con spaginamento (pg-dwn/pg-up). Le colonne sono definite nel sorgente tramite le strutture tm-grid-dati-*.
Tasti funzione¶
| Tasto | Funzione |
|---|---|
| F1 | Configurazione (x99-confi tramite RNEWCONF) |
| F5 | Consolidamento: conferma liquidazione (a1-aggiorna) |
| F8 | Dettaglio documento (WIN062) |
| F9 | Stampa prospetto (st-stampa) |
| Shift+F4 | Gestione griglia (GRIDADMN) |
| Shift+F5 | Esportazione Excel (z-esporta-tm-tab) |
| Pag.Su/Giu' | Navigazione pagine griglia |
| ESC | Uscita |
File e Tabelle¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGARIVA | (da cogy90.fd) | Archivio IVA: scansione documenti con iva-val = "K" (per cassa) e iva-val = " " (ordinaria) |
| COGMOVPA | (da cogy90.fd) | Movimenti partite: calcolo incassi/pagamenti per periodo |
| COGFATTU | (da cogy90.fd) | Fatture: lettura importo totale e IVA del documento |
| COGLIQUI | (da cogy90.fd) | Liquidazioni IVA per cassa: lettura precedenti e scrittura consolidamento |
| COGANAPP | (da cogy90.fd) | Appendice anagrafica: flag aap-concorsuale |
| COGTABEL (tipo 66) | cogfiles.cpy | Tabella esercizio contabile |
| COGTABEL (tipo 68) | cogfiles.cpy | Tabella tipi documento IVA: segno IVA (euta-segnotiva), segno dare/avere (euta-ivada) |
| COGTABEL (tipo AQ) | cogfiles.cpy | Configurazione programma |
| COGTABEL (tipo BM) | cogfiles.cpy | Configurazione date |
| COGTRANS | (inline, temporaneo) | File di transito per i conteggi |
| FLSTA | flsta.cpy | File stampa |
| FILELOG | (inline) | File log (opzionale) |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGS52W | Gestione date |
| COGS65W | Selezione anagrafica |
| COGS25CA | Utility (contabilita' analitica) |
| COGS53CA | Utility (contabilita' analitica) |
| COGS53 | Utility |
| COGS54 | Utility |
| COGS68W | Stampa |
| COGS77 | Utility |
| COGU10W | Utility valute |
| COGU20 | Utility varie |
| WIN062 | Dettaglio partite documento |
| COGE43 | Estratto conto (commentato nel sorgente) |
| COGE77 | Utility contabile |
| GRIDADMN | Gestione griglia |
| RNEWCONF | Lettura configurazioni |
| DIALOGS | Finestra di dialogo |
| DTPRG / PRGDT | Conversione data/progressivo giorni |
Copybook principali¶
cogy90.select,cogy90.fd,cogy90.wrk,cogy90.decla,cogy90-01.scr-- Definizioni generate da Screensk-tipi-cogtabel.cpy-- Costanti tipi tabella genericacogconta.cpy-- Struttura tabella esercizio contabileflsta.cpy-- Struttura file stampacogazien.cpy-- Dati aziendautilcoge43.cpy-- Interfaccia COGE43utilcoge77.cpy-- Interfaccia COGE77utilw62.cpy-- Interfaccia WIN062utilncnf.cpy-- Interfaccia configurazioniutildlg.cpy-- Interfaccia DIALOGS
Logica di Elaborazione¶
Configurazione (tm-cfg)¶
All'avvio viene letta la configurazione tramite RNEWCONF:
| Parametro | Campo | Descrizione |
|---|---|---|
| Numero giorni | tm-cfg-num-giorni |
Soglia giorni per "oltre anno" (default: 365) |
| Data inizio | tm-cfg-data-inizio |
Data da cui decorre la gestione IVA per cassa |
| IVA acquisti | tm-cfg-iva-acq |
Conto IVA acquisti |
| IVA vendite | tm-cfg-iva-ven |
Conto IVA vendite |
| IVA erario | tm-cfg-iva-erario |
Conto IVA erario |
| Tipo operazione | tm-cfg-to |
Tipo operazione per le registrazioni |
| Percentuale soglia | tm-cfg-perc-soglia |
% oltre la quale si arrotonda al 100% |
| Visibilita' esenti | tm-cfg-vis-esenti |
Mostra documenti con aliquota esente |
Ultima liquidazione (cerca-ultima-liquidazione)¶
Cerca in COGLIQUI l'ultima liquidazione consolidata per determinare la data di partenza.
Ricalcolo (ricalcolo)¶
- Se esistono liquidazioni nel periodo, le cancella da COGLIQUI
- Esegue
esegue-calc-iva
Elaborazione IVA (esegue-calc-iva)¶
Scorre tutto l'archivio COGARIVA. Per ogni record:
Documenti IVA per cassa (iva-val = "K", iva-k)¶
- Controllo percentuale gia' liquidata (
controlla-perc-liq): cerca in COGLIQUI le liquidazioni precedenti del documento e calcolaw-perc-liquidata - Se gia' liquidata al 100%, salta
- Controllo oltre anno: calcola i giorni tra
iva-damovetm-data-fine. Se >=tm-cfg-num-giornie il soggetto non e' in procedura concorsuale (aap-concorsuale not = "S"), liquida la percentuale residua (100% - gia' liquidata) - Calcolo percentuale incasso (
calc-tot-partita): scorre COGMOVPA per il documento e calcola il totale incassato nel periodo - Calcola
w-perc = incassato * 100 / totale_partita - Soglia: se
w-perc + w-perc-liquidata >= tm-cfg-perc-soglia, arrotonda al 100% - Riempimento record transito (
riempi-trs): calcola imponibile e IVA proporzionali alla percentuale
Documenti IVA ordinaria (iva-val = spaces, iva-ncs)¶
Liquidati integralmente al 100% (w-perc = 100, w-ncs = "S").
Calcolo incasso nel periodo¶
Nel paragrafo iva-k, dopo il controllo "oltre anno", il programma scorre COGMOVPA:
- Movimenti con
mov-data-valuta < tm-data-init: accumulati inw-saldo-prec(incassato in periodi precedenti) - Movimenti con
mov-data-valutanel periodo: accumulati inw-saldo(incassato nel periodo) - Movimenti di tipo "insoluto" (
mov-to = az-to-insoluto): sottratti dall'incasso
Il segno viene determinato confrontando mov-segno con euta-ivada (dalla tabella tipo documento).
Riempimento record transito (riempi-trs)¶
Calcola l'IVA e l'imponibile da liquidare:
- Se
w-perc-totale = 100ew-perc-liquidata = 0: importi per differenza (iva-impon - w-impon-liqui) - Altrimenti: proporzionali alla percentuale (
iva-impon * w-perc / 100) - Se aliquota "ND" (non deducibile): IVA = 0
- Inverte il segno se
euta-segnotiva = "-"
Scrive il record su COGTRANS e aggiorna i totali per codice aliquota (totali-cogtrans).
Totali per la griglia (totali-cogtrans-finali)¶
Scorre COGTRANS e accumula i totali per tipo record (record "Z" di totalizzazione per aliquota/articolo).
Consolidamento (a1-aggiorna)¶
Conferma definitiva: scrive i record di liquidazione in COGLIQUI e aggiorna lo stato.
Stampa (st-stampa)¶
Produce un prospetto dettagliato su file stampa (FLSTA) con:
- Intestazione con data e periodo
- Dettaglio per ogni documento: anno/tipo/numero, data, anagrafica, percentuale, aliquota, imponibile, IVA, IVA precedente, IVA residua, totale documento, IVA totale, incassato, cassa precedente
- Totali per aliquota IVA / articolo esenzione
- Totali generali separati per vendite e acquisti
Note tecniche¶
- Il programma utilizza
PERFORM ... THRUin diversi punti (stile legacy:ricalcolo thru ex-ricalcolo,esegue-calc-iva thru ex-esegue-calc-iva,riempi-trs thru ex-riempi-trs, ecc.). - Il file COGTRANS e' un file temporaneo indicizzato con chiave composta (tipo record + anno + tipo doc + numero + nfatpro + progressivo). I record di totalizzazione hanno
trs-trec(2:1) = "Z". - I documenti con data anteriore al 01/01/2024 (
iva-damov not < 20240101) non vengono processati. - Nel sorgente sono presenti alcune condizioni specifiche (es.
iva-anno = 2024 and iva-nfat = 37 and iva-tdoc = "FF") per gestire eccezioni su singoli documenti. - La griglia usa il pattern di spaginamento con
fl-readche assume i valori "E" (fine dati) e "B" (inizio dati). - Il programma supporta la modalita' richiamata (
w-dc-called = "S") e la modalita' selezione (a-modalita = "S").
Documentazione tecnica -- 2026-04-16