Vai al contenuto

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

  1. Apertura e maschera (a00/a4): apre i file, apre l'archivio negozi (open-fil-neg, path ext-arc-dir + COGD04.ARC), legge l'azienda (rd-azi) e mostra la maschera con range date.
  2. Lettura configurazione (x99-src-cfg): legge da cogtabel il record tipo 70 con argomento SPMG / chiave COGD04, popolando tm-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, output A:\CONAD.DAT).
  3. Configurazione interattiva (x99-conf): finestra pop-up per modificare cliente, codice fornitore, nome file (via COGS23), data (via COGS52); il tasto F5 apre la codifica negozi (inse-neg) che scrive su neg-fil. Alla conferma riscrive la config su cogtabel.
  4. Accettazione date (a-10/a-50): due campi data (inizio/fine) gestiti tramite la subroutine COGS52; controllo che la data di partenza non superi quella di arrivo.
  5. Estrazione (b-00): apre in output filfat (nome file: se thin-client su ext-tmp-dir/conad.dat, altrimenti tm-cfg-nom-bol), poi scandisce sequenzialmente cogfattu (start/read next). Per ogni fattura del cliente configurato e nel range date chiama find-bolle.
  6. find-bolle: dalla fattura risale alle bolle collegate via cogracco, poi per ciascuna bolla scandisce i movimenti cogmomag. Per la testata bolla scrive un record 01 (bolla-testa); per le righe accumula su cogtrans (bolla-corpo); a fine bolla svuota il transito scrivendo i record 02 (svuota-bolla).
  7. bolla-testa (record tipo 01): valorizza progressivo, riferimento fattura/bolla, date (formato aa/mm/gg a 6 cifre), codice fornitore, codice socio (mag-figlio/mag-padre), divisa EUR.
  8. bolla-corpo: determina il codice merce da esportare. Se l'azienda e' personalizzata PM (Pasticceria Modenese) risolve la merce di vendita/merce cliente tramite cogmerlk (tipo "CV") e il codice merce cliente (CMC) da cogmercl; accumula quantita/valore/colli su cogtrans.
  9. svuota-bolla (record tipo 02): per ogni riga di transito recupera la descrizione articolo (cogmerci), calcola totali imponibile (w-val, w-val1), risolve il codice IVA da cogtabel (tipo 67) e scrive la riga sul file output.
  10. Chiusura (b-50): chiude il file; in modalita' thin-client copia il file dal server al client tramite COPIAF (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-corpo cambia se az-personal = "PM" (Pasticceria Modenese), che attiva la traduzione del codice merce verso il codice cliente (CMC).
  • La configurazione persistente e' salvata in cogtabel come record tipo 70, argomento SPMG, chiave COGD04 (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> in ext-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