COGFA2 - Consultazione dettaglio dichiarazioni di origine (DOP)¶
Panoramica¶
Programma GUI a griglia per la consultazione e la gestione di dettaglio delle dichiarazioni di origine preferenziale (DOP) delle merci per interlocutore (tipicamente fornitore). La griglia mostra, per la combinazione articolo/interlocutore/data, il flag di origine, il paese di origine, il flag PSP e la percentuale non preferenziale, permettendo di inserire, modificare e cancellare (logicamente) le righe. Ogni riga puo' avere associato un documento immagine PSP archiviato tramite ottica (COGU06). I dati sono persistiti nella tabella COGDOMER (dichiarazioni origine merce).
Il programma funziona in due modalita':
- standalone (da menu): filtri liberi su tipo dichiarazione, periodo, interlocutore e articolo, con caricamento della griglia su F3;
- richiamato (cogfa2-called = "COGFA2" con cogfa2-caller valorizzato, ad es. da COGFA3): riceve merce, interlocutore e periodo in util-cogfa2, li imposta come filtri e va direttamente alla griglia; all'uscita torna al chiamante.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Vendite | Documentazioni > Dichiarazioni di origine > Consultazione dettaglio |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema (nomi file) |
| COGDOMER | I-O | Dichiarazioni di origine merce (DOP): record per merce/interlocutore/data con flag origine, paese, PSP, percentuale NP |
| COGGEANA | Input | Anagrafica generale (nome interlocutore) |
| COGTABEL | Input | Tabella generica; usata per le nazioni (tipo 54) per risolvere descrizione paese origine |
| t-grid-det (T-GRID-DET) | I-O | File di transito indicizzato che alimenta la griglia (istanza di COGTRANS chiave k03) |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cogfiles.cpy | SELECT/FD e record della tabella di sistema |
| cogfa2.select / cogfa2.fd | SELECT e File Description (generati da Screens) |
| cogfa2.wrk / cogfa2.decla / cogfa2.prc | Working storage, declaratives e procedure di I/O generati da Screens |
| cogfa2.tm | Campi modificabili della maschera (filtri) generati da Screens |
| cogfa2-01.scr | Screen section (griglia e-grid-det e area filtri) |
| cogfa2.imppredf-wrk / cogfa2.imppredf | Gestione filtri predefiniti memorizzati (Ctrl-S salva, Ctrl-F carica) |
| utilcogfa2.cpy | Area di linkage util-cogfa2 (parametri cogfa2-caller, cogfa2-called, cogfa2-merce, cogfa2-ana, cogfa2-da-data, cogfa2-a-data) |
| cogdomer.k02 / cogdomer.k03 | Chiavi secondarie di COGDOMER (ricerca per interlocutore e per data) |
| k-tipi-cogtabel.cpy | Costanti tipo COGTABEL (es. k-euta-tipo-nazioni = 54) |
| wgrid.cpy / utilgdad.cpy | Gestione griglia e interfaccia GRIDADMN |
| utile04 / utils52 / utils65 / utils68 / utils93 / utilu06 / utilu10 / utilu20 | Aree di comunicazione per subroutine di help/selezione (nazioni, date, anagrafiche, merci, ottica) |
| utilncnf.cpy | Parametri per RNEWCONF (configurazioni) |
| cogazien.cpy | Dati azienda |
| grave / stato / stato1 / winmsg / mmmask / opengen | Gestione errori, stato verbi, messaggi, maschera, apertura file |
| cogtrans.k03 | Copybook del file di transito, incluso con REPLACING per generare t-grid-det / t-gor-r- |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Preparazione e personalizzazione (Shift-F4) delle colonne della griglia |
| COGU06 | Archiviazione ottica: cerca/inserisci/visualizza/elimina il documento immagine PSP (tipo doc "DP") associato alla riga |
| COGS65W | Help/selezione interlocutore (tramite entry-point z-s65-tm-int) |
| COGE04 | Help/selezione nazione sul campo paese origine in griglia (F8) |
| RNEWCONF | Lettura configurazione ARC-OTT / PATH-APRI-FILE (percorso locale per file) |
| COGS68 (via entry-point z-s68) | Help/selezione articolo (merce) |
| W$MENU | Menu pop-up contestuale sul right-click della griglia |
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Imposta il nome programma, verifica l'abilitazione (ctr-abil), legge dati azienda, apre i file, legge la configurazione (x-configurazione) e attiva gesdebug. Abilita i tasti funzione previsti (F3 conferma/aggiorna, F8 aiuto/calendario, F9 ricerca avanzata, Shift-F4 griglia, Shift-F5 export Excel, Ctrl-A aggiungi, Ctrl-E elimina). Se richiamato (cogfa2-called = "COGFA2") valorizza w-dc-* con i parametri ricevuti. Costruisce il menu pop-up della griglia, carica le bitmap custom e crea i pulsanti custom della toolbar: Salva/Cerca impostazione (Ctrl-S/Ctrl-F) e i tre pulsanti di gestione immagine PSP (F6 cancella, F7 acquisisci, F4 visualizza). Imposta il titolo "Consultazione dichiarazioni di origine", prepara la griglia (z-prepara-tm-grid, GRIDADMN) e i controlli.
2. Impostazione filtri (a4 e paragrafi a-tm-*)¶
Inizializza la maschera con tipo dichiarazione "F" (fornitore), imposta l'ordinamento predefinito, carica l'eventuale filtro predefinito (z-imppredf-carica-default) e presenta i campi filtro: tipo dichiarazione, data partenza, data arrivo, interlocutore (a-tm-int, con COGS65W), articolo (a-tm-mer, con COGS68). Se richiamato salta la parte interattiva e va direttamente a a-leggi-dati. La conferma dei filtri passa per a-richiesta-conferma.
3. Costruzione file di transito (z-grid-det-crea-transito)¶
Sceglie la chiave di scansione di COGDOMER piu' appropriata in base ai filtri:
- se e' impostata la merce -> z-scorri-cogdomer-chia1 (chiave merce, con eventuale filtro interlocutore);
- altrimenti se e' impostato l'interlocutore -> z-scorri-cogdomer-chia2 (chiave interlocutore + periodo);
- altrimenti -> z-scorri-cogdomer-chia3 (chiave data/periodo).
Per ogni record z-grid-det-riempi-t-rec applica tutti i filtri residui (merce, tipo, interlocutore, periodo) e scarta i cancellati logicamente (dom-fl-canc = "C"). z-grid-det-riempi-campi-t-gor valorizza la riga di transito con dati "precedenti" (per il confronto in aggiornamento) e "attuali": merce, interlocutore e sua descrizione (COGGEANA), data, flag origine, flag PSP, paese origine e sua descrizione (COGTABEL tipo 54), flag origine CP, percentuale NP, ed eventuale presenza documento PSP (COGU06 "Cerca-esistenza-doc").
4. Gestione griglia (a-grid)¶
Ciclo principale di accept sulla griglia che gestisce: uscita (ESC / F3 di ritorno al chiamante se richiamato), Shift-F4 (GRIDADMN), Shift-F5 (export Excel), operazioni immagine PSP (F7 acquisisci, F4 visualizza, F6 cancella, gestite via COGU06), Ctrl-A (aggiunge riga sul transito riproponendo i filtri correnti), Ctrl-E (cancella riga previa c1-controlli-cancellazione), e le voci del menu pop-up. La validazione delle celle in griglia (x-controlla-tm-r-*) risolve il paese origine (COGE04/COGTABEL) e riallinea la riga di transito.
5. Salvataggio (b-aggiorna)¶
Su F3, dopo i controlli b1-controlla-aggiornamenti, scorre il file di transito e confronta i dati attuali con i "precedenti" per decidere l'operazione su COGDOMER:
- interlocutore attuale a zero ma precedente valorizzato -> cancellazione logica (b3-cancella, imposta dom-fl-canc = "C");
- chiave invariata e riga modificata -> aggiornamento (b1-aggiorna);
- chiave cambiata -> cancella la vecchia e inserisci/aggiorna la nuova.
b1-aggiorna legge/crea il record COGDOMER (merce, tipo ana, cod ana, data) e riscrive flag origine, paese origine, flag PSP azzerando l'eventuale cancellazione.
6. Documenti immagine PSP¶
a-f7-acq-immagine (previo salvataggio), a-f4-vis-immagine e a-f6-canc-immagine chiamano COGU06 con tipo documento "DP" e chiave documento composta da merce + tipo ana + codice interlocutore + "0001". Dopo l'operazione ricercano la presenza allegato e aggiornano il flag fl-all-psp sulla riga di transito e in griglia.
7. Chiusura (fine / z-chiudi)¶
Annulla COGU06, chiude gesdebug (con consultazione se wo-oper = 777), chiude e cancella il file di transito, distrugge il menu della griglia, chiude la finestra ed esce.
Note tecniche¶
- Tabella COGDOMER: e' la base dati delle dichiarazioni di origine (chiave merce/interlocutore/data). Ha chiavi secondarie k02 (interlocutore) e k03 (data), incluse manualmente a fine procedure division perche' Screens genera solo la chiave primaria. La cancellazione e' logica (
dom-fl-canc = "C"), non fisica. - Aggiornamento differito con confronto attuale/precedente: come altri programmi a griglia, le modifiche non aggiornano subito COGDOMER; il salvataggio confronta ogni riga con i valori "precedenti" (
t-gor-r-int-prec,t-gor-r-mp-cm,t-gor-r-data-prec) memorizzati al caricamento per decidere insert/update/delete, gestendo anche rinomine di chiave. - Doppia modalita' (standalone / richiamato): da menu usa filtri interattivi; richiamato da COGFA3 (F2 "Dettaglio DOP") riceve i parametri gia' filtrati in
util-cogfa2e torna al chiamante all'uscita. - COGTABEL tipo 54 (nazioni): il paese di origine (
dom-paese-origine, codice ISO 3 char) viene descritto leggendo COGTABEL coneuta-tipo = k-euta-tipo-nazioni(54); l'help sul campo usa COGE04. - Documenti ottici PSP: l'archiviazione delle immagini PSP e' condizionata dal flag azienda
az-arc-ott = "S"e usa COGU06 con tipo doc "DP"; il percorso locale proviene dalla configurazione ARC-OTT / PATH-APRI-FILE. - Codice commentato (blocco richiamato con modalita' A/S): nel ramo F3 della griglia e' presente un ampio blocco commentato relativo a una gestione selezione/aggiornamento; nella versione attiva F3 esegue sempre
b-aggiorna. - Programma generato da Screens: struttura, griglia e routine di I/O provengono dai file
cogfa2.select/.fd/.wrk/.decla/.prce dalla screencogfa2-01.scr.