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.scrtran-v21.fd,trbn-v21.fd,flsta.cpywgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpyutils22.cpy,utils50.cpy,utils54.cpy,utils60.cpy,cogazien.cpy,utilw36.cpy,wdisp001.cpy,wdisp002.cpywcont.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 conaz-main-mag(magazzino principale dell'azienda).
Il programma non richiede altri parametri all'utente: c'e' una sola conferma globale (a-90).
Flusso¶
- Apertura (
apri): apre i file, costruisce i path dei transiti. - Conferma (
a-90): box con prompt "Riordino con Penna Ottica: Confermi ?". - Reset transiti: chiude e riapre TRAN-V21 e TRBN-V21 in
output(svuota), poi riapre ini-o with mass-update. Stessa cosa per COGRIORD. - Elaborazione (
b-elabora): - Chiama COGS08 per acquisire dati dalla penna; se
s08-flag='N'esce. - Apre
inpfil(filemwseq.<oper>) line-sequential. - Loop: legge
seq-rec(EAN+qta), trova la merce conrd-cogmerci-chia2(chiave EAN), e su TRAN-V21 (chiavemerce+data=0) accumulaseq-qtaintrs-v21-imp. Se il record non esiste lo crea a zero e poi lo aggiorna. - Creazione riordini (
c-crea-rio): - Scandisce TRAN-V21 (chiave 1, solo record con
data=zero). - Per ogni merce: legge giacenza da COGSLMAG (
msal-qta) per il magazzinotm-mag, salva intrs-v21-giaconrewrite. - Cerca fornitore preferenziale (
c11-for-prf): scansione COGCNDCF chiave 2 concnd-cnd='FP'ecnd-key=rio-merce; il primo trovato diventario-fore marcario-ok='*'. - Calcola riordino: parte da
trs-v21-imp(la quantita' rilevata dalla penna). - Se
mer-confezionenon zero, arrotondaw-riordinoal multiplo di confezione superiore. - Scrive
cogriordconrio-data(1)=0,rio-qta(1)=w-riordino,rio-ptr-date=1. - 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 magazzinotm-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-currencylasciato vuoto qui: COGO70 lo valorizzera' se necessario.inpfile' un line-sequential con tracciatoseq-ean pic 9(15)+seq-qta pic 9(05).