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¶
- Inizializzazione (
apri): apertura file, creazione file di transito temporanei (#$COGM37,#$BOGM37), lettura configurazione RNEWCONF, preparazione griglia - Sezione parametri (
a4-a-fine-dati): accept dei filtri (ordinamento, tipo selezione, data, listino, merce da/a, fornitore) - Estrazione (
carica-cogtrans): scansione merci selezionate, lettura prezzi da COGLISNW, caricamento nel file di transito COGTRANS - Griglia (
a-grid): visualizzazione paginata con modifica diretta del prezzo attuale in griglia - 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: eseguerd-coglisnw-lkcon merce/listino/fascia 1/data; se non esiste crea il record, poi scrive il prezzo attuale conrwr-coglisnw - Chiama
d1-agg-parper 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 colonnatm-column-att(prezzo attuale) e' editabile di default; con listino fornitore attivo lo sono anchetm-column-lisfo-calce 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.cpycon navigazione avanti/indietro.