Vai al contenuto

COGM90 - Gestione Prezzi (Listino Vendita)

Sorgente: cbl/cogm90.cbl | Program-ID: COGM90 | Tipo: Programma interattivo GUI (standalone / richiamabile)

Menu: Magazzino > Archivi & Tabelle > Listino Vendita > Gestione Prezzi


Scopo

Gestione dei prezzi di listino di vendita per articolo. Selezionato un prodotto e un tipo di listino ("L" generale, "C" cliente, "F" fornitore), il programma carica in una griglia le righe di listino datate (una riga per data di decorrenza) con una colonna per ciascun listino configurato; l'operatore inserisce, modifica o cancella prezzi e date e conferma l'aggiornamento su COGLISNW. Supporta la gestione di prezzi per fasce di quantita' (delegata a COGF29), lo "zero logico" (prezzo azzerato ma significativo) e, per listino cliente/fornitore, l'aggiornamento contestuale della descrizione merce cliente (COGMERCL) e della testata listino (COGTESLS). Il comportamento e' pilotato da alcune chiavi di configurazione RNEWCONF (colore riga corrente, area APP, listino parametrico, listino unico). Se e' attivo il listino parametrico il programma avvisa e termina, rinviando alle funzioni dedicate. Puo' essere lanciato in modo autonomo o richiamato da altri programmi (es. COGV06 o con parametro COGM90-CALLED) posizionandosi direttamente su merce/tipo/cliente.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB Indexed Input Tabella nomi file
COGTABEL Indexed Input Tabella generica (letta via RNEWCONF/readconf per il numero fasce entrate, tipo 70)
COGMERCI Indexed I-O Anagrafica merci/articoli (aggiornamento data ultima modifica mer-data-agg)
COGGEANA Indexed Input Anagrafica clienti/fornitori (nome intestatario listino)
COGMERAP Indexed (external) Input Anagrafica merci aggiuntiva (raggruppamento per export GAPI/CRM)
COGTESLS Indexed I-O Testata listini (elenco listini configurati, num. fasce; creata per cliente/fornitore se assente)
COGMERCL Indexed I-O Descrizione merce particolare per cliente
COGLISNW Indexed I-O Righe di listino (prezzi datati per merce/tipo/rif/fascia); accesso anche per chiave secondaria k02

Copybook utilizzate

Copybook Descrizione
feurtab.fd SELECT tabella nomi file
cogfiles.cpy Record FEURTAB
cogtabel.fd SELECT/FD COGTABEL
cogmerci.fd SELECT/FD COGMERCI
coggeana.fd SELECT/FD COGGEANA
cogmerap.fd SELECT/FD COGMERAP
cogtesls.fd SELECT/FD COGTESLS
cogmercl.fd SELECT/FD COGMERCL
coglisnw.fd SELECT/FD COGLISNW
cogm90.wrk Working storage specifico programma
k-personal.cpy Costanti personalizzazioni azienda
wstato.cpy Stato I/O
wgrave.cpy Gestione errori gravi
wgrid.cpy Gestione griglia
wopenf.cpy Apertura file
wnscr.cpy Dati schermo
cogazien.cpy Dati azienda
utilgdad.cpy Linkage gestore griglia GRIDADMN
utildlg.cpy Linkage DIALOGS
utilcogs0c.cpy Utility COGS0C
utilf29.cpy Linkage COGF29 (fasce quantita')
utils52.cpy Linkage COGS52 (date)
utils65.cpy Linkage COGS65 (ricerca cliente/fornitore)
utils68.cpy Linkage COGS68 (ricerca merce)
utilu10.cpy Linkage COGU10 (importi/prezzi)
utilw96.cpy Linkage WIN096
utilncnf.cpy Linkage RNEWCONF (lettura configurazioni)
utilrcnf.cpy Linkage readconf
utilcrms06.cpy Linkage CRMS06
utilcrms09.cpy Linkage CRMS09
wcont.cpy Linkage stringhe comuni
utilcogm90.cpy Linkage parametri chiamata COGM90
wcont1.cpy Linkage area utente 2
stato.cpy / stato1.cpy Paragrafi controllo stato I/O
winmsg.cpy Messaggi a video
grave.cpy Paragrafi errori gravi
opengen.cpy Paragrafi apertura file generici
mmmask.cpy Paragrafi init/exit programma
utilgrid.cpy Paragrafi utility griglia
sendw96.cpy Paragrafo send-w96 (chiamata WIN096)
readconf.cpy Paragrafi lettura configurazioni
coglisnw.k02 Accesso COGLISNW per chiave secondaria k02
cogm90.decla / cogm90.prc Declaratives e paragrafi generati da Screens
cogm90-01.scr Screen section

Logica di elaborazione

  1. Inizializzazione: apri carica lingua, apre i file, legge i dati azienda, ricava la divisa di conto tramite COGU10W ("GetDivisaConto") e legge le configurazioni via x99-confi (RNEWCONF): colore riga corrente, attiva-areaapp, gestione-listino-parametrico, listino-unico. Imposta i tasti funzione disponibili (F3 aggiorna/conferma, F8 aiuto, F9 ricerca avanzata, Shift+F4 griglia, Ctrl+A aggiungi, Ctrl+E elimina) e crea i pulsanti custom "Fascie Qta.(F7)" e "Zero Logico(F9)".
  2. Blocco listino parametrico: se listino-unico/gestione-listino-parametrico risulta "S" (tm-cfg-list-parametrico), viene mostrato un avviso e il programma termina (le funzioni sono gestite altrove).
  3. Accept intestazione: sequenza di campi con relativi controlli (x-controlla-*):
  4. Prodotto (a-tm-merce, ricerca merce via COGS68W);
  5. Tipo listino (a-tm-tip-lis, combo via COGS60W): validi "L", "C" e, solo se listino-unico = "S", "F"; per "C"/"F" l'etichetta del campo riferimento diventa "Cliente"/"Fornitore";
  6. Cliente/Fornitore (a-tm-rif, ricerca via COGS65W e popup WIN096 su F8); il nome viene letto da COGGEANA con ana-tipo = tm-tip-lis;
  7. Descrizione merce cliente (a-tm-desc, letta/salvata su COGMERCL, solo per listino cliente). Quando il programma e' richiamato (COGV06 o COGM90-CALLED) i campi vengono precompilati e parte del percorso di accept viene saltato.
  8. Preparazione listini (a1-prepara): per il tipo "L" scandisce COGTESLS caricando i listini "L" visibili in gestione (tls-vis-gestione diverso da "N"), fino a k-num-listini (65) colonne; per "C"/"F" usa un'unica colonna intestata al riferimento.
  9. Caricamento righe (a2-carica): scandisce COGLISNW per la merce (chiave 2), scartando le righe a prezzo zero non "zero logico" e quelle cancellate logicamente (lnw-val = "C"); raggruppa i prezzi per data di decorrenza costruendo la tabella tm-tab (max 900 righe), colonna per listino e fascia (tmrq-*). Con listino-unico attivo per "C"/"F" gestisce anche la data fine (tmr-data-fine).
  10. Costruzione griglia (z-prepara-tm-grid, z-costruisci-grid, x12-set-int, x-riempi-grid-record): la griglia (e-tm-tab) e' pilotata dal gestore esterno GRIDADMN; le colonne visibili/intestazioni dipendono dai listini caricati e dalla configurazione (colonna "Data fine" solo per listino unico cliente/fornitore). I prezzi sono formattati con COGU10W; la riga corrente ("Corrente"/data 99999999) e' evidenziata col colore configurato.
  11. Interazione su griglia (a-accept-grid / z-99-accept-grid):
  12. modifica in cella di data (COGS52W "EditToData" + x-controlla-tmr-data via AZVALIDA) o prezzo (z-u10-tmr-prezzo via COGU10W);
  13. F7: gestione prezzi per fasce di quantita' (COGF29); con area APP attiva non e' piu' bloccata (PCASE-2614);
  14. F9: forzatura/rimozione "zero logico" sulla cella corrente;
  15. Ctrl+A / Ctrl+E: aggiunta/eliminazione riga (con controllo abilitazioni w-abi-ins/w-abi-del);
  16. Shift+F4: amministrazione griglia (GRIDADMN/GRIDADMN via GRIDADMN), abilitata solo agli operatori 777/888.
  17. Conferma e aggiornamento (c-aggiorna): su F3 con conferma, per ciascun listino cancella le righe esistenti non cancellate logicamente (c1-cancella) e reinserisce le righe significative per data e fascia (c2-inserisci, numero fasce da COGTESLS per "L" o da COGTABEL tipo 70 per cliente/fornitore); in caso di data doppia (wr invalido) tenta il riaggiornamento del record esistente segnalando l'anomalia. Per "C"/"F" aggiorna anche COGMERCL (descrizione, solo "C") e crea/legge la testata COGTESLS. Per azienda "BO" propone il calcolo valore distinta base (DIALOGS + COGL03); per personalizzazione Seals aggiorna la scheda CRM (CRMS09/CRMS06); infine aggiorna la data di modifica su COGMERCI per il web/app.
  18. Uscita (fine/z-chiudi): chiude i file, esegue cancel dei sottoprogrammi dinamici e chiude la finestra.

Chiamate a sottoprogrammi

Programma Scopo
COGU10W Gestione/edit importi e prezzi di vendita, e recupero divisa di conto ("GetDivisaConto")
GRIDADMN Gestore esterno della griglia di dettaglio (prepara, svuota, add/modify record, amministrazione)
COGS52W Editing e validazione date di cella (EditToData)
COGS60W Ricerca/selezione tipo listino (combo)
COGS65W Ricerca e selezione cliente/fornitore
COGS68W Ricerca e selezione merce/articolo
WIN096 Popup ricerca riferimento listino (tramite send-w96)
AZVALIDA.COB Validazione data listino/data fine
COGF29 Gestione prezzi per fasce di quantita'
RNEWCONF Lettura chiavi di configurazione
READLNG Lettura testi/lingua (paragrafi generati)
CRMS09 Ricerca/creazione scheda CRM articolo (personalizzazione Seals)
CRMS06 Scrittura informazione su scheda CRM (flag articolo pronto, Seals)
DIALOGS Dialogo di fine elaborazione (azienda "BO")
COGL03 Calcolo valore distinta base (azienda "BO", su F5)

Storico modifiche

Il sorgente riporta modifiche storiche marcate per data (es. 041125 introduzione del "listino unico" con tipo "F" fornitore e gestione data fine listino; 080119 configurazioni area APP e listino parametrico; 300119 gestione righe cancellate logicamente lnw-val = "C"; 050422 PCASE-2614 sblocco fasce con APP; 151021 PBUG-1127 amministrazione griglia riservata agli operatori 777/888; 020123 PBUG-1497). Non sono presenti marcatori *>DOC: nel sorgente.