odoo 单据自动生成序列号码
先在模型上继承改写 create 方法
@api.model
def create(self, vals):
vals['name'] = self.env['ir.sequence'].next_by_code('apply.collection.set') or ''
return super(ApplyCollectionSet, self).create(vals)
- ir.sequence 序列模型,生成唯一标识
- next_by_code 调用视图定义的code,索取到视图定义的参数生成唯一序列码
然后添加data.xml 视图,添加序列号规则
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="yhb_gathering_no" model="ir.sequence">
<field name="name">单号</field>
<field name="code">apply.collection.set</field>
<field name="prefix">CJTZ/%(year)s/%(month)s/%(day)s/</field>
<field name="padding">5</field>
<field name="company_id" eval="False"/>
</record>
</data>
</odoo>
- code - 调用生成编码的 Key,需保证唯一性
- prefix - 前缀,可以是固定的字面量也可以是组合参数
- padding - 序列递增的位数