fix(test): add ignore duplicates flag to allocation function

(cherry picked from commit e25544f94e)
This commit is contained in:
Rucha Mahabal
2022-02-06 20:30:46 +05:30
committed by mergify-bot
parent ce26759a95
commit aa04e02710
2 changed files with 6 additions and 6 deletions

View File

@@ -545,7 +545,7 @@ class TestLeaveApplication(unittest.TestCase):
from erpnext.hr.utils import allocate_earned_leaves from erpnext.hr.utils import allocate_earned_leaves
i = 0 i = 0
while(i<14): while(i<14):
allocate_earned_leaves() allocate_earned_leaves(ignore_duplicates=True)
i += 1 i += 1
self.assertEqual(get_leave_balance_on(employee.name, leave_type, nowdate()), 6) self.assertEqual(get_leave_balance_on(employee.name, leave_type, nowdate()), 6)
@@ -553,7 +553,7 @@ class TestLeaveApplication(unittest.TestCase):
frappe.db.set_value('Leave Type', leave_type, 'max_leaves_allowed', 0) frappe.db.set_value('Leave Type', leave_type, 'max_leaves_allowed', 0)
i = 0 i = 0
while(i<6): while(i<6):
allocate_earned_leaves() allocate_earned_leaves(ignore_duplicates=True)
i += 1 i += 1
self.assertEqual(get_leave_balance_on(employee.name, leave_type, nowdate()), 9) self.assertEqual(get_leave_balance_on(employee.name, leave_type, nowdate()), 9)

View File

@@ -353,7 +353,7 @@ def generate_leave_encashment():
create_leave_encashment(leave_allocation=leave_allocation) create_leave_encashment(leave_allocation=leave_allocation)
def allocate_earned_leaves(): def allocate_earned_leaves(ignore_duplicates=False):
'''Allocate earned leaves to Employees''' '''Allocate earned leaves to Employees'''
e_leave_types = get_earned_leaves() e_leave_types = get_earned_leaves()
today = getdate() today = getdate()
@@ -381,9 +381,9 @@ def allocate_earned_leaves():
from_date = frappe.db.get_value("Employee", allocation.employee, "date_of_joining") from_date = frappe.db.get_value("Employee", allocation.employee, "date_of_joining")
if check_effective_date(from_date, today, e_leave_type.earned_leave_frequency, e_leave_type.based_on_date_of_joining_date): if check_effective_date(from_date, today, e_leave_type.earned_leave_frequency, e_leave_type.based_on_date_of_joining_date):
update_previous_leave_allocation(allocation, annual_allocation, e_leave_type) update_previous_leave_allocation(allocation, annual_allocation, e_leave_type, ignore_duplicates)
def update_previous_leave_allocation(allocation, annual_allocation, e_leave_type): def update_previous_leave_allocation(allocation, annual_allocation, e_leave_type, ignore_duplicates=False):
earned_leaves = get_monthly_earned_leave(annual_allocation, e_leave_type.earned_leave_frequency, e_leave_type.rounding) earned_leaves = get_monthly_earned_leave(annual_allocation, e_leave_type.earned_leave_frequency, e_leave_type.rounding)
allocation = frappe.get_doc('Leave Allocation', allocation.name) allocation = frappe.get_doc('Leave Allocation', allocation.name)
@@ -395,7 +395,7 @@ def update_previous_leave_allocation(allocation, annual_allocation, e_leave_type
if new_allocation != allocation.total_leaves_allocated: if new_allocation != allocation.total_leaves_allocated:
today_date = today() today_date = today()
if not is_earned_leave_already_allocated(allocation, annual_allocation): if ignore_duplicates or not is_earned_leave_already_allocated(allocation, annual_allocation):
allocation.db_set("total_leaves_allocated", new_allocation, update_modified=False) allocation.db_set("total_leaves_allocated", new_allocation, update_modified=False)
create_additional_leave_ledger_entry(allocation, earned_leaves, today_date) create_additional_leave_ledger_entry(allocation, earned_leaves, today_date)