diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py index b4fec985ccc..be2e968b63c 100644 --- a/erpnext/accounts/report/financial_statements.py +++ b/erpnext/accounts/report/financial_statements.py @@ -210,7 +210,7 @@ def get_gl_entries(company, from_date, to_date, root_lft, root_rgt, ignore_closi if from_date: additional_conditions.append("and posting_date >= %(from_date)s") - gl_entries = frappe.db.sql("""select posting_date, account, debit, credit from `tabGL Entry` + gl_entries = frappe.db.sql("""select posting_date, account, debit, credit, is_opening from `tabGL Entry` where company=%(company)s {additional_conditions} and posting_date <= %(to_date)s diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index b268156d4c3..9f1f56064db 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import frappe -from frappe.utils import flt, getdate +from frappe.utils import flt, getdate, cstr from frappe import _ def execute(filters=None): @@ -155,7 +155,7 @@ def get_accountwise_gle(filters, gl_entries, gle_map): for gle in gl_entries: amount = flt(gle.debit, 3) - flt(gle.credit, 3) if (filters.get("account") or filters.get("party") or filters.get("group_by_account")) \ - and gle.posting_date < from_date: + and (gle.posting_date < from_date or cstr(gle.is_opening) == "Yes"): gle_map[gle.account].opening += amount if filters.get("account") or filters.get("party"): opening += amount diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py index 8187601249b..25717511666 100644 --- a/erpnext/accounts/report/trial_balance/trial_balance.py +++ b/erpnext/accounts/report/trial_balance/trial_balance.py @@ -90,7 +90,7 @@ def get_rootwise_opening_balances(filters, report_type): where company=%(company)s {additional_conditions} - and posting_date < %(from_date)s + and (posting_date < %(from_date)s or ifnull(is_opening, 'No') = 'Yes') and account in (select name from `tabAccount` where report_type=%(report_type)s) group by account""".format(additional_conditions=additional_conditions), { @@ -128,16 +128,21 @@ def calculate_values(accounts, gl_entries_by_account, opening_balances, filters) for d in accounts: d.update(init.copy()) + # add opening + d["opening_debit"] = opening_balances.get(d.name, {}).get("opening_debit", 0) + d["opening_credit"] = opening_balances.get(d.name, {}).get("opening_credit", 0) + for entry in gl_entries_by_account.get(d.name, []): - d["debit"] += flt(entry.debit) - d["credit"] += flt(entry.credit) + if entry.is_opening == "Yes" and d.root_type in ("Asset", "Liability", "Equity"): + d["opening_debit"] += flt(entry.debit) + d["opening_credit"] += flt(entry.credit) + else: + d["debit"] += flt(entry.debit) + d["credit"] += flt(entry.credit) total_row["debit"] += d["debit"] total_row["credit"] += d["credit"] - # add opening - d["opening_debit"] = opening_balances.get(d.name, {}).get("opening_debit", 0) - d["opening_credit"] = opening_balances.get(d.name, {}).get("opening_credit", 0) return total_row diff --git a/erpnext/setup/doctype/naming_series/naming_series.py b/erpnext/setup/doctype/naming_series/naming_series.py index dc7a90cbb0b..81a4c4ec5f3 100644 --- a/erpnext/setup/doctype/naming_series/naming_series.py +++ b/erpnext/setup/doctype/naming_series/naming_series.py @@ -26,7 +26,8 @@ class NamingSeries(Document): except frappe.DoesNotExistError: continue - prefixes = prefixes + "\n" + options + if options: + prefixes = prefixes + "\n" + options prefixes.replace("\n\n", "\n") prefixes = "\n".join(sorted(prefixes.split()))