From 0f3effd53590b93876ed379a7091fe23f0c4b436 Mon Sep 17 00:00:00 2001 From: Virginia Bonservizi Date: Thu, 6 Apr 2023 12:03:46 +0000 Subject: [PATCH] [MIG] website_sale_account_invoice_commission: Migration to 16.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes ingadhoc/account-invoicing#151 Signed-off-by: Juan José Scarafía --- .../models/account_commission_rule.py | 26 ++----------------- .../models/account_move_line.py | 8 ++++-- .../views/account_move_view.xml | 2 +- .../__manifest__.py | 4 +-- .../models/account_commission_rule.py | 4 +-- 5 files changed, 13 insertions(+), 31 deletions(-) diff --git a/account_invoice_commission/models/account_commission_rule.py b/account_invoice_commission/models/account_commission_rule.py index 858500e8..54fd3243 100644 --- a/account_invoice_commission/models/account_commission_rule.py +++ b/account_invoice_commission/models/account_commission_rule.py @@ -2,9 +2,7 @@ # For copyright and license notices, see __manifest__.py file in module root # directory ############################################################################## -from odoo import models, fields, _ -from odoo.exceptions import ValidationError - +from odoo import models, fields class AccountCommissionRule(models.Model): @@ -96,24 +94,4 @@ def _get_rule_domain(self, date, product, partner_id, customer, amount): def _get_rule(self, date, product, partner_id, customer, amount): domain = self._get_rule_domain( date, product, partner_id, customer, amount) - res = self.search(domain, limit=1) - if not res: - if product: - msj = (_( - 'No commission rule found for product id "%s", partner id "%s"' - ' date "%s" and customer "%s"') % ( - ' - '.join([str(product.id), product.name]), - partner_id, - date, - ' - '.join([str(customer.id), customer.name]) - )) - else: - msj = (_( - 'No commission rule found partner id "%s"' - ' date "%s" and customer "%s"') % ( - partner_id, - date, - ' - '.join([str(customer.id), customer.name]) - )) - raise ValidationError(msj) - return res + return self.search(domain, limit=1) diff --git a/account_invoice_commission/models/account_move_line.py b/account_invoice_commission/models/account_move_line.py index 84ece046..f903162b 100644 --- a/account_invoice_commission/models/account_move_line.py +++ b/account_invoice_commission/models/account_move_line.py @@ -25,10 +25,14 @@ def _compute_commission_amount(self): _logger.info('Computing commission amount line') for rec in self: date = rec.move_id.invoice_date or today - rec.commission_amount = rules._get_rule( + rule = rules._get_rule( date, rec.product_id, commissioned_partner_id, rec.move_id.commercial_partner_id, -rec.balance, - ).percent_commission * -rec.balance / 100.0 + ) + if rule: + rec.commission_amount = rule.percent_commission * -rec.balance / 100.0 + else: + rec.commission_amount = 0.0 else: self.commission_amount = 0.0 diff --git a/account_invoice_commission/views/account_move_view.xml b/account_invoice_commission/views/account_move_view.xml index 5bd8a1a5..417f836c 100644 --- a/account_invoice_commission/views/account_move_view.xml +++ b/account_invoice_commission/views/account_move_view.xml @@ -15,7 +15,7 @@ - + diff --git a/website_sale_account_invoice_commission/__manifest__.py b/website_sale_account_invoice_commission/__manifest__.py index 684924d0..abc5af8f 100644 --- a/website_sale_account_invoice_commission/__manifest__.py +++ b/website_sale_account_invoice_commission/__manifest__.py @@ -19,7 +19,7 @@ ############################################################################## { 'name': 'Commission Invoices with Public Categories', - 'version': "15.0.1.0.0", + 'version': "16.0.1.0.0", 'category': 'Accounting', 'sequence': 14, 'summary': '', @@ -37,7 +37,7 @@ ], 'demo': [ ], - 'installable': False, + 'installable': True, 'auto_install': True, 'application': False, } diff --git a/website_sale_account_invoice_commission/models/account_commission_rule.py b/website_sale_account_invoice_commission/models/account_commission_rule.py index 887a8aec..90dc9639 100644 --- a/website_sale_account_invoice_commission/models/account_commission_rule.py +++ b/website_sale_account_invoice_commission/models/account_commission_rule.py @@ -16,9 +16,9 @@ class AccountCommissionRule(models.Model): ) def _get_rule_domain( - self, date, product, partner_id, customer, amount, analytic_acc): + self, date, product, partner_id, customer, amount): domain = super()._get_rule_domain( - date, product, partner_id, customer, amount, analytic_acc) + date, product, partner_id, customer, amount) if not product: domain += [('public_category_id', '=', False)] else: