按CONFIRM SALE按钮时,将“ref”字段设置为自动递增

时间:2016-09-13 07:30:39

标签: python auto-increment confirm odoo-9

confrm_sale

我遇到的问题是每次按确认销售按钮时如何使'ref'字段自动递增。

在我的第一个案例中,每当我使用以下代码创建新客户时,我都会将此字段设置为自动递增:

Python代码:

@api.model
def create(self, vals):
    vals['ref'] = self.env['ir.sequence'].get('res.debt')
    return super(Partner, self).create(vals)

XML代码:

<record id="your_sequence_id" model="ir.sequence">
          <field name="name">Reference</field>
          <field name="padding">3</field>
          <field name="code">res.debt</field>
      </record>

现在我的问题是我希望这个字段也是自动递增的,但是当我创建客户时,只有当我按确认销售按钮时才会这样。

例如,我创建了一个新的销售订单,我为该订单创建了一个新客户,然后单击“保存”。当我现在按确认销售时,该操作需要触发内部参考字段(ref)的自动增量。

如果我为现有客户下订单,那么应该为该客户采用旧订单。

我有action_confirm()的代码:

@api.multi
def action_confirm(self):
    for order in self:
        order.state = 'sale'
        if self.env.context.get('send_email'):
            self.force_quotation_send()
        order.order_line._action_procurement_create()
        if not order.project_id:
            for line in order.order_line:
                if line.product_id.invoice_policy == 'cost':
                    order._create_analytic_account()
                    break
    if self.env['ir.values'].get_default('sale.config.settings', 'auto_done_setting'):
        self.action_done()
    return True

可能是我的第一个自动增量代码,我应该在第二个代码中添加,但我不知道该怎么做。

有人可以帮忙吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

如果我的要求是正确的,我猜你应该在订单的循环中做一些事情:

order.partner_id.ref = self.env['ir.sequence'].get('res.debt')