fix: modify all SRE queries to consider new Closed status

This commit is contained in:
Mihir Kandoi
2025-08-08 15:10:43 +05:30
parent f9c797a402
commit 345ca405b0
2 changed files with 15 additions and 25 deletions

View File

@@ -2180,8 +2180,7 @@ def get_reserved_batches_for_sre(kwargs) -> dict:
.where(
(sre.docstatus == 1)
& (sre.item_code == kwargs.item_code)
& (sre.reserved_qty >= sre.delivered_qty)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
& (sre.reservation_based_on == "Serial and Batch")
)
.groupby(sb_entry.batch_no, sre.warehouse)

View File

@@ -500,7 +500,7 @@ class StockReservationEntry(Document):
status = "Delivered"
elif self.delivered_qty and self.delivered_qty < self.reserved_qty:
status = "Partially Delivered"
elif self.reserved_qty == self.voucher_qty:
elif self.reserved_qty >= self.voucher_qty:
status = "Reserved"
else:
status = "Partially Reserved"
@@ -699,8 +699,7 @@ def get_available_qty_to_reserve(
(sre.docstatus == 1)
& (sre.item_code == item_code)
& (sre.warehouse == warehouse)
& (sre.reserved_qty >= sre.delivered_qty)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
)
)
@@ -750,8 +749,7 @@ def get_available_serial_nos_to_reserve(
(sre.docstatus == 1)
& (sre.item_code == item_code)
& (sre.warehouse == warehouse)
& (sre.reserved_qty >= sre.delivered_qty)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
& (sre.reservation_based_on == "Serial and Batch")
)
)
@@ -781,11 +779,7 @@ def get_sre_reserved_qty_for_item_and_warehouse(item_code: str, warehouse: str |
"reserved_qty"
)
)
.where(
(sre.docstatus == 1)
& (sre.item_code == item_code)
& (sre.status.notin(["Delivered", "Cancelled"]))
)
.where((sre.docstatus == 1) & (sre.item_code == item_code) & (sre.delivered_qty < sre.reserved_qty))
.groupby(sre.item_code, sre.warehouse)
)
@@ -841,7 +835,7 @@ def get_sre_reserved_qty_details_for_voucher(voucher_type: str, voucher_no: str)
(sre.docstatus == 1)
& (sre.voucher_type == voucher_type)
& (sre.voucher_no == voucher_no)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
)
.groupby(sre.voucher_detail_no)
).run(as_list=True)
@@ -863,7 +857,7 @@ def get_sre_reserved_warehouses_for_voucher(
(sre.docstatus == 1)
& (sre.voucher_type == voucher_type)
& (sre.voucher_no == voucher_no)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
)
.orderby(sre.creation)
)
@@ -904,7 +898,7 @@ def get_sre_reserved_qty_for_voucher_detail_no(
& (sre.voucher_type == voucher_type)
& (sre.voucher_no == voucher_no)
& (sre.voucher_detail_no == voucher_detail_no)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
)
)
@@ -938,8 +932,7 @@ def get_sre_reserved_serial_nos_details(
(sre.docstatus == 1)
& (sre.item_code == item_code)
& (sre.warehouse == warehouse)
& (sre.reserved_qty > sre.delivered_qty)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
& (sre.reservation_based_on == "Serial and Batch")
)
.orderby(sb_entry.creation)
@@ -969,7 +962,7 @@ def get_sre_reserved_batch_nos_details(item_code: str, warehouse: str, batch_nos
& (sre.item_code == item_code)
& (sre.warehouse == warehouse)
& ((sre.reserved_qty - sre.delivered_qty) > 0)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
& (sre.reservation_based_on == "Serial and Batch")
)
.groupby(sb_entry.batch_no)
@@ -1004,8 +997,7 @@ def get_sre_details_for_voucher(voucher_type: str, voucher_no: str) -> list[dict
(sre.docstatus == 1)
& (sre.voucher_type == voucher_type)
& (sre.voucher_no == voucher_no)
& (sre.reserved_qty > sre.delivered_qty)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
)
.orderby(sre.creation)
).run(as_dict=True)
@@ -1026,7 +1018,7 @@ def get_serial_batch_entries_for_voucher(sre_name: str) -> list[dict]:
sb_entry.batch_no,
(sb_entry.qty - sb_entry.delivered_qty).as_("qty"),
)
.where((sre.docstatus == 1) & (sre.name == sre_name) & (sre.status.notin(["Delivered", "Cancelled"])))
.where((sre.docstatus == 1) & (sre.name == sre_name) & (sre.delivered_qty < sre.reserved_qty))
.where(sb_entry.qty > sb_entry.delivered_qty)
.orderby(sb_entry.creation)
).run(as_dict=True)
@@ -1246,8 +1238,7 @@ class StockReservation:
(sre.docstatus == 1)
& (sre.item_code == item_code)
& (sre.warehouse == warehouse)
& (sre.reserved_qty >= sre.delivered_qty)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
)
)
@@ -1733,7 +1724,7 @@ def cancel_stock_reservation_entries(
(sre.docstatus == 1)
& (sre.from_voucher_type == from_voucher_type)
& (sre.from_voucher_no == from_voucher_no)
& (sre.status.notin(["Delivered", "Cancelled"]))
& (sre.delivered_qty < sre.reserved_qty)
)
.orderby(sre.creation)
)
@@ -1789,7 +1780,7 @@ def get_stock_reservation_entries_for_voucher(
query = query.where(sre.voucher_detail_no == voucher_detail_no)
if ignore_status:
query = query.where(sre.status.notin(["Delivered", "Cancelled"]))
query = query.where(sre.delivered_qty < sre.reserved_qty)
return query.run(as_dict=True)