COGF60 -- Definizione Listini¶
Sorgente: cbl/cogf60.cbl | Tipo: Interattivo | Program-ID: COGF60
Menu:
- Magazzino > Archivi & Tabelle > Listino Vendita > Definizione Listini
Scopo¶
Programma interattivo per la definizione e gestione dei listini di vendita. Ogni listino ha un tipo (vendita "V", acquisto "A", ecc.), un codice, una descrizione, un tipo di intervallo temporale, una divisa, un numero di fasce prezzo (0-5) e un flag gestione sconti. E' possibile associare un cliente di riferimento e un codice host. Utilizza una griglia per visualizzare l'elenco dei listini e una sezione di dettaglio per la modifica.
E' inoltre possibile marcare una testata listino come cancellata logicamente: il record COGTESLS resta in archivio ma con tls-val = "C". La cancellazione logica viene propagata verso il portale/APP dall'export Areagate (SWN107).
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Indexed | Input | Tabella nomi file |
| COGTESLS | Indexed | I-O | Testate listini (chiave tls-chia1 = tipo + riferimento). Campo tls-val = "C" per cancellazione logica |
| COGLISNW | Indexed | I-O | Righe prezzo listino (chiave coglisnw.k03); cancellate alla rimozione fisica di una testata |
| cogf60.select/.fd | Screen-managed | Vari | File gestiti dalla screen (COGTABEL tipo 56, COGGEANA, ecc.) |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Amministrazione griglia (preparazione, add/modify/delete record) |
| COGE22 | Gestione IVA |
| COGU10W | Utility divisa (versione window) |
| COGS65W | Ricerca anagrafica (cliente di riferimento) |
| RNEWCONF | Lettura configurazione (commentata nel sorgente) |
Copybook principali¶
cogf60.wrk,cogf60.select,cogf60.fd(screen-managed)k-personal.cpy(personalizzazioni)utilcogs0c.cpy(utility selezione)wstato.cpy,wgrave.cpy,wopenf.cpy,wnscr.cpy,cogazien.cpywgrid.cpy,utilgdad.cpy(griglia)utils52.cpy(date),utils65.cpy(anagrafica)utilu10.cpy,k-u10.cpy(divise)stato1.cpy,stato.cpy,winmsg.cpy,grave.cpy,opengen.cpy,mmmask.cpy,utilgrid.cpy
Struttura del programma¶
Flusso principale¶
- apri: inizializzazione (
z-99-init-program), lettura azienda, apertura file. Tasti funzione: Invio (modifica), F3 (modifica/selezione), F8 (aiuto), Shift+F4 (griglia), CTA (aggiungi), CTE (elimina). - a4: inizializzazione maschera, caricamento listini dalla tabella COGTABEL (tipo 56 =
k-euta-tipo). Per ogni record, lettura dati listino: tipo, codice, descrizione, intervallo, divisa, fasce, flag sconti, cliente riferimento, codice host. - Costruzione griglia: popolamento griglia tramite GRIDADMN con tutti i listini trovati.
- Gestione griglia: navigazione e selezione. Invio per modifica dettaglio. CTA per aggiunta. CTE per eliminazione.
- Dettaglio: accept dei campi del listino selezionato. Il numero di fasce e' gestito tramite combo-box con opzioni condizionate (0, 2, 3, 4 o 5 fasce). La divisa viene validata. Il cliente di riferimento viene cercato tramite COGS65W. L'ultimo campo della riga di dettaglio e' "Cancellato?" (paragrafo
a-tm-val, vedi sotto). - Conferma: write/rewrite del record COGTESLS con i nuovi dati (incluso
tls-val). - fine / z-chiudi: chiusura file e uscita.
Cancellazione logica della testata (campo "Cancellato?")¶
Una testata listino puo' essere marcata come cancellata logicamente senza essere rimossa dall'archivio: il record COGTESLS resta presente ma con tls-val = "C". Questo e' distinto dalla cancellazione fisica (CTRL+E, paragrafo c-cancella -> del-cogtesls con eventuale rimozione delle righe COGLISNW).
Punti di gestione nel sorgente (marcatori 230626):
- Caricamento (paragrafo
a10-a10-loop): per ogni testata lettamove tls-val to tm-val (i). - Accept (paragrafo
a-tm-val, "cancellato?"): combo-box S/N gestito daz-s95-tm-val, con controllix-controlla-tm-val/x-ctr-color-tm-val(richiamato anche dax-imposta-conferma). La navigazione tra campi della riga di dettaglio e' stata aggiornata: il flusso passa daa-tm-codice-host->a-tm-val->a-riga-dettaglio-fine. Il campo e' raggiungibile anche col mouse (x-test-mouse, control-idk-id-tm-val). - Salvataggio (paragrafo
a-riga-dettaglio-fine):move tm-val (i) to tls-valprima diwr-cogtesls/rwr-cogtesls. - Griglia (paragrafo
x-riempi-grid-record): setm-val (k) = "C"la colonnagrd-valmostra "Cancellato", altrimenti resta vuota.
La cancellazione logica viene propagata verso il DB di frontiera ARPLISTI/Areagate da SWN107, che in fase di esportazione completa cancella dal portale le righe delle testate con tls-val = "C" e propaga tls-val = "C" sul campo rlis-val delle righe di listino esportate.
Variabili principali¶
| Variabile | Tipo | Descrizione |
|---|---|---|
| k-max-ele-tab | 78 | 900 -- max elementi griglia |
| k-euta-tipo | 78 | 56 -- tipo tabella COGTABEL per listini |
| num-fascie | PIC 9(02) | Numero fasce prezzo attive |
| tm-tab | Occurs 900 | Tabella listini (tipo, cod, des, int, div, fascie, fl-sco, cli-rif, codice-host) |
| tm-tip | PIC X(01) | Tipo listino ("V" vendita, "A" acquisto) |
| tm-cod | PIC 9(05) | Codice listino |
| tm-div | PIC X(02) | Divisa del listino |
| tm-fascie | PIC 9(01) | Numero di fasce prezzo (0-5) |
| tm-fl-sco | PIC X(01) | Flag gestione sconti |
| tm-cli-rif-cod | PIC 9(05) | Codice cliente di riferimento |
| tm-val | PIC X(01) | Flag cancellazione logica testata ("C" = cancellato); mappa su tls-val |
| grd-val | PIC X(10) | Colonna griglia "Cancellato?" ("Cancellato" se tm-val = "C", altrimenti vuoto) |
| tab-opt-tm-fascie-0..5 | Group | Opzioni combo-box per il numero di fasce |
| grid-record | Group | Record interscambio griglia |
| w-dc-called | PIC X(01) | "S" se richiamato in modalita' selezione |
Storico modifiche¶
| Data | Descrizione |
|---|---|
| 2026-06-24 | TASK-5358: cancellazione logica testate listini. Aggiunto campo tm-val/colonna grd-val "Cancellato?", paragrafo a-tm-val con controlli x-controlla-tm-val/x-ctr-color-tm-val; mapping tls-val <-> tm-val in caricamento e salvataggio COGTESLS; navigazione a-tm-codice-host -> a-tm-val -> fine riga. La cancellazione logica e' propagata da SWN107. |
Documentazione tecnica -- 2026-04-29