COG011 - Assegnazione tipi documento IVA¶
Sorgente: cbl/cog011.cbl | Tipo: Programma interattivo GUI con griglia | Program-ID: COG011
Menu:
- Sistema > Configurazione > Tipi Documento Iva
Scopo¶
Gestisce l'assegnazione dei tipi documento IVA dell'azienda: per ogni "voce" documentale prevista dal gestionale (fatture differite, note di accredito clienti, fatture accompagnatorie, cessioni/acquisti intracomunitari, autofatture, reverse charge, fatture PA, ecc.) permette di associare il codice tipo documento IVA (tabella COGTABEL tipo 68) che ne governa la registrazione contabile e la stampa sul registro.
A differenza di una normale anagrafica, l'elenco delle voci non e' un archivio libero: e' un insieme fisso di righe, ciascuna legata a uno specifico campo dell'anagrafica azienda COGAZIEN (es. az-tipo-batch, az-tipo-nac, az-tipo-imm, ...). L'operatore puo' solo modificare il codice tipo documento associato a ciascuna riga; non puo' inserire o cancellare righe (i tasti Ctrl-A/Ctrl-E sono predisposti ma la logica di aggiunta/eliminazione e' commentata). Alcune voci "extra" (reverse charge, IVA sospesa, fatture/note PA) non trovano spazio in COGAZIEN e vengono memorizzate come stringa nella descrizione di appositi record COGTABEL (tipi AT e BR).
Il set di voci e il loro ordine dipendono dal profilo azienda: az-personal = "GR" (personalizzazione Grana/consorzio) usa un ordinamento e delle etichette diverse (es. "Fatture Riepilogative", "Fatture C.E.E.", "Fatture Stagionatura"). Per le aziende con az-consorzi = "S" vengono gestite anche tre voci aggiuntive su CAPAZIEN (fatture interessi, fatture FATA, note accredito FATA).
Struttura del programma¶
Il programma segue il pattern standard delle maschere Eurocoge basate su griglia (e-tm-tab, gestita via GRIDADMN) con frame di dettaglio. La tabella interna tab-maschera (fino a k-max-ele-tab = 900 elementi, ma di fatto un numero fisso di voci) e' l'immagine di lavoro delle righe; ogni elemento tm-ele porta etichetta (tm-label), codice tipo (tm-tipo), descrizione/parametri IVA (tm-desctiva, tm-clifotiva, tm-ivada, tm-segnotiva), il tipo cliente/fornitore (tm-cli-for) e la descrizione del registro (tm-reg-des).
Inizializzazione (apri)¶
ctr-abil, z-99-init-program, x-carica-lingua, open-files, rd-azi. Predispone i tasti funzione (invio, invio-modifica, F8 aiuto, Shift-F4 griglia, Ctrl-A, Ctrl-E), imposta il titolo maschera "Assegnazione tipi documento iva", prepara la griglia (z-prepara-tm-grid) e i controlli. La modalita' e' sempre di fatto "Aggiornamento" (a-modalita = "A"): il ramo "selezione" via w-dc-called e' predisposto ma non attivato (il blocco che valorizza w-dc-called e' commentato).
Caricamento voci (carica-dati ... ex-carica-dati)¶
E' il cuore del programma: costruisce una per una tutte le righe della griglia in sequenza fissa. Per ogni voce legge da COGAZIEN il campo tipo corrispondente (es. az-tipo-batch), lo usa come codice per leggere COGTABEL tipo 68 (euta-tipo = 68) e ne ricava descrizione IVA (euta-desctiva), parametri (euta-clifotiva, euta-ivada, euta-segnotiva); imposta l'etichetta descrittiva della riga e il flag C/F (documento cliente o fornitore). Per la descrizione del registro legge COGBABEL tipo AD (intestazione euba-ad-intesta). Le voci reverse charge / IVA sospesa sono estratte dalla descrizione del record COGTABEL AT (w-euta-descr, blocchi di 2 caratteri: (1:2), (3:2), ...); le voci PA dal record BR. Il flusso e' condizionato da az-personal = "GR" e az-consorzi = "S".
Griglia (a-grid / a-accept-grid)¶
L'invio su una riga (in modalita' Aggiornamento) apre la modifica del solo codice tipo documento (go to a-riga-dettaglio), previa verifica dell'abilitazione w-abi-agg. Shift-F4 apre la personalizzazione colonne (GRIDADMN). I rami F3/Ctrl-A/Ctrl-E sono presenti ma commentati: la funzione consente solo la modifica in linea delle righe predefinite.
Riga di dettaglio (a-riga-dettaglio ... a-riga-dettaglio-fine)¶
Accetta il solo campo e-tm-tipo (codice tipo documento). Con F8 richiama WIN067 per l'help sui tipi documento IVA (filtrato per cliente/fornitore tramite w67-tipo-doc). Il controllo x-controlla-tm-tipo verifica che il codice esista su COGTABEL tipo 68 e applica regole di congruenza specifiche: alcune voci devono stampare su determinati tipi giornale (euta-clifotiva = 'C9' o 'C7'), i tipi reverse charge devono avere euta-rcharge = 'S'. Alla conferma aggiorna la riga in griglia via GRIDADMN e scrive l'aggiornamento (a-riga-dettaglio-fine).
Aggiornamento archivi (aggiorna / aggiorna-gr)¶
In base all'indice di riga i (con EVALUATE, mappatura diversa per az-personal = "GR") instrada verso il paragrafo agg-* che valorizza il campo tipo corretto su COGAZIEN (agg-cogazien -> rwr-cogazien/wr-cogazien), su CAPAZIEN (agg-capazien), oppure sulla descrizione dei record COGTABEL AT/BR (agg-acq-rc, agg-fatt-pa, ...). Il campo azien-area viene riallineato dopo la riscrittura di COGAZIEN.
Chiusura (fine / z-chiudi)¶
Chiude cogazien, cogtabel (e capazien se consorzio), chiude la window e termina con z-99-exit-program.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema (aperta via cogfiles.cpy) |
| COGAZIEN | az-chia (az-cod), letto/riscritto in lock |
Anagrafica azienda: contiene i campi tipo documento IVA (az-tipo-batch, az-tipo-nac, az-tipo-imm, az-tipo-ci, ..., az-tipo-ne) aggiornati dal programma |
| CAPAZIEN | az-cod-cap, letto/riscritto in lock |
Estensione anagrafica azienda per consorzi (az-consorzi = "S"): tipi az-tipo-ie, az-tipo-fata, az-tipo-fatn |
| COGTABEL | euta-chia1 (euta-tipo + euta-cod); tipo 68 = tipi documento IVA; tipi AT/BR = contenitori reverse charge / PA |
Lettura descrizione tipo documento (euta-desctiva, euta-clifotiva, euta-ivada, euta-segnotiva, euta-rcharge) e memorizzazione codici extra nella descrizione (euta-descr) |
| COGBABEL | euba tipo AD (euba-cod = euta-clifotiva) |
Lettura intestazione registro IVA (euba-ad-intesta) per la descrizione del registro in griglia |
COPY incluse¶
Working-Storage¶
cog011.wrk, wtipidoc.cpy, wstato.cpy, wgrave.cpy, wgrid.cpy, wopenf.cpy, wnscr.cpy, utilgdad.cpy, utilu10.cpy, utile22.cpy, utilw67.cpy
File section¶
cog011.fd (con cog011.select), cogfiles.cpy
Linkage¶
wcont.cpy, wcont1.cpy
Procedure Division¶
cog011.decla, cog011-01.scr (screen), stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, utilgrid.cpy, cog011.prc
Le routine di I/O su COGAZIEN, CAPAZIEN, COGTABEL, COGBABEL (rd-, rwr-, wr-) sono incluse tramite la catena di COPY generata.
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record) e personalizzazione colonne (Shift-F4) |
| WIN067 | Help/selezione tipi documento IVA (F8 sul campo codice tipo), filtrato per cliente/fornitore |
Configurazioni RNEWCONF¶
Il programma non legge chiavi RNEWCONF. Sono presenti riferimenti commentati a x99-src-cfg/util-ncnf (blocchi di configurazione interattiva disattivati): residui non operativi.
Note tecniche¶
- Elenco righe non libero: le voci in griglia sono fisse e costruite programmaticamente in
carica-dati; l'unico dato modificabile e' il codice tipo documento IVA associato. I rami di inserimento (Ctrl-A) ed eliminazione (Ctrl-E), pur predisposti nei tasti funzione, sono commentati e non operativi. - Doppia mappatura per profilo azienda:
aggiornaeaggiorna-grassociano lo stesso indice di rigaia campi diversi a seconda diaz-personal = "GR"; anche etichette e ordine delle voci cambiano. Modifiche all'ordine di caricamento incarica-datidevono restare allineate agliEVALUATE idiaggiorna/aggiorna-gr. - Codici "extra" fuori da COGAZIEN: per mancanza di spazio nell'anagrafica azienda, i tipi reverse charge / IVA sospesa e i tipi PA sono memorizzati come sottostringhe di 2 caratteri nella descrizione (
euta-descr) dei recordCOGTABELATeBR. La loro lettura/scrittura avviene per posizione ((1:2),(3:2), ...). - Consorzi (
az-consorzi = "S"): apre e aggiorna ancheCAPAZIEN; in assenza le tre righe relative riportano l'etichetta "Riservato procedura AreaCap". - Controlli di congruenza registro:
x-controlla-tm-tipoimpone che alcuni documenti stampino solo su tipi giornale specifici ('C9','C7') e che i tipi reverse charge abbiano il flageuta-rcharge = 'S'.