test: create leave ledger entry for encashment
This commit is contained in:
parent
5ba17c87e5
commit
8ef81870bb
@ -9,41 +9,39 @@ from frappe.utils import today, add_months
|
|||||||
from erpnext.hr.doctype.employee.test_employee import make_employee
|
from erpnext.hr.doctype.employee.test_employee import make_employee
|
||||||
from erpnext.hr.doctype.salary_structure.test_salary_structure import make_salary_structure
|
from erpnext.hr.doctype.salary_structure.test_salary_structure import make_salary_structure
|
||||||
from erpnext.hr.doctype.leave_period.test_leave_period import create_leave_period
|
from erpnext.hr.doctype.leave_period.test_leave_period import create_leave_period
|
||||||
|
from erpnext.hr.doctype.leave_policy.test_leave_policy import create_leave_policy\
|
||||||
|
|
||||||
test_dependencies = ["Leave Type"]
|
test_dependencies = ["Leave Type"]
|
||||||
|
|
||||||
class TestLeaveEncashment(unittest.TestCase):
|
class TestLeaveEncashment(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
frappe.db.sql('''delete from `tabLeave Period`''')
|
frappe.db.sql('''delete from `tabLeave Period`''')
|
||||||
def test_leave_balance_value_and_amount(self):
|
frappe.db.sql('''delete from `tabLeave Allocation`''')
|
||||||
employee = "test_employee_encashment@salary.com"
|
|
||||||
leave_type = "_Test Leave Type Encashment"
|
|
||||||
|
|
||||||
# create the leave policy
|
# create the leave policy
|
||||||
leave_policy = frappe.get_doc({
|
leave_policy = create_leave_policy(
|
||||||
"doctype": "Leave Policy",
|
leave_type="_Test Leave Type Encashment",
|
||||||
"leave_policy_details": [{
|
annual_allocation=10)
|
||||||
"leave_type": leave_type,
|
|
||||||
"annual_allocation": 10
|
|
||||||
}]
|
|
||||||
}).insert()
|
|
||||||
leave_policy.submit()
|
leave_policy.submit()
|
||||||
|
|
||||||
# create employee, salary structure and assignment
|
# create employee, salary structure and assignment
|
||||||
employee = make_employee(employee)
|
self.employee = make_employee("test_employee_encashment@example.com")
|
||||||
frappe.db.set_value("Employee", employee, "leave_policy", leave_policy.name)
|
frappe.db.set_value("Employee", "test_employee_encashment@example.com", "leave_policy", leave_policy.name)
|
||||||
salary_structure = make_salary_structure("Salary Structure for Encashment", "Monthly", employee,
|
salary_structure = make_salary_structure("Salary Structure for Encashment", "Monthly", self.employee,
|
||||||
other_details={"leave_encashment_amount_per_day": 50})
|
other_details={"leave_encashment_amount_per_day": 50})
|
||||||
|
|
||||||
# create the leave period and assign the leaves
|
# create the leave period and assign the leaves
|
||||||
leave_period = create_leave_period(add_months(today(), -3), add_months(today(), 3))
|
self.leave_period = create_leave_period(add_months(today(), -3), add_months(today(), 3))
|
||||||
leave_period.grant_leave_allocation(employee=employee)
|
self.leave_period.grant_leave_allocation(employee=self.employee)
|
||||||
|
|
||||||
|
|
||||||
|
def test_leave_balance_value_and_amount(self):
|
||||||
|
frappe.db.sql('''delete from `tabLeave Encashment`''')
|
||||||
leave_encashment = frappe.get_doc(dict(
|
leave_encashment = frappe.get_doc(dict(
|
||||||
doctype = 'Leave Encashment',
|
doctype = 'Leave Encashment',
|
||||||
employee = employee,
|
employee = self.employee,
|
||||||
leave_type = leave_type,
|
leave_type = "_Test Leave Type Encashment",
|
||||||
leave_period = leave_period.name,
|
leave_period = self.leave_period.name,
|
||||||
payroll_date = today()
|
payroll_date = today()
|
||||||
)).insert()
|
)).insert()
|
||||||
|
|
||||||
@ -53,3 +51,26 @@ class TestLeaveEncashment(unittest.TestCase):
|
|||||||
|
|
||||||
leave_encashment.submit()
|
leave_encashment.submit()
|
||||||
self.assertTrue(frappe.db.get_value("Leave Encashment", leave_encashment.name, "additional_salary"))
|
self.assertTrue(frappe.db.get_value("Leave Encashment", leave_encashment.name, "additional_salary"))
|
||||||
|
|
||||||
|
def test_creation_of_leave_ledger_entry_on_submit(self):
|
||||||
|
frappe.db.sql('''delete from `tabLeave Encashment`''')
|
||||||
|
leave_encashment = frappe.get_doc(dict(
|
||||||
|
doctype = 'Leave Encashment',
|
||||||
|
employee = self.employee,
|
||||||
|
leave_type = "_Test Leave Type Encashment",
|
||||||
|
leave_period = self.leave_period.name,
|
||||||
|
payroll_date = today()
|
||||||
|
)).insert()
|
||||||
|
|
||||||
|
leave_encashment.submit()
|
||||||
|
|
||||||
|
leave_ledger_entry = frappe.get_all('Leave Ledger Entry', fields='*', filters=dict(transaction_name=leave_encashment.name))
|
||||||
|
|
||||||
|
self.assertEquals(len(leave_ledger_entry), 1)
|
||||||
|
self.assertEquals(leave_ledger_entry[0].employee, leave_encashment.employee)
|
||||||
|
self.assertEquals(leave_ledger_entry[0].leave_type, leave_encashment.leave_type)
|
||||||
|
self.assertEquals(leave_ledger_entry[0].leaves, leave_encashment.encashable_days * -1)
|
||||||
|
|
||||||
|
# check if leave ledger entry is deleted on cancellation
|
||||||
|
leave_encashment.cancel()
|
||||||
|
self.assertFalse(frappe.db.exists("Leave Ledger Entry", {'transaction_name':leave_encashment.name}))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user