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 id="seq_qingjia_apply" 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



原文地址:https://www.cnblogs.com/zcy1103/p/8178609.html