refactor: tasks section and UI niceties
(cherry picked from commit d0dc2c6e77)
This commit is contained in:
@@ -9,6 +9,12 @@
|
|||||||
"company",
|
"company",
|
||||||
"column_break_txbg",
|
"column_break_txbg",
|
||||||
"status",
|
"status",
|
||||||
|
"tasks_section",
|
||||||
|
"delete_bin_data",
|
||||||
|
"delete_leads_and_addresses",
|
||||||
|
"reset_company_default_values",
|
||||||
|
"clear_notifications",
|
||||||
|
"delete_transactions",
|
||||||
"section_break_tbej",
|
"section_break_tbej",
|
||||||
"doctypes",
|
"doctypes",
|
||||||
"doctypes_to_be_ignored",
|
"doctypes_to_be_ignored",
|
||||||
@@ -59,12 +65,57 @@
|
|||||||
{
|
{
|
||||||
"fieldname": "section_break_tbej",
|
"fieldname": "section_break_tbej",
|
||||||
"fieldtype": "Section Break"
|
"fieldtype": "Section Break"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fieldname": "tasks_section",
|
||||||
|
"fieldtype": "Section Break",
|
||||||
|
"label": "Tasks"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "delete_bin_data",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Delete Bins",
|
||||||
|
"no_copy": 1,
|
||||||
|
"read_only": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "delete_leads_and_addresses",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Delete Leads and Addresses",
|
||||||
|
"no_copy": 1,
|
||||||
|
"read_only": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "clear_notifications",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Clear Notifications",
|
||||||
|
"no_copy": 1,
|
||||||
|
"read_only": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "reset_company_default_values",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Reset Company Default Values",
|
||||||
|
"no_copy": 1,
|
||||||
|
"read_only": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"default": "0",
|
||||||
|
"fieldname": "delete_transactions",
|
||||||
|
"fieldtype": "Check",
|
||||||
|
"label": "Delete Transactions",
|
||||||
|
"no_copy": 1,
|
||||||
|
"read_only": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"index_web_pages_for_search": 1,
|
"index_web_pages_for_search": 1,
|
||||||
"is_submittable": 1,
|
"is_submittable": 1,
|
||||||
"links": [],
|
"links": [],
|
||||||
"modified": "2024-02-03 12:42:21.628177",
|
"modified": "2024-02-03 14:40:40.207482",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Setup",
|
"module": "Setup",
|
||||||
"name": "Transaction Deletion Record",
|
"name": "Transaction Deletion Record",
|
||||||
|
|||||||
@@ -25,9 +25,14 @@ class TransactionDeletionRecord(Document):
|
|||||||
)
|
)
|
||||||
|
|
||||||
amended_from: DF.Link | None
|
amended_from: DF.Link | None
|
||||||
|
clear_notifications: DF.Check
|
||||||
company: DF.Link
|
company: DF.Link
|
||||||
|
delete_bin_data: DF.Check
|
||||||
|
delete_leads_and_addresses: DF.Check
|
||||||
|
delete_transactions: DF.Check
|
||||||
doctypes: DF.Table[TransactionDeletionRecordItem]
|
doctypes: DF.Table[TransactionDeletionRecordItem]
|
||||||
doctypes_to_be_ignored: DF.Table[TransactionDeletionRecordItem]
|
doctypes_to_be_ignored: DF.Table[TransactionDeletionRecordItem]
|
||||||
|
reset_company_default_values: DF.Check
|
||||||
status: DF.Literal["Queued", "Running", "Failed", "Completed", "Cancelled"]
|
status: DF.Literal["Queued", "Running", "Failed", "Completed", "Cancelled"]
|
||||||
# end: auto-generated types
|
# end: auto-generated types
|
||||||
|
|
||||||
@@ -55,8 +60,16 @@ class TransactionDeletionRecord(Document):
|
|||||||
if not self.doctypes_to_be_ignored:
|
if not self.doctypes_to_be_ignored:
|
||||||
self.populate_doctypes_to_be_ignored_table()
|
self.populate_doctypes_to_be_ignored_table()
|
||||||
|
|
||||||
|
def reset_task_flags(self):
|
||||||
|
self.clear_notifications = 0
|
||||||
|
self.delete_bin_data = 0
|
||||||
|
self.delete_leads_and_addresses = 0
|
||||||
|
self.delete_transactions = 0
|
||||||
|
self.reset_company_default_values = 0
|
||||||
|
|
||||||
def before_save(self):
|
def before_save(self):
|
||||||
self.status = ""
|
self.status = ""
|
||||||
|
self.reset_task_flags()
|
||||||
|
|
||||||
def on_submit(self):
|
def on_submit(self):
|
||||||
self.db_set("status", "Queued")
|
self.db_set("status", "Queued")
|
||||||
@@ -64,11 +77,13 @@ class TransactionDeletionRecord(Document):
|
|||||||
def on_cancel(self):
|
def on_cancel(self):
|
||||||
self.db_set("status", "Cancelled")
|
self.db_set("status", "Cancelled")
|
||||||
|
|
||||||
|
@frappe.whitelist()
|
||||||
def start_deletion_process(self):
|
def start_deletion_process(self):
|
||||||
self.delete_bins()
|
self.delete_bins()
|
||||||
self.delete_lead_addresses()
|
self.delete_lead_addresses()
|
||||||
self.reset_company_values()
|
self.reset_company_values()
|
||||||
clear_notifications()
|
clear_notifications()
|
||||||
|
self.db_set("clear_notifications", 1)
|
||||||
self.delete_company_transactions()
|
self.delete_company_transactions()
|
||||||
|
|
||||||
def populate_doctypes_to_be_ignored_table(self):
|
def populate_doctypes_to_be_ignored_table(self):
|
||||||
@@ -82,6 +97,7 @@ class TransactionDeletionRecord(Document):
|
|||||||
(select name from tabWarehouse where company=%s)""",
|
(select name from tabWarehouse where company=%s)""",
|
||||||
self.company,
|
self.company,
|
||||||
)
|
)
|
||||||
|
self.db_set("delete_bin_data", 1)
|
||||||
|
|
||||||
def delete_lead_addresses(self):
|
def delete_lead_addresses(self):
|
||||||
"""Delete addresses to which leads are linked"""
|
"""Delete addresses to which leads are linked"""
|
||||||
@@ -120,12 +136,14 @@ class TransactionDeletionRecord(Document):
|
|||||||
leads=",".join(leads)
|
leads=",".join(leads)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
self.db_set("delete_leads_and_addresses", 1)
|
||||||
|
|
||||||
def reset_company_values(self):
|
def reset_company_values(self):
|
||||||
company_obj = frappe.get_doc("Company", self.company)
|
company_obj = frappe.get_doc("Company", self.company)
|
||||||
company_obj.total_monthly_sales = 0
|
company_obj.total_monthly_sales = 0
|
||||||
company_obj.sales_monthly_history = None
|
company_obj.sales_monthly_history = None
|
||||||
company_obj.save()
|
company_obj.save()
|
||||||
|
self.db_set("reset_company_default_values", 1)
|
||||||
|
|
||||||
def delete_company_transactions(self):
|
def delete_company_transactions(self):
|
||||||
doctypes_to_be_ignored_list = self.get_doctypes_to_be_ignored_list()
|
doctypes_to_be_ignored_list = self.get_doctypes_to_be_ignored_list()
|
||||||
@@ -159,6 +177,7 @@ class TransactionDeletionRecord(Document):
|
|||||||
if naming_series:
|
if naming_series:
|
||||||
if "#" in naming_series:
|
if "#" in naming_series:
|
||||||
self.update_naming_series(naming_series, docfield["parent"])
|
self.update_naming_series(naming_series, docfield["parent"])
|
||||||
|
self.db_set("delete_transactions", 1)
|
||||||
|
|
||||||
def get_doctypes_to_be_ignored_list(self):
|
def get_doctypes_to_be_ignored_list(self):
|
||||||
singles = frappe.get_all("DocType", filters={"issingle": 1}, pluck="name")
|
singles = frappe.get_all("DocType", filters={"issingle": 1}, pluck="name")
|
||||||
|
|||||||
Reference in New Issue
Block a user