Vai al contenuto

COGMB2 - Inserimento/Gestione Carico Rapido (magazziniere)

Sorgente: cbl/cogmb2.cbl | Tipo: Programma interattivo GUI con griglia editabile e tab control | Program-ID: COGMB2

Menu:

  • Magazzino > Entrate > Inser./Gestione Semplificata

Scopo

Gestione semplificata dell'entrata merce da fornitore, pensata per l'uso a magazzino ("Carico rapido magazziniere", come recita il commento di testata). L'operatore indica data documento e fornitore; il programma cerca un eventuale DDT di carico gia' esistente per quella data/fornitore (o ne predispone uno nuovo) e presenta una griglia editabile dove inserire le righe di carico con dati fisici del collo (colli, pesi lordo/tara/netto, cella, volata, lotto). Alla conferma crea o aggiorna il documento di carico (COGTESBO/COGMOMAG) con i relativi movimenti aggiuntivi, i lotti merce e l'aggiornamento delle giacenze.

La maschera ha un titolo "Inserimento/Gestione Carico Rapido" e usa un tab control con un'unica pagina attiva ("TS3").


Struttura del programma

Flusso principale

  1. Inizializzazione (apri): apertura file, lettura configurazione (x99-load-config, 46 chiavi RNEWCONF), recupero divisa di conto (get-divisa-conto), creazione pulsante custom "Stampa scheda (F6)", menu pop-up griglia, preparazione griglia GRID-DET.
  2. Chiave documento (a-tm-data-doc, a-tm-cod-ana): accept di data del carico e codice fornitore (validato su COGGEANA tipo "F").
  3. Ricerca DDT esistente (a-fine-chiave): scandisce COGTESBO per chiave secondaria .k04 (fornitore) cercando un documento tipo "C" con la stessa data; se trovato imposta fl-vario = "V" (variazione) e carica la griglia con carica-griglia-2, altrimenti fl-vario = "I" (inserimento).
  4. Dati testata (a-tm-data-doc-for, a-tm-cod-doc-for): data e numero documento fornitore.
  5. Griglia dettaglio (a-grid-det): inserimento/modifica/cancellazione righe con Ctrl-A/Ctrl-E, validazione campo per campo, F6 stampa scheda/etichetta.
  6. Aggiornamento (a-fine-dati -> aggiornamenti): scrive il documento e le righe.

Aggiornamento (aggiornamenti)

Usa un file di transito indicizzato COGTRANS (<tmp>/#$cogmb2_lotti.<operatore>) per memorizzare i lotti creati durante l'elaborazione. In base a fl-vario:

  • se "I" (inserimento): a2-ins-grid-det crea la testata (numerazione via COGS25 cod. 7, az-main-mag, tipo "C") e la relativa COGTESAP;
  • se "V" (variazione): aggiorna data/numero documento fornitore sulla testata esistente.

Poi scandisce il transito griglia (t-grid-det) e per ogni riga chiama:

  • agg-riga: crea la riga COGMOMAG, aggiorna giacenza (COGU12), scrive COGMOAG2 (tara bancale, qta confezione) e COGMOAGG (qta/UM alternativa); se la merce e' a lotti (mer-lotti = "S") crea/aggiorna il lotto COGMERLT (codice lotto composto da codice merce + progressivo) e il movimento lotto COGMOVLT;
  • mod-riga: rilegge la riga esistente, storna e ricrea giacenza/lotto;
  • canc-riga: cancella la riga, storna giacenza, elimina il lotto se rimasto senza movimenti.

Al termine mostra una dialog di conferma (DIALOGS) "Inserito/Modificato Carico Fornitore" e torna in a4.

Calcolo peso netto

Nei controlli campo (x-controlla-tm-k-tara-col, -num-col, -peso-lor, -tara-pal) il peso netto e' ricalcolato con: peso-net = peso-lor - tara-pal - (tara-col * num-col).


Tabelle e file

File logico Accesso Descrizione
FEURTAB Indexed Tabella di sistema
COGTESBO Indexed, dynamic (k03, k04 per fornitore) Testate documenti di carico
COGTESAP Indexed Testate documenti - dati aggiuntivi
COGMOMAG Indexed, dynamic Movimenti di magazzino (righe carico)
COGMOAG2 Indexed Movimenti aggiuntivi 2 (tara bancale, qta confezione)
COGMOAGG Indexed Movimenti aggiuntivi (qta/UM/merce alternativa)
COGMERCI Indexed Anagrafica merci (flag lotti, UM, IVA, contropartite)
COGMERA3 Indexed Anagrafica merci agg. 3 (pezzi per UM = qta confezione)
COGMERLT Indexed, dynamic (k08 per mag-chiap) Lotti merce (creazione/aggiornamento giacenza lotto)
COGMOVLT Indexed, dynamic (k02) Movimenti di lotto
COGGEANA Indexed Anagrafica fornitori (condizioni pagamento)
COGTRANS I-O (temp) Transito lotti creati durante l'aggiornamento (#$cogmb2_lotti.<oper>)
T-GRID-DET transito griglia Righe griglia dettaglio (gestito da GRIDADMN)

COPY incluse

Working-Storage / File

feurtab.fd, cogmb2.select, cogmb2.fd, cogfiles.cpy, cogmb2.wrk, cogmb2.tm, k-u10.cpy, k-personal.cpy, k-tipi-cogtabel.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utildlg.cpy, utilncnf.cpy, utils25.cpy, utils52.cpy, utils65.cpy, utils68.cpy, utils93.cpy, utilu10.cpy, utilu12.cpy, utilu20.cpy, utilcogmb3.cpy

Linkage / Screen

wcont.cpy, wcont1.cpy, cogmb2-01.scr

Procedure Division

cogmb2.decla, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogtesbo.k03, cogmerlt.k08, cogmovlt.k02, cogtrans.k01, getdcont.cpy, cogmb2.prc

Le chiavi secondarie cogtesbo.k03, cogmerlt.k08, cogmovlt.k02, cogtrans.k01 sono incluse manualmente in coda alla procedure division.


CALL a sottoprogrammi

Programma Scopo
RNEWCONF Lettura configurazioni (46 chiavi)
GRIDADMN Gestione/personalizzazione griglia dettaglio
COGS65W Ricerca/help anagrafica fornitore
COGS25 Numerazione documenti (cod. 7 carico)
COGU10 / COGU10W Gestione valori monetari e divisa di conto
COGU12 Aggiornamento saldi/giacenze magazzino (tipo "G")
DIALOGS Dialog di conferma inserimento/modifica
COGMB3 Stampa scheda entrata / etichetta lotto (ope eti-lotto, eti+scheda, scheda)

Il programma condivide con altri gestori entrata (COGV14/COGV15) lo stesso set di configurazioni RNEWCONF.


Configurazioni RNEWCONF

Lette in x99-load-config (pacchetto "C", 46 chiavi, ncnf-programma = COGMB2). Le piu' significative:

Gruppo Chiave Destinazione Descrizione
COGV17 RESI DA CLIENTE CON AGGANCIO SERIAL NUMBERS tm-cfg-autolink Aggancio automatico serial number
MERCI V14/15:CAUSALE (x5) tm-cfg-causale Fino a 5 causali di entrata gestite
causali causale-ins-entrata-fornitore tm-cfg-cau-def Causale di default del DDT di carico
entrate lotti-entrata-completi tm-cfg-lt-entrata Gestione lotti entrata completi
progcogv14 euta-c016-vis-um / -vis-lfo / -qta-dec / -val-ord / -pre-prop / -ctr-pre / -agg-lfo / -agg-pma vari tm-cfg-* Opzioni visualizzazione/gestione righe (condivise con COGV14)
entrate porto-con-codice / costo-tra-cont-aut / costo-tra-comm-aut / descr-agg-dirette vari Opzioni porto e costi trasporto
cicli q3-ges-qualita / q3-mag-controlli tm-cfg-q3-ges, tm-cfg-q3-mag Controlli qualita' Q3 sui carichi
assist gestione-gruppo-aziende tm-cfg-gruppo-aziende Gestione gruppo aziende
SISTMERAVA TAB-CMA-AZIENDE-GRUPPO tm-cfg-tab-cma-aziende Tabella CMA aziende di gruppo

Se tm-cfg-cau-def = zero viene segnalato "configurare codice 'causale' ddt".


Note tecniche

  • Codice lotto automatico (agg-riga): quando la merce e' a lotti e non esiste gia' un lotto per merce/cella/volata, il codice lotto e' composto concatenando gruppo+sottogruppo+codice merce, un trattino e il progressivo lotto (w-mlt-prog), tramite string-trim su ogni segmento. Il transito COGTRANS evita di ricreare lo stesso lotto per righe con stessa merce/cella/volata.
  • Merci imballo escluse: in carica-griglia-2 le merci imballo (az-imballi = "SI" e mer-vuoto = "I") non vengono caricate in griglia.
  • Griglia a colonne fisiche: la griglia raccoglie colli, tara collo, tara pallet, peso lordo/netto, cella, volata, qta confezione e lotto; il codice lotto e il peso netto sono di sola lettura (calcolati/gestiti dal programma).
  • Uso da chiamante: gestisce il flag w-dc-called (richiamo da altro programma) e i flag w-db-dp-f3 per ripresentare la maschera dopo un inserimento riuscito.
  • k-max-ele-tab = 900: dimensione massima righe griglia.