fix: Cascade deletion for Company (#26923)
* fix: Cascade deletion for Company
This commit is contained in:
parent
c335962827
commit
2b2572b9b9
@ -308,6 +308,9 @@ doc_events = {
|
|||||||
},
|
},
|
||||||
('Quotation', 'Sales Order', 'Sales Invoice'): {
|
('Quotation', 'Sales Order', 'Sales Invoice'): {
|
||||||
'validate': ["erpnext.erpnext_integrations.taxjar_integration.set_sales_tax"]
|
'validate': ["erpnext.erpnext_integrations.taxjar_integration.set_sales_tax"]
|
||||||
|
},
|
||||||
|
"Company": {
|
||||||
|
"on_trash": "erpnext.regional.india.utils.delete_gst_settings_for_company"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -871,3 +871,20 @@ def set_item_tax_from_hsn_code(item):
|
|||||||
'tax_category': tax.tax_category,
|
'tax_category': tax.tax_category,
|
||||||
'valid_from': tax.valid_from
|
'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()
|
||||||
|
|
||||||
|
@ -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 `tabPurchase Taxes and Charges Template` where company=%s", self.name)
|
||||||
frappe.db.sql("delete from `tabItem Tax 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()
|
@frappe.whitelist()
|
||||||
def enqueue_replace_abbr(company, old, new):
|
def enqueue_replace_abbr(company, old, new):
|
||||||
kwargs = dict(queue="long", company=company, old=old, new=new)
|
kwargs = dict(queue="long", company=company, old=old, new=new)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user