changes
This commit is contained in:
@@ -3,3 +3,44 @@
|
||||
from . import models
|
||||
from . import wizards
|
||||
from . import controllers
|
||||
|
||||
|
||||
def _fusion_payroll_post_init(env):
|
||||
"""Archive default salary rules auto-added to Canadian structure.
|
||||
|
||||
When hr_payroll creates a new structure, it automatically generates
|
||||
default rules (BASIC, GROSS, NET, etc.). Since this module defines
|
||||
its own custom rules, the defaults must be archived to avoid duplicates.
|
||||
"""
|
||||
structure = env.ref(
|
||||
'fusion_payroll.hr_payroll_structure_canada',
|
||||
raise_if_not_found=False,
|
||||
)
|
||||
if not structure:
|
||||
return
|
||||
|
||||
default_codes = [
|
||||
'BASIC', 'GROSS', 'NET',
|
||||
'ATTACH_SALARY', 'ASSIG_SALARY',
|
||||
'CHILD_SUPPORT', 'DEDUCTION', 'REIMBURSEMENT',
|
||||
]
|
||||
|
||||
own_rule_xmlids = [
|
||||
'fusion_payroll.hr_rule_basic',
|
||||
'fusion_payroll.hr_rule_gross',
|
||||
'fusion_payroll.hr_rule_net',
|
||||
]
|
||||
own_rule_ids = set()
|
||||
for xmlid in own_rule_xmlids:
|
||||
rule = env.ref(xmlid, raise_if_not_found=False)
|
||||
if rule:
|
||||
own_rule_ids.add(rule.id)
|
||||
|
||||
default_rules = env['hr.salary.rule'].search([
|
||||
('struct_id', '=', structure.id),
|
||||
('code', 'in', default_codes),
|
||||
])
|
||||
|
||||
rules_to_archive = default_rules.filtered(lambda r: r.id not in own_rule_ids)
|
||||
if rules_to_archive:
|
||||
rules_to_archive.active = False
|
||||
|
||||
Reference in New Issue
Block a user