Vai al contenuto

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

  1. 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.
  2. 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.
  3. Estrazione (a-richiesta-conferma e successivi): scansione di COGLISPD per il listino/criterio filtrato, con lettura delle tabelle di appoggio per le descrizioni, e caricamento nel transito di griglia t-grid-det.
  4. 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).
  5. Aggiornamento (b-aggiorna): dopo i controlli di coerenza, scrive le modifiche su COGLISPD - cancellazione logica delle righe marcate (lspd-val = "C"), wr-coglispd per le nuove righe (con nuovo lspd-riga), rwr-coglispd per 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-ep bloccano 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-dettaglio servono 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).