mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-13 09:43:49 +00:00
fix(subcontracting): include item bom in supplied items grouping key
(cherry picked from commit 0d372a62a1)
This commit is contained in:
@@ -313,10 +313,10 @@ class SubcontractingController(StockController):
|
|||||||
):
|
):
|
||||||
for row in frappe.get_all(
|
for row in frappe.get_all(
|
||||||
f"{self.subcontract_data.order_doctype} Item",
|
f"{self.subcontract_data.order_doctype} Item",
|
||||||
fields=["item_code", {"SUB": ["qty", "received_qty"], "as": "qty"}, "parent", "name"],
|
fields=["item_code", {"SUB": ["qty", "received_qty"], "as": "qty"}, "parent", "bom"],
|
||||||
filters={"docstatus": 1, "parent": ("in", self.subcontract_orders)},
|
filters={"docstatus": 1, "parent": ("in", self.subcontract_orders)},
|
||||||
):
|
):
|
||||||
self.qty_to_be_received[(row.item_code, row.parent)] += row.qty
|
self.qty_to_be_received[(row.item_code, row.parent, row.bom)] += row.qty
|
||||||
|
|
||||||
def __get_transferred_items(self):
|
def __get_transferred_items(self):
|
||||||
se = frappe.qb.DocType("Stock Entry")
|
se = frappe.qb.DocType("Stock Entry")
|
||||||
@@ -923,13 +923,17 @@ class SubcontractingController(StockController):
|
|||||||
self.__set_serial_nos(item_row, rm_obj)
|
self.__set_serial_nos(item_row, rm_obj)
|
||||||
|
|
||||||
def __get_qty_based_on_material_transfer(self, item_row, transfer_item):
|
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))
|
key = (
|
||||||
|
item_row.item_code,
|
||||||
|
item_row.get(self.subcontract_data.order_field),
|
||||||
|
item_row.get("bom"),
|
||||||
|
)
|
||||||
|
|
||||||
if self.qty_to_be_received == item_row.qty:
|
if self.qty_to_be_received == item_row.qty:
|
||||||
return transfer_item.qty
|
return transfer_item.qty
|
||||||
|
|
||||||
if self.qty_to_be_received:
|
if self.qty_to_be_received.get(key):
|
||||||
qty = (flt(item_row.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))
|
||||||
transfer_item.item_details.required_qty = transfer_item.qty
|
transfer_item.item_details.required_qty = transfer_item.qty
|
||||||
|
|
||||||
if transfer_item.serial_no or frappe.get_cached_value(
|
if transfer_item.serial_no or frappe.get_cached_value(
|
||||||
@@ -978,7 +982,11 @@ class SubcontractingController(StockController):
|
|||||||
|
|
||||||
if self.qty_to_be_received:
|
if self.qty_to_be_received:
|
||||||
self.qty_to_be_received[
|
self.qty_to_be_received[
|
||||||
(row.item_code, row.get(self.subcontract_data.order_field))
|
(
|
||||||
|
row.item_code,
|
||||||
|
row.get(self.subcontract_data.order_field),
|
||||||
|
row.get("bom"),
|
||||||
|
)
|
||||||
] -= row.qty
|
] -= row.qty
|
||||||
|
|
||||||
def __set_rate_for_serial_and_batch_bundle(self):
|
def __set_rate_for_serial_and_batch_bundle(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user