Basic Salary 1 BASIC none code result = payslip.paid_amount Transport Allowance TRANSPORT_ALW 2 input input Insurance INSURANCE 2 input input Latpop LAPTOP 2 input input Insentif INSENTIF 2 input input THR THR 2 input input Meal Allowance MEAL 2 input input Level Allowance LEVEL 2 input input Basic + Benefits BASE 3 none code result = categories['BASIC'] + categories['ALW'] (Allowance) BPJS JKK BPJS_JKK 4 python result = version.l10n_id_bpjs_jkk and payslip.l10n_id_include_jkk_jkm code result = payslip._l10n_id_get_worked_days_rate() * version.wage * version.l10n_id_bpjs_jkk (Allowance) BPJS JKM BPJS_JKM 4 python result = payslip.l10n_id_include_jkk_jkm code result = payslip._l10n_id_get_worked_days_rate() * version.wage result_rate = payslip._rule_parameter('l10n_id_jkm_percentage') (Allowance) BPJS Kesehatan BPJS_Kesehatan 4 python result = payslip.l10n_id_include_bpjs_kesehatan code result = min(payslip._l10n_id_get_worked_days_rate() * version.wage, payslip._rule_parameter('l10n_id_bpjs_salary_threshold')) result_rate = payslip._rule_parameter('l10n_id_alw_bpjs_kesehatan_percent') Taxable Salary 100 GROSS none code result = categories['BASE'] + categories['COMP'] JHT JHT 110 python result = payslip.l10n_id_include_jkk_jkm code result_rate = payslip._rule_parameter('l10n_id_jht_percent') result = - payslip._l10n_id_get_worked_days_rate() * version.wage BPJS Kesehatan Deduction BPJS_KESEHATAN_DED 110 python result = payslip.l10n_id_include_bpjs_kesehatan code result = - min(payslip._l10n_id_get_worked_days_rate() * version.wage, payslip._rule_parameter('l10n_id_bpjs_salary_threshold')) result_rate = payslip._rule_parameter('l10n_id_ded_bpjs_kesehatan_percent') JP JP 110 python result = payslip.l10n_id_include_jkk_jkm code result = - min(payslip._l10n_id_get_worked_days_rate() * version.wage, payslip._rule_parameter('l10n_id_jp_threshold')) result_rate = payslip._rule_parameter('l10n_id_jp_percent') Biaya Jabatan JABATAN 111 python result = payslip.l10n_id_include_pkp_ptkp and employee.employee_type == 'employee' code gross_total = payslip._l10n_id_get_gross_accumulated() amount_to_apply = min(payslip._rule_parameter('l10n_id_biaya_jabatan_salary_threshold'), categories['GROSS']) to_add = (payslip._rule_parameter('l10n_id_biaya_jabatan_percent') / 100 ) * amount_to_apply result = gross_total + to_add PTKP PTKP 120 python result = payslip.l10n_id_include_pkp_ptkp code status_ptk_map = {'tk0': 54, "tk1": 58.5, "tk2": 63, "tk3": 67.5, "k0": 58.5, "k1": 63, "k2": 67.5, "k3": 72, "ki0": 112.5, "ki1": 117, "ki2": 121.5, "ki3": 126} result = status_ptk_map[employee.l10n_id_kode_ptkp] * 10**6 PKP PKP 121 python result = payslip.l10n_id_include_pkp_ptkp code result = max(0, payslip._l10n_id_get_total_gross() + categories['GROSS'] - categories['JABATAN'] - categories['PTKP']) PPH 21 PPH21 122 none code # regular period if payslip.l10n_id_include_pkp_ptkp: # end of year/end of contract thresholds = [60, 190, 250, 4500] percentages = [5, 15, 25, 30] level = 0 total = categories['PKP'] pph21 = 0 while total > 0 and level <= 3: to_reduce = min(total, thresholds[level] * 1e6) pph21 += to_reduce * percentages[level] / 100 total -= to_reduce level += 1 pph21 += total * 0.35 # should now contain the yearly total_yearly = -payslip._l10n_id_get_end_total_pph_amount() result = pph21 - total_yearly else: amount_to_apply = categories['GROSS'] percentage = payslip._l10n_id_get_pph21_amount(amount_to_apply) result = categories['GROSS'] * (percentage / 100) result = -result Attachment of Salary 174 ATTACH_SALARY python result = 'ATTACH_SALARY' in inputs code result = -inputs['ATTACH_SALARY'].amount result_name = inputs['ATTACH_SALARY'].name Assignment of Salary 174 ASSIG_SALARY python result = 'ASSIG_SALARY' in inputs code result = -inputs['ASSIG_SALARY'].amount result_name = inputs['ASSIG_SALARY'].name Child Support CHILD_SUPPORT code 174 python result = 'CHILD_SUPPORT' in inputs result = -inputs['CHILD_SUPPORT'].amount result_name = inputs['CHILD_SUPPORT'].name Deduction 198 DEDUCTION python result = 'DEDUCTION' in inputs code result = -inputs['DEDUCTION'].amount result_name = inputs['DEDUCTION'].name Reimbursement 199 REIMBURSEMENT python result = 'REIMBURSEMENT' in inputs code result = inputs['REIMBURSEMENT'].amount result_name = inputs['REIMBURSEMENT'].name Net Salary 200 NET none code result = categories['BASIC'] + categories['ALW'] + categories['DED']