[FIX] product_margin: product margin use partial/reversed payment
Current behavior: Partial and reversed payment were not taken into account for the product margin calculation. Steps to reproduce: 1. Create a product with an common avco setup. 2. Go to purchase 1 unit at 10 dollars. 3. Upon confirming the invoice your cost is updated in the product margin report. 4. Create a partial payment on the bill. This creates issues as the product margin report is looking for paid or open not partially paid so it won't show up in the cost calculation. 5. Once the bill is fully paid then it shows up in the cost section of the product margin report again as its payment status moves to Paid. 6. Create a sales order for the unit at 100 dollars. 7. Invoice for the full amount then cancel it by creating a full credit note to put the original invoice in reversed status. This will have only the credit note show up in the turnover calculation as it is in paid status while the original invoice doesn't have a paid or open status so it isn't taken into account. opw-2887240 closes odoo/odoo#108992 X-original-commit: ddca80ebee20f75ee9b9da2828de5a9170ea683e Signed-off-by: Quentin De Paoli <qdp@odoo.com> Signed-off-by: Engels Robin (roen) <roen@odoo.com>
This commit is contained in:
@@ -105,13 +105,13 @@ class ProductProduct(models.Model):
|
||||
payment_states = ()
|
||||
if invoice_state == 'paid':
|
||||
states = ('posted',)
|
||||
payment_states = ('in_payment', 'paid',)
|
||||
payment_states = ('in_payment', 'paid', 'reversed')
|
||||
elif invoice_state == 'open_paid':
|
||||
states = ('posted',)
|
||||
payment_states = ('not_paid', 'in_payment', 'paid')
|
||||
payment_states = ('not_paid', 'in_payment', 'paid', 'reversed', 'partial')
|
||||
elif invoice_state == 'draft_open_paid':
|
||||
states = ('posted', 'draft')
|
||||
payment_states = ('not_paid', 'in_payment', 'paid')
|
||||
payment_states = ('not_paid', 'in_payment', 'paid', 'reversed', 'partial')
|
||||
if "force_company" in self.env.context:
|
||||
company_id = self.env.context['force_company']
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user