Vai al contenuto

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 con fl-sel = "S". La data DOP del cliente (aap2-data-dop) viene aggiornata a tm-a-data.
  • Modalita' "solo diversi": se attiva, c-verifica-esito-precedente confronta l'esito per gruppo con la situazione alla data di confronto (COGDOMER/COGDOMEG) e salta gli articoli con esito invariato.
  • Personalizzazione Artic: m-esamina-movimento applica 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.k02 e cogtesbo.k02 aggiunte manualmente. Sono usati tre file di transito distinti (t-articoli con k01/k02 proprie, t-grid-det con k03) generati per replacing da cogtrans.
  • Programma generato da Screens: struttura, griglia e I/O da cogfa5.select/.fd/.wrk/.decla/.prc e screen cogfa5-01.scr; i file di transito applicativi t-articoli ed exp-dettaglio sono dichiarati manualmente nel sorgente.