From 43eeddfaf6c9ef6c2a015c120b4eb0cd97ead379 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Mon, 7 Nov 2016 15:23:40 +0530 Subject: [PATCH 1/2] Clear rows from Journal Entry if no debit/credit --- erpnext/accounts/doctype/budget/test_budget.py | 5 +++-- .../doctype/journal_entry/journal_entry.py | 6 ++++++ .../doctype/journal_entry/test_journal_entry.py | 17 +++++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/erpnext/accounts/doctype/budget/test_budget.py b/erpnext/accounts/doctype/budget/test_budget.py index 78f5690766..ef6a1c84f6 100644 --- a/erpnext/accounts/doctype/budget/test_budget.py +++ b/erpnext/accounts/doctype/budget/test_budget.py @@ -97,8 +97,9 @@ def set_total_expense_zero(posting_date, cost_center=None): "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 145ed81564..6c396ce4b6 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -37,8 +37,14 @@ class JournalEntry(AccountsController): 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)] + frappe.db.sql("""delete from `tabJournal Entry Account` where parent = %s and debit = 0.0 and credit = 0.0""", self.name) + 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 3e609ce291..4740ad934a 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 @@ class TestJournalEntry(unittest.TestCase): }) 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" From d4e59aa54fb86835fcbca83b21b1ccb705fec7c2 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 9 Nov 2016 11:38:39 +0530 Subject: [PATCH 2/2] Update journal_entry.py --- erpnext/accounts/doctype/journal_entry/journal_entry.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index 6c396ce4b6..55b9b7e3be 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -42,9 +42,8 @@ class JournalEntry(AccountsController): 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)] - frappe.db.sql("""delete from `tabJournal Entry Account` where parent = %s and debit = 0.0 and credit = 0.0""", self.name) - + 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()