perf: dont run queries unnecessarily, improved filters (#41993)

* perf: dont run queries unnecessarily, improved filters

* perf: dont run query if `in` filter is empty
This commit is contained in:
Sagar Vora
2024-06-22 21:27:00 +05:30
committed by GitHub
parent fd7666a029
commit ac6d85aed6
2 changed files with 27 additions and 13 deletions

View File

@@ -294,16 +294,23 @@ class SubcontractingController(StockController):
receipt_items = {item.name: item.get(self.subcontract_data.order_field) for item in receipt_items}
consumed_materials = self.__get_consumed_items(doctype, receipt_items.keys())
voucher_nos = [d.voucher_no for d in consumed_materials if d.voucher_no]
voucher_bundle_data = get_voucher_wise_serial_batch_from_bundle(
voucher_no=voucher_nos,
is_outward=1,
get_subcontracted_item=("Subcontracting Receipt Supplied Item", "main_item_code"),
)
if return_consumed_items:
return (consumed_materials, receipt_items)
if not consumed_materials:
return
voucher_nos = [d.voucher_no for d in consumed_materials if d.voucher_no]
voucher_bundle_data = (
get_voucher_wise_serial_batch_from_bundle(
voucher_no=voucher_nos,
is_outward=1,
get_subcontracted_item=("Subcontracting Receipt Supplied Item", "main_item_code"),
)
if voucher_nos
else {}
)
for row in consumed_materials:
key = (row.rm_item_code, row.main_item_code, receipt_items.get(row.reference_name))
if not self.available_materials.get(key):
@@ -350,10 +357,14 @@ class SubcontractingController(StockController):
transferred_items = self.__get_transferred_items()
voucher_nos = [row.voucher_no for row in transferred_items]
voucher_bundle_data = get_voucher_wise_serial_batch_from_bundle(
voucher_no=voucher_nos,
is_outward=0,
get_subcontracted_item=("Stock Entry Detail", "subcontracted_item"),
voucher_bundle_data = (
get_voucher_wise_serial_batch_from_bundle(
voucher_no=voucher_nos,
is_outward=0,
get_subcontracted_item=("Stock Entry Detail", "subcontracted_item"),
)
if voucher_nos
else {}
)
for row in transferred_items: