OCA / l10n-italy

Odoo Italian localization
https://www.odoo-italia.org
GNU Affero General Public License v3.0
147 stars 301 forks source link

[BUG] Codifica errata dei caratteri speciali nell'anteprima delle fatture XML #4039

Closed odooNextev closed 5 months ago

odooNextev commented 5 months ago

Module

l10n_it_fatturapa

Describe the bug

Nell'anteprima della fattura (sia standard che Assosoftware) non vengono codificati correttamente i caratteri speciali (è, é, à, ecc) sia nelle label che nei valori inseriti dagli utenti.

To Reproduce

Affected versions:

Steps to reproduce the behavior:

  1. Aprire un runboat di l10n-italy
  2. Fatturazione -> fornitori -> file e-fatture in ingresso
  3. Aprire un record (probabilmente bisogna togliere "da registrare")
  4. Cliccare "mostra anteprima"

image

  1. Fatturazione -> configurazione -> impostazioni
  2. Raggiungere il paragrafo "Fatture elettroniche"
  3. Impostare "assosoftware" nello stile formato di anteprima
  4. tornare in Fatturazione -> fornitori -> file e-fatture in ingresso
  5. aprire un record (probabilmente bisogna togliere "da registrare")
  6. Cliccare "mostra anteprima"

image

odooNextev commented 5 months ago

Qua c'è l'encoding, ma non mi sembra sbagliato: https://github.com/OCA/l10n-italy/blob/16.0/l10n_it_fatturapa/models/ir_attachment.py#L130

TheMule71 commented 5 months ago

Qua c'è l'encoding, ma non mi sembra sbagliato: https://github.com/OCA/l10n-italy/blob/16.0/l10n_it_fatturapa/models/ir_attachment.py#L130

Infatti a naso mi pare più problema di encoding del preview. L'XML dovrebbe essere a posto.

stenext commented 5 months ago

Infatti a naso mi pare più problema di encoding del preview. L'XML dovrebbe essere a posto.

Esatto, i caratteri più usati vengono rappresentati correttamente nel XML. Non so però se è giusto che l'apostrofo "al contrario" usato nella descrizione di default del prodotto "imposta di bollo 2 euro" (come segnalavo ieri in https://discord.com/channels/753902328494424064/822435512391303209) viene sostituito con "?". Immagino ci sia da seguire una particolare codifica per standardizzare il file XML, quindi alcuni caratteri credo sia normale vengano "inibiti".

matteoopenf commented 5 months ago

@odooNextev puo' essere che hai il problema in locale e non su runboat o lo screen e' di runboat?

stenext commented 5 months ago

@matteoopenf gli screenshot sono di un runboat, ma l'ho testato anche in locale e su .sh

matteoopenf commented 5 months ago

@matteoopenf ho testato su runboat, in locale e su .sh

ah ok allora nulla, perche' tempo fa abbiamo avuto problemi anche noi con i caratteri speciali e poi mancava un pacchetto da installare, ci accadeva sui pdf delle fatture e degli so e dopo vari prove scoprimmo cosa mancava, ma ci accadeva solo in locale da noi. Ecco perche' ti ho chiesto pensavo ti accadesse solo in locale

matteoopenf commented 5 months ago

@odooNextev all'epoca comunque risolvemmo installando questo pacchetto fonts-dejavu-core non so se hai un ambiente di test locale dove provare, ho pensato di suggerirti

stenext commented 5 months ago

@matteoopenf grazie posso provare però ho visto che se non sbaglio non è un pacchetto pip, ma deb, quindi non potremmo metterlo nei requirements del modulo ed installarlo su .sh. Comunque sto controllando in debug e l'HTML viene generato correttamente in questo punto (link), è nel passaggio successivo che si "rompe" la codifica.

matteoopenf commented 5 months ago

@matteoopenf grazie posso provare però ho visto che se non sbaglio non è un pacchetto pip, ma deb, quindi non potremmo metterlo nei requirements del modulo ed installarlo su .sh. Comunque sto controllando in debug e l'HTML viene generato correttamente in questo punto (link), è nel passaggio successivo che si "rompe" la codifica.

si esatto c'e' questo inghippo per odoo.sh. Noi avevamo il medesimo problema html giusto pdf sbagliato ecco perche' mi ha fatto match nella mente. Solo che quando lo abbiamo scoperto era solo nostro il problema e non su odoo.sh per fortuna

stenext commented 5 months ago

@matteoopenf purtroppo non sono molto esperto di codifiche, ma sto indagando, un po' perchè l'hanno notato anche i clienti e un po' perchè volevo proporre la PR su odoo/odoo per vedere gli allegati con l10n_it_edi prendendo spunto da questo codice, ma questo problema è penalizzante. Ma la cosa che mi lascia perplesso è che sembra essere request.env["ir.actions.report"]._run_wkhtmltopdf([html]) a non interpretare correttamente i caratteri speciali ed è un metodo di Odoo standard... Forse bisogna passargli qualche parametro o magari posso provare a renderizzare direttamente l'HTML invece che creare un PDF

matteoopenf commented 5 months ago

@matteoopenf purtroppo non sono molto esperto di codifiche, ma sto indagando, un po' perchè l'hanno notato anche i clienti e un po' perchè volevo proporre la PR su odoo/odoo per vedere gli allegati con l10n_it_edi prendendo spunto da questo codice, ma questo problema è penalizzante. Ma la cosa che mi lascia perplesso è che sembra essere request.env["ir.actions.report"]._run_wkhtmltopdf([html]) a non interpretare correttamente i caratteri speciali ed è un metodo di Odoo standard... Forse bisogna passargli qualche parametro o magari posso provare a renderizzare direttamente l'HTML invece che creare un PDF

apri una issue su Odoo, magari spunta qualche info utile, ora ti ritrovo la mia essendo un problema simile

matteoopenf commented 5 months ago

@odooNextev https://github.com/odoo/odoo/issues/140145 ecco la mia di issue se puo' aiutare

stenext commented 5 months ago

@odooNextev odoo/odoo#140145 ecco la mia di issue se puo' aiutare

Ho controllato ed in locale era già presente fonts-dejavu-core

matteoopenf commented 5 months ago

@odooNextev odoo/odoo#140145 ecco la mia di issue se puo' aiutare

Ho controllato ed in locale era già presente fonts-dejavu-core

Allora il problema è altrove apri la issue e vediamo se viene fuori qualcosa

SirAionTech commented 5 months ago

In 14.0 non succede: image (da http://oca-l10n-italy-14-0-b47232dba4bb.runboat.odoo-community.org/fatturapa/preview/596)

Confermo che in 16.0 succede: image (da http://oca-l10n-italy-16-0-a7ccab05455a.runboat.odoo-community.org/fatturapa/preview/566)

stenext commented 5 months ago

@SirAionTech grazie per la segnalazione, ho aggiornato le versioni coinvolte nella issue. Tu, @TheMule71 o @eLBati sapete magari perchè è stato preferito creare un report PDF invece che renderizzare direttamente l'HTML come viene fatto anche da altre parti in Odoo con "report HTML"?

SirAionTech commented 5 months ago

@SirAionTech grazie per la segnalazione, ho aggiornato le versioni coinvolte nella issue. Tu, @TheMule71 o @eLBati sapete magari perchè è stato preferito creare un report PDF invece che renderizzare direttamente l'HTML come viene fatto anche da altre parti in Odoo con "report HTML"?

Non credo ci fosse un motivo particolare, da altre parti (tipo https://github.com/odoo/odoo/blob/35d0af1a9f197a5da1c31ed10f21b59dfc245581/addons/website_sale/controllers/main.py#L1621) viene anche ritornato un PDF. Il commit che aggiunse quella parte è https://github.com/OCA/l10n-italy/commit/f3652eb5f861a55efbec0788afa948ba3b238b39, ma non ci ho trovato nulla di particolare sul link dell'anteprima.

Per me si può anche cambiare e restituire invece un HTML (chi vuole poi si stampa il PDF dal browser).

odooNextev commented 5 months ago

@francesco-ooops ho aggiunto la PR