fix: rejected qty not outward-ed in SCR

This commit is contained in:
Mihir Kandoi
2025-12-15 11:26:36 +05:30
parent ae339f69f4
commit c287665033
2 changed files with 11 additions and 4 deletions

View File

@@ -221,7 +221,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.qty)
item_dict[row.name] = (row.item_code, row.qty + (row.get("rejected_qty") or 0))
return item_dict
@@ -245,7 +245,10 @@ 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.qty) != item_dict[row.name]:
if (row.name not in item_dict) or (
row.item_code,
row.qty + (row.get("rejected_qty") or 0),
) != item_dict[row.name]:
self.__changed_name.append(row.name)
if item_dict.get(row.name):
@@ -934,7 +937,11 @@ 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.qty) * row.conversion_factor
qty = (
flt(bom_item.qty_consumed_per_unit)
* flt(row.qty + (row.get("rejected_qty") or 0))
* 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

@@ -600,7 +600,7 @@ class TestSubcontractingReceipt(IntegrationTestCase):
scr.save()
# consumed_qty should be (accepted_qty * qty_consumed_per_unit) = (6 * 1) = 6
self.assertEqual(scr.supplied_items[0].consumed_qty, 6)
self.assertEqual(scr.supplied_items[0].consumed_qty, 10)
# Do not transfer materials to the supplier warehouse and check whether system allows to consumed directly from the supplier's warehouse
sco = get_subcontracting_order(service_items=service_items)