Vai al contenuto

COGM92 - Aggiornamento Generale Prezzi

Intestazione

Campo Valore
Programma COGM92
Titolo Aggiornamento generali listini
Posizione menu Magazzino > Controllo Prezzi > Aggiornamento Generale

Scopo e logica generale

COGM92 e' un programma interattivo per l'aggiornamento massivo dei prezzi di listino. Applica un ricarico (o sconto) percentuale a uno o piu' listini, partendo dal prezzo corrente del listino stesso. Supporta filtri per intervallo merci, classe articolo, reparto, articoli da escludere e modalita' di arrotondamento.

L'elaborazione utilizza il modulo COGU16W per la scansione delle merci e il sistema di listini integrato (COGY32/COGY33 per selezione globale, COGF11 per reparto).


Flusso principale

  1. Inizializzazione (apri): lettura azienda, apertura file, lettura configurazione RNEWCONF (x99-confi), data di sistema, lettura divisa conto tramite COGU10W, inizializzazione COGU16W, configurazione tasti funzione (F1 config, F3 conferma, F5 sel. multipla, F8, F9), preparazione controlli merce (COGS68)
  2. Accept parametri (a4 / a-tm-tip-aggiorna / a-tm-tip-lis / a-tm-rif / a-tm-cli / a-tm-reparto / a-tm-ord-mer / a-tm-da-merce / a-tm-a-merce / a-tm-art-da-escludere / a-tm-escl-list-gen / a-tm-tip-classe / a-tm-base / a-tm-data / a-tm-ricarico / a-tm-arrot-euro / a-tm-type-arr):
  3. Tipo aggiornamento (tm-tip-aggiorna): L=listino, T=globale (COGY32)
  4. Tipo listino (tm-tip-lis): L=listino, C=cliente, ecc.
  5. Riferimento listino (tm-rif): con ricerca COGW96 (F8)
  6. Cliente (tm-cli): con ricerca COGS65 (condizionale)
  7. Reparto (tm-reparto): con ricerca COGF11 (F8); se vuoto, COGY33 (selezione reparti)
  8. Ordinamento merci (tm-ord-mer): criterio scansione
  9. Da merce / A merce (tm-da-merce / tm-a-merce): con ricerca COGS68
  10. Articoli da escludere (tm-art-da-escludere): S/N, se S chiama COGU05
  11. Esclusione listino generale (tm-escl-list-gen): condizionale su configurazione
  12. Classe articoli (tm-tip-classe): A/B/C/T(tutti)
  13. Base di calcolo (tm-base): U=ultimo prezzo, ecc.
  14. Data (tm-data): data validita' nuovo prezzo, con calendario COGS52W
  15. Ricarico % (tm-ricarico): percentuale con segno (positiva = aumento, negativa = riduzione)
  16. Arrotondamento (tm-arrot-euro): regola di arrotondamento
  17. Tipo arrotondamento (tm-type-arr): E=eccesso, D=difetto
  18. Conferma (a-richiesta-conferma): validazione globale, dialog di conferma
  19. Elaborazione:
  20. c-cerca-listini (thru ex-c): ricerca dei listini da aggiornare in base ai parametri
  21. b-elabora (thru ex-b): inizializzazione COGU16W, scansione merci
  22. Loop elaborazione (b10-loop):
  23. Lettura merce tramite COGU16W ("Leggi")
  24. Filtro per classe (tm-tip-classe)
  25. Filtro per reparto (tm-reparto): lettura COGMERAP, esclusione se non corrisponde; se reparto vuoto, esclusione dei reparti selezionati in COGY33
  26. Filtro articoli da escludere: confronto con lista COGU05
  27. Filtro listino generale: se configurato, esclude merci con COGGENMF
  28. Per ogni merce: lettura listino corrente, applicazione ricarico, arrotondamento, scrittura nuovo prezzo
  29. Chiusura (fine): chiusura file, cancel COGU16W/COGU10W, z-99-exit-program

File e tabelle acceduti

File logico Record Modalita' Uso
COGTABEL euta-rec Input Tabelle generiche
COGMERCI mer-rec Input Anagrafica merci
COGMERAP map-rec Input Associazione merce-reparto
COGGEANA ana-rec Input Anagrafica generale (clienti)
FEURTAB feurtab Input Tabella generica Eurosystem
+ file da cogm92.select vari I-O File listini prezzi

Tabella listini

tab-listini: array dinamico fino a 2000 elementi (n-tl), con: - tl-tip (1): tipo listino - tl-rif (5): riferimento listino - tl-div (2): divisa listino

Tabella fasce

tab-fascie: 5 elementi, flag tf-fascia-ok per abilitazione fascia quantita'.


Copybook inclusi

Screen Designer

Copybook Contenuto
cogm92-01.scr Maschera principale
cogm92.select SELECT dei file
cogm92.fd FD dei file
cogm92.wrk Working storage maschera
cogm92.decla Declaratives

Strutture dati e utility

Copybook Contenuto
COGFILES.CPY FD feurtab
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy Standard working storage
cogazien.cpy Dati azienda
utilncnf.cpy Parametri RNEWCONF
utilcogs0c.cpy Utility COGS0C
utilcogl61.cpy Interfaccia COGL61
utils52.cpy, utils65.cpy, utils68.cpy Utility varie
utilu10.cpy Gestione importi e divise
utilu20.cpy Utility U20 (accept numerico)
utily32.cpy, utily33.cpy Interfaccia COGY32/COGY33 (selezione listini/reparti)
utilu05.cpy Interfaccia COGU05 (articoli da escludere)
utilw96.cpy Interfaccia COGW96 (ricerca listino)
utilu16.cpy Interfaccia COGU16W (scansione merci)
utilf11.cpy Interfaccia COGF11 (ricerca reparto)
k-u10.cpy, k-personal.cpy Costanti
wcont.cpy, wcont1.cpy Linkage section

Programmi chiamati (CALL)

Programma Scopo
COGS52W Calendario per selezione date
COGS65 Ricerca e selezione anagrafica (cliente)
COGS68 Ricerca merce
COGU10W Gestione importi, divise, formattazione
COGU16W Scansione merci (Init-Start, Set-Estremi, Leggi)
COGU20 Accept numerico (percentuale ricarico, arrotondamento)
COGY32 Selezione globale listini (se tipo aggiornamento = "T")
COGY33 Selezione reparti (se reparto vuoto)
COGU05 Selezione articoli da escludere
COGW96 Ricerca listino (F8 su tm-rif)
COGF11 Ricerca reparto (F8 su tm-reparto)
RNEWCONF Lettura/modifica configurazione

Configurazione (RNEWCONF)

Parametro Campo Utilizzo
Escludi listino generale tm-cfg-escludi-listgen Se "S": esclude le merci con record in COGGENMF dal ricalcolo

Logica di business

Calcolo del nuovo prezzo

Per ogni merce e listino: 1. Legge il prezzo corrente dal listino 2. Applica il ricarico: nuovo = corrente * (1 + tm-ricarico / 100) 3. Applica l'arrotondamento in base a tm-arrot-euro e tm-type-arr (E=eccesso, D=difetto) 4. Scrive il nuovo prezzo con data di validita' tm-data

Filtri di esclusione

L'elaborazione applica i seguenti filtri in cascata: - Classe articolo: se tm-tip-classe <> "T", scarta le merci con classe diversa - Reparto: se specificato, scarta le merci non associate; se vuoto e COGY33 attivo, scarta le merci dei reparti selezionati - Articoli esclusi: se tm-art-da-escludere = "S", confronta con lista COGU05 (fino a 200 merci) - Listino generale: se configurato, verifica presenza in COGGENMF ed esclude

Scansione merci

La scansione delle merci e' delegata a COGU16W che gestisce l'ordinamento (u16-fl-sel) e gli estremi da/a merce. Le operazioni sono: - "Init-Start": inizializzazione - "Set-Estremi": impostazione range merci - "Leggi": lettura prossima merce

Contatori

  • nletti: merci lette
  • nscritti: merci aggiornate

Variabili di stato principali

Variabile Descrizione
tm-tip-aggiorna Tipo aggiornamento: L=listino, T=globale
tm-tip-lis Tipo listino: L=listino, C=cliente
tm-rif Riferimento listino
tm-da-merce / tm-a-merce Intervallo merci
tm-tip-classe Classe articoli: A/B/C/T
tm-reparto Codice reparto (o vuoto per tutti)
tm-ricarico Percentuale di ricarico (con segno)
tm-arrot-euro Regola di arrotondamento
tm-type-arr Tipo arrotondamento: E=eccesso, D=difetto
tm-base Base di calcolo: U=ultimo prezzo
tm-data Data validita' nuovo prezzo
tm-art-da-escludere Flag esclusione articoli (S/N)
tm-escl-list-gen Flag esclusione listino generale (S/N)
tab-listini (n-tl) Array dei listini da aggiornare
nletti / nscritti Contatori merci lette/aggiornate
w-currency-conto Divisa di riferimento