Vai al contenuto

COGM95 - Riordino con Penna Ottica

Scopo

Crea record di riordino su COGRIORD a partire da un file sequenziale prodotto da una penna ottica (Memowand). Per ogni codice EAN letto, accumula le quantita' su un transito (TRAN-V21), poi confronta con scorta min/max e propone una quantita' di riordino arrotondata alla confezione di acquisto, associando il fornitore preferenziale.

Note: il campo rio-currency non viene valorizzato qui; verra' impostato da COGO70 quando necessario, perche' in questa fase non si toccano i prezzi.

Posizioni menu

  • Magazzino > Giacenze & Sottoscorta > Scorte > Riordino con penna Ottica

File e Tabelle

File Copybook Utilizzo
FEURTAB cogfiles.cpy Tabella file di sistema
COGMERCI cogm95.fd (cogmerci.cpy) Anagrafica merci, lookup per EAN (chiave 2 = mer-ean) e per chiave principale
COGGEANA cogm95.fd (coggeana.cpy) Anagrafica clienti/fornitori
COGMAGAZ cogm95.fd (cogmagaz.cpy) Anagrafica magazzini
COGSLMAG cogm95.fd (cogslmag.cpy) Saldi magazzino (giacenza fisica msal-qta)
COGMERAP cogm95.fd (cogmerap.cpy) Merce per azienda
COGCNDCF cogm95.fd (cogcndcf.cpy) Condizioni cliente/fornitore (chiave 2 = cnd-key); usato per cercare fornitore preferenziale (cnd-cnd='FP')
COGRIORD cogm95.fd (cogriord.cpy) Archivio riordini, output
TRAN-V21 tran-v21.cpy Transito quantita' rilevate per merce/data (qui sempre data=zero)
TRBN-V21 trbn-v21.cpy Transito complementare V21 (creato vuoto)
INPFIL (interno) File line-sequential prodotto dalla penna ottica (memowand) con record seq-ean(15) + seq-qta(5)
FLSTA flsta.cpy File di stampa controllo scorte

Path file di transito: - trs-v21-nome = ext-arc-dir + '#$COGV21.ARC' - trb-v21-nome = ext-arc-dir + '#$BOGV21.ARC' - memowand = ext-tmp-dir + 'mwseq.' + wo-oper

Copybook

  • feurtab.fd, cogm95.select, flsta.fd, cogm95.fd, cogm95.wrk, cogm95-01.scr
  • tran-v21.fd, trbn-v21.fd, flsta.cpy
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy
  • utils22.cpy, utils50.cpy, utils54.cpy, utils60.cpy, cogazien.cpy, utilw36.cpy, wdisp001.cpy, wdisp002.cpy
  • wcont.cpy, util021.cpy, utils08.cpy, wcont1.cpy
  • Fine procedure: grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, cogm95.prc, cogmerci.k03, cogcndcf.k02

CALL

Programma Scopo
COGS08 Acquisizione dati dalla penna ottica (popola il file mwseq.xxx)
COGS54 Gestione parametri di stampa (per la stampa controllo scorte)
COGS50 Composizione stringa descrittiva merce per stampa

Logica di elaborazione

Parametri input (tab-maschera)

  • tm-mag: magazzino di riferimento, inizializzato con az-main-mag (magazzino principale dell'azienda).

Il programma non richiede altri parametri all'utente: c'e' una sola conferma globale (a-90).

Flusso

  1. Apertura (apri): apre i file, costruisce i path dei transiti.
  2. Conferma (a-90): box con prompt "Riordino con Penna Ottica: Confermi ?".
  3. Reset transiti: chiude e riapre TRAN-V21 e TRBN-V21 in output (svuota), poi riapre in i-o with mass-update. Stessa cosa per COGRIORD.
  4. Elaborazione (b-elabora):
  5. Chiama COGS08 per acquisire dati dalla penna; se s08-flag='N' esce.
  6. Apre inpfil (file mwseq.<oper>) line-sequential.
  7. Loop: legge seq-rec (EAN+qta), trova la merce con rd-cogmerci-chia2 (chiave EAN), e su TRAN-V21 (chiave merce+data=0) accumula seq-qta in trs-v21-imp. Se il record non esiste lo crea a zero e poi lo aggiorna.
  8. Creazione riordini (c-crea-rio):
  9. Scandisce TRAN-V21 (chiave 1, solo record con data=zero).
  10. Per ogni merce: legge giacenza da COGSLMAG (msal-qta) per il magazzino tm-mag, salva in trs-v21-gia con rewrite.
  11. Cerca fornitore preferenziale (c11-for-prf): scansione COGCNDCF chiave 2 con cnd-cnd='FP' e cnd-key=rio-merce; il primo trovato diventa rio-for e marca rio-ok='*'.
  12. Calcola riordino: parte da trs-v21-imp (la quantita' rilevata dalla penna).
  13. Se mer-confezione non zero, arrotonda w-riordino al multiplo di confezione superiore.
  14. Scrive cogriord con rio-data(1)=0, rio-qta(1)=w-riordino, rio-ptr-date=1.
  15. Stampa (d-stampa): stampa testuale 132 colonne con merce, giacenza, scorta min/max, riordino. Chiamata COGS54 per richiesta stampante. Loop su COGRIORD (rdnxt-cogriord), lookup giacenza (COGSLMAG con magazzino tm-mag) e scorte da COGMERCI.

Note tecniche

  • Programma GUI con screen cogm95-01.scr.
  • La maschera ha praticamente solo il bottone di conferma; tutti i parametri operativi sono presi dall'azienda.
  • L'arrotondamento alla confezione usa il pattern: compute w-qta-div = w-riordino / mer-confezione; if wqd-dec not = zero -> w-riordino = (wqd-int + 1) * mer-confezione.
  • TRBN-V21 viene creato vuoto: serve a COGO70/altri programmi della catena di riordino come transito di appoggio.
  • rio-currency lasciato vuoto qui: COGO70 lo valorizzera' se necessario.
  • inpfil e' un line-sequential con tracciato seq-ean pic 9(15) + seq-qta pic 9(05).