0

我在 Docker 容器中运行 Flectra。我在sale.order中有自定义字段,我想将其转移到account.invoice

class SaleOrder(models.Model):
    _inherit = 'sale.order' 
    myField = fields.Integer(string='My Field', default=21, required = True)

    @api.multi
    def _prepare_invoice(self):
         res = super(SaleOrder, self)._prepare_invoice()
         # res.update({
         #     'myField': self.myField,
         # })
         res['myField'] = self.myField
         return res


class SaleInvoice(models.Model):
    _inherit = 'account.invoice' 
    myField = fields.Integer(string='My Field', default=21, required = True)

我试图以不同的变体覆盖_prepare_invoice_create_invoices,但都没有奏效。据我了解,他们应该可以工作,但我是 Odoo/Flectra 的新手,所以我很乐意提供任何帮助。

我使用我认为对应于 Odoo 14 的 Flectra 1.7(社区版)。

4

1 回答 1

1

尝试这个:

def create_invoice(self):
    for rec in self:
        invoice = rec.env['account.move'].create({
            'move_type': 'out_invoice',
            # 'partner_id': self.partner.id, 
            'journal_id': 18, # say u forget to create journal 
            # 'currency_id': self.env.ref('base.USD').id, 
            'payment_reference': 'invoice to client',  

            'invoice_line_ids': [(0, 0, {
                'product_id': self.env['product.product'].create({'name': 'A Test Product'}),
                'quantity': 1,
                'price_unit': 40,
                'name': 'Your project product',
            })],
        })
于 2021-09-22T12:28:08.677 回答