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 @   CrossPython  阅读(232)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
历史上的今天:
2019-01-02 deepin安装Python3.6和pip
2019-01-02 启动项详解和更改deepin启动内核的方法
点击右上角即可分享
微信分享提示