ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

如何在Odoo14中生成二维码

如何在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文件如下

<odoo><data><record id="res_invoice_inherit" model="ir.ui.view"><field name="name">account.move.report</field><field name="model">account.move</field><field name="inherit_id" ref="account.view_move_form"/><field name="arch" type="xml"><xpath expr="//field[@name = 'payment_reference']" position="after"><field name="qr_code" widget='image' class="oe_avatar"/></xpath></field></record></data>
</odoo>
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 格式,然后对值进行编码并分配给发票字段中的特定值。

扫描 QRcode 时获得的输出为

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

返回列表