Vai al contenuto

COGEA1 - Collegamento aliquote IVA (tabella di raccordo)

Intestazione

Campo Valore
Programma COGEA1
Sorgente cbl/cogea1.cbl
Tipo Interattivo (GUI, editor a griglia)
Modulo Sistema
Posizione menu Sistema > Utility > Collegamenti > Aliquote IVA

Scopo

COGEA1 gestisce la tabella di raccordo delle aliquote IVA (intestazione sorgente: "Tabella Raccordo Aliquote IVA"). E' un editor a griglia che, per ogni codice esterno di aliquota (tm-cod), permette di associare:

  • un codice IVA interno (tm-riv-iva), verificato sulla tabella IVA (cogtabel tipo 67);
  • un articolo di esenzione (tm-riv-art), verificato sulla tabella articoli esenzione (cogtabel tipo 69), obbligatorio o vietato in funzione dell'aliquota del codice IVA (euta-ivali).

Il collegamento serve a mappare le aliquote provenienti da un sistema/flusso esterno verso la codifica IVA interna Eurocoge (mapping aliquote tra sistemi, come descritto nel flusso Utility).

Il programma opera in due modalita' in funzione di come e' stato invocato:

  • Aggiornamento (a-modalita = "A"): avvio da menu; l'utente edita la tabella di raccordo (aggiunta/modifica/eliminazione righe) e la salva.
  • Selezione (a-modalita = "S"): avvio come sottoprogramma (quando cogea1-called = 'COGEA1' e cogea1-caller valorizzato); l'utente sceglie una riga con invio e il programma restituisce al chiamante il codice, l'IVA e l'articolo selezionati.

Tabelle / file coinvolti

File Copybook Campo chiave Uso
cogtabel (raccordo) cogtabel.cpy euta-tipo-x = "FX", euta-cod Tabella di raccordo aliquote: euta-riv-iva (codice IVA), euta-riv-art (articolo esenzione). Letta in caricamento griglia, cancellata e riscritta in salvataggio
cogtabel (IVA) cogtabel.cpy euta-tipo = 67, euta-cod Verifica esistenza codice IVA e lettura aliquota euta-ivali
cogtabel (esenzione) cogtabel.cpy euta-tipo = 69, euta-codr Verifica esistenza articolo di esenzione

La tabella di raccordo, la tabella IVA e la tabella esenzione risiedono tutte in cogtabel (file tabelle generali), distinte dal campo euta-tipo/euta-tipo-x.

Griglia in memoria (tm-grid-dati-ele, copybook cogea1.wrk): tm-cod (PIC X(10), codice esterno), tm-cod-prec (valore precedente per riconoscere le righe nuove), tm-riv-iva (PIC X(02)), tm-riv-art (PIC X(02)). Massimo k-max-ele-tm-tab = 500 righe.


Logica di elaborazione

  1. apri: k-program-id = 'COGEA1' in prog-err/w-nome-hlp; init programma (z-99-init-program), controllo abilitazioni (ctr-abil), apertura file (open-files), lettura azienda (rd-azi). Se cogea1-called = k-program-id e cogea1-caller valorizzato, imposta w-dc-called = "S" (modalita' Selezione), altrimenti Aggiornamento. Prepara la griglia (z-prepara-tm-grid, z-costruisci-controlli).
  2. a4a10-loop (caricamento griglia): scandisce cogtabel con euta-tipo-x = "FX" (st-cogtabel-notmin + rdnxt-cogtabel); per ogni record del tipo copia euta-cod, euta-riv-iva, euta-riv-art nelle celle tm-cod/tm-riv-iva/tm-riv-art. Interrompe su fine file, cambio tipo o griglia piena (k-max-ele-tab).
  3. a-grid / a-accept-grid (gestione eventi griglia):
  4. ESC: test-wesc → uscita (fine).
  5. S-F4: apertura amministrazione griglia (GRIDADMN).
  6. F3: in modalita' Aggiornamento salva (a1-aggiorna) e — se invocato come sottoprogramma — torna in Selezione; da menu, salva e prosegue. Verifica le abilitazioni w-abi-ins/w-abi-agg.
  7. Invio (solo modalita' Selezione): restituisce la riga corrente al chiamante (cogea1-out-cod, cogea1-out-iva, cogea1-out-art) e va a fine.
  8. Ctrl-A (Aggiungi) / Ctrl-E (Elimina): manipolano le righe della griglia (in Aggiornamento); l'eliminazione richiede w-abi-del e conferma.
  9. z-usa-tf-tm-tab-ep (tasti funzione sulle celle):
  10. cella gcn-riv-iva, F8 → chiama COGE67 (aiuto/ricerca codice IVA), riporta e67-out-cod in tm-riv-iva e valida.
  11. cella gcn-riv-art, F8 → chiama COGE69 (aiuto/ricerca articolo esenzione), riporta e69-out-cod in tm-riv-art e valida.
  12. Controlli di cella (x-controlla-tm-riv-iva, x-controlla-tm-riv-art):
  13. tm-riv-iva obbligatorio se tm-cod valorizzato; deve esistere in cogtabel tipo 67.
  14. tm-riv-art: se l'aliquota del codice IVA (euta-ivali) e' diversa da zero (aliquota imponibile) l'articolo di esenzione non e' richiesto (viene azzerato); se euta-ivali = 0 (esente) l'articolo di esenzione e' obbligatorio e deve esistere in cogtabel tipo 69.
  15. a1-aggiorna / b-aggiorna (salvataggio): valida l'intera griglia (x-controlla-tm-tab-tutto); se ok, cancella tutti i record cogtabel tipo "FX" esistenti (del-cogtabel in loop) e li riscrive dalla griglia (wr-cogtabel) per ogni riga con tm-cod valorizzato, impostando euta-tipo-x = "FX", euta-cod, euta-riv-iva, euta-riv-art.
  16. fine / z-chiudi: z-close-files, chiusura finestra, z-99-exit-program, exit program.

Chiamate / COPY rilevanti

Elemento Tipo Scopo
COGE67 CALL (util-e67) Aiuto/ricerca codice IVA (F8 su cella riv-iva)
COGE69 CALL (util-e69) Aiuto/ricerca articolo di esenzione (F8 su cella riv-art)
GRIDADMN CALL (util-gdad) Amministrazione/formattazione colonne della griglia (S-F4 e preparazione)

Copybook principali:

  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy — working-storage standard.
  • wgrid.cpy, utilgdad.cpy — framework griglia; utile67.cpy, utile69.cpy — aree scambio con gli aiuti IVA/esenzione.
  • cogea1.wrk — variabili locali e struttura griglia (k-program-id, k-id-tm-tab = 20, k-max-ele-tm-tab = 500, tm-cod/tm-riv-iva/tm-riv-art, nomi colonna gcn-cod/gcn-riv-iva/gcn-riv-art).
  • Linkage: wcont.cpy (stringhe), wcont1.cpy, utilcogea1.cpy (util-cogea1: cogea1-called, cogea1-caller, cogea1-out-cod, cogea1-out-iva, cogea1-out-art).
  • Screen: cogea1-01.scr; procedure: cogea1.prc, cogea1.decla.

Note

  • La tabella di raccordo aliquote e' interamente contenuta in cogtabel come tipo "FX"; il salvataggio e' distruttivo/rigenerativo (cancella tutti i "FX" e riscrive dalla griglia), quindi la griglia rappresenta sempre lo stato completo della mappatura.
  • La coerenza tra codice IVA e articolo di esenzione dipende dall'aliquota euta-ivali letta dalla tabella IVA (tipo 67): esente → articolo obbligatorio; imponibile → articolo azzerato.
  • Puo' funzionare sia da menu (Aggiornamento) sia come subroutine di selezione richiamata da altri programmi (util-cogea1); vedi flusso Sistema - Utility (Collegamenti).
  • Il codice contiene paragrafi commentati residui (es. x-carica-tm-reg-k, x-controlla-tm-cod per compagnie assicuratrici) provenienti dal template della griglia: non attivi in questa funzione.

Documentazione tecnica -- creata 2026-08-07