跳至內容
選單
此問題已被標幟
1 回覆
7980 瀏覽次數

Is there away to add product's internal reference as prefix to a sequence? more specifically, sequence "Serial Number"?

Details: 

In Manufacturing a product and clicking on button "Produce", user must create a new LOT for manufactured product, this is the screen of creating new LOT, notice that Serial Number is generated automatically :


I want to customise the format of this serial number to be i.e : CO-0000039 , CO is the internal reference of Cookies in the example above, but for another product it could be PO-0000039 or NU-00000039...etc, which means sequence of serial number must be dynamic and reads product internal reference, I opened the edit form of sequence "Serial Number" which I think this is the one the system is using,but I couldn't figure out what to type in Prefix? how to do that??


頭像
捨棄
最佳答案

Sure you can do it, at the time of creating you can set the prefix or suffix to the sequence based on your preference.

Look at the below code, I have done the Prefix for my logic, you may refer the same do it for yours.


@api.model

def _generate_Sequence(self, vals):

    cr, context = self._cr, self._context

    refNo = ''

    sale_type = vals.get('sale_type', '')

    if sale_type == 'quote': refNo += 'CQ-'

    else: refNo += 'SO-'

    cr.execute(""" select id from sale_order where name ilike '""" + str(refNo) + """%'

        order by to_number(substr(name,(length('""" + str(refNo) + """')+1)),'9999999999')

        desc limit 1

        """)

    rec = cr.fetchone()

    if rec:

        case = self.sudo().browse(rec[0])

        auto_gen = case.name[len(refNo) : ]

        refNo = refNo + str(int(auto_gen) + 1).zfill(5)

    else:

        refNo = refNo + '00001'

return refNo


頭像
捨棄
作者

I'm familiar with development but not sure where to use/write this kind of code, I'm guessing you're overriding the sequence method? I can't find this method in the source code, any help in this regard would be great, thanks!

This method is written by me, you will never find it any of standard module, you call this method in Create method of ur object.

相關帖文 回覆 瀏覽次數 活動
2
11月 21
7341
0
11月 15
4255
1
3月 24
9306
0
5月 21
2142
0
9月 23
1856