Merge pull request #47050 from mihir-kandoi/st35798

fix: consider per_ordered instead of per_billed when creating PO from MR
This commit is contained in:
rohitwaghchaure
2025-04-16 16:28:00 +05:30
committed by GitHub
2 changed files with 16 additions and 18 deletions

View File

@@ -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"));
}
}

View File

@@ -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