Basic Salary
1
BASIC
none
code
result = payslip.paid_amount
Housing Allowance
HOUALLOW
10
python
result = bool(version.l10n_jo_housing_allowance)
code
result = version.l10n_jo_housing_allowance
Transportation Allowance
TRAALLOW
20
python
result = bool(version.l10n_jo_transportation_allowance)
code
result = version.l10n_jo_transportation_allowance
Other Allowances
OTALLOW
30
python
result = bool(version.l10n_jo_other_allowances)
code
result = version.l10n_jo_other_allowances
SSC Company Contribution
SSC
35
code
result = min(payslip._rule_parameter('l10n_jo_min_ssc_contrib'), (categories['BASIC'] + categories['ALW']))
result_rate = payslip._rule_parameter('l10n_jo_ssc_rate')
SSC Employee Contribution
SSE
40
code
result = min(payslip._rule_parameter('l10n_jo_min_sse_ded'), (categories['BASIC'] + categories['ALW']))
result_rate = payslip._rule_parameter('l10n_jo_sse_rate')
Sick Leave (Un-Paid)
SICKLEAVE0
45
python
result = 'SICKLEAVE0' in worked_days
code
result_qty = worked_days['SICKLEAVE0'].number_of_days
result = - (payslip._l10n_jo_get_gross_wage() / 30)
Rest Days Overtime
ROVT
50
python
result = 'ROVT' in inputs and inputs['ROVT'].amount and version.resource_calendar_id.hours_per_day
code
overtime_rate = payslip._rule_parameter('l10n_jo_rest_days_overtime_rate')
number_of_days = (payslip.date_to - payslip.date_from).days + 1
gross_wage = payslip._l10n_jo_get_gross_wage()
result_rate = overtime_rate * 100
result_qty = inputs['ROVT'].amount
if version.resource_calendar_id:
result = gross_wage / number_of_days / version.resource_calendar_id.hours_per_day
elif version.company_id.resource_calendar_id:
result = gross_wage / number_of_days / version.company_id.resource_calendar_id.hours_per_day
else:
result = gross_wage / number_of_days / 8.0
Weekdays Overtime
WOVT
50
python
result = 'WOVT' in inputs and inputs['WOVT'].amount and version.resource_calendar_id.hours_per_day
code
overtime_rate = payslip._rule_parameter('l10n_jo_work_days_overtime_rate')
number_of_days = (payslip.date_to - payslip.date_from).days + 1
gross_wage = payslip._l10n_jo_get_gross_wage()
result_rate = overtime_rate * 100
result_qty = inputs['WOVT'].amount
if version.resource_calendar_id:
result = gross_wage / number_of_days / version.resource_calendar_id.hours_per_day
elif version.company_id.resource_calendar_id:
result = gross_wage / number_of_days / version.company_id.resource_calendar_id.hours_per_day
else:
result = gross_wage / number_of_days / 8.0
End of Service Provision
EOSPROV
55
none
code
salary = payslip._l10n_jo_get_gross_wage()
result = salary / 12
Annual Leave Provision
ANNUALP
60
none
code
salary = payslip._l10n_jo_get_gross_wage()
result = (salary / 30) * version.l10n_jo_number_of_leave_days / 12
Taxable Salary (Gross)
100
GROSS
none
code
result = categories['BASIC'] + categories['ALW']
Taxable Yearly Gross
GROSSY
115
code
exemption_amount = payslip._rule_parameter('l10n_jo_taxable_yearly_gross_exemption_amount')
if employee.is_non_resident:
exemption_amount = 0
elif employee.l10n_jo_is_blind:
exemption_amount = GROSS * 12
elif employee.l10n_jo_has_dependants:
exemption_amount += 12000
result = max((GROSS * 12) - exemption_amount, 0)
TAX Bracket Deduction
TXB
145
python
result = (payslip._l10n_jo_get_tax(GROSSY)) > 0
code
result = -payslip._l10n_jo_get_tax(GROSSY) / 12
End of Service Benefit
EOSB
150
python
result = employee.departure_date and employee.departure_reason_id and employee.l10n_jo_is_eligible_for_eos
code
start_date = employee._get_first_version_date()
end_date = version.date_end
difference = relativedelta(end_date, start_date)
total_years = difference.years + difference.months / 12 + difference.days / 365
gross_wage = payslip._l10n_jo_get_gross_wage()
result_qty = total_years
result = gross_wage
Remaining Leaves Compensation
EOSLEAVES
155
python
result = employee.departure_reason_id
code
remaining_annual_leave_balance = employee.company_id.l10n_jo_annual_leave_type_id.get_allocation_data(employee).get(employee, False)
if remaining_annual_leave_balance:
employee_remaining_leaves = remaining_annual_leave_balance[0][1]['remaining_leaves']
else:
employee_remaining_leaves = 0
deserved_leaves = version.l10n_jo_number_of_leave_days / 12 * payslip.date_to.month
if employee_remaining_leaves >= deserved_leaves:
diff = deserved_leaves
else:
diff = employee_remaining_leaves - deserved_leaves
result = diff * (payslip._l10n_jo_get_gross_wage() / 30)
End of Service Tax Deduction
EOSTXD
160
python
result = employee.departure_date and employee.departure_reason_id and employee.l10n_jo_is_eligible_for_eos
code
exemption_amount = payslip._rule_parameter('l10n_jo_eos_exemption')
taxable_amount = EOSB - exemption_amount
result = - payslip._l10n_jo_get_tax(taxable_amount) if taxable_amount > 0 else 0
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']