diff --git a/patches/may_2013/p02_update_valuation_rate.py b/patches/may_2013/p02_update_valuation_rate.py new file mode 100644 index 00000000000..280473ccef7 --- /dev/null +++ b/patches/may_2013/p02_update_valuation_rate.py @@ -0,0 +1,47 @@ +# ERPNext - web based ERP (http://erpnext.com) +# Copyright (C) 2012 Web Notes Technologies Pvt Ltd +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +from __future__ import unicode_literals +import webnotes +def execute(): + from stock.stock_ledger import update_entries_after + item_warehouse = [] + # update valuation_rate in transaction + doctypes = {"Purchase Receipt": "purchase_receipt_details", "Purchase Invoice": "entries"} + + for dt in doctypes: + for d in webnotes.conn.sql("""select name from `tab%s` + where modified >= '2013-05-09' and docstatus=1""" % dt): + rec = webnotes.get_obj(dt, d[0]) + rec.update_valuation_rate(doctypes[dt]) + + for item in rec.doclist.get({"parentfield": doctypes[dt]}): + webnotes.conn.sql("""update `tab%s Item` set valuation_rate = %s + where name = %s"""% (dt, '%s', '%s'), tuple([item.valuation_rate, item.name])) + + if dt == "Purchase Receipt": + webnotes.conn.sql("""update `tabStock Ledger Entry` set incoming_rate = %s + where voucher_detail_no = %s""", (item.valuation_rate, item.name)) + if [item.item_code, item.warehouse] not in item_warehouse: + item_warehouse.append([item.item_code, item.warehouse]) + + for d in item_warehouse: + try: + update_entries_after({"item_code": d[0], "warehouse": d[1], + "posting_date": "2013-01-01", "posting_time": "00:05:00"}) + webnotes.conn.commit() + except: + pass \ No newline at end of file diff --git a/patches/may_2013/repost_stock_for_no_posting_time.py b/patches/may_2013/repost_stock_for_no_posting_time.py index b4d52ec4fc5..489511c53ee 100644 --- a/patches/may_2013/repost_stock_for_no_posting_time.py +++ b/patches/may_2013/repost_stock_for_no_posting_time.py @@ -29,6 +29,6 @@ def execute(): except: pass i += 1 - if i%50 == 0: + if i%20 == 0: webnotes.conn.sql("commit") webnotes.conn.sql("start transaction") \ No newline at end of file diff --git a/patches/patch_list.py b/patches/patch_list.py index 5ceb232259b..4cc6489eb82 100644 --- a/patches/patch_list.py +++ b/patches/patch_list.py @@ -249,4 +249,5 @@ patch_list = [ "patches.may_2013.p01_selling_net_total_export", "patches.may_2013.repost_stock_for_no_posting_time", "patches.may_2013.p01_conversion_factor_and_aii", + "patches.may_2013.p02_update_valuation_rate", ] \ No newline at end of file diff --git a/public/js/complete_setup.js b/public/js/complete_setup.js index f5d06722c61..f0b21c8516f 100644 --- a/public/js/complete_setup.js +++ b/public/js/complete_setup.js @@ -40,7 +40,7 @@ $.extend(erpnext.complete_setup, { {fieldname:'country', label: 'Country', reqd:1, options: "", fieldtype: 'Select'}, {fieldname:'currency', label: 'Default Currency', reqd:1, - options: "Currency", fieldtype: 'Link'}, + options: "", fieldtype: 'Select'}, {fieldname:'timezone', label: 'Time Zone', reqd:1, options: "", fieldtype: 'Select'}, {fieldname:'industry', label: 'Industry', reqd:1, @@ -55,11 +55,17 @@ $.extend(erpnext.complete_setup, { } wn.call({ - method:"webnotes.country_info.get_all", + method:"webnotes.country_info.get_country_timezone_info", callback: function(data) { - erpnext.country_info = data.message; + erpnext.country_info = data.message.country_info; + erpnext.all_timezones = data.message.all_timezones; d.get_input("country").empty() - .add_options([""].concat(keys(data.message).sort())); + .add_options([""].concat(keys(erpnext.country_info).sort())); + d.get_input("currency").empty() + .add_options(wn.utils.unique([""].concat($.map(erpnext.country_info, + function(opts, country) { return opts.currency; }))).sort()); + d.get_input("timezone").empty() + .add_options([""].concat(erpnext.all_timezones)); } }) @@ -82,19 +88,15 @@ $.extend(erpnext.complete_setup, { var country = d.fields_dict.country.input.value; var $timezone = $(d.fields_dict.timezone.input); $timezone.empty(); + // add country specific timezones first if(country){ - var timezone_list = erpnext.country_info[country].timezones; - if(timezone_list.length==0) { - timezone_list = $.map(erpnext.country_info, function(m) { - return m.timezones - }); - } - $timezone.empty().add_options(timezone_list); - - console.log(d.get_input("currency")) + var timezone_list = erpnext.country_info[country].timezones || []; + $timezone.add_options(timezone_list.sort()); d.get_input("currency").val(erpnext.country_info[country].currency); } + // add all timezones at the end, so that user has the option to change it to any timezone + $timezone.add_options([""].concat(erpnext.all_timezones)); }; @@ -127,5 +129,5 @@ $.extend(erpnext.complete_setup, { 'Finance', 'Food and Beverage', 'Government', 'Healthcare', 'Hospitality', 'Information Technology', 'Insurance', 'Machinery', 'Manufacturing', 'Media', 'Not For Profit', 'Recreation', 'Retail', 'Shipping', 'Technology', - 'Telecommunications', 'Transportation', 'Trading', 'Utilities', 'Other'], + 'Telecommunications', 'Transportation', 'Trading', 'Utilities', 'Other'], }); \ No newline at end of file diff --git a/setup/doctype/price_list/price_list.py b/setup/doctype/price_list/price_list.py index ae49bf868dd..5c03a3a8538 100644 --- a/setup/doctype/price_list/price_list.py +++ b/setup/doctype/price_list/price_list.py @@ -33,3 +33,6 @@ class DocType: msgprint(_("""Please check "Valid For All Countries" or \ enter atlease one row in the "Countries" table."""), raise_exception=True) + def on_trash(self): + webnotes.conn.sql("""delete from `tabItem Price` where price_list_name = %s""", + self.doc.name) \ No newline at end of file