Beispiel #1
0
	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)
Beispiel #3
0
    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)