diff --git a/hrms/hr/doctype/leave_encashment/test_leave_encashment.py b/hrms/hr/doctype/leave_encashment/test_leave_encashment.py index 1edb7b1b6e..e873c9b0bf 100644 --- a/hrms/hr/doctype/leave_encashment/test_leave_encashment.py +++ b/hrms/hr/doctype/leave_encashment/test_leave_encashment.py @@ -408,9 +408,13 @@ def test_status_of_leave_encashment_after_payment_via_salary_slip(self): leave_encashment.reload() self.assertEqual(leave_encashment.status, "Unpaid") - def test_status_of_leave_encashment_after_payment_via_payment_entry(self): + def test_status_of_leave_encashment_after_payment_via_payment_entry_and_fnf(self): + from hrms.hr.doctype.full_and_final_statement.test_full_and_final_statement import ( + create_full_and_final_statement, + ) from hrms.overrides.employee_payment_entry import get_payment_entry_for_employee +<<<<<<< HEAD leave_encashment = frappe.get_doc( doctype="Leave Encashment", employee=self.employee, @@ -421,6 +425,11 @@ def test_status_of_leave_encashment_after_payment_via_payment_entry(self): expense_account="Administrative Expenses - _TC", cost_center="Main - _TC", ).save() +======= + leave_encashment = self.create_test_leave_encashment( + pay_via_payment_entry=1, payable_account="Payroll Payable - _TC" + ) +>>>>>>> 3589e049 (chore: add test) leave_encashment.submit() pe = get_payment_entry_for_employee(leave_encashment.doctype, leave_encashment.name) @@ -430,5 +439,84 @@ def test_status_of_leave_encashment_after_payment_via_payment_entry(self): pe.submit() leave_encashment.reload() + self.assertEqual(leave_encashment.status, "Paid") +<<<<<<< HEAD +======= + + pe.cancel() + leave_encashment.reload() + self.assertEqual(leave_encashment.status, "Unpaid") + + frappe.db.set_value("Employee", self.employee, "relieving_date", getdate()) + + fnf = create_full_and_final_statement(self.employee) + fnf.payables = [] + fnf.receivables = [] + fnf.append( + "payables", + { + "component": "Leave Encashment", + "reference_document_type": "Leave Encashment", + "reference_document": leave_encashment.name, + "amount": leave_encashment.encashment_amount, + "account": leave_encashment.payable_account, + "status": "Settled", + }, + ) + fnf.submit() + + jv = fnf.create_journal_entry() + jv.accounts[1].account = frappe.get_cached_value("Company", "_Test Company", "default_bank_account") + jv.cheque_no = "123456" + jv.cheque_date = getdate() + jv.save() + jv.submit() + leave_encashment.reload() self.assertEqual(leave_encashment.status, "Paid") + + jv.cancel() + leave_encashment.reload() + self.assertEqual(leave_encashment.status, "Unpaid") + + def create_test_leave_encashment(self, **kwargs): + """Helper method to create leave encashment with default values""" + args = { + "employee": self.employee, + "leave_type": "_Test Leave Type Encashment", + "leave_period": self.leave_period.name, + "encashment_date": self.leave_period.to_date, + "currency": "INR", + } + args.update(kwargs) + return create_leave_encashment(**args) + + +def create_leave_encashment(**args): + if args: + args = frappe._dict(args) + leave_encashment = frappe.new_doc("Leave Encashment") + leave_encashment.company = args.company or "_Test Company" + leave_encashment.employee = args.employee + leave_encashment.posting_date = args.posting_date or getdate() + leave_encashment.leave_type = args.leave_type + leave_encashment.leave_period = args.leave_period + leave_encashment.encashment_date = args.encashment_date or getdate() + leave_encashment.currency = args.currency or frappe.get_cached_value( + "Company", "_Test Company", "default_currency" + ) + leave_encashment.pay_via_payment_entry = args.pay_via_payment_entry or 0 + if leave_encashment.pay_via_payment_entry: + leave_encashment.payable_account = args.payable_account or frappe.get_cached_value( + "Company", "_Test Company", "default_payable_account" + ) + leave_encashment.expense_account = args.expense_account or "Administrative Expenses - _TC" + leave_encashment.cost_center = args.cost_center or "Main - _TC" + + if args.encashment_days: + leave_encashment.encashment_days = args.encashment_days + + leave_encashment.insert() + + return leave_encashment +>>>>>>> 3589e049 (chore: add test)