fix(stock): ignore reserved stock while calculating batch qty

This commit is contained in:
Sudharsanan11
2025-12-19 12:11:04 +05:30
parent fdebf25ca7
commit b23c6e2687
2 changed files with 13 additions and 2 deletions

View File

@@ -159,8 +159,13 @@ class Batch(Document):
@frappe.whitelist() @frappe.whitelist()
def recalculate_batch_qty(self): def recalculate_batch_qty(self):
batches = get_batch_qty( batches = get_batch_qty(
batch_no=self.name, item_code=self.item, for_stock_levels=True, consider_negative_batches=True batch_no=self.name,
item_code=self.item,
for_stock_levels=True,
consider_negative_batches=True,
ignore_reserved_stock=True,
) )
batch_qty = 0.0 batch_qty = 0.0
if batches: if batches:
for row in batches: for row in batches:
@@ -241,6 +246,7 @@ def get_batch_qty(
for_stock_levels=False, for_stock_levels=False,
consider_negative_batches=False, consider_negative_batches=False,
do_not_check_future_batches=False, do_not_check_future_batches=False,
ignore_reserved_stock=False,
): ):
"""Returns batch actual qty if warehouse is passed, """Returns batch actual qty if warehouse is passed,
or returns dict of qty by warehouse if warehouse is None or returns dict of qty by warehouse if warehouse is None
@@ -269,6 +275,7 @@ def get_batch_qty(
"for_stock_levels": for_stock_levels, "for_stock_levels": for_stock_levels,
"consider_negative_batches": consider_negative_batches, "consider_negative_batches": consider_negative_batches,
"do_not_check_future_batches": do_not_check_future_batches, "do_not_check_future_batches": do_not_check_future_batches,
"ignore_reserved_stock": ignore_reserved_stock,
} }
) )

View File

@@ -2495,7 +2495,11 @@ def get_auto_batch_nos(kwargs):
available_batches = get_available_batches(kwargs) available_batches = get_available_batches(kwargs)
stock_ledgers_batches = get_stock_ledgers_batches(kwargs) stock_ledgers_batches = get_stock_ledgers_batches(kwargs)
pos_invoice_batches = get_reserved_batches_for_pos(kwargs) pos_invoice_batches = get_reserved_batches_for_pos(kwargs)
sre_reserved_batches = get_reserved_batches_for_sre(kwargs)
sre_reserved_batches = frappe._dict()
if not kwargs.ignore_reserved_stock:
sre_reserved_batches = get_reserved_batches_for_sre(kwargs)
if kwargs.against_sales_order and only_consider_batches: if kwargs.against_sales_order and only_consider_batches:
kwargs.batch_no = kwargs.warehouse = None kwargs.batch_no = kwargs.warehouse = None