COGM97M - Creazione Pre-Matricole¶
Scopo¶
Genera pre-matricole (matricole provvisorie con mtp-tip='A', mtp-tip-mat='P') su COGMTPRE per una merce, in numerazione automatica (richiede COGS25 per il numero progressivo) o manuale (range da/a). Al termine richiama COGM97S per la stampa delle etichette.
Programma GUI standalone, ma puo' essere richiamato da altri programmi tramite util-m97 con m97-called='COGM97M'. In quel caso usa i dati gia' forniti (merce, lotto, quantita', tipo numerazione, n. copie, CE) e ritorna l'intervallo m97-mat-da/m97-mat-a delle pre-matricole create.
Posizioni menu¶
- Magazzino > Produzione > Produzione > Matricole > Creazione Pre-Matricole
File e Tabelle¶
| File | Copybook | Utilizzo |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella file di sistema |
| COGMERCI | cogmerci.cpy | Anagrafica merci (verifica abilitazione SN: mer-fl-sn in {I,T}) |
| COGRACMC | cogracmc.cpy | Codici merce avanzati (chiave 2: rcm-tip+gru/sot/cod) |
| COGMTPRE | cogmtpre.cpy | Pre-matricole (write con mtp-tip='A') |
Copybook¶
feurtab.fd,cogm97m.select,cogm97m.fd,cogm97m.wrk,cogm97m-01.scr,cogm97m.decla,cogm97m.prccogmerci.fd/cpy,cogracmc.fd/cpy,cogmtpre.fd/cpycogracmc.k02,cogmtpre.k02(chiavi secondarie)k-u10.cpy,k-personal.cpywgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpyutildlg.cpy,utils52.cpy,utils54.cpy,utils68.cpy,utilu10.cpy,utilu20.cpy,utils25.cpywcont.cpy,wcont1.cpy,utilm97.cpygrave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy
CALL¶
| Programma | Scopo |
|---|---|
| COGS25 | Numerazione automatica progressiva (s25-i-cod=19, anno=sis-anno) |
| COGS68W | Ricerca/zoom merce (via util-s68) |
| COGM97S | Stampa etichette pre-matricole create (m97-ope="stampa-sub") |
| DIALOGS | Dialogo gestione errori inserimento pre-matricola gia' esistente |
Logica di elaborazione¶
Parametri input¶
tab-maschera:
- tm-merce (gru/sot/cod): merce per cui creare pre-matricole
- tm-tipo-num: A=automatica, M=manuale
- tm-mat-da / tm-mat-a (anno+numero, 4+8 digit): range matricole (solo M)
- tm-qta: quantita' pre-matricole (solo A; max 500 per B&B Elettronica az-personal=k-personal-bb-elettronica)
- tm-n-copie: numero copie etichette
- tm-rig-ini/tm-col-ini: posizione partenza foglio etichette
- tm-ce: N/C/P (indicatore marchiatura CE)
Linkage util-m97 (utilm97.cpy): se chiamato con m97-called="COGM97M" e m97-ope valorizzato, riempie tab-maschera da w-dc-util-m97 e salta in a-fine-dati (salta GUI).
Flusso¶
- apri/main:
z-99-init-program,ctr-abil,rd-azi,open-files. Se chiamato (w-dc-fl-called=k-yes) carica i dati da linkage. - a4 / accept loop: input campi GUI con
a-tm-*(merce, tipo-num, da-anno/numero, a-anno/numero, qta, n-copie, rig-ini, col-ini, ce). Ogni campo hax-aiuto-*(label/aiuti),x-controlla-*(validazione) ex-ctr-color-*(colorazione). - search-merce: read COGMERCI, controlla
mer-fl-sn in {I,T}; seaz-mer-ava='C', leggi COGRACMC per codice avanzato. - a-fine-dati / b-elabora-dati: chiama
make-pre-matricole-autoomake-pre-matricole-manua seconda ditm-tipo-num.
make-pre-matricole-auto¶
perform until (w-nvolte > tm-qta)
add 1 to w-nvolte
call-s25 (COGS25 → mtp-mat-num, anno = sis-anno)
wr-cogmtpre
if w-verbo-ok → fill-ricordante
else → msg-invalid-write-auto (DIALOGS: Esc=salta, F3=ritenta)
end-perform
call-stampa-mtpre
make-pre-matricole-manu¶
mtp-mat = tm-mat-da
perform until (w-mat > tm-mat-a-r)
wr-cogmtpre
if w-verbo-ok → fill-ricordante
else → msg-invalid-write-manu (DIALOGS: Esc=interrompi, F3=prosegui)
if mtp-mat-num < 99999999: add 1 to mtp-mat-num
else: add 1 to mtp-mat-ann, move 1 to mtp-mat-num
end-perform
call-stampa-mtpre
flow-tm-to-mtp¶
Riempimento record COGMTPRE:
- mtp-tip = 'A'
- mtp-tip-mat = 'P'
- mtp-merce = tm-merce
- mtp-data-ope = datasis-num
- mtp-prog-ope = ri-caller-prog (se chiamato) o k-program-id
- mtp-ope = wo-oper
- mtp-lotto = tm-lotto
call-stampa-mtpre¶
Imposta util-m97:
- m97-ope="stampa-sub", m97-caller="COGM97M"
- m97-merce = tm-merce
- m97-mat-da/a = ri-mat-da/a (estremi creati)
- m97-n-copie = tm-n-copie (default 1)
- m97-ce = tm-ce (default 'N')
Chiama COGM97S.
Note tecniche¶
- GUI con screen section (
cogm97m-01.scr) - Maschera popup con
rd-msk-pop, dimensionik-m-v-size/k-m-h-sizedacogm97m.wrk - Validazioni dipendenti da
az-personal: per B&B Elettronica controlli aggiuntivi (max qta 500, codice merce con sottogruppo solo non valido) - Salita progressiva di anno quando si supera il limite di numero (manuale)
- Le pre-matricole NON sono ancora associate a un prodotto: sono solo numeri preassegnati. L'associazione avviene in fase di produzione (es. in COGS17C o nelle fasi di lavorazione che le consumano).