COGR39 - Aggiornamento Prezzi su Bolle¶
Sorgente: cbl/cogr39.cbl | Program-ID: COGR39 | Tipo: Interattivo batch (maschera grafica Windows + elaborazione)
Menu: Magazzino > Archivi & Tabelle > Varie > Modifica prezzi su bolle
Scopo¶
Ricalcola i prezzi sulle righe dei movimenti di magazzino (COGMOMAG) collegati a bolle (COGTESBO) in un periodo selezionato, utilizzando i prezzi del listino indicato. Aggiorna mag-prezzo, mag-pre-no-sco e mag-valore su ogni riga di movimento.
Tabelle/File utilizzati¶
| Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Tabella | Input | Tabella generale Eurosystem |
| COGTESBO | Tabella | Input | Testata bolle. Scansione per chiave 2 (data: tes-data). Filtro: tes-mag = magazzino principale, tes-tipocf = "C", tes-flagfat = spazi |
| COGMOMAG | Tabella | I-O | Movimenti magazzino. Scansione per chiave primaria (mag-testa). Aggiornati: mag-prezzo, mag-pre-no-sco, mag-valore |
| COGTABEL | Tabella | Input | Tabelle di sistema (tipo 15 = causali; filtro euta-cb-fl-eu = "U" e euta-cb-con-fat = "SI") |
| COGMERCI | Tabella | Input | Anagrafica merci (per validazione range merce) |
| COGGEANA | Tabella | Input | Anagrafica generale (per verificare ana-riflistino) |
| COGTESLS | Tabella | Input | Testata listini (per validazione listino) |
Logica di elaborazione¶
Parametri di input (tab-maschera)¶
| Campo | Variabile | Descrizione |
|---|---|---|
| Da data | tm-da-data |
Data inizio periodo |
| A data | tm-a-data |
Data fine periodo |
| Ordinamento merce | tm-ord-mer |
Fisso "C" (per codice) |
| Da merce | tm-da-merce |
Range merce iniziale |
| A merce | tm-a-merce |
Range merce finale |
| Listino | tm-lis |
Numero listino (1-99) |
| Cliente | tm-ana-cod |
Codice cliente (0 = tutti) |
Flusso di elaborazione¶
-
Scansione COGTESBO (
elabora): scandisce per data (tes-data) datm-da-dataatm-a-data. -
Filtro testata (
filtra-cogtesbo): tes-magdeve essere uguale al magazzino principale (az-main-mag)tes-tipocfdeve essere "C" (cliente)- Se specificato un cliente,
tes-nonnodeve corrispondere - Il cliente deve avere
ana-riflistino=tm-lis - La causale (da COGTABEL tipo 15) deve avere
euta-cb-fl-eu= "U" (uscita) eeuta-cb-con-fat= "SI" -
La bolla non deve essere gia' fatturata (
tes-flagfat= spazi) -
Aggiornamento righe (
tratta-cogmomag): per ogni riga COGMOMAG della bolla: - Filtra per range merce (
tm-da-merce/tm-a-merce) - Chiama COGS01 per ottenere il prezzo dal listino (
s01-listino=tm-lis,s01-fl-sco= "R",s01-currency=mag-currency) - Se
s01-prezzo<> 0: aggiornamag-prezzoemag-pre-no-scocons01-prezzo, ricalcolamag-valore=mag-qtamagaz*mag-prezzo, arrotonda tramite COGU10, eseguerwr-cogmomag
Chiamate a sottoprogrammi¶
| Programma | Funzione |
|---|---|
| COGS01 | Ricerca prezzo da listino (con parametri: listino, merce, data, cliente, fascia, divisa) |
COGU10 (via z-u10-*) |
Arrotondamento valori monetari |
COGU16W (via z-u16) |
Gestione selezione ordinata merci con range e ordinamento |
COGS52 (via z-s52-*) |
Accept date con calendario |
COGS60 (via z-s60-*) |
Accept combo box |
COGS65 (via z-s65-*) |
Accept anagrafica (clienti/fornitori) |
COGS68W (via z-s68-*) |
Accept merce con aiuto |
WIN096 (via send-w96) |
Finestra ricerca listini |
COPY utilizzate¶
Working-storage¶
| Copybook | Descrizione |
|---|---|
cogr39.wrk |
Working storage generata da Screens |
k-u10.cpy |
Costanti divisa/arrotondamento |
wrk-u10.cpy |
Working storage COGU10 |
k-personal.cpy |
Costanti personalizzazione |
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy |
Working storage comuni |
utilu05.cpy |
Utility generica |
utilu10.cpy |
Interfaccia COGU10 |
utilu12.cpy |
Utility generica |
utilu16.cpy |
Interfaccia COGU16W |
utilu20.cpy |
Utility numerica |
utilw96.cpy |
Interfaccia WIN096 |
utils68.cpy |
Interfaccia COGS68W |
utils52.cpy |
Interfaccia COGS52 |
utils65.cpy |
Interfaccia COGS65 |
cogazien.cpy |
Dati azienda |
Linkage¶
| Copybook | Descrizione |
|---|---|
wcont.cpy |
Area di comunicazione principale |
utils01.cpy |
Interfaccia COGS01 |
wcont1.cpy |
Area di comunicazione estesa |
Note¶
- L'ordinamento merci e' fisso per codice (
tm-ord-mer= "C"); la combo-box e' predisposta ma la validazione accetta solo "C". - Il programma chiama COGS01 con
s01-open= "O" es01-penultimo= "N" per mantenere i file aperti durante l'elaborazione, e li chiude esplicitamente inz-chiudi. - La personalizzazione "FF" (Ferranti) contiene una logica speciale nel listino clienti (usata da COGP29, non da questo programma).