Vai al contenuto

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 -- Screens
  • cogazien.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 -- Utility
  • utilcogs0c.cpy -- Utility
  • cogmerci.k02 -- Chiave secondaria merci
  • coglisnw.k02 -- Chiave secondaria listini

Logica di elaborazione

Flusso principale

  1. Apertura: mostra messaggio di avviso sul comportamento della funzione
  2. Accept dei parametri: ordine, selezione, range merci, date
  3. Se selezione = 'A' (preselezione), chiama COGS56 per selezionare le merci
  4. Conferma utente
  5. 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:

  1. Posizionamento su COGLISNW con k02 (merce + data precedente)
  2. Ciclo RDNXT: per ogni record con la stessa merce e data
  3. Cancellazione del record (DEL)
  4. Se la nuova data e' diversa da zero: riscrittura con la nuova data (WR, o RWR se esiste gia')
  5. 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, errore
  • x-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