Vai al contenuto

COGO88A - Invio Ordini a Bencarni (Famila / Pasticceria Modenese)

Intestazione

Campo Valore
Programma COGO88A
Titolo Invio ordini a Bencarni
Modulo Sistema
Posizione menu Sistema > Utility > Esportazioni > Estrazione Vendite X GDO > Famila > Invio ordini a Bencarni

Scopo e logica generale

COGO88A e' l'interfaccia di scambio documenti tra Pasticceria Modenese e il grossista Bencarni (canale Famila / Brendolan). E' un unico programma multi-operazione pilotato dal parametro di lancio wo-parametro:

  • wo-parametro (1:1) = "1" -> prepara il file ordini per Bencarni (voce di menu documentata qui: "Invio ordini a Bencarni");
  • = "2" -> acquisisce le conferme d'ordine da Bencarni aggiornando COGTESOR (numero/data ordine con prefisso BC/);
  • = "3" -> prepara il file bolle (DDT) per Bencarni.

Il secondo carattere (wo-parametro (2:1)) distingue partenza automatica ("A") o manuale (default "M").

A differenza della famiglia COGD01/93/95/96 (interfacce a caratteri), COGO88A e' un programma GUI (screen section cogo88a-01.scr, framework mmmask.cpy con z-99-init-program). L'operatore indica il cliente padre, la data di consegna/bolla e il file di input/output; l'estrazione produce un file sequenziale a larghezza fissa con record testata "01" e riga "02", strutturati secondo cp-b-rec (ordini) o bb-b-rec (bolle), definiti direttamente nel sorgente. Il trasferimento client/server dei file e' gestito da COPIAF; gli import in formato Excel sono convertiti via ESTRXLS.

La configurazione (cliente padre, cliente padre merci, cliente padre BC, percorso I/O, delimitatore Excel) e' letta da RNEWCONF dai gruppi cogo88/cogesys. Il codice fornitore verso Bencarni e' costante nel sorgente (k-cod-for = "026051").


Flusso principale

  1. apri (main): z-99-init-program, ctr-abil, rd-azi, open-files; abilita F1/F3/F5; carica la configurazione (x99-load-config -> RNEWCONF); imposta il titolo maschera in base a w-operazione (1/2/3); costruisce i controlli GUI.
  2. a4: inizializza la maschera, legge l'anagrafica del cliente padre (COGGEANA), carica i controlli, attiva F3 e si posiziona sulla data di consegna.
  3. a-tm-cliente-padre: accept del codice anagrafico cliente (ricerca via COGS65W), con controllo di codifica (x-controlla-tm-cliente-padre).
  4. a-tm-data-consegna / a-tm-data-bolla: accept date con calendario (COGS52); a seconda dell'operazione compongono il nome file di default (FTPPAST.txt per op.1, OPMO<data>.txt per op.2, BPAM<data>.txt per op.3) sul path configurato.
  5. a-tm-filein: accept del file di input/output, con dialog di selezione (C$OPENSAVEBOX, F5) e controlli su nome/estensione.
  6. a-richiesta-conferma: conferma (acc-conf, F3); prepara i nomi file di lavoro e il file di log ($logcogo88a. in ext-tmp-dir); apre il log.
  7. Esecuzione (per w-operazione):
  8. "1" -> tratta-file + trs-file-locale: scorre COGTESOR (chiave data-decorrenza per cliente padre) e per ogni ordine scrive testata (scarica-ordine, record "01") e righe (scarica-ordine-righe, record "02" da COGRIGOR), risolvendo codice articolo cliente (COGMERCL) e descrizione (COGMERCI); poi copia il file sul client.
  9. "2" -> leggi-ordini: converte/copia il file di input via COPIAF, lo legge riga per riga e aggiorna COGTESOR scrivendo la conferma d'ordine Bencarni (BC/<numero> + data) tramite cerca-ordine-altra-via (che localizza gli ordini via COGGEANA/COGCNDCF per il punto vendita, cerca-cod-pv).
  10. "3" -> crea-bo-da-ord + trs-file-locale: costruisce il file bolle a partire dagli ordini; recupera il numero "bollone" da COGTESBO, scrive testata (record "01") e righe (record "02" da COGRIGOR), riportando il numero ordine Bencarni (BC/), calcolando i Kg consegnati (w-maxi-d-kg, con conversione via mer-peso) e le referenze; il metodo alternativo crea-bolle (da COGMOMAG con COGU09) e' presente ma disattivato.
  11. Chiusura: rimuove il clock, chiude i file, mostra il riepilogo (record letti/aggiornati, Kg e referenze per op.3, eventuale rimando al file di log in caso di errori).
  12. fine / z-chiudi: z-close-files, chiude la window, z-99-exit-program, exit program.

File e tabelle acceduti

File Record Modalita' Uso
COGTESOR tor-rec I-O (st/rdnxt/rd/rwr) Testate ordini: lette per l'export (op.1/3), aggiornate con conferma Bencarni (op.2)
COGRIGOR ror-rec Input (st/rdnxt) Righe ordine (articoli/quantita')
COGTESBO tes-rec Input (st/rdnxt/rd) Testate bolle (DDT) per l'export bolle (op.3)
COGMOMAG mag-recz Input (st/rdnxt) Righe movimento magazzino (nel ramo crea-bolle, disattivato)
COGGEANA ana-rec Input (rd/st/rdnxt) Anagrafica cliente padre / punti vendita
COGMERCI mer-rec Input Descrizione, unita' di misura, peso merce
COGMERCL mcl-rec Input Codice merce cliente (CMC) per il codice articolo Bencarni
COGCNDCF cnd-rec Input Condizioni cliente/fornitore (DC -> porto/codice destino)
COGTABEL (feurtab) euta-rec/cogfiles.cpy I-O File fisico generalizzato tabelle
filseq seq-rec / cp-b-rec / bb-b-rec I/O line-sequential File di lavoro ordini/bolle (input in op.2, output in op.1/3)
filelog log-record Output line-sequential Log elaborazione ($logcogo88a. in ext-tmp-dir)

Tracciato prodotto (Bencarni) - definito inline nel sorgente:

  • Ordini (cp-b-rec, lrsz ~111): record "01" testata (cp-t: progressivo, riferimento ns. ordine, numero/data ordine, codice fornitore, codice cliente, divisa, data consegna, tipo fatturazione) e "02" riga (cp-r: progressivo, codice articolo, descrizione, unita' di misura, pezzi, flag vendita).
  • Bolle (bb-b-rec, lrsz ~114/119): record "01" testata (bb-t: progressivo, numero/data DDT, numero/data ordine, codice fornitore, codice cliente, divisa, data consegna) e "02" riga (bb-r: progressivo, codice articolo, descrizione, unita' di misura, quantita', pezzi, colli, tipo, lotto).

Copybook principali

Screen Designer: cogo88a.select, cogo88a.fd, cogo88a.wrk, cogo88a.decla, cogo88a.prc, cogo88a-01.scr - artefatti generati (maschera GUI, verbi di accesso st-/rdnxt-/rd-/rwr-, controlli e-tm-*).

Strutture dati / FD: - feurtab.fd + cogfiles.cpy - file fisico generalizzato tabelle. - cp-b-rec / bb-b-rec - tracciati ordini/bolle definiti nel sorgente.

Working-storage / utilita': - k-u10.cpy, utilu10.cpy, utilu09.cpy (COGU09/U10), utilw92.cpy, utils52.cpy, utils65.cpy - subroutine di supporto. - utilestrxls.cpy (ESTRXLS), opensave.def (C$OPENSAVEBOX) - conversione Excel e dialog file. - l-copiaf.cpy (working), u-copiaf.cpy (linkage) - trasferimento file client/server. - wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, capazien.cpy - working-storage standard. - utilncnf.cpy - interfaccia RNEWCONF.

Linkage: wcont.cpy (stringhe), wcont1.cpy.

Routine finali: getdcont.cpy, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, sendw92.cpy, cogo88a.prc, oltre alle chiavi secondarie cogtesor.k02..k05, cogtesbo.k02/.k03, coggeana.k04.


Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Lettura configurazioni (cliente padre, path I/O, delimitatore Excel) dai gruppi cogo88/cogesys
COGS65W Ricerca/accept codice anagrafico cliente (GUI)
COGS52 Accept/verifica data con calendario (via routine z-s52-*)
COGU09 Ricerca riga ordine collegata al movimento (ramo crea-bolle, disattivato)
ESTRXLS Conversione file Excel (.xls) in testo delimitato
COPIAF Trasferimento e conversione nomi file client/server
C$OPENSAVEBOX Dialog nativo di selezione file (F5)

Note

  • Multi-operazione: il comportamento (invio ordini / ricezione conferme / invio bolle) e' determinato dal parametro di lancio wo-parametro; la voce di menu "Invio ordini a Bencarni" corrisponde a w-operazione = "1". Esistono ulteriori voci di menu che richiamano lo stesso programma con parametri "2" e "3".
  • Il codice fornitore verso Bencarni e' costante nel sorgente (k-cod-for = "026051"), non configurabile.
  • Configurazioni RNEWCONF lette: delimitatore-colonne-excel (gruppo cogesys), e dal gruppo cogo88 le chiavi cliente-padre, cliente-padre-mer, nome-path-io-post, cliente-padre-mer-bc.
  • Gestisce input in formato Excel (.xls), convertito automaticamente in testo via ESTRXLS con delimitatore forzato.
  • In op.2 la conferma d'ordine viene scritta su COGTESOR con prefisso BC/ (numero + data ordine Bencarni); il codice punto vendita e' risolto tramite le condizioni cliente COGCNDCF (DC -> porto).
  • Diversamente da COGD01/93/95/96, e' un programma GUI e non usa COGTABEL per la configurazione ne' COGTRANS come tabella temporanea di consolidamento.
  • Fa parte del flusso Estrazione vendite GDO (ecosistema Famila / Pasticceria Modenese).

Documentazione tecnica -- creata 2026-08-06