refactor: optimize picked quantity updates using bulk_update

(cherry picked from commit 5f986e4032)
This commit is contained in:
Abdeali Chharchhoda
2025-12-01 13:12:23 +05:30
committed by Mergify
parent c7c938c259
commit fd718833b1

View File

@@ -383,35 +383,23 @@ class PickList(TransactionBase):
picked_items = get_picked_items_qty(packed_items, contains_packed_items=True) picked_items = get_picked_items_qty(packed_items, contains_packed_items=True)
self.validate_picked_qty(picked_items) self.validate_picked_qty(picked_items)
picked_qty = frappe._dict() doc_updates = {}
for d in picked_items: for d in picked_items:
picked_qty[d.product_bundle_item] = d.picked_qty doc_updates[d.product_bundle_item] = {"picked_qty": flt(d.picked_qty)}
for packed_item in packed_items: if doc_updates:
frappe.db.set_value( frappe.db.bulk_update("Packed Item", doc_updates, update_modified=False)
"Packed Item",
packed_item,
"picked_qty",
flt(picked_qty.get(packed_item)),
update_modified=False,
)
def update_sales_order_item_qty(self, so_items): def update_sales_order_item_qty(self, so_items):
picked_items = get_picked_items_qty(so_items) picked_items = get_picked_items_qty(so_items)
self.validate_picked_qty(picked_items) self.validate_picked_qty(picked_items)
picked_qty = frappe._dict() doc_updates = {}
for d in picked_items: for d in picked_items:
picked_qty[d.sales_order_item] = d.picked_qty doc_updates[d.sales_order_item] = {"picked_qty": flt(d.picked_qty)}
for so_item in so_items: if doc_updates:
frappe.db.set_value( frappe.db.bulk_update("Sales Order Item", doc_updates, update_modified=False)
"Sales Order Item",
so_item,
"picked_qty",
flt(picked_qty.get(so_item)),
update_modified=False,
)
def update_sales_order_picking_status(self) -> None: def update_sales_order_picking_status(self) -> None:
sales_orders = [] sales_orders = []