From 40a6b5cefef6abba086f06fff78e919f5f779bbc Mon Sep 17 00:00:00 2001 From: s-aga-r Date: Fri, 25 Aug 2023 09:35:29 +0530 Subject: [PATCH] fix: don't recalculate rate for scrap items --- .../subcontracting_receipt.py | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py index 07f70d11887..9bf21030b45 100644 --- a/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py +++ b/erpnext/subcontracting/doctype/subcontracting_receipt/subcontracting_receipt.py @@ -171,6 +171,7 @@ class SubcontractingReceipt(SubcontractingController): "rejected_warehouse": self.rejected_warehouse, "service_cost_per_qty": 0, "reference_name": item.name, + "recalculate_rate": 0, }, ) @@ -239,23 +240,24 @@ class SubcontractingReceipt(SubcontractingController): total_qty = total_amount = 0 for item in self.items: - if item.qty and not item.is_scrap_item: - if item.name in rm_cost_map: - item.rm_supp_cost = rm_cost_map[item.name] - item.rm_cost_per_qty = item.rm_supp_cost / item.qty - rm_cost_map.pop(item.name) + if not item.is_scrap_item: + if item.qty: + if item.name in rm_cost_map: + item.rm_supp_cost = rm_cost_map[item.name] + item.rm_cost_per_qty = item.rm_supp_cost / item.qty + rm_cost_map.pop(item.name) - if item.name in scrap_cost_map: - item.scrap_cost_per_qty = scrap_cost_map[item.name] / item.qty - scrap_cost_map.pop(item.name) + if item.name in scrap_cost_map: + item.scrap_cost_per_qty = scrap_cost_map[item.name] / item.qty + scrap_cost_map.pop(item.name) - if item.recalculate_rate: - item.rate = ( - flt(item.rm_cost_per_qty) - + flt(item.service_cost_per_qty) - + flt(item.additional_cost_per_qty) - - flt(item.scrap_cost_per_qty) - ) + if item.recalculate_rate: + item.rate = ( + flt(item.rm_cost_per_qty) + + flt(item.service_cost_per_qty) + + flt(item.additional_cost_per_qty) + - flt(item.scrap_cost_per_qty) + ) item.received_qty = flt(item.qty) + flt(item.rejected_qty) item.amount = flt(item.qty) * flt(item.rate)