From ef0ab5d9aab2390de7ef041b1f73309428ce1545 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 29 Jul 2013 13:06:50 +0530 Subject: [PATCH 1/3] [patch] [minor] set price list currency, where only one currency is used for item price --- patches/july_2013/p11_update_price_list_currency.py | 9 +++++++++ patches/patch_list.py | 1 + 2 files changed, 10 insertions(+) create mode 100644 patches/july_2013/p11_update_price_list_currency.py diff --git a/patches/july_2013/p11_update_price_list_currency.py b/patches/july_2013/p11_update_price_list_currency.py new file mode 100644 index 0000000000..887149da15 --- /dev/null +++ b/patches/july_2013/p11_update_price_list_currency.py @@ -0,0 +1,9 @@ +import webnotes + +def execute(): + for price_list_name in webnotes.conn.sql_list("""select name from `tabPrice List` + where ifnull(currency, '')=''"""): + res = webnotes.conn.sql("""select distinct ref_currency from `tabItem Price` + where price_list_name=%s""", price_list_name) + if res and len(res)==1 and res[0][0]: + webnotes.conn.set_value("Price List", price_list_name, "currency", res[0][0]) diff --git a/patches/patch_list.py b/patches/patch_list.py index 9b6bb0f2dd..b60ca13779 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -262,4 +262,5 @@ patch_list = [ "patches.july_2013.p08_custom_print_format_net_total_export", "patches.july_2013.p09_remove_website_pyc", "patches.july_2013.p10_change_partner_user_to_website_user", + "patches.july_2013.p11_update_price_list_currency", ] \ No newline at end of file From 9eb2868bf13632980788a0e64eb4601980e33d75 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 29 Jul 2013 13:07:30 +0530 Subject: [PATCH 2/3] [fix] [minor] remove end of life condition from item query --- controllers/queries.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/controllers/queries.py b/controllers/queries.py index 478971a148..219fc743d1 100644 --- a/controllers/queries.py +++ b/controllers/queries.py @@ -169,15 +169,13 @@ def item_query(doctype, txt, searchfield, start, page_len, filters): if(length(tabItem.description) > 40, \ concat(substr(tabItem.description, 1, 40), "..."), description) as decription from tabItem - where tabItem.docstatus!=2 - and (ifnull(`tabItem`.`end_of_life`,"") in ("", "0000-00-00") - or `tabItem`.`end_of_life` > NOW()) + where tabItem.docstatus<2 and (tabItem.%(key)s LIKE "%(txt)s" or tabItem.item_name LIKE "%(txt)s") %(fcond)s %(mcond)s limit %(start)s,%(page_len)s """ % {'key': searchfield, 'txt': "%%%s%%" % txt, 'fcond': get_filters_cond(doctype, filters, conditions), - 'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len}) + 'mcond': get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len}) def bom(doctype, txt, searchfield, start, page_len, filters): conditions = [] From d5d39ac5ec0494f9672da5d5bd3711f607607eb3 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Mon, 29 Jul 2013 13:28:37 +0530 Subject: [PATCH 3/3] [fix] [minor] sales and purchase get_queries --- .../purchase_common/purchase_common.js | 8 ++++ public/js/queries.js | 9 +++++ selling/doctype/sales_common/sales_common.js | 37 +++++-------------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/buying/doctype/purchase_common/purchase_common.js b/buying/doctype/purchase_common/purchase_common.js index 148ba1c920..87f79a021f 100644 --- a/buying/doctype/purchase_common/purchase_common.js +++ b/buying/doctype/purchase_common/purchase_common.js @@ -49,6 +49,14 @@ erpnext.buying.BuyingController = erpnext.TransactionController.extend({ }); } + $.each([["supplier", "supplier"], + ["contact_person", "supplier_filter"], + ["supplier_address", "supplier_filter"]], + function(i, opts) { + if(me.frm.fields_dict[opts[0]]) + me.frm.set_query(opts[0], erpnext.queries[opts[1]]); + }); + if(this.frm.fields_dict.supplier) { this.frm.set_query("supplier", function() { return{ query:"controllers.queries.supplier_query" }}); diff --git a/public/js/queries.js b/public/js/queries.js index 8c3dd01203..090c393e05 100644 --- a/public/js/queries.js +++ b/public/js/queries.js @@ -58,6 +58,15 @@ $.extend(erpnext.queries, { return { filters: { customer: doc.customer } }; }, + supplier_filter: function(doc) { + if(!doc.supplier) { + wn.throw(wn._("Please specify a") + " " + + wn._(wn.meta.get_label(doc.doctype, "supplier", doc.name))); + } + + return { filters: { supplier: doc.supplier } }; + }, + not_a_group_filter: function() { return { filters: { is_group: "No" } }; }, diff --git a/selling/doctype/sales_common/sales_common.js b/selling/doctype/sales_common/sales_common.js index dbd0a1aace..d2461aff4a 100644 --- a/selling/doctype/sales_common/sales_common.js +++ b/selling/doctype/sales_common/sales_common.js @@ -36,22 +36,15 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ this.frm.add_fetch("sales_partner", "commission_rate", "commission_rate"); - if(this.frm.fields_dict.shipping_address_name && this.frm.fields_dict.customer_address) { - this.frm.fields_dict.shipping_address_name.get_query = - this.frm.fields_dict['customer_address'].get_query; - } - - this.frm.set_query("customer_address", function() { - return { - filters: {'customer': me.frm.doc.customer } - } - }); - - this.frm.set_query("contact_person", function() { - return { - filters: {'customer': me.frm.doc.customer } - } - }); + $.each([["customer_address", "customer_filter"], + ["shipping_address_name", "customer_filter"], + ["contact_person", "customer_filter"], + ["customer", "customer"], + ["lead", "lead"]], + function(i, opts) { + if(me.frm.fields_dict[opts[0]]) + me.frm.set_query(opts[0], erpnext.queries[opts[1]]); + }); if(this.frm.fields_dict.charge) { this.frm.set_query("charge", function() { @@ -63,13 +56,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ } }); } - - this.frm.fields_dict.customer.get_query = function(doc,cdt,cdn) { - return{ query:"controllers.queries.customer_query" } } - this.frm.fields_dict.lead && this.frm.set_query("lead", function(doc,cdt,cdn) { - return{ query:"controllers.queries.lead_query" } }); - if(this.frm.fields_dict.price_list_name) { this.frm.set_query("price_list_name", function() { return { filters: { buying_or_selling: "Selling" } }; @@ -130,11 +117,7 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({ } if(this.frm.fields_dict.sales_team && this.frm.fields_dict.sales_team.grid.get_field("sales_person")) { - this.frm.set_query("sales_person", "sales_team", function() { - return { - filters: { is_group: "No" } - }; - }); + this.frm.set_query("sales_person", "sales_team", erpnext.queries.not_a_group_filter); } },