diff --git a/erpnext/accounts/search_criteria/purchase_register/purchase_register.py b/erpnext/accounts/search_criteria/purchase_register/purchase_register.py
index 0601a62f4ca..bb58d77bbc0 100644
--- a/erpnext/accounts/search_criteria/purchase_register/purchase_register.py
+++ b/erpnext/accounts/search_criteria/purchase_register/purchase_register.py
@@ -15,6 +15,8 @@
# along with this program. If not, see .
# add expense head columns
+from webnotes.utils import flt, cint, cstr
+
expense_acc = [c[0] for c in sql("""select distinct expense_head
from `tabPurchase Invoice Item`
where parenttype='Purchase Invoice'
@@ -39,7 +41,7 @@ tax_acc = [c[0] for c in sql("""select distinct account_head
order by account_head asc""")]
tax_acc.append('Total Tax')
-tax_acc.append('GrandTotal')
+tax_acc.append('Grand Total')
for c in tax_acc:
if c:
@@ -58,56 +60,41 @@ for r in res:
exp_head_amount = sql("""select expense_head, sum(amount)
from `tabPurchase Invoice Item`
where parent = %s and parenttype='Purchase Invoice'
- group by expense_head""", (r[col_idx['ID']],))
+ group by expense_head""", (r[col_idx['ID']]))
#convert the result to dictionary for easy retrieval
exp_head_amount_dict = {}
for e in exp_head_amount:
exp_head_amount_dict[e[0]] = e[1]
- exp_head_keys = exp_head_amount_dict.keys()
-
- net_total = 0
-
+ net_total = 0
# get expense amount
for i in expense_acc:
- val = 0
-
- #check if expense head exists in dict
- if i in exp_head_keys:
- val = exp_head_amount_dict[i]
- val = flt(val and val or 0)
+ val = exp_head_amount_dict.get(i, 0)
net_total += val
- r.append(val)
-
+ r.append(val)
r.append(net_total)
#Get tax for account heads
- acc_head_tax = sql("""select account_head, tax_amount
+ acc_head_tax = sql("""select account_head, sum(tax_amount)
from `tabPurchase Taxes and Charges`
where parent = '%s'
and parenttype = 'Purchase Invoice'
and add_deduct_tax = 'Add'
- and category in ('For Total', 'For Both')""" %(r[col_idx['ID']],))
+ and category in ('For Total', 'For Both')
+ group by account_head
+ """ %(r[col_idx['ID']],))
#Convert the result to dictionary for easy retrieval
acc_head_tax_dict = {}
for a in acc_head_tax:
- acc_head_tax_dict[a[0]] = a[1]
+ acc_head_tax_dict[a[0]] = flt(a[1])
- acc_head_keys = acc_head_tax_dict.keys()
-
# get tax amount
total_tax = 0
- grand_total = 0
- for c in tax_acc:
- val = 0
- if c:
- #check if account head exists in dict
- if c in acc_head_keys:
- val = acc_head_tax_dict[c]
- val = flt(val and val or 0)
- total_tax += val
- r.append(val)
+ for c in tax_acc:
+ val = acc_head_tax_dict.get(c, 0)
+ total_tax += val
+ r.append(val)
r.append(total_tax)
r.append(flt(total_tax)+ flt(net_total)) # grand total
\ No newline at end of file
diff --git a/erpnext/accounts/search_criteria/sales_register/sales_register.py b/erpnext/accounts/search_criteria/sales_register/sales_register.py
index 9fdfb009619..c99948e3a71 100644
--- a/erpnext/accounts/search_criteria/sales_register/sales_register.py
+++ b/erpnext/accounts/search_criteria/sales_register/sales_register.py
@@ -15,6 +15,7 @@
# along with this program. If not, see .
# add additional columns
+from webnotes.utils import flt, cint, cstr
cl = [c[0] for c in sql("""select distinct account_head
from `tabSales Taxes and Charges`
@@ -61,41 +62,30 @@ for r in res:
#convert the result to dictionary for easy retrieval
income_acc_dict = {}
for ia in income_acc_list:
- income_acc_dict[ia[0]] = ia[1]
+ income_acc_dict[ia[0]] = flt(ia[1])
- income_acc_keys = income_acc_dict.keys()
-
net_total = 0
for i in income_acc:
- val = 0
- #check if income account exists in dict
- if i in income_acc_keys:
- val = income_acc_dict[i]
- val = flt(val and val or 0)
+ val = income_acc_dict.get(i, 0)
net_total += val
r.append(val)
r.append(net_total)
#Get tax for account heads
- acc_head_tax = sql("""select account_head, tax_amount
+ acc_head_tax = sql("""select account_head, sum(tax_amount)
from `tabSales Taxes and Charges`
where parent = '%s'
- and parenttype = 'Sales Invoice'""" %(r[col_idx['ID']],))
+ and parenttype = 'Sales Invoice'
+ group by account_head""" %(r[col_idx['ID']],))
#Convert the result to dictionary for easy retrieval
acc_head_tax_dict = {}
for a in acc_head_tax:
- acc_head_tax_dict[a[0]] = a[1]
-
- acc_head_keys = acc_head_tax_dict.keys()
+ acc_head_tax_dict[a[0]] = flt(a[1])
total_tax = 0
for c in cl:
- val = 0
- #check if account head exists in dict
- if c in acc_head_keys:
- val = acc_head_tax_dict[c]
- val = flt(val and val or 0)
+ val = acc_head_tax_dict.get(c, 0)
total_tax += val
r.append(val)
r.append(total_tax)
diff --git a/public/js/all-app.js b/public/js/all-app.js
index 095d8c3a00a..0689aa1a81d 100644
--- a/public/js/all-app.js
+++ b/public/js/all-app.js
@@ -350,7 +350,8 @@ df.original_type=df.fieldtype;df.description='';df.reqd=0;if(fieldtype){df.field
if(df.fieldtype=='Check'){df.fieldtype='Select';df.options='No\nYes';}else if(['Text','Text Editor','Code','Link'].indexOf(df.fieldtype)!=-1){df.fieldtype='Data';}},set_default_condition:function(df,fieldtype){if(!fieldtype){if(df.fieldtype=='Data'){this.$w.find('.condition').val('like');}else{this.$w.find('.condition').val('=');}}},get_value:function(){var me=this;var val=me.field.get_value();var cond=me.$w.find('.condition').val();if(me.field.df.original_type=='Check'){val=(val=='Yes'?1:0);}
if(cond=='like'){val=val+'%';}
return[me.fieldselect.$select.find('option:selected').attr('table'),me.field.df.fieldname,me.$w.find('.condition').val(),cstr(val)];}});wn.ui.FieldSelect=Class.extend({init:function(parent,doctype,filter_fields,with_blank){this.doctype=doctype;this.fields_by_name={};this.with_blank=with_blank;this.$select=$('