剛正式接觸 odoo 開發一個禮拜了
自創發票系統時,苦惱流水編號怎麼產生
試著用 search_count() 來計算,但如果數量太大,會造成效能消耗過大
畢竟每創一筆資料,就要算一次
詢問公司的學長,提供了這段程式
# model.py
invoice_number = field.Char(string="統一編號", readonly="1")
@api.model
def create(self, vals):
seq = self.env['ir.sequence'].next_by_code('model.name') or '/'
vals['invoice_number'] = seq
return super(class_name, self).create(vals)
但是發現序列還是要去手動設定,很麻煩
於是去跟 google大神請示 "odoo sequence"
給我了一個 stack overflow,要從views的xml來寫
# views.xml
<record id="model_sequence_employee" model="ir.sequence">
<!-- field定義的順序如下: 序列名稱, 模型名稱(models.Model._name),
前綴字, 號碼長度, 下一個要出現的號碼 -->
<field name="name">model sequence</field>
<field name="code">model.name</field>
<field name="prefix">NO</field>
<field name="padding">3</field>
<field name="number_next_actual">1</field>
</record>
Source:
公司的學長,
https://stackoverflow.com/questions/46435870/create-a-sequence-number-odoo-10
留言
張貼留言