COGD04 - Estrazione vendite GDO per Conad¶
Intestazione¶
| Campo | Valore |
|---|---|
| Sorgente | cbl/cogd04.cbl |
| Tipo | Interattivo (maschera testuale) + estrazione batch su file |
| Modulo | Sistema |
| Posizione menu | Sistema > Utility > Esportazioni |
| Autore | Mauro Rovatti - Eurosystem |
Scopo¶
COGD04 estrae bolle e fatture verso la catena GDO Conad Estense, producendo un file sequenziale di testo (tracciato cogdcona.cpy) da consegnare/importare nel sistema del cliente. L'intestazione del sorgente lo dichiara: "Creazione archivi bolle e fatture per Conad Estense".
Il programma e' interattivo: presenta una maschera testuale in cui l'operatore imposta l'intervallo di date fatture da estrarre e (tramite una schermata di configurazione) i parametri fissi dell'estrazione (cliente Conad, codice fornitore attribuito dal cliente, nome file di output, ultima data di estrazione). Alla conferma esegue l'estrazione scrivendo il file destinazione.
Il tracciato di output e' condiviso con COGD10 (Despar) e COGD93 (Realco): tutti e tre usano cogdcona.cpy.
Tabelle e file usati¶
| File / logico | FD / copybook | Ruolo | Campi chiave rilevanti |
|---|---|---|---|
cogfattu |
cogfattu.cpy |
Testate fatture (scansione principale per intervallo date) | fat-chia1; filtri: fat-cli, fat-damovaa/mm/gg, fat-tip, fat-ann, fat-num |
cogracco |
cogracco.cpy |
Raccordo fattura -> bolle (link fattura/bolla) | rac-chia1 (rac-tipo, rac-ann, rac-nfat), rac-mag, rac-anno1, rac-tipo1, rac-bolla |
cogmomag |
cogmomag.cpy |
Movimenti di magazzino (righe corpo bolla) | mag-chiap (mag-mag1, mag-anno, mag-tipob1, mag-bolla1, mag-prog); dati riga: mag-merce3, mag-qtamagaz, mag-prezzo, mag-valore, mag-colli, mag-um, mag-alf, mag-nonno/padre/figlio |
cogtabel |
cogtabel.cpy |
Tabelle: config SPMG/COGD04 (tipo 70, euta-c047-*) e codici IVA (tipo 67) |
euta-tipo, euta-cfg-arg, euta-cfg-key, euta-cod |
coggeana |
coggeana.cpy |
Anagrafica clienti/fornitori (nome, ecc.) | ana-tipo, ana-cod, ana-nome, ana-ind, ana-loca |
cogmerci |
cogmerci.cpy |
Anagrafica merci (descrizione articolo) | mer-chia, mer-descr |
cogmercl |
cogmercl.cpy |
Codifica merce per cliente (CMC = codice merce cliente) | mcl-merce, mcl-cli, mcl-cmc |
cogmerlk |
cogmerlk.cpy (k01, k02) |
Collegamento merci (merce di vendita / merce cliente, tipo "CV") | mlk-tip, mlk-merce1, mlk-merce2 |
cogtrans |
inline (trs-rec) |
File di transito temporaneo per raggruppare le righe di bolla prima della scrittura | trs-chia1, trs-mag-qtamagaz, trs-mag-valore, trs-mag-colli |
filfat |
cogdcona.cpy |
File di output (line sequential): testate 01 (cp-t-*) e righe 02 (cp-r-*) |
assegnato a w-cfg-nom-bol |
neg-fil |
inline (neg-rec) |
Archivio codifica negozi (COGD04.ARC): mappa codice negozio -> codice cooperativa |
cod-neg, cod-neg-coop |
Logica di elaborazione¶
- Apertura e maschera (
a00/a4): apre i file, apre l'archivio negozi (open-fil-neg, pathext-arc-dir + COGD04.ARC), legge l'azienda (rd-azi) e mostra la maschera con range date. - Lettura configurazione (
x99-src-cfg): legge dacogtabelil record tipo 70 con argomentoSPMG/ chiaveCOGD04, popolandotm-cfg-cli(cliente Conad),tm-cfg-codfor(codice fornitore attribuito),tm-cfg-nom-bol(nome file output) e l'ultima data di estrazione. Se assente si inizializzano i default (x99-cfg-init, outputA:\CONAD.DAT). - Configurazione interattiva (
x99-conf): finestra pop-up per modificare cliente, codice fornitore, nome file (viaCOGS23), data (viaCOGS52); il tasto F5 apre la codifica negozi (inse-neg) che scrive suneg-fil. Alla conferma riscrive la config sucogtabel. - Accettazione date (
a-10/a-50): due campi data (inizio/fine) gestiti tramite la subroutineCOGS52; controllo che la data di partenza non superi quella di arrivo. - Estrazione (
b-00): apre in outputfilfat(nome file: se thin-client suext-tmp-dir/conad.dat, altrimentitm-cfg-nom-bol), poi scandisce sequenzialmentecogfattu(start/read next). Per ogni fattura del cliente configurato e nel range date chiamafind-bolle. find-bolle: dalla fattura risale alle bolle collegate viacogracco, poi per ciascuna bolla scandisce i movimenticogmomag. Per la testata bolla scrive un record01(bolla-testa); per le righe accumula sucogtrans(bolla-corpo); a fine bolla svuota il transito scrivendo i record02(svuota-bolla).bolla-testa(record tipo01): valorizza progressivo, riferimento fattura/bolla, date (formato aa/mm/gg a 6 cifre), codice fornitore, codice socio (mag-figlio/mag-padre), divisaEUR.bolla-corpo: determina il codice merce da esportare. Se l'azienda e' personalizzataPM(Pasticceria Modenese) risolve la merce di vendita/merce cliente tramitecogmerlk(tipo "CV") e il codice merce cliente (CMC) dacogmercl; accumula quantita/valore/colli sucogtrans.svuota-bolla(record tipo02): per ogni riga di transito recupera la descrizione articolo (cogmerci), calcola totali imponibile (w-val,w-val1), risolve il codice IVA dacogtabel(tipo 67) e scrive la riga sul file output.- Chiusura (
b-50): chiude il file; in modalita' thin-client copia il file dal server al client tramiteCOPIAF(con avviso di usare l'icona dischetto se la copia fallisce); mostra totali imponibile e memorizza l'ultima data di estrazione (x99-mem-data,euta-c047-data).
Chiamate a sottoprogrammi / COPY rilevanti¶
| Elemento | Tipo | Scopo |
|---|---|---|
COGS52 |
CALL | Accettazione/validazione campo data |
COGS23 |
CALL | Accettazione stringa lunga (nome file output) |
COPIAF |
CALL | Copia file server -> client in modalita' thin-client (via l-copiaf.cpy / u-copiaf.cpy) |
C$CALLERR |
(non usato qui) | - |
cogazien.cpy |
COPY | Area azienda (az-personal, ecc.) |
cogdcona.cpy |
COPY (FD filfat) |
Tracciato record di output (testata cp-t-* / riga cp-r-*) |
utils52/utils23/utils65/utilw06.cpy |
COPY | Aree parametri per le subroutine |
mmmask.cpy, scree.cpy, winmsg.cpy, grave.cpy |
COPY | Gestione maschera, video, messaggi, errori gravi |
Note¶
- Multi-tenant: il comportamento su
bolla-corpocambia seaz-personal = "PM"(Pasticceria Modenese), che attiva la traduzione del codice merce verso il codice cliente (CMC). - La configurazione persistente e' salvata in
cogtabelcome record tipo 70, argomentoSPMG, chiaveCOGD04(euta-c047-*); l'ultima data di estrazione viene aggiornata a fine estrazione. - L'archivio negozi (
COGD04.ARC) e' locale al programma e mappa codice negozio -> codice cooperativa; e' popolato dalla schermata F5 (codifica negozi). - Il file usa un canale di transito temporaneo (
cogtrans,$COGD04.<oper>inext-tmp-dir) per sommare le righe della stessa bolla prima di scriverle. - Programma legacy in stile testuale (
go to, maschere a caratteri semigrafici); non e' un programma GUI moderno. - Nessuna configurazione RNEWCONF letta direttamente (i parametri sono su
cogtabel). - Condivide il tracciato di output con COGD10 (Despar) e COGD93 (Realco). Vedi flusso Sistema - Import/Export.
Documentazione tecnica -- creata 2026-08-07