[fix] Opening balance in trial balance and general ledger based on is_opening

This commit is contained in:
Nabin Hait 2015-06-17 15:09:33 +05:30
parent bd9aa13db3
commit 1ac9f2f50d
2 changed files with 13 additions and 7 deletions

View File

@ -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

View File

@ -90,7 +90,8 @@ 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
(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 @@ 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