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:
Jared Kipe
2022-02-01 22:22:04 +00:00
3 changed files with 29 additions and 16 deletions

View File

@@ -36,7 +36,7 @@ class AccountMove(models.Model):
self.env['hr.commission'].invoice_paid(self) self.env['hr.commission'].invoice_paid(self)
return res 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': 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 sign = -1 if self.move_type in ['in_refund', 'out_refund'] else 1
return self.margin * sign return self.margin * sign

View File

@@ -71,14 +71,14 @@ class Commission(models.Model):
elif commission.contract_id and commission.rate_type != 'manual': elif commission.contract_id and commission.rate_type != 'manual':
if commission.rate_type == 'normal': if commission.rate_type == 'normal':
commission.rate = commission.contract_id.commission_rate commission.rate = commission.contract_id.commission_rate
else: elif commission.rate_type == 'admin':
commission.rate = commission.contract_id.admin_commission_rate commission.rate = commission.contract_id.admin_commission_rate
rounding = 2 rounding = 2
if commission.source_move_id: if commission.source_move_id:
rounding = commission.source_move_id.company_currency_id.rounding rounding = commission.source_move_id.company_currency_id.rounding
commission.base_total = commission.source_move_id.amount_total_signed 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 amount = (commission.base_amount * commission.rate) / 100.0
if float_is_zero(amount, precision_rounding=rounding): if float_is_zero(amount, precision_rounding=rounding):
@@ -99,7 +99,7 @@ class Commission(models.Model):
return super(Commission, self).unlink() return super(Commission, self).unlink()
def _filter_source_moves_for_creation(self, moves): 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): def _commissions_to_confirm(self, moves):
commissions = moves.mapped('commission_ids') commissions = moves.mapped('commission_ids')
@@ -120,10 +120,10 @@ class Commission(models.Model):
if commission_structure: if commission_structure:
commission_structure.create_for_source_move(move, move_amount) 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) employee = employee_obj.search([('user_id', '=', move.invoice_user_id.id)], limit=1)
contract = employee.contract_id contract = employee.contract_id
if all((employee, contract)): if all((employee, contract, contract.commission_rate)):
move.commission_ids += commission_obj.create({ move.commission_ids += commission_obj.create({
'employee_id': employee.id, 'employee_id': employee.id,
'contract_id': contract.id, 'contract_id': contract.id,
@@ -136,7 +136,7 @@ class Commission(models.Model):
# Admin/Coach commission. # Admin/Coach commission.
employee = employee.coach_id employee = employee.coach_id
contract = employee.contract_id contract = employee.contract_id
if all((employee, contract)): if all((employee, contract, contract.admin_commission_rate)):
move.commission_ids += commission_obj.create({ move.commission_ids += commission_obj.create({
'employee_id': employee.id, 'employee_id': employee.id,
'contract_id': contract.id, 'contract_id': contract.id,

View File

@@ -54,7 +54,7 @@
<field name="employee_id"/> <field name="employee_id"/>
<field name="contract_id"/> <field name="contract_id"/>
<field name="base_total" string="Invoice Total" sum="Invoice Total"/> <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="amount" string="Commission" sum="Commission Total"/>
<field name="state"/> <field name="state"/>
<field name="move_date"/> <field name="move_date"/>
@@ -118,16 +118,16 @@
<menuitem <menuitem
action="action_hr_commission" action="action_hr_commission"
id="menu_action_account_commission_form" id="menu_action_account_commission_root"
parent="account.menu_finance_entries" parent="account.menu_finance_receivables"
sequence="90" sequence="120"
/> />
<menuitem <menuitem
action="action_hr_commission" action="action_hr_commission"
id="menu_action_account_commission_form2" id="menu_action_account_commission_form"
parent="menu_action_account_commission_form" parent="menu_action_account_commission_root"
sequence="90" sequence="10"
/> />
<record id="action_commission_mark_paid" model="ir.actions.server"> <record id="action_commission_mark_paid" model="ir.actions.server">
@@ -210,8 +210,8 @@ action = records.action_mark_paid()
<menuitem <menuitem
action="action_hr_commission_payment" action="action_hr_commission_payment"
id="menu_action_account_commission_payment_form" id="menu_action_account_commission_payment_form"
parent="menu_action_account_commission_form" parent="menu_action_account_commission_root"
sequence="100" sequence="10"
/> />
<!-- Commission Structure --> <!-- Commission Structure -->
@@ -240,4 +240,17 @@ action = records.action_mark_paid()
</field> </field>
</record> </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> </odoo>