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 4f45210fb985..31fc2cab6a5f 100644 --- a/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py +++ b/erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py @@ -281,6 +281,7 @@ def repost(doc): repost_gl_entries(doc) doc.set_status("Completed") + remove_attached_file(doc.name) except Exception as e: if frappe.flags.in_test: @@ -309,6 +310,13 @@ def repost(doc): frappe.db.commit() +def remove_attached_file(docname): + 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, delete_permanently=True) + + def repost_sl_entries(doc): if doc.based_on == "Transaction": repost_future_sle( 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 5b76e442f471..f96a612dcb6a 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 @@ def test_repost_item_valuation_for_closing_stock_balance(self): 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", + ) + )