如何在Odoo的POS收据中添加二维码图片?

问题描述 投票:2回答:1

我想在POS的收据上加一个二维码图片。我在普通发票中使用的代码,能用的是下面的代码。

<img t-att-src="'/report/barcode/?type=%s&amp;value=%s&amp;width=%s&amp;height=%s'%('QR', o.qr_code_string, 150, 150)"/>

对于收据,我将我的字符串导出为receiver.qr_string 然后在收据的继承XML文件中添加了以下一行。

<img t-att-src="'/report/barcode/?type=%s&amp;value=%s&amp;width=%s&amp;height=%s'%('QR', receipt.qr_string, 150, 150)"/>

但图像却出现了破损的链接 我如何实现这一点?

odoo customization pos odoo-13
1个回答
2
投票

我不知道为什么在POS收据上不能用 但我要告诉你 POS是一个可以在不连接服务器的情况下运行的系统。它所执行的一切都应该一直使用js,我的意思是一直在客户端。所以,我的解决方案是使用QRrcode.js库,因为它很容易获得。在这里,将这个库文件添加到路径上的模块中。

将这个库文件添加到模块的路径 /<your_module/static/src/lib/ 文件夹,并像下面一样添加到你的pos后台,该文件需要添加到manifest以及 "data "文件列表下。

<odoo>
    <data>
        <template id="assets" inherit_id="point_of_sale.assets">
            <xpath expr="." position="inside">
                <script type="text/javascript" src="/<module_name>/static/src/lib/qrcode.js"></script>
            </xpath>
        </template>
    </data>
</odoo>

妥善处理好路径。

然后你就可以在任何一个POS收据Qweb中使用该库来打印QRcode了,比如下面。

<div t-attf-id="#{receipt.qr_string}"></div>
    <script type="text/javascript">
        var lot_name = "<t t-esc="receipt.qr_string"/>";
        var qrcode = new QRCode(receipt.qr_string , {
            text: "http://jindo.dev.naver.com/collie",
            width: 100,
            height: 100,
            colorDark : "#000000",
            colorLight : "#ffffff",
            correctLevel : QRCode.CorrectLevel.H
        });
        qrcode.makeCode(receipt.qr_string);
    </script>
© www.soinside.com 2019 - 2024. All rights reserved.