fix: circular dependency error while deleting QC
diff --git a/erpnext/stock/doctype/quality_inspection/quality_inspection.py b/erpnext/stock/doctype/quality_inspection/quality_inspection.py
index 4464ea8..8816341 100644
--- a/erpnext/stock/doctype/quality_inspection/quality_inspection.py
+++ b/erpnext/stock/doctype/quality_inspection/quality_inspection.py
@@ -111,6 +111,9 @@
def on_cancel(self):
self.update_qc_reference()
+ def on_trash(self):
+ self.update_qc_reference()
+
def validate_readings_status_mandatory(self):
for reading in self.readings:
if not reading.status:
diff --git a/erpnext/stock/doctype/quality_inspection/test_quality_inspection.py b/erpnext/stock/doctype/quality_inspection/test_quality_inspection.py
index f5f8c3a..c423ca8 100644
--- a/erpnext/stock/doctype/quality_inspection/test_quality_inspection.py
+++ b/erpnext/stock/doctype/quality_inspection/test_quality_inspection.py
@@ -250,6 +250,33 @@
qa.delete()
dn.delete()
+ def test_delete_quality_inspection_linked_with_stock_entry(self):
+ item_code = create_item("_Test Cicuular Dependecy Item with QA").name
+
+ se = make_stock_entry(
+ item_code=item_code, target="_Test Warehouse - _TC", qty=1, basic_rate=100, do_not_submit=True
+ )
+
+ se.inspection_required = 1
+ se.save()
+
+ qa = create_quality_inspection(
+ item_code=item_code, reference_type="Stock Entry", reference_name=se.name, do_not_submit=True
+ )
+
+ se.reload()
+ se.items[0].quality_inspection = qa.name
+ se.save()
+
+ qa.delete()
+
+ se.reload()
+
+ qc = se.items[0].quality_inspection
+ self.assertFalse(qc)
+
+ se.delete()
+
def create_quality_inspection(**args):
args = frappe._dict(args)