odoo根据当前时间生成序列号

odoo在创建一个新的订单或者创建一个新的采购单等涉及到编号的记录的时候,可以根据当前时间自动生成生成这个编号


比如现在已经有一个Fund的model:

class Fund(models.Model):
    _description = 'Fund'
    _name = 'XXX.fund'
    name = fields.Char(string=u"编号")

现在想在创建一个新的Fund时能自动生成一个编号,这个字段为name。

首先,创建一个fund_sequence_data.xml的文件并放入data文件夹下,及主要在_manifest_.py文件中加入这个新xml文件

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data>
        <record id="seq_sale_order" model="ir.sequence">
            <field name="name">XXX fund</field>
            <field name="code">XXX.fund</field>
            <field name="prefix">A%(year)s%(month)s%(day)s</field>
            <field name="padding">4</field>
            <field name="company_id" eval="False"/>
        </record>

    </data>
</odoo>

以上,<field name="prefix">A%(year)s%(month)s%(day)s</field> 表示:


然后,在model下加如一下方法:

@api.model
    def create(self,vals):
        if not vals.get('name'):
            vals['name'] = self.env['ir.sequence'].next_by_code('XXX.fund') or '/'
            print vals['name']
        return super(Fund, self).create(vals)

自此,创建一个新纪录时,不用填写编号那个字段,保存时会看到编号会自动生成,编号格式类似:   A201701200001


  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值