Vai al contenuto

COGG69HT - Inserimento Buoni di Prelievo via Barcode

Funzione

Programma per la creazione di buoni di prelievo (BdP) mediante lettura di codici a barre. Versione customizzata per Artic SEALS del programma standard COGG69.

File: cbl/cogg69ht.cbl

Modalita di input

Modalita Flag Descrizione
Pistola barcode tm-pistola = "S" Lettura in tempo reale, un codice alla volta
Terminalino tm-termi = "S" Import batch da file txt scaricato (via COGU60)

La modalita si seleziona con F7 (inverti); il default e' pistola.

Flusso principale

apri
  ├── rd-azi, open-files, x99-confi (configurazione)
  └── a4 (inizializzazione maschera)

x5-emulazione-tast / x6-sca-terminalino (secondo cfg)
  │
  ├── Lettura operatore (tm-ope)
  ├── Lettura consegna o cartellino (x1-cerca-consegna)
  │     └── Verifica consegna aperta, ordine aperto, cliente
  │
  ├── Loop letture barcode:
  │     ├── Lotto merce (16 char: GGSSCCCCCMLLLLLL)
  │     │     └── Se manca-componente = "S": a1-produzione-differita
  │     ├── Codice merce avanzato (COGRACMC)
  │     ├── Codice EAN (COGMERCI chia2)
  │     ├── Quantita (numerico)
  │     └── Segno negativo (".R" prefix)
  │
  ├── x2-nuova-merce (aggiunta riga)
  │     ├── x21-aggiungo-merce (verifica duplicati, assemblaggio)
  │     │     ├── x211-cerca-se-assemblato (distinta fase=1)
  │     │     └── x212-produci-e-aggiungi (→ COGG77)
  │     └── x22-cerca-consegna (aggancio consegna/commessa)
  │
  └── F3: x3-aggiorna
        ├── Validazione (operatore, consegna, merci, lotti, ISIR)
        ├── x3-testa → Creazione testata COGTESBP
        ├── x3-loop-righe → Creazione righe COGRIGBP + COGU12
        └── x3-agg-bol → Dialogo post-creazione (etichette)

Collegamento con COGG77 (Assemblaggio automatico)

Quando l'operatore legge un codice merce che risulta essere un assemblato (distinta con fase=1), il programma lancia automaticamente l'assemblaggio:

Flusso (x21-aggiungo-merce → x212-produci-e-aggiungi)

  1. Verifica assemblato: x211-cerca-se-assemblato controlla CLCDISEG per dis-fase = 1
  2. Consegna parzialmente evasa: se tm-qta-cns-tot <> tm-qta-cns-disp, propone sdoppiamento consegna (COGSAB) con stampa della nuova consegna (COGPA0)
  3. Richiede riga consegna: tm-cor-progr deve essere > 0 (consegna con numero riga)
  4. Verifica commessa esistente: se la riga consegna ha gia una commessa produzione (COGLAVOR chia5), usa quella (x212-aggiungi-commessa-collegata)
  5. Lancio COGG77: passa merce, quantita, cliente, consegna
  6. Lettura risultati: apre tran-g77 (file transito lotti creati da COGG77) e aggiunge ciascun lotto come riga nella tabella BdP

Parametri chiamata COGG77

Parametro Valore Descrizione
cogg77-caller "COGG69" Programma chiamante
cogg77-merce tm-merce-letta Codice merce assemblata
cogg77-qta tm-qta-letta Quantita da produrre
cogg77-cliente tm-cli Cliente dell'ordine
cogg77-cor-testa tm-chia-cons Testata consegna
cogg77-cor-riga tm-cor-progr Riga consegna

Esiti COGG77

Esito Significato Azione COGG69HT
"S" Produzione effettuata Legge lotti da tran-g77 e li aggiunge alla tabella
"N" Produzione non effettuata Chiede se ritentare
"C" Cancellazione accantonamento Rilancia x212-produci-e-aggiungi
"A" Accantonamento materiale Annulla la riga

File transito lotti (tran-g77)

Percorso: {ext-tmp-dir}/#COGG77_lotti_{wo-oper}

Campo Tipo Descrizione
trs-g77-lav 9(04)+9(08) Commessa di lavorazione (anno/numero)
trs-g77-qta 9(06) Quantita del lotto
trs-g77-lotto-merce x(09)+x(01)+9(06) Merce + mag + progressivo lotto
trs-g77-lotto-for x(20) Lotto fornitore/esterno

Collegamento con COGM65 (Consolidamento)

Pulsante S-F8 (Buoni prelievo cliente): apre COGM65 in consultazione per il cliente attivo.

move "COGM65-CALLED"      to cogm65-called
move "COGG69HT"           to cogm65-caller
move "A"                  to cogm65-stato      (solo aperti)
move tm-cli               to cogm65-ana-cod    (cliente corrente)

Il consolidamento (COGM65) e' il passaggio successivo al BdP: dopo che COGG69HT crea i BdP, COGM65 li consolida raggruppandoli in UDS (unita di spedizione) tramite lettura barcode dei lotti fisici.

Flusso completo: dalla consegna alla spedizione

Ordine cliente (COGTESOR)
  └── Consegna (COGCONOR)
        │
        ├── COGG69HT: Lettura barcode → Crea BdP
        │     ├── Merce standard: 1 riga BdP per lettura
        │     └── Merce assemblata: COGG77 → lotti produzione → righe BdP
        │
        ├── COGM65: Consolidamento BdP
        │     └── Lettura barcode lotti → associa a BdP → crea UDS (COGDOCCT/COGDOCCM)
        │
        └── Spedizione / Fatturazione

Creazione BdP (x3-testa + x3-loop-righe)

Testata (COGTESBP)

  • Numerazione progressiva: COGS25 (contatore 11, per anno/mese)
  • Magazzino: az-main-mag
  • Cliente: tm-cli (da ordine/consegna)
  • Stato: "A" (aperto)
  • Se ISIR: tbp-fl-provvisorio = "P"

Righe (COGRIGBP)

Per ciascuna riga della tabella con merce valida e qta > 0: - Merce, quantita, segno (E/U), lotto interno, divisa - Consegna: tm-riga-cons(i)rbp-consegna - Aggiornamento transito logistica: x3-aggiorna-transito-logistica - Aggiornamento saldi prenotato: COGU12

Vincolo attuale (customizzazione)

Riga 1387: if tm-pnt = 1 → blocca inserimento di piu di una riga nel BdP.

Produzione differita (a1-produzione-differita)

Per merci con distinta tipo "D" (differita): quando viene letto prima il padre e poi il componente, esegue una "produzione rapida" via COGS26 (scarico componente + carico padre) senza passare per COGG77.

Gestione ISIR

Se la riga consegna e' collegata a un registro ISIR non ancora approvato: - Segnala all'operatore - Se confermato: crea trasferimento a magazzino controlli (x3-crea-trasferimento-isir) - Marca il BdP come provvisorio - Stampa etichetta COGQ5B

Configurazione

Gruppo Chiave Variabile Descrizione
BDP cogg69-modo-lettura tm-cfg-modo-let "B" = terminalino batch
BDP cogg69-modo-validazione tm-cfg-modo-val "B" = blocca errori, "N" = ignora, "L" = log
BDP cogg69-controllo-qta-ordine tm-cfg-ctr-qta "Q" = controlla qta vs consegna
PRODUZIONE MAG-LOGISTICO tm-cfg-mag-logistico Codice magazzino logistico

Tabelle coinvolte

Tabella Chiave usata Utilizzo
COGTESBP chia1 Creazione testata BdP
COGRIGBP chia4 (consegna) Ricerca BdP esistenti per consegna
COGRIGBP (write) Creazione righe BdP
COGCONOR chia1 Ricerca/validazione consegna
COGTESOR chia1 Verifica stato ordine
COGMERCI chia1, chia2 (EAN) Ricerca merce
COGRACMC chia1, chia2 Codice merce avanzato
COGMERLT chia1, chia2 Verifica lotto merce
COGDBASE chia2 Distinta base (produzione differita)
CLCDISEG (start) Distinta disegno (verifica assemblato)
COGLAVOR chia5 (ordine+consegna) Verifica commessa produzione esistente
COGISIRR chia2, chia5 Registri ISIR
COGSLMAG chia1 Saldi magazzino (controllo giacenza)
COGS25 Numerazione progressiva
COGU12 Aggiornamento saldi prenotato
COGD76 Stampa certificato conformita
COGSAB Sdoppiamento consegna
COGPA0 Stampa consegna