Vai al contenuto

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 Screens
  • costanti-tipi-documento.cpy -- Costanti tipo documento (es. k-doc-tip-buono-prelievo-c)
  • costanti-modula.cpy -- Costanti per operazioni Modula
  • k-u10.cpy, wrk-u10.cpy -- Definizioni utility valute
  • cogazien.cpy -- Dati azienda (personalizzazioni, magazzino Modula)
  • utilcogm65.cpy -- Interfaccia linkage per chiamata esterna
  • utilcogm59.cpy -- Interfaccia per richiamo COGM59
  • utild53.cpy -- Interfaccia per richiamo COGD53
  • utilcogsa0.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)

  1. Se e' specificato un cliente, ricerca prima tutti i figli del cliente (tramite ana-padre su COGGEANA chiave 4), poi il cliente stesso
  2. Per ogni cliente trovato, esegue ricerca-bdp:
  3. Posiziona su COGTESBP con la chiave appropriata (k02=per data, k03=per data+cliente, k04=per stato+data+cliente)
  4. Scorre i BDP e applica i filtri: stato, tipo anagrafico, provvisorio, magazzino, invio Modula, inviato Modula
  5. Per ogni BDP valido, carica le righe da COGRIGBP
  6. Se il BDP e' chiuso, cerca la bolla collegata in COGGENER
  7. 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:

  1. L'utente scansiona un barcode nel campo tm-c-mlt-chia1, che puo' essere:
  2. Lotto interno: formato AAAAAAAAAMPPPPPP (merce 9 + mag 1 + prog 6)
  3. Lotto + quantita': formato AAAAAAAAAMPPPPPPQQQQQQ
  4. Barcode GAPI: formato CCCCCCCCQQQQQQQQPPPPPPPPLLLLLLL (codice merce cliente 8 + qta 8 + parte 8 + lotto 7+)
  5. Commessa di lavorazione: formato AAAA/NNNNNNNN (anno 4 + "/" + numero 8) -- riconosciuto tramite analisi-lotto-commessa
  6. Barcode BDP: formato BDP + chiave testata 15 + riga 4 + qta 6

  7. Il programma cerca il BDP corrispondente nella griglia con priorita':

  8. BDP con qta totale = qta letta
  9. BDP con qta residua da consolidare = qta letta
  10. Primo BDP con qta residua >= qta letta

  11. L'utente inserisce il codice cartone (tm-c-cartone) e conferma

  12. 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:

  1. Calcola la lunghezza effettiva del lotto (tm-c-lg-len) partendo dalla fine e riducendo finche' non trova un carattere non-spazio
  2. Estrae anno (ultimi 2 caratteri) e numero (restanti) dinamicamente in base alla lunghezza calcolata
  3. 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:

  1. Verifica che la qta consolidata sia > 0 e < qta BDP
  2. Riduce la qta del BDP originale alla qta consolidata (tramite completo-bdp-consolidato-parziale)
  3. 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