From c964c45f4e50989485eef1f8e67039cdc065432b Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 11:38:49 +0530 Subject: [PATCH] fix: negative stock error while making stock reconciliation (backport #40016) (#40026) * fix: negative stock error while making stock reconciliation (#40016) fix: negative stock error while making stock reco (cherry picked from commit da184d709b9f61bc9bd62cd6beddf5e19c661042) # Conflicts: # erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py * chore: fix conflicts --------- Co-authored-by: rohitwaghchaure --- .../doctype/stock_reconciliation/stock_reconciliation.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py index c69b20b7d9..06fd5f9b27 100644 --- a/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py +++ b/erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py @@ -906,8 +906,13 @@ class StockReconciliation(StockController): def has_negative_stock_allowed(self): allow_negative_stock = cint(frappe.db.get_single_value("Stock Settings", "allow_negative_stock")) + if allow_negative_stock: + return True - if all(d.serial_and_batch_bundle and flt(d.qty) == flt(d.current_qty) for d in self.items): + if any( + ((d.serial_and_batch_bundle or d.batch_no) and flt(d.qty) == flt(d.current_qty)) + for d in self.items + ): allow_negative_stock = True return allow_negative_stock