Hi friends,
I have to call sale_order fields.function names _amount_all from another button function for less the discount amount from total amount when validating sale order.Please help me in this situation.
Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:
Hi friends,
I have to call sale_order fields.function names _amount_all from another button function for less the discount amount from total amount when validating sale order.Please help me in this situation.
In Odoo 8 and above.
One cannot trigger the computational fields without the change in values of its dependent fields.
Say in case of SaleOrder, "_amount_all" method is depended on the field value price_subtotal present in its child class i.e. in SaleOrderLine, So unless and until the value of price_subtotal is changed, the function will not be triggered. which is actually a good functionality, because it avoids unnecessary triggers and writing values into the database.
Now coming to your requirement, if am not wrong you have a discount_field in SaleOrder and upon specifying a value you want the same to be reflected in Total Amount of SaleOrder.
So why not inherit _amount_all in your custom module and concatenate the discount_field into @api.depends as shown below.
@api.depends('discount_field') def _amount_all(self): super(SaleOrder, self)._amount_all() for order in self: order.amount_total -= order.discount_field
Am sure this way you can achieve your requirement, but if you still wanted to trigger the computation field, and if you using Odoo 8 then all you need to do is add recompute = True in the context while calling write method as below.
context = dict(self._context, recompute=True)
Note: In Odoo 9, recompute doesn't work.
Create an account today to enjoy exclusive features and engage with our awesome community!
Sign upRelated Posts | Replies | Views | Activity | |
---|---|---|---|---|
|
0
Apr 24
|
397 | ||
|
4
Nov 23
|
4243 | ||
|
0
Oct 23
|
377 | ||
|
0
Dec 22
|
1334 | ||
|
2
Dec 23
|
17348 |