Python 向Odoo 11.0帐户发票添加额外字段

Python 向Odoo 11.0帐户发票添加额外字段,python,openerp,odoo-10,odoo-11,Python,Openerp,Odoo 10,Odoo 11,我想向销售发票添加一个额外字段,该字段继承自account.invoice。更具体地说,我想在每个发票行项目中添加一个字段交货日期 from odoo import api, fields, models, _ from odoo.exceptions import ValidationError from datetime import date class ReadyMixSalesInvoice(models.Model): _inherit = 'account.invoic

我想向销售发票添加一个额外字段,该字段继承自
account.invoice
。更具体地说,我想在每个发票行项目中添加一个字段
交货日期

from odoo import api, fields, models, _
from odoo.exceptions import ValidationError
from datetime import date


class ReadyMixSalesInvoice(models.Model):
    _inherit = 'account.invoice'
    _name = 'account.invoice'

    delivery_date = fields.Datetime(string='Delivery Date', required=True, readonly=True, index=True,
                                    states={'draft': [('readonly', False)], 'sent': [('readonly', False)]},
                                    help='Item delivery date.')

    @api.constrains('delivery_date')
    def _delivery_date_check(self):
        for record in self:
            if record.delivery_date and record.delivery_date.split(' ', 1)[0] < str(date.today()):
                raise ValidationError(_("Delivery Date must be after current date."))
来自odoo导入api、字段、模型、_
从odoo.exceptions导入ValidationError
起始日期时间导入日期
类ReadyMixSalesInvoice(models.Model):
_继承='account.invoice'
_名称='account.invoice'
delivery\u date=fields.Datetime(string='delivery date',required=True,readonly=True,index=True,
状态={'draft':[('readonly',False)],'sent':[('readonly',False)],
帮助=“项目交付日期”。)
@api.Constraints(‘交货日期’)
def交付日期检查(自检):
请自行记录:
如果record.delivery_date和record.delivery_date.split(“”,1)[0]
XML是:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <record id="invoice_form_inherit_sale_ready_mix" model="ir.ui.view">
        <field name="name">account.invoice.form.readymix</field>
        <field name="model">account.invoice</field>
        <field name="inherit_id" ref="account.invoice_form"/>
        <field name="arch" type="xml">
            <data>
                <xpath expr="//field[@name='price_unit']" position="after">
                    <field name="delivery_date"/>
                </xpath>
                <xpath expr="//tree/field[@name='price_unit']" position="after">
                    <field name="delivery_date"/>
                </xpath>
            </data>
        </field>
    </record>

</odoo>

account.invoice.form.readymix
帐户、发票

如果要向发票行添加新字段,则需要继承
account.invoice.line
。 在这里,您继承了帐户.发票
,继承了帐户.发票.行,然后重试

例如:

类ReadyMixSalesInvoice(models.Model):
_inherit='account.invoice.line'
_名称='account.invoice.line'
delivery\u date=fields.Datetime(string='delivery date',required=True,readonly=True,index=True,
状态={'draft':[('readonly',False)],'sent':[('readonly',False)],
帮助=“项目交付日期”。)
@api.Constraints(‘交货日期’)
def交付日期检查(自检):
请自行记录:
如果record.delivery_date和record.delivery_date.split(“”,1)[0]
如果要将其添加到发票行,则模型为
account.invoice.line

在您的情况下,不需要指定
\u name
属性,因为它是 已从父模型继承

在python代码中:

class ReadyMixSalesInvoice(models.Model):
    _inherit = 'account.invoice.line'
class ReadyMixSalesInvoice(models.Model):
    _inherit = 'account.invoice.line'