Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py
index 9e4baa1..536bb6d 100644
--- a/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py
+++ b/erpnext/accounts/doctype/receivable_voucher/receivable_voucher.py
@@ -645,30 +645,36 @@
 
 ########################################################################
 # Repair Outstanding
-#######################################################################
+
 	def repair_rv_outstanding(self):
 		get_obj(dt = 'GL Control').repair_voucher_outstanding(self)
 
+
+	#-------------------------------------------------------------------------------------
 	def on_update_after_submit(self):
 		self.convert_into_recurring()
 		
 
 	def convert_into_recurring(self):
 		if self.doc.convert_into_recurring_invoice:
-			event = 'accounts.doctype.gl_control.gl_control.manage_recurring_invoices'
 			self.set_next_date()
 			if not self.doc.recurring_id:
 				set(self.doc, 'recurring_id', make_autoname('RECINV/.#####'))
-
-			if sql("select name from `tabReceivable Voucher` where ifnull(convert_into_recurring_invoice, 0) = 1 and next_date <= end_date"):
-				if not self.check_event_exists(event):
-					set_event(event,  interval = 60*60, recurring = 1)
-			else:
-				cancel_event(event)
-
 		elif self.doc.recurring_id:
 			sql("""update `tabReceivable Voucher` set convert_into_recurring_invoice = 0 where recurring_id = %s""", self.doc.recurring_id)
 
+		self.manage_scheduler()
+
+	def manage_scheduler(self):
+		""" set/cancel event in scheduler """
+		event = 'accounts.doctype.gl_control.gl_control.manage_recurring_invoices'
+
+		if sql("select name from `tabReceivable Voucher` where ifnull(convert_into_recurring_invoice, 0) = 1 and next_date <= end_date"):
+			if not self.check_event_exists(event):
+				set_event(event,  interval = 60*60, recurring = 1)
+		else:
+			cancel_event(event)
+
 
 	def check_event_exists(self, event):
 		try: