Basic Salary BASIC none none code result = contract.wage Gross GROSS none code result = categories.BASIC + categories.ALW + categories.HRA + categories.Travel Net Salary NET none code result = categories.BASIC + categories.ALW + categories.HRA + categories.Travel + categories.GROSS + categories.Medical + categories.DED House Rent Allowance HRA none percentage contract.wage 30 Dearness Allowance DA none code result = contract.da Travel Allowance Travel none fix 3000 Meal Allowance Meal none code result = contract.meal_allowance Medical Allowance Medical none code result = contract.medical_allowance Employee Contribution EC none fix -300 Other Allowance Other none code result = contract.other_allowance fix False 5020 none UI 1 120 fix False 5020 none UI 1 120 code False 5020_C none 999999 UI Company per_in_limit = employee.company_id.ac_per_in_limit / 100 result = ((categories.BASIC + categories.ALW)*per_in_limit) min(categories.BASIC + categories.ALW, employee.company_id.ac_limit) 1 categories.BASIC + categories.ALW 121 code True 5020_E none 999999 UI Employee per_in_limit = employee.company_id.ac_per_in_limit / 100 result = ((categories.BASIC + categories.ALW)*per_in_limit) min(categories.BASIC + categories.ALW, employee.company_id.ac_limit) 1 categories.BASIC + categories.ALW 121 fix False 5030 result = (categories.BASIC + categories.ALW) > employee.company_id.ac_limit and (categories.BASIC + categories.ALW) - employee.company_id.ac_limit > 0 UI SOL 1 122 code False 5030_C 999999 python result = (categories.BASIC + categories.ALW) > employee.company_id.ac_limit and (categories.BASIC + categories.ALW) - employee.company_id.ac_limit > 0 UI Company's Solidarity limit = employee.company_id.ac_limit per_off_limit = employee.company_id.ac_per_off_limit / 100 result = (((categories.BASIC + categories.ALW) - limit)*per_off_limit) (categories.BASIC + categories.ALW) - employee.company_id.ac_limit 1 categories.BASIC + categories.ALW 123 code True 5030_E 999999 python result = (categories.BASIC + categories.ALW) > employee.company_id.ac_limit and (categories.BASIC + categories.ALW) - employee.company_id.ac_limit > 0 UI Employee's Solidarity limit = employee.company_id.ac_limit per_off_limit = employee.company_id.ac_per_off_limit / 100 result = (((categories.BASIC + categories.ALW) - limit)*per_off_limit) (categories.BASIC + categories.ALW) - employee.company_id.ac_limit 1 categories.BASIC + categories.ALW 123 code True 3030 python result = contract.employee_id.children + contract.employee_id.children_student > 0 Family Allowances result = 0 result += contract.employee_id.children * employee.company_id.fa_amount_child result += contract.employee_id.children_student * employee.company_id.fa_amount_student min_number_childs = employee.company_id.fa_min_number_childs - 1 if contract.employee_id.children + contract.employee_id.children_student > min_number_childs: child_supp = contract.employee_id.children + contract.employee_id.children_student - min_number_childs result += child_supp * employee.company_id.fa_amount_additional 1 categories.BASIC + categories.ALW 50 fix False 5010 none 999999 OAI/II/IC Old Age Insurance, Invalidity Insurance, Income Compensation 1 110 code False 5010_C none 999999 OAI/II/IC Company per = employee.company_id.avs_per result = (per*(categories.BASIC + categories.ALW))/100 categories.BASIC + categories.ALW 1 111 code True 5010_E none 999999 OAI/II/IC Employee per = employee.company_id.avs_per result = (per*(categories.BASIC + categories.ALW))/100 categories.BASIC + categories.ALW 1 111 code False 6030 none 999999 Administrative Fees Administrative Fees to the OAI per = employee.company_id.fadmin_per result = (per*(categories.BASIC + categories.ALW))/100 categories.BASIC + categories.ALW 1 210 code True 5060 python result = contract.imp_src > 0 999999 Source Tax per = contract.imp_src result = -(per*(categories.BASIC + categories.ALW + categories.FALW))/100 categories.BASIC + categories.ALW + categories.FALW 1 160 fix False 5041 none 999999 AI 1 140 code False 5041_C none 999999 AI Company per = employee.company_id.laa_per result = (per*(categories.BASIC + categories.ALW))/100 categories.BASIC + categories.ALW 1 141 code True 5041_E none 999999 AI Employee per = employee.company_id.laa_per result = (per*(categories.BASIC + categories.ALW))/100 categories.BASIC + categories.ALW 1 141 fix False 5042 none 999999 SDA Sickness Daily Allowance 1 150 code False 5042_C none 999999 SDA Company per = employee.company_id.lca_per result = (per*(categories.BASIC + categories.ALW))/100 categories.BASIC + categories.ALW 1 151 code True 5042_E none 999999 SDA Employee per = employee.company_id.lca_per result = (per*(categories.BASIC + categories.ALW))/100 categories.BASIC + categories.ALW 1 151 fix False 5050 none 999999 OBP 1 categories.BASIC + categories.ALW 130 code False 5050_C python result = (contract.lpp_rate or contract.lpp_amount) > 0 OBP Company minimum_legal = employee.company_id.lpp_min maximum_range = employee.company_id.lpp_max amount = contract.wage_fulltime * 12 if contract.lpp_rate != 0: if contract.lpp_contract_id: amount = amount - contract.lpp_contract_id.dc_amount amount = amount / 12 amount = amount * (contract.occupation_rate / 100) amount = amount * (payslip.working_rate / 100) if amount > maximum_range: result = -(maximum_range)*((contract.lpp_rate)/100) elif amount < minimum_legal and not contract.lpp_contract_id: result = -(minimum_legal)*((contract.lpp_rate)/100) else: result = -(amount)*((contract.lpp_rate)/100) else: result = -contract.lpp_amount -contract.lpp_amount or ((((contract.wage_fulltime*12) - (contract.lpp_contract_id.dc_amount or 0))/12)*(contract.occupation_rate/100)*(payslip.working_rate/100)) 1 132 code True 5050_E python result = (contract.lpp_rate or contract.lpp_amount) > 0 OBP Employee minimum_legal = employee.company_id.lpp_min maximum_range = employee.company_id.lpp_max amount = contract.wage_fulltime * 12 if contract.lpp_rate != 0: if contract.lpp_contract_id: amount = amount - contract.lpp_contract_id.dc_amount amount = amount / 12 amount = amount * (contract.occupation_rate / 100) amount = amount * (payslip.working_rate / 100) if amount > maximum_range: result = -(maximum_range)*((contract.lpp_rate)/100) elif amount < minimum_legal and not contract.lpp_contract_id: result = -(minimum_legal)*((contract.lpp_rate)/100) else: result = -(amount)*((contract.lpp_rate)/100) else: result = -contract.lpp_amount -contract.lpp_amount or ((((contract.wage_fulltime*12) - (contract.lpp_contract_id.dc_amount or 0))/12)*(contract.occupation_rate/100)*(payslip.working_rate/100)) 1 131 fix False 5063_VD none 999999 AS Families (VD) 1 165 code False 5063_VD_C none 999999 AS Families (VD) Company per = employee.company_id.pc_f_vd_per result = (per*(categories.BASIC + categories.ALW))/100 categories.BASIC + categories.ALW 1 166 code True 5063_VD_E none 999999 AS Families (VD) Employee per = employee.company_id.pc_f_vd_per result = (per*(categories.BASIC + categories.ALW))/100 categories.BASIC + categories.ALW 1 166 True 1000 none 999999 Basic CH code if payslip.wage_type == 'hour': result = contract.wage*payslip.worked_hours else: result = contract.wage*payslip.working_rate/100 code True 5000 none 999999 Gross CH result = categories.BASIC + categories.ALW + categories.FALW 1 100 code True 6500 none 999999 Net CH result = categories.BASIC + categories.ALW + categories.DED + categories.FALW 1 200 code True TOTAL_DED none 999999 Total Deduction result = categories.DED 1 195 BASE Base for new structures REGULAR Regular Pay