利用ir.sequence自動生成序列號

利用ir.sequence自動生成序列號

什麼是序列號

能夠這麼理解,我有一個產品序號,編碼的前綴是SOP,後綴是0001~9999的序號,沒生成一個產品就自動流水加一,序列號不會重複,odoo中的ir.sequence這個模型提供了這個方法。
python

創建序號規則對象

創建一個XML,並記得在__mainfest__.py中導入api

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <data noupdate="1">
        <!-- Sequences for sale.order -->
        <record id="my_sale_sequence" model="ir.sequence">
            <field name="name">Sales Order</field>
            <field name="code">my_sale.sale_order</field>
            <field name="prefix">SO</field>
            <field name="padding">3</field>
            <field name="company_id" eval="False"/>
        </record>

    </data>
</odoo>

name 序列規則得名稱,可自定義
code 序列規則得編碼,要求最好惟一,使用模塊.表名來命確保惟一
prefix 序號編碼的前綴
padding 填充數據的位數
編碼

建立數據時自動獲取序號

@api.model
    def create(self, vals):
        vals['name'] = self.env['ir.sequence'].next_by_code('wf_sale.sale_order')
        return super(SaleOrder,self).create(vals)
相關文章
相關標籤/搜索