perf: Duplicate queries for UOM (#35744)

This query repeats for every item, UOMs rarely if ever change
This commit is contained in:
Ankush Menat 2023-06-16 16:38:30 +05:30 committed by GitHub
parent 433489a9e6
commit 29da1db516
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -40,7 +40,7 @@ class PickList(Document):
for location in self.get("locations"):
if (
location.sales_order
and frappe.db.get_value("Sales Order", location.sales_order, "per_picked") == 100
and frappe.db.get_value("Sales Order", location.sales_order, "per_picked", cache=True) == 100
):
frappe.throw(
_("Row #{}: item {} has been picked already.").format(location.idx, location.item_code)
@ -498,7 +498,7 @@ def get_items_with_location_and_quantity(item_doc, item_location_map, docstatus)
)
qty = stock_qty / (item_doc.conversion_factor or 1)
uom_must_be_whole_number = frappe.db.get_value("UOM", item_doc.uom, "must_be_whole_number")
uom_must_be_whole_number = frappe.get_cached_value("UOM", item_doc.uom, "must_be_whole_number")
if uom_must_be_whole_number:
qty = floor(qty)
stock_qty = qty * item_doc.conversion_factor