Vai al contenuto

COGPA0 — Stampa Packing List Raggruppata

Sorgente: cbl/cogpa0.cbl | Tipo: Sottoprogramma di stampa | Program-ID: COGPA0

Menu: Programma non a menu — richiamato da procedure ordini/consegne


Scopo

Riceve in input piu' consegne, una alla volta, ne accumula le righe su un file di transito indicizzato, e alla fine esegue la stampa della packing list raggruppata per destinazione. Lavora in coppia con COGP86HT che gestisce la stampa singola.


Interfaccia

Il programma opera in modalita' chiamata (CALL). Viene invocato ripetutamente per aggiungere consegne al file di transito, e infine richiamato con l'operazione di stampa.

Operazioni

Operazione Descrizione
PREPARA Inizializza il file di transito COGTRANS
AGGIUNGI Aggiunge le righe di una consegna al file di transito
STAMPA Elabora il file di transito e produce la stampa raggruppata

File e Tabelle

File/Tabella Uso
COGTRANS File di transito indicizzato per accumulo righe consegne
COGTESOR Testata ordini clienti
COGCONOR Consegne ordini
COGMERCI Anagrafica merci
COGSLMAG Giacenze magazzino
COGMERCL Codici merce cliente
COGRACMC Codici ubicazione/componenti
COGDBASE / CLCDISEG / CLNDBASE Distinta base per articoli assemblati
COGPRENO Prenotazioni (k02)
COGRIGBP / COGTESBP Righe e testata BDP (k04)
COGISIRR Controlli ISIR
COGDESOR Descrizioni aggiuntive righe ordine
COGRORA2 Canale di spedizione
COGDESTI Destinazioni diverse
COGTABEL Tabelle generiche

Programmi chiamati

Programma Scopo
COGS54 Gestore form di stampa
COGU23 Utility merci/giacenze
GESSTR Utility stringhe/testi
RNEWCONF Lettura configurazioni

Struttura file di transito (COGTRANS)

Campo Tipo Descrizione
trs-mag x(01) Magazzino
trs-anno 9(04) Anno
trs-tipo x(01) Tipo documento
trs-numero 9(06) Numero documento
trs-prog 9(04) Progressivo riga
trs-dst-idx 9(04) Indice destinazione diversa
trs-merce x(30) Codice merce (esteso)
trs-merce-cod x(09) Codice merce interno
trs-qta-disp s9(07)v999 Quantita' disponibile
trs-qta-prenotata s9(07)v999 Quantita' prenotata

Chiave primaria: consegna + progressivo. Chiave alternativa: destinazione + merce + chiave primaria (usata per raggruppamento in stampa).


Logica di Elaborazione

Fase AGGIUNGI (a1-aggiungi-consegna)

Per ogni consegna ricevuta, scorre le righe di COGCONOR e per ciascuna:

  1. Filtro merci: salta righe che non corrispondono al filtro merce (se specificato)
  2. Filtro Modula: se modula-db-frontiera attivo, esclude merci con mer-modula = "S"
  3. Filtro canale spedizione: se cogpa0-canale-sped specificato, include solo righe con canale corrispondente (da COGRORA2)
  4. Calcolo disponibilita': Disponibile = Giacenza - Prenotata
  5. Inserimento nel transito: scrive il record su COGTRANS con quantita' e destinazione

Fase STAMPA (st-10)

  1. Legge il file di transito per chiave alternativa (destinazione + merce)
  2. Per ogni destinazione genera una sezione con intestazione
  3. Per ogni riga:
  4. Recupera dati merce da COGMERCI
  5. Verifica BDP collegati (b-cerca-bdp)
  6. Recupera codice merce cliente da COGMERCL
  7. Recupera ubicazione da COGRACMC
  8. Se assemblato: calcola disponibilita' componenti (a1-valuta-disp-assemblati)
  9. Stampa i dettagli formattati su 132 colonne

Regole di business

Articoli assemblati

Il programma rileva articoli assemblati cercando in COGRACMC codici "HTW" o verificando CLCDISEG per articoli fase 1. Per gli assemblati, ricalcola la disponibilita' basandosi sulle quantita' dei componenti: qta-kit = qta-componente × qta-consumo.

Esclusione merci Modula

Se modula-db-frontiera attivo, le merci con mer-modula = "S" sono escluse dalla packing list. I componenti assemblati con flag Modula vengono stampati ma contrassegnati con suffisso "(M)".

Filtro disponibilita'

Flag cogpa0-fl-disp Comportamento
"D" Include solo merci con disponibilita' positiva (trs-qta-disp > 0)
"T" Include tutte le merci

Codice merce cliente (TASK-819)

Per ogni riga, recupera il codice interno del cliente da COGMERCL (mcl-cmc). Concatena ubicazione + codice cliente se lo spazio lo permette; altrimenti mostra solo il codice cliente.

Controllo BDP

Come COGP86HT: i BDP chiusi o sotto controllo ISIR sono esclusi dal conteggio quantita'.


Configurazioni

Gruppo Parametro Note
ordcli stampa-packing-wordmdl Modello Word per la stampa
COGM85:M88 CAUSALE-PACKING-CONTO-ANTICIPI Causale per conto anticipi
ricegenera uso-cma Flag uso codici merce cliente
sistmga001 modula-db-frontiera Se attivo, esclude merci Modula (TASK-2969)

Storico Modifiche Rilevanti

Build Descrizione
2018/0552 Modifiche per gestire la packing list raggruppata per le sole merci disponibili
2019/684 Aggiunta stampa riferimento ordine
2025/0105 Aggiunto nel dettaglio il codice merce cliente MCL-CMC (TASK-819)
2025/0123 Aggiunta stampa del canale di spedizione
2026/0005 TASK-2969: modifiche per procedura Modula DB Frontiera; tolta initialize rcm-rec per problemi MAV

Documentazione tecnica generata automaticamente — 2026-03-20