COGFA4 - Gestione Parametri su Tariffe Doganali¶
Sorgente: cbl/cogfa4.cbl | Tipo: Programma interattivo GUI con griglia editabile (Screens) | Program-ID: COGFA4
Menu:
- Magazzino > Archivi & Tabelle > Tabelle > Varie > Parametri tariffe doganali
- Vendite > Documentazioni > Dichiarazioni di origine > Parametri tariffe doganali
Scopo¶
Gestione (inserimento, modifica, cancellazione) dei parametri associati alle tariffe doganali, usati per determinare l'origine preferenziale delle merci nelle dichiarazioni di origine. Il commento di testata lo dichiara: "Gestione parametri su tariffe doganali (Gestione della tabella COGTDPAR)".
Ogni riga della griglia rappresenta un record di COGTDPAR e associa a una coppia (tariffa doganale, codice di raggruppamento paesi) il metodo di determinazione dell'origine preferenziale ("T" = tariffa preferenziale, "P" = percentuale) e, per il metodo a percentuale, la soglia percentuale "non preferenziale" oltre la quale un componente rende l'articolo non preferenziale.
Il programma e' costruito con il framework Screens a griglia editabile (grid-det) con menu contestuale, filtri su griglia e ordinamento predefinito per tariffa.
Struttura del programma¶
Modalita' di funzionamento (a-modalita)¶
Il programma prevede due modalita', governate dalla variabile a-modalita:
"A"= Aggiornamento (modalita' standalone da menu): la griglia e' editabile e sono attivi i tasti aggiungi/elimina/aggiorna."S"= Selezione (modalita' chiamata da altro programma): la griglia e' read-only e propone la scelta/modifica di un record.
Poiche' i rami di chiamata sono commentati nel sorgente, la modalita' effettiva parte sempre da "A" (nessun caller attivo).
Flusso principale¶
apri: inizializzazione, controllo abilitazione (ctr-abil), caricamento debug (gesdebug-loadconf/gesdebug-apri-principale), lettura azienda (rd-azi), apertura file (open-files), impostazione tasti funzione previsti, caricamento lingua, costruzione menu pop-up griglia (build-main-popup-grid-det), preparazione controlli e griglia (z-costruisci-controlli,z-prepara-tm-grid), mappatura colonne (x-trova-col-num-grid-det).a4: reset maschera, impostazione filtro su griglia, ordinamento predefinito per tariffa ascendente (gcn-r-tariffa), caricamento eventuale filtro predefinito (z-imppredf-carica-default).a-leggi-dati/z-grid-det-crea-transito: apertura e popolamento del file di transito della griglia leggendo COGTDPAR (scansionest-cogtdpar-notmin/rdnxt-cogtdpar), saltando i record cancellati logicamente (tdpr-fl-canc = "C"). Per ogni record valorizza sia i dati di dettaglio (t-gor-r-tariffa,t-gor-r-rag-cod,t-gor-r-fl-dop,t-gor-r-perc-np) sia i dati chiave precedenti (t-gor-r-tar-prec,t-gor-r-rc-prec) usati per distinguere inserimenti da modifiche in aggiornamento.a-grid: loop di gestione griglia con accept (z-99-accept-grid-det). Gestisce ESC (esci), Shift-F4 (personalizzazione colonne via GRIDADMN), Shift-F5 (export griglia), F3 (aggiorna/commuta modalita'), Ctrl-A (aggiungi riga), Ctrl-E (elimina riga), menu pop-up (exception 151-199), copia/incolla (^C/^V).b-aggiorna: scansione del file di transito e scrittura definitiva su COGTDPAR (vedi sotto).fine/z-chiudi: chiusura file, chiusura e cancellazione del transito, distruzione menu, chiusura debug ed uscita.
Aggiornamento (b-aggiorna, b1-aggiorna, b3-cancella)¶
Scandisce il transito t-grid-det e per ogni riga confronta la chiave attuale con la chiave precedente memorizzata:
- riga con tariffa vuota ma chiave precedente valorizzata → cancellazione (
b3-cancella); - chiave attuale = chiave precedente → aggiornamento (
b1-aggiorna); - chiave precedente vuota → inserimento (
b1-aggiorna); - chiave attuale diversa dalla precedente → cancella la vecchia (
b3-cancella) e inserisce la nuova (b1-aggiorna).
b1-aggiorna legge COGTDPAR con la chiave (tdpr-tariffa, tdpr-rag-tip = "A", tdpr-rag-cod, tdpr-data = 0); se non esiste lo crea (wr-cogtdpar), poi valorizza metodo e percentuale e riscrive (rwr-cogtdpar), togliendo l'eventuale flag di cancellazione. b3-cancella esegue una cancellazione logica impostando tdpr-fl-canc = "C" e riscrivendo.
Controlli e regole di editabilita' della griglia¶
- Campi chiave (
tariffa,rag-cod): editabili solo in inserimento (bloccati se esiste una chiave precedente valorizzata -z-grid-det-tariffa-be-ep,z-grid-det-rag-cod-be-ep). Entrambi obbligatori (x-controlla-tm-r-tariffa,x-controlla-tm-r-rag-cod). - Percentuale DOP (
perc-np): non modificabile se il metodo e' "Tariffa preferenziale" (k-metodo-tariffa-pref = "T"); obbligatoria se il metodo e' a percentuale (k-metodo-percentuale = "P").
Tabelle e file¶
File principali¶
| File logico | Tabella | Accesso | Descrizione |
|---|---|---|---|
| FEURTAB | FEURTAB | Input | Tabella di sistema |
| COGTDPAR | COGTDPAR | I-O, dynamic | Parametri tariffe doganali (chiave: tariffa + tipo raggr. + cod. raggr. + data) |
Campi principali di COGTDPAR (tdpr-rec)¶
| Campo | Descrizione |
|---|---|
| tdpr-tariffa | Codice tariffa doganale (chiave) |
| tdpr-rag-tip | Tipo raggruppamento ("A" = raggruppamento paesi con stesse condizioni di origine) |
| tdpr-rag-cod | Codice raggruppamento paesi ("A", "B", ...) |
| tdpr-data | Data di competenza (sempre 0 in questo programma) |
| tdpr-metodo-dop | Metodo determinazione origine preferenziale: "P" percentuale / "T" tariffa prevalente |
| tdpr-perc | Soglia percentuale "non preferenziale" |
| tdpr-fl-canc | Cancellazione logica ("C") |
| tdpr-dati-ins / tdpr-dati-agg | Dati di inserimento/modifica (programma, operatore, data, ora) |
File di transito (temporaneo)¶
| File logico | Descrizione |
|---|---|
| t-grid-det | Transito indicizzato della griglia (t-gor-r-*), nome univoco w-nome-t-grid-det, creato all'ingresso e cancellato in uscita |
| exp-grid | File sequenziale per l'export della griglia (Shift-F5) |
COPY incluse¶
File-Control / File Section¶
feurtab.fd, cogfa4.select (genera SELECT COGTDPAR + transito, da cbl/screens/), cogfiles.cpy, cogfa4.fd
Working-Storage¶
cogfa4.wrk, cogfa4.imppredf-wrk, costanti-arcott.cpy, k-personal.cpy, cogfa4.tm (campi maschera generati da Screens), wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utils52.cpy, utilu20.cpy, utilimppredf.cpy, utilncnf.cpy, utilgesdebug.cpy
Linkage / Screen¶
wcont.cpy, wcont1.cpy, cogfa4-01.scr
Procedure Division¶
cogfa4.decla (declaratives), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, gesdebug.cpy, cogfa4.prc, cogfa4.imppredf
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione e personalizzazione della griglia paginata (preparazione e Shift-F4) |
| W$MENU | Attivazione menu pop-up contestuale sulla griglia (right-click) |
Configurazioni RNEWCONF¶
Il blocco di lettura configurazione (x-configurazione, initialize util-ncnf) e' presente nel sorgente ma commentato: allo stato attuale il programma non legge chiavi RNEWCONF. E' predisposto (struttura tm-cfg commentata) per un'eventuale configurazione futura.
Note tecniche¶
- La griglia usa il pattern Screens a griglia editabile con chiave precedente: ogni riga conserva la coppia (tariffa/raggruppamento) originale (
*-prec) per permettere ab-aggiornadi riconoscere se la riga e' un inserimento, una modifica o un rename (cancella+reinserisci). - La cancellazione e' logica (
tdpr-fl-canc = "C"): i record non vengono rimossi fisicamente e vengono saltati alla ricostruzione del transito. - Il debug e' forzato attivo all'avvio (
gesdebug-apri-principale). - Il tipo di raggruppamento e' fissato a
"A"(costantek-raggr-paesi-dop): il programma gestisce solo i raggruppamenti di paesi per l'origine preferenziale. - I file generati da Screens (
cogfa4.select,.fd,.wrk,.tm,.prc,.decla,.imppredf) risiedono incbl/screens/.