From b4900ef220c8d69d368103f2401d41380804a1c7 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 23 Feb 2022 15:09:21 +0530 Subject: [PATCH] fix: duplicate exemption amount and rounded tax --- .../income_tax_computation/income_tax_computation.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/erpnext/payroll/report/income_tax_computation/income_tax_computation.py b/erpnext/payroll/report/income_tax_computation/income_tax_computation.py index e518a45a282..078158e7dc9 100644 --- a/erpnext/payroll/report/income_tax_computation/income_tax_computation.py +++ b/erpnext/payroll/report/income_tax_computation/income_tax_computation.py @@ -4,7 +4,7 @@ import frappe from frappe import _, scrub from frappe.query_builder.functions import Sum -from frappe.utils import add_days, flt, getdate +from frappe.utils import add_days, flt, getdate, rounded from erpnext.payroll.doctype.payroll_entry.payroll_entry import get_start_end_dates from erpnext.payroll.doctype.salary_slip.salary_slip import calculate_tax_by_tax_slab @@ -254,6 +254,7 @@ class IncomeTaxComputationReport(object): for d in exemption_categories: self.add_column(d.name) + self.employees_with_proofs = [] self.get_tax_exemptions("Employee Tax Exemption Proof Submission") self.get_tax_exemptions("Employee Tax Exemption Declaration") @@ -278,7 +279,6 @@ class IncomeTaxComputationReport(object): .groupby(par.employee, child.exemption_category) ).run(as_dict=True) - self.employees_with_proofs = [] for d in records: if not self.employees[d.employee]["allow_tax_exemption"]: continue @@ -305,6 +305,7 @@ class IncomeTaxComputationReport(object): self.add_column("HRA") + self.employees_with_proofs = [] self.get_eligible_hra("Employee Tax Exemption Proof Submission") self.get_eligible_hra("Employee Tax Exemption Declaration") @@ -323,7 +324,6 @@ class IncomeTaxComputationReport(object): fields = ["employee", hra_amount_field], as_list=1 ) - self.employees_with_proofs = [] for d in records: if not self.employees[d[0]]["allow_tax_exemption"]: continue @@ -359,6 +359,9 @@ class IncomeTaxComputationReport(object): def get_applicable_tax(self): self.add_column("Applicable Tax") + is_tax_rounded = frappe.db.get_value("Salary Component", + {"variable_based_on_taxable_salary": 1, "disabled": 0}, "round_to_the_nearest_integer") + for emp, emp_details in self.employees.items(): tax_slab = emp_details.get("income_tax_slab") if tax_slab: @@ -369,6 +372,8 @@ class IncomeTaxComputationReport(object): else: tax_amount = 0.0 + if is_tax_rounded: + tax_amount = rounded(tax_amount) emp_details["applicable_tax"] = tax_amount def get_total_deducted_tax(self):