Merge pull request #32971 from s-aga-r/revert-32867-fix/scr/rejected-qty

Revert "fix: get `consumed_qty` based on `received_qty` in SCR"
This commit is contained in:
Sagar Sharma 2022-11-15 15:17:15 +05:30 committed by GitHub
commit 6f2989c7f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 21 deletions

View File

@ -100,7 +100,7 @@ class SubcontractingController(StockController):
and self._doc_before_save
):
for row in self._doc_before_save.get("items"):
item_dict[row.name] = (row.item_code, row.received_qty or row.qty)
item_dict[row.name] = (row.item_code, row.qty)
return item_dict
@ -118,9 +118,7 @@ class SubcontractingController(StockController):
for row in self.items:
self.__reference_name.append(row.name)
if (row.name not in item_dict) or (row.item_code, row.received_qty or row.qty) != item_dict[
row.name
]:
if (row.name not in item_dict) or (row.item_code, row.qty) != item_dict[row.name]:
self.__changed_name.append(row.name)
if item_dict.get(row.name):
@ -463,13 +461,12 @@ class SubcontractingController(StockController):
def __get_qty_based_on_material_transfer(self, item_row, transfer_item):
key = (item_row.item_code, item_row.get(self.subcontract_data.order_field))
item_qty = item_row.received_qty or item_row.qty
if self.qty_to_be_received.get(key) == item_qty:
if self.qty_to_be_received == item_row.qty:
return transfer_item.qty
if self.qty_to_be_received:
qty = (flt(item_qty) * flt(transfer_item.qty)) / flt(self.qty_to_be_received.get(key, 0))
qty = (flt(item_row.qty) * flt(transfer_item.qty)) / flt(self.qty_to_be_received.get(key, 0))
transfer_item.item_details.required_qty = transfer_item.qty
if transfer_item.serial_no or frappe.get_cached_value(
@ -494,11 +491,7 @@ class SubcontractingController(StockController):
for bom_item in self.__get_materials_from_bom(
row.item_code, row.bom, row.get("include_exploded_items")
):
qty = (
flt(bom_item.qty_consumed_per_unit)
* flt(row.received_qty or row.qty)
* row.conversion_factor
)
qty = flt(bom_item.qty_consumed_per_unit) * flt(row.qty) * row.conversion_factor
bom_item.main_item_code = row.item_code
self.__update_reserve_warehouse(bom_item, row)
self.__set_alternative_item(bom_item)

View File

@ -58,7 +58,6 @@ class SubcontractingReceipt(SubcontractingController):
def before_validate(self):
super(SubcontractingReceipt, self).before_validate()
self.set_items_bom()
self.set_received_qty()
self.set_items_cost_center()
self.set_items_expense_account()
@ -213,10 +212,6 @@ class SubcontractingReceipt(SubcontractingController):
"bom",
)
def set_received_qty(self):
for item in self.items:
item.received_qty = flt(item.qty) + flt(item.rejected_qty)
def set_items_cost_center(self):
if self.company:
cost_center = frappe.get_cached_value("Company", self.company, "cost_center")

View File

@ -515,17 +515,18 @@ class TestSubcontractingReceipt(FrappeTestCase):
scr.items[0].rejected_qty = 3
scr.save()
# consumed_qty should be ((received_qty) * (transfered_qty / qty)) = ((5 + 3) * (20 / 10)) = 16
self.assertEqual(scr.supplied_items[0].consumed_qty, 16)
# consumed_qty should be (accepted_qty * (transfered_qty / qty)) = (5 * (20 / 10)) = 10
self.assertEqual(scr.supplied_items[0].consumed_qty, 10)
# Set Backflush Based On as "BOM"
set_backflush_based_on("BOM")
scr.items[0].qty = 6 # Accepted Qty
scr.items[0].rejected_qty = 4
scr.save()
# consumed_qty should be ((received_qty) * (qty_consumed_per_unit)) = ((5 + 4) * (1)) = 9
self.assertEqual(scr.supplied_items[0].consumed_qty, 9)
# consumed_qty should be (accepted_qty * qty_consumed_per_unit) = (6 * 1) = 6
self.assertEqual(scr.supplied_items[0].consumed_qty, 6)
def make_return_subcontracting_receipt(**args):