odoo10如何自定义自动生成单据编号

1.在已有的model中穿件一个字段name
class qingjiadan(models.Model):
_name = 'qingjia.qingjiadan'
name = fields.Char(string='编号', readonly=True)
2.创建qingjia_apply_data.xml文件并放入data文件夹下,并且在__manifest.py__文件中加入这个xml文件
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record model="ir.sequence">
<field name="name">请假单编号</field>
<field name="code">qingjia.qingjiadan</field>
<field name="prefix">QJSQ%(year)s%(month)s%(day)s</field>
<field name="padding">3</field>
</record>
</data>
</odoo>
3.model中加入如下方法
@api.model
def create(self, vals):
if not vals.get('name'):
vals['name'] = self.env['ir.sequence'].next_by_code('qingjia.qingjiadan') or '/'
print vals['name']
return super(qingjiadan, self).create(vals)

单据编号格式为QJSQ + 年月日 + 三位数的顺序编号
QJSQ20170102001
QJSQ20170102002
QJSQ20170102003
posted @ 2023-01-02 10:58  CrossPython  阅读(210)  评论(0编辑  收藏  举报