test: validate tax based expense claim gl entries

This commit is contained in:
Mangesh-Khairnar 2019-06-12 20:03:22 +05:30
parent a1d354e147
commit 0a3ed374cd
3 changed files with 37 additions and 13 deletions

View File

@ -20,12 +20,12 @@
"taxes",
"transactions_section",
"total_sanctioned_amount",
"total_claimed_amount",
"total_taxes_and_charges",
"total_advance_amount",
"column_break_17",
"total_amount_reimbursed",
"total_taxes_and_charges",
"grand_total",
"total_claimed_amount",
"total_amount_reimbursed",
"section_break_16",
"posting_date",
"vehicle_log",
@ -360,7 +360,7 @@
"icon": "fa fa-money",
"idx": 1,
"is_submittable": 1,
"modified": "2019-06-12 15:35:09.092603",
"modified": "2019-06-12 20:00:25.734108",
"modified_by": "Administrator",
"module": "HR",
"name": "Expense Claim",

View File

@ -176,7 +176,6 @@ class ExpenseClaim(AccountsController):
def add_tax_gl_entries(self, gl_entries):
# tax table gl entries
for tax in self.get("taxes"):
account_currency = get_account_currency(tax.account_head)
gl_entries.append(
self.get_gl_dict({
"account": tax.account_head,

View File

@ -6,6 +6,7 @@ import frappe
import unittest
from frappe.utils import random_string, nowdate
from erpnext.hr.doctype.expense_claim.expense_claim import make_bank_entry
from erpnext.accounts.doctype.account.test_account import create_account
test_records = frappe.get_test_records('Expense Claim')
test_dependencies = ['Employee']
@ -26,7 +27,7 @@ class TestExpenseClaim(unittest.TestCase):
task_name = frappe.db.get_value("Task", {"project": "_Test Project 1"})
payable_account = get_payable_account("Wind Power LLC")
make_expense_claim(payable_account, 300, 200, "Wind Power LLC","Travel Expenses - WP", "_Test Project 1", task_name)
make_expense_claim(payable_account, 300, 200, "Wind Power LLC", "Travel Expenses - WP", "_Test Project 1", task_name)
self.assertEqual(frappe.db.get_value("Task", task_name, "total_expense_claim"), 200)
self.assertEqual(frappe.db.get_value("Project", "_Test Project 1", "total_expense_claim"), 200)
@ -62,7 +63,8 @@ class TestExpenseClaim(unittest.TestCase):
def test_expense_claim_gl_entry(self):
payable_account = get_payable_account("Wind Power LLC")
expense_claim = make_expense_claim(payable_account, 300, 200, "Wind Power LLC", "Travel Expenses - WP")
taxes = generate_taxes()
expense_claim = make_expense_claim(payable_account, 300, 200, "Wind Power LLC", "Travel Expenses - WP", do_not_submit=True, taxes=taxes)
expense_claim.submit()
gl_entries = frappe.db.sql("""select account, debit, credit
@ -72,7 +74,8 @@ class TestExpenseClaim(unittest.TestCase):
self.assertTrue(gl_entries)
expected_values = dict((d[0], d) for d in [
[payable_account, 0.0, 200.0],
['CGST - WP',10.0, 0.0],
[payable_account, 0.0, 210.0],
["Travel Expenses - WP", 200.0, 0.0]
])
@ -100,22 +103,44 @@ class TestExpenseClaim(unittest.TestCase):
self.assertEquals(len(gl_entry), 0)
def get_payable_account(company):
return frappe.get_cached_value('Company', company, 'default_payable_account')
return frappe.get_cached_value('Company', company, 'default_payable_account')
def make_expense_claim(payable_account,amount, sanctioned_amount, company, account, project=None, task_name=None):
expense_claim = frappe.get_doc({
def generate_taxes():
parent_account = frappe.db.get_value('Account',
{'company': "Wind Power LLC", 'is_group':1, 'account_type': 'Tax'},
'name')
account = create_account(company="Wind Power LLC", account_name="CGST", account_type="Tax", parent_account=parent_account)
return {'taxes':[{
"account_head": account,
"rate": 0,
"description": "CGST",
"tax_amount": 10,
"total": 210
}]}
def make_expense_claim(payable_account, amount, sanctioned_amount, company, account, project=None, task_name=None, do_not_submit=False, taxes=None):
expense_claim = {
"doctype": "Expense Claim",
"employee": "_T-Employee-00001",
"payable_account": payable_account,
"approval_status": "Approved",
"company": company,
"expenses":
[{ "expense_type": "Travel", "default_account": account, "amount": amount, "sanctioned_amount": sanctioned_amount }]
})
[{"expense_type": "Travel",
"default_account": account,
"amount": amount,
"sanctioned_amount": sanctioned_amount}]}
if taxes:
expense_claim.update(taxes)
expense_claim = frappe.get_doc(expense_claim)
if project:
expense_claim.project = project
if task_name:
expense_claim.task = task_name
if do_not_submit:
return expense_claim
expense_claim.submit()
return expense_claim