Vai al contenuto

COGV59 - Visualizzazione Merci per Fornitore / Cliente

Panoramica

Programma interattivo GUI che visualizza in una griglia paginata i movimenti di magazzino (bolle e documenti) filtrati per fornitore/cliente e per prodotto, con relativi valori. Lo stesso sorgente serve due funzioni speculari: "Merci x Fornitore" (analisi acquisti, ramo entrate) e "Merci x Cliente" (analisi vendite, ramo uscite/vendite). La modalita' e' scelta dal parametro di chiamata wo-parametro ("C" = vendite per cliente, altro valore = acquisti per fornitore). E' una visualizzazione di sola consultazione: raccoglie i dati in un file di transito temporaneo e li presenta in griglia, senza aggiornare gli archivi.

Posizione nel menu

Menu Percorso
Magazzino Entrate > Visualizzazioni > Merci x Fornitore
Magazzino Uscite > Visualizzazioni > Merci x Cliente
Vendite Bolle Vendita > Visualizzazioni > Merci x Cliente

La stessa COGV59 copre tutte e tre le voci; il ramo Entrate viene lanciato con wo-parametro diverso da "C" (acquisti/fornitore).

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema
COGTESBO Input Testate bolle/documenti (scansione per data via chiave secondaria .k02)
COGMOMAG Input Movimenti di magazzino (righe documento, scansione per testata via .k07)
COGMERCI Input Anagrafica merci (descrizione, unita' di misura)
COGGEANA Input Anagrafica clienti/fornitori/agenti
COGTABEL Input Tabella generica (causali tipo 15, cli/for tipo 84, sconti tipo 23)
COGMAGAZ Input Anagrafica magazzini (descrizione magazzino)
COGMAGPE Input Magazzini secondari / conto deposito (descrizione MGP)
COGRACCO Input Raccordo bolla-fattura (riferimento fattura, scansione via .k02)
COGRACDM Input Raccordo documenti di trasferimento (documento di entrata collegato)
COGRACMT Input Codici Merce Avanzato (CMA): valore della tabella CMA per merce, letto per chiave secondaria .k02 (merce + tipo tabella)
COGDESAG Input Descrizioni aggiuntive di riga (importi da sommare/sottrarre al valore)
COGAPPOG Input Appoggio anagrafico (filtro per tipologia statistica app-tip-stt)
COGTESAP Input Testate documenti - dati aggiuntivi (brand, azienda di gruppo)
COGBRAND Input Anagrafica brand/marchi
COGFTRAG Input File dichiarato dal generatore (Screens)
COGLISNW Input File dichiarato dal generatore (Screens)
GRPAZIEN Input Anagrafica aziende di gruppo
COGTRANS I-O (temp) File di transito indicizzato, nome univoco per operatore, che raccoglie le righe estratte prima di popolare la griglia
EXP-GRID Output File sequenziale per l'export Excel della griglia

Copybook principali

Copybook Descrizione
cogv59.select / cogv59.fd SELECT e File Description (generati da Screens)
cogv59.wrk / cogv59.prc / cogv59.decla Working storage, procedure di I/O e declaratives generati
cogv59-01.scr Screen section
cogtrans.k01 Chiave primaria del transito
cogtesbo.k02 Chiave secondaria testate (per data)
cogmomag.k07 Chiave secondaria movimenti (per testata)
cogracco.k02 Chiave secondaria raccordo bolla-fattura
cogracmt.k02 Chiave secondaria COGRACMT (per merce + tipo tabella CMA)
k-personal.cpy Personalizzazioni aziendali (es. k-personal-pedretti)
k-tipi-cogracdm.cpy Costanti tipi COGRACDM (k-rdm-tip-trasferimento)
k-u10.cpy Costanti per COGU10 (edita, cambio-conto, ecc.)
cogazien.cpy Dati azienda
wgrid.cpy / utilgdad.cpy / utilpggr.cpy / fscrol2.cpy Gestione griglia e paginazione (GRIDADMN)
utilncnf.cpy Configurazioni RNEWCONF
utils65.cpy / utils68.cpy Interfacce ricerca anagrafica (COGS65W) e merce (COGS68W)
utils52.cpy / utilu10.cpy / utilu25.cpy / utilg31.cpy Interfacce data, edita valori, cambio divisa, conversione UM
utilcogmah.cpy / utilgrp002.cpy / utild89.cpy / utilf10.cpy Interfacce help su brand, azienda gruppo, UM alternativa, tipologia
GetDCont.cpy Recupero divisa di conto

Chiamate a sottoprogrammi (CALL)

Programma Scopo
RNEWCONF Lettura configurazioni
GRIDADMN Gestione e personalizzazione della griglia paginata
COGS65W Ricerca/help anagrafica cliente, fornitore, cliente-consegna, agente
COGS68W Ricerca/help merce (gruppo/sottogruppo/codice)
COGU10W Edita/arrotonda e converte importi in divisa
COGU25 Rivalutazione valore riga in divisa di conto
COGG31 Conversione quantita'/prezzo in unita' di misura alternativa
COGF10 Help tipologia anagrafica
COGMAH Help codice brand
GRP002 Help azienda di gruppo
COGD89 Help unita' di misura alternativa
COGV56 Gestione/visualizzazione documento di uscita o buono collegato
COGV68 Gestione/visualizzazione buono di prelievo (tessile)
COGV15 Gestione/visualizzazione documento di carico

Logica di elaborazione

1. Inizializzazione (apri)

Controlla l'abilitazione, inizializza il programma, legge le configurazioni RNEWCONF (x99-confi), carica lingua e dati azienda, apre i file e recupera la divisa di conto (get-divisa-conto). Legge da COGTABEL (tipo 23, codice "SC") il gruppo/sottogruppo degli sconti incondizionati usato in src-des. In base a wo-parametro imposta w-tipo-ana ("C" o "F"), il titolo della maschera e le etichette dei campi (Cliente/Fornitore, Cliente Cons./Fornitore Cons.). Prepara i controlli e la griglia (z-costruisci-controlli, z-prepara-tm-grid).

2. Reset ed apertura transito (a4)

Svuota la griglia e la struttura tab-maschera, imposta i filtri di default (periodo dall'01/01 al 31/12 dell'anno corrente, divisa "C", tipo visualizzazione "T"). Costruisce il nome univoco del file COGTRANS combinando directory temporanea, k-program-id, data, ora e operatore, quindi lo (ri)crea in output e lo riapre in I-O.

3. Accept dei filtri

Serie di paragrafi a-tm-* per l'immissione dei parametri di ricerca, con navigazione F2 (indietro) / F3 (conferma) / mouse (x-test-mouse): cliente o fornitore, agente, divisa, cliente/fornitore di consegna, tipologia anagrafica (tm-app-tip-stt), tipo visualizzazione, merce (gruppo/sottogruppo/codice), data da/a (obbligatorie), causale, brand, filtro prezzo, azienda di gruppo, unita' di misura alternativa, esclusione movimenti senza prezzo (tm-no-price). La visibilita' dei campi cliente/fornitore dipende da w-tipo-ana. La conferma passa da x-imposta-conferma che rivalida tutti i campi.

4. Estrazione dati (a-fine-dati)

Scandisce COGTESBO per chiave secondaria data (st-cogtesbo-notmin-chia2, rdnxt-cogtesbo) da tm-da-data a tm-a-data. Per ogni testata verifica il tipo anagrafico (tes-tipocf = w-tipo-ana) ed il filtro codice, legge la causale da COGTABEL (tipo 15) e, se richiesto (tipo visualizzazione "A" = solo fatturato), controlla euta-cb-con-fat = "SI"; quindi esegue a-ricerca.

In a-ricerca, per ogni testata: - applica i filtri opzionali su azienda di gruppo (COGTESAP + GRPAZIEN), tipologia anagrafica (COGAPPOG), agente e brand (COGTESAP + COGBRAND); - scandisce le righe movimento in COGMOMAG per testata (st-cogmomag-notmin con mag-testa = tes-chia3, a50-loop / rdnxt-cogmomag), interrompendo alla rottura di chiave; - filtra per cliente/fornitore di consegna (mag-padre), per tipo documento coerente con la modalita' (vendite: I/B/D; acquisti: C), per filtro prezzo, per livello merce (fl-ric = C/S/G/T da x-controlla-tm-mer) e per esclusione prezzo zero; - calcola il valore riga sommando le descrizioni aggiuntive Q di COGDESAG (src-des) e accumula totali quantita' e valore (con cambio in divisa di conto via COGU10); - risolve l'unita' di misura da COGMERCI e, se richiesto, la UM alternativa via COGG31; - scrive il record risultante nel transito COGTRANS.

Dopo la scansione, a2-cerca-doc-collegati rilegge il transito e, per ogni riga, cerca il documento collegato in COGRACDM (trasferimenti) e l'eventuale magazzino secondario collegato (a2-cerca-mgp-collegato).

5. Caricamento griglia (a-grid-ini / carica-tab / z-costruisci-grid)

carica-tab riparte dal transito e riempie la struttura tab-maschera (tm-righe, max k-max-ele-tab = 900 per pagina) tramite le routine di paginazione (fscrol2/GRIDADMN). Per ogni riga, in rd1-ft-go sono valorizzati riferimento bolla, merce, quantita', prezzo, valore (via COGU25, salvo la personalizzazione Pedretti), sconti, ordine, consegna, causale, anagrafica e magazzino secondario; il riferimento fattura e' cercato in COGRACCO (rd12-src-fat). x-riempi-grid-record formatta il record video (grid-record) risolvendo le descrizioni di anagrafica (COGGEANA), magazzino (COGMAGAZ) e magazzino secondario (COGMAGPE). Vengono mostrati totale quantita' e totale valore.

6. Interazione sulla griglia (a-grid)

Gestisce ESC (uscita), Shift-F4 (personalizzazione colonne via GRIDADMN), Shift-F5 (export Excel su EXP-GRID), Pag su/giu' (paginazione avanti/indietro sul transito) e F3 (a1-ges-doc): apre il documento della riga selezionata richiamando COGV56 (uscite/buoni), COGV68 (buoni tessile) o COGV15 (carichi) secondo il tipo bolla.

7. Chiusura (fine / z-chiudi)

Chiude i file, chiude ed elimina il file di transito COGTRANS, chiude la finestra ed esce.

Note tecniche

  • Modalita' cliente/fornitore: unico sorgente per due funzioni; wo-parametro (da wcont.cpy) discrimina vendite ("C") da acquisti (altro). La colonna agente e' resa visibile solo in modalita' fornitore (vedi z-gridadmn-prepara).
  • File di transito: COGTRANS e' indicizzato, con nome univoco che include data, ora e operatore per evitare collisioni; e' creato all'ingresso e cancellato in uscita. E' il buffer tra la fase di estrazione e la griglia paginata.
  • Chiavi secondarie: il programma usa cogtesbo.k02 (per data), cogmomag.k07 (per testata) e cogracco.k02 (raccordo fattura), incluse manualmente in coda alla procedure division insieme a cogtrans.k01.
  • Configurazioni RNEWCONF (lette in x99-confi, pacchetto "C", 3 chiavi):
  • fatturaz / fl-filtro-agente -> tm-cfg-fl-filtro-agente (abilita il filtro per agente);
  • azienda / gestione-brand-marchio -> tm-cfg-gestione-brand (abilita brand/marchio);
  • assist / gestione-gruppo-aziende -> tm-cfg-gruppo-aziende (abilita filtro azienda di gruppo).
  • Personalizzazione Pedretti (az-personal = k-personal-pedretti): salta le chiamate a COGU25 usando direttamente il valore del movimento, per motivi di performance.
  • Colonne Codice Merce Avanzato (CMA): come in COGF64, la griglia puo' mostrare fino a 5 colonne dinamiche con i codici CMA della merce (id colonna 32-36, costanti k-colid-cma-01..05). L'elenco delle tabelle CMA da mostrare e' caricato all'ingresso da v59-carica-tab-cma, richiamata in apri:
  • la sequenza di ricerca e' letta da COGTABEL tipo 37 (k-euta-tipo-cma-seq, record con euta-sqc-cla = " " e euta-sqc-tip = "C"), fino a k-max-tcma-pnt = 5 tabelle;
  • la descrizione/titolo di ciascuna colonna e' letta da COGTABEL tipo 62 (k-euta-tipo-tabelle-cma);
  • per ogni riga della griglia il valore della tabella CMA e' cercato in COGRACMT (v59-cerca-cogracmt, per merce + tipo tabella) e riportato nei campi grd-rtm-cod-01..05. La visibilita', l'ampiezza e i titoli delle colonne 11-15 sono impostati dinamicamente in z-gridadmn-prepara (le tabelle configurate visibili, le altre nascoste) con gdad-forza-titoli = "S" per forzare i titoli dinamici. La struttura di configurazione e' tm-cfg-tab-cma (copybook interne al programma). Aggiunta la copybook chiave cogracmt.k02.
  • Dimensione sorgente: circa 3.346 righe (cbl/cogv59.cbl).