From 0a1533446495f27445afbcb9d58c30d4d31e7b20 Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Mon, 31 Jan 2022 14:10:42 +0530 Subject: [PATCH] fix: update reserved qty for production/ s/c --- .../v13_0/add_bin_unique_constraint.py | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/erpnext/patches/v13_0/add_bin_unique_constraint.py b/erpnext/patches/v13_0/add_bin_unique_constraint.py index 979fcf5a4f83..57fbaae9d8dd 100644 --- a/erpnext/patches/v13_0/add_bin_unique_constraint.py +++ b/erpnext/patches/v13_0/add_bin_unique_constraint.py @@ -6,8 +6,8 @@ get_ordered_qty, get_planned_qty, get_reserved_qty, - update_bin_qty, ) +from erpnext.stock.utils import get_bin def execute(): @@ -32,10 +32,12 @@ def delete_and_patch_duplicate_bins(): """, as_dict=1) for duplicate_bin in duplicate_bins: + item_code = duplicate_bin.item_code + warehouse = duplicate_bin.warehouse existing_bins = frappe.get_list("Bin", filters={ - "item_code": duplicate_bin.item_code, - "warehouse": duplicate_bin.warehouse + "item_code": item_code, + "warehouse": warehouse }, fields=["name"], order_by="creation",) @@ -47,11 +49,15 @@ def delete_and_patch_duplicate_bins(): frappe.delete_doc("Bin", broken_bin.name) qty_dict = { - "reserved_qty": get_reserved_qty(duplicate_bin.item_code, duplicate_bin.warehouse), - "indented_qty": get_indented_qty(duplicate_bin.item_code, duplicate_bin.warehouse), - "ordered_qty": get_ordered_qty(duplicate_bin.item_code, duplicate_bin.warehouse), - "planned_qty": get_planned_qty(duplicate_bin.item_code, duplicate_bin.warehouse), - "actual_qty": get_balance_qty_from_sle(duplicate_bin.item_code, duplicate_bin.warehouse) + "reserved_qty": get_reserved_qty(item_code, warehouse), + "indented_qty": get_indented_qty(item_code, warehouse), + "ordered_qty": get_ordered_qty(item_code, warehouse), + "planned_qty": get_planned_qty(item_code, warehouse), + "actual_qty": get_balance_qty_from_sle(item_code, warehouse) } - update_bin_qty(duplicate_bin.item_code, duplicate_bin.warehouse, qty_dict) + bin = get_bin(item_code, warehouse) + bin.update(qty_dict) + bin.update_reserved_qty_for_production() + bin.update_reserved_qty_for_sub_contracting() + bin.db_update()