fix: SO ordered qty on PO item removal (#38378)
* fix: update ordered_qty for SO when PO items removed * refactor: use cached value --------- Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
This commit is contained in:
committed by
GitHub
parent
5952cfa673
commit
9087e1443e
@@ -608,6 +608,20 @@ class PurchaseOrder(BuyingController):
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def update_ordered_qty_in_so_for_removed_items(self, removed_items):
|
||||||
|
"""
|
||||||
|
Updates ordered_qty in linked SO when item rows are removed using Update Items
|
||||||
|
"""
|
||||||
|
if not self.is_against_so():
|
||||||
|
return
|
||||||
|
for item in removed_items:
|
||||||
|
prev_ordered_qty = frappe.get_cached_value(
|
||||||
|
"Sales Order Item", item.get("sales_order_item"), "ordered_qty"
|
||||||
|
)
|
||||||
|
frappe.db.set_value(
|
||||||
|
"Sales Order Item", item.get("sales_order_item"), "ordered_qty", prev_ordered_qty - item.qty
|
||||||
|
)
|
||||||
|
|
||||||
def auto_create_subcontracting_order(self):
|
def auto_create_subcontracting_order(self):
|
||||||
if self.is_subcontracted and not self.is_old_subcontracting_flow:
|
if self.is_subcontracted and not self.is_old_subcontracting_flow:
|
||||||
if frappe.db.get_single_value("Buying Settings", "auto_create_subcontracting_order"):
|
if frappe.db.get_single_value("Buying Settings", "auto_create_subcontracting_order"):
|
||||||
|
|||||||
@@ -2958,6 +2958,9 @@ def validate_and_delete_children(parent, data) -> bool:
|
|||||||
d.cancel()
|
d.cancel()
|
||||||
d.delete()
|
d.delete()
|
||||||
|
|
||||||
|
if parent.doctype == "Purchase Order":
|
||||||
|
parent.update_ordered_qty_in_so_for_removed_items(deleted_children)
|
||||||
|
|
||||||
# need to update ordered qty in Material Request first
|
# need to update ordered qty in Material Request first
|
||||||
# bin uses Material Request Items to recalculate & update
|
# bin uses Material Request Items to recalculate & update
|
||||||
parent.update_prevdoc_status()
|
parent.update_prevdoc_status()
|
||||||
|
|||||||
Reference in New Issue
Block a user