COGL03 - Creazione Listino su Distinta Base
Sorgente: cbl/cogl03.cbl | Program-ID: COGL03 | Tipo: Interattivo (raccolta parametri + chiamata elaborazione)
Menu: Magazzino > Controllo Magazzino > Prezzo Medio > Creazione Listino su Distinta, Magazzino > Produzione > Distinta Base > Creazione Listino
Scopo
Maschera di raccolta parametri per la creazione/aggiornamento del listino vendita a partire dalle distinte base. Il programma raccoglie l'intervallo di merci, il tipo di valorizzazione, la data e il magazzino sede, poi delega l'elaborazione effettiva a COGS07.
File e tabelle
| File/Tabella |
Tipo |
Modalita' |
Descrizione |
| FEURTAB |
Tabella |
Input |
Tabella generale Eurosystem |
| COGMERCI |
Tabella |
Input |
Anagrafica merci (per validazione "Da"/"A" distinta) |
| COGMAGAZ |
Tabella |
Input |
Anagrafica magazzini (per validazione magazzino sede) |
| COGMAGAG |
Tabella |
Input |
Dati aggiuntivi magazzino (per controllo sede operativa) |
I file acceduti sono quelli dichiarati in cogl03.select tramite Screen Designer.
Copybook utilizzate
| Copybook |
Descrizione |
cogfiles.cpy |
Struttura generica FEURTAB |
cogl03.select |
SELECT file generati da Screens |
cogl03.fd |
FD file generati da Screens |
cogl03.wrk |
Working storage generata da Screens |
cogl03-01.scr |
Maschera grafica |
cogl03.decla |
Declaratives |
cogl03.prc |
Procedure copy generate da Screens |
wgrave.cpy |
Working errori gravi |
wnscr.cpy |
Working screen |
wopenf.cpy |
Working apertura file |
wstato.cpy |
Working stato |
cogazien.cpy |
Dati azienda |
utils07.cpy |
Interfaccia COGS07 (elaborazione distinte) |
utils52.cpy |
Utility date/calendario (COGS52W) |
utils68.cpy |
Utility ricerca merce (COGS68W) |
utilw36.cpy |
Utility ricerca magazzino (WIN036) |
grave.cpy |
Gestione errori gravi (procedure) |
mmmask.cpy |
Gestione maschere |
opengen.cpy |
Apertura file generica |
stato.cpy, stato1.cpy |
Gestione stato file |
winmsg.cpy |
Messaggi a finestra |
sendw36.cpy |
Invio ricerca magazzino |
Linkage
| Copybook |
Descrizione |
wcont.cpy |
Contesto chiamante |
wcont1.cpy |
Contesto esteso |
Struttura del programma
Variabili della maschera (tab-maschera)
| Variabile |
PIC |
Descrizione |
tm-da-merce |
X(09) |
Codice merce iniziale intervallo (gru 2 + sot 2 + cod 5) |
tm-a-merce |
X(09) |
Codice merce finale intervallo |
tm-fl-u-m |
X(01) |
Tipo valorizzazione: "U"=Ultimo costo, "M"=Media ponderata |
tm-data-mem |
9(08) |
Data memorizzazione listino |
tm-mag-sede |
X(03) |
Codice magazzino sede |
tm-mag-sede-des |
X(40) |
Descrizione magazzino sede (display) |
Costanti
| Costante |
Valore |
Descrizione |
k-m-h-size |
(da wrk) |
Larghezza maschera |
k-m-v-size |
(da wrk) |
Altezza maschera |
Flusso principale
- apri - Inizializzazione (
z-99-init-program), controllo abilitazione, lettura azienda, apertura file
- Preparazione controlli: merce "Da" e "A" con COGS68W ("Prepara"), costruzione combo per
tm-fl-u-m
- a4 - Reset maschera. Default: data sistema, magazzino sede principale (
az-main-mag), tipo "U"
Accept dei campi
- a-tm-da-merce - Accept merce inizio intervallo (COGS68W per ricerca/barcode)
- a-tm-a-merce - Accept merce fine intervallo (COGS68W)
- a-tm-fl-u-m - Accept tipo valorizzazione (COGS60W combo)
- a-tm-data-mem - Accept data memorizzazione (COGS52W con calendario)
- a-tm-mag-sede - Accept magazzino sede (con F8 per ricerca via WIN036)
Validazione e elaborazione
- a-fine-dati - Validazione completa di tutti i campi (
x-controlla-dati)
- acc-conf - Richiesta conferma
- Trasferimento parametri a
util-s07:
s07-u-m = tipo valorizzazione
s07-da-merce = merce iniziale
s07-a-merce = merce finale
s07-data-mem = data memorizzazione
s07-mag-sede = magazzino sede
- CALL "COGS07" - Elaborazione effettiva delegata a COGS07
Validazione campi
| Paragrafo |
Campo |
Controlli |
x-controlla-tm-da-merce |
Da merce |
Se non vuoto: verifica esistenza in COGMERCI |
x-controlla-tm-a-merce |
A merce |
Se non vuoto: verifica esistenza; "Da" non deve essere > "A" |
x-controlla-tm-data-mem |
Data |
Obbligatoria (diversa da zero) |
x-controlla-tm-mag-sede |
Magazzino |
Obbligatorio; verifica esistenza in COGMAGAZ (tipo "M"); verifica magg-fl-sede-operativa = "S" in COGMAGAG. Messaggi: "Magazzino sede operativa obbligatorio", "Magazzino sede operativa inesistente", "Magazzino selezionato non e' magazzino sede operativa" |
Chiamate esterne
| Programma |
Modalita' |
Scopo |
| COGS07 |
CALL |
Elaborazione creazione listino su distinta |
| COGS68W |
CALL |
Ricerca merce con barcode |
| COGS52W |
CALL |
Gestione date con calendario |
| COGS60W |
CALL |
Gestione combo-box (tipo valorizzazione) |
| WIN036 |
CALL (via sendw36) |
Ricerca magazzino |
Note
- Il programma e' un puro front-end parametri: tutta la logica di calcolo e aggiornamento listino e' in COGS07.
- TASK-4553 (07/04/2026): ripristinato il controllo sede operativa sul magazzino. Il vecchio controllo su
magz-fl-sede (disattivato da TASK-1157) e' stato sostituito con la lettura di magg-fl-sede-operativa dalla tabella COGMAGAG. Se il magazzino non e' marcato come sede operativa, la validazione blocca l'elaborazione.
- Se COGS07 restituisce
w-fine = "COGM90", il programma esce (segnale di chiusura forzata).
- Il campo
tm-fl-u-m ha default "U" (Ultimo costo).
- La merce viene validata tramite
k-merce-null come sentinella per campo vuoto.
Storico modifiche
| Build |
Descrizione |
| 2026/0426 |
TASK-4553: ripristinato controllo sede operativa, messaggi aggiornati a "sede operativa". Variabile k aumentata da pic 9(03) a pic 9(04) per supportare il contatore file incrementato (ora usata nell'inizializzazione archivi). |