mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-13 02:01:21 +00:00
refactor: optimize picked quantity updates using bulk_update
(cherry picked from commit 5f986e4032)
This commit is contained in:
committed by
Mergify
parent
c7c938c259
commit
fd718833b1
@@ -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 = []
|
||||||
|
|||||||
Reference in New Issue
Block a user