fix: Cascade deletion for Company (#26923)

* fix: Cascade deletion for Company
This commit is contained in:
Deepesh Garg 2021-08-20 14:40:12 +05:30 committed by GitHub
parent c335962827
commit 2b2572b9b9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 0 deletions

View File

@ -308,6 +308,9 @@ doc_events = {
},
('Quotation', 'Sales Order', 'Sales Invoice'): {
'validate': ["erpnext.erpnext_integrations.taxjar_integration.set_sales_tax"]
},
"Company": {
"on_trash": "erpnext.regional.india.utils.delete_gst_settings_for_company"
}
}

View File

@ -871,3 +871,20 @@ def set_item_tax_from_hsn_code(item):
'tax_category': tax.tax_category,
'valid_from': tax.valid_from
})
def delete_gst_settings_for_company(doc, method):
if doc.country != 'India':
return
gst_settings = frappe.get_doc("GST Settings")
records_to_delete = []
for d in reversed(gst_settings.get('gst_accounts')):
if d.company == doc.name:
records_to_delete.append(d)
for d in records_to_delete:
gst_settings.remove(d)
gst_settings.save()

View File

@ -393,6 +393,10 @@ class Company(NestedSet):
frappe.db.sql("delete from `tabPurchase Taxes and Charges Template` where company=%s", self.name)
frappe.db.sql("delete from `tabItem Tax Template` where company=%s", self.name)
# delete Process Deferred Accounts if no GL Entry found
if not frappe.db.get_value('GL Entry', {'company': self.name}):
frappe.db.sql("delete from `tabProcess Deferred Accounting` where company=%s", self.name)
@frappe.whitelist()
def enqueue_replace_abbr(company, old, new):
kwargs = dict(queue="long", company=company, old=old, new=new)