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¶
a000/main: init,open-files,rd-azi, composizione nomi file temporanei; verificaaz-commesse = "M"; lettura configurazione (x99-src-confi); costruzione combo tipo elaborazione.- Accept maschera: tipo elaborazione (
a-tm-tip-ela) ed eventuale filtro documento (magazzino/anno/tipo/numero/pro ina-tm-mm-*, controllati contro COGMOMAG). Per il tipoA, dopo conferma si richiedono commessa e sottocommessa (a-tm-w-com-tsc,a-tm-w-com-sot). a-richiesta-confermae dispatch sutm-tip-ela(C/B/A).c-controlla(solo tipo C): scorre COGRIGCM tipoRD, 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.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.b-90:d-analisi(rielaborazione entrate/uscite per commessa+merce, gestione FIFO delle quantita' e riallineamento date/valori su cogtrans2) ee-crea(scrittura del file di outputoutfilleggendo cogtrans2, viawr-output).c4-aggiorna-commesse(solo tipo A): loop su COGMOMAG del documento indicato e chiamata COGU18aggiorna-legameper agganciare le righe alla commessa forzata.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-idewo-operper l'univocita' per operatore. - La rielaborazione in
d-analisi/analisi-commessa-e-merceimplementa una logica di scarico entrate/uscite con gestione degli sbilanci (uscite "scoperte") e riallineamento delle date/prezzi tramitetrs2-pro2; la tabellata-uscitaha dimensionet-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.