fix: consider per_ordered instead of per_billed when creating PO from MR

(cherry picked from commit 5a524854de)

# Conflicts:
#	erpnext/stock/doctype/material_request/material_request.js
This commit is contained in:
Mihir Kandoi
2025-04-14 12:36:59 +05:30
committed by Mergify
parent bb6d6c3edf
commit be154a469f
2 changed files with 19 additions and 4 deletions

View File

@@ -107,6 +107,7 @@ 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"));
<<<<<<< HEAD
if (frm.doc.material_request_type === "Purchase") {
frm.add_custom_button(
@@ -115,6 +116,8 @@ frappe.ui.form.on("Material Request", {
__("Create")
);
}
=======
>>>>>>> 5a524854de (fix: consider per_ordered instead of per_billed when creating PO from MR)
}
if (flt(frm.doc.per_ordered, precision) < 100) {
@@ -158,14 +161,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),
@@ -181,6 +188,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"));
}
}

View File

@@ -379,7 +379,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()):
@@ -432,7 +432,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