From 0e79610a3fae3ceeaba25ffc6c2686c517dc8c71 Mon Sep 17 00:00:00 2001 From: Rohit Waghchaure Date: Thu, 8 Jan 2026 13:39:03 +0530 Subject: [PATCH] fix: negative stock issue for higher precision (cherry picked from commit 87be020c783f99f21dbbdcb653f538b97431ebdd) --- .../doctype/delivery_note/test_delivery_note.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/erpnext/stock/doctype/delivery_note/test_delivery_note.py b/erpnext/stock/doctype/delivery_note/test_delivery_note.py index 8f8d76e6737..636d357c5c4 100644 --- a/erpnext/stock/doctype/delivery_note/test_delivery_note.py +++ b/erpnext/stock/doctype/delivery_note/test_delivery_note.py @@ -1524,6 +1524,23 @@ class TestDeliveryNote(FrappeTestCase): frappe.db.set_single_value("System Settings", "float_precision", original_flt_precision) + def test_negative_stock_with_higher_precision(self): + original_flt_precision = frappe.db.get_default("float_precision") + frappe.db.set_single_value("System Settings", "float_precision", 7) + + item_code = make_item( + "Test Negative Stock High Precision Item", properties={"is_stock_item": 1, "valuation_rate": 1} + ).name + dn = create_delivery_note( + item_code=item_code, + qty=0.0000010, + do_not_submit=True, + ) + + self.assertRaises(frappe.ValidationError, dn.submit) + + frappe.db.set_single_value("System Settings", "float_precision", original_flt_precision) + def create_delivery_note(**args): dn = frappe.new_doc("Delivery Note")