Skip to content

Commit 3db70fe

Browse files
rohitwaghchauremergify[bot]
authored andcommitted
fix: Recreate Stock Ledgers issue
(cherry picked from commit 229a4ce) (cherry picked from commit b819e0a)
1 parent 52257c9 commit 3db70fe

4 files changed

Lines changed: 13 additions & 9 deletions

File tree

erpnext/controllers/selling_controller.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -558,7 +558,7 @@ def set_incoming_rate(self):
558558
self.doctype, self.name, d.item_code, self.return_against, item_row=d
559559
)
560560

561-
def update_stock_ledger(self):
561+
def update_stock_ledger(self, allow_negative_stock=False):
562562
self.update_reserved_qty()
563563

564564
sl_entries = []
@@ -588,7 +588,7 @@ def update_stock_ledger(self):
588588
):
589589
sl_entries.append(self.get_sle_for_source_warehouse(d))
590590

591-
self.make_sl_entries(sl_entries)
591+
self.make_sl_entries(sl_entries, allow_negative_stock=allow_negative_stock)
592592

593593
def get_sle_for_source_warehouse(self, item_row):
594594
serial_and_batch_bundle = (

erpnext/stock/doctype/repost_item_valuation/repost_item_valuation.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -260,10 +260,10 @@ def recreate_stock_ledger_entries(self):
260260
"""Recreate Stock Ledger Entries for the transaction."""
261261
if self.based_on == "Transaction" and self.recreate_stock_ledgers:
262262
doc = frappe.get_doc(self.voucher_type, self.voucher_no)
263-
doc.docstatus = 2
264-
doc.update_stock_ledger(allow_negative_stock=True, via_landed_cost_voucher=True)
263+
doc.db_set("docstatus", 2)
264+
doc.update_stock_ledger(allow_negative_stock=True)
265265

266-
doc.docstatus = 1
266+
doc.db_set("docstatus", 1)
267267
doc.update_stock_ledger(allow_negative_stock=True)
268268

269269

erpnext/stock/doctype/stock_entry/stock_entry.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1347,7 +1347,7 @@ def validate_finished_goods(self):
13471347
)
13481348
)
13491349

1350-
def update_stock_ledger(self):
1350+
def update_stock_ledger(self, allow_negative_stock=False):
13511351
sl_entries = []
13521352
finished_item_row = self.get_finished_item_row()
13531353

@@ -1361,7 +1361,7 @@ def update_stock_ledger(self):
13611361
if self.docstatus == 2:
13621362
sl_entries.reverse()
13631363

1364-
self.make_sl_entries(sl_entries)
1364+
self.make_sl_entries(sl_entries, allow_negative_stock=allow_negative_stock)
13651365

13661366
def get_finished_item_row(self):
13671367
finished_item_row = None

erpnext/stock/doctype/stock_reconciliation/stock_reconciliation.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -663,7 +663,7 @@ def validate_reserved_stock(self) -> None:
663663
title=_("Stock Reservation"),
664664
)
665665

666-
def update_stock_ledger(self):
666+
def update_stock_ledger(self, allow_negative_stock=False):
667667
"""find difference between current and expected entries
668668
and create stock ledger entries based on the difference"""
669669
from erpnext.stock.stock_ledger import get_previous_sle
@@ -719,7 +719,11 @@ def update_stock_ledger(self):
719719
sl_entries.append(self.get_sle_for_items(row))
720720

721721
if sl_entries:
722-
allow_negative_stock = cint(frappe.db.get_single_value("Stock Settings", "allow_negative_stock"))
722+
if not allow_negative_stock:
723+
allow_negative_stock = cint(
724+
frappe.db.get_single_value("Stock Settings", "allow_negative_stock")
725+
)
726+
723727
self.make_sl_entries(sl_entries, allow_negative_stock=allow_negative_stock)
724728

725729
def make_adjustment_entry(self, row, sl_entries):

0 commit comments

Comments
 (0)