如何在Odoo14中生成二维码

QR 码是一种快速响应代码,看起来类似于条形码。日常经常使用它来跟踪信息。它由许多黑色方块组成,排列在白色背景的方形网格中,我们可以在其中嵌入成像设备可读的数据。

在odoo中,二维码在报告、数据分析等方面发挥着至关重要的作用……它可以快速读取并有助于存储大量数据。它可用于跟踪 Odoo 中的产品信息、库存变动、发票、销售和采购详细信息。

本博客介绍了如何在 odoo 14 中生成 QR 码。这里举例说明了特定发票的 QR 码示例。二维码可读取发票订单的详细信息,包括序列、客户和金额详细信息。

try:
   import qrcode
except ImportError:
   qrcode = None
try:
   import base64
except ImportError:
   base64 = None
from io import BytesIO
class ReportInvoice(models.Model):
   """ inherit Invoice to add report settings """
   _inherit = "account.move"

   qr_code = fields.Binary('QRcode', compute="_generate_qr")
   def _generate_qr(self):
       "method to generate QR code"
       for rec in self:
           if qrcode and base64:
               qr = qrcode.QRCode(
                   version=1,
                   error_correction=qrcode.constants.ERROR_CORRECT_L,
                   box_size=3,
                   border=4,
               )
               qr.add_data(rec.company_id.name)
               qr.add_data(", Payment Reference : ")
               qr.add_data(rec.payment_reference)
               qr.add_data(", Customer : ")
               qr.add_data(rec.partner_id.name)
               qr.add_data(",Invoice Date : ")
               qr.add_data(rec.invoice_date)
               qr.make(fit=True)
               img = qr.make_image()
               temp = BytesIO()
               img.save(temp, format="PNG")
               qr_image = base64.b64encode(temp.getvalue())
               rec.update({'qr_code':qr_image})

QR 码生成与 python 库qr code一起使用,这有助于 QR 码图像生成。为此,首先,我们需要在终端中使用命令  Pip3 install QRcode安装软件包。

上面说明了在发票中创建二维码的代码示例,其中描述了发票详细信息,例如付款参考、客户和发票日期等......

在继承的python文件中,导入了图像的QRcode和base64库,并简单地为QRcode添加了二进制类型的计算字段。

对应的XML文件如下


   
       
           account.move.report
           account.move
           
           
               
                   
               
      
  
   

qr = qrcode.QRCode(
                   version=1,
                   error_correction=qrcode.constants.ERROR_CORRECT_L,
                   box_size=3,
                   border=4,
               )

Version:是一个参数,是1到40之间的整数,控制二维码的大小(最小的,版本1,是一个21 * 21的矩阵)

Error_ Correction:该参数控制用于QR码的纠错。

box_size:该参数控制每个box上需要累加多少像素

边框:控制框的数量以及边框的粗细(默认=4)

.add_data 参数可用于将数据添加到二维码,在此示例中创建发票公司名称、付款参考、客户和销售人员详细信息的二维码。使用所有参数,QR 将在 make_image 函数中生成图像。

对应的图像可以保存为SVG或PNG格式;此处将其保存为 PNG 格式,然后对值进行编码并分配给发票字段中的特定值。

如何在Odoo14中生成二维码_第1张图片

扫描 QRcode 时获得的输出为

如何在Odoo14中生成二维码_第2张图片

用此方法,我们可以生成一个 QR 码,用于存储 Odoo 14 中不同记录的数据。

你可能感兴趣的:(python,Odoo,xml)