Vai al contenuto

COGM41 - Serial Numbers non rientrati (visualizzazione)

Scopo

Programma GUI di sola consultazione che elenca i seriali (matricole) usciti a cliente e il loro stato di rientro. Applica filtri per articolo (da/a), cliente, fornitore, periodo, magazzino e tipo (Non Rientrati / Tutti / in Giacenza) e popola una griglia VSFlexGrid ordinabile ed esportabile in Excel. Ricostruisce la catena padre/figlia delle matricole via COGU07 e recupera l'eventuale valore di cauzione dai movimenti di magazzino.

Magazzino > Visualizzazioni > Serial Numbers > S/n non rientrati

File e tabelle

File Tipo Descrizione
FEURTAB Parametri File di ambiente / parametri (cogfiles.cpy tramite cogm41-fd.cpy)
COGTABEL Indicizzato Tabelle; usa il tipo causale 15 (k-euta-tipo-causale) per leggere euta-cb-cli-for, euta-cb-fl-eu
COGMERCI Indicizzato Anagrafica merci (mer-chia, mer-descr)
COGGEANA Indicizzato Anagrafiche (nomi cliente/fornitore, ana-chia, ana-nome)
COGMAGA2 (cogmagaz) Indicizzato Anagrafica magazzini (magz-tipo='M', magz-cod, magz-nome)
COGTESBO Indicizzato Testate documenti; scandita per chiave 2 (tes-data/tes-mag, tes-chia3, tes-causale)
COGMATRI Indicizzato Matricole/seriali; letta per chiave 1 (mtr-chia1) e scandita per chiave 3 (mtr-ent/mtr-merce/mtr-mat); campi mtr-sn, mtr-ana, mtr-fl-eu
COGMTUSC Indicizzato Matricole uscite; scandita per chiave 3 (mtu-fl-doc='B', mtu-bolla, mtu-merce, mtu-mat, mtu-ana)
COGMOMAG Indicizzato Righe movimenti di magazzino; usata in cerca-cauzione per recuperare prezzo/valuta della cauzione (mag-testa, mag-merce3, mag-prezzo, mag-currency)

Copybook

File e select

  • cogm41-sl.cpy (SELECT), cogm41-fd.cpy (FD), cogmomag.fd
  • Chiavi: cogtabel.k01, cogtesbo.k01/.k02, coggeana.k01, cogmerci.k01, cogmaga2.k01, cogmatri.k01...k04, cogmtusc.k01...k04, cogmomag.k01

Definizioni GUI / ActiveX

  • vsflexgrid.def, acuclass.def, activex.def, opensave.def, costanti.cpy, k-u10.cpy

Working-storage standard

  • utilncnf.cpy, wstato.cpy, wgrave.cpy, wgrid.cpy, wopenf.cpy, wnscr.cpy, cogazien.cpy

Utilita' / linkage subroutine

  • utilgdad.cpy (GRIDADMN), utils21.cpy, utils52.cpy (data/calendario), utils65.cpy (aiuto anagrafica), utils68.cpy (aiuto merce), utilu07.cpy (matricole), utilu10.cpy (valute/importi)

Linkage

  • wcont.cpy (con redefines util-v11 per l'aggancio alla gestione documento, non attivo), wcont1.cpy

Procedure

  • stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, open1.cpy, mmmask.cpy, getdcont.cpy

CALL

Programma Descrizione
COGU07 Ricostruzione catena matricole: cerca-matricola (figlia) e cerca-padre per risalire al padre / anagrafica fornitore / entrata padre
COGS68W Aiuto / decodifica codice merce nei campi "Da/Ad Articolo" (versione GUI)
COGS65W Aiuto / selezione anagrafica cliente e fornitore
COGS52W Gestione campo data con calendario F8 (da/a data)
COGS60W Popolamento combo-box Ordinamento e Tipo Filtro
COGU10 Conversione / edit valute e importi (valore cauzione)
GRIDADMN Amministrazione griglia (predisposta ma le chiamate operative sono commentate; usata la VSFlexGrid nativa)
W$MENU (non usato attivamente)

Logica di elaborazione

  1. apro: font griglia, ctr-abil, open-files, rd-azi, get-divisa-conto; attivazione tasti funzione; titolo "Visualizzazione Serial Usciti"; prepara i controlli merce (z-s68-tm-da-merce/z-s68-tm-a-merce), la griglia (clear-grid, format-grid, z-prepara-grid) e i combo (z-costruisci-controlli); legge la configurazione x99-load-config.
  2. a4: valori di default filtri (periodo anno corrente, ordinamento "M", tipo "R" = Non Rientrati), z-carica-controlli.
  3. Accept dei filtri (a-tm-da-merce, a-tm-a-merce, a-tm-sel-cli-cod, a-tm-sel-for-cod, a-tm-da-data, a-tm-a-data, a-tm-ord, a-tm-tip, a-tm-mag): ogni campo ha un paragrafo x-controlla-... che colora il controllo e imposta x-f3-ok-parziale; x-test-mouse gestisce lo spostamento del focus col mouse tramite event-control-id.
  4. a-conferma (F3): x-imposta-conferma verifica tutti i campi; a-controlli-ok disattiva il pulsante conferma ed esegue b-elabora.
  5. b-elabora: pulisce/formatta la griglia, imposta i default (set-defaults-tm-merce/-ana/-data), scandisce cogtesbo per chiave 2 dalla data di partenza filtrando magazzino e periodo; per ogni testata valida controlla la causale su cogtabel (tipo 15, cliente e verso E/U). A seconda del tipo filtro chiama ricerca-giacenza (tm-tip="G") o ricerca-uscita.
  6. ricerca-uscita: scandisce cogmtusc per bolla+merce (chiave 3); per ogni matricola uscita legge cogmatri, gestisce l'eventuale carattere d'esclusione (matricole ricomposte via cerca-padre-con-u07), verifica cliente/fornitore, determina se e' rientrata (cerca-figlia-con-u07); se non rientrata (o tutti) recupera la cauzione (cerca-cauzione), riempie l'elemento (fill-tab-ele) e lo aggiunge alla griglia (add-ele-to-vs-grid).
  7. ricerca-giacenza: scandisce cogmatri per entrata+merce (chiave 3) escludendo le matricole con un cogmtusc (gia' uscite); logica analoga con recupero cauzione dall'uscita del padre.
  8. add-ele-to-vs-grid: compone la riga (delimitata da tab k-vbtab) con codici, descrizioni, seriali usciti/rientrati, date, fornitore e valore cauzione, e la inserisce con @additem.
  9. a-grid / a-accept-grid: abilita la griglia; F7 = print-vs-grid (@PrintGrid), F9 = export-vs-grid (salvataggio .xls via C$OPENSAVEBOX + @SaveGrid).
  10. fine / z-chiudi: chiusura file e uscita.

Note tecniche

  • La griglia e' un controllo VSFlexGrid (e-vs-grid, id 901) manipolato via metodi ActiveX (@FormatString, @additem, @Sort, @SaveGrid, @PrintGrid); la vecchia grid AcuCOBOL paginata (e-tm-tab) e i relativi paragrafi GRIDADMN sono commentati.
  • Il carattere d'esclusione dei seriali ricomposti e' letto da RNEWCONF (COGM85.CNF / "CARATTERE D'ESCLUSIONE") in x99-load-config; usato con INSPECT ... TALLYING per riconoscere le matricole figlie.
  • Costanti causale: k-euta-tipo-causale = 15; k-ana-tipo-cli / k-ana-tipo-for distinguono cliente e fornitore.
  • Larga parte del sorgente e' costituita da codice legacy commentato (vecchia logica basata su file di transito cogtrans e su cogmomag per chiave 6): la logica attiva e' quella di b-elabora e successori.
  • La colonna "Data Entrata"/"Data Uscita" e il serial rientrato sono valorizzati diversamente per i tre tipi filtro (G/R/T) in add-ele-to-vs-grid.
  • cerca-cauzione traduce le prime due cifre del codice merce in lettere (mappatura 0-9 -> A,B,C,D,E,F,G,H,K,I) per ricostruire il codice della merce-cauzione da cercare nei movimenti.