Odoo PoS не показывает настраиваемые поля в квитанциях - PullRequest
0 голосов
/ 31 марта 2020

Я добавил поле в модель res.company и пытаюсь добавить их в квитанцию, но они не отображаются. Я добавил поля со следующим python файлом:

# -*- coding: utf-8 -*-

from odoo import models, fields, api, exceptions


class MyModuleCompany(models.Model):
    _inherit = 'res.company'

    branch_code = fields.Integer(string='Branch code')

Затем добавил поля в модели POS-компании со следующим кодом:

odoo.define('my_module.company', function (require) {
    "use strict";

    var models = require('point_of_sale.models');

    models.load_fields('res.company', [
        'branch_code'
    ]);

});

Наконец, я попытался чтобы они появлялись в квитанции со следующим xml кодом:

<?xml version="1.0" encoding="UTF-8"?>
<template xml:space="preserve">

    <t t-extend="OrderReceipt">
        <t t-jquery=".pos-receipt-contact" t-operation="replace">
            <div class="pos-receipt-contact">
                <t t-if='receipt.company.name'>
                    <div><t t-esc='receipt.company.name' /></div>
                </t>
                <t t-if='receipt.company.branch_code'>
                    <div>Branch:<t t-esc='receipt.company.branch_code' /></div>
                </t>
            </div>
        </t>
    </t>

</template>

Поле «имя» появляется, но по какой-то причине поле «филиал» не появляется, и я не могу понять, почему.

1 Ответ

1 голос
/ 31 марта 2020

Он уже унаследован в модуле l10n_fr_pos_cert .

Я вижу разницу в заголовке файла XML. Они использовали:

<templates id="template" xml:space="preserve">


РЕДАКТИРОВАТЬ:

Вы успешно добавили поле в переменную posmodel (pos) ) и вам нужно просто сделать это значение доступным в квитанции.

var models = require('point_of_sale.models');
var _super_ordermodel = models.Order.prototype;

models.Order = models.Order.extend({
    export_for_printing: function(){
        var receipt = _super_ordermodel.export_for_printing.apply(this, arguments);
        receipt.company.branch_code = this.pos.company.branch_code;
        return receipt;
    },
});
...