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

I'm trying to generate a Lot/Serial number automatically when someone adds a new item to stock_move_line. The Value is not getting updated though. Could someone point me to the right way to work with that field? I'm quite new with Odoo.

class x_c_template(models.Model):
_inherit = "stock.move.line"

@api.onchange('product_id', 'product_uom_id')
def onchange_generate_lot(self):
res = {}
if self.product_id.tracking == 'serial':
self.lot_name = lambda self: self.env['ir.sequence'].next_by_code('stock.lot.serial')
res = {'domain': {'stock_move_line': [('lot_name', '=', self.lot_name)]}}
return res
頭像
捨棄

Zendo, Do you mean, you want to set serial number automatically When the record of stock_move_line created?

最佳答案
@api.multi
@api.onchange('product_id', 'product_uom_id')
    def onchange_generate_lot(self):
    res = {}
    if self.product_id.tracking == 'serial':self.lot_name = lambda self: self.env['ir.sequence'].next_by_code('stock.lot.serial')
    res = {'domain': {'stock_move_line': [('lot_name', '=', self.lot_name)]}}
    return res

Use @api.multi

hope this will helps you.


頭像
捨棄
作者

@api.multi

@api.onchange('product_id', 'product_uom_id')

def onchange_generate_lot(self):

res = {}

if self.product_id.tracking == 'serial':self.lot_name = self.env['ir.sequence'].next_by_code('stock.lot.serial')

res = {'domain': {'stock_move_line': [('lot_name', '=', self.lot_name)]}}

return res

This works. lambda somehow screws things up and instead of giving back the sequence number I get a weird string. Also using this code, the sequence advances by 2 not 1. I think its because another lot gets created automatically as well and this creates one more on top?

Hello Sehrish! Could you please help me to generate different sequence for products in mrp. By default, lot seq generated commonly for all products.

相關帖文 回覆 瀏覽次數 活動
1
9月 18
4558
1
7月 24
2220
6
5月 24
21733
1
12月 22
6003
3
3月 16
6717