test: validate tax based expense claim gl entries
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.json b/erpnext/hr/doctype/expense_claim/expense_claim.json
index 7b0d494..db85037 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.json
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.json
@@ -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",
diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.py b/erpnext/hr/doctype/expense_claim/expense_claim.py
index 7f660a4..caeb2dd 100644
--- a/erpnext/hr/doctype/expense_claim/expense_claim.py
+++ b/erpnext/hr/doctype/expense_claim/expense_claim.py
@@ -176,7 +176,6 @@
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,
diff --git a/erpnext/hr/doctype/expense_claim/test_expense_claim.py b/erpnext/hr/doctype/expense_claim/test_expense_claim.py
index 6fc2a83..a42209f 100644
--- a/erpnext/hr/doctype/expense_claim/test_expense_claim.py
+++ b/erpnext/hr/doctype/expense_claim/test_expense_claim.py
@@ -6,6 +6,7 @@
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 @@
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 @@
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 @@
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 @@
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