Merge pull request #48077 from mihir-kandoi/40957
fix: use set_query on sales_order link field in work order
This commit is contained in:
@@ -101,6 +101,17 @@ frappe.ui.form.on("Work Order", {
|
||||
};
|
||||
});
|
||||
|
||||
frm.set_query("sales_order", function () {
|
||||
if (frm.doc.production_item) {
|
||||
return {
|
||||
query: "erpnext.manufacturing.doctype.work_order.work_order.query_sales_order",
|
||||
filters: {
|
||||
production_item: frm.doc.production_item,
|
||||
},
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
// formatter for work order operation
|
||||
frm.set_indicator_formatter("operation", function (doc) {
|
||||
return frm.doc.qty == doc.completed_qty ? "green" : "orange";
|
||||
@@ -506,7 +517,6 @@ frappe.ui.form.on("Work Order", {
|
||||
callback: function (r) {
|
||||
if (r.message) {
|
||||
frm.set_value("sales_order", "");
|
||||
frm.trigger("set_sales_order");
|
||||
erpnext.in_production_item_onchange = true;
|
||||
|
||||
$.each(
|
||||
@@ -568,23 +578,6 @@ frappe.ui.form.on("Work Order", {
|
||||
frm.toggle_reqd("transfer_material_against", frm.doc.operations && frm.doc.operations.length > 0);
|
||||
},
|
||||
|
||||
set_sales_order: function (frm) {
|
||||
if (frm.doc.production_item) {
|
||||
frappe.call({
|
||||
method: "erpnext.manufacturing.doctype.work_order.work_order.query_sales_order",
|
||||
args: { production_item: frm.doc.production_item },
|
||||
callback: function (r) {
|
||||
frm.set_query("sales_order", function () {
|
||||
erpnext.in_production_item_onchange = true;
|
||||
return {
|
||||
filters: [["Sales Order", "name", "in", r.message]],
|
||||
};
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
additional_operating_cost: function (frm) {
|
||||
erpnext.work_order.calculate_cost(frm.doc);
|
||||
erpnext.work_order.calculate_total_cost(frm);
|
||||
|
||||
@@ -2004,17 +2004,19 @@ def stop_unstop(work_order, status):
|
||||
|
||||
|
||||
@frappe.whitelist()
|
||||
def query_sales_order(production_item: str) -> list[str]:
|
||||
@frappe.validate_and_sanitize_search_inputs
|
||||
def query_sales_order(doctype, txt, searchfield, start, page_len, filters) -> list[str]:
|
||||
return frappe.get_list(
|
||||
"Sales Order",
|
||||
fields=["name"],
|
||||
filters=[
|
||||
["Sales Order", "docstatus", "=", 1],
|
||||
],
|
||||
or_filters=[
|
||||
["Sales Order Item", "item_code", "=", production_item],
|
||||
["Packed Item", "item_code", "=", production_item],
|
||||
["Sales Order Item", "item_code", "=", filters.get("production_item")],
|
||||
["Packed Item", "item_code", "=", filters.get("production_item")],
|
||||
],
|
||||
pluck="name",
|
||||
as_list=True,
|
||||
distinct=True,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user