diff --git a/erpnext/hr/doctype/expense_claim/expense_claim.json b/erpnext/hr/doctype/expense_claim/expense_claim.json index 7b0d4943fc..db85037795 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 7f660a45b5..caeb2dd946 100644 --- a/erpnext/hr/doctype/expense_claim/expense_claim.py +++ b/erpnext/hr/doctype/expense_claim/expense_claim.py @@ -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, diff --git a/erpnext/hr/doctype/expense_claim/test_expense_claim.py b/erpnext/hr/doctype/expense_claim/test_expense_claim.py index 6fc2a83ebd..a42209f6ad 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 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