From 72e4cdcb251a6e4b7905abfbb3e52bce5c21fa8d Mon Sep 17 00:00:00 2001 From: Neil Trini Lasrado Date: Fri, 21 Aug 2015 18:06:15 +0530 Subject: [PATCH] Added default WIP Warehouse and FG Warehouse to Manufacturing Settings Fetch default WIP Warehouse and FG Warehouse on load of Production Order --- .../manufacturing_settings.json | 409 +++++++++++++----- .../production_order/production_order.js | 15 +- .../production_order/production_order.py | 6 + 3 files changed, 323 insertions(+), 107 deletions(-) diff --git a/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json b/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json index 8be16b2153..e2da87948d 100644 --- a/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json +++ b/erpnext/manufacturing/doctype/manufacturing_settings/manufacturing_settings.json @@ -1,123 +1,320 @@ { - "allow_copy": 0, - "allow_import": 0, - "allow_rename": 0, - "creation": "2014-11-27 14:12:07.542534", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "Master", + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, + "creation": "2014-11-27 14:12:07.542534", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "Document", "fields": [ { - "fieldname": "capacity_planning", - "fieldtype": "Section Break", - "label": "Capacity Planning", - "permlevel": 0, - "precision": "" - }, + "allow_on_submit": 0, + "fieldname": "capacity_planning", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Capacity Planning", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { - "description": "Disables creation of time logs against Production Orders.\nOperations shall not be tracked against Production Order", - "fieldname": "disable_capacity_planning", - "fieldtype": "Check", - "label": "Disable Capacity Planning and Time Tracking", - "permlevel": 0, - "precision": "" - }, + "allow_on_submit": 0, + "description": "Disables creation of time logs against Production Orders.\nOperations shall not be tracked against Production Order", + "fieldname": "disable_capacity_planning", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Disable Capacity Planning and Time Tracking", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { - "description": "Plan time logs outside Workstation Working Hours.", - "fieldname": "allow_overtime", - "fieldtype": "Check", - "label": "Allow Overtime", - "permlevel": 0, - "precision": "" - }, + "allow_on_submit": 0, + "description": "Plan time logs outside Workstation Working Hours.", + "fieldname": "allow_overtime", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Allow Overtime", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { - "default": "", - "fieldname": "allow_production_on_holidays", - "fieldtype": "Check", - "in_list_view": 1, - "label": "Allow Production on Holidays", - "options": "", - "permlevel": 0, - "precision": "" - }, + "allow_on_submit": 0, + "default": "", + "fieldname": "allow_production_on_holidays", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Allow Production on Holidays", + "no_copy": 0, + "options": "", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { - "default": "BOM", - "fieldname": "backflush_raw_materials_based_on", - "fieldtype": "Select", - "label": "Backflush Raw Materials Based On", - "options": "BOM\nMaterial Transferred for Manufacture", - "permlevel": 0, - "precision": "" - }, + "allow_on_submit": 0, + "fieldname": "column_break_3", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { - "fieldname": "column_break_3", - "fieldtype": "Column Break", - "permlevel": 0, - "precision": "" - }, + "allow_on_submit": 0, + "default": "30", + "description": "Try planning operations for X days in advance.", + "fieldname": "capacity_planning_for_days", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Capacity Planning For (Days)", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { - "default": "30", - "description": "Try planning operations for X days in advance.", - "fieldname": "capacity_planning_for_days", - "fieldtype": "Int", - "label": "Capacity Planning For (Days)", - "permlevel": 0, - "precision": "" - }, + "allow_on_submit": 0, + "description": "Default 10 mins", + "fieldname": "mins_between_operations", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Time Between Operations (in mins)", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { - "description": "Default 10 mins", - "fieldname": "mins_between_operations", - "fieldtype": "Int", - "label": "Time Between Operations (in mins)", - "permlevel": 0, - "precision": "" - }, + "allow_on_submit": 0, + "fieldname": "section_break_6", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { - "fieldname": "over_production_allowance_percentage", - "fieldtype": "Percent", - "label": "Over Production Allowance Percentage", - "permlevel": 0, - "precision": "" + "allow_on_submit": 0, + "fieldname": "over_production_allowance_percentage", + "fieldtype": "Percent", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Over Production Allowance Percentage", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "default": "BOM", + "fieldname": "backflush_raw_materials_based_on", + "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Backflush Raw Materials Based On", + "no_copy": 0, + "options": "BOM\nMaterial Transferred for Manufacture", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "column_break_11", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "default_wip_warehouse", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Default Work In Progress Warehouse", + "no_copy": 0, + "options": "Warehouse", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "default_fg_warehouse", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Default Finished Goods Warehouse", + "no_copy": 0, + "options": "Warehouse", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } - ], - "hide_heading": 0, - "hide_toolbar": 0, - "icon": "icon-wrench", - "in_create": 0, - "in_dialog": 0, - "is_submittable": 0, - "issingle": 1, - "istable": 0, - "modified": "2015-08-12 08:12:33.889753", - "modified_by": "Administrator", - "module": "Manufacturing", - "name": "Manufacturing Settings", - "name_case": "", - "owner": "Administrator", + ], + "hide_heading": 0, + "hide_toolbar": 0, + "icon": "icon-wrench", + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 1, + "istable": 0, + "modified": "2015-08-21 08:27:03.794133", + "modified_by": "Administrator", + "module": "Manufacturing", + "name": "Manufacturing Settings", + "name_case": "", + "owner": "Administrator", "permissions": [ { - "amend": 0, - "apply_user_permissions": 0, - "cancel": 0, - "create": 1, - "delete": 0, - "email": 0, - "export": 0, - "import": 0, - "permlevel": 0, - "print": 0, - "read": 1, - "report": 0, - "role": "Manufacturing Manager", - "set_user_permissions": 0, - "share": 1, - "submit": 0, + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, + "create": 1, + "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, + "permlevel": 0, + "print": 0, + "read": 1, + "report": 0, + "role": "Manufacturing Manager", + "set_user_permissions": 0, + "share": 1, + "submit": 0, "write": 1 } - ], - "read_only": 0, - "read_only_onload": 0, - "sort_field": "modified", + ], + "read_only": 0, + "read_only_onload": 0, + "sort_field": "modified", "sort_order": "DESC" -} +} \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_order/production_order.js b/erpnext/manufacturing/doctype/production_order/production_order.js index 04fcaa5c01..cf02a3a747 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.js +++ b/erpnext/manufacturing/doctype/production_order/production_order.js @@ -17,6 +17,7 @@ frappe.ui.form.on("Production Order", "onload", function(frm) { erpnext.production_order.set_custom_buttons(frm); erpnext.production_order.setup_company_filter(frm); erpnext.production_order.setup_bom_filter(frm); + erpnext.production_order.set_default_warehouse(frm); }); frappe.ui.form.on("Production Order", "refresh", function(frm) { @@ -138,10 +139,22 @@ erpnext.production_order = { } } else msgprint(__("Please enter Production Item first")); }); + }, + + set_default_warehouse: function(frm) { + frappe.call({ + method: "erpnext.manufacturing.doctype.production_order.production_order.get_default_warehouse", + + callback: function(r) { + if(!r.exe) { + frm.set_value("wip_warehouse", r.message[0]); + frm.set_value("fg_warehouse", r.message[1]) + } + } + }); } } - $.extend(cur_frm.cscript, { before_submit: function() { cur_frm.toggle_reqd(["fg_warehouse", "wip_warehouse"], true); diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py index 2039d93659..182f306c11 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.py +++ b/erpnext/manufacturing/doctype/production_order/production_order.py @@ -422,3 +422,9 @@ def make_time_log(name, operation, from_time=None, to_time=None, qty=None, proj if from_time and to_time : time_log.calculate_total_hours() return time_log + +@frappe.whitelist() +def get_default_warehouse(): + wip_warehouse = frappe.db.get_single_value("Manufacturing Settings", "default_wip_warehouse") + fg_warehouse = frappe.db.get_single_value("Manufacturing Settings", "default_fg_warehouse") + return wip_warehouse, fg_warehouse \ No newline at end of file