From 7504ea7033bc2186921871d660ab8182b3f31fa3 Mon Sep 17 00:00:00 2001 From: Nabin Hait Date: Wed, 23 Mar 2016 11:16:51 +0530 Subject: [PATCH] [fix] Reset recurring id on amendment --- erpnext/controllers/accounts_controller.py | 9 ++++++--- erpnext/controllers/recurring_document.py | 13 ++++++------- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index bcaa9fbac9..d6ad022514 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -48,9 +48,12 @@ class AccountsController(TransactionBase): self.validate_party() self.validate_currency() - if self.meta.get_field("is_recurring") and not self.get("__islocal"): - validate_recurring_document(self) - convert_to_recurring(self, self.get("posting_date") or self.get("transaction_date")) + if self.meta.get_field("is_recurring"): + if self.amended_from and self.recurring_id: + self.recurring_id = None + if not self.get("__islocal"): + validate_recurring_document(self) + convert_to_recurring(self, self.get("posting_date") or self.get("transaction_date")) def on_update_after_submit(self): if self.meta.get_field("is_recurring"): diff --git a/erpnext/controllers/recurring_document.py b/erpnext/controllers/recurring_document.py index 2df7352348..42b847e72f 100644 --- a/erpnext/controllers/recurring_document.py +++ b/erpnext/controllers/recurring_document.py @@ -181,14 +181,13 @@ def convert_to_recurring(doc, posting_date): doc.db_set("recurring_id", doc.name) set_next_date(doc, posting_date) - + + if doc.next_date: + validate_recurring_next_date(doc) + elif doc.recurring_id: - frappe.db.sql("""update `tab%s` set is_recurring = 0 - where recurring_id = %s""" % (doc.doctype, '%s'), (doc.recurring_id)) - - if doc.next_date: - validate_recurring_next_date(doc) - + doc.db_set("recurring_id", None) + def validate_notification_email_id(doc): if doc.notify_by_email: if doc.notification_email_address: