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¶
- 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. - Chiave documento (
a-tm-data-doc,a-tm-cod-ana): accept di data del carico e codice fornitore (validato su COGGEANA tipo "F"). - Ricerca DDT esistente (
a-fine-chiave): scandisce COGTESBO per chiave secondaria.k04(fornitore) cercando un documento tipo "C" con la stessa data; se trovato impostafl-vario = "V"(variazione) e carica la griglia concarica-griglia-2, altrimentifl-vario = "I"(inserimento). - Dati testata (
a-tm-data-doc-for,a-tm-cod-doc-for): data e numero documento fornitore. - Griglia dettaglio (
a-grid-det): inserimento/modifica/cancellazione righe con Ctrl-A/Ctrl-E, validazione campo per campo, F6 stampa scheda/etichetta. - 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-detcrea 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), tramitestring-trimsu ogni segmento. Il transito COGTRANS evita di ricreare lo stesso lotto per righe con stessa merce/cella/volata. - Merci imballo escluse: in
carica-griglia-2le merci imballo (az-imballi = "SI"emer-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 flagw-db-dp-f3per ripresentare la maschera dopo un inserimento riuscito. - k-max-ele-tab = 900: dimensione massima righe griglia.