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:
- Filtro merci: salta righe che non corrispondono al filtro merce (se specificato)
- Filtro Modula: se
modula-db-frontieraattivo, esclude merci conmer-modula = "S" - Filtro canale spedizione: se
cogpa0-canale-spedspecificato, include solo righe con canale corrispondente (da COGRORA2) - Calcolo disponibilita':
Disponibile = Giacenza - Prenotata - Inserimento nel transito: scrive il record su COGTRANS con quantita' e destinazione
Fase STAMPA (st-10)¶
- Legge il file di transito per chiave alternativa (destinazione + merce)
- Per ogni destinazione genera una sezione con intestazione
- Per ogni riga:
- Recupera dati merce da COGMERCI
- Verifica BDP collegati (
b-cerca-bdp) - Recupera codice merce cliente da COGMERCL
- Recupera ubicazione da COGRACMC
- Se assemblato: calcola disponibilita' componenti (
a1-valuta-disp-assemblati) - 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