Vai al contenuto

COGF6A - Definizione Listini Parametrici (testate)

Sorgente: cbl/cogf6a.cbl | Tipo: Programma interattivo con griglia (Screen Designer), anche richiamabile come modulo | Program-ID: COGF6A

Menu:

  • Magazzino > Archivi & Tabelle > Listino Vendita > Definizione listini parametrici

Scopo

Definizione delle testate dei listini parametrici (tabella COGLISPT). Un listino parametrico e' un listino la cui applicabilita' dipende da uno o piu' criteri (cliente, zona, brand, divisa, articolo, ecc.): questa funzione ne definisce l'anagrafica di testata - codice, descrizione, priorita', stato attivo, e i cinque criteri che il listino puo' usare - oltre ai flag di gestione (prezzo, IVA, sconti 1-9). Il dettaglio (righe con fasce di quantita', prezzi, sconti e periodi) e' invece gestito da COGF6B.

Il programma presenta tutte le testate in un'unica griglia editabile paginata: l'operatore aggiunge, modifica o cancella (logicamente) le testate direttamente in griglia, e alla conferma (F3) l'intera griglia viene riscritta su COGLISPT.

COGF6A e' anche richiamabile come modulo (linkage util-cogf6a): quando e' invocato da un altro programma (cogf6a-called = "COGF6A", cogf6a-caller valorizzato) opera in modalita' selezione e restituisce il codice listino scelto in cogf6a-out-cod. E' cosi' che COGF6B offre l'help (F8) sul codice listino.


Struttura del programma

Modalita' operative

Il flag a-modalita distingue:

  • "A" (Aggiornamento): modalita' standalone da menu; la griglia e' editabile, F3 conferma e riscrive le testate su COGLISPT.
  • "S" (Selezione): attiva quando richiamato da altro programma (w-dc-called = "S"); Invio su una riga restituisce tm-r-listino in cogf6a-out-cod e termina.

Flusso principale

  1. Inizializzazione (apri): apertura file, verifica abilitazione, lettura parametri di chiamata, costruzione menu contestuale griglia (build-main-popup-grid-det), preparazione griglia (z-prepara-tm-grid, x-trova-col-num-grid-det).
  2. Reset e ordinamento (a4): reset della maschera, impostazione ordinamento di default per codice listino, caricamento eventuale filtro predefinito (z-imppredf-carica-default).
  3. Caricamento transito (a-leggi-dati / z-grid-det-crea-transito): scansione di COGLISPT (saltando i record con lspt-val valorizzato, cioe' cancellati logicamente) e riempimento del file di transito t-grid-det (una riga per listino). Per ciascuna testata verifica su COGLISPD se esistono righe di dettaglio collegate: in tal caso i criteri non sono piu' modificabili (t-gor-r-fl-mod = "N").
  4. Gestione griglia (a-grid): accept della griglia paginata; aggiunta riga (Ctrl-A, con default sui flag), eliminazione logica (Ctrl-E, via flag fl-agg = "C"), personalizzazione colonne (Shift-F4 / GRIDADMN), export Excel (Shift-F5), conferma (F3).
  5. Aggiornamento (b-aggiorna): scansione del transito t-grid-det; per ogni riga non vuota legge/crea il record COGLISPT (rd-coglispt / wr-coglispt) e ne riscrive (rwr-coglispt) descrizione, priorita', attivo, criteri 1-5 e i flag di gestione prezzo/IVA/sconti 1-9.

Validazione criteri

Ciascuna colonna criterio (x-controlla-tm-r-crite-1..5) e' validata contro l'elenco dei criteri ammessi definiti in costanti-listino.cpy (CLIFAT, CLISPD, CLILIS, CLIZON, CLITIP, GRPAZ, BRAND, DIVISA, ARTCOD, ARTCLA, ARTCMA, ARTRAG). Il criterio 1 e' obbligatorio; i criteri 2-5 possono essere vuoti. La duplicazione di codice listino e' impedita (x-controlla-tm-r-listino conta le occorrenze nel transito).


Tabelle e file

File logico Prefisso Accesso Descrizione
FEURTAB - Input Tabella di sistema (feurtab.fd)
COGLISPT lspt- Indexed, dynamic Testata listini parametrici: codice, descrizione, priorita', attivo, criteri 1-5, flag gestione prezzo/IVA/sconti 1-9, flag cancellazione logica lspt-val
COGLISPD lspd- Indexed, dynamic Dettaglio listini parametrici: letto (in z-grid-det-riempi-campi-t-gor) per verificare se una testata ha righe collegate e bloccare la modifica dei criteri
t-grid-det t-gor-r- I-O (temp) File di transito indicizzato che raccoglie le testate per la griglia editabile; nome univoco per operatore, creato all'ingresso e cancellato in uscita

Il file t-grid-det e' istanziato da cogtrans.k03 (REPLACING) - e' il canale standard griglia↔transito usato dai programmi con griglia editabile.


COPY incluse

Working-Storage

cogf6a.wrk, cogf6a.imppredf-wrk, k-tipi-cogtabel.cpy, costanti-listino.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, wgrid.cpy, utilgdad.cpy, utilu20.cpy, utilcogf6e.cpy, utilncnf.cpy, utilimppredf.cpy

File section

feurtab.fd, cogfiles.cpy, cogf6a.fd

Linkage

wcont.cpy, wcont1.cpy, utilcogf6a.cpy (interfaccia di chiamata: cogf6a-called, cogf6a-caller, cogf6a-out-cod)

Screen / Procedure Division

cogf6a-01.scr, cogf6a.decla, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogf6a.prc, cogf6a.imppredf


CALL a sottoprogrammi

Programma Scopo
GRIDADMN Gestione griglia (preparazione, personalizzazione, add/modify record)
COGF6E Help/ricerca del tipo criterio (F8 sulle colonne criterio 1-5, via utilcogf6e.cpy)
W$MENU Attivazione menu contestuale (pop-up) sulla griglia (right-click)

Non chiama RNEWCONF: il paragrafo x99-confi e' presente ma commentato (nessuna configurazione letta).


Configurazioni RNEWCONF

Nessuna. Il programma non legge configurazioni (il codice di x99-confi e' commentato).


Note tecniche

  • Griglia unica editabile: a differenza dei programmi a maschera + griglia, qui non c'e' una sezione filtri di accept a monte; tutte le testate sono presentate direttamente in una griglia editabile con validazione per cella (paragrafi z-grid-det-*-be-ep che bloccano l'editing quando la cella non e' modificabile).
  • Cancellazione logica: le testate non vengono mai cancellate fisicamente; la cancellazione e' segnalata dal flag lspt-val (colonna val/fl-agg = "C" in griglia), e i record cancellati sono saltati alla successiva rilettura.
  • Blocco criteri per testate con dettaglio: se una testata ha gia' righe di dettaglio su COGLISPD, i suoi criteri non sono piu' modificabili (fl-mod = "N"), per non invalidare le righe esistenti.
  • Modulo di selezione: la modalita' "S" (richiamo da COGF6B) restituisce il solo codice listino; il redefine di linkage util-cogf6a e' l'interfaccia standard.
  • Filtri predefiniti: usa il meccanismo imppredf (import parametri predefiniti) per caricare/salvare filtri, in comune con altri programmi a griglia.
  • Dimensione sorgente: circa 1.793 righe (cbl/cogf6a.cbl).