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)¶
- Verifica assemblato:
x211-cerca-se-assemblatocontrolla CLCDISEG perdis-fase = 1 - Consegna parzialmente evasa: se
tm-qta-cns-tot <> tm-qta-cns-disp, propone sdoppiamento consegna (COGSAB) con stampa della nuova consegna (COGPA0) - Richiede riga consegna:
tm-cor-progrdeve essere > 0 (consegna con numero riga) - Verifica commessa esistente: se la riga consegna ha gia una commessa produzione (COGLAVOR chia5), usa quella (
x212-aggiungi-commessa-collegata) - Lancio COGG77: passa merce, quantita, cliente, consegna
- 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 |