test: expense claim against fully and partially paid advances

This commit is contained in:
Rucha Mahabal 2022-03-24 22:36:28 +05:30
parent 0461223627
commit edf0c0030e

View File

@ -72,6 +72,57 @@ class TestExpenseClaim(unittest.TestCase):
expense_claim = frappe.get_doc("Expense Claim", expense_claim.name)
self.assertEqual(expense_claim.status, "Unpaid")
def test_expense_claim_against_fully_paid_advances(self):
from erpnext.hr.doctype.employee_advance.test_employee_advance import get_advances_for_claim, make_employee_advance, make_payment_entry
frappe.db.delete("Employee Advance")
payable_account = get_payable_account("_Test Company")
claim = make_expense_claim(payable_account, 1000, 1000, "_Test Company", "Travel Expenses - _TC", do_not_submit=True)
advance = make_employee_advance(claim.employee)
pe = make_payment_entry(advance)
pe.submit()
# claim for already paid out advances
claim = get_advances_for_claim(claim, advance.name)
claim.save()
claim.submit()
self.assertEqual(claim.grand_total, 0)
self.assertEqual(claim.status, "Paid")
def test_expense_claim_partially_paid_via_advance(self):
from erpnext.hr.doctype.employee_advance.test_employee_advance import (
get_advances_for_claim,
make_employee_advance,
make_payment_entry as make_advance_payment
)
frappe.db.delete("Employee Advance")
payable_account = get_payable_account("_Test Company")
claim = make_expense_claim(payable_account, 1000, 1000, "_Test Company", "Travel Expenses - _TC", do_not_submit=True)
# link advance for partial amount
advance = make_employee_advance(claim.employee, {'advance_amount': 500})
pe = make_advance_payment(advance)
pe.submit()
claim = get_advances_for_claim(claim, advance.name)
claim.save()
claim.submit()
self.assertEqual(claim.grand_total, 500)
self.assertEqual(claim.status, "Unpaid")
# reimburse remaning amount
make_payment_entry(claim, payable_account, 500)
claim.reload()
self.assertEqual(claim.total_amount_reimbursed, 500)
self.assertEqual(claim.status, "Paid")
def test_expense_claim_gl_entry(self):
payable_account = get_payable_account(company_name)
taxes = generate_taxes()