Vai al contenuto

COGV35 -- Visualizzazione Giacenze per Magazzino

Sorgente: cbl/cogv35.cbl | Tipo: Programma interattivo a griglia con filtri | Program-ID: COGV35

Menu:

  • Magazzino > Giacenze & Sottoscorta > Vis. x Magazzino

Scopo

COGV35 e' il programma principale per la visualizzazione delle giacenze di magazzino per articolo. Presenta una maschera con filtri (magazzino, ordinamento, gruppo avanzato, merce) e una griglia con i saldi di ciascun articolo: giacenza, impegnato (vendita/produzione), ordinato, prenotato, colli, prezzi di acquisto, listini, disponibilita', stato e brand.

Il programma supporta diverse modalita' di visualizzazione in base alla configurazione:

  • Impegno differenziato (tm-cfg-mod-imp = "D" o "S"): mostra le quantita' impegnate suddivise per vendita e produzione
  • Gestione doppia U.M. (az-ges-qta-2 = "S"): mostra la colonna pezzi
  • Gestione imballi (az-imballi = "SI"): mostra le colonne in colli
  • Listini configurati (tm-cfg-listino): mostra fino a 3 colonne listino
  • Magazzino prova (tm-cfg-mag-prova): mostra la giacenza di un secondo magazzino

Puo' funzionare sia in modalita' autonoma (da menu) sia come programma richiamato (CALLED) per la ricerca o selezione di un articolo.


Interfaccia utente

Maschera di filtro (tab-maschera)

Campo Tipo Descrizione
tm-mag x(01) Magazzino (obbligatorio). Validato su COGMAGAZ. F8 = ricerca (COGW36). F1 = configurazione
tm-ord x(01) Ordinamento: C=codice merce, A=raggruppamento avanzato, o altro tramite COGU16W
tm-gru-ava x(20) Gruppo avanzato per filtrare (visibile solo per personalizzazione EX). F8 = ricerca (WIN113)
tm-merce composito Codice merce di partenza (gru/sot/cod/cma/cmc/cmf/bc/des) tramite COGS68W
tm-ges-ragr x(01) Gestione raggruppamento
tm-ragr-1/2/3 x(02) Raggruppamenti merce livello 1/2/3
tm-dbase x(01) S=Lettura da COGDBASE (usato internamente per giacenze componenti)
tm-n-righe 9(04) Limite righe (0=tutte; 1=solo la prima, per personalizzazione Artic Seals)

Ordine di accept dei campi

Magazzino > Ordinamento > Gruppo avanzato > Merce > Conferma (F3)

Griglia (grid-record)

Colonna ID Descrizione Condizione visibilita'
Merce -- Codice merce (grd-merce) Sempre
U.M. -- Unita' di misura (grd-um) Sempre
Qta giacente -- Giacenza (grd-qta-gia) Sempre
Pezzi giacenti 04 Pezzi (grd-pez-gia) az-ges-qta-2 = "S"
Qta impegnata 05 Impegnata (grd-qta-imp) tm-cfg-mod-imp <> "S" e az-ges-qta-2 <> "S"
Qta ordinata 06 Ordinata (grd-qta-ord) tm-cfg-mod-imp <> "S" e az-ges-qta-2 <> "S"
Imp. vendita 07 Impegnato vendita (grd-imp-vend) tm-cfg-mod-imp = "S"
Imp. produzione 08 Impegnato produzione (grd-imp-prod) tm-cfg-mod-imp = "S"
Imp. ordinato 09 Ordinato (grd-imp-ord) tm-cfg-mod-imp = "S"
Colli giacenti 10 Colli giacenza (grd-qta-gia-col) az-imballi = "SI"
Colli impegnati 11 Colli impegnati (grd-qta-imp-col) az-imballi = "SI"
Colli ordinati 12 Colli ordinati (grd-qta-ord-col) az-imballi = "SI"
PUA / PMA -- Prezzo ultimo/medio acquisto (grd-pua, grd-pma) w-abi-val-acq = "S"
Qta disponibile 15 Giacenza - Impegnata (grd-qta-disp) az-personal = "EX"
Qta prenotata 16 Prenotata da BDP (grd-qta-pren) az-personal <> "EX"
Listino 1/2/3 17/18/19 Prezzi listino (grd-lisuno/due/tre) Listini configurati
Giacenza prova 20 Giacenza mag. prova (grd-qta-gia-prova) tm-cfg-mag-prova valorizzato
Stampi attivi -- Flag stampi attivi az-personal = k-personal-artic-seals
Stato -- Stato articolo: Nuova/Esaurimento/Cancellata/Promo/Stagionale Sempre
Brand -- Codice e descrizione brand Sempre
Pre. impegno 25 Prezzo impegno az-personal = "EX"
Data inizio/fine 26/27 Date validita' az-personal = "EX"
Confezione -- Pezzi per confezione Sempre
Lotto minimo -- Lotto minimo ordine Sempre
Modula -- Flag Modula Sempre

Tasti funzione

Tasto Funzione
F1 Configurazione parametri (RNEWCONF via x99-confi)
F1 Vedi tutto -- mostra tutte le righe (solo per Artic Seals con limite 1 riga)
F2 Dettaglio impegno differenziato (b1-impegno-diff, se tm-cfg-mod-imp = "S")
F5 Dettaglio impegnato vendita (COGO35 con o35-imp = "V")
F6 Dettaglio impegnato produzione (COGO35 con o35-imp = "P") o dettaglio (COGV30 per Artic Seals)
F7 Dettaglio ordinato (COGO35 con o35-imp = "V", o35-tip = "F")
F8 Movimenti di magazzino (COGV43)
F9 Dettaglio situazione produzione (COGQ44, solo per Artic Seals)
F10 Giacenze componenti -- richiama se stesso con ope = "GIACECOMP" (solo per articoli padre)
F11 Dettaglio per lavorante (COGW53) o per anagrafico
S-F4 Gestione griglia (GRIDADMN)
S-F5 Esportazione Excel
S-F6 Visualizzazione locazioni (WMSW02 se gestione tablet, altrimenti COGM07)
S-F7 Visualizzazione lotti (COGV55, se az-lotti = "C" e merce gestita a lotti)
S-F8 Dettaglio prenotato -- chiama COGM67 con operazione VIS-APERTI-PER-MERCE passando merce e magazzino
S-F9 Visualizzazione serial numbers (WIN068, se az-ges-sn = "S")
Invio Seleziona merce e ritorna al chiamante (in modalita' CALLED)

Modalita' CALLED

Quando richiamato con v35-called = "COGV35-CALLED" (via utilv35.cpy):

Campo linkage Descrizione
v35-called Deve valere "COGV35-CALLED" per attivare la modalita'
v35-ope Operazione: "RICERCA" = ricerca per merce, "RIC-MERCE" = ricerca merce singola, "GIACECOMP" = giacenze componenti
v35-mag Magazzino. Se vuoto, usa il magazzino principale dell'azienda
v35-merce Codice merce (in output contiene la merce selezionata con Invio)
v35-funzio In output: funzione (ESC = uscita)

Operazioni supportate

Operazione Comportamento
RICERCA Imposta il magazzino e la merce ricevuti, ordinamento "C", visualizza e attende selezione
RIC-MERCE Come RICERCA, ma blocca la navigazione: mostra solo la merce specificata
GIACECOMP Giacenze componenti: disattiva il limite righe, imposta tm-dbase = "S" per leggere da COGDBASE, esegue direttamente senza passare per i filtri

Chiamanti principali

Programma Contesto
COGS68W / COGS68B Ricerca merce strutturata -- ricerca e selezione articolo
COGV35 (se stesso) Giacenze componenti (F10) -- richiama se stesso con operazione GIACECOMP
COGQP0 Gestione produzione
COGV29 Altra visualizzazione giacenze
COGMA0 Gestione magazzino
COGF64 Gestione fatture
WIN087 / WIN088 / WIN056 / WIN057 Finestre di dettaglio varie
COGO75 Gestione ordini
COGO05W Gestione ordini avanzata

Logica di Elaborazione

Flusso principale

  1. Inizializzazione: controllo abilitazione, apertura file, lettura configurazione (RNEWCONF via x99-confi), lettura divisa contabile (COGU10W), preparazione griglia con colonne visibili in base alla configurazione, preparazione controlli
  2. Accept filtri: sequenza di accept per Magazzino, Ordinamento, Gruppo avanzato, Merce. F3 lancia la conferma
  3. Conferma e ricerca: verifica dei filtri (x-controlla-dati) inclusa validazione magazzino su COGMAGAZ e, se configurazione gruppo-aziende attiva, verifica abilitazione tramite COGS0B
  4. Caricamento dati (carica-tab via z-99-accept-paged-grid):
  5. Se ordinamento "C": legge direttamente COGMERCI
  6. Se tm-dbase = "S": legge COGDBASE (per giacenze componenti)
  7. Altrimenti: usa COGU16W per la navigazione paginata ordinata
  8. Per ciascun articolo trovato:
    • Legge il saldo magazzino da COGSLMAG (chiave 1 o chiave 2)
    • Legge l'appoggio merce COGMERAP per filtri reparto e flag giacenza
    • Scarta le merci in esaurimento/cancellate senza giacenza, le merci "offerta", la classe "S"
    • Se impegno differenziato "D": calcola vendita/produzione/ordinato tramite COGU23
    • Se configurato mag. prova: legge la giacenza dal secondo magazzino
    • Cerca stampi attivi (per Artic Seals) e brand da COGMERA2/COGTABEL
    • Carica listini configurati e prezzi acquisto tramite COGL61
  9. Gestione griglia: l'utente naviga la griglia. Per ogni articolo selezionato e' possibile accedere ai dettagli tramite i tasti funzione
  10. Chiusura: chiude i file, cancella i programmi caricati in memoria

Filtro per reparto

Se la configurazione tm-cfg-filtro-per-reparto = "S" e l'operatore ha un reparto assegnato (ptop-reparto), vengono mostrate solo le merci il cui reparto in COGMERAP corrisponde al reparto dell'operatore.

Chiamata a COGM67 (S-F8)

Dalla griglia, premendo S-F8, il programma richiama COGM67 passando:

  • cogm67-called = "COGM67-CALLED"
  • cogm67-ope = "VIS-APERTI-PER-MERCE"
  • cogm67-merce = tm-r-merce (i) (la merce selezionata)
  • cogm67-mag = tm-mag (il magazzino corrente)

Questo permette di vedere tutti i BDP aperti per quella merce nel magazzino selezionato.


File e Tabelle

File/Tabella Copybook Uso
FEURTAB cogfiles.cpy Tabella nomi file del gestionale
COGMERCI cogmerci.fd Anagrafica articoli/merci (lettura principale con ordinamento "C")
COGSLMAG cogslmag.fd, .k02 Saldi di magazzino (giacenza, impegnato, ordinato, prenotato)
COGMERAP cogmerap.fd Dati di appoggio merci (reparto, raggruppamenti, flag giacenza, supporti, date)
COGMERA2 cogmera2.fd Dati aggiuntivi merci 2 (brand)
COGMAGAZ cogmagaz.fd Anagrafica magazzini
COGTABEL cogtabel.fd Tabelle generiche (brand, raggruppamenti)
COGMERLK cogmerlk.fd Link merci (per ricerca stampi attivi)
COGSTAMP cogstamp.fd Stampi (per Artic Seals)
COGDBASE cogdbase.fd Database merci (per giacenze componenti)
PRNTOPER prntoper.fd Operatori (per filtro reparto)
COGRACMC cogracmc.fd Raggruppamento codice merce avanzato
COGAZGRP cogazgrp.fd Gruppo aziende (per verifica abilitazione magazzino)

Programmi chiamati

Programma Scopo
COGM67 Visualizzazione merci in BDP (S-F8: dettaglio prenotato)
COGO35 Dettaglio impegnato vendita/produzione/ordinato (F5, F6, F7)
COGV43 Movimenti di magazzino (F8)
COGV55 Visualizzazione lotti (S-F7)
COGV30 Dettaglio per Artic Seals (F6)
COGQ44 Situazione produzione (F9, per Artic Seals)
COGW53 Dettaglio per lavorante (F11)
COGF59 Dettaglio componenti (F1 su tipo distinta "C")
COGD83 Visualizzazione supporti (S-F7)
WMSW02 Gestione locazioni tablet (S-F6)
COGM07 Gestione locazioni non-tablet (S-F6)
WIN068 Visualizzazione serial numbers (S-F9)
WIN113 Ricerca gruppo avanzato (F8 su campo gruppo)
COGU10W Utility valute/divisioni
COGU16W Utility navigazione paginata ordinata
COGU23 Calcolo impegno differenziato
COGL61 Calcolo prezzi acquisto (PUA/PMA)
COGS0B Verifica abilitazione gruppo aziende
COGS68W Ricerca strutturata merce
GRIDADMN Gestore griglia interattiva
RNEWCONF Lettura configurazioni (via x99-confi)

Copybook principali

Screen Designer (generati)

Copybook Contenuto
cogv35-01.scr Maschera principale (screen section)
cogv35.select SELECT dei file acceduti
cogv35.fd FD dei file acceduti
cogv35.wrk Working storage generata
cogv35.decla Declaratives
cogv35.prc Procedure division generate

Gestionale

Copybook Contenuto
cogfiles.cpy Record tabella nomi file
cogazien.cpy Record dati azienda (personalizzazioni, flag)
utilv35.cpy Interfaccia linkage per chiamata esterna (v35-called, v35-ope, v35-mag, v35-merce, v35-funzio)
utilcogm67.cpy Interfaccia per richiamo COGM67 (cogm67-called, cogm67-ope, cogm67-merce, cogm67-mag)
k-personal.cpy Costanti personalizzazione (EX, Sgarbi, Artic Seals, ecc.)
k-tipi-cogtabel.cpy Costanti tipi tabella (brand)

Utility / Framework

Copybook Contenuto
wgrid.cpy Working per gestione griglie
utilgdad.cpy Working per GRIDADMN
utils52.cpy Working per utility COGS52W (date)
utils68.cpy Working per utility COGS68W (ricerca merce)
utilu10.cpy Working per utility COGU10W (divisa)
utilu16.cpy Working per utility COGU16W (navigazione paginata)
utilu20.cpy Working per utility COGU20
utilu23.cpy Working per utility COGU23 (impegno differenziato)
utilw36.cpy Working per utility COGW36 (magazzini)
utilw113.cpy Working per utility WIN113 (gruppi avanzati)
utilncnf.cpy Working per utility configurazione
utilgesdebug.cpy Working per gestione debug
utilcogl61.cpy Working per utility COGL61 (prezzi acquisto)
utilcogw53.cpy Working per utility COGW53 (dettaglio lavorante)
utilcogq44.cpy Working per utility COGQ44 (produzione)
utilcogs0b.cpy Working per utility COGS0B (abilitazione gruppo aziende)
utildlg.cpy Working per DIALOGS

Configurazioni

La configurazione viene letta tramite RNEWCONF nel paragrafo x99-confi e caricata nella struttura tab-config:

Campo Descrizione
tm-cfg-vis-null "N" = nascondi articoli con tutte le quantita' a zero
tm-cfg-mod-imp Modalita' impegno: "S"=differenziato attivo, "D"=differenziato con calcolo COGU23, " "=standard
tm-cfg-fl-mag Flag magazzino
tm-cfg-mag-prova Codice magazzino prova (se valorizzato, mostra la colonna giacenza prova)
tm-cfg-mag-clavoro Codice magazzino conto lavoro (abilita F11 dettaglio lavorante)
tm-cfg-filtro-per-reparto "S" = filtra gli articoli per reparto dell'operatore
tm-cfg-listino (1..3) Codici listino da visualizzare (fino a 3; se vuoti, colonne nascoste)
tm-cfg-lis-des (1..3) Descrizioni dei listini (usate come titolo colonna)
tm-cfg-gruppo-aziende "S" = verifica abilitazione magazzino tramite gruppo aziende (COGS0B)
tm-cfg-gestione-tablet "S" = usa WMSW02 per locazioni (invece di COGM07)

Note tecniche

  • La griglia e' read-only: il paragrafo z-operazioni-accessorie-grid respinge i tentativi di modifica con event-action-fail-terminate.
  • Il massimo numero di elementi caricabili e' definito dalla costante k-max-ele-tab = 900.
  • Il programma supporta il debug tramite gesdebug (attivato automaticamente in operatore 777 o tramite configurazione).
  • Le merci con mer-val = "O" (offerta) vengono scartate anche dopo il caricamento (rd1-ft-go).
  • Le merci con mer-classe = "S" vengono scartate.
  • Le merci con codice "999999999" vengono scartate.
  • La visibilita' delle colonne griglia e' determinata dinamicamente nel paragrafo z-gridadmn-prepara in base alla configurazione e alla personalizzazione aziendale.
  • Il programma puo' richiamare se stesso ricorsivamente per le giacenze componenti (F10, operazione GIACECOMP).

Storico Modifiche

Build Descrizione
2019/0525 Gestione locazioni tablet (WMSW02) alternativa a COGM07
2024/0323 Verifica abilitazione magazzino tramite gruppo aziende (COGS0B); aggiunta configurazione tm-cfg-gruppo-aziende
2026/0126 Aggiunta colonna Modula in griglia (grd-modula, tm-r-modula)
2026/03 Passaggio magazzino a COGM67: nella chiamata S-F8 (dettaglio prenotato), il programma ora propaga tm-mag a cogm67-mag, in modo che COGM67 filtri per il magazzino corrente anziche' usare il magazzino principale dell'azienda

Documentazione tecnica -- 2026-03-28