diff --git a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py index 3092477e4f8..939b3973fae 100644 --- a/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/test_sales_invoice.py @@ -756,7 +756,8 @@ class TestSalesInvoice(unittest.TestCase): def _test_recurring_invoice(self, base_si, first_and_last_day): from webnotes.utils import add_months, get_last_day - from erpnext.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] @@ -764,7 +765,8 @@ class TestSalesInvoice(unittest.TestCase): 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/erpnext/stock/doctype/serial_no/serial_no.py b/erpnext/stock/doctype/serial_no/serial_no.py index 02851e80213..45cc89cc6b8 100644 --- a/erpnext/stock/doctype/serial_no/serial_no.py +++ b/erpnext/stock/doctype/serial_no/serial_no.py @@ -87,8 +87,6 @@ class DocType(StockController): 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" diff --git a/patches/1401/fix_serial_no_status_and_warehouse.py b/patches/1401/fix_serial_no_status_and_warehouse.py index fe43c282d81..9e5579c90c1 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