Odoo单据创建时自动编号

12 篇文章 0 订阅

序言:时间是我们最宝贵的财富,珍惜手上的每个时分

业务单据编号是企业运营中必不可少的一部分,那么在odoo中如何进行单据编号或者说某指定字段自动编号呢

直接上示例代码:

一:在py文件中新建一个业务类 TestOrder

class TestOrder(models.Model):
    _name = 'test.order'
    number = fields.Char('单据号')


@api.model
def create(self, vals):
    if not vals.get('number'):
        vals['number'] = self.env['ir.sequence'].next_by_code('test.order.sequence') or '/'
    return super(TestOrder, self).create(vals)

此处我们重写了 create方法,注意 next_by_code()方法中的 test.order.sequence中,我们需要在后面的data数据中声明他才行。

二:声明编码规则

新建一个 xml文件如下

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
        <record id="seq_test_order" model="ir.sequence">
            <field name="name">测试单编号</field>
            <field name="code">test.order.sequence</field>
            <field name="prefix">TO%(year)s%(month)s%(day)s</field>
            <field name="padding">3</field>
        </record>
    </data>
</odoo>

我们可以看到  test.order.sequence,这个变量我们只需要与py文件中的next_by_code变量相同即可

prefix 为编号方式,TO + 年月日 

padding 为编号数字长度

创建单据保存后的第一个编号即为 TO001xx年xx月xx日

最后将xml文件添加至于manifest文件中。完成!

 

承接odoo二次开发.部署实施.

技术交流请添加 543127346 (穆尘)             

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值