Merge pull request #6850 from nabinhait/clear_jv_table

Clear rows from Journal Entry if no debit/credit
diff --git a/erpnext/accounts/doctype/budget/test_budget.py b/erpnext/accounts/doctype/budget/test_budget.py
index 78f5690..ef6a1c8 100644
--- a/erpnext/accounts/doctype/budget/test_budget.py
+++ b/erpnext/accounts/doctype/budget/test_budget.py
@@ -97,8 +97,9 @@
 		"fiscal_year": "_Test Fiscal Year 2013"
 	}, cost_center or "_Test Cost Center - _TC")
 	
-	make_journal_entry("_Test Account Cost for Goods Sold - _TC",
-		"_Test Bank - _TC", -existing_expense, "_Test Cost Center - _TC", submit=True)
+	if existing_expense:
+		make_journal_entry("_Test Account Cost for Goods Sold - _TC",
+			"_Test Bank - _TC", -existing_expense, "_Test Cost Center - _TC", submit=True)
 		
 def make_budget(cost_center=None):
 	budget = frappe.new_doc("Budget")
diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py
index 145ed81..55b9b7e 100644
--- a/erpnext/accounts/doctype/journal_entry/journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py
@@ -37,8 +37,13 @@
 		self.validate_credit_debit_note()
 		self.validate_empty_accounts_table()
 		self.set_account_and_party_balance()
+		self.clear_zero_debit_credit_row()
 		if not self.title:
 			self.title = self.get_title()
+			
+	def clear_zero_debit_credit_row(self):
+		self.accounts = [account for account in self.accounts 
+			if not (account.debit_in_account_currency==0.0 and account.credit_in_account_currency==0.0)]
 
 	def on_submit(self):
 		self.check_credit_limit()
diff --git a/erpnext/accounts/doctype/journal_entry/test_journal_entry.py b/erpnext/accounts/doctype/journal_entry/test_journal_entry.py
index 3e609ce..4740ad9 100644
--- a/erpnext/accounts/doctype/journal_entry/test_journal_entry.py
+++ b/erpnext/accounts/doctype/journal_entry/test_journal_entry.py
@@ -171,8 +171,25 @@
 		})
 
 		jv.submit()
+		
+	def test_clear_blank_rows(self):
+		je = make_journal_entry("_Test Bank - _TC", "_Test Account Stock Expenses - _TC", 100, save=False)
+		je.append("accounts", {
+			"account": "_Test Cash - _TC",
+			"debit_in_account_currency": 0,
+			"credit_in_account_currency": 0,
+			"exchange_rate": 1
+		})
+		
+		self.assertEqual(len(je.get("accounts")), 3)
+		je.save()
+		self.assertEqual(len(je.get("accounts")), 2)		
+		
 
 def make_journal_entry(account1, account2, amount, cost_center=None, posting_date=None, exchange_rate=1, save=True, submit=False):
+	if not cost_center:
+		cost_center = "_Test Cost Center - _TC"
+	
 	jv = frappe.new_doc("Journal Entry")
 	jv.posting_date = posting_date or "2013-02-14"
 	jv.company = "_Test Company"