diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js index 2eeef0801e..57363f0556 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.js +++ b/erpnext/manufacturing/doctype/production_order/production_order.js @@ -176,7 +176,47 @@ cur_frm.set_query("bom_no", function(doc) { } else msgprint(__("Please enter Production Item first")); }); -frappe.ui.form.on("Production Order", "additional_operating_cost", function(frm) { + +var calculate_total_cost = function(frm) { var variable_cost = frm.doc.actual_operating_cost ? flt(frm.doc.actual_operating_cost) : flt(frm.doc.planned_operating_cost) frm.set_value("total_operating_cost", (flt(frm.doc.additional_operating_cost) + variable_cost)) -}) +} + +frappe.ui.form.on("Production Order", "additional_operating_cost", function(frm) { + calculate_total_cost(frm); +}); + +frappe.ui.form.on("Production Order Operation", "workstation", function(frm, cdt, cdn) { + var d = locals[cdt][cdn]; + frappe.call({ + "method": "frappe.client.get", + args: { + doctype: "Workstation", + name: d.workstation + }, + callback: function (data) { + frappe.model.set_value(d.doctype, d.name, "hour_rate", data.message.hour_rate); + calculate_cost(frm.doc); + calculate_total_cost(frm); + } + }) +}); + +var calculate_cost = function(doc) { + if (doc.operations){ + var op = doc.operations; + doc.planned_operating_cost = 0.0; + for(var i=0;i