Vai al contenuto

COGD80 - Estrazione vendite GDO per Pam (formato EDI)

Intestazione

Campo Valore
Sorgente cbl/cogd80.cbl
Tipo Interattivo (maschera testuale) + estrazione batch su file
Modulo Sistema
Posizione menu Sistema > Utility > Esportazioni
Autore Mauro Rovatti - Eurosystem

Scopo

COGD80 estrae le fatture (con le relative bolle) verso la catena GDO Pam, producendo un file testo in formato EDI (tracciato cogdedi.cpy). L'intestazione lo dichiara: "Creazione archivi bolle e fatture per PAM (Modello Dati EDI)".

A differenza di COGD04/COGD10 (tracciato Conad a due tipi record), COGD80 scrive un file EDI multi-record dove ogni riga ha un identificatore di tipo record a 3 caratteri (BGM, NAS, NAI, PAT, IVA, TMA per la testata fattura; DET, DES, TAX, NAD per il corpo bolla). L'anagrafica mittente/destinatario, le condizioni di pagamento e i dati bancari vengono valorizzati esplicitamente nel record.


Tabelle e file usati

File / logico FD / copybook Ruolo Campi chiave rilevanti
cogfattu cogfattu.cpy Testate fatture (scansione per chiave secondaria fat-chia2 = tipo ana + cliente) fat-chia2, fat-tip-ana, fat-cli, fat-num, fat-damov, fat-scadenza, fat-abi, fat-cab, fat-importo(39/40), fat-impo/ali1/iva(i)
cogracco cogracco.cpy Raccordo fattura -> bolle rac-chia1, rac-mag, rac-anno1, rac-tipo1, rac-bolla
cogtesbo cogtesbo.cpy Testate bolle (per l'agente) tes-mag, tes-anno, tes-tipob, tes-bolla3, tes-agente
cogmomag cogmomag.cpy Movimenti di magazzino (righe corpo bolla) mag-chiap; mag-merce3, mag-qtamagaz, mag-pre-no-sco, mag-prezzo, mag-valore, mag-alf, mag-padre/nonno, mag-bolla1, mag-da5
cogtabel cogtabel.cpy Config SPMG/COGD80 (tipo 70, euta-c046-*) e aliquote IVA (tipo 67) euta-tipo, euta-cfg-arg, euta-cfg-key, euta-ivali, euta-ivaes
coggeana coggeana.cpy Anagrafica mittente/destinatario/fatturante ana-cod, ana-tipo, ana-nome, ana-ind, ana-loca, ana-prov, ana-cap, ana-piva
cogmerci cogmerci.cpy Descrizione articolo (record DES) mer-chia, mer-descr
cogmercl / cogmerlk rispettivi cpy Presenti (apertura file)
cogtrans inline (trs-rec) Transito temporaneo (dichiarato ma non usato nel flusso EDI corrente) trs-chia1
filfat cogdedi.cpy File di output EDI (line sequential): record edi-b-rec da 609 char assegnato a w-cfg-nom-fat
neg-fil inline (neg-rec) Archivio codifica negozi (COGD80.ARC): mappa codice negozio -> codice cooperativa (cod-neg/cod-neg-coop alfanumerici) cod-neg, cod-neg-coop

Logica di elaborazione

  1. Maschera e config (a00-a4): apre i file, l'archivio negozi (COGD80.ARC), legge l'azienda e mostra la maschera date. Legge la config da cogtabel tipo 70 / SPMG / COGD80 (euta-c046-*: cliente capogruppo, codice fornitore, nome file EDI, nome file bolle, ultima data). Se il nome file inizia con A:/B: avvisa di inserire un dischetto.
  2. Accettazione date (a-10/a-50): range date fatture via COGS52.
  3. Estrazione (b-00): apre filfat (nome file: thin-client su ext-tmp-dir/fatedi.dat, altrimenti tm-cfg-nom-fat). Posiziona cogfattu sulla chiave secondaria fat-chia2 filtrando per tipo anagrafico "C" e cliente configurato; scandisce le fatture nel range date.
  4. Per ogni fattura chiama in sequenza: fat-testa (testata EDI), find-bolle (corpo), fat-piede (riepiloghi IVA e totali).
  5. fat-testa (record BGM, NAS, NAI, PAT): scrive il record di testata documento (BGM con P.IVA mittente az-piva, codice destinatario Pam fisso, tipo documento INVOIC/NOTACC a seconda che sia nota accredito, numero e data documento); i record anagrafici mittente (NAS, da az-cli-int) e fatturante (NAI, da fat-cli) letti da coggeana; il record PAT con la scadenza, le condizioni e i dati bancari risolti tramite COGU03 (sportello da fattura se fat-abi valorizzato, altrimenti sportello cliente interno o cliente).
  6. find-bolle (record DET, DES, TAX, NAD): risale a bolle (cogracco) e movimenti (cogmomag); per ogni movimento scrive la riga di dettaglio DET (quantita, prezzo, importo), la descrizione DES (da cogmerci), il record IVA TAX (aliquota da cogtabel tipo 67, esenzione se aliquota zero) e il record NAD con i dati del punto di consegna/negozio (anagrafica da coggeana su mag-padre/mag-nonno, codice cooperativa da find-negoz su neg-fil, numero e data bolla).
  7. fat-piede (record IVA, TMA): scorre i castelletti IVA della fattura (fat-impo(i), fat-ali1(i), fat-iva(i)) scrivendo un record IVA per aliquota; chiude con il record TMA di totali documento (totale, imposta, imponibile, totale pagamento) da fat-importo(39/40).
  8. Chiusura (b-50): chiude il file; in thin-client copia il file EDI dal server al client via COPIAF; memorizza l'ultima data di estrazione (x99-mem-data, euta-c046-data).

Chiamate a sottoprogrammi / COPY rilevanti

Elemento Tipo Scopo
COGS52 CALL Accettazione/validazione date
COGU03 CALL Ricerca banca/sportello (dati bancari nel record PAT), operazioni cerca-Banca-ana / cerca-sportello (via utilu03.cpy)
COPIAF CALL Copia file EDI server -> client in thin-client (via l-copiaf.cpy / u-copiaf.cpy)
cogdedi.cpy COPY (FD filfat) Tracciato record EDI (edi-b-rec, redefines per tipo record)
cogazien.cpy COPY Area azienda (az-piva, az-cli-int, az-tipo-nac, az-sport-bon)
utilu03/utils52/utils65/utilw06.cpy COPY Aree parametri subroutine
mmmask.cpy, scree.cpy, winmsg.cpy, grave.cpy COPY Maschera, video, messaggi, errori gravi

Note

  • Formato EDI multi-record: ogni riga del file di output ha un identificatore di tipo record a 3 caratteri; il tracciato completo e' in cogdedi.cpy (record lungo 609 caratteri con numerose ridefinizioni).
  • Il codice destinatario Pam e la P.IVA destinatario nel record BGM sono costanti letterali nel sorgente (01534730278).
  • La distinzione fattura / nota di accredito guida edi-bgm-tipodoc (INVOIC/NOTACC) e il segno importo nei record di pagamento.
  • I dati bancari (record PAT) dipendono dalla configurazione azienda az-sport-bon e dalla presenza di ABI/CAB in fattura; sono risolti da COGU03.
  • Configurazione persistente su cogtabel tipo 70 / SPMG / COGD80 (euta-c046-*); ultima data estrazione aggiornata a fine estrazione.
  • Il file cogtrans e' dichiarato ma il flusso EDI scrive direttamente i record senza usare il transito (a differenza di COGD04/COGD10 che raggruppano le righe).
  • Programma legacy testuale (go to, semigrafica); nessuna configurazione RNEWCONF letta direttamente. Vedi flusso Sistema - Import/Export.

Documentazione tecnica -- creata 2026-08-07