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 (cogtabeltipo 67); - un articolo di esenzione (
tm-riv-art), verificato sulla tabella articoli esenzione (cogtabeltipo 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 (quandocogea1-called = 'COGEA1'ecogea1-callervalorizzato); 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¶
apri:k-program-id = 'COGEA1'inprog-err/w-nome-hlp; init programma (z-99-init-program), controllo abilitazioni (ctr-abil), apertura file (open-files), lettura azienda (rd-azi). Secogea1-called = k-program-idecogea1-callervalorizzato, impostaw-dc-called = "S"(modalita' Selezione), altrimenti Aggiornamento. Prepara la griglia (z-prepara-tm-grid,z-costruisci-controlli).a4→a10-loop(caricamento griglia): scandiscecogtabelconeuta-tipo-x = "FX"(st-cogtabel-notmin+rdnxt-cogtabel); per ogni record del tipo copiaeuta-cod,euta-riv-iva,euta-riv-artnelle celletm-cod/tm-riv-iva/tm-riv-art. Interrompe su fine file, cambio tipo o griglia piena (k-max-ele-tab).a-grid/a-accept-grid(gestione eventi griglia):- ESC:
test-wesc→ uscita (fine). - S-F4: apertura amministrazione griglia (
GRIDADMN). - F3: in modalita' Aggiornamento salva (
a1-aggiorna) e — se invocato come sottoprogramma — torna in Selezione; da menu, salva e prosegue. Verifica le abilitazioniw-abi-ins/w-abi-agg. - Invio (solo modalita' Selezione): restituisce la riga corrente al chiamante (
cogea1-out-cod,cogea1-out-iva,cogea1-out-art) e va afine. - Ctrl-A (Aggiungi) / Ctrl-E (Elimina): manipolano le righe della griglia (in Aggiornamento); l'eliminazione richiede
w-abi-dele conferma. z-usa-tf-tm-tab-ep(tasti funzione sulle celle):- cella
gcn-riv-iva, F8 → chiama COGE67 (aiuto/ricerca codice IVA), riportae67-out-codintm-riv-ivae valida. - cella
gcn-riv-art, F8 → chiama COGE69 (aiuto/ricerca articolo esenzione), riportae69-out-codintm-riv-arte valida. - Controlli di cella (
x-controlla-tm-riv-iva,x-controlla-tm-riv-art): tm-riv-ivaobbligatorio setm-codvalorizzato; deve esistere incogtabeltipo 67.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); seeuta-ivali = 0(esente) l'articolo di esenzione e' obbligatorio e deve esistere incogtabeltipo 69.a1-aggiorna/b-aggiorna(salvataggio): valida l'intera griglia (x-controlla-tm-tab-tutto); se ok, cancella tutti i recordcogtabeltipo"FX"esistenti (del-cogtabelin loop) e li riscrive dalla griglia (wr-cogtabel) per ogni riga contm-codvalorizzato, impostandoeuta-tipo-x = "FX",euta-cod,euta-riv-iva,euta-riv-art.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 colonnagcn-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
cogtabelcome 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-ivaliletta 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-codper compagnie assicuratrici) provenienti dal template della griglia: non attivi in questa funzione.
Documentazione tecnica -- creata 2026-08-07