COGP41L - Stampa fattura (PCL-5)¶
Descrizione¶
Stampa fattura nella versione standard in linguaggio PCL-5. Sotto-programma di stampa richiamato dalla catena di fatturazione. Non e' a menu utente diretto: viene invocato dai programmi di emissione fattura (COGV60*, COGV82*) come worker di stampa.
Storico modifiche¶
Disabilitata la soppressione del riferimento intervento in presenza di descrizioni variabili¶
E' stato asteriscato (commentato, "RIGHE ASTERISCATE PER SCAZZO") il blocco che, per i DDT
collegati a un intervento di assistenza esterno (az-assist = "S"), cercava le descrizioni
variabili tramite cerca-asncnfat / COGSA6 e, se il testo conteneva "ntervento" con riscontro su
asnindmg, impostava w-des-variabile-trovato = "S". E' stata inoltre disattivata la condizione
w-des-variabile-trovato = "N" nel test che scrive il riferimento all'intervento.
Effetto: il riferimento all'intervento viene ora scritto sul documento ogni volta che non
esiste un riferimento asncnfat (w-asncnfat-trovato = "N"), indipendentemente dalla presenza di
descrizioni variabili. La logica precedente (introdotta il 05.04.2017, rivista il 07.07.2025)
sopprimeva il riferimento in presenza di descrizioni variabili e causava la mancata stampa del
riferimento all'intervento in casi legittimi; per questo e' stata disabilitata.
A corredo, il contatore delle descrizioni variabili wni viene ora azzerato (move zero to wni)
prima della ricerca cerca-asncnfat, per evitare che un valore residuo di una riga precedente
influenzi il conteggio.
2026-06-30 - TASK-5356: cliente "Privato Consumatore" senza Partita IVA in fattura¶
Nel ramo di costruzione dell'intestazione documento che valorizza i campi ts5-piva e ts5-cod-fis (dati anagrafici dell'intestatario), e' stato aggiunto un controllo: se il cliente e' marcato come Privato Consumatore (ana-privato = "P"), il campo ts5-piva viene azzerato (move spaces to ts5-piva) anche quando l'anagrafica riporta una partita IVA significativa. Il codice fiscale (ts5-cod-fis) continua invece a essere stampato.
if ana-privato = "P"
move spaces to ts5-piva
end-if
Effetto: per i clienti privati la fattura non espone la Partita IVA (che per un consumatore finale non deve comparire), evitando incongruenze con l'anagrafica. Il controllo lato fatturazione che segnala l'anomalia all'operatore e' in COGV60NO (stessa TASK-5356).
2026-06-09 - Config prntstfatt / dicit-cortesia con valore "N" sopprime la cortesia SDI¶
Aggiunto un quarto controllo (oltre ai tre esistenti: tipo documento speciale, cliente estero non San Marino, prefattura) sul flag w-dicit-for-xml che attiva la "dicitura di cortesia di invio allo SDI" sul tracciato XML:
if tm-cfg-dicit-cortesia = "N"
move "N" to w-dicit-for-xml
end-if
La configurazione prntstfatt / dicit-cortesia era gia' letta dal programma in altri due punti (assegnazione dichiarazione di intento e ramo di stampa "C" = cortesia). Con questa modifica un valore esplicito "N" blocca la dicitura anche sul ramo XML generale, indipendentemente dagli altri criteri.
2026-05-29 - TASK-5146: codice valuta a 3 caratteri in totale fattura (PU6525)¶
In presenza di valuta estera, la stringa del totale fattura (etichetta PCL PU6525,…;LB <valuta> #;) usava il codice valuta a 2 caratteri (fat-currency). Per valute come GBP, JPY o altre con sigla a 3 caratteri questo era insufficiente.
La logica e' stata cambiata in:
- Lettura di
cogtabelconeuta-tipo = 56(tabella sigle valute estese) usandofat-currencycome chiave; - Se la sigla viene trovata, viene usato
euta-ve-sigla(3 caratteri) come etichetta valuta; - Se la sigla non viene trovata, si usa
fat-currencycome fallback (la riga viene ricostruita ineuta-ve-siglaper mantenere uniforme la stringa).
La modifica e' confinata al ramo when other dell'EVALUATE che genera l'etichetta del totale fattura per le valute diverse da Euro.
2026-04-10 - TASK-4523: bolla con righe contenitore, ricalcolo prezzi errato¶
Per bolle con righe contenitore (trs3-moa-fl-contenitore = 'S') quantita' 1, in casi specifici di arrotondamenti il prezzo risultava diverso dall'importo (con pre-no-sco = prezzo e pre-no-sco != importo). La stampa esponeva quindi un prezzo unitario non coerente con l'importo finale.
Aggiunto controllo prima del trasferimento dati alla riga di stampa: se la riga e' "contenitore" con quantita' 1 e si rileva la discrepanza, trs3-frg-pre-no-sco, trs3-frg-prezzo, wid-pre-no-sco e wid-prezzo vengono forzati a trs3-frg-importo, rendendo prezzo unitario e importo coincidenti.
Tabelle utilizzate¶
| Tabella | Accesso | Descrizione |
|---|---|---|
| FEURTAB | Lettura | Tabella euristica parametri |
| COGTRANS | Lettura | Tabella di transito (records di lavoro) |
| COGTABEL | Lettura | Tabella euristica; usata anche con euta-tipo = 56 per sigle valute estese (vedi sopra) |
| LODTMDES, LODTRDES | Lettura | Tabelle descrizione laboratorio (per varianti laboratorio della fattura) |
Note¶
- La copybook
cogp41l.selectdefinisce gli assignments dei file - Il programma fa parte della famiglia
COGP41*di varianti di stampa fattura (COGP41Fformato XYZ,COGP41MMR,COGP41SI,COGP41TS, ecc.)
Casistica problemi noti¶
Codice valuta a 3 caratteri sul totale fattura di cortesia (2026-06-10)¶
- Sintomo: La stampa fattura di cortesia esponeva il codice valuta a 2 caratteri (
fat-currency) sul totale finale; valute come GBP, JPY o altre sigle a 3 caratteri non venivano stampate correttamente. - Causa: Il ramo
when otherdell'EVALUATE che genera l'etichetta del totale fattura per valute non Euro usava direttamentefat-currency(2 char). - Correzione: Lettura di
cogtabelconeuta-tipo = 56per ottenereeuta-ve-sigla(3 char); fallback sufat-currencyse la sigla non e' presente in tabella. Modifica tracciata come TASK-5146. - Riferimento: dettaglio bug | ClickUp 869dc2jfz
Partita IVA stampata per clienti "Privato Consumatore" (2026-07-03)¶
- Sintomo: la stampa fattura esponeva la Partita IVA anche per clienti marcati "Privato Consumatore", per i quali non deve comparire.
- Causa: il campo
ts5-pivaveniva valorizzato dai dati anagrafici indipendentemente dal flag Privato Consumatore. - Correzione: nel ramo che valorizza i dati dell'intestatario, se
ana-privato = "P"il campots5-pivaviene azzerato (move spaces to ts5-piva); il codice fiscale (ts5-cod-fis) continua a essere stampato. L'avviso all'operatore sull'incongruenza anagrafica e' gestito daCOGV60NO(stessa TASK-5356). - Riferimento: dettaglio bug | ClickUp 869dq1zmq
Numero intervento e diciture errate su fatture con piu' interventi (2026-07-31)¶
- Sintomo: su fatture con piu' interventi il numero intervento veniva esposto solo sul primo intervento (con il luogo intervento spostato a destra), oppure la dicitura "Riferimento Vs.ordine:" veniva stampata due volte.
- Causa: una modifica del 06/08/2025 (aggiunta per la ricerca delle descrizioni variabili abbinate ai DDT di assistenza, marcatore/label
160726) non azzerava il contatore interventiwnitra un intervento e il successivo; dal secondo intervento in poi l'esposizione andava in errore. - Correzione: ripristinato l'azzeramento di
wniper ciascun intervento e commentate (asteriscate) le righe della modifica del 06/08/2025 (label160726) causa del problema. Rilasciato a Valle Service e Array. - Riferimento: dettaglio bug | ClickUp 869e4be63