Vai al contenuto

COGL60 - Visualizzazione Prezzi Medi per Merce

Panoramica

Programma interattivo per la visualizzazione e la gestione manuale dei prezzi medi registrati nell'archivio COGPRMED. Per un dato articolo (e opzionalmente una sede), mostra in griglia le righe dell'archivio prezzi medi ordinate per data decrescente, con ultimo prezzo di acquisto (PUA), prezzo medio di acquisto (PMA) e prezzo medio di vendita (PMV). Supporta inserimento, modifica e cancellazione di righe. Puo' essere richiamato come "called" passando articolo e sede. Massimo 900 elementi in griglia.

Posizione nel menu

Menu Percorso
Magazzino Controllo Magazzino > Prezzo Medio > Visualiz. prezzi medi x merce

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema
COGMERCI Input Anagrafica merci
COGMAGAZ Input Anagrafica magazzini/sedi
COGPRMED I-O Archivio prezzi medi per merce/sede/data (lettura, scrittura, modifica, cancellazione)

Copybook principali

Copybook Descrizione
cogl60.select SELECT dei file
cogl60.fd File Description
cogl60.wrk Working storage generata
cogl60-01.scr Screen section
k-u10.cpy Costanti formattazione importi
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy Standard working storage
cogazien.cpy Dati azienda
wgrid.cpy, utilgdad.cpy Gestione griglia
utilu10.cpy Formattazione importi (COGU10W)
utils52.cpy Utilita' date
utils68.cpy Ricerca merce (COGS68W)

Parametri linkage (called)

La linkage include utilcogl60.cpy (non listato esplicitamente nel sorgente, ma la struttura w-dati-called ha w-dc-called, l60-merce e l60-sede). Se w-dc-called = "S" il programma preimposta merce e sede dai parametri ricevuti e salta direttamente all'elaborazione.

Struttura chiave COGPRMED

La chiave primaria (prm-chia1) e' composta da: merce (9 byte: gruppo+sottogruppo+codice) + data (8 byte, formato AAAAMMGG) + sede (3 byte). L'ordinamento e' decrescente per data (la griglia scorre dal valore massimo al minimo).

Chiamate a sottoprogrammi (CALL)

Programma Scopo
GRIDADMN Gestione griglia (personalizzazione colonne S-F4)
COGU10W Formattazione e accept importi (PUA, PMA, PMV)
COGS68W Ricerca/selezione merce
WIN36 Ricerca magazzini/sedi (F8 su campo sede)

Logica di elaborazione

Flusso principale

  1. Inizializzazione (apri): legge configurazioni, apre file. Se called, preimposta articolo e sede e salta a a-fine-dati.

  2. Filtri (a4): accept di a-tm-merce (obbligatorio, con ricerca COGS68W) e a-tm-sede (facoltativo, con F8 → WIN36).

  3. Elaborazione (a-fine-dati): imposta prm-merce = tm-merce, prm-data = 99999999 (massimo) per posizionarsi all'inizio della scan decrescente. Chiama carica-tab thru ex-carica-tab per popolare la griglia leggendo COGPRMED a partire dalla data piu' recente.

Se la prima scan non restituisce dati (n-m = 0), effettua una seconda scansione senza il filtro data per mostrare comunque i dati disponibili.

  1. Griglia (a-grid): supporta paginazione (PgUp/PgDn), S-F4 (GRIDADMN), S-F5 (export Excel). Le azioni sulla riga sono:
  2. Invio: a-riga-dettaglio in modalita' modifica ("M") — lock del record con rd-cogprmed-lk, attiva highlight riga
  3. Ctrl+A: a-riga-dettaglio in modalita' inserimento ("I") — incrementa n-m, nuova riga vuota
  4. Ctrl+E: verifica abilitazione, chiede conferma, chiama c-cancella thru ex-c e ricarica griglia

  5. Dettaglio riga (a-riga-dettaglio): accept sequenziale di a-tm-r-dataa-tm-r-sedea-tm-r-puaa-tm-r-pmaa-tm-r-pmv. I campi PUA/PMA/PMV usano util-u10 per formattazione importi.

  6. Salvataggio (a-fine-dettaglio): chiede conferma. Verifica se il record esiste gia' in COGPRMED:

  7. In inserimento su record esistente → converte in modifica con avviso
  8. In modifica su record non trovato → converte in inserimento con avviso
  9. Esegue wr-cogprmed (inserimento) o rwr-cogprmed (modifica)
  10. Se il nuovo record rientra nella finestra corrente della griglia, si riposiziona e ricarica

Gestione valori importi

I campi PUA, PMA, PMV sono di tipo pic 9(12)v9(06) con valuta (prm-currency). La formattazione usa util-u10 / COGU10W.

Abilitazioni

Il programma controlla w-abi-agg, w-abi-ins, w-abi-del per la modifica, l'inserimento e la cancellazione rispettivamente.

Note tecniche

  • La griglia e' a scorrimento inverso (da data massima a data minima): la chiave superiore di scansione e' 99999999.
  • La logica di inserimento verifica che il nuovo record ricada nella finestra corrente (prm-chia1 < w-t-key and > w-b-key) prima di riposizionarsi sulla griglia.
  • Il lock record in modifica usa rd-cogprmed-lk (lettura con lock); se il record non viene trovato viene mostrato un messaggio di errore.
  • La nuova gestione highlight riga (tratta-hl thru ex-tratta-hl) e' attiva solo in modalita' modifica (fl-attiva-hl = "S").
  • Il programma usa k-max-ele-tab = 900.