Vai al contenuto

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:

  1. legge la configurazione di stampa (RNEWCONF + COGTABEL chiave PRNT/ORDNFO);
  2. individua il modello di stampa/tabelle di dettaglio tramite COGPA3;
  3. 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;
  4. produce il documento (WORDMDL operazione Esegui), 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 > 36 e rcm-des not = spaces, si usa rcm-des come descrizione della riga (w-des);
  • se dopo questo controllo w-des risulta ancora a spazi, si applica il fallback su mer-descr (descrizione da anagrafica merce COGMERCI).

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-des nel ramo di lettura fallita di COGRACMC (if not w-verbo-ok), cosi' rcm-des non viene piu' cancellato quando la lettura non trova il record;
  • e' stata aggiunta una inizializzazione difensiva di rcm-cod-ava e rcm-len (a spazi/zero) quando la lettura di COGRACMC fallisce; 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 (copybook utilcogo25m.cpy): chiave dell'ordine da stampare (cogo25m-anno, cogo25m-numero, cogo25m-progr), flag cogo25m-esporta-modello (se "S", restituisce il modello selezionato in cogo25m-cogpa3-modello; usato dalla stampa multipla di COGO77) e cogo25m-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 = LM taglio lamiere, PR profilati) e alla nazionalita' del fornitore (modello -ENG per fornitore estero, cioe' ana-st-cod diverso da spazi e da ITA). Il path del modello viene forzato a tm-modello (restituito da COGPA3) quando non e' attivo il taglio lamiere.
  • Per la divisa estera, la sigla stampata usa euta-ve-sigla (3 caratteri, COGTABEL tipo 56) con fallback su tor-currency se la sigla non e' presente in tabella.
  • La stampa multipla (chiamata da COGO77 con cogo25m-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 estesa rcm-des di COGRACMC quando rcm-len > 36.
  • Correzione: la descrizione estesa rcm-des viene usata quando rcm-len > 36 e non e' a spazi, con fallback su mer-descr (vedi Storico modifiche, TASK-5607). La stessa modifica e' stata applicata alla stampa ordini clienti COGO65M.
  • Riferimento: dettaglioClickUp 869e4c3ex