Merge pull request #4407 from nabinhait/develop
[fix] Mapping allowed for negative quantity
diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index c41d1d2..1d96984 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1,2 +1,2 @@
from __future__ import unicode_literals
-__version__ = '6.12.0'
+__version__ = '6.12.1'
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index 15e0553..5cdf553 100644
--- a/erpnext/accounts/report/financial_statements.py
+++ b/erpnext/accounts/report/financial_statements.py
@@ -80,12 +80,12 @@
return None
accounts, accounts_by_name = filter_accounts(accounts)
-
+
gl_entries_by_account = {}
- for root in frappe.db.sql("""select lft, rgt from tabAccount
+ for root in frappe.db.sql("""select lft, rgt from tabAccount
where root_type=%s and ifnull(parent_account, '') = ''""", root_type, as_dict=1):
- set_gl_entries_by_account(company, period_list[0]["from_date"],
- period_list[-1]["to_date"],root.lft, root.rgt, gl_entries_by_account,
+ set_gl_entries_by_account(company, period_list[0]["from_date"],
+ period_list[-1]["to_date"],root.lft, root.rgt, gl_entries_by_account,
ignore_closing_entries=ignore_closing_entries)
calculate_values(accounts_by_name, gl_entries_by_account, period_list)
@@ -151,7 +151,7 @@
"account_name": "'" + _("Total ({0})").format(balance_must_be) + "'",
"account": None
}
-
+
for row in out:
if not row.get("parent_account"):
for period in period_list:
@@ -209,7 +209,7 @@
roots.sort(compare_roots)
-def set_gl_entries_by_account(company, from_date, to_date, root_lft, root_rgt, gl_entries_by_account,
+def set_gl_entries_by_account(company, from_date, to_date, root_lft, root_rgt, gl_entries_by_account,
ignore_closing_entries=False):
"""Returns a dict like { "account": [gl entries], ... }"""
additional_conditions = []
diff --git a/erpnext/accounts/report/trial_balance/trial_balance.py b/erpnext/accounts/report/trial_balance/trial_balance.py
index fdbed90..13e8743 100644
--- a/erpnext/accounts/report/trial_balance/trial_balance.py
+++ b/erpnext/accounts/report/trial_balance/trial_balance.py
@@ -5,7 +5,7 @@
import frappe
from frappe import _
from frappe.utils import cint, flt, getdate, formatdate, cstr
-from erpnext.accounts.report.financial_statements import filter_accounts, get_gl_entries
+from erpnext.accounts.report.financial_statements import filter_accounts, set_gl_entries_by_account
value_fields = ("opening_debit", "opening_credit", "debit", "credit", "closing_debit", "closing_credit")
@@ -45,7 +45,7 @@
filters.to_date = filters.year_end_date
def get_data(filters):
- accounts = frappe.db.sql("""select name, parent_account, account_name, root_type, report_type, lft, rgt
+ accounts = frappe.db.sql("""select name, parent_account, account_name, root_type, report_type, lft, rgt
from `tabAccount` where company=%s order by lft""", filters.company, as_dict=True)
if not accounts:
@@ -56,8 +56,10 @@
min_lft, max_rgt = frappe.db.sql("""select min(lft), max(rgt) from `tabAccount`
where company=%s""", (filters.company,))[0]
- gl_entries_by_account = get_gl_entries(filters.company, filters.from_date, filters.to_date, min_lft, max_rgt,
- ignore_closing_entries=not flt(filters.with_period_closing_entry))
+ gl_entries_by_account = {}
+
+ set_gl_entries_by_account(filters.company, filters.from_date,
+ filters.to_date, min_lft, max_rgt, gl_entries_by_account, ignore_closing_entries=not flt(filters.with_period_closing_entry))
opening_balances = get_opening_balances(filters)
@@ -67,27 +69,27 @@
data = prepare_data(accounts, filters, total_row)
return data
-
+
def get_opening_balances(filters):
balance_sheet_opening = get_rootwise_opening_balances(filters, "Balance Sheet")
pl_opening = get_rootwise_opening_balances(filters, "Profit and Loss")
-
+
balance_sheet_opening.update(pl_opening)
return balance_sheet_opening
-
-
+
+
def get_rootwise_opening_balances(filters, report_type):
additional_conditions = " and posting_date >= %(year_start_date)s" \
if report_type == "Profit and Loss" else ""
-
+
if not flt(filters.with_period_closing_entry):
additional_conditions += " and ifnull(voucher_type, '')!='Period Closing Voucher'"
-
+
gle = frappe.db.sql("""
- select
- account, sum(debit) as opening_debit, sum(credit) as opening_credit
+ select
+ account, sum(debit) as opening_debit, sum(credit) as opening_credit
from `tabGL Entry`
- where
+ where
company=%(company)s
{additional_conditions}
and (posting_date < %(from_date)s or ifnull(is_opening, 'No') = 'Yes')
@@ -100,11 +102,11 @@
"year_start_date": filters.year_start_date
},
as_dict=True)
-
+
opening = frappe._dict()
for d in gle:
opening.setdefault(d.account, d)
-
+
return opening
def calculate_values(accounts, gl_entries_by_account, opening_balances, filters):
@@ -139,7 +141,7 @@
total_row["debit"] += d["debit"]
total_row["credit"] += d["credit"]
-
+
return total_row
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 3a9a3b5..f4d24d8 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -7,7 +7,7 @@
app_description = """ERP made simple"""
app_icon = "icon-th"
app_color = "#e74c3c"
-app_version = "6.12.0"
+app_version = "6.12.1"
app_email = "info@erpnext.com"
app_license = "GNU General Public License (v3)"
source_link = "https://github.com/frappe/erpnext"
diff --git a/setup.py b/setup.py
index d4c485a..8ef1565 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
from setuptools import setup, find_packages
-version = "6.12.0"
+version = "6.12.1"
with open("requirements.txt", "r") as f:
install_requires = f.readlines()