diff --git a/hr_commission/models/account.py b/hr_commission/models/account.py
index de04bee4..ed12acb8 100644
--- a/hr_commission/models/account.py
+++ b/hr_commission/models/account.py
@@ -36,7 +36,7 @@ class AccountMove(models.Model):
self.env['hr.commission'].invoice_paid(self)
return res
- def amount_for_commission(self):
+ def amount_for_commission(self, commission=None):
if hasattr(self, 'margin') and self.company_id.commission_amount_type == 'on_invoice_margin':
sign = -1 if self.type in ['in_refund', 'out_refund'] else 1
return self.margin * sign
diff --git a/hr_commission/models/commission.py b/hr_commission/models/commission.py
index 3a491080..3defd162 100644
--- a/hr_commission/models/commission.py
+++ b/hr_commission/models/commission.py
@@ -71,14 +71,14 @@ class Commission(models.Model):
elif commission.contract_id and commission.rate_type != 'manual':
if commission.rate_type == 'normal':
commission.rate = commission.contract_id.commission_rate
- else:
+ elif commission.rate_type == 'admin':
commission.rate = commission.contract_id.admin_commission_rate
rounding = 2
if commission.source_move_id:
rounding = commission.source_move_id.company_currency_id.rounding
commission.base_total = commission.source_move_id.amount_total_signed
- commission.base_amount = commission.source_move_id.amount_for_commission()
+ commission.base_amount = commission.source_move_id.amount_for_commission(commission)
amount = (commission.base_amount * commission.rate) / 100.0
if float_is_zero(amount, precision_rounding=rounding):
@@ -126,7 +126,7 @@ class Commission(models.Model):
else:
employee = employee_obj.search([('user_id', '=', move.user_id.id)], limit=1)
contract = employee.contract_id
- if all((employee, contract)):
+ if all((employee, contract, contract.commission_rate)):
move.commission_ids += commission_obj.create({
'employee_id': employee.id,
'contract_id': contract.id,
@@ -139,7 +139,7 @@ class Commission(models.Model):
# Admin/Coach commission.
employee = employee.coach_id
contract = employee.contract_id
- if all((employee, contract)):
+ if all((employee, contract, contract.admin_commission_rate)):
move.commission_ids += commission_obj.create({
'employee_id': employee.id,
'contract_id': contract.id,
diff --git a/hr_commission/views/commission_views.xml b/hr_commission/views/commission_views.xml
index 887cbbe8..b46d3772 100644
--- a/hr_commission/views/commission_views.xml
+++ b/hr_commission/views/commission_views.xml
@@ -54,7 +54,7 @@
-
+
@@ -120,28 +120,14 @@
action="action_hr_commission"
id="menu_action_account_commission_root"
parent="account.menu_finance_receivables"
- sequence="5"
+ sequence="120"
/>
-
-
-
-
@@ -228,13 +214,6 @@ action = records.action_mark_paid()
sequence="10"
/>
-
-
hr.commission.structure.form
@@ -261,4 +240,17 @@ action = records.action_mark_paid()
+
+ Commission Structures
+ hr.commission.structure
+ tree,form
+
+
+
+