Vai al contenuto

COGM37 - Aggiornamento Singolo Listino

Sorgente: cbl/cogm37.cbl | Tipo: Programma interattivo con griglia paginata | Program-ID: COGM37

Menu:

  • Magazzino > Controllo Prezzi > Agg. Singolo Listino

Scopo

Aggiornamento massivo dei prezzi di un listino di vendita. L'operatore seleziona un listino, una data di validita', un intervallo merci e un ordinamento; il programma estrae le merci corrispondenti, carica i prezzi precedenti e attuali in una griglia modificabile, e alla conferma aggiorna il listino (COGLISNW) e gli eventuali prezzi particolari (COGSCONT).

Non gestisce le fasce di quantita' (dichiarato nel commento iniziale del sorgente).


Struttura del programma

Flusso principale

  1. Inizializzazione (apri): apertura file, creazione file di transito temporanei (#$COGM37, #$BOGM37), lettura configurazione RNEWCONF, preparazione griglia
  2. Sezione parametri (a4 - a-fine-dati): accept dei filtri (ordinamento, tipo selezione, data, listino, merce da/a, fornitore)
  3. Estrazione (carica-cogtrans): scansione merci selezionate, lettura prezzi da COGLISNW, caricamento nel file di transito COGTRANS
  4. Griglia (a-grid): visualizzazione paginata con modifica diretta del prezzo attuale in griglia
  5. Aggiornamento (aggiorna / d-aggiorna): scrittura definitiva su COGLISNW e aggiornamento prezzi particolari su COGSCONT

Sezione parametri - campi accept

Paragrafo Campo Descrizione
a-tm-ord-cd tm-ord Ordinamento: C=Codice, D=Descrizione, L=Cod.alternativo
a-tm-ord-cda tm-ord Ordinamento alternativo (visibilita' configurabile)
a-tm-sel tm-sel Tipo selezione: C=Codice, D=Descrizione, A=Cod.alternativo
a-tm-data tm-data Data validita' listino (AAAAMMGG)
a-tm-lis tm-lis Numero listino (1-99), validato su COGTESLS
a-tm-da-merce tm-da-merce Merce iniziale (gruppo+sottogruppo+codice)
a-tm-a-merce tm-a-merce Merce finale
a-tm-for-cod tm-for-cod Fornitore (opzionale, visibilita' configurabile)

Griglia - colonne principali

La griglia e' gestita con accept diretto (begin-entry/finish-entry). La colonna editabile e' individuata dinamicamente tramite hidden-data = "pre-att" (tm-column-att). Se attiva la pagina listini fornitore (tm-cfg-pagina-mlf = "S"), anche la colonna lisfo-calc e le 6 colonne sconto sono editabili.

Aggiornamento (d-aggiorna)

Scansiona COGTRANS in ordine di chiave primaria:

  • Per ogni merce con trs-pre-att <> 0: esegue rd-coglisnw-lk con merce/listino/fascia 1/data; se non esiste crea il record, poi scrive il prezzo attuale con rwr-coglisnw
  • Chiama d1-agg-par per aggiornare i prezzi particolari da COGTRANS2
  • Se tm-cfg-pagina-mlf = "S" e fornitore specificato: aggiorna COGMERLF (prezzo base, sconti 1-6) e COGLISFO (prezzo calcolato alla data)

Prezzi particolari (c21-src-sco, d1-agg-par)

I prezzi particolari vengono cercati in COGSCONT per tre tipologie:

Tipo trs2-tip-sco Descrizione
A Sconto generale merce scc-tip = "M"
B Sconto per gruppo scc-tip = "G", chiave = scc-gruppo-sconto
C Sconto per cliente scc-tip = "A", chiave = scc-ana-cod

I risultati sono memorizzati nel file di transito COGTRANS2. Il sottoprogramma COGM37S gestisce la maschera di dettaglio dei prezzi particolari.


Tabelle e file

File principali

File logico Tabella Accesso Descrizione
COGTABEL (via feurtab) COGTABEL Indexed, dynamic Tabelle generiche
COGMERCI COGMERCI Indexed, dynamic Anagrafica merci
COGLISNW COGLISNW Indexed, dynamic Listini nuovi (merce/tipo/rif/fascia/data)
COGTESLS COGTESLS Indexed, dynamic Testata listini (tipo/rif)
COGSCONT COGSCONT Indexed, dynamic Sconti e prezzi particolari
COGRACMC COGRACMC Indexed, dynamic (k2) Codici alternativi merce
COGMERFO COGMERFO Indexed Merce-fornitore
COGGEANA COGGEANA Indexed Anagrafica generale (fornitori)
COGMERLF COGMERLF Indexed Merce - listino fornitore
COGLISFO COGLISFO Indexed Listino fornitore storicizzato

File di transito (temporanei)

File logico Nome fisico Descrizione
COGTRANS #$COGM37.<operatore> Transito principale: contiene merce, prezzi pre/att/acq, dati listino fornitore
COGTRANS2 #$BOGM37.<operatore> Transito prezzi particolari: tipo sconto + chiave + prezzo pre/att
TRAN-S56 #$COGS56.<operatore> Transito selezione per codice alternativo (usato da COGS56)

COPY incluse

Working-Storage

cogm37.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilcogs0c.cpy, wgrid.cpy, utilgdad.cpy, utils52.cpy, utils56.cpy, utils65.cpy, utils68.cpy, utilu10.cpy, utilu20.cpy, utilw96.cpy, utilcogl61.cpy, utilncnf.cpy, utilu16.cpy

Linkage

wcont.cpy, wcont1.cpy

Procedure Division

cogm37.prc, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, dtab.cpy, fscrol2.cpy, sendw96.cpy, tran-s56.k01, cogtran2.k01, cogtrans.k01, cogtrans.k02, cogtrans.k03, cogracmc.k02, cogscont.k02, cogmerci.k02


CALL a sottoprogrammi

Programma Scopo
COGU10W Gestione valori monetari (cambio divisa, edita, arrotonda)
COGU16W Gestione ordinamento e selezione merce
COGL61 Calcolo prezzo di acquisto merce
COGS56 Selezione merci per codice alternativo
COGS65W Accept campo fornitore con lookup
COGM37S Dettaglio prezzi particolari per merce
GRIDADMN Gestione griglia (preparazione, popolamento, modifica)
RNEWCONF Lettura configurazioni

Configurazioni RNEWCONF

Gruppo Chiave Descrizione
PROGCOGM37 euta-c048-lis Listino di default
colori colonna-griglia-modificabile Colore colonne editabili in griglia
merci v06-pagina-listini-fornitore Abilita pagina listini fornitore ("S"/"N")

Note tecniche

  • Il programma crea file di transito temporanei per operatore; alla chiusura vengono cancellati con delete file.
  • L'accept in griglia avviene tramite begin-entry/finish-entry con validazione nella z-99-finish-entry-tm-tab. Solo la colonna tm-column-att (prezzo attuale) e' editabile di default; con listino fornitore attivo lo sono anche tm-column-lisfo-calc e gli sconti 1-6.
  • Il calcolo del prezzo fornitore calcolato (x-conteggio-sconti) applica fino a 6 sconti in cascata con arrotondamento dopo ogni sconto.
  • La paginazione della griglia usa il pattern standard fscrol2.cpy con navigazione avanti/indietro.