From 1fc21d60c60a62a3431da82d16624c120740cd2c Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Tue, 14 Oct 2025 16:29:20 +0530 Subject: [PATCH] fix: negative error not throw for backdated entry (cherry picked from commit 88a947ff4e8ed023e8b6507678184f0973b5cf4c) --- erpnext/stock/doctype/stock_entry/test_stock_entry.py | 11 +---------- erpnext/stock/serial_batch_bundle.py | 6 +++--- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py index 08ce705f26f..cde5be4d6ee 100644 --- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py @@ -1323,18 +1323,9 @@ class TestStockEntry(FrappeTestCase): posting_date="2021-07-02", # Illegal SE purpose="Material Transfer", ), - dict( - item_code=item_code, - qty=2, - from_warehouse=warehouse_names[0], - to_warehouse=warehouse_names[1], - batch_no=batch_no, - posting_date="2021-07-02", # Illegal SE - purpose="Material Transfer", - ), ] - self.assertRaises(frappe.ValidationError, create_stock_entries, sequence_of_entries) + self.assertRaises(NegativeStockError, create_stock_entries, sequence_of_entries) @change_settings("Stock Settings", {"allow_negative_stock": 0}) def test_future_negative_sle_batch(self): diff --git a/erpnext/stock/serial_batch_bundle.py b/erpnext/stock/serial_batch_bundle.py index 589861809d4..bea1cb7386e 100644 --- a/erpnext/stock/serial_batch_bundle.py +++ b/erpnext/stock/serial_batch_bundle.py @@ -1385,12 +1385,12 @@ def get_batch_current_qty(batch): def throw_negative_batch_validation(batch_no, qty): - frappe.msgprint( + # This validation is important for backdated stock transactions with batch items + frappe.throw( _( "The Batch {0} has negative batch quantity {1}. To fix this, go to the batch and click on Recalculate Batch Qty. If the issue still persists, create an inward entry." ).format(bold(get_link_to_form("Batch", batch_no)), bold(qty)), - title=_("Warning!"), - indicator="orange", + title=_("Negative Stock Error"), )