Vai al contenuto

COGE67 - Aliquote IVA

Sorgente: cbl/coge67.cbl | Program-ID: COGE67 | Tipo: Programma interattivo GUI (gestione tabella a griglia)

Menu: Contabilita' > Archivi & Tabelle > Tabelle > Parametri Iva > Aliquote IVA


Scopo

Manutenzione della tabella delle aliquote IVA, memorizzate nella tabella generica di contabilita' (COGTABEL) con tipo record 67. Il programma presenta una griglia editabile in cui ogni riga rappresenta un'aliquota (codice, valore percentuale, sigla di esenzione, validita' e note descrittive) e consente inserimento, modifica e cancellazione dei record. Per ogni voce, o si indica l'aliquota numerica oppure la sigla di esenzione, mai entrambe. Il programma opera in due modalita': "Aggiornamento" (A), per la manutenzione completa, e "Selezione" (S), attiva quando e' richiamato da un altro programma tramite l'area util-e67 per restituire al chiamante il codice, l'aliquota e la sigla scelti.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB Indexed Input Tabella nomi file (risoluzione percorsi fisici)
COGTABEL Indexed I-O Tabella generica contabilita'; tipo 67 = aliquote IVA (record euta-rec)
COGDESCR Indexed I-O Descrizioni/note associate alle voci di tabella (record cde-rec, tipo "67")
LODTMDES Indexed I-O File temporaneo di lavoro per le descrizioni note (nome a runtime: ext-tmp-dir/#$coge67.{wo-oper})

Copybook utilizzate

Copybook Descrizione
feurtab.fd SELECT tabella nomi file
coge67.select SELECT dei file gestiti (generato da Screens)
lodtmdes.fd SELECT file temporaneo descrizioni
cogfiles.cpy Record FEURTAB
coge67.fd FD/record COGTABEL e COGDESCR (generato da Screens)
lodtmdes.cpy Record LODTMDES
coge67.wrk Working-storage generata da Screens
utilu20.cpy Area utility COGU20 (gestione importo/aliquota)
wstato.cpy Stato I/O
wgrave.cpy Gestione errori gravi
wgrid.cpy Gestione griglia
wopenf.cpy Apertura file
wnscr.cpy Dati schermo
cogazien.cpy Dati azienda
utilgdad.cpy Area utility GRIDADMN (amministrazione griglia)
utilzde.cpy Area utility COGZDEW (editor note descrittive)
utilagprg.cpy Area utility SWN044 (sincronizzazione KPN)
wcont.cpy Linkage stringhe comuni
wcont1.cpy Linkage area utente 2
utile67.cpy Linkage util-e67 (interfaccia con il chiamante)
coge67-01.scr Screen section (form dettaglio + griglia)
coge67.decla Declaratives generate da Screens
stato.cpy / stato1.cpy Controllo stato I/O
winmsg.cpy Messaggi a video
grave.cpy Paragrafi errori gravi
opengen.cpy Apertura file generica
mmmask.cpy Paragrafi init/exit programma (z-99-init-program/z-99-exit-program)
utilgrid.cpy Paragrafi gestione griglia
coge67.prc Procedure generate da Screens (verbi I/O, controlli, ecc.)
lodtmdes.k01 Accesso LODTMDES per chiave primaria

Logica di elaborazione

  1. Inizializzazione: impostazione prog-err/nome help, controllo abilitazioni (ctr-abil), z-99-init-program, caricamento lingua, apertura file e lettura dati azienda (rd-azi).
  2. Rilevamento chiamata: se e67-called = "COGE67" e e67-caller valorizzato, il programma entra in modalita' "Selezione" (w-dc-called = "S"), abilitando i tasti F3 di selezione/modifica.
  3. File temporaneo LODTMDES: viene creato in ext-tmp-dir con nome comprensivo di wo-oper; se gia' esistente/in uso, segnala "Funzione gia' in uso dall'operatore" e termina.
  4. Impostazione tasti funzione: invio, invio-modifica, F8 aiuto, Shift+F4 griglia, Ctrl+A aggiungi, Ctrl+E elimina; F3 selezione/modifica solo in modalita' richiamata.
  5. Caricamento tabella (a10): scansione di COGTABEL per tipo 67 (st-cogtabel-notmin + rdnxt-cogtabel); i record con codice a spazi vengono cancellati (del-cogtabel). Ogni record valido riempie una riga della tabella interna tm-tab (tm-cod, tm-ali, tm-ese, tm-validita), fino a un massimo di 900 elementi (k-max-ele-tab). Le note vengono caricate da COGDESCR nel file temporaneo (carica-des) e convertite in testo tramite COGZDEW ("Da-file-a-zde-note").
  6. Costruzione griglia (a30): z-costruisci-grid popola la griglia GUI (GRIDADMN "Svuota-Tutto" + "Add-Record") a partire da tm-tab, formattando la validita' come SI/NO (x-riempi-grid-record).
  7. Ciclo griglia (a-grid / a-accept-grid): gestione eventi mouse/tastiera. In modalita' "Selezione", l'invio restituisce al chiamante e67-out-cod/e67-out-ali/e67-out-ese e termina; in modalita' "Aggiornamento", l'invio apre la riga in modifica. F3 commuta tra le modalita'; Ctrl+A avvia l'inserimento di una nuova riga; Ctrl+E elimina la riga corrente previa conferma. Shift+F4 apre l'amministrazione griglia (GRIDADMN).
  8. Riga di dettaglio (a-riga-dettaglio ... a-tm-note): accept in cascata dei campi codice, aliquota (via COGU20W), sigla esenzione, validita' (campo S95) e note. In modifica il record COGTABEL viene lockato (rd-cogtabel-lk). ESC annulla ripristinando tm-ele-sav.
  9. Controlli (x-imposta-conferma, x-controlla-*): codice obbligatorio e non riservato (*R), codice non gia' esistente in inserimento; obbligo di indicare aliquota oppure sigla esenzione (mai entrambe, mai nessuna); i campi in errore sono evidenziati con colore.
  10. Salvataggio riga (a-riga-dettaglio-fine): aggiornamento della griglia (GRIDADMN "Add-Record"/"Modify-Record") e scrittura su COGTABEL (wr-cogtabel in inserimento, rwr-cogtabel in modifica). Sincronizzazione KPN (x-sincronizza-kpn, SWN044) e riallineamento note su COGDESCR (canc-des + ins-des, quest'ultima via COGZDEW "Da-zde-note-A-file").
  11. Cancellazione (c-cancella): lock e del-cogtabel del record, sincronizzazione KPN, cancellazione delle note su COGDESCR (canc-des).
  12. Chiusura (fine / z-chiudi): chiusura file, chiusura e cancellazione del file temporaneo LODTMDES, cancel "COGZDEW", chiusura finestra, z-99-exit-program ed exit program.

Chiamate a sottoprogrammi

Programma Scopo
GRIDADMN Amministrazione della griglia GUI (Prepara, Svuota-Tutto, Add-Record, Modify-Record)
COGU20W Gestione/edit dell'aliquota IVA numerica
COGZDEW Editor delle note descrittive (conversione file<->testo note)
SWN044 Sincronizzazione della chiave con KPN ("ESPORTA-KEY")

Storico modifiche

Il sorgente non contiene marcatori *>DOC:. Sono presenti riferimenti storici a interventi datati (030321) relativi all'introduzione della sincronizzazione KPN (x-sincronizza-kpn, chiamata SWN044) nei paragrafi di salvataggio e cancellazione riga.