Merge branch 'develop'
diff --git a/erpnext/__version__.py b/erpnext/__version__.py
index 2908f6a..3ea0d2f 100644
--- a/erpnext/__version__.py
+++ b/erpnext/__version__.py
@@ -1 +1 @@
-__version__ = '4.14.0'
+__version__ = '4.15.0'
diff --git a/erpnext/hooks.py b/erpnext/hooks.py
index 0688b4c..2902ef8 100644
--- a/erpnext/hooks.py
+++ b/erpnext/hooks.py
@@ -4,7 +4,7 @@
app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations"
app_icon = "icon-th"
app_color = "#e74c3c"
-app_version = "4.14.0"
+app_version = "4.15.0"
error_report_email = "support@erpnext.com"
diff --git a/erpnext/public/js/transaction.js b/erpnext/public/js/transaction.js
index 3a12485..ae4699e 100644
--- a/erpnext/public/js/transaction.js
+++ b/erpnext/public/js/transaction.js
@@ -402,20 +402,26 @@
},
_set_values_for_item_list: function(children) {
+ var me = this;
$.each(children, function(i, d) {
+ var existing_pricing_rule = frappe.model.get_value(d.doctype, d.name, "pricing_rule");
$.each(d, function(k, v) {
if (["doctype", "name"].indexOf(k)===-1) {
frappe.model.set_value(d.doctype, d.name, k, v);
}
});
+ // if pricing rule set as blank from an existing value, apply price_list
+ if(existing_pricing_rule && !d.pricing_rule) {
+ me.apply_price_list(frappe.get_doc(d.doctype, d.name));
+ }
});
},
- apply_price_list: function() {
+ apply_price_list: function(item) {
var me = this;
return this.frm.call({
method: "erpnext.stock.get_item_details.apply_price_list",
- args: { args: this._get_args() },
+ args: { args: this._get_args(item) },
callback: function(r) {
if (!r.exc) {
me.in_apply_price_list = true;
diff --git a/erpnext/selling/doctype/opportunity/opportunity.js b/erpnext/selling/doctype/opportunity/opportunity.js
index af31d39..59acc10 100644
--- a/erpnext/selling/doctype/opportunity/opportunity.js
+++ b/erpnext/selling/doctype/opportunity/opportunity.js
@@ -35,8 +35,6 @@
});
}
- if(this.frm.doc.customer && !this.frm.doc.customer_name) cur_frm.cscript.customer(this.frm.doc);
-
this.setup_queries();
},
diff --git a/erpnext/selling/doctype/opportunity/opportunity.json b/erpnext/selling/doctype/opportunity/opportunity.json
index 17291ad..92defc2 100644
--- a/erpnext/selling/doctype/opportunity/opportunity.json
+++ b/erpnext/selling/doctype/opportunity/opportunity.json
@@ -47,6 +47,7 @@
"in_filter": 1,
"in_list_view": 1,
"label": "Customer",
+ "no_copy": 1,
"oldfieldname": "customer",
"oldfieldtype": "Link",
"options": "Customer",
@@ -416,7 +417,7 @@
"icon": "icon-info-sign",
"idx": 1,
"is_submittable": 1,
- "modified": "2014-12-01 08:46:35.331148",
+ "modified": "2014-12-19 10:49:20.695720",
"modified_by": "Administrator",
"module": "Selling",
"name": "Opportunity",
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.js b/erpnext/setup/page/setup_wizard/setup_wizard.js
index 939eae6..3252e8a 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.js
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.js
@@ -61,14 +61,27 @@
fields: [
{
"fieldname": "language", "label": __("Language"), "fieldtype": "Select",
- options: ["english", "العربية", "deutsch", "ελληνικά", "español", "français", "हिंदी", "hrvatski",
- "italiano", "nederlands", "polski", "português brasileiro", "português", "српски", "தமிழ்",
- "ไทย", "中国(简体)", "中國(繁體)"],
- reqd:1, "default": "english"
+ reqd:1
},
],
help: __("Welcome to ERPNext. Please select your language to begin the Setup Wizard."),
onload: function(slide) {
+ var me = this;
+
+ if (!this.language_list) {
+ frappe.call({
+ method: "erpnext.setup.page.setup_wizard.setup_wizard.load_languages",
+ callback: function(r) {
+ me.language_list = r.message;
+ slide.get_input("language")
+ .add_options(r.message)
+ .val("english");
+ }
+ })
+ } else {
+ slide.get_input("language").add_options(this.language_list);
+ }
+
slide.get_input("language").on("change", function() {
var lang = $(this).val() || "english";
frappe._messages = {};
diff --git a/erpnext/setup/page/setup_wizard/setup_wizard.py b/erpnext/setup/page/setup_wizard/setup_wizard.py
index c5e3f43..6e3c718 100644
--- a/erpnext/setup/page/setup_wizard/setup_wizard.py
+++ b/erpnext/setup/page/setup_wizard/setup_wizard.py
@@ -434,4 +434,6 @@
send_translations(m)
return lang
-
+@frappe.whitelist()
+def load_languages():
+ return sorted(get_lang_dict().keys())
diff --git a/setup.py b/setup.py
index 8c9712e..1a20cfd 100644
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
from setuptools import setup, find_packages
import os
-version = "4.14.0"
+version = "4.15.0"
with open("requirements.txt", "r") as f:
install_requires = f.readlines()