Merge branch 'develop'
diff --git a/accounts/doctype/sales_invoice/test_sales_invoice.py b/accounts/doctype/sales_invoice/test_sales_invoice.py
index e98dfdc..ccb7d53 100644
--- a/accounts/doctype/sales_invoice/test_sales_invoice.py
+++ b/accounts/doctype/sales_invoice/test_sales_invoice.py
@@ -654,7 +654,8 @@
 
 	def _test_recurring_invoice(self, base_si, first_and_last_day):
 		from webnotes.utils import add_months, get_last_day
-		from accounts.doctype.sales_invoice.sales_invoice import manage_recurring_invoices
+		from accounts.doctype.sales_invoice.sales_invoice \
+			import manage_recurring_invoices, get_next_date
 		
 		no_of_months = ({"Monthly": 1, "Quarterly": 3, "Yearly": 12})[base_si.doc.recurring_type]
 		
@@ -662,7 +663,8 @@
 			self.assertEquals(i+1, webnotes.conn.sql("""select count(*) from `tabSales Invoice`
 				where recurring_id=%s and docstatus=1""", base_si.doc.recurring_id)[0][0])
 				
-			next_date = add_months(base_si.doc.posting_date, no_of_months)
+			next_date = get_next_date(base_si.doc.posting_date, no_of_months, 
+				base_si.doc.repeat_on_day_of_month)
 			
 			manage_recurring_invoices(next_date=next_date, commit=False)
 			
diff --git a/config.json b/config.json
index be5d2bd..89e28c0 100644
--- a/config.json
+++ b/config.json
@@ -1,6 +1,6 @@
 {
  "app_name": "ERPNext", 
- "app_version": "3.8.0", 
+ "app_version": "3.8.1", 
  "base_template": "app/portal/templates/base.html", 
  "modules": {
   "Accounts": {
diff --git a/patches/1401/fix_serial_no_status_and_warehouse.py b/patches/1401/fix_serial_no_status_and_warehouse.py
index fe43c28..9e5579c 100644
--- a/patches/1401/fix_serial_no_status_and_warehouse.py
+++ b/patches/1401/fix_serial_no_status_and_warehouse.py
@@ -4,14 +4,16 @@
 from __future__ import unicode_literals
 import webnotes
 
+
 def execute():	
 	serial_nos = webnotes.conn.sql("""select name from `tabSerial No` where docstatus=0 
 		and status in ('Available', 'Sales Returned') and ifnull(warehouse, '') = ''""")
 	for sr in serial_nos:
 		try:
-			sr_bean = webnotes.bean("Serial No", sr[0])
-			sr_bean.make_controller().via_stock_ledger = True
-			sr_bean.save()
+			last_sle = webnotes.bean("Serial No", sr[0]).make_controller().get_last_sle()
+			if last_sle.actual_qty > 0:
+				webnotes.conn.set_value("Serial No", sr[0], "warehouse", last_sle.warehouse)
+				
 			webnotes.conn.commit()
 		except:
 			pass
\ No newline at end of file
diff --git a/stock/doctype/serial_no/serial_no.py b/stock/doctype/serial_no/serial_no.py
index e6557b4..57b3b46 100644
--- a/stock/doctype/serial_no/serial_no.py
+++ b/stock/doctype/serial_no/serial_no.py
@@ -87,8 +87,6 @@
 					self.doc.status = "Sales Returned"
 				else:
 					self.doc.status = "Available"
-				if not self.doc.warehouse:
-					self.doc.warehouse = last_sle.warehouse
 			else:
 				if document_type == "Purchase Return":
 					self.doc.status = "Purchase Returned"