mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-17 08:35:00 +00:00
fix: sort available batches based on expiry when merging SLEs with SABB and those without (backport #48471) (#48473)
* fix: sort available batches based on expiry Co-authored-by: Mihir Kandoi <kandoimihir@gmail.com>
This commit is contained in:
@@ -305,8 +305,18 @@ class TestBatch(FrappeTestCase):
|
||||
self.assertEqual(
|
||||
get_batch_qty(item_code="ITEM-BATCH-2", warehouse="_Test Warehouse - _TC"),
|
||||
[
|
||||
{"batch_no": "batch a", "qty": 90.0, "warehouse": "_Test Warehouse - _TC"},
|
||||
{"batch_no": "batch b", "qty": 90.0, "warehouse": "_Test Warehouse - _TC"},
|
||||
{
|
||||
"batch_no": "batch a",
|
||||
"qty": 90.0,
|
||||
"warehouse": "_Test Warehouse - _TC",
|
||||
"expiry_date": None,
|
||||
},
|
||||
{
|
||||
"batch_no": "batch b",
|
||||
"qty": 90.0,
|
||||
"warehouse": "_Test Warehouse - _TC",
|
||||
"expiry_date": None,
|
||||
},
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
@@ -2148,6 +2148,9 @@ def get_auto_batch_nos(kwargs):
|
||||
picked_batches,
|
||||
)
|
||||
|
||||
if kwargs.based_on == "Expiry":
|
||||
available_batches = sorted(available_batches, key=lambda x: (x.expiry_date or "9999-12-31"))
|
||||
|
||||
if not kwargs.get("do_not_check_future_batches") and available_batches and kwargs.get("posting_date"):
|
||||
filter_zero_near_batches(available_batches, kwargs)
|
||||
|
||||
@@ -2247,6 +2250,7 @@ def get_available_batches(kwargs):
|
||||
batch_ledger.batch_no,
|
||||
batch_ledger.warehouse,
|
||||
Sum(batch_ledger.qty).as_("qty"),
|
||||
batch_table.expiry_date,
|
||||
)
|
||||
.where(batch_table.disabled == 0)
|
||||
.where(stock_ledger_entry.is_cancelled == 0)
|
||||
@@ -2537,6 +2541,7 @@ def get_stock_ledgers_batches(kwargs):
|
||||
stock_ledger_entry.item_code,
|
||||
Sum(stock_ledger_entry.actual_qty).as_("qty"),
|
||||
stock_ledger_entry.batch_no,
|
||||
batch_table.expiry_date,
|
||||
)
|
||||
.where((stock_ledger_entry.is_cancelled == 0) & (stock_ledger_entry.batch_no.isnotnull()))
|
||||
.groupby(stock_ledger_entry.batch_no, stock_ledger_entry.warehouse)
|
||||
|
||||
Reference in New Issue
Block a user