如何自定义或更新发票布局 Din 5008 Odoo

How to custom or update Invoice Layout Din 5008 Odoo

我正在使用 Odoo v14。我在 invoice_date.

之后直接在发票中添加了新字段
<template id="account_invoice_report_add_field" inherit_id="account.report_invoice_document">
    <xpath expr="//div[@t-if='o.invoice_date']" position="after">
           <div t-field="o.new_field"/>
    </xpath>
</template>

到这里一切正常,但是当我将布局更改为 Din 5008 时。该字段不再显示,看起来它被称为另一个模板。这个:

 <template id="report_invoice_with_payments">
        <t t-call="web.html_container">
            <t t-foreach="docs" t-as="o">
                <t t-set="lang" t-value="o.invoice_user_id.sudo().lang if o.move_type in ('in_invoice', 'in_refund') else o.partner_id.lang"/>
                <t t-set="print_with_payments" t-value="True"/>
            </t>
        </t>
    </template>

如何自定义这个,在此处也包含 new_field?

发票 informations div 未显示在 din5008 报告中,取而代之的是新的 information block is added and get its values from _compute_l10n_de_template_data 方法。

要在信息块中显示新字段,您只需覆盖该方法并添加字段描述和字段值,如下所示:

class AccountMove(models.Model):
    _inherit = 'account.move'

    new_field = fields.Char()

    def _compute_l10n_de_template_data(self):
        super(AccountMove, self)._compute_l10n_de_template_data()
        for record in self:
            if record.new_field:
                record.l10n_de_template_data.append((_("New field"), record.new_field))