odoo 自定义单据编号

在开发模块的时候,我们有时需要像销售采购那些订单一样,在单据头那里创建一个序列号,

odoo是如何在每次建单的时候这样自动地生成一个单据编号呢?

在odoo中编号所对应的模型是ir.sequence

方式一:通过界面创建

激活开发者模式,依次点击 技术>>序号

 

 

方式二:通过xml创建:

记得在__manifest__文件中导入

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
        <record id="sequence_confirm_price" model="ir.sequence">
            <field name="name">Product Confirm Price</field>
            <field name="code">product.confirm.price</field>
            <field name="prefix">PR/%(y)s/%(month)s/</field>
            <field name="padding">5</field>
            <field name="number_next">1</field>
            <field name="number_increment">1</field>
            <field name="company_id" eval="False"/>
        </record>
    </data>
</odoo>

 

重写create方法为编号字段赋值:

    @api.model
    def create(self, vals):
        seq_date = fields.Datetime.context_timestamp(self, fields.Datetime.to_datetime(vals['date']))
        vals['name'] = self.env['ir.sequence'].next_by_code(
            'product.confirm.price', sequence_date=seq_date) or _('New')
        return super(ProductConfirmPrice, self).create(vals)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值