COGF64 -- Scheda Ordini Distribuzione¶
Sorgente: cbl/cogf64.cbl | Tipo: Programma interattivo a griglia con filtri | Program-ID: COGF64
Menu:
- Ordini > Clienti > Visualizzazioni > Scheda Ordini Distribuzione
Scopo¶
COGF64 e' il programma principale di visualizzazione e gestione degli ordini di distribuzione (ordini cliente). Presenta una maschera di filtro e una griglia interattiva che mostra le consegne degli ordini aperti, con informazioni su quantita', importi, disponibilita', buoni di prelievo collegati, stato di evasione e note operative.
Il programma consente di:
- Ricercare le consegne per cliente, intervallo date (ordine o consegna), agente, tipo documento (ordini, pre-ordini, pre-preventivi), merce, destinazione, canale di spedizione, zona
- Visualizzare il dettaglio di ogni consegna: quantita' ordinate, consegnate, residue, giacenze, disponibilita', importi
- Creare buoni di prelievo (BDP) direttamente dalla griglia, con invio automatico a Modula se configurato
- Emettere bolle (fatturazione) a partire dalle consegne selezionate
- Stampare packing list (singola, raggruppata, per tutti gli ordini)
- Bloccare/sbloccare ordini (blocco amministrativo, produzione, magazzino)
- Chiudere ordini manualmente (S-F6)
- Sdoppiare righe parzialmente consolidate
- Consultare giacenze, dettaglio ordine, situazione produzione, note operative, filiera documento
- Marcare righe come "riconsegnate" (collegamento registro ISIR)
Puo' funzionare sia in modalita' autonoma (da menu) sia come programma richiamato (CALLED) per operazioni di "Completa Carico" o "Accantonamento Versamento".
Interfaccia utente¶
Maschera di filtro (tab-maschera)¶
| Campo | Variabile | Descrizione |
|---|---|---|
| Da data | tm-data-da |
Data inizio periodo (ordine o consegna) |
| A data | tm-data-a |
Data fine periodo |
| Tipo periodo | tm-tipo-periodo |
C = Data consegna, O = Data ordine |
| Tipo documento | tm-tp-ord / tm-tp-pre-ord / tm-tp-pre-pre |
S/N per Ordini, Pre-ordini, Pre-preventivi |
| Bloccati amm. | tm-bloccati-amm |
S = Mostra bloccati amministrativi |
| Bloccati prod. | tm-bloccati-prod |
S = Mostra bloccati produzione |
| Cliente | tm-cliente |
Codice cliente (0 = tutti) |
| Filtro padre | tm-fl-cli-padre |
S = Filtra anche sui figli del cliente padre |
| Dettaglio merce | tm-det-merce |
S = Una riga per ogni merce/consegna; N = Una riga per consegna |
| Locazione | tm-locazione |
Locazione magazzino (visibile solo con gestione tablet) |
| Destinazione | tm-dst-idx |
Indice destinazione (con F8 aiuto) |
| Escludi dest. | tm-fl-dst-esclusa |
S = Escludi la destinazione selezionata |
| Agente | tm-agente |
Codice agente (0 = tutti) |
| Ordini evasi | tm-ord-evasi |
S = Includi anche ordini gia' evasi |
| Importi | tm-fl-imp |
S = Calcola e visualizza importi |
| Lavorato | tm-fl-lavor |
T = Tutti, S = Solo lavorati, N = Solo non lavorati |
| Merce | tm-ms-* |
Filtro su gruppo/sottogruppo/codice merce |
| Canale sped. | tm-canale-sped |
Canale di spedizione (codice tabella CS); F8 = aiuto (COGB64) |
| Filtro evasione | tm-filtro-eva |
T = Tutti, E = Solo evasi, N = Solo non evasi |
| Filtro dispon. | tm-filtro-dispon |
T = Tutti, D = Solo disponibili, N = Solo non disponibili |
| Filtro RMA | tm-filtro-rma |
T = Tutti, S = Con RMA, N = Senza RMA |
| Filtro conto ant. | tm-filtro-c-ant |
T = Tutti, S = Con conto anticipi, N = Senza |
| Filtro addebiti | tm-filtro-add |
S = Solo addebiti, N = Escludi addebiti |
| Zona | tm-filtro-zona |
Zona anagrafica cliente |
Griglia (grid-det)¶
La griglia visualizza una riga per ogni consegna (o per ogni merce/consegna se dettaglio merce attivo). Le colonne principali includono:
| Colonna | Variabile | Descrizione |
|---|---|---|
| Consegna | t-gor-r-consegna-ed |
Riferimento consegna (mag/anno/tipo/numero) |
| Ordine | t-gor-r-ordine-ed |
Anno/numero/progressivo ordine |
| Data ordine | t-gor-r-data-ord |
Data decorrenza dell'ordine |
| Data consegna | t-gor-r-data-con |
Data consegna |
| Cliente | t-gor-r-cli-des |
Ragione sociale cliente |
| Destinazione | t-gor-r-dst-rag-soc |
Ragione sociale destinazione |
| Id dest. | t-gor-r-id-dest |
Codice identificativo destinazione |
| Merce | t-gor-r-merce-cm |
Codice merce (se dettaglio attivo) |
| Qta ordine | t-gor-r-qta-ord |
Quantita' ordinata |
| Qta consegnata | t-gor-r-qta-cons |
Quantita' gia' consegnata |
| Qta residua | t-gor-r-qta-res |
Quantita' ancora da consegnare |
| Qta giacenza | t-gor-r-qta-gia |
Giacenza magazzino per la merce |
| Qta prenotata | t-gor-r-qta-pren |
Quantita' prenotata (da BDP) |
| Qta ord. forn. | t-gor-r-qta-of |
Quantita' ordinata a fornitore |
| Qta prep. BDP | t-gor-r-qta-prep |
Quantita' in preparazione (BDP aperti) |
| Residuo netto | t-gor-r-res-netto |
Residuo ordine meno BDP in preparazione |
| Qta disponibile | t-gor-r-qta-dsp |
Disponibilita' effettiva (giacenza - prenotate - residui precedenti) |
| BDP | t-gor-r-bdp-ed |
Buono di prelievo collegato (mag/anno/numero) |
| Evadibilita' | t-gor-r-evad-sint |
Stato sintetico: Pronto / Totale / Nulla / percentuale |
| Importo | t-gor-r-importo |
Importo riga (se calcolo importi attivo) |
| Prezzo lordo | t-gor-r-pre-lor |
Prezzo lordo unitario |
| Sconti | t-gor-r-sco-1, t-gor-r-sco-2 |
Sconti percentuali |
| Prezzo netto | t-gor-r-pre-net |
Prezzo netto unitario |
| Note comm. | t-gor-r-no-com-des |
Note operative commerciali sull'ordine |
| Note mag. | t-gor-r-no-mag-des |
Note operative di magazzino sull'ordine |
| Agente | t-gor-r-age-des |
Descrizione agente |
| Blocchi | t-gor-r-blocco-amm, ..prod, ..mag |
Stato blocco amministrativo/produzione/magazzino |
| Canale sped. | t-gor-r-canale-spe / ..spe-d |
Codice e descrizione canale di spedizione |
| Conferma | t-gor-r-conferma |
Numero conferma ordine |
| Selezione | t-gor-r-selezione |
S/N per selezione multipla (in modalita' dettaglio merce) |
| Fl. altri | t-gor-r-fl-altri |
"*" se il cliente ha piu' ordini nella selezione |
| Riconsegnare | t-gor-r-riconsegnare |
S = Riga collegata a registro ISIR da riconsegnare |
| Flag Modula | t-gor-r-fl-modula |
Presenza merce su Modula |
| Flag lotti | t-gor-r-fl-lot |
Merce gestita a lotti |
| Flag SN | t-gor-r-fl-sn |
Merce gestita a serial number |
Tasti funzione¶
| Tasto | Funzione |
|---|---|
| F1 | Creazione BDP (se pulsante creazione BDP visibile) |
| F1 | Evasione in bolla (se pulsante evasione visibile) |
| F2 | Blocca/sblocca ordine (se gestione blocco attiva) |
| F2 | Giacenze merce (se dettaglio merce attivo, chiama COGV35) |
| F3 | Gestione documento consegna |
| F5 | Dettaglio rimanenza (WIN027) |
| F6 | Note operative ordine |
| F7 | Stampa packing list (COGP86 / COGPA0) |
| F8 | Dettaglio ordine (WIN015) |
| F9 | Situazione produzione (COGQ44) |
| F10 | Stampa packing list (COGP86) |
| F11 | Fatturazione BDP (COGP86/COGPA0 + COGS25) |
| S-F4 | Gestione colonne griglia (GRIDADMN) |
| S-F5 | Export Excel |
| S-F6 | Chiusura ordine (COGO45) |
| S-F9 | Riconsegna riga (aggiorna registro ISIR e BDP) |
| Invio | Selezione/deselezione riga (in modalita' dettaglio merce) |
| Right-click | Menu contestuale (popup) |
File e Tabelle¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGTESOR | cogtesor.fd, .k03 | Testata ordini (tabella principale di lettura, chiave 3: tipo+anno) |
| COGCONOR | cogconor.fd, .k02 | Conferme/consegne ordine (chiave 2: testata ordine) |
| COGGEANA | coggeana.fd | Anagrafica clienti/fornitori |
| COGTORAG | cogtorag.fd | Appendice testata ordini (blocchi amm./prod./mag.) |
| COGSLMAG | cogslmag.fd | Saldi magazzino (giacenze, prenotate, ordinate) |
| COGMERCI | cogmerci.fd | Anagrafica merci (flag Modula, lotti, SN) |
| COGDESTI | cogdesti.fd | Destinazioni cliente |
| COGDEST2 | cogdest2.fd | Destinazioni avanzate (id destinazione) |
| COGRORA2 | cogrora2.fd | Righe ordini avanzate (canale spedizione) |
| COGTABEL | cogtabel.fd | Tabelle generiche (CS = canali spedizione) |
| COGDESCR | cogdescr.fd | Descrizioni/note operative ordini |
| COGTESBP | cogtesbp.fd | Testata buoni di prelievo |
| COGRIGBP | cogrigbp.fd | Righe buoni di prelievo |
| COGTBPAP | cogtbpap.fd | Appendice BDP (flag Modula, lista collegata) |
| COGISIRR | cogisirr.fd, .k04 | Registro ISIR (riconsegne) |
| COGMERLK | cogmerlk.fd | Relazioni tra merci (stampo collegato) |
| COGSTAMP | cogstamp.fd | Stampi (tipologia) |
| COGRACMC | cogracmc.fd | Codice merce avanzato (classificazione addebiti) |
| COGRACMT | cogracmt.fd | Movimento codice merce avanzato |
| COGMERAP | cogmerap.fd | Dati appoggio merci (descrizione aggiuntiva) |
| COGMAGAZ | cogmagaz.fd | Anagrafica magazzini |
| TRAN-COGD25 | tran-cogd25.fd/.cpy | File transito dati accantonamento/carico |
| TRAN-S26 | tran-s26.fd/.cpy | File transito dati (external) |
| LODTMDES | lodtmdes.fd/.cpy | File transito note operative |
| COGTRANS3 | (inline FD) | File transito giacenze per locazione |
| FEURTAB | cogfiles.cpy | Tabella nomi file gestionale |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGM86 | Evasione ordine con creazione BDP |
| COGMA1 | Evasione in bolla |
| COGSA0 | Creazione BDP singolo (usato nella creazione diretta) |
| COGSA5 | Cancellazione BDP |
| COGD27 | Conferma evasione BDP |
| COGD53 | Invio lista a Modula via DB Frontiera |
| COGO45 | Chiusura ordine |
| COGP86 | Stampa packing list |
| COGPA0 | Stampa packing list raggruppata |
| COGQ44 | Situazione produzione per merce |
| COGV35 | Visualizzazione giacenze merce |
| WIN015 | Finestra dettaglio ordine |
| WIN027 | Finestra dettaglio rimanenza |
| COGS25 | Selezione/stampa documenti |
| COGS65W | Ricerca cliente/fornitore |
| COGS68W | Ricerca merce strutturata |
| COGB64 | Selezione canale di spedizione |
| COGF01 | Selezione articolo con filtro zona |
| COGU10 | Utility divisione contabile |
| COGU30 | Utility RMA |
| GRIDADMN | Gestore griglia interattiva |
| WMS002 | Selezione locazione magazzino |
| RNEWCONF | Lettura configurazioni |
| DIALOGS | Finestra dialogo con opzioni |
| COGG16 | Utility gestione generici |
| COGO10 | Utility gestione ordini |
Copybook principali¶
cogf64.select,cogf64.fd,cogf64.wrk,cogf64.prc,cogf64.decla,cogf64-01.scr-- Definizioni generate da Screenscostanti-modula.cpy-- Costanti per operazioni Modulak-personal.cpy-- Costanti personalizzazione per aziendak-tipi-cogtabel.cpy-- Costanti tipi tabella genericacogfiles.cpy-- Record tabella nomi filecogazien.cpy-- Dati aziendautilcogf64.cpy-- Interfaccia linkage per chiamata esternautilcogsa0.cpy-- Interfaccia per richiamo COGSA0utild53.cpy-- Interfaccia per richiamo COGD53
Logica di Elaborazione¶
Modalita' di funzionamento¶
| Modalita' | Condizione | Comportamento |
|---|---|---|
| Autonomo | Chiamata diretta da menu | L'utente compila i filtri e naviga i risultati in griglia |
| Richiamato (CALLED) | cogf64-called = "COGF64" |
Riceve operazione e documento via linkage; opera in contesto "completa carico" o "accantonamento versamento" |
Caricamento dati (b1-write-tran / b13-consegne)¶
- Posiziona su
COGTESORchiave 3 (tipo "C" = ordini clienti) - Per ogni ordine aperto, applica i filtri: periodo (data ordine o consegna), cliente, agente, blocchi, flag lavorato
- Per ogni ordine valido, scorre le consegne in
COGCONOR(chiave 2): - Se dettaglio merce attivo: una riga per ogni consegna con merce
- Se dettaglio merce disattivo: una riga per ogni consegna senza merce (testata)
- Applica filtri: ordini evasi, gruppo/sottogruppo merce, canale di spedizione, data consegna
- Per ogni consegna valida, compone il record della griglia (
a2-aggiorna-cogtrans): - Dati ordine/consegna, cliente, destinazione, agente
- Quantita': ordinate, consegnate, residue, giacenze, prenotate, ordinate a fornitore
- BDP collegato (cerca per consegna su COGTESBP/COGRIGBP)
- Note operative (commerciali e magazzino) da COGDESCR
- Importi e prezzi (se richiesto)
- Canale di spedizione da COGRORA2
- Flag: altri ordini stesso cliente, Modula, lotti, SN, riconsegna ISIR
- Seconda passata (
b-calcola-qta-dsp): calcola la disponibilita' netta scalando i residui delle righe precedenti per lo stesso articolo
Creazione BDP diretta (c-creazione-bdp-diretta)¶
Quando configurato (tm-cfg-prg-creazione-bdp = "C"), il programma crea BDP direttamente senza passare per COGM86:
- Controlla blocchi e prerequisiti
- Scorre il transito griglia ordinato per consegna
- Per ogni consegna con quantita' da evadere, crea un BDP tramite COGSA0
- Dopo la creazione, se configurato Modula DB Frontiera, invia automaticamente la lista a Modula (
c-invia-lista-bdp)
Invio lista a Modula (c-invia-lista-bdp)¶
Attivo solo se: DB Frontiera abilitato, configurazione BDP merci-lotto = "B", e il BDP e' nel magazzino Modula. Esegue la sequenza DOC-PRECEDENTE / DOC-ATTUALE / DOC-ESEGUI su COGD53.
Creazione BDP con lotti da Modula (c-crea-bdp-con-lotto-modula)¶
Flusso alternativo alla creazione "con lotto Area" (c-crea-bdp-con-lotto) attivato quando il chiamante passa wo-oper = 777 (flag w-flusso-disp-modula = "S"). In questa modalita' la disponibilita' a lotto viene letta direttamente da Modula (exp_ubicazioni, giacenza fisica), invece che dai lotti Area.
Algoritmo:
- Per ogni riga da evadere, chiama
DFNM02con operazione"lotti-disp-prelievo"per la merce e magazzino corrente (vedi DFNM02). DFNM02 restituisce un vettoredfnm02-o-ld-*con i lotti disponibili a Modula, mappati almlt-progArea e ordinati per data scadenza (FEFO). - Per ciascun lotto restituito, calcola la disponibilita' al netto dei BDP gia' aperti sul lotto (
c-cerca-prenotato-lotto). - Crea un BDP per ciascun lotto con quantita' = min(disponibile lotto, residuo riga), tramite
c-crea-bdp. - Invia immediatamente la lista a Modula con
c-invia-lista-bdpdopo ogni creazione. - Esce in anticipo se la quantita' richiesta e' stata interamente coperta o se l'invio a Modula viene interrotto.
A regime, questo flusso permette di prelevare lotti effettivamente disponibili a Modula senza dipendere dall'allineamento dei lotti gestionali Area.
Dispatch evasione con lotti Modula e invio lista senza BDP (c-creazione-bdp-diretta)¶
Dentro la guardia tm-cfg-modula-db-frontiera = "S" AND tm-cfg-bdp-merci-lotto = "B", per ogni riga con quantita' da evadere il programma sceglie il flusso di evasione secondo questo albero:
if w-flusso-lista-no-bdp = "S" -> invio lista SENZA bdp provvisorio
if t-gor-r-fl-modula = "S" -> c-invia-lista-senza-bdp
else -> avviso e riga ignorata
else
if w-flusso-disp-modula = "S" -> c-crea-bdp-con-lotto-modula (lotti Modula)
else -> c-crea-bdp-con-lotto (lotti Area)
Il flag w-flusso-lista-no-bdp e' impostato a "S" in apri per tutti gli operatori (il gating sperimentale su wo-oper = 777 e' commentato), quindi a regime il ramo attivo e' c-invia-lista-senza-bdp e i rami c-crea-bdp-con-lotto[-modula] sono di fatto non raggiunti.
Guardia articolo non-Modula (t-gor-r-fl-modula = "S"): la quantita' da evadere t-gor-r-qta-eva puo' essere valorizzata anche da un edit manuale in griglia (z-aggiorna-t-gor-r-qta-eva), che non filtra il flag Modula. Senza la guardia, digitando una quantita' su un articolo non gestito da Modula si sarebbe inviata erroneamente una lista a Modula. La guardia intercetta il caso: se la riga non e' Modula, mostra il messaggio "Attenzione, impostata una quantita' da evadere per un prodotto non Modula; ignoro la riga e proseguo con le altre" (vbx-msg-error) e salta la riga senza inviare nulla.
c-invia-lista-senza-bdp¶
Invia a Modula la richiesta di prelievo senza generare alcun BDP provvisorio: il BDP definitivo lo creera' a mano l'operatore dopo il prelievo fisico. La quantita' inviata e' min(residuo consegna, disponibilita' merce), dove il residuo e' t-gor-r-qta-eva (gia' nettato al grid build delle liste "LP" gia' inviate, vedi sotto) e la disponibilita' e' msal-qta - msal-qta-prenotata - accumulatore-di-sessione. L'invio avviene via CALL "COGD53" con d53-ope = "RICHIESTA-DIRETTA", d53-causale = "LP", una sola riga a sfuso con d53-lotto-int = 0 (lotto delegato a Modula) e d53-documento = chiave consegna. Al termine il messaggio riporta il numero di liste inviate (w-liste-inviate). Per non far scattare il messaggio "Nessun BdP da creare" (il contatore BDP resta a 0), la conclusione del flusso no-BDP esce con exit paragraph dopo il proprio messaggio.
La descrizione inviata a Modula ha il formato: BDP: M/AA/NNNNNN ## (C) CLIENTE dove:
M= magazzino,AA= anno (2 cifre),NNNNNN= numero BDP##= delimitatore(C)= prima lettera del canale di spedizione (se presente)CLIENTE= ragione sociale cliente
Eccezione: per GAPI Milano (personalizzazione Artic Seals, cliente 99, destinazione 69) la descrizione cliente viene sostituita con "GAPI MI".
Fatturazione (a6-fattura)¶
Scorre il file transito, crea una lista di BDP da fatturare e chiama COGP86/COGPA0 per la stampa e COGS25 per la generazione documenti.
Stampa packing list (a7-stampa-packing-list)¶
Per la personalizzazione Artic Seals offre un dialogo con 4 opzioni: raggruppata (tutte o solo disponibili), singola (ordine selezionato o tutti gli ordini). Per le altre personalizzazioni, stampa singola tramite COGP86.
Scelta classe articolo (m-scegli-classe-articolo)¶
Prima di ogni stampa packing list (singola, raggruppata, totale) il programma esegue m-scegli-classe-articolo per determinare la classe articolo da stampare:
- Se
tm-cfg-modula-db-frontiera <> "S": nessuna scelta, classe =k-classe-art-tutti(tutti gli articoli). - Se Modula DB Frontiera attivo: apre un dialogo (
DIALOGS) con due opzioni: - F5 = Articoli su Modula ->
k-classe-art-modula - F7 = Articoli fuori Modula ->
k-classe-art-no-modula
La classe scelta (m-classe-articolo) viene passata ai programmi di stampa: p86-classe-art per COGP86 (stampa singola e totale) e cogpa0-classe-art per COGPA0 (stampa raggruppata). COGPA0 usa il parametro nel paragrafo check-classe-articolo per filtrare le merci Modula / non-Modula. In questo modo l'operatore puo' produrre packing list separate per gli articoli gestiti dal magazzino automatico e per quelli prelevati manualmente. Le costanti k-classe-art-* sono definite in costanti-modula.cpy.
Configurazioni¶
| Gruppo | Parametro | Note |
|---|---|---|
| ordini | cogf64-qta-d | Formato quantita' decimali |
| ordini | cogf64-uso-cma | Uso codice merce avanzato |
| ordini | cogf64-gestione-negozio | Modalita' gestione negozio (evasione diretta) |
| ordini | utenti-sblocco-amm | Lista operatori abilitati allo sblocco amministrativo |
| ordcli | gestione-tor-fl-lavorato | Attiva filtro per flag "lavorato" sugli ordini |
| bdp | prg-creazione-bdp | Programma di creazione BDP: A = standard (COGM86), B = Blutekna, C = Creazione diretta |
| bdp | cogf64-bdp-merci-lotto | B = Creazione BDP con merci-lotto (richiede Modula DB Frontiera) |
| sistmga001 | modula-db-frontiera | Attiva modalita' DB Frontiera Modula (invio liste) |
| locazioni | gestione-tablet | Attiva gestione locazioni con filtro su giacenze locazione |
| COGO88 | cliente-padre | Codice cliente padre (per personalizzazione pasticceria) |
| COGO88 | cliente-padre-2 | Codice cliente padre 2 |
| cogm85 | M88:CAUSALE-PACKING-CONTO-ANTICIPI | Causale per conto anticipi su packing list |
| PRODUZIONE | CAU-AVA-PF | Causale avanzamento prodotto finito |
| PRODUZIONE | MAG-LOGISTICO | Magazzino logistico produzione |
| sistema | richiesta-conferma | Abilita richiesta conferma prima delle operazioni |
Personalizzazioni¶
Il programma ha comportamenti differenziati per azienda (az-personal):
| Personalizzazione | Differenze principali |
|---|---|
| Pasticceria MO | Periodo default = data odierna, ordinamento per data ordine + cliente, evasione in bolla diretta |
| Hi-Tech | Ordinamento per data consegna, esclusione cliente interno, importi disattivati |
| Artic Seals | Dettaglio merce forzato, calcolo disponibilita' con filtro, stampa packing list con opzioni multiple, eccezione GAPI Milano su invio Modula |
| BM Solution | Dettaglio merce forzato, ordinamento per cliente + ordine + riga, calcolo disponibilita' |
| Gruppo Arena | Gestione RMA su consegne |
Storico Modifiche¶
| Build | Descrizione |
|---|---|
| 2010/0325 | Aggiunta chiusura ordine (S-F6, COGO45) |
| 2016/0226 | Gestione locazioni tablet con filtro giacenze locazione |
| 2025/0918 | Filtro destinazione, filtro canale spedizione |
| 2025/1291 | Integrazione Modula DB Frontiera: invio lista dopo creazione BDP |
| 2026/0070 | Aggiunta flag lavorato, sdoppiamento righe parzialmente consolidate |
| 2026/0074 | Formato descrizione BDP accorciato (anno 2 cifre, delimitatore ##), aggiunto canale nella descrizione, eccezione GAPI Milano |
| 2026/0426 | Fix eccezione GAPI Milano: corretto riferimento destinazione da tm-dst-idx a t-gor-r-id-dest e descrizione cliente da tm-cli-des a t-gor-r-cli-des. BDP da accantonamento: aggiunta nota "Packaging" nella testata BDP (tbp-note) e forzatura flag provvisorio a "P". Aggiunta variabile a2-cliente-destinazione pic 9(05) in working storage. |
| 2026/0604 | Aggiunto flusso disponibilita' Modula: con chiamata wo-oper = 777 viene attivato w-flusso-disp-modula = "S" e per la creazione BDP con lotti viene usato il nuovo paragrafo c-crea-bdp-con-lotto-modula. Il flusso legge i lotti disponibili a Modula tramite DFNM02 operazione "lotti-disp-prelievo" (FEFO), mappa ciascun lotto al mlt-prog Area corrispondente, e crea un BDP per lotto con quantita' al netto dei BDP gia' aperti. Aggiunto copy "utildfnm02.cpy". |
| 2026/0616 | Scelta classe articolo nella stampa packing list: nuovo paragrafo m-scegli-classe-articolo, eseguito prima di ogni stampa (singola a71-, raggruppata a72-, totale a73-). Con tm-cfg-modula-db-frontiera = "S" apre un dialogo DIALOGS con F5 = Articoli su Modula (k-classe-art-modula) e F7 = Articoli fuori Modula (k-classe-art-no-modula); altrimenti forza k-classe-art-tutti. La classe (m-classe-articolo) e' passata via p86-classe-art a COGP86 e cogpa0-classe-art a COGPA0. Inoltre il flusso "invio lista senza BDP provvisorio" (w-flusso-lista-no-bdp = "S") e' ora attivo per tutti gli operatori (rimosso il gating sperimentale su wo-oper = 777). Estratto il paragrafo m-completa-d53-des (composizione descrizione lista: canale + eccezione GAPI MI) condiviso tra c-invia-lista-bdp e il flusso senza BDP. BDP da accantonamento: nota "Packaging" e flag provvisorio "P" impostati sempre (rimossa la guardia if tbp-fl-provvisorio <> "P"). |
| 2026/0612 | Aggiunto flusso invio lista di prelievo a Modula senza creazione di BDP provvisorio (nuovo paragrafo c-invia-lista-senza-bdp, marcatore *>DOC: a riga ~7601). Attivato dal flag w-flusso-lista-no-bdp = "S" posto solo per wo-oper = 777; nel punto di dispatch dell'evasione con lotti ha precedenza su c-crea-bdp-con-lotto-modula e c-crea-bdp-con-lotto. La quantita' inviata e' min(residuo consegna, disponibilita' merce): residuo = t-gor-r-qta-eva meno quanto gia' richiesto per la consegna (c-qta-inviata-consegna, somma mdr-qta-ric delle liste Modula con mdt-stato="A" e mdt-causale="LP" per mdt-doc = t-gor-r-consegna); disponibilita' merce = msal-qta - msal-qta-prenotata meno l'accumulatore di sessione (c-cerca-acc-inviato/c-agg-acc-inviato, tabella acc-inv-* per merce). L'invio avviene via CALL "COGD53" con d53-ope="RICHIESTA-DIRETTA", d53-causale="LP", d53-tip-doc="V", una sola riga a sfuso con d53-lotto-int=0 (lotto delegato a Modula) e d53-documento = chiave consegna (t-gor-r-consegna). Nessun BDP creato: il BDP definitivo verra' inserito a mano dopo il prelievo fisico; il messaggio finale riporta w-liste-inviate. Aggiunte working w-qta-inviata-consegna e w-acc-inv-qta; aggiunto copy "cogmdtes.k02". |
| 2026/0617 | Netting delle liste "LP" spostato alla costruzione della griglia (z-grid-det-crea-transito, marcatore *>DOC:). Le liste "LP" gia' inviate a Modula non generano BDP ne' prenotato, quindi senza correttivo l'ordine resterebbe "disponibile" e si rischierebbero doppie allocazioni. Ora gia' in fase di costruzione del record griglia, se w-flusso-lista-no-bdp = "S", si esegue c-qta-inviata-consegna e si scala dalla quantita' da evadere (t-gor-r-qta-eva) la quantita' gia' richiesta, valorizzando t-gor-r-id-modula (prima lista) e t-gor-r-qta-modula; cosi' la griglia mostra il residuo reale. Di conseguenza c-invia-lista-senza-bdp usa direttamente t-gor-r-qta-eva come residuo (gia' nettato a monte), senza ricalcolare il netting. |
| 2026/0618 | Guardia articolo non-Modula nel dispatch dell'invio lista senza BDP (c-creazione-bdp-diretta). Poiche' t-gor-r-qta-eva puo' essere valorizzata anche da edit manuale in griglia (z-aggiorna-t-gor-r-qta-eva), che non filtra t-gor-r-fl-modula, prima di c-invia-lista-senza-bdp e' stato aggiunto il controllo if t-gor-r-fl-modula = "S": se la riga e' Modula invia la lista, altrimenti mostra l'avviso "Attenzione, impostata una quantita' da evadere per un prodotto non Modula; ignoro la riga e proseguo con le altre" (vbx-msg-error) e salta la riga. Evita l'invio errato di liste a Modula per articoli non gestiti dal magazzino automatizzato. Documentata anche la nota "Packaging" su tbp-note impostata sempre per i BDP da accantonamento versamento (insieme a tbp-fl-provvisorio = "P"). |
Documentazione tecnica aggiornata -- 2026-06-18