Merge patch and delete fields from subscription (#14941)
* Delete subscription records after migrating all records to auto-repeat * delete old fields from subscription
This commit is contained in:
@@ -4,25 +4,21 @@ from frappe.model.utils.rename_field import rename_field
|
||||
|
||||
|
||||
def execute():
|
||||
to_rename = ['Purchase Order', 'Journal Entry', 'Sales Invoice', 'Payment Entry',
|
||||
'Delivery Note', 'Purchase Invoice', 'Quotation', 'Sales Order',
|
||||
'Purchase Receipt', 'Supplier Quotation']
|
||||
|
||||
frappe.reload_doc('accounts', 'doctype', 'sales_invoice')
|
||||
frappe.reload_doc('accounts', 'doctype', 'purchase_invoice')
|
||||
frappe.reload_doc('accounts', 'doctype', 'payment_entry')
|
||||
frappe.reload_doc('accounts', 'doctype', 'journal_entry')
|
||||
frappe.reload_doc('buying', 'doctype', 'purchase_order')
|
||||
frappe.reload_doc('buying', 'doctype', 'supplier_quotation')
|
||||
frappe.reload_doc('desk', 'doctype', 'auto_repeat')
|
||||
frappe.reload_doc('selling', 'doctype', 'quotation')
|
||||
frappe.reload_doc('selling', 'doctype', 'sales_order')
|
||||
frappe.reload_doc('stock', 'doctype', 'purchase_receipt')
|
||||
frappe.reload_doc('stock', 'doctype', 'delivery_note')
|
||||
|
||||
for doctype in to_rename:
|
||||
if frappe.db.has_column(doctype, 'subscription'):
|
||||
rename_field(doctype, 'subscription', '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)
|
||||
|
||||
@@ -30,3 +26,19 @@ def execute():
|
||||
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)
|
||||
Reference in New Issue
Block a user