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 restituiscetm-r-listinoincogf6a-out-code termina.
Flusso principale¶
- 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). - Reset e ordinamento (
a4): reset della maschera, impostazione ordinamento di default per codice listino, caricamento eventuale filtro predefinito (z-imppredf-carica-default). - Caricamento transito (
a-leggi-dati/z-grid-det-crea-transito): scansione di COGLISPT (saltando i record conlspt-valvalorizzato, cioe' cancellati logicamente) e riempimento del file di transitot-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"). - Gestione griglia (
a-grid): accept della griglia paginata; aggiunta riga (Ctrl-A, con default sui flag), eliminazione logica (Ctrl-E, via flagfl-agg = "C"), personalizzazione colonne (Shift-F4 / GRIDADMN), export Excel (Shift-F5), conferma (F3). - Aggiornamento (
b-aggiorna): scansione del transitot-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-epche 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(colonnaval/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-cogf6ae' 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).