ingadhoc/odoo-argentina

Odoo V12 CE - Código en invoice.py Afecta a la generación de QR en ticket de FE por el POSBOX

marionumza opened this issue · 2 comments

Al lanzar un ticket al POSBOX el mismo sale impreso con un error que dice "Image height is longer than 255px and can`t be printer" y deja con un bug el POSBOX el cual hay que reiniciar

Version affectada:

8.0 - 12.0

Pasos para reproducir:

  1. En cualquiera de las versiones pero supongamos la V11: instalar los siguientes repositorios
  1. Instalar el modulo l10n_ar_pos_einvoice_ticket
  2. Configurar un certificado de Factura electrónica para homologación
  3. Setear una sesión del POS para que haga Facturas con un diario de factura electrónica
  4. Hacer una Factura
    Lo que pasa actualmente:
    Al hacer la factura, la hace realmente, sin embargo, el POSBOX al intentar imprimir el código QR se buguea, sale la mitad del ticket bien y la mitad con un error y es necesario reiniciar el POSBOX o POSBOXLESS
  • Asusto

Lo que debe pasar:
El ticket debe salir con los datos de la factura y el código QR

  • Todo bien, listo para la fiesta

Analisis profunda:

  • Se analizó que modificando la linea 187 del archivo invoice.py de la siguiente manera
    qr_obj = qrcode.QRCode(version=4, box_size=3, border=1) Se soluciona el problema y no afecta a la factura electrónica normal que sale por backend

Ya se lanzó un par de PR solicitando esta modificación
#481
#482

@zaoral podrás pegarle un vistazo a esto y a los prs?
@marionumza gracias por los prs y el issue. Tendrás un poco de info a mano de porque pasa y porque el cambio lo arregla?

Antes que nada, aclaro que este cambio solo afecta la factura electrónica que sale en formato de ticket cuando pasa por el POSBOX
El template del POSBOX al tomar el codigo QR lo toma de este código
qr_obj = qrcode.QRCode()
Al no tener especificadas las dimenciones el POSBOX lo lanza con dimensiones que superan su capacidad y se buguea con el siguiente mensaje
Image height is longer than 255px and can`t be printer
Se probo que cambiando los valores de la linea por los siguientes el ticket sale
qr_obj = qrcode.QRCode(version=4, box_size=2, border=1) -> Sale mas chico
qr_obj = qrcode.QRCode(version=4, box_size=3, border=1) -> Sale mas grande
qr_obj = qrcode.QRCode(version=4, box_size=4, border=1) -> Se buguea

También con box_size=3 se saco un comprobante por backend y sale perfectamente así que no estaría afectando la Factura Electrónica que ya estaba funcionando en aeroo