COGFA5 - Elaborazione e invio dichiarazioni di origine ai clienti¶
Panoramica¶
Programma GUI a griglia che elabora e produce/invia ai clienti i documenti di dichiarazione di origine (DOP) degli articoli acquistati nel periodo. Individua, scorrendo i documenti di vendita del periodo, i clienti che hanno richiesto la dichiarazione di origine e gli articoli a loro venduti; per ogni articolo ricalcola la preferenzialita' e il paese "Made in" (tramite COGUAA) e genera un documento Word (modello selezionato tramite COGPA3) da spedire al cliente, oltre a un file di dettaglio esportabile in Excel. La griglia elenca i clienti candidati, che l'operatore seleziona (F2 seleziona/inverte tutto) prima di lanciare l'elaborazione (F9).
E' un programma standalone (non riceve parametri applicativi: procedure division using stringhe).
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Vendite | Documentazioni > Dichiarazioni di origine > Invio a cliente |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema (nomi file) |
| COGTESBO | Input | Testate documenti: scandite per data (chiave k02) per trovare i documenti di vendita del periodo |
| COGMOMAG | Input | Movimenti di magazzino: righe dei documenti di vendita, per estrarre gli articoli venduti |
| COGMERCI | Input | Anagrafica merci (classe, tariffa doganale) |
| COGRACMC | Input | Raccordo codici merce (chiave k02); esclusioni per personalizzazione Artic |
| COGMERA3 | Input | Merci dati aggiuntivi: paese "Made in" (ma3-made-in) |
| COGMERCL | Input | Merci-cliente: codice merce cliente (CMC) |
| COGGEANA | Input | Anagrafica generale (dati cliente per il documento) |
| COGANAP2 | I-O | Anagrafica parametri 2: flag dop-richiesta del cliente e data ultima DOP (aap2-data-dop), aggiornata a fine elaborazione |
| COGDOMER | Input | Dichiarazioni origine merce: usata nel confronto "solo diversi" (situazione alla data di confronto) |
| COGDOMEG | Input | Dichiarazioni origine per gruppo/regola: esito per gruppo alla data precedente (confronto) |
| COGTABEL | Input | Nazioni (tipo 54) per sigla/descrizione paese |
| t-articoli | I-O | File di transito indicizzato degli articoli per cliente (chiavi proprie k01/k02) |
| t-grid-det (T-GRID-DET) | I-O | File di transito della griglia clienti (istanza COGTRANS k03) |
| exp-dettaglio | Output | File line sequential di dettaglio articoli, poi aperto in Excel (GRIDTOXS) |
| cogpa9-t-dati | Output/I-O | File di transito dati per l'esportazione via COGPA9 (F7) |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cogfiles.cpy | SELECT/FD e record della tabella di sistema |
| cogfa5.select / cogfa5.fd | SELECT e File Description (generati da Screens) |
| cogfa5.wrk / cogfa5.decla / cogfa5.prc | Working storage, declaratives e procedure di I/O generati da Screens |
| cogfa5.tm | Campi modificabili della maschera (filtri) generati da Screens |
| cogfa5-01.scr | Screen section (griglia clienti e area filtri) |
| cogfa5.imppredf-wrk / cogfa5.imppredf | Filtri predefiniti memorizzati (Ctrl-S / Ctrl-F) |
| k-modelli-ie-e-dop-clienti.cpy | Costanti identificatori dato per l'export COGPA9 (modello "e-dop-clienti") |
| utilcogpa3.cpy | Area per COGPA3 (selezione modello documento per tipo/filtro) |
| utilcogpa9.cpy | Area per COGPA9 (import/export dati su modello) |
| utilcoguaa.cpy | Area per COGUAA (ricalcolo preferenzialita' / dati origine articolo) |
| utilwordmdl.cpy | Area per WORDMDL (generazione documento Word da modello + XML) |
| utilpost.cpy / utilmymail.cpy | Aree per POSTA/MyMail (invio email) |
| k-tipi-cogtabel.cpy | Costanti tipo COGTABEL (k-euta-tipo-nazioni = 54) |
| wgrid.cpy / utilgdad.cpy | Gestione griglia, GRIDADMN e GRIDTOXS |
| utils52 / utils65 / utils68 / utils93 / utilu10 / utilu20 | Aree per subroutine di help/selezione (date, anagrafiche, merci) |
| utilncnf.cpy / cogazien.cpy | Configurazioni (RNEWCONF) e dati azienda |
| grave / stato / stato1 / winmsg / mmmask / opengen / msgmerce | Errori, stato verbi, messaggi, maschera, apertura file, estrazione dati merce |
| cogracmc.k02 / cogtesbo.k02 | Chiavi secondarie aggiunte manualmente |
| cogtrans.k01 / .k02 / .k03 | File di transito, inclusi con REPLACING (t-articoli / t-art-; t-grid-det / t-gor-r-) |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Preparazione/personalizzazione (Shift-F4) della griglia clienti |
| COGPA3 | Selezione del modello documento in base al tipo (DOP-PF, MADEIN) e alla lingua |
| COGUAA | Ricalcolo preferenzialita' e dati origine (esiti per gruppo, prezzo vendita, costo) del singolo articolo |
| WORDMDL | Generazione del documento Word dal modello: apre XML, aggiunge tag/tabella, esegue e produce il file |
| GRIDTOXS | Apertura in Excel del file di dettaglio esportato |
| COGPA9 | Esportazione del dettaglio cliente su modello dati (F7) |
| POSTA / (MyMail) | Invio email del documento generato |
| COGS65W | Help/selezione cliente (entry-point z-s65-tm-ana) |
| RNEWCONF | Configurazione ARC-OTT / PATH-APRI-FILE (percorso locale documenti) |
| W$MENU | Menu pop-up contestuale della griglia |
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Nome programma, ctr-abil, apertura file, configurazione, gesdebug. Abilita F3, F7 esporta, F8 calendario, F9 stampa, Shift-F4, Shift-F5. Crea menu pop-up e pulsanti custom (Salva/Cerca impostazione, "Seleziona tutto (F2)"). Titolo "Elaborazione Dichiarazioni Origine per i clienti". Prepara la griglia (GRIDADMN).
2. Impostazione filtri (a4, a-tm-*)¶
Filtri: cliente (a-tm-ana, COGS65W), data partenza e data arrivo (obbligatorie), flag "solo articoli diversi" e data di confronto (abilitata solo con "solo diversi"). Se e' indicato un cliente, la data di confronto viene proposta dall'ultima DOP del cliente (aap2-data-dop). Controlli: data arrivo non oltre la data sistema (sara' la data di memorizzazione DOP sul cliente); data confronto precedente al periodo.
3. Costruzione griglia clienti (z-grid-det-crea-transito -> m-*)¶
Apre il transito t-articoli, poi scandisce COGTESBO per data nel periodo (st-cogtesbo-notmin-chia2). Per ogni testata (m-analisi-documento) considera solo documenti di tipo cliente ("C"), di vendita (tipob "I" o "D"), escludendo il cliente interno; se non e' filtrato un cliente specifico, include solo i clienti con aap2-dop-richiesta = "S". m-esamina-uscita aggiunge il cliente alla griglia (se nuovo) e scorre le righe COGMOMAG del documento; m-esamina-movimento esclude i servizi (solo mer-classe = "M"), applica le esclusioni COGRACMC per la personalizzazione Artic, e per ogni articolo nuovo scrive su t-articoli la tariffa doganale (COGMERCI), il CMC (COGMERCL) e il paese "Made in" (COGMERA3), tenendo il documento piu' recente del periodo.
4. Gestione griglia e comandi (a-grid)¶
Ciclo di accept: uscita, Shift-F4 (GRIDADMN), Shift-F5 (export Excel), F7 (esporta dettaglio cliente via COGPA9), F2 (inverte la selezione fl-sel di tutti i clienti), F9 (lancia l'elaborazione documenti c-stampa), voci pop-up.
5. Elaborazione e invio documenti (c-stampa / c-elabora-cliente)¶
Per ogni cliente selezionato aggiorna la data DOP su COGANAP2 (aap2-data-dop = tm-a-data), poi esegue due giri di generazione documento:
- GIRO 1 (DOP-PF): ricalcolo attivo (COGUAA con fl-ricalcolo = "S"); stampa gli articoli preferenziali ed evidenzia i totalmente non preferenziali;
- GIRO 3 (MADEIN): senza ricalcolo, stampa tutti gli articoli con paese "Made in".
Per ciascun giro c-crea-documento seleziona il modello (COGPA3 in base a filtro-des e lingua ITA/ENG) e costruisce il documento con WORDMDL: apre l'XML (c-documento-prepara), aggiunge i tag di intestazione cliente/date (c-documento-aggiungi), popola la tabella di dettaglio articoli (c-documento-tab-det / -articolo) con i dati e gli esiti di preferenzialita' per gruppo, chiude ed esegue il modello (c-documento-esegui), producendo il documento (docx) e, in parallelo, il file di dettaglio exp-dettaglio aperto in Excel (GRIDTOXS). L'invio email avviene tramite POSTA (in debug con wo-oper = 777 l'indirizzo e' forzato a un destinatario interno).
Nota: il GIRO 2 (stampa dei soli non preferenziali) e' presente ma interamente commentato; dal 14/01/2025 e' stato sostituito dalla stampa "Made in" (GIRO 3).
6. Esportazione dettaglio (F7 - e-esporta-dettaglio)¶
Seleziona il modello di export via COGPA9 ("SELEZIONE" su modello e-dop-clienti), crea il file di transito dati e per ogni articolo del cliente (e-esporta-articolo) scrive un record per informazione (codice merce, descrizione, documento, tariffa, esito, prezzi, esiti per gruppo), quindi lancia COGPA9 "ESPORTAZIONE".
7. Chiusura (fine / z-chiudi)¶
Chiude gesdebug (consultazione se wo-oper = 777 e debug attivo), chiude e cancella i transiti t-grid-det e t-articoli, distrugge il menu, chiude la finestra, annulla WORDMDL e COGUAA ed esce.
Note tecniche¶
- Catena di elaborazione documento: COGPA3 sceglie il modello -> COGUAA ricalcola la preferenzialita'/origine articolo -> WORDMDL genera il Word dal modello + XML -> POSTA invia via email; in parallelo un file di dettaglio viene aperto in Excel tramite GRIDTOXS.
- Giri di stampa: attivi GIRO 1 (DOP-PF, con ricalcolo) e GIRO 3 (MADEIN, senza ricalcolo). Il GIRO 2 (non preferenziali) e' commentato dal 14/01/2025; dal 01/08/2025 il "secondo giro" stampa tutti gli articoli con Made in.
- Selezione clienti: la griglia elenca i clienti con documenti di vendita nel periodo e richiesta DOP (
aap2-dop-richiesta = "S", salvo cliente specifico); l'elaborazione agisce solo sulle righe confl-sel = "S". La data DOP del cliente (aap2-data-dop) viene aggiornata atm-a-data. - Modalita' "solo diversi": se attiva,
c-verifica-esito-precedenteconfronta l'esito per gruppo con la situazione alla data di confronto (COGDOMER/COGDOMEG) e salta gli articoli con esito invariato. - Personalizzazione Artic:
m-esamina-movimentoapplica esclusioni specifiche (az-personal = k-personal-artic-seals) su codici avanzati "VARIE", "S.*" e merce "07805". Il destinatario email di default e' un indirizzo Artic. - COGTABEL tipo 54 (nazioni) per sigla/descrizione paese; chiavi secondarie
cogracmc.k02ecogtesbo.k02aggiunte manualmente. Sono usati tre file di transito distinti (t-articolicon k01/k02 proprie,t-grid-detcon k03) generati per replacing dacogtrans. - Programma generato da Screens: struttura, griglia e I/O da
cogfa5.select/.fd/.wrk/.decla/.prce screencogfa5-01.scr; i file di transito applicativit-articoliedexp-dettagliosono dichiarati manualmente nel sorgente.