diff --git a/erpnext/accounts/page/general_ledger/general_ledger.js b/erpnext/accounts/page/general_ledger/general_ledger.js
index 7fdf57c5176..c74b8c50248 100644
--- a/erpnext/accounts/page/general_ledger/general_ledger.js
+++ b/erpnext/accounts/page/general_ledger/general_ledger.js
@@ -41,11 +41,11 @@ wn.pages['general-ledger'].onload = function(wrapper) {
filters: [
{fieldtype:"Select", label: "Company", link:"Company", default_value: "Select Company...",
filter: function(val, item, opts) {
- return item.company == val || val == opts.default_value || item._show;
+ return item.company == val || val == opts.default_value;
}},
{fieldtype:"Select", label: "Account", link:"Account", default_value: "Select Account...",
filter: function(val, item, opts, me) {
- if(val == opts.default_value || item._show) {
+ if(val == opts.default_value) {
return true;
} else {
// true if GL Entry belongs to selected
@@ -56,14 +56,14 @@ wn.pages['general-ledger'].onload = function(wrapper) {
{fieldtype:"Data", label: "Voucher No",
filter: function(val, item, opts) {
if(!val) return true;
- return (item.voucher_no && item.voucher_no.indexOf(val)!=-1) || item._show;
+ return (item.voucher_no && item.voucher_no.indexOf(val)!=-1);
}},
{fieldtype:"Date", label: "From Date", filter: function(val, item) {
- return item._show || dateutil.user_to_obj(val) <= dateutil.str_to_obj(item.posting_date);
+ return dateutil.str_to_obj(val) <= dateutil.str_to_obj(item.posting_date);
}},
{fieldtype:"Label", label: "To"},
{fieldtype:"Date", label: "To Date", filter: function(val, item) {
- return item._show || dateutil.user_to_obj(val) >= dateutil.str_to_obj(item.posting_date);
+ return dateutil.str_to_obj(val) >= dateutil.str_to_obj(item.posting_date);
}},
{fieldtype:"Button", label: "Refresh", icon:"icon-refresh icon-white", cssClass:"btn-info"},
{fieldtype:"Button", label: "Reset Filters"}
@@ -85,14 +85,15 @@ wn.pages['general-ledger'].onload = function(wrapper) {
// add Opening, Closing, Totals rows
// if filtered by account and / or voucher
var data = wn.report_dump.data["GL Entry"];
- this.make_account_by_name();
+ var out = [];
+
+ if(!this.account_by_name)
+ this.account_by_name = this.make_name_map(wn.report_dump.data["Account"]);
+
var me = this;
- var account = this.filter_inputs.account.val();
- var from_date = dateutil.user_to_obj(this.filter_inputs.from_date.val());
- var to_date = dateutil.user_to_obj(this.filter_inputs.to_date.val());
- var voucher_no = this.filter_inputs.voucher_no.val();
- var default_account = this.filter_inputs.account.get(0).opts.default_value;
+ var from_date = dateutil.str_to_obj(this.from_date);
+ var to_date = dateutil.str_to_obj(this.to_date);
if(to_date < from_date) {
msgprint("From Date must be before To Date");
@@ -109,8 +110,8 @@ wn.pages['general-ledger'].onload = function(wrapper) {
}
$.each(data, function(i, item) {
- if((account!=default_account ? me.is_child_account(account, item.account) : true) &&
- (voucher_no ? item.voucher_no==voucher_no : true)) {
+ if((!me.is_default("account") ? me.is_child_account(me.account, item.account) : true) &&
+ (me.voucher_no ? item.voucher_no==me.voucher_no : true)) {
var date = dateutil.str_to_obj(item.posting_date);
@@ -121,6 +122,10 @@ wn.pages['general-ledger'].onload = function(wrapper) {
totals.debit += item.debit;
totals.credit += item.credit;
}
+
+ if(me.apply_filters(item)) {
+ out.push(item);
+ }
}
})
@@ -131,21 +136,14 @@ wn.pages['general-ledger'].onload = function(wrapper) {
}
- if(account != default_account) {
- var out = [opening].concat(data).concat([totals, closing]);
+ if(!me.is_default("account")) {
+ var out = [opening].concat(out).concat([totals, closing]);
} else {
- var out = data.concat([totals]);
+ var out = out.concat([totals]);
}
this.prepare_data_view(out);
},
- make_account_by_name: function() {
- this.account_by_name = {};
- var me = this;
- $.each(wn.report_dump.data['Account'], function(i, v) {
- me.account_by_name[v.name] = v;
- })
- }
});
}
diff --git a/erpnext/patches/patch_list.py b/erpnext/patches/patch_list.py
index 5a38c5b1bfb..dbd4b8c10b4 100644
--- a/erpnext/patches/patch_list.py
+++ b/erpnext/patches/patch_list.py
@@ -580,4 +580,8 @@ patch_list = [
'patch_module': 'patches.september_2012',
'patch_file': 'customer_permission_patch',
},
+ {
+ 'patch_module': 'patches.september_2012',
+ 'patch_file': 'add_stock_ledger_entry_index',
+ },
]
diff --git a/erpnext/patches/september_2012/add_stock_ledger_entry_index.py b/erpnext/patches/september_2012/add_stock_ledger_entry_index.py
new file mode 100644
index 00000000000..bac9a086df7
--- /dev/null
+++ b/erpnext/patches/september_2012/add_stock_ledger_entry_index.py
@@ -0,0 +1,10 @@
+import webnotes
+
+def execute():
+ webnotes.conn.commit()
+ try:
+ webnotes.conn.sql("""alter table `tabStock Ledger Entry` add index posting_sort_index(posting_date, posting_time, name)""")webnotes.conn.commit()
+ except Exception, e:
+ if e.args[0]!=1061: raise e
+ webnotes.conn.begin()
+
\ No newline at end of file
diff --git a/erpnext/startup/report_data_map.py b/erpnext/startup/report_data_map.py
index 8e6761acfb5..b13218014f4 100644
--- a/erpnext/startup/report_data_map.py
+++ b/erpnext/startup/report_data_map.py
@@ -15,6 +15,10 @@
# along with this program. If not, see .
from __future__ import unicode_literals
+
+# mappings for table dumps
+# "remember to add indexes!"
+
data_map = {
"Account": {
"columns": ["name", "parent_account", "lft", "rgt", "debit_or_credit", "is_pl_account",
@@ -30,7 +34,11 @@ data_map = {
"columns": ["account", "posting_date", "cost_center", "debit", "credit", "is_opening",
"company", "voucher_type", "voucher_no", "remarks"],
"conditions": ["ifnull(is_cancelled, 'No')='No'"],
- "order_by": "posting_date, account"
+ "order_by": "posting_date, account",
+ "links": {
+ "account": ["Account", "name"],
+ "company": ["Company", "name"]
+ }
},
"Company": {
"columns": ["name"],
@@ -43,12 +51,13 @@ data_map = {
"Stock Ledger Entry": {
"columns": ["posting_date", "posting_time", "item_code", "warehouse", "actual_qty as qty",
"voucher_type", "voucher_no"],
- "condition": ["ifnull(is_cancelled, 'No')='No'"],
+ "conditions": ["ifnull(is_cancelled, 'No')='No'"],
"order_by": "posting_date, posting_time, name",
"links": {
"item_code": ["Item", "name"],
"warehouse": ["Warehouse", "name"]
- }
+ },
+ "force_index": "posting_sort_index"
},
"Item": {
"columns": ["name", "if(item_name=name, '', item_name) as item_name",
diff --git a/erpnext/stock/page/stock_ledger/stock_ledger.js b/erpnext/stock/page/stock_ledger/stock_ledger.js
index 87be0c6472f..ee97868d162 100644
--- a/erpnext/stock/page/stock_ledger/stock_ledger.js
+++ b/erpnext/stock/page/stock_ledger/stock_ledger.js
@@ -99,7 +99,6 @@ wn.pages['stock-ledger'].onload = function(wrapper) {
$.each(wn.report_dump.data["Item"], function(i, item) { item.balance = 0.0; });
//
- var t = new Date();
for(var i=0, j=data.length; i2){var total=parseInt(xhr.getResponseHeader('Original-Length')||0)||parseInt(xhr.getResponseHeader('Content-Length'));var completed=parseInt(xhr.responseText.length);var percent=(100.0/total*completed).toFixed(2);opts.progress_bar.css('width',(percent<10?10:percent)+'%');}},50);wn.last_xhr=xhr;return xhr;},complete:function(){opts.progress_bar.css('width','100%');clearInterval(interval);}})}
$.ajax(ajax_args);}
@@ -1098,7 +1099,7 @@ this.previousPoint=null;this.wrapper.find('.plot').bind("plothover",function(eve
else{$("#"+me.tooltip_id).remove();me.previousPoint=null;}});},get_view_data:function(){var res=[];var col_map=$.map(this.columns,function(v){return v.field;});for(var i=0,len=this.dataView.getLength();i%(value)s',{_style:dataContext._style||"",value:fmt_money(value)});},text_formatter:function(row,cell,value,columnDef,dataContext){return repl('%(value)s',{_style:dataContext._style||"",esc_value:cstr(value).replace(/"/g,'\"'),value:cstr(value)});},check_formatter:function(row,cell,value,columnDef,dataContext){return repl("2){var total=parseInt(xhr.getResponseHeader('Original-Length')||0)||parseInt(xhr.getResponseHeader('Content-Length'));var completed=parseInt(xhr.responseText.length);var percent=(100.0/total*completed).toFixed(2);opts.progress_bar.css('width',(percent<10?10:percent)+'%');}},50);wn.last_xhr=xhr;return xhr;},complete:function(){opts.progress_bar.css('width','100%');clearInterval(interval);}})}
$.ajax(ajax_args);}