Перейти к содержимому
Меню
Чтобы взаимодействовать с сообществом, необходимо зарегистрироваться.
Этот вопрос был отмечен
1 Ответить
4421 Представления

Origianl code :

class Inventory(models.Model):
_name = "stock.inventory"
_description = "Inventory"
_order = "date desc, id desc"

@api.model
def _default_location_id(self):
company_user = self.env.user.company_id
warehouse = self.env['stock.warehouse'].search([('company_id', '=', company_user.id)], limit=1)
if warehouse:
return warehouse.lot_stock_id.id
else:
raise UserError(_('You must define a warehouse for the company: %s.') % (company_user.name,))

My overriding :

class Inventory(models.Model):
_inherit = 'stock.inventory'

print("test")
@api.model
def _default_location_id(self):
print("pass")
res = super(Inventory, self)._default_location_id()
if self.env.user.context_default_warehouse_id:
res['location_id'] = self.env.user.context_default_warehouse_id.\
lot_stock_id.id
return res

I don't understand why it didn't work !

Аватар
Отменить
Лучший ответ

As you can see in original _default_location_id method, it's not returned any value and in your code you call super method and set it to res and that's why it's not working, try to use self.update

Please try the below:

@api.model
def _default_location_id(self):
    super(Inventory, self)._default_location_id()
    if self.env.user.context_default_warehouse_id:
        self.update({'location_id': self.env.user.context_default_warehouse_id.lot_stock_id.id})
Аватар
Отменить
Related Posts Ответы Просмотры Активность
0
авг. 24
155
0
янв. 22
3441
0
мар. 15
3615
2
мар. 15
4054
0
авг. 24
866