Files
enterprise-addons/l10n_jo_hr_payroll_account/models/account_chart_template.py
T

109 lines
5.5 KiB
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from collections import defaultdict
from odoo import models
class AccountChartTemplate(models.AbstractModel):
_inherit = "account.chart.template"
def _configure_payroll_account_jo_standard(self, companies):
account_codes = [
'200101', # Payables
'200307', # Employee Income Tax
'200308', # Social Security Payable
'200502', # Leave Days Provision
'200503', # End of Service Provision
'500202', # End Of Service Indemnity
'500301', # Basic Salary
'500302', # Housing Allowance
'500303', # Transportation Allowance
'500305', # Leave Salary
'500308', # Staff Other Allowances
'500310', # Salary Deductions
'500311', # Social Security Expenses
]
default_account = '200101'
rules_mapping = defaultdict(dict)
# ================================================ #
# JO Employee Payroll Structure #
# ================================================ #
basic_rule = self.env['hr.salary.rule'].search([
('struct_id', '=', self.env.ref('l10n_jo_hr_payroll.hr_payroll_structure_jo_employee_salary').id),
('code', '=', 'BASIC'),
], limit=1)
rules_mapping[basic_rule]['debit'] = '500301'
house_rule = self.env.ref('l10n_jo_hr_payroll.jordan_housing_allowance_salary_rule')
rules_mapping[house_rule]['debit'] = '500302'
transportation_rule = self.env.ref('l10n_jo_hr_payroll.jordan_transportation_allowance_salary_rule')
rules_mapping[transportation_rule]['debit'] = '500303'
other_allowances_rule = self.env.ref('l10n_jo_hr_payroll.jordan_other_allowances_salary_rule')
rules_mapping[other_allowances_rule]['debit'] = '500308'
sse_deduction_rule = self.env.ref('l10n_jo_hr_payroll.jordan_sse_deduction')
rules_mapping[sse_deduction_rule]['debit'] = '200308'
ssc_contribution_rule = self.env.ref('l10n_jo_hr_payroll.jordan_ssc_contribution')
rules_mapping[ssc_contribution_rule]['debit'] = '500311'
rules_mapping[ssc_contribution_rule]['credit'] = '200308'
sick_leave_deduction_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_sick_leave_unpaid')
rules_mapping[sick_leave_deduction_rule]['debit'] = '500310'
rest_days_overtime_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_rest_days_overtime')
rules_mapping[rest_days_overtime_rule]['debit'] = '500308'
week_days_overtime_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_week_days_overtime')
rules_mapping[week_days_overtime_rule]['debit'] = '500308'
end_service_provision_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_end_of_service_provision')
rules_mapping[end_service_provision_rule]['debit'] = '500202'
rules_mapping[end_service_provision_rule]['credit'] = '200503'
annual_leave_provision_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_Annual_Leave_provision')
rules_mapping[annual_leave_provision_rule]['debit'] = '500305'
rules_mapping[annual_leave_provision_rule]['credit'] = '200502'
tax_bracket_total_rule = self.env.ref('l10n_jo_hr_payroll.jordan_tax_tax_bracket_total')
rules_mapping[tax_bracket_total_rule]['debit'] = '200307'
end_service_benefit_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_end_of_service_benefit')
rules_mapping[end_service_benefit_rule]['debit'] = '200503'
remaining_leave_compensation_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_remaining_leave_compensation')
rules_mapping[remaining_leave_compensation_rule]['debit'] = '200502'
end_service_tax_ded_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_end_of_service_tax_deduction')
rules_mapping[end_service_tax_ded_rule]['debit'] = '500310'
assignment_of_salary_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_assignment_of_salary_rule')
rules_mapping[assignment_of_salary_rule]['debit'] = '500310'
child_support_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_child_support')
rules_mapping[child_support_rule]['debit'] = '500310'
deduction_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_deduction_salary_rule')
rules_mapping[deduction_rule]['debit'] = '500310'
reimbursement_rule = self.env.ref('l10n_jo_hr_payroll.l10n_jo_hr_payroll_structure_jo_employee_salary_reimbursement_salary_rule')
rules_mapping[reimbursement_rule]['debit'] = '200101'
net_rule = self.env['hr.salary.rule'].search([
('struct_id', '=', self.env.ref('l10n_jo_hr_payroll.hr_payroll_structure_jo_employee_salary').id),
('code', '=', 'NET'),
], limit=1)
rules_mapping[net_rule]['credit'] = '200101'
self._configure_payroll_account(
companies,
"JO",
account_codes=account_codes,
rules_mapping=rules_mapping,
default_account=default_account)