diff --git a/addons/l10n_be_hr_payroll/__manifest__.py b/addons/l10n_be_hr_payroll/__manifest__.py
index f6cd23958e2..9070cc1dac9 100644
--- a/addons/l10n_be_hr_payroll/__manifest__.py
+++ b/addons/l10n_be_hr_payroll/__manifest__.py
@@ -23,6 +23,5 @@ Belgian Payroll Rules.
'data': [
'views/l10n_be_hr_payroll_view.xml',
'data/l10n_be_hr_payroll_data.xml',
- 'data/hr.salary.rule.csv',
],
}
diff --git a/addons/l10n_be_hr_payroll/data/hr.salary.rule.csv b/addons/l10n_be_hr_payroll/data/hr.salary.rule.csv
deleted file mode 100644
index a3fc0ef57d5..00000000000
--- a/addons/l10n_be_hr_payroll/data/hr.salary.rule.csv
+++ /dev/null
@@ -1,21 +0,0 @@
-id,amount_select,condition_range_min,condition_range_max,amount_percentage,amount_fix,amount_python_compute,name,category_id,sequence,code,parent_rule_id/id,condition_select,condition_range,amount_percentage_base,register_id/id
-1410,code,1,1,,,"result = min(36, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1411,code,2,2,,,"result = min(97, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1412,code,3,3,,,"result = min(253, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1413,code,4,4,,,"result = min(454, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1414,code,5,5,,,"result = min(677, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1415,code,6,6,,,"result = min(902, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1416,code,7,7,,,"result = min(1128, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1417,code,8,8,,,"result = min(1371, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1418,code,9,9,,,"result = min(1622, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1419,code,10,10,,,"result = min(1873, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1420,code,11,11,,,"result = min(2124, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1421,code,12,12,,,"result = min(2375, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1422,code,13,13,,,"result = min(2626, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1423,code,14,14,,,"result = min(2877, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1424,code,15,15,,,"result = min(3128, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1425,code,16,16,,,"result = min(3379, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1426,code,17,17,,,"result = min(3630, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1427,code,18,18,,,"result = min(3881, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1428,code,19,19,,,"result = min(4132, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
-1429,code,20,20,,,"result = min(4383, - (categories.PP + categories.PPRed + categories.FamRed + categories.ChA))",Child Allowance Belgium,Child Allowance Belgium,142,Ch.A,hr_payroll_rules_child,range,employee.dependent_children,,
diff --git a/addons/l10n_be_hr_payroll/data/l10n_be_hr_payroll_data.xml b/addons/l10n_be_hr_payroll/data/l10n_be_hr_payroll_data.xml
index 22d8f4e9d92..f7caf5787a7 100644
--- a/addons/l10n_be_hr_payroll/data/l10n_be_hr_payroll_data.xml
+++ b/addons/l10n_be_hr_payroll/data/l10n_be_hr_payroll_data.xml
@@ -75,11 +75,6 @@ result = contract.wage_with_holidays
ChA
-
- Reduction for special family charges
- FamRed
-
-
Special social contribution
SSC
@@ -293,132 +288,55 @@ else:
basic_bareme_2 = compute_basic_bareme(yearly_net_taxable_revenue - yearly_net_taxable_revenue_for_spouse)
withholding_tax_amount = convert_to_month(max(basic_bareme_1 + basic_bareme_2 - 3381.2, 0))
-result = - withholding_tax_amount
+# Reduction for isolated people and for other family charges
+if employee.marital in ['divorced', 'single', 'widower'] or (employee.spouse_net_revenue > 0.0 or employee.spouse_other_net_revenue > 0.0):
+ if employee.marital in ['divorced', 'single', 'widower']:
+ withholding_tax_amount -= 25.0
+ if employee.marital == 'widower' or (employee.marital in ['divorced', 'single', 'widower'] and employee.dependent_children):
+ withholding_tax_amount -= 36.0
+ if employee.disabled:
+ withholding_tax_amount -= 36.0
+ if employee.other_dependent_people and employee.dependent_seniors:
+ withholding_tax_amount -= 73.0 * employee.dependent_seniors
+ if employee.other_dependent_people and employee.dependent_juniors:
+ withholding_tax_amount -= 36.0 * employee.dependent_juniors
+ if employee.marital in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='with income' and employee.spouse_net_revenue <= 225.0:
+ withholding_tax_amount -= 112.5
+ if employee.marital in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='with income' and not employee.spouse_net_revenue and employee.spouse_other_net_revenue <= 450.0:
+ withholding_tax_amount -= 225.0
+if employee.spouse_net_revenue == 0.0 and employee.spouse_other_net_revenue == 0.0:
+ if employee.disabled:
+ withholding_tax_amount -= 36.0
+ if employee.disabled_spouse_bool:
+ withholding_tax_amount -= 36.0
+ if employee.other_dependent_people and employee.dependent_seniors:
+ withholding_tax_amount -= 73.0 * employee.dependent_seniors
+ if employee.other_dependent_people and employee.dependent_juniors:
+ withholding_tax_amount -= 36.0 * employee.dependent_juniors
+
+# Child Allowances
+if employee.dependent_children:
+ if employee.dependent_children == 1:
+ withholding_tax_amount -= 36.0
+ if employee.dependent_children == 2:
+ withholding_tax_amount -= 97.0
+ if employee.dependent_children == 3:
+ withholding_tax_amount -= 253.0
+ if employee.dependent_children == 4:
+ withholding_tax_amount -= 454.0
+ if employee.dependent_children == 5:
+ withholding_tax_amount -= 677.0
+ if employee.dependent_children == 6:
+ withholding_tax_amount -= 902.0
+ if employee.dependent_children == 7:
+ withholding_tax_amount -= 1128.0
+ if employee.dependent_children >= 8:
+ withholding_tax_amount -= 1371.0 + (employee.dependent_children - 8) * 251.0
+
+result = - max(withholding_tax_amount, 0.0)
+
-
-
- Child Allowance Belgium
- Child.Allowance
- 140
- fix
- python
- result = bool(employee.dependent_children) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
-
-
-
-
- Child Allowance Belgium
- Ch.A
- fix
- 141
- The recipient of income is an isolated or spouse beneficiary's income has also
- earned income (Schedule I / II scale)
-
- A. When the gross monthly earnings do not exceed € 7,500, the withholding tax is determined according to the Schedule I.
- The following reductions are then deducted from the payroll tax determined in accordance with this schedule:
-
- a) Reduction for dependent children
- python
- result = bool(employee.dependent_children) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
-
-
-
- Other family charges reductions
- Oth.Fam.Red
- 143
- fix
- python
- result = True
-
-
-
-
- Reduction for isolated people
- Red.Iso
- 144
- python
- result = (employee.marital in ['divorced', 'single', 'widower']) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
- code
- result = min(25.00, - (categories.PP + categories.FamRed + categories.ChA))
-
-
-
-
- Reduction for isolated parent
- Red.Iso.Par
- 144
- python
- result = (employee.marital == 'widower' or (employee.marital in ['divorced', 'single', 'widower'] and employee.dependent_children)) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
- code
- result = min(36.00, - (categories.PP + categories.FamRed + categories.ChA))
-
-
-
-
- Reduction for disabled employee
- Red.Dis
- 145
- python
- result = (employee.disabled) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
- code
- result = min(36.00, - (categories.PP + categories.FamRed + categories.ChA))
-
-
-
-
- Reduction for dependent seniors
- Red.Seniors
- 146
- python
- result = (employee.other_dependent_people and employee.dependent_seniors) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
- code
- result = min(73.0 * employee.dependent_seniors, - (categories.PP + categories.FamRed + categories.ChA))
-
-
-
-
- Reduction for dependent juniors
- Red.Juniors
- 147
- python
- result = (employee.other_dependent_people and employee.dependent_juniors) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
- code
- result = min(36.0 * employee.dependent_juniors, - (categories.PP + categories.FamRed + categories.ChA))
-
-
-
-
- Reduction for low spouse revenue
- Red.Spouse.Net
- 148
- python
- result = (employee.marital in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='with income' and employee.spouse_net_revenue <= 225.0) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
- code
- result = min(110.50, - (categories.PP + categories.FamRed + categories.ChA))
-
-
-
-
- Reduction for low spouse other revenue
- Red.Spouse.Oth.Net
- 149
- python
- result = (employee.marital in ['married', 'cohabitant'] and employee.spouse_fiscal_status=='with income' and not employee.spouse_net_revenue and employee.spouse_other_net_revenue <= 450.0) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
- code
- result = min(220.0, - (categories.PP + categories.FamRed + categories.ChA))
-
-
-
-
- Disabled Spouse Allowance
- Sp.handicap
- 150
- python
- result = (employee.disabled_spouse_bool==True) and (categories.PP + categories.FamRed + categories.ChA < 0.0)
- code
- min(36.0, - (categories.PP + categories.FamRed + categories.ChA))
-
ATN Company Car
@@ -594,8 +512,6 @@ result = -min(ip_amount * tax_rate, 11745)
ref('hr_salary_rule_employment_bonus_employees'),
ref('hr_payroll_rules_employee'),
ref('hr_payroll_rules_bareme'),
- ref('hr_salary_rule_other_family_charges_reductions'),
- ref('hr_payroll_rules_child_alw'),
ref('hr_payroll_rules_ch_worker'),
ref('hr_payroll_rules_reim_travel'),
ref('hr_payroll_rules_mis_ex_onss_1'),
@@ -619,8 +535,6 @@ result = -min(ip_amount * tax_rate, 11745)
ref('hr_payroll_rules_onss_rule'),
ref('hr_salary_rule_employment_bonus_workers'),
ref('hr_payroll_rules_bareme'),
- ref('hr_payroll_rules_child_alw'),
- ref('hr_salary_rule_other_family_charges_reductions'),
ref('hr_payroll_rules_ch_worker'),
ref('hr_payroll_rules_reim_travel'),
ref('hr_payroll_rules_mis_ex_onss_1'),