mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-28 14:18:24 +00:00
added index patch and updated general_ledger
This commit is contained in:
@@ -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;
|
||||
})
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
]
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -15,6 +15,10 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
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",
|
||||
|
||||
@@ -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; i<j; i++) {
|
||||
var sl = data[i];
|
||||
sl.description = me.item_by_name[sl.item_code].description;
|
||||
@@ -121,7 +120,7 @@ wn.pages['stock-ledger'].onload = function(wrapper) {
|
||||
if(!before_end) break;
|
||||
|
||||
// apply filters
|
||||
if(me.dataview_filter(sl)) {
|
||||
if(me.apply_filters(sl)) {
|
||||
out.push(sl);
|
||||
}
|
||||
|
||||
@@ -131,9 +130,7 @@ wn.pages['stock-ledger'].onload = function(wrapper) {
|
||||
me.item_by_name[sl.item_code].balance = sl.balance;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(new Date() - t);
|
||||
|
||||
|
||||
if(me.item_code != me.item_code_default && !me.voucher_no) {
|
||||
var closing = {
|
||||
item_code: "On " + dateutil.str_to_user(this.to_date),
|
||||
|
||||
Reference in New Issue
Block a user