odoo自动生成日期序号
-
如下代码所示:创建的序号是XH-20220119-001,XH-20220119-002,但是在第二天的时候,序号是XH-20220120-003。我希望在每个新的一天中,序号能从001开始,即XH-20220120-001,而不是接着上一天的。不知道需要怎么做,希望得到大家的回答,谢谢!
class ModelA(models.Model): """...""" code = fields.Char(string='序号', readonly=True, default=lambda x: '自动生成') # 自动生成一个编号,ir.sequence模型在 data/sequence.xml中 @api.model def create(self, vals): if not vals.get('code') or vals.get('code') == '自动生成': vals['code'] = self.env['ir.sequence'].next_by_code('model_A_code') return super(ModelA, self).create(vals)
<?xml version="1.0" encoding="UTF-8" ?> <odoo> <data> <!-- 生成单据编号 --> <record id="model_A_code" model="ir.sequence"> <field name="name">序号</field> <field name="code">model_A_code</field> <field name="prefix">XH-%(year)s%(month)s%(day)s-</field> <field name="padding">3</field> <field name="use_date_range">True</field> <field name="date_range_ids" eval="[(0,0,{'date_from':datetime.today(),'date_to':datetime.today(),'number_next':1})]"/> </record> </data> </odoo>
补充:这个代码是我根据ir.sequence模型和设置→技术→自动化→安排的动作进行编写的,不确定它能否每天更新。
<field name="date_range_ids" eval="[(0,0,{'date_from':datetime.today(),'date_to':datetime.today(),'number_next':1})]"/>