Vai al contenuto

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

  1. Inizializzazione (apri): apertura file, lettura configurazione RNEWCONF (x99-confi + lettura chiave stampe/area-report-attivo), creazione dei tre file di transito temporanei, preparazione delle due griglie GRIDADMN e dei menu pop-up.
  2. Reset filtri (a4): reset di COGTRANS e COGTRANS2 in output/i-o (controllo "Funzione gia' in uso"); riordino dei transiti delle due griglie; imposta tm-tipo-ricerca = "T".
  3. 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 via rd-cogmerlt) o come stringa (risolto in cerca-dato/num-dati-merlt, con eventuale COGS00 se ambiguo).
  4. Elaborazione (a-fine-dati -> carica-dati): a seconda di tm-tipo-ricerca esegue b-cerca-origine e/o d-cerca-destinazione, popolando i transiti, poi carica-griglia-2 (Acquisti/Fornitori) e carica-griglia-3 (Vendite/Clienti).
  5. 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 per lgl-lotto (padre) e aggiunge a COGTRANS i lgl-lotto-figlio collegati; ricerca i documenti di tipo "C" (entrata) via c-documenti-lotto (tipo ricerca "E").
  • Destinazione (d): per ogni lotto scandisce COGLGLOT per chiave secondaria lgl-lotto-figlio e risale ai lgl-lotto padre; ricerca i documenti di vendita I/D/B via c-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 in z-resize-grid in 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-usc e trs-sel-ent in 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.