Generar Codigos QR para campos Binary en Odoo (OpenERP)
Para la generaciĆ³n de CĆ³digos QR para OpenERP les enseƱare a utilizar 2 Librerias:
Utilizando Python qrtools:
Lo primero que de debemos hacer es instalar la libreria qrtools, para instalarlo debemos descargar el paquete del link oficial:
Lo instalamos como cualquier paquete python con el comando :
sudo python setup.py install
Una vez instalado lo importamos en nuestros archivos .py con la linea siguiente:
from qrtools import QR
Ahora debemos agregar un Campo de Tipo binario por ejemplo:
'cfdi_cbb': fields.binary("CFD-I CBB")
Este campo es un cĆ³digo CBB propio de la facturaciĆ³n electrĆ³nica, ahora debemos ingresar la cadena para generar ese codigo CBB:
qr_string = "La cadena para mi codigo QR" ## Cadena de Texto qr_code = QR(data=qr_string.encode('utf-8')) ## Encodeamos a utf8 mi Cadena qr_file = open(qr_code.filename, "rb") ## Escribimos la Imagen temp_bytes = qr_file.read() ## Leemos la Imagen qr_bytes = base64.encodestring(temp_bytes) ## Convertimos la Imagen para Escribirla en Base qr_file.close() ## Cerramos la lectura del archivo con la imagen QR
Lo ultimo es escribir la imagen en el modelo account.invoice:
account_obj = self.pool.get('account.invoice') account_obj.write(cr,uid,[ids_del_registro],{'cfdi_cbb':qr_bytes})