Vai al contenuto

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

  1. 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).
  2. a4: reset maschera, impostazione filtro su griglia, ordinamento predefinito per tariffa ascendente (gcn-r-tariffa), caricamento eventuale filtro predefinito (z-imppredf-carica-default).
  3. a-leggi-dati / z-grid-det-crea-transito: apertura e popolamento del file di transito della griglia leggendo COGTDPAR (scansione st-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.
  4. 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).
  5. b-aggiorna: scansione del file di transito e scrittura definitiva su COGTDPAR (vedi sotto).
  6. 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 a b-aggiorna di 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" (costante k-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 in cbl/screens/.