diff --git a/accounts/doctype/account/account.py b/accounts/doctype/account/account.py
index fba51a9f72..37e165a97b 100644
--- a/accounts/doctype/account/account.py
+++ b/accounts/doctype/account/account.py
@@ -32,16 +32,6 @@ class DocType:
self.validate_root_details()
self.validate_mandatory()
self.validate_warehouse_account()
-
- if not self.doc.parent_account:
- self.doc.parent_account = ''
-
- def validate(self):
- self.validate_master_name()
- self.validate_parent()
- self.validate_duplicate_account()
- self.validate_root_details()
- self.validate_mandatory()
self.validate_frozen_accounts_modifier()
if not self.doc.parent_account:
@@ -177,24 +167,24 @@ class DocType:
in webnotes.user.get_roles():
return 1
- def check_credit_limit(self, account, company, tot_outstanding):
+ def check_credit_limit(self, total_outstanding):
# Get credit limit
credit_limit_from = 'Customer'
cr_limit = sql("""select t1.credit_limit from tabCustomer t1, `tabAccount` t2
- where t2.name=%s and t1.name = t2.master_name""", account)
+ where t2.name=%s and t1.name = t2.master_name""", self.doc.name)
credit_limit = cr_limit and flt(cr_limit[0][0]) or 0
if not credit_limit:
- credit_limit = webnotes.conn.get_value('Company', company, 'credit_limit')
- credit_limit_from = 'global settings in the Company'
+ credit_limit = webnotes.conn.get_value('Company', self.doc.company, 'credit_limit')
+ credit_limit_from = 'Company'
# If outstanding greater than credit limit and not authorized person raise exception
- if credit_limit > 0 and flt(tot_outstanding) > credit_limit \
+ if credit_limit > 0 and flt(total_outstanding) > credit_limit \
and not self.get_authorized_user():
msgprint("""Total Outstanding amount (%s) for %s can not be \
greater than credit limit (%s). To change your credit limit settings, \
- please update the %s""" % (fmt_money(tot_outstanding),
- account, fmt_money(credit_limit), credit_limit_from), raise_exception=1)
+ please update in the %s master""" % (fmt_money(total_outstanding),
+ self.doc.name, fmt_money(credit_limit), credit_limit_from), raise_exception=1)
def validate_trash(self):
"""checks gl entries and if child exists"""
diff --git a/accounts/doctype/gl_entry/gl_entry.py b/accounts/doctype/gl_entry/gl_entry.py
index dfac6b6469..e0babdf723 100644
--- a/accounts/doctype/gl_entry/gl_entry.py
+++ b/accounts/doctype/gl_entry/gl_entry.py
@@ -16,7 +16,6 @@ class DocType:
self.check_mandatory()
self.pl_must_have_cost_center()
self.validate_posting_date()
- self.check_credit_limit()
self.check_pl_account()
self.validate_cost_center()
@@ -55,21 +54,6 @@ class DocType:
from accounts.utils import validate_fiscal_year
validate_fiscal_year(self.doc.posting_date, self.doc.fiscal_year, "Posting Date")
- def check_credit_limit(self):
- master_type, master_name = webnotes.conn.get_value("Account",
- self.doc.account, ["master_type", "master_name"])
-
- tot_outstanding = 0 #needed when there is no GL Entry in the system for that acc head
- if (self.doc.voucher_type=='Journal Voucher' or self.doc.voucher_type=='Sales Invoice') \
- and (master_type =='Customer' and master_name):
- dbcr = webnotes.conn.sql("""select sum(debit), sum(credit) from `tabGL Entry`
- where account = %s""", self.doc.account)
- if dbcr:
- tot_outstanding = flt(dbcr[0][0]) - flt(dbcr[0][1]) + \
- flt(self.doc.debit) - flt(self.doc.credit)
- get_obj('Account',self.doc.account).check_credit_limit(self.doc.account,
- self.doc.company, tot_outstanding)
-
def check_pl_account(self):
if self.doc.is_opening=='Yes' and \
webnotes.conn.get_value("Account", self.doc.account, "is_pl_account") == "Yes":
diff --git a/accounts/doctype/journal_voucher/journal_voucher.py b/accounts/doctype/journal_voucher/journal_voucher.py
index ed4a0d79c7..8fb47f7439 100644
--- a/accounts/doctype/journal_voucher/journal_voucher.py
+++ b/accounts/doctype/journal_voucher/journal_voucher.py
@@ -44,6 +44,7 @@ class DocType(AccountsController):
self.check_credit_days()
self.check_account_against_entries()
self.make_gl_entries()
+ self.check_credit_limit()
def on_cancel(self):
from accounts.utils import remove_against_link_from_jv
@@ -259,6 +260,13 @@ class DocType(AccountsController):
)
if gl_map:
make_gl_entries(gl_map, cancel=cancel, adv_adj=adv_adj)
+
+ def check_credit_limit(self):
+ for d in self.doclist.get({"parentfield": "entries"}):
+ master_type, master_name = webnotes.conn.get_value("Account", d.account,
+ ["master_type", "master_name"])
+ if master_type == "Customer" and master_name:
+ super(DocType, self).check_credit_limit(d.account)
def get_outstanding(self, args):
args = eval(args)
diff --git a/accounts/report/budget_variance_report/budget_variance_report.py b/accounts/report/budget_variance_report/budget_variance_report.py
index c1c4bc1ae8..50593bc718 100644
--- a/accounts/report/budget_variance_report/budget_variance_report.py
+++ b/accounts/report/budget_variance_report/budget_variance_report.py
@@ -16,8 +16,6 @@ def execute(filters=None):
period_month_ranges = get_period_month_ranges(filters["period"], filters["fiscal_year"])
cam_map = get_costcenter_account_month_map(filters)
- precision = webnotes.conn.get_value("Global Defaults", None, "float_precision") or 2
-
data = []
for cost_center, cost_center_items in cam_map.items():
diff --git a/selling/doctype/sales_common/sales_common.py b/selling/doctype/sales_common/sales_common.py
index ad626da460..3be27b225f 100644
--- a/selling/doctype/sales_common/sales_common.py
+++ b/selling/doctype/sales_common/sales_common.py
@@ -9,9 +9,6 @@ from webnotes.model.doc import addchild
from webnotes.model.bean import getlist
from webnotes.model.code import get_obj
from webnotes import msgprint, _
-from setup.utils import get_company_currency
-
-get_value = webnotes.conn.get_value
from utilities.transaction_base import TransactionBase
@@ -295,14 +292,12 @@ class DocType(TransactionBase):
def check_credit(self,obj,grand_total):
acc_head = webnotes.conn.sql("select name from `tabAccount` where company = '%s' and master_name = '%s'"%(obj.doc.company, obj.doc.customer))
if acc_head:
- tot_outstanding = 0
dbcr = webnotes.conn.sql("""select sum(debit), sum(credit) from `tabGL Entry`
where account = %s""", acc_head[0][0])
- if dbcr:
- tot_outstanding = flt(dbcr[0][0])-flt(dbcr[0][1])
+ tot_outstanding = flt(dbcr[0][0])-flt(dbcr[0][1]) if dbcr else 0
exact_outstanding = flt(tot_outstanding) + flt(grand_total)
- get_obj('Account',acc_head[0][0]).check_credit_limit(acc_head[0][0], obj.doc.company, exact_outstanding)
+ get_obj('Account',acc_head[0][0]).check_credit_limit(exact_outstanding)
def get_prevdoc_date(self, obj):
for d in getlist(obj.doclist, obj.fname):