COGM65 -- Visualizzazione Buoni di Prelievo¶
Sorgente: cbl/cogm65.cbl | Tipo: Programma con interfaccia grafica (griglia interattiva) | Program-ID: COGM65
Menu:
- Magazzino > Entrate > Buoni di Prelievo > Visualizzazione Buoni di Prelievo
- Magazzino > Uscite > Buoni di Prelievo > Visualizzazione Buoni di Prelievo
- Magazzino > Uscite > Packing List > Visualizzazione
Scopo¶
Visualizza, filtra e gestisce i buoni di prelievo (BDP) con una griglia interattiva. Il programma consente di:
- Ricercare i BDP per cliente (o fornitore), intervallo date, stato (Aperto/Chiuso/Tutti), magazzino, destinazione, canale di spedizione
- Visualizzare il dettaglio di ogni BDP: quantita', merce, lotto, riferimento bolla, stato consolidamento, stato Modula
- Gestire il consolidamento dei BDP provvisori tramite scansione barcode (lotto interno, barcode GAPI, barcode BDP)
- Inviare liste a Modula (magazzino automatizzato) tramite il DB Frontiera
- Riaprire BDP chiusi, duplicare (sdoppiare) BDP parzialmente consolidati, cancellare BDP
- Navigare sulla filiera del documento (ordine collegato)
Puo' funzionare sia in modalita' autonoma (da menu) sia come programma richiamato (CALLED) per la selezione di un BDP da parte di un altro programma.
Interfaccia utente¶
Maschera di filtro (tab-maschera)¶
| Campo | Tipo | Descrizione |
|---|---|---|
tm-tipo |
x(01) | Stato BDP: A=Aperto, C=Chiuso, T=Tutti |
tm-stato-modula |
x(01) | Filtro stato Modula: T=Tutti (default), altri valori filtrano per stato lista |
tm-ana-tipo |
x(01) | Tipo anagrafico: C=Cliente, F=Fornitore |
tm-cli |
9(05) | Codice cliente/fornitore (0 = tutti) |
tm-figli-tutti |
x(01) | Considera tutti i figli del cliente padre |
tm-cli-f-cod |
9(05) | Codice cliente figlio (filtro aggiuntivo) |
tm-mag |
x(01) | Magazzino (vuoto = tutti) |
tm-canale-cod |
x(02) | Canale di spedizione (codice tabella CS) |
tm-dst-id-idx |
9(04) | Destinazione (indice) |
tm-escludi-dest |
x(01) | S=Escludi la destinazione selezionata (filtro inverso), N=Includi |
tm-da-data / tm-a-data |
9(08) | Intervallo date (AAAAMMGG) |
tm-fl-provv |
x(01) | S=Solo buoni provvisori |
tm-invio-modula |
x(01) | S=Solo buoni da inviare a Modula |
tm-inviato-modula |
x(01) | S=Solo buoni gia' inviati a Modula |
Ordine di accept dei campi¶
Tipo > Stato Modula > Magazzino > Figli tutti > Tipo anagrafico > Cliente > Data da > Data a > Cliente figlio > Solo provvisori > Da inviare a Modula > Inviato a Modula > Canale > Destinazione > Escludi destinazione > Conferma
Griglia (grid-record)¶
| Colonna | Descrizione |
|---|---|
| Mag / Num BDP | Magazzino e numero del buono di prelievo |
| Data | Data del BDP (gg/mm/aaaa) |
| Stato | Aperto / Chiuso |
| Cod/Nome Cliente | Codice e ragione sociale del cliente |
| Riferimento | Riferimento testuale (es. cartone di consolidamento) |
| Bolla | Riferimento bolla collegata (mag/anno/tipo/num) |
| Note | Note della testata BDP |
| Tipo Anagrafico | Cliente / Fornitore |
| Locazione | Locazione di magazzino (se gestione locazioni attiva) |
| Provvisorio | Stato provvisorio del BDP |
| Da Inviare / Inviato | Stato Modula (visibili solo con DB Frontiera attivo) |
| Merce | Codice merce della prima riga |
| Qta | Quantita' riga |
| Qta Consolidata | Quantita' gia' consolidata |
| Consegna | Riferimento ordine di consegna |
| Lotto | Lotto merce |
| Padre Cod/Nome | Cliente padre (per struttura padre/figlio) |
| Lista Modula | ID lista Modula collegata |
| Qta Evasa Modula | Quantita' evasa da Modula |
| Esito Lista | Stato lista: Inviata, Esecuzione, Completa ok, Completa NOK, Non definito |
| Canale Cod/Des | Canale di spedizione dall'ordine |
Tasti funzione¶
| Tasto | Funzione |
|---|---|
| F1 | Riapertura BDP chiuso (solo se chiuso senza bolla) |
| F3 | Gestione documento (apre COGM58/COGM59) |
| F4 | Cancellazione BDP |
| F5 | Stampa etichette lotto (chiama COGP78) |
| F6 | Invio lista a Modula (solo con DB Frontiera, BDP provvisorio, da inviare) |
| F7 | Stampa etichette colli / sovrapacco (COGP19 o U43) |
| F8 | Dettaglio BDP (WIN085) |
| F9 | Stampa BDP (COGP64) |
| F12 | Chiudi consolidamento parziale |
| S-F1 | Sdoppiamento BDP parzialmente consolidato |
| S-F2 | Navigazione filiera documento (COGMA3) |
| S-F4 | Gestione griglia (GRIDADMN) |
| S-F8 | Check consolidamento BDP: segnala righe con qta evasa Modula > qta consolidata |
File e Tabelle¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGTESBP | cogtesbp.fd, .k02, .k03, .k04 | Testata buoni di prelievo (tabella principale) |
| COGRIGBP | cogrigbp.fd | Righe buoni di prelievo |
| COGGEANA | coggeana.fd, .k04 | Anagrafica clienti/fornitori |
| COGTABEL | cogtabel.fd | Tabelle generiche (canali di spedizione CS) |
| COGMERCI | cogmerci.fd | Anagrafica merci |
| COGMERCL | cogmercl.fd, .k04 | Codici merce cliente (per barcode GAPI) |
| COGMERLT | cogmerlt.fd, .k02 | Lotti merce |
| COGMAGAZ | cogmagaz.fd | Anagrafica magazzini |
| COGGENER | coggener.fd, .k02 | Generici/collegamenti (ricerca bolla collegata) |
| COGTESOR | cogtesor.fd | Testata ordini (per filtro destinazione/canale) |
| COGCONOR | cogconor.fd | Conferme ordine (per canale di spedizione) |
| COGRORA2 | cogrora2.fd | Righe ordini avanzate (canale spedizione) |
| COGTBPAP | cogtbpap.fd | Appendice testata BDP (flag Modula, lista collegata) |
| COGDOCCT | cogdocct.fd | Testata consolidamento documenti |
| COGDOCCM | cogdoccm.fd, .k03 | Movimenti consolidamento documenti |
| COGMDTES | cogmdtes.fd | Testata liste Modula |
| COGMDRIG | cogmdrig.fd | Righe liste Modula |
| FEURTAB | feurtab.fd / cogfiles.cpy | File tabelle Euro |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGM58 / COGM59 | Gestione/modifica buono di prelievo |
| COGP64 | Stampa buono di prelievo |
| COGP78 | Stampa etichette lotto |
| COGP19 | Stampa etichette sovrapacco |
| COGB64 | Selezione canale di spedizione (con F8 su campo canale) |
| COGD53 | Invio lista a Modula via DB Frontiera |
| COGD76 | Invio certificato dopo completamento consolidamento |
| COGMA3 | Navigazione filiera documento |
| COGSA0 | Creazione BDP singolo (usato nello sdoppiamento) |
| COGU10W | Utility valute/divisioni |
| COGU12 | Aggiornamento quantita' prenotate (consolidamento) |
| COGS65W | Selezione cliente/fornitore con ricerca |
| GRIDADMN | Gestore griglia interattiva |
| WMSU01 | Gestione locazioni documento |
| WIN085 | Finestra dettaglio BDP |
| RNEWCONF | Lettura configurazioni |
| GESSTR | Utility manipolazione stringhe |
Copybook principali¶
cogm65.select,cogm65.fd,cogm65.wrk,cogm65.prc,cogm65.decla,cogm65-01.scr-- Definizioni generate da Screenscostanti-tipi-documento.cpy-- Costanti tipo documento (es.k-doc-tip-buono-prelievo-c)costanti-modula.cpy-- Costanti per operazioni Modulak-u10.cpy,wrk-u10.cpy-- Definizioni utility valutecogazien.cpy-- Dati azienda (personalizzazioni, magazzino Modula)utilcogm65.cpy-- Interfaccia linkage per chiamata esternautilcogm59.cpy-- Interfaccia per richiamo COGM59utild53.cpy-- Interfaccia per richiamo COGD53utilcogsa0.cpy-- Interfaccia per richiamo COGSA0
Logica di Elaborazione¶
Modalita' di funzionamento¶
Il programma opera in due modalita':
| Modalita' | Condizione | Comportamento |
|---|---|---|
| Autonomo | Chiamata diretta da menu | L'utente compila la maschera di filtro e naviga i risultati |
| Richiamato (CALLED) | cogm65-called = "COGM65-CALLED" |
Riceve cliente, date, stato via linkage; l'utente seleziona un BDP e il programma ritorna cogm65-o-tbp-chia1 |
Caricamento dati (carica-cli)¶
- Se e' specificato un cliente, ricerca prima tutti i figli del cliente (tramite
ana-padresu COGGEANA chiave 4), poi il cliente stesso - Per ogni cliente trovato, esegue
ricerca-bdp: - Posiziona su COGTESBP con la chiave appropriata (k02=per data, k03=per data+cliente, k04=per stato+data+cliente)
- Scorre i BDP e applica i filtri: stato, tipo anagrafico, provvisorio, magazzino, invio Modula, inviato Modula
- Per ogni BDP valido, carica le righe da COGRIGBP
- Se il BDP e' chiuso, cerca la bolla collegata in COGGENER
- Se la gestione locazioni e' attiva, cerca la locazione via WMSU01
Filtro destinazione e canale¶
Il filtro sulla destinazione opera sull'ordine collegato al BDP (tramite COGCONOR > COGTESOR):
- Se
tm-escludi-dest = "N": include solo i BDP con la destinazione selezionata (tor-dst-id-idx = tm-dst-id-idx) - Se
tm-escludi-dest = "S": esclude i BDP con la destinazione selezionata (filtro inverso)
Il filtro sul canale di spedizione confronta il canale dell'ordine con quello selezionato in maschera.
Consolidamento BDP provvisori¶
Il consolidamento e' il processo con cui un BDP provvisorio viene confermato tramite scansione di barcode:
- L'utente scansiona un barcode nel campo
tm-c-mlt-chia1, che puo' essere: - Lotto interno: formato
AAAAAAAAAMPPPPPP(merce 9 + mag 1 + prog 6) - Lotto + quantita': formato
AAAAAAAAAMPPPPPPQQQQQQ - Barcode GAPI: formato
CCCCCCCCQQQQQQQQPPPPPPPPLLLLLLL(codice merce cliente 8 + qta 8 + parte 8 + lotto 7+) - Commessa di lavorazione: formato
AAAA/NNNNNNNN(anno 4 + "/" + numero 8) -- riconosciuto tramiteanalisi-lotto-commessa -
Barcode BDP: formato
BDP+ chiave testata 15 + riga 4 + qta 6 -
Il programma cerca il BDP corrispondente nella griglia con priorita':
- BDP con qta totale = qta letta
- BDP con qta residua da consolidare = qta letta
-
Primo BDP con qta residua >= qta letta
-
L'utente inserisce il codice cartone (
tm-c-cartone) e conferma -
Il programma crea un movimento di consolidamento in COGDOCCM e aggiorna la testata in COGDOCCT. Quando la qta consolidata raggiunge la qta del BDP, toglie il flag provvisorio e invia il certificato via COGD76
Parsing barcode GAPI (logica aggiornata)¶
Il lotto nel formato GAPI puo' essere allineato a sinistra (non piu' solo posizionale). Il programma:
- Calcola la lunghezza effettiva del lotto (
tm-c-lg-len) partendo dalla fine e riducendo finche' non trova un carattere non-spazio - Estrae anno (ultimi 2 caratteri) e numero (restanti) dinamicamente in base alla lunghezza calcolata
- Se il lotto "commessa" (anno/numero) non viene trovato in COGMERLT, tenta la ricerca con il codice GAPI originale (potrebbe essere un codice commerciale)
Formato lotto "Commessa di lavorazione"¶
Il paragrafo analisi-lotto-commessa riconosce il formato AAAA/NNNNNNNN (anno 4 cifre + "/" + numero fino a 8 cifre). Quando il barcode corrisponde a questo pattern, il campo tm-c-fl-commessa viene impostato a "S" e il lotto viene cercato in COGMERLT come commessa di produzione.
Sdoppiamento BDP parzialmente consolidato¶
Quando un BDP e' stato consolidato parzialmente e la merce restante e' gia' stata estratta da Modula:
- Verifica che la qta consolidata sia > 0 e < qta BDP
- Riduce la qta del BDP originale alla qta consolidata (tramite
completo-bdp-consolidato-parziale) - Crea un nuovo BDP per la qta residua tramite COGSA0 (con flag
invio-modula-prev = "N")
Check consolidamento (S-F8)¶
Funzione attivabile quando il DB Frontiera Modula e' configurato e un cliente e' selezionato. Scorre tutte le righe della griglia e confronta tmr-qta-eva-modula con tmr-qta-consol: se la quantita' evasa da Modula e' maggiore della quantita' consolidata, la riga viene contata come "incompleta". Alla fine mostra un messaggio con il numero di righe con consolidamento incompleto, oppure conferma che tutto e' in ordine.
Scopo: evitare che vengano emessi DDT senza tutto il materiale gia' prelevato dal magazzino automatico.
Variabili di working storage (build 2026/0426):
| Variabile | Descrizione |
|---|---|
w-modula-ok |
Flag: vale "S" se la configurazione modula-db-frontiera e' attiva |
w-fl-check-ko |
Flag: vale "S" se almeno una riga ha qta evasa Modula > qta consolidata |
w-n-righe-ko |
Contatore righe con consolidamento incompleto (qta evasa > qta consolidata) |
w-n-righe-ko-zeta |
Contatore righe con consolidamento incompleto = 0 (qta evasa > 0 e qta consolidata = 0) |
Il pulsante S-F8 ha codice k-sf8-check = 6 e usa la bitmap "commesse".
Colorazione righe griglia¶
Quando il DB Frontiera Modula e' attivo, ogni riga della griglia viene colorata in base allo stato di consolidamento. La colorazione e' gestita dal paragrafo set-row-color-custom e applicata tramite x-set-row-grid-color / row-grid-color / gdad-color.
| Colore | Codice | Condizione |
|---|---|---|
| Verde | 2401 | Consolidamento completo: qta_consol = qta e qta_consol > 0 |
| Giallo | 2529 | Consolidamento parziale: qta_consol < qta e qta_consol > 0 |
| Blu | 2433 | Packaging: lista_modula = 0 (prodotto confezionato direttamente senza transito Modula) |
| Nessun colore | -- | Non iniziato: consolidamento non ancora avviato |
Il campo Esito lista e' popolato solo quando tmr-lista-modula (k) <> 0, evitando valori privi di significato sulle righe di packaging.
Filtro Stato Modula (a-tm-stato-modula)¶
Il paragrafo a-tm-stato-modula applica il filtro sul campo tm-stato-modula durante il caricamento dei BDP in ricerca-bdp. Il campo ha default "T" (Tutti). I valori riconosciuti sono:
Valore tm-stato-modula |
Comportamento |
|---|---|
"T" |
Nessun filtro (tutti i BDP) |
"L" |
Lavorati: BDP con qta evasa Modula > 0 oppure BDP senza lista Modula assegnata (packaging diretto) |
"N" |
Non iniziati: BDP con lista Modula assegnata ma qta evasa Modula = 0 |
Invio lista a Modula (F6)¶
Attivo solo se: DB Frontiera abilitato, BDP nel magazzino Modula, provvisorio, da inviare, non ancora inviato. Esegue la sequenza DOC-PRECEDENTE / DOC-ATTUALE / DOC-ESEGUI su COGD53.
Configurazioni¶
| Gruppo | Parametro | Note |
|---|---|---|
| locazioni | gestione-tablet | Attiva la gestione locazioni sui BDP |
| sistmga001 | modula-db-frontiera | Attiva la modalita' DB Frontiera Modula (abilita colonne griglia, pulsante F6, filtri Modula) |
Storico Modifiche¶
| Build | Descrizione |
|---|---|
| 2024/0718 | Aggiunto tipo anagrafico (Cliente/Fornitore) su maschera e griglia |
| 2025/0119 | Gestione locazioni documento (se config attiva) |
| 2026/0042 | Integrazione Modula DB Frontiera: colonne griglia, filtri invio/inviato, pulsante F6 invio lista |
| 2026/0046 | Consolidamento BDP provvisori tramite barcode (lotto, GAPI, BDP) con movimenti COGDOCCM/COGDOCCT |
| 2026/0070 | Stampa etichette lotto (F5, COGP78); invio lista Modula (F6, COGD53) |
| 2026/0074 | Aggiunto filtro "Escludi destinazione" (tm-escludi-dest), fix parsing lotto GAPI con lunghezza dinamica, riordinamento campi maschera (canale prima di destinazione), aggiunta z-cambia-controlli dopo validazione destinazione, fix display controlli canale |
| 2026/0076 | Nuovo formato lotto "Commessa di lavorazione" (AAAA/NNNNNNNN): aggiunto paragrafo analisi-lotto-commessa, campo tm-c-fl-commessa per flag commessa; campo tm-c-lg-len per calcolo dinamico lunghezza lotto GAPI (non assume piu' allineamento a destra); fix a x-controlla-tm-canale-cod che aggiornava erroneamente i campi destinazione anziche' i campi canale |
| 2026/0426 | S-F8 check consolidamento: segnala BDP con qta evasa Modula maggiore della qta consolidata (evita spedizioni con DDT incompleto). Aggiunto filtro "Stato Modula" in maschera. Colorazione righe griglia in base allo stato di consolidamento (verde=completo, giallo=parziale, blu=packaging). Fix filtro canale: corretto confronto tm-canale-cod <> tmr-canale-cod (i) (prima confrontava erroneamente tor-dst-id-idx). S-F2 (filiera) disabilitato durante modalita' F12 (completa) e riabilitato alla disattivazione. Esito lista condizionato a tmr-lista-modula (k) <> 0. Cancellazione massiva BDP provvisori (S-F6): cancella tutti i BDP provvisori nella selezione corrente, con doppia conferma e progresso interrompibile (solo per personalizzazioni specifiche). S-F1 (sdoppiamento) temporaneamente disabilitato. Capacita' griglia da 900 a 1500 elementi. Dettaglio BDP richiama COGM58 (prima COGM59). |
Documentazione tecnica aggiornata -- 2026-04-28