def test_earned_leaves_creation(self): leave_period = get_leave_period() employee = get_employee() leave_type = 'Test Earned Leave Type' if not frappe.db.exists('Leave Type', leave_type): frappe.get_doc(dict( leave_type_name = leave_type, doctype = 'Leave Type', is_earned_leave = 1, earned_leave_frequency = 'Monthly', rounding = 0.5, max_leaves_allowed = 6 )).insert() leave_policy = frappe.get_doc({ "doctype": "Leave Policy", "leave_policy_details": [{"leave_type": leave_type, "annual_allocation": 6}] }).insert() frappe.db.set_value("Employee", employee.name, "leave_policy", leave_policy.name) allocate_leaves(employee, leave_period, leave_type, 0, eligible_leaves = 12) from erpnext.hr.utils import allocate_earned_leaves i = 0 while(i<14): allocate_earned_leaves() i += 1 self.assertEqual(get_leave_balance_on(employee.name, leave_type, nowdate()), 6) # validate earned leaves creation without maximum leaves frappe.db.set_value('Leave Type', leave_type, 'max_leaves_allowed', 0) i = 0 while(i<6): allocate_earned_leaves() i += 1 self.assertEqual(get_leave_balance_on(employee.name, leave_type, nowdate()), 9)
def test_earned_leave(self): leave_period = get_leave_period() employee = get_employee() leave_type = 'Test Earned Leave Type' if not frappe.db.exists('Leave Type', leave_type): frappe.get_doc(dict( leave_type_name = leave_type, doctype = 'Leave Type', is_earned_leave = 1, earned_leave_frequency = 'Monthly', rounding = 0.5, max_leaves_allowed = 6 )).insert() leave_policy = frappe.get_doc({ "doctype": "Leave Policy", "leave_policy_details": [{"leave_type": leave_type, "annual_allocation": 6}] }).insert() frappe.db.set_value("Employee", employee.name, "leave_policy", leave_policy.name) allocate_leaves(employee, leave_period, leave_type, 0, eligible_leaves = 12) from erpnext.hr.utils import allocate_earned_leaves i = 0 while(i<14): allocate_earned_leaves() i += 1 self.assertEqual(get_leave_balance_on(employee.name, leave_type, nowdate()), 6)
def test_earned_leaves_creation(self): frappe.db.sql('''delete from `tabLeave Period`''') frappe.db.sql('''delete from `tabLeave Policy Assignment`''') frappe.db.sql('''delete from `tabLeave Allocation`''') frappe.db.sql('''delete from `tabLeave Ledger Entry`''') leave_period = get_leave_period() employee = get_employee() leave_type = 'Test Earned Leave Type' frappe.delete_doc_if_exists("Leave Type", 'Test Earned Leave Type', force=1) frappe.get_doc( dict(leave_type_name=leave_type, doctype='Leave Type', is_earned_leave=1, earned_leave_frequency='Monthly', rounding=0.5, max_leaves_allowed=6)).insert() leave_policy = frappe.get_doc({ "doctype": "Leave Policy", "leave_policy_details": [{ "leave_type": leave_type, "annual_allocation": 6 }] }).insert() data = { "assignment_based_on": "Leave Period", "leave_policy": leave_policy.name, "leave_period": leave_period.name } leave_policy_assignments = create_assignment_for_multiple_employees( [employee.name], frappe._dict(data)) frappe.get_doc( "Leave Policy Assignment", leave_policy_assignments[0]).grant_leave_alloc_for_employee() from erpnext.hr.utils import allocate_earned_leaves i = 0 while (i < 14): allocate_earned_leaves() i += 1 self.assertEqual( get_leave_balance_on(employee.name, leave_type, nowdate()), 6) # validate earned leaves creation without maximum leaves frappe.db.set_value('Leave Type', leave_type, 'max_leaves_allowed', 0) i = 0 while (i < 6): allocate_earned_leaves() i += 1 self.assertEqual( get_leave_balance_on(employee.name, leave_type, nowdate()), 9)
def test_earned_leaves_creation(self): frappe.db.sql("""delete from `tabLeave Period`""") frappe.db.sql("""delete from `tabLeave Policy Assignment`""") frappe.db.sql("""delete from `tabLeave Allocation`""") frappe.db.sql("""delete from `tabLeave Ledger Entry`""") leave_period = get_leave_period() employee = get_employee() leave_type = "Test Earned Leave Type" frappe.delete_doc_if_exists("Leave Type", "Test Earned Leave Type", force=1) frappe.get_doc( dict( leave_type_name=leave_type, doctype="Leave Type", is_earned_leave=1, earned_leave_frequency="Monthly", rounding=0.5, max_leaves_allowed=6, ) ).insert() leave_policy = frappe.get_doc( { "doctype": "Leave Policy", "title": "Test Leave Policy", "leave_policy_details": [{"leave_type": leave_type, "annual_allocation": 6}], } ).insert() data = { "assignment_based_on": "Leave Period", "leave_policy": leave_policy.name, "leave_period": leave_period.name, } leave_policy_assignments = create_assignment_for_multiple_employees( [employee.name], frappe._dict(data) ) from erpnext.hr.utils import allocate_earned_leaves i = 0 while i < 14: allocate_earned_leaves() i += 1 self.assertEqual(get_leave_balance_on(employee.name, leave_type, nowdate()), 6) # validate earned leaves creation without maximum leaves frappe.db.set_value("Leave Type", leave_type, "max_leaves_allowed", 0) i = 0 while i < 6: allocate_earned_leaves() i += 1 self.assertEqual(get_leave_balance_on(employee.name, leave_type, nowdate()), 9)