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¶
- Maschera e config (
a00-a4): apre i file, l'archivio negozi (COGD80.ARC), legge l'azienda e mostra la maschera date. Legge la config dacogtabeltipo 70 /SPMG/COGD80(euta-c046-*: cliente capogruppo, codice fornitore, nome file EDI, nome file bolle, ultima data). Se il nome file inizia conA:/B:avvisa di inserire un dischetto. - Accettazione date (
a-10/a-50): range date fatture viaCOGS52. - Estrazione (
b-00): aprefilfat(nome file: thin-client suext-tmp-dir/fatedi.dat, altrimentitm-cfg-nom-fat). Posizionacogfattusulla chiave secondariafat-chia2filtrando per tipo anagrafico "C" e cliente configurato; scandisce le fatture nel range date. - Per ogni fattura chiama in sequenza:
fat-testa(testata EDI),find-bolle(corpo),fat-piede(riepiloghi IVA e totali). fat-testa(recordBGM,NAS,NAI,PAT): scrive il record di testata documento (BGMcon P.IVA mittenteaz-piva, codice destinatario Pam fisso, tipo documentoINVOIC/NOTACCa seconda che sia nota accredito, numero e data documento); i record anagrafici mittente (NAS, daaz-cli-int) e fatturante (NAI, dafat-cli) letti dacoggeana; il recordPATcon la scadenza, le condizioni e i dati bancari risolti tramiteCOGU03(sportello da fattura sefat-abivalorizzato, altrimenti sportello cliente interno o cliente).find-bolle(recordDET,DES,TAX,NAD): risale a bolle (cogracco) e movimenti (cogmomag); per ogni movimento scrive la riga di dettaglioDET(quantita, prezzo, importo), la descrizioneDES(dacogmerci), il record IVATAX(aliquota dacogtabeltipo 67, esenzione se aliquota zero) e il recordNADcon i dati del punto di consegna/negozio (anagrafica dacoggeanasumag-padre/mag-nonno, codice cooperativa dafind-negozsuneg-fil, numero e data bolla).fat-piede(recordIVA,TMA): scorre i castelletti IVA della fattura (fat-impo(i),fat-ali1(i),fat-iva(i)) scrivendo un recordIVAper aliquota; chiude con il recordTMAdi totali documento (totale, imposta, imponibile, totale pagamento) dafat-importo(39/40).- Chiusura (
b-50): chiude il file; in thin-client copia il file EDI dal server al client viaCOPIAF; 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
BGMsono 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 aziendaaz-sport-bone dalla presenza di ABI/CAB in fattura; sono risolti daCOGU03. - Configurazione persistente su
cogtabeltipo 70 /SPMG/COGD80(euta-c046-*); ultima data estrazione aggiornata a fine estrazione. - Il file
cogtranse' 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