Vai al contenuto

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.cpy
  • wgrid.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

  1. 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).
  2. 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.
  3. Costruzione griglia: popolamento griglia tramite GRIDADMN con tutti i listini trovati.
  4. Gestione griglia: navigazione e selezione. Invio per modifica dettaglio. CTA per aggiunta. CTE per eliminazione.
  5. 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).
  6. Conferma: write/rewrite del record COGTESLS con i nuovi dati (incluso tls-val).
  7. 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 letta move tls-val to tm-val (i).
  • Accept (paragrafo a-tm-val, "cancellato?"): combo-box S/N gestito da z-s95-tm-val, con controlli x-controlla-tm-val / x-ctr-color-tm-val (richiamato anche da x-imposta-conferma). La navigazione tra campi della riga di dettaglio e' stata aggiornata: il flusso passa da a-tm-codice-host -> a-tm-val -> a-riga-dettaglio-fine. Il campo e' raggiungibile anche col mouse (x-test-mouse, control-id k-id-tm-val).
  • Salvataggio (paragrafo a-riga-dettaglio-fine): move tm-val (i) to tls-val prima di wr-cogtesls / rwr-cogtesls.
  • Griglia (paragrafo x-riempi-grid-record): se tm-val (k) = "C" la colonna grd-val mostra "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