mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-20 13:39:18 +00:00
fix: incorrect required qty for subcontracting purchase receipt (#20288)
This commit is contained in:
committed by
Nabin Hait
parent
4872417f86
commit
b65b525c44
@@ -261,7 +261,7 @@ class BuyingController(StockController):
|
|||||||
|
|
||||||
non_stock_items = get_non_stock_items(item.purchase_order, item.item_code)
|
non_stock_items = get_non_stock_items(item.purchase_order, item.item_code)
|
||||||
|
|
||||||
item_key = '{}{}'.format(item.item_code, item.purchase_order)
|
item_key = '{}{}{}'.format(item.item_code, item.purchase_order, item.purchase_order_item)
|
||||||
|
|
||||||
fg_yet_to_be_received = qty_to_be_received_map.get(item_key)
|
fg_yet_to_be_received = qty_to_be_received_map.get(item_key)
|
||||||
|
|
||||||
@@ -269,7 +269,9 @@ class BuyingController(StockController):
|
|||||||
backflushed_batch_qty_map = get_backflushed_batch_qty_map(item.purchase_order, item.item_code)
|
backflushed_batch_qty_map = get_backflushed_batch_qty_map(item.purchase_order, item.item_code)
|
||||||
|
|
||||||
for raw_material in transferred_raw_materials + non_stock_items:
|
for raw_material in transferred_raw_materials + non_stock_items:
|
||||||
rm_item_key = '{}{}'.format(raw_material.rm_item_code, item.purchase_order)
|
rm_item_key = '{}{}{}'.format(raw_material.rm_item_code,
|
||||||
|
item.purchase_order, item.purchase_order_item)
|
||||||
|
|
||||||
raw_material_data = backflushed_raw_materials_map.get(rm_item_key, {})
|
raw_material_data = backflushed_raw_materials_map.get(rm_item_key, {})
|
||||||
|
|
||||||
consumed_qty = raw_material_data.get('qty', 0)
|
consumed_qty = raw_material_data.get('qty', 0)
|
||||||
@@ -815,7 +817,7 @@ def get_subcontracted_raw_materials_from_se(purchase_order, fg_item):
|
|||||||
def get_backflushed_subcontracted_raw_materials(purchase_orders):
|
def get_backflushed_subcontracted_raw_materials(purchase_orders):
|
||||||
common_query = """
|
common_query = """
|
||||||
SELECT
|
SELECT
|
||||||
CONCAT(prsi.rm_item_code, pri.purchase_order) AS item_key,
|
CONCAT(prsi.rm_item_code, pri.purchase_order, pri.purchase_order_item) AS item_key,
|
||||||
SUM(prsi.consumed_qty) AS qty,
|
SUM(prsi.consumed_qty) AS qty,
|
||||||
{serial_no_concat_syntax} AS serial_nos,
|
{serial_no_concat_syntax} AS serial_nos,
|
||||||
{batch_no_concat_syntax} AS batch_nos
|
{batch_no_concat_syntax} AS batch_nos
|
||||||
@@ -826,7 +828,7 @@ def get_backflushed_subcontracted_raw_materials(purchase_orders):
|
|||||||
AND pri.purchase_order IN %s
|
AND pri.purchase_order IN %s
|
||||||
AND pri.item_code = prsi.main_item_code
|
AND pri.item_code = prsi.main_item_code
|
||||||
AND pr.docstatus = 1
|
AND pr.docstatus = 1
|
||||||
GROUP BY prsi.rm_item_code, pri.purchase_order
|
GROUP BY prsi.rm_item_code, pri.purchase_order, pri.purchase_order_item
|
||||||
"""
|
"""
|
||||||
|
|
||||||
backflushed_raw_materials = frappe.db.multisql({
|
backflushed_raw_materials = frappe.db.multisql({
|
||||||
@@ -880,7 +882,7 @@ def validate_item_type(doc, fieldname, message):
|
|||||||
|
|
||||||
def get_qty_to_be_received(purchase_orders):
|
def get_qty_to_be_received(purchase_orders):
|
||||||
return frappe._dict(frappe.db.sql("""
|
return frappe._dict(frappe.db.sql("""
|
||||||
SELECT CONCAT(poi.`item_code`, poi.`parent`) AS item_key,
|
SELECT CONCAT(poi.`item_code`, poi.`parent`, poi.`name`) AS item_key,
|
||||||
SUM(poi.`qty`) - SUM(poi.`received_qty`) AS qty_to_be_received
|
SUM(poi.`qty`) - SUM(poi.`received_qty`) AS qty_to_be_received
|
||||||
FROM `tabPurchase Order Item` poi
|
FROM `tabPurchase Order Item` poi
|
||||||
WHERE
|
WHERE
|
||||||
|
|||||||
Reference in New Issue
Block a user