Vai al contenuto

Buoni di prelievo (B5)

Panoramica

L'area buoni di prelievo comprende la gestione del ciclo di vita dei BdP: creazione/modifica, consolidamento e spedizione.

Programma Righe Funzione
COGM58 5.560 Inserimento/gestione buoni di prelievo
COGM65 - Consolidamento buoni di prelievo

COGM58 — Inserimento / Gestione Buoni di Prelievo

Identificazione

  • Programma: COGM58
  • Area: GESTBUONIP (Gestione Buoni di Prelievo)
  • Descrizione: Gestione completa ciclo di vita BdP — inserimento, modifica, visualizzazione, cancellazione con griglia dettaglio righe
  • Righe: 5.560 (SCREENS 2.13.x)
  • Menu: Magazzino > Buoni di Prelievo

Funzionalita' principale

COGM58 e' il programma centrale per la gestione dei Buoni di Prelievo (BDP): - CRUD completo su testata (COGTESBP) e righe (COGRIGBP) - Griglia dettaglio con aggiornamento saldi magazzino (COGU12) - Esplosione distinta base (COGS16) - Lettura barcode da memowand (COGS08) - Integrazione Modula DB-Frontiera (COGD53) - Gestione locazioni tablet (WMSW01) - Import/export interscambio documenti (COGPA9) - Cancellazione silenziosa da workflow (COGD25)

Modalita' di chiamata

Modalita' Chiamante Comportamento
Interattiva Menu Interfaccia completa con selezione BdP
Da COGM65 COGM65 Precarica BdP da parametri
Da COGF22 COGF22 Precarica BdP da parametri
Cancella-silent COGD25 Cancella BdP senza UI ed esce

Flusso operativo

1. Inizializzazione (apri, riga 457)

  • Controllo abilitazioni, init programma
  • Apertura file, lettura azienda
  • Caricamento configurazione RNEWCONF (3 gruppi, ~18 parametri)
  • Setup pulsanti custom (F7=Inserimento, F9=Azzera, S-F6=Esplodi)
  • Se cancella-silent: esegue cancellazione e termina

2. Selezione BdP (a4, riga 591)

Accettazione sequenziale:

Campo Riga Descrizione
tm-mag 706 Magazzino (obbligatorio, validazione COGMAGAZ)
tm-tbp-aa 761 Anno BdP
tm-num 797 Numero BdP (F7=nuovo, F9=ricerca COGM65)
tm-tbp-mm/gg 894 Mese/giorno (solo se tipo numerazione "L")

3. Controllo stato (a-fine-chiave, riga 976)

  • Lettura COGTESBP
  • Documento chiuso (tbp-fl-cls="C"): verifica legami bolle
  • Se nessun DDT collegato → offre riapertura
  • Se DDT collegato → blocco
  • Verifica collegamento Modula (COGMDTES/COGIMPCA)

4. Dati testata (righe 1217-1508)

Campo Riga Validazione
Data 1217 Coerenza con anno, fatturazione, consolidamento
Flag provvisorio 1265 Solo se config (090126)
Cliente 1310 F9 azzera numerazione se tipo='L'
Riferimento 1383 Riferimento cliente
Pagamento 1424 Visibile solo se config (111024)
Note 1472 Note documento

5. Griglia dettaglio (a-grid, riga 1513)

Griglia con righe BdP — merce, quantita', prezzo, lotto, sconti.

Tasti funzione: | Tasto | Funzione | |-------|----------| | CTRL-A | Aggiungi riga (disabilitato se Modula) | | CTRL-E | Elimina riga (disabilitato se Modula) | | F3 | Salva e torna a selezione | | F5 | Dettaglio merce (COGS47) | | F6 | Listino prezzi (cliente/data/merce) | | F7 | Prezzi precedenti (COGM12) | | F8 | Selezione lotto (WIN097, su cella lotto) | | S-F4 | Amministrazione griglia (GRIDADMN) | | S-F6 | Esplodi distinta base (COGO05E + COGS16) | | Menu popup | Esporta/Importa interscambio (COGPA9) |

6. Salvataggio (a-fine-dati-ok, riga 3553)

1. Validazione dati testata + griglia non vuota
2. Se inserimento: numerazione progressiva (COGS25)
3. Scrittura testata COGTESBP
4. Loop righe:
   a. Scrittura COGRIGBP
   b. Aggiornamento saldi magazzino (COGU12)
   c. Se Modula: COGD53
   d. Se descrizioni aggiuntive: COGGENER tipo DA
5. Dialog conferma → opzione stampa (COGP64)

7. Cancellazione (riga 2082)

  • Verifica abilitazione
  • Avviso preliminare Modula DB-Frontiera (riga 2125-2136): se tm-cfg-modula-db-frontiera = "S" e tm-qta-eva-modula > 0 (BDP collegato ad una lista di prelievo Modula gia' evasa), mostra un messaggio di ATTENZIONE con richiesta di conferma esplicita. Se l'utente non conferma con F3, la cancellazione viene interrotta con z-exception-prosegui = "N".
  • Conferma utente (F3)
  • Cancella righe COGRIGBP con update COGU12
  • Cancella legami COGGENER (tipo BB, EB)
  • Opzione: cancella legami bolle (F4)
  • Se Modula non-frontiera: COGD53 "Cancella B.d.P"
  • Se tablet: WMSW01

8. Controllo consegne (riga 1826)

Validazione QTA BdP contro consegne ordini: - Accumula QTA BdP su consegne (COGRIGOR + COGCONOR) - Verifica: QTA disponibile = QTA consegna - QTA consegnata - QTA BdP - Errore se negativo

9. Chiusura (fine, riga 1807)

  • Close file transito, chiudi window, destroy menu popup, exit

Funzioni speciali

Memowand (barcode reader)

Attivato se az-bar-code='T'/'M' e inserimento. Chiama COGS08, legge file sequenziale (EAN+QTA), popola griglia automaticamente.

Esplosione distinta base (S-F6)

Chiama COGO05E per selezione articolo, poi COGS16 per esplosione. Legge file transito TRAN-S16 e aggiunge righe componenti con listino.

Interscambio documenti (menu popup)

  • Esporta: COGPA9 selezione modello → scrivi COGPA9-DATI → COGPA9 esporta
  • Importa: COGPA9 importa → leggi COGPA9-DATI → aggiungi righe griglia

File principali

File Prefisso Operazioni Descrizione
COGTESBP tbp- R/W/D Testata BdP
COGRIGBP rbp- R/W/D Righe BdP
COGMERCI mer- R Anagrafica merci
COGGEANA ana- R Anagrafica clienti/fornitori
COGMAGAZ magz- R Magazzini
COGGENER gnr- R/W/D Legami documenti (tipo BB, EB, DA)
COGTESOR tor- R Testata ordini vendita
COGRIGOR ror- R Righe ordini vendita
COGCONOR cor- R Consegne ordini
COGMERLT mlt- R Lotti merci
COGTBPAP tb2- R/W/D BdP applicative (Modula)
COGMDTES mdt- R Flag collegamento Modula
COGIMPCA mpc- R/D Impegnativa carico Modula
TRAN-S16 trs-s16- R Transito esplosione distinta base
TRAN-S47 trs-s47- R/W/D Transito descrizioni aggiuntive
COGPA9-DATI t-pa9-d- R/W File interscambio documenti

Catena di chiamata

Programma Funzione
COGS25 Numerazione progressiva BdP
COGU12 Aggiornamento saldi magazzino
COGM65 Ricerca BdP avanzata (F9)
COGP64 Stampa BdP
COGD53 Elaborazione Modula
COGS16 Esplosione distinta base
COGO05E Selezione distinta base
COGS08 Scarico barcode memowand
COGM12 Prezzi precedenti
COGS47 Descrizioni aggiuntive
COGS14 Ricerca ordini cliente/merce
COGPA9 Import/export interscambio documenti
COGS01 Listino prezzi
COGS65W Selezione cliente
COGU02 Gestione IVA clienti esteri
COGU10/COGU10W Conversione/arrotondamento valute
WIN097 Selezione lotto (modale)
WMSW01 Gestione locazioni tablet
GRIDADMN Gestione griglia

Parametri RNEWCONF

Gruppo COGTESBP (9 parametri)

Chiave Campo Effetto
euta-c053-tip-num tm-cfg-tip-num Tipo numerazione: 'A'nnuale / 'L'etterale
euta-c053-ges-lav tm-cfg-ges-lav Gestione lavorazioni
euta-c053-merce-ser tm-cfg-merce-ser Merce servizi
euta-c053-perc-ce tm-cfg-perc-ce Percentuale commissioni
euta-c053-perc-ser tm-cfg-perc-ser Percentuale servizi

Gruppo Magazzino/Locazioni (3 parametri)

Chiave Campo Effetto
path-interscambio-dm tm-cfg-path-int-dm Path file interscambio
gestione-tablet tm-cfg-gestione-tablet Abilita WMSW01 locazioni tablet
modula-db-frontiera tm-cfg-modula-db-frontiera Modula con disabilitazione modifica righe

Gruppo COGV51 (6 parametri)

Chiave Campo Effetto
euta-c041-acc-sco tm-cfg-acc-sco Accorpamento sconti
euta-c041-qta-dec tm-cfg-qta-dec Decimali quantita'
euta-c041-vis-um tm-cfg-vis-um Visibilita' UM
euta-c041-pre-ctr tm-cfg-pre-ctr Controllo prezzi

Note tecniche

Gestione stato documento

  • 'A' = Aperto (modificabile)
  • 'C' = Chiuso (non modificabile)
  • Riapertura: consentita se chiuso ma senza DDT collegato (riga 1015-1085)

Chiavi database

  • COGTESBP: mag + aa + num (tipo 'A') oppure mag + aa + mm + gg + num (tipo 'L')
  • COGRIGBP: mag + aa + mm + gg + num + prog

Posizioni chiave

Storico modifiche (2026-05-21)

  • Avviso bloccante in cancellazione con lista Modula evasa: in fase di cancellazione, prima della richiesta "Confermi?" il programma controlla — se tm-cfg-modula-db-frontiera = "S" — la quantita' evasa cumulata sulle righe Modula (COGMDRIG.mdr-qta-evasa) della lista collegata. Se > 0 viene mostrato il warning "ATTENZIONE: questo buono e' collegato ad una lista di prelievo gia' evasa. Confermi la cancellazione?" e la cancellazione richiede una conferma esplicita aggiuntiva.
  • Calcolo quantita' evasa Modula in caricamento dati testata: il nuovo paragrafo ottieni-qta-evasa-modula somma mdr-qta-evasa per la lista tm-lista-modula (riempita da tb2-id-lista-modula). Eseguito solo se tm-cfg-modula-db-frontiera = "N" non e' attivo (cioe' solo se la configurazione DB-Frontiera Modula e' attiva) e se la lista esiste (tm-lista-modula <> 0).
  • Cleanup raccordi e legami in cancellazione: dopo c-cancella-righe e prima di del-cogtesbp, ora il programma esegue:
  • c-cancella-legame-isir — azzera il campo isir-bdp-controllo sulle righe di COGISIRR (chiave 4) che puntano al BDP cancellato (utilizza la nuova cogisirr.k04);
  • c-cancella-coggener chiamato tre volte con w-gnr-tip = CB, CM, CS — elimina i legami COGGENER lasciati dal BDP (collegamento BdP→BdC, matricole e serial chiari).
  • Nuovi campi tabella maschera: tm-lista-modula PIC 9(12) (id lista Modula) e tm-qta-eva-modula PIC 9(07)v999 (quantita' evasa cumulata).
  • Nuova copybook chiave: cogisirr.k04 per il lookup BDP→ISIR.

COGM65 — Consolidamento buoni di prelievo

COGM65 e' il programma di consolidamento dei buoni di prelievo — gestione lotti, barcode e completamento.

File: cbl/cogm65.cbl

Consolidamento

Flusso principale

a-consolidamento
    ├── a-tm-c-mlt-chia1 ──► Lettura lotto (barcode)
    │       └── x-controlla-tm-c-mlt-chia1
    │               ├── analisi-barcode-gapi (se 30+ caratteri)
    │               └── cerca-bdp-provv-lotto
    │
    ├── a-tm-c-qta-sel ────► Quantità da consolidare (F5 = prossimo BDP)
    │       └── x-controlla-tm-c-qta-sel
    │
    └── a-tm-c-cartone ────► Cartone/UDS
            └── consolida-bdp-selezionato
                    ├── crea-movimento-consolidamento (COGDOCCM)
                    ├── aggiorna-testata-consolidamento (COGDOCCT)
                    ├── aggiorna-tbp-rif-uds
                    └── completa-consolidamento-bdp (se qta completa)
                            └── Invia certificato via COGD76

Logica selezione BDP (cerca-bdp-provv-lotto)

La routine seleziona il BDP più appropriato con questa priorità:

  1. Prima passata: BDP con tmr-qta = tm-c-qta-sel (quantità totale = quantità letta)
  2. Seconda passata: BDP con tmr-qta-da-consol = tm-c-qta-sel (residua = letta)
  3. Terza passata: primo BDP con tmr-qta-da-consol >= tm-c-qta-sel

Requisiti per ogni BDP: - Collegato allo stesso lotto (mag, merce, prog) - Aperto (tm-fl-cls = "A") - Provvisorio (tmr-fl-provv = "P")

Formati barcode supportati

Formato Struttura Note
Standard AAAAAAAAAMPPPPPP Lotto interno 16 caratteri
Con quantità AAAAAAAAAMPPPPPPQQQQQQ Lotto + quantità
GAPI CCCCCCCCQQQQQQQQPPPPPPPPLLLLLLL 30+ caratteri

Funzionalita' specifiche per verticalizzazione Modula

Diverse funzionalita' di COGM65 sono attive solo quando la configurazione tm-cfg-modula-db-frontiera = "S" (verticalizzazione DB Frontiera Modula). In particolare:

  • Campo tmr-lista-modula / tmr-qta-eva-modula / tmr-esito-lista nella tabella in memoria (popolati da ottieni-esito-lista-modula e ottieni-qta-evasa-modula in fase di caricamento, cogm65.cbl:4205-4213)
  • Filtro Stato Modula (tm-stato-modula) sul loop di filtraggio a cogm65.cbl:4302
  • Filtri Da inviare / Inviato nella testata di ricerca
  • Tasto F6 (invio lista a Modula) e Shift-F8 (check consolidamento)
  • Colonne Modula nella griglia risultati

L'aggiornamento delle qta evase lato gestionale avviene tramite il processo batch DFNM03 (vedi flussi/modula.md), che sincronizza COGMDRIG.mdr-qta-evasa dal DB frontiera a ogni ciclo (anche con lista in stato EXE).

Filtro Stato Modula

Campo tm-stato-modula (accept a-tm-stato-modula a cogm65.cbl:702) con valori:

Valore Semantica Condizione sul filtro
T Tutti (default) Nessun filtro applicato
L Lavorati tmr-qta-eva-modula (i) > 0 OR tmr-lista-modula (i) = 0
N Non iniziati tmr-qta-eva-modula (i) = 0 AND tmr-lista-modula (i) <> 0

Il filtro "L" raggruppa due situazioni che dal punto di vista spedizione sono equivalenti: lavorazione Modula in corso o completata (qta evasa > 0) e BDP senza lista Modula (provenienti dal packaging, non transitano dal magazzino automatizzato). Logica a cogm65.cbl:4302-4327.

Controllo consolidamento (Shift-F8)

Tasto funzione attivato solo quando tm-cfg-modula-db-frontiera = "S" e' stato selezionato un cliente. Il pulsante custom e' indicizzato come k-sf8-check (valore 6) nella tabella w-pbc-*; l'evento keystroke e' s-f8. Attivato in x-attiva-tf-grid (cogm65.cbl:2452), gestito in a-accept-grid (cogm65.cbl:1613).

Paragrafo check-consolidamento-bdp (cogm65.cbl:2347): scorre la tabella in memoria tm-righe (da 1 a tm-pnt) e conta le righe con tmr-qta-eva-modula > tmr-qta-consol. Se ne trova almeno una, mostra un messaggio vbx-msg-info con il numero di righe problematiche e l'avvertenza sul rischio di DDT incompleto rispetto al materiale gia' estratto dal Modula.

Il controllo opera solo sulla tabella in memoria (griglia corrente), non sull'intero archivio COGTESBP/COGRIGBP. E' solo informativo: non blocca e non modifica dati. La disponibilita' e' subordinata alla verticalizzazione Modula: in un'installazione senza Modula il pulsante non viene mai attivato.

Tabelle coinvolte

File Prefisso Descrizione
COGTESBP tbp- Testata BDP
COGRIGBP rbp- Righe BDP
COGDOCCT docc- Testata consolidamento
COGDOCCM docm- Movimenti consolidamento
COGMERLT mlt- Lotti merce