COGF6B - Gestione Listini Parametrici (dettaglio)¶
Sorgente: cbl/cogf6b.cbl | Tipo: Programma interattivo con griglia (Screen Designer), anche richiamabile come modulo | Program-ID: COGF6B
Menu:
- Magazzino > Archivi & Tabelle > Listino Vendita > Gestione listini parametrici
Scopo¶
Editor del dettaglio dei listini parametrici (tabella COGLISPD). Mentre COGF6A definisce le testate (codice listino + criteri applicabili), COGF6B gestisce le singole righe di prezzo/sconto: per un dato listino e una data combinazione di criteri (fino a 5: cliente, zona, tipologia, gruppo aziende, brand, divisa, articolo, ecc.) definisce, per fascia di quantita' (qta-min / qta-max) e per periodo di validita' (data-ini / data-fin), il prezzo e fino a 9 sconti.
L'operatore filtra le righe da gestire indicando un codice listino e/o un tipo criterio con il relativo valore; il programma estrae le righe COGLISPD corrispondenti in una griglia paginata editabile e, alla conferma (F3), riscrive le modifiche su COGLISPD dopo controlli di coerenza (non sovrapposizione delle fasce di quantita' nello stesso periodo, non sovrapposizione dei periodi).
Come COGF6A, e' anche richiamabile come modulo (linkage util-cogf6b): con cogf6b-called = "COGF6B" e i parametri cogf6b-listino / cogf6b-crt-tip / cogf6b-crt-cod entra direttamente sul listino/criterio indicato.
Struttura del programma¶
Flusso principale¶
- Inizializzazione (
apri): apertura file, lettura configurazione RNEWCONF (x99-confi), recupero divisa di conto (COGU10), costruzione menu contestuale griglia, preparazione griglia. Se richiamato come modulo, precarica i parametri di filtro. - Sezione filtri (
a-tm-lis-cod..a-tm-crt-*): accept del codice listino (F8 help via COGF6A), del tipo criterio (F8 help via COGF6E) e, in base al tipo criterio scelto (x-analisi-tipo-criterio), del valore del criterio: merce (COGS68W), cliente (COGS65W), zona, tipologia cliente, gruppo aziende (GRP002), brand (COGMAH), divisa, articolo CMA, articolo raggruppamento. La visibilita' dei campi valore dipende dal tipo criterio. - Estrazione (
a-richiesta-confermae successivi): scansione di COGLISPD per il listino/criterio filtrato, con lettura delle tabelle di appoggio per le descrizioni, e caricamento nel transito di grigliat-grid-det. - Griglia (
a-grid): griglia paginata editabile con una riga per (listino + criteri 1-5 + progressivo riga); colonne per periodo (data-ini/fin), fascia (qta-min/qta-max), prezzo e sconti 1-9. Editing per cella gated dai flag di gestione (prezzo/IVA/sconti) letti dalla testata COGLISPT. Aggiunta (Ctrl-A), eliminazione logica (Ctrl-E), personalizzazione colonne (Shift-F4), export Excel (Shift-F5). - Aggiornamento (
b-aggiorna): dopo i controlli di coerenza, scrive le modifiche su COGLISPD - cancellazione logica delle righe marcate (lspd-val = "C"),wr-coglispdper le nuove righe (con nuovolspd-riga),rwr-coglispdper l'aggiornamento di prezzo, sconti, date e quantita'.
Transiti di lavoro¶
Oltre al transito di griglia t-grid-det (istanziato da cogtrans.k03), il programma usa due transiti indicizzati aggiuntivi, t-testata e t-dettaglio (definiti manualmente nella file-control/file section del sorgente e istanziati da cogtrans.k01/.k02/.k03), usati per le verifiche di coerenza (un record per listino/scheda e uno per riga interessata all'aggiornamento). Tutti e tre i transiti sono temporanei e vengono cancellati in z-chiudi.
Tabelle e file¶
Tabelle reali¶
| File logico | Prefisso | Accesso | Descrizione |
|---|---|---|---|
| FEURTAB | - | Input | Tabella di sistema (feurtab.fd) |
| COGLISPD | lspd- | Indexed, dynamic (k2-k6) | Dettaglio listini parametrici: chiave = listino + criteri 1-5 + riga; contiene data-ini/fin, qta-min/max, prezzo, dgcval-1..9 (sconti), flag lspd-val. Unica tabella scritta/aggiornata (wr-/rwr-; cancellazione logica) |
| COGLISPT | lspt- | Input | Testata listini parametrici (sola lettura): descrizione, criteri, flag di gestione prezzo/IVA/sconti che abilitano l'editing delle colonne |
| COGGEANA | ana- | Input | Anagrafica clienti (descrizione criterio cliente) |
| COGMERCI | mer- | Input | Anagrafica merci (criterio articolo) |
| COGRACMC | rcm- | Input (k2) | Codici alternativi merce |
| COGTABEL | euta- | Input | Tabelle generiche (zone, tipologie cliente, divise, tabelle CMA) |
| GRPAZIEN | ao-azi- | Input | Anagrafica aziende di gruppo (criterio gruppo aziende) |
| COGBRAND | bra- | Input | Anagrafica brand/marchi (criterio brand) |
| COGANRAG | arag- | Input | Anagrafica raggruppamenti gerarchici (criterio articolo raggruppamento) |
File di transito (temporanei)¶
| File logico | Prefisso | Descrizione |
|---|---|---|
| t-grid-det | t-gor-r- | Transito di griglia (una riga per riga listino editabile) |
| t-testata | t-tes- | Transito di coerenza: un record per listino/scheda interessata all'aggiornamento |
| t-dettaglio | t-det- | Transito di coerenza: un record clone del dettaglio con riferimento alla riga di griglia |
COPY incluse¶
Working-Storage¶
cogf6b.wrk, cogf6b.imppredf-wrk, k-tipi-cogtabel.cpy, costanti-listino.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utilf01.cpy, utilf10.cpy, utile22.cpy, utilgrp002.cpy, utilcogmah.cpy, utilu10.cpy, utilu20.cpy, utils52.cpy, utils65.cpy, utils68.cpy, utilcogx40.cpy, utilw06.cpy, utilw76.cpy, utilcogmal.cpy, utilcogf6a.cpy, utilgesstr.cpy, utilgesdate.cpy, utilcogf6e.cpy, utilncnf.cpy, utilimppredf.cpy
File section¶
feurtab.fd, cogfiles.cpy, cogf6b.fd; FD manuali t-testata e t-dettaglio
Linkage¶
wcont.cpy, wcont1.cpy, utilcogf6b.cpy (interfaccia di chiamata: cogf6b-called, cogf6b-caller, cogf6b-listino, cogf6b-crt-tip, cogf6b-crt-cod)
Screen / Procedure Division¶
cogf6b-01.scr, cogf6b.decla, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogf6b.prc, cogf6b.imppredf, chiavi secondarie coglispd.k02-coglispd.k06, cogracmc.k02, piu' le istanze di cogtrans.k01/k02/k03 (REPLACING) per i tre transiti
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| RNEWCONF | Lettura configurazioni |
| GRIDADMN | Gestione griglia paginata editabile |
| COGF6A | Help/ricerca codice listino (F8 sul campo listino) |
| COGF6E | Help/ricerca tipo criterio (F8 sul campo tipo criterio) |
| COGS65W | Ricerca/help anagrafica cliente (criterio cliente) |
| COGX40 | Ricerca merce (criterio articolo) |
| COGMAH | Help brand/marchio (criterio brand) |
| GRP002 | Help azienda di gruppo (criterio gruppo aziende) |
| COGU10 | Gestione valori monetari / divisa di conto |
| COGF01, COGF10, COGE22, COGMAL | Help/lookup anagrafici (tipologia, ecc.) via le rispettive interfacce util* |
| GESSTR, GESDATE | Utility stringhe e date |
| WIN006, WIN076 | Utility di interfaccia |
| W$MENU | Menu contestuale griglia (right-click) |
La ricerca merce (COGS68W) e' gestita via i paragrafi entry-point z-s68-* dell'interfaccia utils68.cpy.
Configurazioni RNEWCONF¶
Lette nel paragrafo x99-confi (pacchetto k-pack-coge):
| Gruppo | Chiave | Campo | Descrizione |
|---|---|---|---|
| ABILITA | GRUPPO-AZIENDE | tm-cfg-gruppo-aziende |
Abilita l'uso del criterio "gruppo aziende" (GRPAZIEN / GRP002) tra i criteri di parametrizzazione listino |
Note tecniche¶
- Modello criteri: i codici criterio validi sono definiti in
costanti-listino.cpy(CLIFAT, CLISPD, CLILIS, CLIZON, CLITIP, GRPAZ, BRAND, DIVISA, ARTCOD, ARTCLA, ARTCMA, ARTRAG); la classe di ricerca generale e'"*". Il tipo criterio scelto in maschera pilota (x-analisi-tipo-criterio) quali campi valore rendere visibili. - Editing per cella gated dalla testata: quali colonne (prezzo, IVA, sconti 1-9) siano editabili dipende dai flag di gestione della testata COGLISPT; i paragrafi
z-grid-det-*-be-epbloccano l'accept sulle celle non gestite. - Controlli di coerenza: prima dell'aggiornamento vengono verificate la non sovrapposizione delle fasce di quantita' nello stesso periodo e la coerenza dei periodi di validita'; i transiti
t-testata/t-dettaglioservono a questo scopo (sono di lavoro, non persistenti). - Cancellazione logica: le righe non vengono mai cancellate fisicamente da COGLISPD; la cancellazione e' marcata da
lspd-val = "C". - Nove sconti: il record di dettaglio prevede fino a 9 valori sconto (
lspd-dgcval-1..9), oltre al prezzo, per gestire cataene di sconto configurabili per fascia/periodo. - Coppia con COGF6A: COGF6A definisce le testate e ne restituisce il codice (F8 su listino qui); insieme costituiscono la gestione completa dei listini parametrici di vendita.
- Dimensione sorgente: circa 4.542 righe (
cbl/cogf6b.cbl).