From eeab3ee5d3adc06f66152b0786b6acc8d04c636f Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 11 Dec 2018 22:37:29 +0530 Subject: [PATCH] fix(test): use frappe.db.rollback to revert deletion of fixture data (#16192) * debug(test): test_payroll_entry * debug(test): test_payroll_entry * debug(test): use frappe.db.rollback to undelete fixture data --- .../employee_benefit_claim/employee_benefit_claim.py | 7 ++++++- erpnext/hr/doctype/salary_slip/test_salary_slip.py | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/erpnext/hr/doctype/employee_benefit_claim/employee_benefit_claim.py b/erpnext/hr/doctype/employee_benefit_claim/employee_benefit_claim.py index 9a0c5f77a87..bf150b12322 100644 --- a/erpnext/hr/doctype/employee_benefit_claim/employee_benefit_claim.py +++ b/erpnext/hr/doctype/employee_benefit_claim/employee_benefit_claim.py @@ -78,12 +78,17 @@ def get_benefit_pro_rata_ratio_amount(employee, on_date, sal_struct): total_pro_rata_max = 0 benefit_amount_total = 0 for sal_struct_row in sal_struct.get("earnings"): - pay_against_benefit_claim, max_benefit_amount = frappe.db.get_value("Salary Component", sal_struct_row.salary_component, ["pay_against_benefit_claim", "max_benefit_amount"]) + try: + pay_against_benefit_claim, max_benefit_amount = frappe.db.get_value("Salary Component", sal_struct_row.salary_component, ["pay_against_benefit_claim", "max_benefit_amount"]) + except TypeError: + # show the error in tests? + frappe.throw("Unable to find Salary Component {0}".format(sal_struct_row.salary_component)) if sal_struct_row.is_flexible_benefit == 1 and pay_against_benefit_claim != 1: total_pro_rata_max += max_benefit_amount if total_pro_rata_max > 0: for sal_struct_row in sal_struct.get("earnings"): pay_against_benefit_claim, max_benefit_amount = frappe.db.get_value("Salary Component", sal_struct_row.salary_component, ["pay_against_benefit_claim", "max_benefit_amount"]) + if sal_struct_row.is_flexible_benefit == 1 and pay_against_benefit_claim != 1: component_max = max_benefit_amount benefit_amount = component_max * sal_struct.max_benefits / total_pro_rata_max diff --git a/erpnext/hr/doctype/salary_slip/test_salary_slip.py b/erpnext/hr/doctype/salary_slip/test_salary_slip.py index 208a7339fa3..079bec51b2e 100644 --- a/erpnext/hr/doctype/salary_slip/test_salary_slip.py +++ b/erpnext/hr/doctype/salary_slip/test_salary_slip.py @@ -256,6 +256,9 @@ class TestSalarySlip(unittest.TestCase): raise frappe.db.sql("""delete from `tabAdditional Salary` where employee=%s""", (employee)) + # undelete fixture data + frappe.db.rollback() + def make_holiday_list(self): fiscal_year = get_fiscal_year(nowdate(), company=erpnext.get_default_company()) if not frappe.db.get_value("Holiday List", "Salary Slip Test Holiday List"):