COGX03 - Tracciabilita' Lotti Merce¶
Sorgente: cbl/cogx03.cbl | Tipo: Programma interattivo GUI con due griglie affiancate | Program-ID: COGX03
Menu:
- Magazzino > Visualizzazioni > Lotti Merce > Tracciabilita'
- Ordini Bar > Tracciabilita' > Tracking Lotti
Scopo¶
Ricostruisce e visualizza la tracciabilita' completa di un lotto merce: a partire da un lotto (letto per codice o selezionato tramite ricerca), esplora la catena dei legami lotto a monte (origine, "Acquisti/Fornitori") e a valle (destinazione, "Vendite/Clienti") e mostra in due griglie affiancate i documenti collegati.
La modalita' di esplorazione e' scelta dal campo tm-tipo-ricerca:
O(Origine): risale solo a monte;D(Destinazione): scende solo a valle;T(Tutto): entrambe le direzioni.
E' una funzione di consultazione (a-modalita = "A" in accept, ma le griglie sono di sola visualizzazione nel flusso normale). Da ogni riga si puo' aprire il documento originario (F3) o stampare la scheda tracciabilita' (F9), anche in formato Area Report / Word.
Il commento di testata del sorgente recita "Gestione tracciabilita' lotti (VERSIONE GRIGLIE AVANZATE)".
Struttura del programma¶
Flusso principale¶
- Inizializzazione (
apri): apertura file, lettura configurazione RNEWCONF (x99-confi+ lettura chiavestampe/area-report-attivo), creazione dei tre file di transito temporanei, preparazione delle due griglie GRIDADMN e dei menu pop-up. - Reset filtri (
a4): reset diCOGTRANSeCOGTRANS2in output/i-o (controllo "Funzione gia' in uso"); riordino dei transiti delle due griglie; impostatm-tipo-ricerca = "T". - Accept parametri: merce (
a-tm-mer), codice lotto (a-tm-cod-lotto), tipo ricerca (a-tm-tipo-ricerca). Il lotto puo' essere immesso come codice numerico (risolto su COGMERLT viard-cogmerlt) o come stringa (risolto incerca-dato/num-dati-merlt, con eventuale COGS00 se ambiguo). - Elaborazione (
a-fine-dati->carica-dati): a seconda ditm-tipo-ricercaesegueb-cerca-originee/od-cerca-destinazione, popolando i transiti, poicarica-griglia-2(Acquisti/Fornitori) ecarica-griglia-3(Vendite/Clienti). - Interazione griglie (
a-grid2/a-grid3): navigazione tra le due griglie (F2 le alterna), F3 apre il documento, F9 stampa, Shift-F4 personalizza colonne, Shift-F5 esporta Excel.
Algoritmo di tracciabilita' (b-cerca-origine / d-cerca-destinazione)¶
Entrambi lavorano su COGTRANS (elenco lotti da esaminare, con flag trs-sel-usc/trs-sel-ent per marcare i lotti gia' analizzati) e COGLGLOT (legami lotto-lotto, chiave primaria per lotto padre, secondaria .k02 per lotto figlio):
- Origine (
b): per ogni lotto non ancora analizzato scandisce COGLGLOT perlgl-lotto(padre) e aggiunge a COGTRANS ilgl-lotto-figliocollegati; ricerca i documenti di tipo "C" (entrata) viac-documenti-lotto(tipo ricerca "E"). - Destinazione (
d): per ogni lotto scandisce COGLGLOT per chiave secondarialgl-lotto-figlioe risale ailgl-lottopadre; ricerca i documenti di vendita I/D/B viac-documenti-lotto(tipo ricerca "U").
Ricerca documenti (c-documenti-lotto)¶
Scandisce COGMOVLT (movimenti lotto, chiave secondaria .k02 per merce+mag+lotto-interno) e per ogni movimento legge la testata COGTESBO; scrive in COGTRANS2 un record documento (trs2-tip-rec = "D") con clifor F (entrate) o C (uscite).
Stampa scheda (tratta-stampa)¶
Se la configurazione stampe/area-report-attivo = "S" recupera il modello Word via COGPA3 e produce un file XML per WORDMDL (righe di dettaglio prodotte da b5-riga-standard, mappate sui tag TAB-DET). Altrimenti stampa il report testuale classico tramite COGS54 (righe formattate in carica-riga, testate in stampa-testa). Per PCASE-3886 la riga di dettaglio riporta il codice merce avanzato (COGRACMC .k02) al posto del codice interno, ed elimina le righe "Stock".
Tabelle e file¶
File principali¶
| File logico | Accesso | Descrizione |
|---|---|---|
| FEURTAB | Indexed | Tabella di sistema |
| COGMERLT | Indexed, dynamic (k02 per lotto, k08 per mag-chiap) | Lotti merce: giacenza, stato, produttore, ubicazione |
| COGLGLOT | Indexed, dynamic (k01 padre, k02 figlio) | Legami lotto-lotto (tracciabilita' padre/figlio) |
| COGMOVLT | Indexed, dynamic (k02 merce+mag+lotto) | Movimenti di lotto (righe documento collegate al lotto) |
| COGTESBO | Indexed (k03) | Testate bolle/documenti |
| COGMOMAG | Indexed | Movimenti di magazzino (segno entrata/uscita) |
| COGGEANA | Indexed | Anagrafica clienti/fornitori (descrizione) |
| COGRACMC | Indexed (k02) | Codici alternativi/avanzati merce |
| COGAPPOG | Indexed | Appoggio anagrafico (telefono per stampa) |
| COGMERCI | Indexed | Anagrafica merci (descrizione) |
File di transito (temporanei)¶
| File logico | Nome fisico | Descrizione |
|---|---|---|
| COGTRANS | <tmp>/#COGX03.<operatore> |
Lotti da esaminare; chiavi trs-chia1 (lotto), trs-chia2/trs-chia3 (flag selezione uscita/entrata) |
| COGTRANS2 | <tmp>/#$COGX03.<operatore> |
Documenti trovati (D=documento, S=stock): clifor + chiave riga o lotto |
| T-TM-TAB2 | transito griglia "Fotografie"/Acquisti | Righe griglia fornitori (gestito da GRIDADMN) |
| T-TM-TAB3 | transito griglia "Pre-commesse/rientri"/Vendite | Righe griglia clienti (gestito da GRIDADMN) |
Nota: le due strutture trs-rec (COGTRANS) e dep-trs-rec sono dichiarate identiche esplicitamente nel sorgente.
COPY incluse¶
Working-Storage / File¶
feurtab.fd, cogx03.select, cogx03.fd, flsta.fd, flsta.cpy, cogfiles.cpy, cogx03.wrk, cogx03.tm, k-personal.cpy, utilwordmdl.cpy, utilcogpa3.cpy, utilcogsc1.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utilncnf.cpy, utilu20.cpy, utils52.cpy, utils54.cpy, utils68.cpy
Linkage / Screen¶
wcont.cpy, utils00.cpy, utilv11.cpy, wcont1.cpy, cogx03-01.scr
Procedure Division¶
cogx03.decla, poi in coda le catene di I/O generate (cogx03.prc) e le chiavi secondarie usate manualmente.
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione/personalizzazione delle due griglie e dei loro transiti |
| COGS00 | Selezione lotto quando il codice lotto e' ambiguo (piu' merci) |
| COGS68W | Ricerca/help merce e formattazione stringa descrizione merce |
| COGSC1 | Impostazione configurazione (pack "C", chiave area-report-attivo) |
| RNEWCONF | Lettura configurazioni |
| COGPA3 | Recupero modello Word / composizione tabelle per Area Report |
| WORDMDL | Generazione stampa via modello Word (XML) |
| COGS54 | Gestione stampa report testuale (periferica, emulazione) |
| COGV11 | Gestione/visualizzazione prima nota di magazzino (tipo "P") |
| COGV56 | Gestione documento di uscita/vendita (tipi "I"/"D") |
| COGV15 | Gestione documento di carico/entrata (tipi "C"/"R") |
| COGM21 | Gestione documento di trasferimento (tipi "T"/"U") |
| COGV68 | Gestione buono di prelievo (tipo "B") |
L'apertura del documento (tratta-doc) instrada verso il gestore corretto in base al tipo bolla w-tip.
Configurazioni RNEWCONF¶
| Gruppo | Chiave | Destinazione | Descrizione |
|---|---|---|---|
| stampe | area-report-attivo | tm-cfg-area-report-attivo |
Se "S", la stampa scheda usa Area Report/Word (COGPA3+WORDMDL) invece del report testuale |
La lettura avviene sia in x99-confi (generata) sia con una chiamata esplicita a RNEWCONF nel paragrafo apri per la chiave stampe/area-report-attivo.
Note tecniche¶
- Due griglie affiancate: il programma gestisce due griglie GRIDADMN (
e-tm-tab2= fornitori/acquisti a sinistra,e-tm-tab3= clienti/vendite a destra), ridimensionate dinamicamente inz-resize-gridin base alla dimensione della finestra. F2 (o il pulsante custom "Cambia tabella") sposta il fuoco tra le due. - Marcatura anti-cicli: i flag
trs-sel-uscetrs-sel-entin COGTRANS evitano di rianalizzare un lotto gia' visitato durante la risalita/discesa della catena lotti. - PCASE-3886 (2024): nel dettaglio stampa la descrizione articolo usa il codice merce avanzato (COGRACMC) se presente, e sono state rimosse le righe "Stock" (giacenza residua del lotto).
- k-max-ele-tab = 5000: dimensione massima elementi per griglia.
- Il programma puo' essere richiamato da altri programmi (flag
w-dc-called): in tal caso l'uscita esce dal programma anziche' tornare ai filtri.