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

74 lines
2.9 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_hk(self, companies):
account_codes = [
'221001', # MPF Accrued (Employer)
'221002', # MPF Witheld (Employee)
'2217', # Salaries & Wages Payable
'52', # Expenses
'5215', # Sales Commission
'5217', # MPF (Employer) Contribution
'5218', # Wages & Salaries
'5219', # Bonus Payment
]
default_account = '5218'
rules_mapping = defaultdict(dict)
# ================================================ #
# HK Employee Payroll Structure #
# ================================================ #
rule = self.env.ref('l10n_hk_hr_payroll.cap57_employees_salary_fixed_commission')
rules_mapping[rule]['debit'] = '5215'
rule = self.env.ref('l10n_hk_hr_payroll.cap57_employees_salary_internet')
rules_mapping[rule]['debit'] = '52'
rule = self.env.ref('l10n_hk_hr_payroll.cap57_employees_salary_referral_fee')
rules_mapping[rule]['debit'] = '5219'
rule = self.env.ref('l10n_hk_hr_payroll.cap57_employees_salary_end_of_year_payment')
rules_mapping[rule]['debit'] = '5219'
rule = self.env.ref('l10n_hk_hr_payroll.cap57_employees_salary_eemc')
rules_mapping[rule]['debit'] = '221002'
rule = self.env.ref('l10n_hk_hr_payroll.cap57_employees_salary_ermc')
rules_mapping[rule]['debit'] = '221001'
rules_mapping[rule]['credit'] = '5217'
rule = self.env.ref('l10n_hk_hr_payroll.cap57_employees_salary_eevc')
rules_mapping[rule]['debit'] = '221002'
rule = self.env.ref('l10n_hk_hr_payroll.cap57_employees_salary_ervc')
rules_mapping[rule]['debit'] = '221001'
rules_mapping[rule]['credit'] = '5217'
struct_ids = (
self.env.ref('l10n_hk_hr_payroll.hr_payroll_structure_cap57_employee_salary').id,
self.env.ref('l10n_hk_hr_payroll.hr_payroll_structure_cap57_payment_in_lieu_of_notice').id,
self.env.ref('l10n_hk_hr_payroll.hr_payroll_structure_cap57_long_service_payment').id,
self.env.ref('l10n_hk_hr_payroll.hr_payroll_structure_cap57_severance_payment').id,
)
net_rules = self.env['hr.salary.rule'].search([
('struct_id', 'in', struct_ids),
('code', '=', 'NET')
])
for net_rule in net_rules:
rules_mapping[net_rule]['credit'] = '2217'
self._configure_payroll_account(
companies,
"HK",
account_codes=account_codes,
rules_mapping=rules_mapping,
default_account=default_account)