Vai al contenuto

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.prc
  • cogmerci.fd/cpy, cogracmc.fd/cpy, cogmtpre.fd/cpy
  • cogracmc.k02, cogmtpre.k02 (chiavi secondarie)
  • k-u10.cpy, k-personal.cpy
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • utildlg.cpy, utils52.cpy, utils54.cpy, utils68.cpy, utilu10.cpy, utilu20.cpy, utils25.cpy
  • wcont.cpy, wcont1.cpy, utilm97.cpy
  • grave.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

  1. 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.
  2. 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 ha x-aiuto-* (label/aiuti), x-controlla-* (validazione) e x-ctr-color-* (colorazione).
  3. search-merce: read COGMERCI, controlla mer-fl-sn in {I,T}; se az-mer-ava='C', leggi COGRACMC per codice avanzato.
  4. a-fine-dati / b-elabora-dati: chiama make-pre-matricole-auto o make-pre-matricole-manu a seconda di tm-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, dimensioni k-m-v-size/k-m-h-size da cogm97m.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).