fix: preserve original operation idx in manually created Job Cards

The Create Job Card dialog on Work Order lists only pending operations,
so the row idx sent to make_job_card is the dialog's position, not the
Work Order Operation idx. create_job_card stamped that dialog idx into
operation_row_id, and get_required_items then matched raw materials of
whichever operation held that idx originally.

Resolve idx server-side from the Work Order Operation row that
get_operation_details already looks up by name.

Fixes https://github.com/frappe/erpnext/issues/57985
This commit is contained in:
Mihir Kandoi
2026-08-11 14:08:20 +05:30
parent 2764ebe686
commit fee003a82d

View File

@@ -2825,6 +2825,7 @@ def get_operation_details(name, work_order, parent_bom):
for row in work_order.operations: for row in work_order.operations:
if row.name == name: if row.name == name:
return { return {
"idx": row.idx,
"workstation": row.workstation, "workstation": row.workstation,
"workstation_type": row.workstation_type, "workstation_type": row.workstation_type,
"source_warehouse": row.source_warehouse, "source_warehouse": row.source_warehouse,