Как добавить изображение QR-кода в кассовый чек Odoo - PullRequest
2 голосов
/ 23 апреля 2020

Я пытаюсь добавить изображение QR к квитанции 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)"/>

Для квитанции я экспортировал для печати мою строку в качестве квитанции.qr_string и добавил следующую строку к наследованию квитанции XML file:

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

Но изображение выглядит как неработающая ссылка. Как мне этого добиться?

1 Ответ

2 голосов
/ 25 апреля 2020

Я не знаю, почему он не работает для чеков POS, но позвольте мне сказать вам, что POS - это система, которая может работать без подключения к серверу. Все, что он выполняет, должно всегда использовать js Я имею в виду всегда на стороне клиента Итак, мое решение состоит в том, чтобы использовать библиотеку QRrcode. js, поскольку она легко доступна здесь.

Добавьте этот файл библиотеки в модуль в папке path /<your_module/static/src/lib/, а также в свой почтовый ящик. бэкэнд, как показано ниже, и этот файл необходимо добавить в манифест, а также в список файлов «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, как показано ниже, для печати QR-кода.

<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>
...