* Delete subscription records after migrating all records to auto-repeat * delete old fields from subscription
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from __future__ import unicode_literals
 | |
| import frappe
 | |
| from frappe.model.utils.rename_field import rename_field
 | |
| 
 | |
| 
 | |
| def execute():
 | |
| 	frappe.reload_doc('desk', 'doctype', 'auto_repeat')
 | |
| 
 | |
| 	doctypes_to_rename = {
 | |
| 		'accounts': ['Journal Entry', 'Payment Entry', 'Purchase Invoice', 'Sales Invoice'],
 | |
| 		'buying': ['Purchase Order', 'Supplier Quotation'],
 | |
| 		'selling': ['Quotation', 'Sales Order'],
 | |
| 		'stock': ['Delivery Note', 'Purchase Receipt']
 | |
| 	}
 | |
| 
 | |
| 	for module, doctypes in doctypes_to_rename.items():
 | |
| 		for doctype in doctypes:
 | |
| 			frappe.reload_doc(module, 'doctype', frappe.scrub(doctype))
 | |
| 
 | |
| 			if frappe.db.has_column(doctype, 'subscription'):
 | |
| 				rename_field(doctype, 'subscription', 'auto_repeat')
 | |
| 
 | |
| 	subscriptions = frappe.db.sql('select * from `tabSubscription`', as_dict=1)
 | |
| 
 | |
| 	for doc in subscriptions:
 | |
| 		doc['doctype'] = 'Auto Repeat'
 | |
| 		auto_repeat = frappe.get_doc(doc)
 | |
| 		auto_repeat.db_insert()
 | |
| 
 | |
| 	frappe.db.sql('delete from `tabSubscription`')
 | |
| 	frappe.db.commit()
 | |
| 	drop_columns_from_subscription()
 | |
| 
 | |
| def drop_columns_from_subscription():
 | |
| 	fields_to_drop = {'Subscription': []}
 | |
| 	for field in ['naming_series', 'reference_doctype', 'reference_document', 'start_date',
 | |
| 		'end_date', 'submit_on_creation', 'disabled', 'frequency', 'repeat_on_day',
 | |
| 		'next_schedule_date', 'notify_by_email', 'subject', 'recipients', 'print_format',
 | |
| 		'message', 'status', 'amended_from']:
 | |
| 
 | |
| 		if field in frappe.db.get_table_columns("Subscription"):
 | |
| 			fields_to_drop['Subscription'].append(field)
 | |
| 
 | |
| 	frappe.model.delete_fields(fields_to_drop, delete=1) |