perf: optimize code for subcontracting

This commit is contained in:
Mihir Kandoi
2025-07-15 11:55:03 +05:30
parent 896b21e78b
commit bc6f69ad54
3 changed files with 13 additions and 9 deletions

View File

@@ -236,8 +236,11 @@ class SubcontractingOrder(SubcontractingController):
return flt(query[0][0]) if query else 0
def update_reserved_qty_for_subcontracting(self):
def update_reserved_qty_for_subcontracting(self, sco_item_rows=None):
for item in self.supplied_items:
if sco_item_rows and item.reference_name not in sco_item_rows:
continue
if item.rm_item_code:
stock_bin = get_bin(item.rm_item_code, item.reserve_warehouse)
stock_bin.update_reserved_qty_for_sub_contracting()
@@ -299,7 +302,7 @@ class SubcontractingOrder(SubcontractingController):
self.set_missing_values()
def update_status(self, status=None, update_modified=True):
def update_status(self, status=None, update_modified=True, update_bin=True):
if self.status == "Closed" and self.status != status:
check_on_hold_or_closed_status("Purchase Order", self.purchase_order)
@@ -329,8 +332,9 @@ class SubcontractingOrder(SubcontractingController):
self.db_set("status", status, update_modified=update_modified)
self.update_requested_qty()
self.update_ordered_qty_for_subcontracting()
self.update_reserved_qty_for_subcontracting()
if update_bin:
self.update_ordered_qty_for_subcontracting()
self.update_reserved_qty_for_subcontracting()
def update_subcontracted_quantity_in_po(self, cancel=False):
for service_item in self.service_items:

View File

@@ -153,7 +153,7 @@ class SubcontractingReceipt(SubcontractingController):
self.validate_available_qty_for_consumption()
self.update_status_updater_args()
self.update_prevdoc_status()
self.set_subcontracting_order_status()
self.set_subcontracting_order_status(update_bin=False)
self.set_consumed_qty_in_subcontract_order()
for table_name in ["items", "supplied_items"]:
@@ -181,7 +181,7 @@ class SubcontractingReceipt(SubcontractingController):
self.update_status_updater_args()
self.update_prevdoc_status()
self.set_consumed_qty_in_subcontract_order()
self.set_subcontracting_order_status()
self.set_subcontracting_order_status(update_bin=False)
self.update_stock_ledger()
self.make_gl_entries_on_cancel()
self.repost_future_sle_and_gle()