COGL30 - Modifica Data Validita' Listino¶
Sorgente: cbl/cogl30.cbl | Tipo: Programma batch interattivo | Program-ID: COGL30
Menu:
- Magazzino > Controllo Prezzi > Modifica Data Validita'
Scopo¶
Modifica massiva della data di validita' dei record listino prezzi (COGLISNW). Per ogni merce selezionata, cerca i record listino con la data di validita' precedente indicata, li cancella e li riscrive con la nuova data. Se la nuova data e' zero, i record vengono solo cancellati (cancellazione listino).
La selezione delle merci puo' avvenire per codice, per descrizione o tramite preselezione esterna (COGS56).
Interfaccia utente¶
Maschera (tab-maschera)¶
| Campo | Tipo | Descrizione |
|---|---|---|
| tm-data-old | 9(08) | Data di validita' precedente (AAAAMMGG), obbligatoria |
| tm-data-new | 9(08) | Nuova data di validita' (AAAAMMGG), se zero cancella i listini |
| tm-ord | X(01) | Ordine di estrazione: C=per codice, D=per descrizione (via COGU16) |
| tm-sel | X(01) | Tipo selezione: C=codice, D=descrizione, A=preselezione COGS56 |
| tm-da-merce | X(09) | Da merce (gruppo 2 + sottogruppo 2 + codice 5) |
| tm-da-merce-des | X(40) | Descrizione merce iniziale |
| tm-a-merce | X(09) | A merce |
| tm-a-merce-des | X(40) | Descrizione merce finale |
| tm-ctr-rd | 9(09) | Contatore record letti |
| tm-ctr-wr | 9(09) | Contatore record scritti |
Ordine di accept dei campi¶
Ordine estrazione > Tipo selezione > Da merce > A merce > Validita' precedente > Validita' nuova > Conferma
Tasti funzione¶
| Tasto | Funzione |
|---|---|
| F3 | Conferma e avvia elaborazione |
| F8 | Aiuto / Calendario sulle date |
| ESC | Esce |
| F2 | Torna al campo precedente |
File e tabelle¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella parametri generali |
| COGMERCI | cogl30.fd, cogmerci.k02 | Anagrafica merci (scansione per codice/descrizione) |
| COGLISNW | cogl30.fd, coglisnw.k02 | Listini nuovi prezzi (tabella di aggiornamento) |
| TRAN-S56 | tran-s56.cpy, tran-s56.fd, tran-s56.k01 | File transito preselezione COGS56 |
Chiavi di accesso¶
| Tabella | Chiave | Composizione | Uso |
|---|---|---|---|
| COGMERCI | primaria | mer-chia (9 byte) | Lettura puntuale merce |
| COGMERCI | k02 (chia1) | Descrizione | Scansione per descrizione |
| COGLISNW | k02 (chia2) | Merce + data | Ricerca listini per merce e data |
| TRAN-S56 | primaria | trs-s56-chia1 | Scansione preselezione |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGS56 | Preselezione merci (quando tm-sel = 'A') |
| COGU16W | Gestione ordinamento, selezione e range merci |
| COGU10W | Utility divisioni/valute |
| COGS52W | Gestione date con calendario |
| COGS68 | Ricerca merce |
Copybook principali¶
cogl30.select,cogl30.fd,cogl30.wrk,cogl30.prc,cogl30.decla,cogl30-01.scr-- Screenscogazien.cpy-- Dati azienda (az-mer-ava per tipo selezione)utils52.cpy-- Date (COGS52W)utils56.cpy-- Preselezione (COGS56)utils68.cpy-- Ricerca merce (COGS68)utilu10.cpy-- Utility valute (COGU10W)utilu16.cpy-- Utility ordinamento (COGU16W)utilu20.cpy-- Utilityutilcogs0c.cpy-- Utilitycogmerci.k02-- Chiave secondaria mercicoglisnw.k02-- Chiave secondaria listini
Logica di elaborazione¶
Flusso principale¶
- Apertura: mostra messaggio di avviso sul comportamento della funzione
- Accept dei parametri: ordine, selezione, range merci, date
- Se selezione = 'A' (preselezione), chiama COGS56 per selezionare le merci
- Conferma utente
- Elaborazione (
b-elabora)
Elaborazione (b-elabora)¶
In base al tipo selezione:
- 'C' (codice): START su COGMERCI dalla merce iniziale, RDNXT fino alla merce finale
- 'D' (descrizione): START su COGMERCI k01 (descrizione), RDNXT fino alla descrizione finale
- 'A' (preselezione): apre TRAN-S56, RDNXT sulle merci preselezionate; per ogni merce legge COGMERCI
Per ogni merce trovata, esegue b1-src-pre.
Aggiornamento listini (b1-src-pre)¶
Per ogni merce:
- Posizionamento su COGLISNW con k02 (merce + data precedente)
- Ciclo RDNXT: per ogni record con la stessa merce e data
- Cancellazione del record (DEL)
- Se la nuova data e' diversa da zero: riscrittura con la nuova data (WR, o RWR se esiste gia')
- Incremento contatori tm-ctr-rd e tm-ctr-wr
Validazione campi¶
x-controlla-tm-data-old: data obbligatoria (errore se zero)x-controlla-tm-data-new: se zero, warning "Cancellazione listino!"; se uguale a data precedente, errorex-controlla-tm-da-merce/x-controlla-tm-a-merce: verifica esistenza merce in anagrafica; range validato via COGU16
Note¶
- Il file TRAN-S56 e' temporaneo per operatore (nome include wo-oper), creato nella directory temporanea.
- Se az-mer-ava = 'S', il tipo selezione viene forzato a 'A' (solo preselezione).
- La cancellazione/riscrittura (DEL + WR) e' necessaria perche' la data fa parte della chiave del record listino.
Documentazione tecnica -- 2026-05-01