odoo12:自动生成序列号方法

为了我们插入数据的效率,我们会想到自动生成序列号。那么怎么生成预想的序列号呢?下面我们就来看看。
1.data/data.xml



    
        
            收款单号
            yhb.gathering
            SKD%(year)s%(month)s%(day)s
            6
            
        
    

关键点解释:

noupdate="0":一般测试的时候都是用noupdate=“0”,如果noupdate=“1”,则模块只会被更新一次,如果之后调试它,则不会看到实时效果。

name="code":后面写模块_name的名字。

name="prefix":表示自定义的前缀是什么。

name="padding":表示有几位数,如果输入4,则第一位数是“前缀+0001”。

name="company_id":因为任何字符串都是有值,都是真值,而我们需要False则需要用eval来解析。

2.model.py里写入方法:

@api.model
def create(self, vals):
    """
    自动生成单号
    :return:
    """
    vals['name'] = self.env['ir.sequence'].next_by_code('yhb.gathering') or ''
    return super(YhbGathering, self).create(vals)

其中:
yhb.gathering:是_name定义的值。
YhbGathering:模块的类名。
其他地方不进行修改的话,可以让name自动获的单号。打印名称是:
SHD年月日000001

在__manifest__.py中引入data.xml文件。

快去测试一下,在页面上看看是不是你想要的结果,欢迎大家指教。

你可能感兴趣的:(odoo基础学习与遇到的问题)