diff --git a/erpnext/stock/doctype/material_request/material_request.js b/erpnext/stock/doctype/material_request/material_request.js index e4d2b8a7c46..abf4820d544 100644 --- a/erpnext/stock/doctype/material_request/material_request.js +++ b/erpnext/stock/doctype/material_request/material_request.js @@ -115,20 +115,6 @@ frappe.ui.form.on("Material Request", { if (flt(frm.doc.per_received, precision) < 100) { frm.add_custom_button(__("Stop"), () => frm.events.update_status(frm, "Stopped")); - - if (frm.doc.material_request_type === "Purchase") { - frm.add_custom_button( - __("Purchase Order"), - () => frm.events.make_purchase_order(frm), - __("Create") - ); - } else if (frm.doc.material_request_type === "Subcontracting") { - frm.add_custom_button( - __("Subcontracted Purchase Order"), - () => frm.events.make_purchase_order(frm), - __("Create") - ); - } } if (flt(frm.doc.per_ordered, precision) < 100) { @@ -172,14 +158,18 @@ frappe.ui.form.on("Material Request", { } if (frm.doc.material_request_type === "Purchase") { + frm.add_custom_button( + __("Purchase Order"), + () => frm.events.make_purchase_order(frm), + __("Create") + ); + frm.add_custom_button( __("Request for Quotation"), () => frm.events.make_request_for_quotation(frm), __("Create") ); - } - if (frm.doc.material_request_type === "Purchase") { frm.add_custom_button( __("Supplier Quotation"), () => frm.events.make_supplier_quotation(frm), @@ -195,6 +185,14 @@ frappe.ui.form.on("Material Request", { ); } + if (frm.doc.material_request_type === "Subcontracting") { + frm.add_custom_button( + __("Subcontracted Purchase Order"), + () => frm.events.make_purchase_order(frm), + __("Create") + ); + } + frm.page.set_inner_btn_group_as_primary(__("Create")); } } diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index 83d2a453948..1ae37d212c0 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -413,7 +413,7 @@ def set_missing_values(source, target_doc): def update_item(obj, target, source_parent): target.conversion_factor = obj.conversion_factor - qty = obj.received_qty or obj.ordered_qty + qty = obj.ordered_qty or obj.received_qty target.qty = flt(flt(obj.stock_qty) - flt(qty)) / target.conversion_factor target.stock_qty = target.qty * target.conversion_factor if getdate(target.schedule_date) < getdate(nowdate()): @@ -489,7 +489,7 @@ def make_purchase_order(source_name, target_doc=None, args=None): filtered_items = args.get("filtered_children", []) child_filter = d.name in filtered_items if filtered_items else True - qty = d.received_qty or d.ordered_qty + qty = d.ordered_qty or d.received_qty return qty < d.stock_qty and child_filter