test: test case to check removed attached file
diff --git a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py
index 4878de8..31fc2ca 100644
--- a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py
+++ b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py
@@ -314,7 +314,7 @@
if file_name := frappe.db.get_value(
"File", {"attached_to_name": docname, "attached_to_doctype": "Repost Item Valuation"}, "name"
):
- frappe.delete_doc("File", file_name)
+ frappe.delete_doc("File", file_name, delete_permanently=True)
def repost_sl_entries(doc):
diff --git a/erpnext/stock/doctype/repost_item_valuation/test_repost_item_valuation.py b/erpnext/stock/doctype/repost_item_valuation/test_repost_item_valuation.py
index 5b76e44..f96a612 100644
--- a/erpnext/stock/doctype/repost_item_valuation/test_repost_item_valuation.py
+++ b/erpnext/stock/doctype/repost_item_valuation/test_repost_item_valuation.py
@@ -420,3 +420,38 @@
self.assertRaises(frappe.ValidationError, riv.save)
doc.cancel()
+
+ def test_remove_attached_file(self):
+ item_code = make_item("_Test Remove Attached File Item", properties={"is_stock_item": 1})
+
+ make_purchase_receipt(
+ item_code=item_code,
+ qty=1,
+ rate=100,
+ )
+
+ pr1 = make_purchase_receipt(
+ item_code=item_code,
+ qty=1,
+ rate=100,
+ posting_date=add_days(today(), days=-1),
+ )
+
+ if docname := frappe.db.exists("Repost Item Valuation", {"voucher_no": pr1.name}):
+ self.assertFalse(
+ frappe.db.get_value(
+ "File",
+ {"attached_to_doctype": "Repost Item Valuation", "attached_to_name": docname},
+ "name",
+ )
+ )
+ else:
+ repost_entries = create_item_wise_repost_entries(pr1.doctype, pr1.name)
+ for entry in repost_entries:
+ self.assertFalse(
+ frappe.db.get_value(
+ "File",
+ {"attached_to_doctype": "Repost Item Valuation", "attached_to_name": entry.name},
+ "name",
+ )
+ )