Merge branch 'edge' of github.com:webnotes/erpnext into webshop

Conflicts:
	controllers/buying_controller.py
This commit is contained in:
Anand Doshi 2013-05-21 19:40:09 +05:30
commit 5be11b44ac
5 changed files with 68 additions and 15 deletions

View File

@ -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 <http://www.gnu.org/licenses/>.
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

View File

@ -29,6 +29,6 @@ def execute():
except: except:
pass pass
i += 1 i += 1
if i%50 == 0: if i%20 == 0:
webnotes.conn.sql("commit") webnotes.conn.sql("commit")
webnotes.conn.sql("start transaction") webnotes.conn.sql("start transaction")

View File

@ -249,4 +249,5 @@ patch_list = [
"patches.may_2013.p01_selling_net_total_export", "patches.may_2013.p01_selling_net_total_export",
"patches.may_2013.repost_stock_for_no_posting_time", "patches.may_2013.repost_stock_for_no_posting_time",
"patches.may_2013.p01_conversion_factor_and_aii", "patches.may_2013.p01_conversion_factor_and_aii",
"patches.may_2013.p02_update_valuation_rate",
] ]

View File

@ -40,7 +40,7 @@ $.extend(erpnext.complete_setup, {
{fieldname:'country', label: 'Country', reqd:1, {fieldname:'country', label: 'Country', reqd:1,
options: "", fieldtype: 'Select'}, options: "", fieldtype: 'Select'},
{fieldname:'currency', label: 'Default Currency', reqd:1, {fieldname:'currency', label: 'Default Currency', reqd:1,
options: "Currency", fieldtype: 'Link'}, options: "", fieldtype: 'Select'},
{fieldname:'timezone', label: 'Time Zone', reqd:1, {fieldname:'timezone', label: 'Time Zone', reqd:1,
options: "", fieldtype: 'Select'}, options: "", fieldtype: 'Select'},
{fieldname:'industry', label: 'Industry', reqd:1, {fieldname:'industry', label: 'Industry', reqd:1,
@ -55,11 +55,17 @@ $.extend(erpnext.complete_setup, {
} }
wn.call({ wn.call({
method:"webnotes.country_info.get_all", method:"webnotes.country_info.get_country_timezone_info",
callback: function(data) { 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() 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 country = d.fields_dict.country.input.value;
var $timezone = $(d.fields_dict.timezone.input); var $timezone = $(d.fields_dict.timezone.input);
$timezone.empty(); $timezone.empty();
// add country specific timezones first
if(country){ if(country){
var timezone_list = erpnext.country_info[country].timezones; var timezone_list = erpnext.country_info[country].timezones || [];
if(timezone_list.length==0) { $timezone.add_options(timezone_list.sort());
timezone_list = $.map(erpnext.country_info, function(m) {
return m.timezones
});
}
$timezone.empty().add_options(timezone_list);
console.log(d.get_input("currency"))
d.get_input("currency").val(erpnext.country_info[country].currency); 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', 'Finance', 'Food and Beverage', 'Government', 'Healthcare', 'Hospitality',
'Information Technology', 'Insurance', 'Machinery', 'Manufacturing', 'Media', 'Information Technology', 'Insurance', 'Machinery', 'Manufacturing', 'Media',
'Not For Profit', 'Recreation', 'Retail', 'Shipping', 'Technology', 'Not For Profit', 'Recreation', 'Retail', 'Shipping', 'Technology',
'Telecommunications', 'Transportation', 'Trading', 'Utilities', 'Other'], 'Telecommunications', 'Transportation', 'Trading', 'Utilities', 'Other'],
}); });

View File

@ -33,3 +33,6 @@ class DocType:
msgprint(_("""Please check "Valid For All Countries" or \ msgprint(_("""Please check "Valid For All Countries" or \
enter atlease one row in the "Countries" table."""), raise_exception=True) 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)