Merge pull request #1814 from anandpdoshi/anand-wip

Don't set warehouse when creating serial no, fixed currency exchange error message
diff --git a/.travis.yml b/.travis.yml
index 59acb5c..dba0dab 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,9 +14,13 @@
   - sudo apt-get update
   - sudo apt-get purge -y mysql-common
   - sudo apt-get install mariadb-server mariadb-common libmariadbclient-dev
-  - CFLAGS=-O0 pip install git+https://github.com/frappe/frappe.git@develop &&
+  - CFLAGS=-O0 pip install git+https://github.com/frappe/frappe.git@$TRAVIS_BRANCH &&
   - pip install --editable .
 
+before_script:
+  - mysql -e 'create database test_frappe'
+  - echo "USE mysql;\nCREATE USER 'test_frappe'@'localhost' IDENTIFIED BY 'test_frappe';\nFLUSH PRIVILEGES;\n" | mysql -u root
+
 script:
   - cd ./test_sites/
   - frappe --use test_site
@@ -25,7 +29,3 @@
   - frappe -b
   - frappe --serve_test &
   - frappe --verbose --run_tests --app erpnext
-
-before_script:
-  - mysql -e 'create database test_frappe'
-  - echo "USE mysql;\nCREATE USER 'test_frappe'@'localhost' IDENTIFIED BY 'test_frappe';\nFLUSH PRIVILEGES;\n" | mysql -u root
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index 1b66c65..24da577 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -279,13 +279,9 @@
 		target.amount = (flt(source.qty) - flt(source.delivered_qty)) * flt(source.rate)
 		target.qty = flt(source.qty) - flt(source.delivered_qty)
 
-	doclist = get_mapped_doc("Sales Order", source_name, {
+	target_doc = get_mapped_doc("Sales Order", source_name, {
 		"Sales Order": {
 			"doctype": "Delivery Note",
-			"field_map": {
-				"shipping_address": "address_display",
-				"shipping_address_name": "customer_address",
-			},
 			"validation": {
 				"docstatus": ["=", 1]
 			}
@@ -310,7 +306,7 @@
 		}
 	}, target_doc, set_missing_values)
 
-	return doclist
+	return target_doc
 
 @frappe.whitelist()
 def make_sales_invoice(source_name, target_doc=None):
diff --git a/erpnext/setup/doctype/currency/currency.py b/erpnext/setup/doctype/currency/currency.py
index 5be618b..abfbe19 100644
--- a/erpnext/setup/doctype/currency/currency.py
+++ b/erpnext/setup/doctype/currency/currency.py
@@ -17,8 +17,5 @@
 	company_currency = frappe.db.get_value("Company", company, "default_currency")
 
 	if not conversion_rate:
-		throw(_('%(conversion_rate_label)s is mandatory. Maybe Currency Exchange record is not created for %(from_currency)s to %(to_currency)s') % {
-			"conversion_rate_label": conversion_rate_label,
-			"from_currency": currency,
-			"to_currency": company_currency
-		})
+		throw(_("{0} is mandatory. Maybe Currency Exchange record is not created for {1} to {2}.").format(
+			conversion_rate_label, currency, company_currency))
diff --git a/erpnext/stock/doctype/serial_no/serial_no.py b/erpnext/stock/doctype/serial_no/serial_no.py
index ff4d519..fe4af21 100644
--- a/erpnext/stock/doctype/serial_no/serial_no.py
+++ b/erpnext/stock/doctype/serial_no/serial_no.py
@@ -278,13 +278,16 @@
 
 def make_serial_no(serial_no, sle):
 	sr = frappe.new_doc("Serial No")
+	sr.warehouse = None
+	sr.dont_update_if_missing.append("warehouse")
 	sr.ignore_permissions = True
+
 	sr.serial_no = serial_no
 	sr.item_code = sle.item_code
-	sr.warehouse = None
 	sr.company = sle.company
 	sr.via_stock_ledger = True
 	sr.insert()
+
 	sr.warehouse = sle.warehouse
 	sr.status = "Available"
 	sr.save()
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 3df78c8..38c7521 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -228,7 +228,7 @@
 				raw_material_cost += flt(d.amount)
 
 		# set incoming rate for fg item
-		if self.production_order and self.purpose == "Manufacture/Repack":
+		if self.purpose == "Manufacture/Repack":
 			for d in self.get("mtn_details"):
 				if d.bom_no:
 					if not flt(d.incoming_rate):