Vai al contenuto

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

  1. apri - Inizializzazione (z-99-init-program), controllo abilitazione, lettura azienda, apertura file
  2. Preparazione controlli: merce "Da" e "A" con COGS68W ("Prepara"), costruzione combo per tm-fl-u-m
  3. a4 - Reset maschera. Default: data sistema, magazzino sede principale (az-main-mag), tipo "U"

Accept dei campi

  1. a-tm-da-merce - Accept merce inizio intervallo (COGS68W per ricerca/barcode)
  2. a-tm-a-merce - Accept merce fine intervallo (COGS68W)
  3. a-tm-fl-u-m - Accept tipo valorizzazione (COGS60W combo)
  4. a-tm-data-mem - Accept data memorizzazione (COGS52W con calendario)
  5. a-tm-mag-sede - Accept magazzino sede (con F8 per ricerca via WIN036)

Validazione e elaborazione

  1. a-fine-dati - Validazione completa di tutti i campi (x-controlla-dati)
  2. acc-conf - Richiesta conferma
  3. 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
  4. 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).