单击取消按钮时,odoo-10序列增量

时间:2016-11-15 17:24:38

标签: python openerp odoo-9 odoo-10

我开发了一个Odoo模块,用于为员工添加序列,完美地工作。

我点击创建按钮并显示这些员工的序列,但是id取消了创建序列增量

class nhr(models.Model):
    _inherit = 'hr.employee'
    nhr = fields.Char(string='Nº de contacto', index=True, readonly=True, required=True,
        default=lambda self: self.env['ir.sequence'].next_by_code('nhr.seq'))

2 个答案:

答案 0 :(得分:3)

它会增加序列号,因为您已在字段声明中将逻辑设置为默认值。

为避免此类问题,我们需要在 create()方法中设置逻辑。

尝试使用以下代码:

nhr = fields.Char(string='Nº de contacto', index=True, readonly=True)

@api.model
def create(self, vals):

    vals['nhr'] = self.env['ir.sequence'].next_by_code('nhr.seq')

    return super(nhr, self).create(vals)

注:

重新启动Odoo服务器并升级自定义模块。

答案 1 :(得分:0)

有些情况下@ Odedra的解决方案在创建nhr记录的事务回滚时无法正常工作。在这种情况下,基础序列实现仍将增加。

你可以使用'无间隙'序列的实现(它是ir.sequence模型上的字段)以确保所有数字都是连续的。然而,由于实现使用全局锁定来序列化记录的创建,因此这会产生巨大的成本。