[fix] Opening balance in trial balance and general ledger based on is_opening
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py
index b268156..b6b5c8a 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -155,7 +155,7 @@
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 8187601..1ad4a37 100644
--- a/erpnext/accounts/report/trial_balance/trial_balance.py
+++ b/erpnext/accounts/report/trial_balance/trial_balance.py
@@ -90,7 +90,8 @@
where
company=%(company)s
{additional_conditions}
- and posting_date < %(from_date)s
+ and (posting_date < %(from_date)s or
+ (posting_date >= %(from_date)s and 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 +129,21 @@
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