fix: add requested changes
This commit is contained in:
parent
c5b074269a
commit
1cdf5a0dba
erpnext
controllers
public/js/controllers
stock/doctype/stock_entry
@ -508,7 +508,7 @@ def make_quality_inspections(doctype, docname, items):
|
|||||||
inspections = []
|
inspections = []
|
||||||
|
|
||||||
for item in items:
|
for item in items:
|
||||||
if item.get("sample_size") > item.get("qty"):
|
if flt(item.get("sample_size")) > flt(item.get("qty")):
|
||||||
frappe.throw(_("{item_name}'s Sample Size ({sample_size}) cannot be greater than the Accepted Quantity ({accepted_quantity})").format(
|
frappe.throw(_("{item_name}'s Sample Size ({sample_size}) cannot be greater than the Accepted Quantity ({accepted_quantity})").format(
|
||||||
item_name=item.get("item_name"),
|
item_name=item.get("item_name"),
|
||||||
sample_size=item.get("sample_size"),
|
sample_size=item.get("sample_size"),
|
||||||
@ -523,14 +523,14 @@ def make_quality_inspections(doctype, docname, items):
|
|||||||
"reference_name": docname,
|
"reference_name": docname,
|
||||||
"item_code": item.get("item_code"),
|
"item_code": item.get("item_code"),
|
||||||
"description": item.get("description"),
|
"description": item.get("description"),
|
||||||
"sample_size": item.get("sample_size"),
|
"sample_size": flt(item.get("sample_size")),
|
||||||
"item_serial_no": item.get("serial_no").split("\n")[0] if item.get("serial_no") else None,
|
"item_serial_no": item.get("serial_no").split("\n")[0] if item.get("serial_no") else None,
|
||||||
"batch_no": item.get("batch_no")
|
"batch_no": item.get("batch_no")
|
||||||
}).insert()
|
}).insert()
|
||||||
quality_inspection.save()
|
quality_inspection.save()
|
||||||
inspections.append(quality_inspection)
|
inspections.append(quality_inspection.name)
|
||||||
|
|
||||||
return [get_link_to_form("Quality Inspection", inspection.name) for inspection in inspections]
|
return inspections
|
||||||
|
|
||||||
|
|
||||||
def is_reposting_pending():
|
def is_reposting_pending():
|
||||||
|
@ -2039,11 +2039,16 @@ erpnext.TransactionController = erpnext.taxes_and_totals.extend({
|
|||||||
},
|
},
|
||||||
freeze: true,
|
freeze: true,
|
||||||
callback: function (r) {
|
callback: function (r) {
|
||||||
if (r.message) {
|
if (r.message.length > 0) {
|
||||||
frappe.msgprint({
|
if (r.message.length === 1) {
|
||||||
message: __("Quality Inspections Created: {0}", [r.message.join(", ")]),
|
frappe.set_route("Form", "Quality Inspection", r.message[0]);
|
||||||
indicator: "green"
|
} else {
|
||||||
});
|
frappe.route_options = {
|
||||||
|
"reference_type": me.frm.doc.doctype,
|
||||||
|
"reference_name": me.frm.doc.name
|
||||||
|
};
|
||||||
|
frappe.set_route("List", "Quality Inspection");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
dialog.hide();
|
dialog.hide();
|
||||||
}
|
}
|
||||||
|
@ -115,6 +115,13 @@ frappe.ui.form.on('Stock Entry', {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!frm.is_new() && frm.doc.docstatus === 0) {
|
||||||
|
frm.add_custom_button(__("Quality Inspection(s)"), () => {
|
||||||
|
frm.trigger("make_quality_inspection");
|
||||||
|
}, __("Create"));
|
||||||
|
frm.page.set_inner_btn_group_as_primary(__('Create'));
|
||||||
|
}
|
||||||
|
|
||||||
let quality_inspection_field = frm.get_docfield("items", "quality_inspection");
|
let quality_inspection_field = frm.get_docfield("items", "quality_inspection");
|
||||||
quality_inspection_field.get_route_options_for_new_doc = function(row) {
|
quality_inspection_field.get_route_options_for_new_doc = function(row) {
|
||||||
if (frm.is_new()) return;
|
if (frm.is_new()) return;
|
||||||
@ -142,6 +149,129 @@ frappe.ui.form.on('Stock Entry', {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
make_quality_inspection: function (frm) {
|
||||||
|
let data = [];
|
||||||
|
const fields = [
|
||||||
|
{
|
||||||
|
label: "Items",
|
||||||
|
fieldtype: "Table",
|
||||||
|
fieldname: "items",
|
||||||
|
cannot_add_rows: true,
|
||||||
|
in_place_edit: true,
|
||||||
|
data: data,
|
||||||
|
get_data: () => {
|
||||||
|
return data;
|
||||||
|
},
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
fieldtype: "Data",
|
||||||
|
fieldname: "docname",
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldtype: "Read Only",
|
||||||
|
fieldname: "item_code",
|
||||||
|
label: __("Item Code"),
|
||||||
|
in_list_view: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldtype: "Read Only",
|
||||||
|
fieldname: "item_name",
|
||||||
|
label: __("Item Name"),
|
||||||
|
in_list_view: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldtype: "Float",
|
||||||
|
fieldname: "qty",
|
||||||
|
label: __("Accepted Quantity"),
|
||||||
|
in_list_view: true,
|
||||||
|
read_only: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldtype: "Float",
|
||||||
|
fieldname: "sample_size",
|
||||||
|
label: __("Sample Size"),
|
||||||
|
reqd: true,
|
||||||
|
in_list_view: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldtype: "Data",
|
||||||
|
fieldname: "description",
|
||||||
|
label: __("Description"),
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldtype: "Data",
|
||||||
|
fieldname: "serial_no",
|
||||||
|
label: __("Serial No"),
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
fieldtype: "Data",
|
||||||
|
fieldname: "batch_no",
|
||||||
|
label: __("Batch No"),
|
||||||
|
hidden: true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
const dialog = new frappe.ui.Dialog({
|
||||||
|
title: __("Select Items for Quality Inspection"),
|
||||||
|
fields: fields,
|
||||||
|
primary_action: function () {
|
||||||
|
const data = dialog.get_values();
|
||||||
|
frappe.call({
|
||||||
|
method: "erpnext.controllers.stock_controller.make_quality_inspections",
|
||||||
|
args: {
|
||||||
|
doctype: frm.doc.doctype,
|
||||||
|
docname: frm.doc.name,
|
||||||
|
items: data
|
||||||
|
},
|
||||||
|
freeze: true,
|
||||||
|
callback: function (r) {
|
||||||
|
if (r.message.length > 0) {
|
||||||
|
if (r.message.length === 1) {
|
||||||
|
frappe.set_route("Form", "Quality Inspection", r.message[0]);
|
||||||
|
} else {
|
||||||
|
frappe.route_options = {
|
||||||
|
"reference_type": frm.doc.doctype,
|
||||||
|
"reference_name": frm.doc.name
|
||||||
|
};
|
||||||
|
frappe.set_route("List", "Quality Inspection");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dialog.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
primary_action_label: __("Create")
|
||||||
|
});
|
||||||
|
|
||||||
|
frm.doc.items.forEach(item => {
|
||||||
|
if (!item.quality_inspection) {
|
||||||
|
let dialog_items = dialog.fields_dict.items;
|
||||||
|
dialog_items.df.data.push({
|
||||||
|
"docname": item.name,
|
||||||
|
"item_code": item.item_code,
|
||||||
|
"item_name": item.item_name,
|
||||||
|
"qty": item.qty,
|
||||||
|
"description": item.description,
|
||||||
|
"serial_no": item.serial_no,
|
||||||
|
"batch_no": item.batch_no
|
||||||
|
});
|
||||||
|
dialog_items.grid.refresh();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
data = dialog.fields_dict.items.df.data;
|
||||||
|
if (!data.length) {
|
||||||
|
frappe.msgprint(__("All items in this document already have a linked Quality Inspection."));
|
||||||
|
} else {
|
||||||
|
dialog.show();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
outgoing_stock_entry: function(frm) {
|
outgoing_stock_entry: function(frm) {
|
||||||
frappe.call({
|
frappe.call({
|
||||||
doc: frm.doc,
|
doc: frm.doc,
|
||||||
|
Loading…
Reference in New Issue
Block a user