mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
Merge branch 'imp/15.0/hr_commission___timesheet' into '15.0'
imp/15.0/hr_commission___timesheet into 15.0 See merge request hibou-io/hibou-odoo/suite!1334
This commit is contained in:
@@ -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.move_type in ['in_refund', 'out_refund'] else 1
|
||||
return self.margin * sign
|
||||
|
||||
@@ -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):
|
||||
@@ -99,7 +99,7 @@ class Commission(models.Model):
|
||||
return super(Commission, self).unlink()
|
||||
|
||||
def _filter_source_moves_for_creation(self, moves):
|
||||
return moves.filtered(lambda i: i.invoice_user_id and not i.commission_ids)
|
||||
return moves.filtered(lambda i: i.is_sale_document() and not i.commission_ids)
|
||||
|
||||
def _commissions_to_confirm(self, moves):
|
||||
commissions = moves.mapped('commission_ids')
|
||||
@@ -120,10 +120,10 @@ class Commission(models.Model):
|
||||
|
||||
if commission_structure:
|
||||
commission_structure.create_for_source_move(move, move_amount)
|
||||
else:
|
||||
elif move.invoice_user_id:
|
||||
employee = employee_obj.search([('user_id', '=', move.invoice_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,
|
||||
@@ -136,7 +136,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,
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<field name="employee_id"/>
|
||||
<field name="contract_id"/>
|
||||
<field name="base_total" string="Invoice Total" sum="Invoice Total"/>
|
||||
<field name="base_amount" string="Margin" sum="Margin Total"/>
|
||||
<field name="base_amount" string="Base" sum="Base Total"/>
|
||||
<field name="amount" string="Commission" sum="Commission Total"/>
|
||||
<field name="state"/>
|
||||
<field name="move_date"/>
|
||||
@@ -118,16 +118,16 @@
|
||||
|
||||
<menuitem
|
||||
action="action_hr_commission"
|
||||
id="menu_action_account_commission_form"
|
||||
parent="account.menu_finance_entries"
|
||||
sequence="90"
|
||||
id="menu_action_account_commission_root"
|
||||
parent="account.menu_finance_receivables"
|
||||
sequence="120"
|
||||
/>
|
||||
|
||||
<menuitem
|
||||
action="action_hr_commission"
|
||||
id="menu_action_account_commission_form2"
|
||||
parent="menu_action_account_commission_form"
|
||||
sequence="90"
|
||||
id="menu_action_account_commission_form"
|
||||
parent="menu_action_account_commission_root"
|
||||
sequence="10"
|
||||
/>
|
||||
|
||||
<record id="action_commission_mark_paid" model="ir.actions.server">
|
||||
@@ -210,8 +210,8 @@ action = records.action_mark_paid()
|
||||
<menuitem
|
||||
action="action_hr_commission_payment"
|
||||
id="menu_action_account_commission_payment_form"
|
||||
parent="menu_action_account_commission_form"
|
||||
sequence="100"
|
||||
parent="menu_action_account_commission_root"
|
||||
sequence="10"
|
||||
/>
|
||||
|
||||
<!-- Commission Structure -->
|
||||
@@ -240,4 +240,17 @@ action = records.action_mark_paid()
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_commission_structure" model="ir.actions.act_window">
|
||||
<field name="name">Commission Structures</field>
|
||||
<field name="res_model">hr.commission.structure</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
action="action_commission_structure"
|
||||
id="menu_action_account_commission_structure"
|
||||
parent="menu_action_account_commission_root"
|
||||
sequence="30"
|
||||
/>
|
||||
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user