Vai al contenuto

COGM84 - Controllo Giacenza / Scorta Minima

Panoramica

Programma interattivo GUI per il calcolo del sottoscorta e la generazione del report "Stampa Controllo Scorte". Confronta la giacenza fisica di un intervallo di articoli con la scorta minima: se inferiore, calcola il riordino (scorta massima - giacenza). Supporta quattro tipi di elaborazione: solo calcolo (C), calcolo+stampa (E), solo stampa su transito temporaneo (S), ristampa da archivio esistente (P). I risultati vengono scritti nei file di transito TRAN-V21/TRBN-V21 e nell'archivio definitivo COGRIORD (per i tipi C ed E). Il campo prezzo nell'archivio di riordino non viene valorizzato (delegato a COGO70).

Tipo: Programma interattivo GUI con stampa.

Posizione nel menu

Menu Percorso
Magazzino Giacenze & Sottoscorta > Scorte > Controllo Giac./Scorta Min.

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB (cogfiles) Input Tabella parametri generali
File gestiti da cogm84.select I-O File principali (COGMERCI, COGSLMAG, COGRIORD, ecc.)
TRAN-V21 I-O (temp/arc) File transito riordino (path costruito su ext-arc-dir)
TRBN-V21 I-O (temp/arc) File transito riordino binario (path costruito su ext-arc-dir)
FLSTA I-O File stato

Costruzione path file transito

TRAN-V21: ext-arc-dir + slash + '#$COGV21.ARC'
TRBN-V21: ext-arc-dir + slash + '#$BOGV21.ARC'

Per il tipo elaborazione "S" (solo stampa transitoria), i nomi vengono cambiati dal paragrafo cambia-nomi in modo che non sovrascrivano l'archivio permanente.

Copybook principali

Copybook Descrizione
cogm84.select SELECT per i file del programma
cogm84.fd File description
cogm84.wrk Working storage generata da Screens
cogm84-01.scr Screen section della maschera
cogm84.decla Declaratives (file: tran-v21, trbn-v21, flsta)
cogm84.prc Procedure generate da Screens
cogfiles.cpy Record FEURTAB
k-personal.cpy Costanti personalizzazione cliente
k-u10.cpy Costanti divisa
wgrave.cpy Errori gravi
wnscr.cpy Gestione schermata
wopenf.cpy Apertura file
wstato.cpy Stato operazioni
cogazien.cpy Dati azienda
utile35.cpy Utility E35
utilw06.cpy Utility stampa (W06)
utilw36.cpy Utility ricerca magazzino (W36)
utils52.cpy Utility date (COGS52)
UTILS54.CPY Utility S54
UTILU16.CPY Utility U16 (range merce)
UTILU10.CPY Utility divisa (COGU10)
UTILS50.CPY Utility S50
utils68.cpy Utility ricerca merce (COGS68)
utilncnf.cpy Lettura configurazione (RNEWCONF)
util021.cpy Area linkage COG021 (stampa dettaglio)
utils01f.cpy Area linkage COGS01F
wcont.cpy / wcont1.cpy Area comunicazione chiamante

Variabili principali della maschera (tab-maschera)

Campo Tipo Descrizione
tm-mag X(01) Codice magazzino
tm-mag-des X(30) Descrizione magazzino (display)
tm-ela X(01) Tipo elaborazione: C/E/S/P
tm-merce-da X(09) Codice merce iniziale (gru+sot+cod)
tm-merce-da-des X(30) Descrizione merce iniziale (display)
tm-merce-a X(09) Codice merce finale
tm-merce-a-des X(30) Descrizione merce finale (display)

Configurazione (tm-cfg)

Campo Tipo Descrizione
tm-cfg-scorte-per-magazzino X(01) "S" = usa giacenza per magazzino specifico; altro = giacenza totale

Variabili di elaborazione chiave

Variabile Tipo Descrizione
w-giacenza-fisica S9(08)v999 Giacenza fisica articolo corrente
w-riordino 9(08)v999 Quantita' calcolata di riordino
fl-calcolo-ok X(01) "S" se il calcolo e' andato a buon fine
w-cur-id X(04) "STGC" Identificativo corrente per COG021
c-confezione 9(08) Numero confezioni (per arrotondamento)
w-mer-sco-min 9(06)v999 Scorta minima letta da COGMERCI
w-mer-sco-max 9(06)v999 Scorta massima letta da COGMERCI

Record stampa (rigel)

Campo Tipo Descrizione
rg-merce X(50) Codice + descrizione articolo
rg-giacenza PIC ------9,999 Giacenza (negativa se sotto zero)
rg-sco-min PIC zzzzzzz,zzz Scorta minima
rg-sco-max PIC zzzzzzz,zzz Scorta massima
rg-riordino PIC zzzzzz,zzz Quantita' di riordino

Chiamate a sottoprogrammi (CALL)

Programma Scopo
COGS68 Ricerca merce (campi da/a)
COGS52 Gestione calendario/date
COGU10 Recupero divisa conto (get-divisa-conto)
COGS54 Utility S54
COGU16W Range merce (UTILU16; cancellato con cancel a chiusura)
COGS50 Utility S50 (chiuso con fl-opn='C' a fine programma)
COG021 Stampa dettaglio (F1 - "det stampa") con id "STGC"
RNEWCONF Lettura configurazione (x99-confi)

Flusso di elaborazione

1. Inizializzazione (apri)

  • ctr-abil per abilitazione
  • z-99-init-program
  • x-carica-lingua, rd-azi, open-files
  • x99-confi: legge RNEWCONF per tm-cfg-scorte-per-magazzino
  • Costruisce path TRAN-V21 e TRBN-V21 (su ext-arc-dir)
  • Imposta tasti funzione presenti (F1 det-stampa, F3 conferma, F8 aiuto/calendario, F9 ricerca avanzata)
  • get-divisa-conto
  • Prepara controlli S68 per da/a merce

2. Input parametri (a4 -> a-tm-mag -> a-tm-ela -> a-tm-merce-da -> a-tm-merce-a)

  • a-tm-mag: accept magazzino; F8 -> send-w36; F1 -> COG021; F3 -> a-richiesta-conferma; valida magazzino
  • a-tm-ela: accept tipo elaborazione via COGS60 (opzioni C/E/S/P); F3 -> a-richiesta-conferma
  • a-tm-merce-da: accept range merce iniziale via COGS68+UTILU16; F3 -> a-richiesta-conferma
  • a-tm-merce-a: accept range merce finale; visibile solo se abilitato; F3 -> a-richiesta-conferma
  • a-richiesta-conferma: valida tutti i campi; acc-conf per conferma utente

3. Elaborazione (evaluate tm-ela)

WHEN "C": esegui-calcolo
WHEN "E": esegui-calcolo; se ok -> d-stampa
WHEN "S": cambia-nomi; esegui-calcolo; se ok -> d-stampa; cancella file transito
WHEN "P": d-stampa (ristampa da archivio esistente)

4. Calcolo (esegui-calcolo)

  • Apre TRAN-V21 e TRBN-V21
  • Scorre COGMERCI nell'intervallo tm-merce-da / tm-merce-a
  • Per ogni merce:
  • Legge giacenza fisica dal saldo magazzino (COGSLMAG):
    • Se tm-cfg-scorte-per-magazzino = "S": usa saldo del magazzino tm-mag
    • Altrimenti: usa giacenza totale
  • Legge mer-sco-min e mer-sco-max da COGMERCI
  • Se giacenza < scorta minima:
    • w-riordino = w-mer-sco-max - w-giacenza-fisica
    • Se c-confezione > 0: arrotonda per multiplo di confezione
    • Scrive record in TRAN-V21 e TRBN-V21
  • Imposta fl-calcolo-ok = "S" se completato senza errori

5. Stampa (d-stampa ... ex-d)

  • Apre TRAN-V21 in lettura
  • Stampa intestazione con data e nome azienda
  • Per ogni record in TRAN-V21 con riordino > 0: formatta riga rigel e scrive su report
  • Chiude TRAN-V21
  • Richiama la routine di stampa (utilw06 / stampante configurata)

6. Cambio nomi per tipo "S" (cambia-nomi)

  • Rinomina i path di TRAN-V21 e TRBN-V21 in nomi temporanei
  • Cosi' il calcolo tipo "S" non sovrascrive l'archivio permanente
  • I file temporanei vengono cancellati dopo la stampa

7. Chiusura (fine -> z-chiudi)

  • z-close-files
  • cancel 'COGU16W'
  • COGS50 con fl-opn='C' (chiusura)
  • close window w-sv-cur-prg
  • z-99-exit-program

Note tecniche

  • La variabile w-cur-id = "STGC" ("stampa giacenza") e' passata a COG021 per la stampa del dettaglio (F1).
  • Il campo RIO-CURRENCY dell'archivio COGRIORD non viene valorizzato da questo programma: il commento nel sorgente dice esplicitamente che sara' valorizzato da COGO70 se necessario.
  • w-siz-merce = 42: larghezza campo merce nella riga di stampa.
  • La tolleranza confezione: se c-confezione > 0, la quantita' di riordino viene arrotondata al multiplo di confezione per eccesso.
  • UTILU16 (COGU16W) gestisce il range di merce; viene cancellato con cancel 'COGU16W' alla chiusura.
  • Il tipo elaborazione "P" (ristampa) non apre ne' modifica TRAN-V21: usa direttamente l'archivio permanente COGRIORD per la stampa.