COGO25M - Stampa ordini fornitori (versione standard su file Word)¶
Descrizione¶
Worker di stampa dell'ordine fornitore nella versione standard basata su modello Word (WORDMDL). Non e' un programma a menu (non compare in prog.txt): viene richiamato dalla catena di invio/stampa degli ordini fornitori tramite i programmi COGO25NO e COGO77 (stampa multipla).
Il programma:
- legge la configurazione di stampa (RNEWCONF +
COGTABELchiavePRNT/ORDNFO); - individua il modello di stampa/tabelle di dettaglio tramite
COGPA3; - costruisce le righe dell'ordine (testata, righe merce, taglio lamiere/profilati, buoni di versamento, prenotazioni) scrivendo i relativi tag XML che alimentano il modello Word tramite
WORDMDL; - produce il documento (
WORDMDLoperazioneEsegui), lo stampa oppure lo instrada come email al fornitore in base alla periferica selezionata (s54-tipo-periferica = "MAIL").
Quando l'ordine include disegni allegati (tabella TAB-DISEGNI) e la periferica e' MAIL, l'invio email non viene delegato a WORDMDL ma eseguito direttamente dal programma tramite POSTA/MYMAIL, in modo da poter allegare al messaggio l'ordine in PDF e i disegni estratti (fino a 9 allegati).
Storico modifiche¶
2026-07-16 - TASK-5607: descrizione merce estesa da COGRACMC (rcm-des)¶
Introdotto l'uso della descrizione merce estesa rcm-des letta da COGRACMC (record raggruppamento codici merce avanzati, letto con rd-cogracmc-chia2). La regola applicata e':
- se
rcm-len > 36ercm-des not = spaces, si usarcm-descome descrizione della riga (w-des); - se dopo questo controllo
w-desrisulta ancora a spazi, si applica il fallback sumer-descr(descrizione da anagrafica merceCOGMERCI).
La logica compare in due rami di costruzione della descrizione riga (intorno alla riga 1544 e alla riga 4904 del sorgente), coerenti con il precedente comportamento gia' presente per la costruzione di w-des-1/w-des-2 (PBUG-1111).
A corredo, per non azzerare erroneamente la descrizione estesa:
- e' stato rimosso il precedente
move spaces to rcm-desnel ramo di lettura fallita diCOGRACMC(if not w-verbo-ok), cosi'rcm-desnon viene piu' cancellato quando la lettura non trova il record; - e' stata aggiunta una inizializzazione difensiva di
rcm-cod-avaercm-len(a spazi/zero) quando la lettura diCOGRACMCfallisce; questa protezione e' presente sia nei rami di costruzione descrizione (righe 1539-1542 e 4899-4902) sia nel ramo di estrazione allegati/disegni (righe 3101-3104).
Effetto: nelle righe con codice merce avanzato dotato di descrizione lunga (oltre 36 caratteri), l'ordine espone la descrizione estesa; negli altri casi resta la descrizione anagrafica standard.
Cambio destinatario email ordini per Artic Seals¶
Nel ramo di invio email con allegati (s3-invia-email-con-allegati), per l'azienda Artic Seals (az-personal = k-personal-artic-seals) l'indirizzo email di invio ordini (posta-email) e' stato cambiato da carlo.corso@articseals.it a sofia.valla@articseals.it. Il vecchio indirizzo resta commentato nel sorgente.
* if az-personal = k-personal-artic-seals
* move "carlo.corso@articseals.it" to posta-email
* end-if
if az-personal = k-personal-artic-seals
move "sofia.valla@articseals.it" to posta-email
end-if
Parametri di ingresso¶
Il programma e' invocato con:
procedure division using stringhe util-cogo25m util-o25
util-s54 s54-dati-invio.
util-cogo25m(copybookutilcogo25m.cpy): chiave dell'ordine da stampare (cogo25m-anno,cogo25m-numero,cogo25m-progr), flagcogo25m-esporta-modello(se"S", restituisce il modello selezionato incogo25m-cogpa3-modello; usato dalla stampa multipla diCOGO77) ecogo25m-cogpa3-modello(id modello forzato).util-o25(utilo25.cpy): parametri di stampa dell'ordine (es.o25-fl-pre).util-s54/s54-dati-invio(utils54.cpy): dati di periferica/invio (s54-prf-sel,s54-tipo-periferica), usati per instradare stampa o email.
Tabelle utilizzate¶
| Tabella | Accesso | Descrizione |
|---|---|---|
| COGTESOR | Lettura | Testata ordine (tor-*); chiave tipo/anno/numero/progr |
| COGTORAG | Lettura | Dati di raggruppamento/aggiuntivi ordine (tar-*), incl. tar-tipo-speciale (LM/PR) e gruppo azienda |
| COGRIGOR | Lettura/Start | Righe ordine (ror-*) |
| COGGEANA | Lettura | Anagrafica generale (fornitore/intestatario); da qui ana-st-cod per il fornitore estero e ana-privato |
| COGANAPP | Lettura | Anagrafica appoggio (contatti/riferimenti) |
| COGAPPOG | Lettura | Dati di appoggio |
| NUTBANAS | Lettura | Dati bancari/anagrafici accessori |
| COGGENER | Lettura | Dati generali |
| COGMERCI | Lettura | Anagrafica merce (mer-descr, ecc.) |
| COGMERAP | Lettura | Anagrafica merce appoggio |
| COGMERFO | Lettura/Start | Codici/descrizioni merce per fornitore (mfr-cod-for, mfr-desc) |
| COGRACMC | Lettura | Raggruppamento codici merce avanzati (rcm-cod-ava, rcm-des, rcm-len); chiave secondaria .k02 |
| COGRORAG / COGRORA2 | Lettura | Dati di raggruppamento riga ordine (ra2-*) |
| COGTABEL | Lettura | Tabella euristica: config stampa euta-tipo=70 PRNT/ORDNFO; sigla divisa estera euta-tipo=56 (euta-ve-sigla) |
| COGRIFER | Start | Riferimenti (chiave .k02) |
| COGRIGCM | Start | Righe merce/certificazioni (chiave .k02) |
| COGCONOR | Start | Condizioni ordine (chiave .k05) |
| COGDESOR | Lettura/Start | Descrizioni ordine |
| COGDESAG | Lettura/Start | Descrizioni aggiuntive |
| COGDESCR | Lettura | Descrizioni codificate (tipi k-tipi-cogdescr) |
| COGIMAGE | Start | Immagini/allegati documento (chiave .k02) |
| COGDBASE | Start | Distinta base / esplosione DB |
| COGTESCM | Lettura | Testata certificazioni merce (tsc-*, es. CUP) |
| COGMAGAZ | Lettura | Magazzino |
| PRNTOPER | Lettura | Parametri operatore di stampa |
| TGLMATER | Lettura | Materiali taglio lamiere |
| TGLDESGN | Lettura | Disegni/designazioni taglio lamiere |
| CRMINFTR | Lettura | Informazioni certificazione merce |
| COGTRANS | I-O (temporaneo) | File di transito di lavoro (#$COGO25.<oper>), chiavi .k01-.k04 |
| COGTRAN2 | I-O (temporaneo) | Secondo file di transito (#$BOGO25.<oper>), chiave .k01 |
I due file di transito COGTRANS/COGTRANS2 sono file temporanei per operatore, creati e distrutti dal programma.
Configurazioni lette¶
Da COGTABEL (euta-tipo = 70, PRNT/ORDNFO)¶
Impostazioni di stampa dell'ordine fornitore (euta-c005-*): data consegna/ordine, indirizzo, descrizione merce, descrizione aggiuntiva, tipo codice, ordinamento per data, flag descrizione. In assenza di record si applicano i default (dat-con=C, des-mer=I, tip-cod=F, ecc.).
Da RNEWCONF (x99-confi)¶
| Gruppo | Chiave | Uso |
|---|---|---|
| ordfor | fornitore-buoni-versamento | Fornitore per buoni di versamento (tm-cfg-bv-for) |
| PROGCOGO55 | euta-c015-n-righe | Numero righe |
| RICEGENERA | USO-CM / USO-CMA | Codice principale merce (interno/avanzato) |
| abilita | taglio-lamiere | Attiva la variante taglio lamiere/profilati |
| contatti | posizione-invio-ordini-fornitori | Riferimento contatto invio ordini |
| ordfor | stampa-qta-a-confezione | Stampa quantita' a confezione |
| tagliolm | tab-crm-tipo-cert | Tabella tipo certificato |
| ARC-OTT | PATH-APRI-FILE | Path di destinazione allegati/disegni |
| ordfor | stampa-esplosione-db | Stampa esplosione distinta base |
| prenotazio | attiva-prenotazioni | Attiva colonne di prenotazione |
| prntordcli | stampa-dag-merce | Stampa disegno/allegato merce |
Programmi chiamati¶
| Programma | Ruolo |
|---|---|
| COGPA3 | Selezione modello di stampa e tabelle di dettaglio (TAB-RIGHE-01, TAB-DISEGNI) |
| WORDMDL | Motore di produzione documento Word: Apri-XML, Aggiungi-XML, Esegui; gestione stampa/mail e save-as PDF |
| RNEWCONF | Lettura configurazioni generiche |
| COGU30 | Verifica documento collegato (RMA) |
| COGU10W | Conversione/edit valori (u.m., quantita', prezzi, importi, divisa) |
| COGU03 | Utilita' su dati anagrafici/appoggio |
| COGU06 | Estrazione allegato/disegno da documento |
| COGG31 | Calcoli su righe/quantita' fornitore |
| TGLS02 | Gestione taglio lamiere (righe TGL) |
| GESSTR | Gestione stringhe/righe descrittive |
| COGSA0 | Dati riga/prenotazione (accumulo ordini collegati) |
| COPIAF | Copia/spostamento/cancellazione file allegati (con override) |
| CBL_DELETE_DIR | Rimozione cartella temporanea allegati |
| POSTA / MYMAIL | Invio email al fornitore con ordine PDF e disegni allegati |
Copybook¶
- Select/FD/wrk/prc/decla:
cogo25m.select,cogo25m.fd,cogo25m.wrk,cogo25m.prc,cogo25m.decla - Chiavi secondarie:
cogconor.k05,cogracmc.k02,cogrifer.k02,cogrigcm.k02,cogimage.k02,cogtrans.k01-.k04,cogtran2.k01 - Costanti/tipi:
k-personal.cpy,costanti-tgls.cpy,costanti-tipi-documento.cpy,k-tipi-cogdescr.cpy,messaggistica-ext.cpy - Working standard:
wgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpy - Utility (linkage moduli):
utilncnf.cpy,utilg31.cpy,utilu03.cpy,utilu06.cpy,utilu10.cpy,utilu22.cpy,utilu30.cpy,utilw92.cpy,utilcogsa0.cpy,utiltgls02.cpy,utilgesstr.cpy,l-copiaf.cpy,utilpost.cpy,utilmymail.cpy,utilwordmdl.cpy,utilcogpa3.cpy - Linkage:
wcont.cpy,u-copiaf.cpy,wcont1.cpy,utilcogo25m.cpy,utilo25.cpy,utils54.cpy
Note¶
- Il programma seleziona automaticamente il modello Word in base a
az-personal(personalizzazione azienda), al tipo speciale ordine (tar-tipo-speciale=LMtaglio lamiere,PRprofilati) e alla nazionalita' del fornitore (modello-ENGper fornitore estero, cioe'ana-st-coddiverso da spazi e daITA). Il path del modello viene forzato atm-modello(restituito da COGPA3) quando non e' attivo il taglio lamiere. - Per la divisa estera, la sigla stampata usa
euta-ve-sigla(3 caratteri,COGTABELtipo 56) con fallback sutor-currencyse la sigla non e' presente in tabella. - La stampa multipla (chiamata da
COGO77concogo25m-esporta-modello = "S") disattiva l'interfaccia interattiva di WORDMDL (wordmdl-interfaccia = "N").
Casistica problemi noti¶
Descrizioni merci lunghe troncate in stampa ordini¶
- Sintomo: nella stampa Word degli ordini (clienti/fornitori) le descrizioni merce oltre i 36 caratteri risultavano troncate, mostrando la sola descrizione anagrafica base.
- Causa: la composizione della descrizione di riga usava direttamente
mer-descr(36 caratteri) senza considerare la descrizione estesarcm-desdi COGRACMC quandorcm-len > 36. - Correzione: la descrizione estesa
rcm-desviene usata quandorcm-len > 36e non e' a spazi, con fallback sumer-descr(vedi Storico modifiche, TASK-5607). La stessa modifica e' stata applicata alla stampa ordini clienti COGO65M. - Riferimento: dettaglio — ClickUp 869e4c3ex