Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
2 Відповіді
1540 Переглядів

Hello @all,

I want to get sale.order ID on creating a Production Order in mrp.production. for that I am trying to override the create function of mrp.production.


@api.model
def create(self, values):
res = super(MrpProduction, self).create(values)
sale_order = self.env['sale.order'].search([('name', '=', values['origin'])])
values['sale_id'] = sale_order.id
return res

I know that origin is the sale order so i want to get that ID and add it to mrp.production. The function get the right ID of Sale.order but it dont save the ID to the database.


Any help to what i am doing wrang would be nice. Thanks in advance.

Jens

Аватар
Відмінити

Hello Jens,

It seems the issue is in the line assigning the id to values['sale_id']. This line is storing the sale order id to the values but the values have already been used to create the record above. You should try moving the call to super() to the end so that it creates the record with the newly added 'sale_id' value.

Найкраща відповідь

You called super in the first line so the MRP production already created so passing the sale order id to values will not do anything.

Try the below:

@api.model
def create(self, values):
res = super(MrpProduction, self).create(values)
if 'origin' in values:
sale_order = self.env['sale.order'].search([('name', '=', values['origin'])])
if sale_order:
res.sale_id = sale_order.id
return res
Аватар
Відмінити
Автор Найкраща відповідь

@Waleed

Thanks a lot. just a simple issue. Now Sale.order is connected to mrp.production. Thanks!

Аватар
Відмінити