Vai al contenuto

COGM105 — Estrazione dati commesse verso Merlino

Sorgente: cbl/cogm105.cbl | Tipo: Programma GUI standalone (estrazione/export) | Program-ID: cogm105

Menu: Vendite > Commesse ; Vendite > Commesse > Importazioni & Esportazioni [Estrazione dati]


Scopo

Estrazione dei dati delle commesse per l'invio al programma Merlino di Eurosystem2000. Il modulo attraversa le commesse (COGTESCM), ne raccoglie le righe legate ai movimenti di magazzino (COGRIGCM -> COGMOMAG), valorizza le merci tramite listini/prezzi e produce un file di testo (line sequential) leggibile da Merlino, dove ogni commessa e' un blocco composto da un record testata e piu' record riga.

Il programma opera solo se l'azienda e' configurata per il collegamento a Merlino (az-commesse = "M"), altrimenti esce con messaggio. Offre tre tipi di elaborazione, selezionabili a maschera (tm-tip-ela):

Tipo Descrizione Effetto
C Controllo ed estrazione Prima esegue c-controlla (verifica coerenza legami riga-commessa); se non ci sono anomalie, procede con l'estrazione (b-elabora)
E Estrazione Esegue direttamente l'estrazione (b-elabora), etichettato come tipo "B" a runtime
A Aggancio doc. a Commesse Aggancia tutte le righe di un documento a una singola commessa (c4-aggiorna-commesse), tramite COGU18

File e tabelle principali

File/Tabella Copybook Uso
COGTESCM (gestore generato) Testate commesse: sorgente principale dell'iterazione (st/rdnxt-cogtescm)
COGRIGCM cogrigcm.cpy + cogrigcm.k02 Righe commessa (tipo RD): collegano commessa e movimento magazzino
COGMOMAG cogmomag.cpy Movimenti magazzino: quantita', valore, merce, documento (get-magazzino)
COGMERCI (gestore generato) Descrizione merce
COGTESBO (gestore generato) Testate bolle/documenti: risalita a causale, anagrafica, note
COGGEANA (gestore generato) Anagrafica cliente/fornitore (nome)
COGLISFO (gestore generato) Listini fornitore (prezzi acquisto), search-listino-acq / search-ultimo-listino-acq
COGLISNW coglisnw.k02, coglisnw.k04 Listini vendita (search-listino-ven, search-listino-2)
COGTESLS (gestore generato) Testata listino acquisto (divisa listino)
COGDESAG (gestore generato) Descrizioni aggiuntive (valori extra riga, scan-descrizioni-aggiuntive)
COGTABEL (gestore generato) Causali (tipo 15), determinazione cliente/fornitore
COGSOTCM (gestore generato) Sottocommesse (validazione aggancio)
cogtrans (temporaneo) FD inline in sorgente, cogtrans.k01 File indicizzato temporaneo di saldo per commessa/merce (attivo solo se saldo-commessa on)
cogtrans2 (temporaneo) FD inline in sorgente, cogtran2.k01, cogtran2.k02 File indicizzato temporaneo di transito: testate e righe da esportare, con rielaborazione entrate/uscite
cogerr (COGERR.STA) FD inline File sequenziale delle anomalie riscontrate in fase di controllo
outfil FD inline (seq-rec), select su tm-cfg-name-export File di output line sequential per Merlino

I file cogtrans, cogtrans2 e cogerr sono temporanei con SELECT/FD dichiarati manualmente nel sorgente (nomi #COGM105.<oper>, #COGM105b.<oper> nella tmp-dir).

Flusso principale

  1. a000 / main: init, open-files, rd-azi, composizione nomi file temporanei; verifica az-commesse = "M"; lettura configurazione (x99-src-confi); costruzione combo tipo elaborazione.
  2. Accept maschera: tipo elaborazione (a-tm-tip-ela) ed eventuale filtro documento (magazzino/anno/tipo/numero/pro in a-tm-mm-*, controllati contro COGMOMAG). Per il tipo A, dopo conferma si richiedono commessa e sottocommessa (a-tm-w-com-tsc, a-tm-w-com-sot).
  3. a-richiesta-conferma e dispatch su tm-tip-ela (C/B/A).
  4. c-controlla (solo tipo C): scorre COGRIGCM tipo RD, verifica che le righe DDT siano legate a commessa e che i legami non puntino a righe cancellate (via COGU18); scrive le anomalie su COGERR e, se presenti, propone visualizzazione con NOTEPAD.
  5. b-elabora: apre i file temporanei e il file di output; per ogni testata commessa (b-10-loop) scrive la riga di testata su cogtrans2, poi per ogni riga COGRIGCM carica il movimento (get-magazzino), determina prezzo/valore (listini o descrizioni aggiuntive), eventualmente aggiorna il saldo forfait su cogtrans e scrive la riga su cogtrans2 (wr-trs2). Se attivo il saldo-commessa, genera righe FORFAIT per gli sbilanci uscita/entrata.
  6. b-90: d-analisi (rielaborazione entrate/uscite per commessa+merce, gestione FIFO delle quantita' e riallineamento date/valori su cogtrans2) e e-crea (scrittura del file di output outfil leggendo cogtrans2, via wr-output).
  7. c4-aggiorna-commesse (solo tipo A): loop su COGMOMAG del documento indicato e chiamata COGU18 aggiorna-legame per agganciare le righe alla commessa forzata.
  8. fine / z-chiudi: chiusura file e uscita.

Formato del file prodotto (outfil)

Record line sequential seq-rec (lunghezza indicativa 151+). Due tipi, distinti dal campo kind iniziale:

  • Testata (kind = 1): seq-cod-tsc = codice commessa (10 cifre).
  • Riga (kind = 2): commessa (tsc/sot), merce (gruppo/sottogruppo/codice), descrizione merce, documento (mag/anno/tipo/numero/pro), tipo movimento (E/U), quantita', prezzo, valore, data, nominativo. Quantita', prezzo e valore sono campi editati (numerici con virgola). Prezzo e valore devono essere espressi in EURO per essere caricati da Merlino.

Sottoprogrammi chiamati

Programma Ruolo
COGU10W Conversione/arrotondamento importi in EURO (cambio divisa)
COGU18 Gestione legami riga documento <-> commessa (cerca-commessa, cerca-legame, aggiorna-legame)
COGL61 Determinazione prezzo di acquisto della merce
WIN102 Ricerca/aiuto commesse Merlino (send-w102)
COGG48 Ricerca/aiuto sottocommesse
COGS60W2 Gestione combo tipo elaborazione
DIALOGS Dialog anomalie in controllo
NOTEPAD Apertura file anomalie COGERR.STA
RNEWCONF Lettura configurazioni MERCI.CNF
DTPRG / PRGDT (non usati direttamente qui)

Le operazioni sui file (rd/st/rdnxt/wr/rwr/del-cog*, open-cogtrans*) sono gestori tabella generati.

Configurazioni (RNEWCONF)

Lette in x99-src-confi (pacchetto C, percorso MERCI.CNF):

Chiave Uso
M105:FILE EXPORT VERSO MERLINO Path/nome del file di output (adattato per thin-client)
M105:RICERCA PREZZI Strategia ricerca prezzi: 1 = listino acquisto/vendita per tipo anagrafico; 2 = listino 2 di vendita (caso Benassi)
M105:SALDO COMMESSA Se attivo, abilita il calcolo del saldo per commessa/merce e la generazione delle righe FORFAIT

Note

  • I nomi dei file temporanei includono k-program-id e wo-oper per l'univocita' per operatore.
  • La rielaborazione in d-analisi/analisi-commessa-e-merce implementa una logica di scarico entrate/uscite con gestione degli sbilanci (uscite "scoperte") e riallineamento delle date/prezzi tramite trs2-pro2; la tabella ta-uscita ha dimensione t-size (500) con avviso di "tabella sfondata".
  • I record cogtrans2 destinati a Merlino portano prezzo/valore convertiti in EURO ("E") tramite COGU10W.
  • La causale documento (COGTABEL tipo 15) serve a stabilire se l'anagrafica va trattata come cliente o fornitore per la scelta del listino.