Vai al contenuto

COGV33 - Inserimento/Gestione Inventario

Sorgente: cbl/cogv33.cbl | Tipo: Programma interattivo GUI con griglia paginata | Program-ID: COGV33

Menu:

  • Magazzino > Inventario > Inserimento/Gestione

Scopo

Gestione dell'archivio inventario (commento di testata: "Gestione archivio inventario"). Consente di ricostruire e visualizzare, per un magazzino e a una data, l'elenco delle merci con la quantita' di inventario (rilevata/modificabile) accanto alla giacenza calcolata (contabile). Da qui l'operatore puo':

  • inizializzare/ricreare l'archivio inventario (COGINVEN) a partire dall'anagrafica merci e dai movimenti (a3-agg-inv);
  • modificare in griglia la quantita' rilevata e il p.m.a. (prezzo medio d'acquisto);
  • importare le quantita' rilevate da magazzino automatico / Modula (F7), da terminalino MEMOWAND (COGS08) o da tablet locazioni;
  • generare la prima nota di adeguamento giacenza (F5) che pareggia giacenza e inventario;
  • consultare movimenti e locazioni della merce (F8, S-F6, S-F7 per la gestione tablet).

Struttura del programma

Flusso principale

  1. Inizializzazione (apri): apertura file, recupero divisa di conto (COGU10), lettura configurazione (x99-confi), pulsanti custom (F7 importa mag.aut, S-F6 locazioni, F3 adeguamento riga, S-F7 check giacenze), apertura archivio di transito COGINVTR (copia dell'inventario storicizzato) e file di log #$invent.txt.
  2. Parametri (a-tm-mag, a-tm-ini, a-tm-canc, a-tm-data, a-tm-ord, a-tm-solo-diff): magazzino, flag "ricreo archivio", modalita' dati precedenti, data elaborazione, ordinamento, filtro "solo differenze".
  3. Ricreazione archivio (a-fine-dati -> a3-agg-inv): se richiesto, ricostruisce COGINVEN.
  4. Caricamento griglia (carica-tab / z-costruisci-tm-tab): riempie la griglia paginata scandendo l'anagrafica merci (o i codici alternativi/avanzati) e leggendo per ogni merce il record COGINVEN.
  5. Griglia (a-grid): modifica quantita'/p.m.a., generazione documenti, import, consultazioni.

Ricreazione inventario (a3-agg-inv)

Scandisce tutta l'anagrafica COGMERCI; per ogni merce con flag giacenza attivo (COGMERAP map-fl-gia), non classe, non imballo cliente:

  1. crea/aggiorna il record COGINVEN per magazzino+merce;
  2. calcola la giacenza alla data (tm-data) partendo dal consolidato mensile COGMEMOR (tm-aa-ult/tm-mm-ult, letto in x2-src-data-cons da COGTABEL tipo 57) e applicando i movimenti COGMOMAG (chiave .k03) fino a tm-data, escludendo merci a consumo, causali senza riferimento giacenza (COGTABEL tipo 15, euta-cb-con-gia) e produzione di conto lavoro;
  3. imposta inv-gia (giacenza calcolata); in base a tm-canc imposta la quantita' inventario: I=invariata, A=azzerata, G=uguale alla giacenza. Per le merci a serial number con giacenza significativa la quantita' non e' azzerata ma posta uguale alla giacenza (TASK-537, segnalata a video).

Gli errori (testate/causali mancanti) sono scritti nel file di log; a fine elaborazione, se presenti, viene proposto di aprirlo (OPENFILE).

Adeguamento giacenza (a2-agg-gia, F5 / F3 per singola riga)

Crea la prima nota di adeguamento (documenti di prima nota ogni ~200 movimenti) con quantita' pari alla differenza tra inventario e giacenza calcolata. La valorizzazione (prezzo/listino) e' chiesta tramite COGV33P. Richiede che az-cau-pno e az-to-pno siano configurati.

Import quantita' rilevate

  • F7 (a4-importa-mag-aut): chiama COGF25 (interfaccia magazzino automatico) e legge il transito #$COGF25.<oper> aggiornando inv-qta.
  • MEMOWAND (send-scr-m): chiede via COGS08 (programma COGV33C) se recepire i dati dal terminalino, legge il file sequenziale mwseq.<oper>, risolve EAN via COGMERCI/COGBARCO.
  • Terminalino U60 (carica-dati-lettore, personalizzazione Sgarbi): legge OUTIDX-U60 e riempie l'inventario (fill-inventario-con-qta-da-terminalino).

Gestione tablet / locazioni (config locazioni/gestione-tablet)

  • F3 (k-f3-genera-riga): adeguamento per la singola riga della griglia;
  • S-F6: chiama WMSW02 (visualizzazione giacenze per locazione);
  • S-F7: chiama WMSW04 (confronto movimenti magazzino / APP dalla data ultimo inventario, ricavata in cerca-data-invent cercando l'ultima prima nota tipo "P" causale az-cau-pno);
  • F8: chiama COGV43 (movimenti merce).

Tabelle e file

File logico Accesso Descrizione
FEURTAB Indexed Tabella di sistema
COGINVEN Indexed, dynamic (k02) Archivio inventario (qta inventario, giacenza)
COGINVTR Input Inventario storicizzato/di transito (copia)
COGMERCI Indexed, dynamic (k02 EAN, k03) Anagrafica merci
COGMERAP Indexed Anagrafica merci agg. (flag giacenza, supporto, raggruppamenti)
COGRACMC Indexed (k02) Codici alternativi/avanzati merce (ordinamento A/L)
COGMOMAG Indexed, dynamic (k03 mag+merce+data) Movimenti magazzino (calcolo giacenza)
COGMEMOR Indexed Consolidato mensile giacenza (saldo di partenza)
COGTESBO Indexed Testate bolle (data ultimo inventario, testate movimenti)
COGTABEL Indexed Tabelle: tipo 15 (causali, cb-con-gia), tipo 57 (data consolidato)
COGMAGAZ Indexed Anagrafica magazzini (descrizione, tipo)
COGBARCO Indexed Codici a barre (risoluzione EAN da terminalino)
COGLAVOR Indexed (k07) Lotti di lavorazione (conto lavoro, letto con prefisso w-cla-k7-)
COGGENER Indexed Legami generici (lotti "LP" conto lavoro)
COGINVTR / SALINVEN copia Salvataggio inventario con data (INVmmgg.sav) alla chiusura se tm-canc = "T"
TRAN-F25 Input (temp) Transito import magazzino automatico (#$COGF25.<oper>)
OUTIDX-U60 Indexed (temp) Transito import terminalino U60
INPFIL (MEMOWAND) Line seq (temp) File sequenziale terminalino (mwseq.<oper>)
LOGERR Line seq (temp) Log errori elaborazione (#$invent.txt)
LOGLAV Line seq (temp) Log conto lavoro (#$COGV33.TXT)

COPY incluse

Working-Storage / File

feurtab.fd, cogv33.select, cogv33.fd, cogfiles.cpy, coginvtr.fd, coginvtr.cpy, tran-f25.fd, tran-f25.cpy, outidx-u60.cpy, cogv33.wrk, k-personal.cpy, coglavor.cpy (con replacing cla- -> w-cla-k7-), wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utilf25.cpy, utilcogl61.cpy, utilcogl62.cpy, utilcogv33p.cpy, utilcogx40.cpy, utils25.cpy, utils52.cpy, utils68.cpy, utils91.cpy, utilu10.cpy, utilu12.cpy, utilu20.cpy, utilu60.cpy, utilw36.cpy, utilwmsw01.cpy, utilwmsw02.cpy, utilwmsw04.cpy, utilncnf.cpy, utilopenfile.cpy

Linkage / Screen

wcont.cpy, utils01.cpy, utils08.cpy, utilv43.cpy, wcont1.cpy, cogv33-01.scr

Procedure Division

cogv33.decla, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogv33.prc, dtab.cpy, fscrol2.cpy, sendw36.cpy, cogmerci.k02, cogmerci.k03, cogracmc.k02, cogmomag.k03, coglavor.k07, coginven.k02, cogmerlt.k03, cogmerlt.k05, outidx-u60.k01

Le chiavi secondarie sono incluse manualmente in coda alla procedure division.


CALL a sottoprogrammi

Programma Scopo
GRIDADMN Gestione/personalizzazione griglia inventario
RNEWCONF Lettura configurazioni
COGU10 / COGU10W Divisa di conto, edit/accept valori p.m.a. e p.u.a.
COGL61 Calcolo p.m.a. e prezzo di acquisto merce alla data
COGL62 Aggiornamento p.m.a. dopo la modifica in griglia
COGS08 Richiesta recepimento dati da terminalino MEMOWAND (schermata COGV33C)
COGS25 Numerazione documenti di prima nota (adeguamento)
COGF25 Import inventario da magazzino automatico
COGV33P Scelta valorizzazione prima nota di adeguamento
COGX40 Ricerca/posizionamento su merce nella griglia
COGV43 Visualizzazione movimenti merce (F8)
WMSW02 Visualizzazione giacenze per locazione (S-F6, gestione tablet)
WMSW04 Confronto movimenti magazzino/APP dalla data ultimo inventario (S-F7)
COGS01 / COGS91 Chiusura (finalizzata in z-chiudi)
OPENFILE Apertura del file di log errori
C$COPY Salvataggio dell'archivio inventario di transito con data

Send W36 (send-w36, F8 sui filtri) fornisce l'help magazzino.


Configurazioni RNEWCONF

Lette in x99-confi (pacchetto "C", 5 chiavi):

Gruppo Chiave Destinazione Descrizione
PROGCOGV33 euta-c042-acc-pma tm-cfg-acc-pma Abilita l'editing del p.m.a. in griglia (colonne pma/valuta visibili)
colori colonna-griglia-modificabile tm-cfg-colore-mod Colore delle colonne editabili (qta, pma)
progcogv33 escludi-merci-cancellate tm-cfg-escludi-canc Esclude dalla griglia le merci cancellate (mer-val = "C")
progcogv33 movimentazione-lotti tm-cfg-mov-lotti Gestione movimentazione lotti
locazioni gestione-tablet tm-cfg-gestione-tablet Abilita gestione tablet/locazioni: pulsanti F3 riga, S-F6 (WMSW02), S-F7 (WMSW04) e data ultimo inventario

Note tecniche

  • Inventario vs giacenza: inv-qta (rilevata/modificabile) e inv-gia (calcolata contabilmente alla data) sono i due valori chiave; la prima nota di adeguamento pareggia la differenza.
  • Ordinamento multiplo: la scansione anagrafica avviene per codice (C), descrizione, codice alternativo (L) o codice avanzato (A); i paragrafi rn-start/sn-read/rd-fill-t-key instradano su COGMERCI o COGRACMC secondo tm-ord. La paginazione usa fscrol2.cpy.
  • Filtro "solo differenze" (config tablet, tm-solo-diff): mostra solo le merci con quantita' inventario diversa dalla giacenza (o entrambe negative).
  • Calcolo giacenza alla data: parte dal consolidato mensile (COGMEMOR) del mese tm-aa-ult/tm-mm-ult ricavato dalla data consolidato (COGTABEL tipo 57) e somma/sottrae i movimenti COGMOMAG fino a tm-data, con esclusioni per causale (COGTABEL tipo 15) e conto lavoro.
  • Salvataggio storico: se tm-canc = "T" alla chiusura l'archivio inventario di transito viene copiato in INVmmgg.sav (C$COPY) e COGINVTR eliminato.
  • k-max-ele-tab = 900: dimensione massima elementi per pagina della griglia.