Add option to skip material transfer for production orders

This commit is contained in:
Ishan Loya 2017-04-20 21:46:27 +05:30 committed by Nabin Hait
parent c44910370b
commit 7544904857
3 changed files with 70 additions and 21 deletions

View File

@ -72,6 +72,7 @@ frappe.ui.form.on("Production Order", {
message = title; message = title;
// pending qty // pending qty
if(!frm.doc.skip_transfer){
var pending_complete = frm.doc.material_transferred_for_manufacturing - frm.doc.produced_qty; var pending_complete = frm.doc.material_transferred_for_manufacturing - frm.doc.produced_qty;
if(pending_complete) { if(pending_complete) {
var title = __('{0} items in progress', [pending_complete]); var title = __('{0} items in progress', [pending_complete]);
@ -82,6 +83,7 @@ frappe.ui.form.on("Production Order", {
}) })
message = message + '. ' + title; message = message + '. ' + title;
} }
}
frm.dashboard.add_progress(__('Status'), bars, message); frm.dashboard.add_progress(__('Status'), bars, message);
} }
}); });
@ -122,13 +124,16 @@ erpnext.production_order = {
frm.add_custom_button(__('Re-open'), cur_frm.cscript['Unstop Production Order'], __("Status")); frm.add_custom_button(__('Re-open'), cur_frm.cscript['Unstop Production Order'], __("Status"));
} }
if(!frm.doc.skip_transfer){
if ((flt(doc.material_transferred_for_manufacturing) < flt(doc.qty)) && frm.doc.status != 'Stopped') { if ((flt(doc.material_transferred_for_manufacturing) < flt(doc.qty)) && frm.doc.status != 'Stopped') {
frm.has_start_btn = true; frm.has_start_btn = true;
var btn = frm.add_custom_button(__('Start'), var btn = frm.add_custom_button(__('Start'),
cur_frm.cscript['Transfer Raw Materials']); cur_frm.cscript['Transfer Raw Materials']);
btn.addClass('btn-primary'); btn.addClass('btn-primary');
} }
}
if(!frm.doc.skip_transfer){
if ((flt(doc.produced_qty) < flt(doc.material_transferred_for_manufacturing)) && frm.doc.status != 'Stopped') { if ((flt(doc.produced_qty) < flt(doc.material_transferred_for_manufacturing)) && frm.doc.status != 'Stopped') {
frm.has_finish_btn = true; frm.has_finish_btn = true;
var btn = frm.add_custom_button(__('Finish'), var btn = frm.add_custom_button(__('Finish'),
@ -140,6 +145,14 @@ erpnext.production_order = {
btn.addClass('btn-primary'); btn.addClass('btn-primary');
} }
} }
} else if(frm.doc.skip_transfer){
if ((flt(doc.produced_qty) < flt(doc.qty)) && frm.doc.status != 'Stopped') {
frm.has_finish_btn = true;
var btn = frm.add_custom_button(__('Finish'),
cur_frm.cscript['Update Finished Goods']);
btn.addClass('btn-primary');
}
}
} }
}, },
@ -235,9 +248,15 @@ $.extend(cur_frm.cscript, {
make_se: function(purpose) { make_se: function(purpose) {
var me = this; var me = this;
if(!this.frm.doc.skip_transfer){
var max = (purpose === "Manufacture") ? var max = (purpose === "Manufacture") ?
flt(this.frm.doc.material_transferred_for_manufacturing) - flt(this.frm.doc.produced_qty) : flt(this.frm.doc.material_transferred_for_manufacturing) - flt(this.frm.doc.produced_qty) :
flt(this.frm.doc.qty) - flt(this.frm.doc.material_transferred_for_manufacturing); flt(this.frm.doc.qty) - flt(this.frm.doc.material_transferred_for_manufacturing);
} else if(this.frm.doc.skip_transfer){
var max = (purpose === "Manufacture") ?
flt(this.frm.doc.qty) - flt(this.frm.doc.produced_qty) :
flt(this.frm.doc.qty) - flt(this.frm.doc.produced_qty);
}
frappe.prompt({fieldtype:"Float", label: __("Qty for {0}", [purpose]), fieldname:"qty", frappe.prompt({fieldtype:"Float", label: __("Qty for {0}", [purpose]), fieldname:"qty",
description: __("Max: {0}", [max]), 'default': max }, description: __("Max: {0}", [max]), 'default': max },

View File

@ -319,6 +319,36 @@
"set_only_once": 0, "set_only_once": 0,
"unique": 0 "unique": 0
}, },
{
"allow_on_submit": 0,
"bold": 0,
"collapsible": 0,
"columns": 0,
"description": "Check if material transfer entry is not required",
"fieldname": "skip_transfer",
"fieldtype": "Check",
"hidden": 0,
"ignore_user_permissions": 0,
"ignore_xss_filter": 0,
"in_filter": 0,
"in_global_search": 0,
"in_list_view": 0,
"in_standard_filter": 0,
"label": "Skip Material Transfer",
"length": 0,
"no_copy": 0,
"permlevel": 0,
"precision": "",
"print_hide": 0,
"print_hide_if_no_value": 0,
"read_only": 0,
"remember_last_selected_value": 0,
"report_hide": 0,
"reqd": 0,
"search_index": 0,
"set_only_once": 0,
"unique": 0
},
{ {
"allow_on_submit": 0, "allow_on_submit": 0,
"bold": 0, "bold": 0,

View File

@ -535,7 +535,7 @@ def make_stock_entry(production_order_id, purpose, qty=None):
stock_entry.from_warehouse = production_order.wip_warehouse stock_entry.from_warehouse = production_order.wip_warehouse
stock_entry.to_warehouse = production_order.fg_warehouse stock_entry.to_warehouse = production_order.fg_warehouse
additional_costs = get_additional_costs(production_order, fg_qty=stock_entry.fg_completed_qty) additional_costs = get_additional_costs(production_order, fg_qty=stock_entry.fg_completed_qty)
stock_entry.project = frappe.db.get_value("Stock Entry",{"production_order": production_order_id,"purpose": "Material Transfer for Manufacture"}, "project") stock_entry.project = production_order.project
stock_entry.set("additional_costs", additional_costs) stock_entry.set("additional_costs", additional_costs)
stock_entry.get_items() stock_entry.get_items()