From e2558308f66f8d1d03c900743cce6b44ccbc1ee9 Mon Sep 17 00:00:00 2001 From: rohitwaghchaure Date: Tue, 20 Feb 2018 12:20:00 +0530 Subject: [PATCH] [enhance] Production Plan (#12160) * [enhance] Production plan * Test cases * Removed production planning tool * Documentation * Added actual qty in material request production item * Renamed field 'Use Multilevel BOM' to 'Include Exploded Items' --- erpnext/config/learn.py | 5 - erpnext/config/manufacturing.py | 7 +- .../assets/img/manufacturing/make_po_mr.png | Bin 0 -> 37953 bytes .../manufacturing/material_request_filter.png | Bin 0 -> 29623 bytes .../manufacturing/material_request_items.png | Bin 0 -> 34662 bytes .../manufacturing/material_request_plan.png | Bin 0 -> 46302 bytes .../img/manufacturing/material_requests.png | Bin 0 -> 28765 bytes .../img/manufacturing/production_plan.png | Bin 0 -> 104103 bytes .../img/manufacturing/sales_order_filter.png | Bin 0 -> 34228 bytes .../img/manufacturing/sales_order_items.png | Bin 0 -> 33030 bytes .../assets/img/manufacturing/sales_orders.png | Bin 0 -> 32918 bytes .../en/manufacturing/production-plan.md | 53 + .../material_request_plan_item/__init__.py | 0 .../material_request_plan_item.js | 8 + .../material_request_plan_item.json | 344 ++++++ .../material_request_plan_item.py | 9 + .../test_material_request_plan_item.js | 23 + .../test_material_request_plan_item.py | 9 + .../production_order/production_order.json | 63 +- .../production_order/production_order.py | 19 + .../doctype/production_plan/__init__.py | 0 .../production_plan/production_plan.js | 168 +++ .../production_plan.json} | 1091 +++++++++++------ .../production_plan/production_plan.py | 499 ++++++++ .../production_plan_dashboard.py | 12 + .../production_plan/production_plan_list.js | 17 + .../production_plan/test_production_plan.js | 23 + .../production_plan/test_production_plan.py | 148 +++ .../production_plan_item.json | 195 ++- .../production_plan_material_request.json | 24 +- .../production_plan_sales_order.json | 34 +- .../production_planning_tool/README.md | 1 - .../production_planning_tool/__init__.py | 1 - .../production_planning_tool.js | 128 -- .../test_production_planning_tool.py | 388 ------ .../test_records.json | 3 - erpnext/patches.txt | 3 +- erpnext/setup/doctype/company/company.py | 4 - erpnext/stock/doctype/item/test_item.py | 4 +- .../material_request/material_request.json | 32 +- .../material_request/material_request.py | 18 + .../material_request_item.json | 63 +- 42 files changed, 2463 insertions(+), 933 deletions(-) create mode 100644 erpnext/docs/assets/img/manufacturing/make_po_mr.png create mode 100644 erpnext/docs/assets/img/manufacturing/material_request_filter.png create mode 100644 erpnext/docs/assets/img/manufacturing/material_request_items.png create mode 100644 erpnext/docs/assets/img/manufacturing/material_request_plan.png create mode 100644 erpnext/docs/assets/img/manufacturing/material_requests.png create mode 100644 erpnext/docs/assets/img/manufacturing/production_plan.png create mode 100644 erpnext/docs/assets/img/manufacturing/sales_order_filter.png create mode 100644 erpnext/docs/assets/img/manufacturing/sales_order_items.png create mode 100644 erpnext/docs/assets/img/manufacturing/sales_orders.png create mode 100644 erpnext/docs/user/manual/en/manufacturing/production-plan.md create mode 100644 erpnext/manufacturing/doctype/material_request_plan_item/__init__.py create mode 100644 erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.js create mode 100644 erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json create mode 100644 erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.py create mode 100644 erpnext/manufacturing/doctype/material_request_plan_item/test_material_request_plan_item.js create mode 100644 erpnext/manufacturing/doctype/material_request_plan_item/test_material_request_plan_item.py create mode 100644 erpnext/manufacturing/doctype/production_plan/__init__.py create mode 100644 erpnext/manufacturing/doctype/production_plan/production_plan.js rename erpnext/manufacturing/doctype/{production_planning_tool/production_planning_tool.json => production_plan/production_plan.json} (61%) create mode 100644 erpnext/manufacturing/doctype/production_plan/production_plan.py create mode 100644 erpnext/manufacturing/doctype/production_plan/production_plan_dashboard.py create mode 100644 erpnext/manufacturing/doctype/production_plan/production_plan_list.js create mode 100644 erpnext/manufacturing/doctype/production_plan/test_production_plan.js create mode 100644 erpnext/manufacturing/doctype/production_plan/test_production_plan.py delete mode 100644 erpnext/manufacturing/doctype/production_planning_tool/README.md delete mode 100644 erpnext/manufacturing/doctype/production_planning_tool/__init__.py delete mode 100644 erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.js delete mode 100644 erpnext/manufacturing/doctype/production_planning_tool/test_production_planning_tool.py delete mode 100644 erpnext/manufacturing/doctype/production_planning_tool/test_records.json diff --git a/erpnext/config/learn.py b/erpnext/config/learn.py index daf4cc8b8ab..edd785a6c18 100644 --- a/erpnext/config/learn.py +++ b/erpnext/config/learn.py @@ -217,11 +217,6 @@ def get_data(): "label": _("Bill of Materials"), "youtube_id": "hDV0c1OeWLo" }, - { - "type": "help", - "label": _("Production Planning Tool"), - "youtube_id": "CzatSl4zJ2Y" - }, { "type": "help", "label": _("Production Order"), diff --git a/erpnext/config/manufacturing.py b/erpnext/config/manufacturing.py index 086d61b847e..d0fc39eda6d 100644 --- a/erpnext/config/manufacturing.py +++ b/erpnext/config/manufacturing.py @@ -14,7 +14,7 @@ def get_data(): }, { "type": "doctype", - "name": "Production Planning Tool", + "name": "Production Plan", "description": _("Generate Material Requests (MRP) and Production Orders."), }, { @@ -141,11 +141,6 @@ def get_data(): "label": _("Bill of Materials"), "youtube_id": "hDV0c1OeWLo" }, - { - "type": "help", - "label": _("Production Planning Tool"), - "youtube_id": "CzatSl4zJ2Y" - }, { "type": "help", "label": _("Production Order"), diff --git a/erpnext/docs/assets/img/manufacturing/make_po_mr.png b/erpnext/docs/assets/img/manufacturing/make_po_mr.png new file mode 100644 index 0000000000000000000000000000000000000000..e165301a34ab0c938783b8f72ce526acafd5e9d4 GIT binary patch literal 37953 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 CCE0NRpoBuz{;r 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�$XP&qOc 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 literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/manufacturing/material_request_filter.png b/erpnext/docs/assets/img/manufacturing/material_request_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..9b8b629952758f1b4595bad710d58dd61f1f1891 GIT binary patch literal 29623 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 literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/manufacturing/material_request_items.png b/erpnext/docs/assets/img/manufacturing/material_request_items.png new file mode 100644 index 0000000000000000000000000000000000000000..13421f5b7337c04580a1de73bae5b77cf307b1f0 GIT binary patch literal 34662 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

*)SdKIc<(xaN6Fv)ca#g08bf~PxdX+9mH+V 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

FeyA4% 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 PbtfaCC|>d5Q^5ZLN%b=a literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/manufacturing/material_request_plan.png b/erpnext/docs/assets/img/manufacturing/material_request_plan.png new file mode 100644 index 0000000000000000000000000000000000000000..e7134397185873c8cc94efbdb63341b422006e1c GIT binary patch literal 46302 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 MtlIOEXJ$eF11WQTR{#J2 literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/manufacturing/material_requests.png b/erpnext/docs/assets/img/manufacturing/material_requests.png new file mode 100644 index 0000000000000000000000000000000000000000..87b360aa4656a6de6ffa9ec78bc61bb14331e8f8 GIT binary patch literal 28765 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

vgKQdg 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�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 F{x1Vc0UZDU literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/manufacturing/sales_order_filter.png b/erpnext/docs/assets/img/manufacturing/sales_order_filter.png new file mode 100644 index 0000000000000000000000000000000000000000..6b359ea8ac2a6aa5a06df566d2a661a833ac23c3 GIT binary patch literal 34228 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 z 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 literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/manufacturing/sales_order_items.png b/erpnext/docs/assets/img/manufacturing/sales_order_items.png new file mode 100644 index 0000000000000000000000000000000000000000..a9d8b8d51dc498558cb4b725bd849d4b96cfe19a GIT binary patch literal 33030 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 Xq_}3izW(RGh(3wQik5%W`}ThToV|08 literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/manufacturing/sales_orders.png b/erpnext/docs/assets/img/manufacturing/sales_orders.png new file mode 100644 index 0000000000000000000000000000000000000000..1a9645e3560de609a31676bd7e67344eff071b18 GIT binary patch literal 32918 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 A<^TWy literal 0 HcmV?d00001 diff --git a/erpnext/docs/user/manual/en/manufacturing/production-plan.md b/erpnext/docs/user/manual/en/manufacturing/production-plan.md new file mode 100644 index 00000000000..e0daf0ad48c --- /dev/null +++ b/erpnext/docs/user/manual/en/manufacturing/production-plan.md @@ -0,0 +1,53 @@ +# Production Plan + +Production plan helps user to plan production aginst the multiple sales orders or the material requests and also plan for the purchase of the raw materials which will be used in the production. + +To use the Production Plan, go to: + +> Manufacturing > Production > Production Plan + +Production Plan + +## Planning for Production + +#### Production Against Sales Orders + +* Select option as Sales Order from the drop down list of get items from. System will show the filters, using that we can pull the sales orders for the production. + +Sales Order Filters + +* Click on Get Sales Orders to fetch sales orders based on above filters + +Sales Orders + +* Click on Get Items for Production Order to fetch the items from the above sales orders. + +Sales Order Item + * Include Exploded Items :- To include subassembly items of raw materials in the production. + +#### Production Against Material Requests + +* Select option as Material Request from the drop down list of get items from. System will show the filters, using that we can pull the material requests for the production. + +Material Request Filters + +* Click on Get Material Request to fetch material requests based on above filters + +Material Requests + +* Click on Get Items for Production Order to fetch the items from the above material requests. + +Material Request Item + +## Planning for Material Requests +* Click on get raw materials for production button to fetech raw materials required in the production. + +Material Request Plan + + * Include Non Stock Items :- To add non stock items in the material request planning. + * Include Subcontracted Items :- To add subcontracted item's raw materials if include exploded items is disabled + * Ignore Existing Ordered Quantity :- If enabled then system will not check the projected quantity to make material request. + +# Options To Make Production Order and Material Request + +Make PO or MR diff --git a/erpnext/manufacturing/doctype/material_request_plan_item/__init__.py b/erpnext/manufacturing/doctype/material_request_plan_item/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.js b/erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.js new file mode 100644 index 00000000000..61c0a997a42 --- /dev/null +++ b/erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.js @@ -0,0 +1,8 @@ +// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Material Request Plan Item', { + refresh: function() { + + } +}); diff --git a/erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json b/erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json new file mode 100644 index 00000000000..11b85238af2 --- /dev/null +++ b/erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.json @@ -0,0 +1,344 @@ +{ + "allow_copy": 0, + "allow_guest_to_view": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2017-12-01 12:12:55.048691", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", + "fields": [ + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "item_code", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Item Code", + "length": 0, + "no_copy": 0, + "options": "Item", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "item_name", + "fieldtype": "Data", + "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": "Item Name", + "length": 0, + "no_copy": 0, + "options": "", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "warehouse", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 1, + "label": "Warehouse", + "length": 0, + "no_copy": 0, + "options": "Warehouse", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_4", + "fieldtype": "Column Break", + "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, + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "quantity", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Quantity", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "actual_qty", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Actual Qty", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "min_order_qty", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Minimum Order Quantity", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 1, + "columns": 0, + "fieldname": "section_break_8", + "fieldtype": "Section Break", + "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": "Reference", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "sales_order", + "fieldtype": "Link", + "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": "Sales Order", + "length": 0, + "no_copy": 0, + "options": "Sales Order", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "requested_qty", + "fieldtype": "Float", + "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": "Requested Qty", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + } + ], + "has_web_view": 0, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 1, + "max_attachments": 0, + "modified": "2018-02-15 13:08:30.535963", + "modified_by": "Administrator", + "module": "Manufacturing", + "name": "Material Request Plan Item", + "name_case": "", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, + "track_seen": 0 +} \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.py b/erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.py new file mode 100644 index 00000000000..73e369c149e --- /dev/null +++ b/erpnext/manufacturing/doctype/material_request_plan_item/material_request_plan_item.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +from frappe.model.document import Document + +class MaterialRequestPlanItem(Document): + pass diff --git a/erpnext/manufacturing/doctype/material_request_plan_item/test_material_request_plan_item.js b/erpnext/manufacturing/doctype/material_request_plan_item/test_material_request_plan_item.js new file mode 100644 index 00000000000..14c6e393847 --- /dev/null +++ b/erpnext/manufacturing/doctype/material_request_plan_item/test_material_request_plan_item.js @@ -0,0 +1,23 @@ +/* eslint-disable */ +// rename this file from _test_[name] to test_[name] to activate +// and remove above this line + +QUnit.test("test: Material Request Plan Item", function (assert) { + let done = assert.async(); + + // number of asserts + assert.expect(1); + + frappe.run_serially([ + // insert a new Material Request Plan Item + () => frappe.tests.make('Material Request Plan Item', [ + // values to be set + {key: 'value'} + ]), + () => { + assert.equal(cur_frm.doc.key, 'value'); + }, + () => done() + ]); + +}); diff --git a/erpnext/manufacturing/doctype/material_request_plan_item/test_material_request_plan_item.py b/erpnext/manufacturing/doctype/material_request_plan_item/test_material_request_plan_item.py new file mode 100644 index 00000000000..dc43b69ef24 --- /dev/null +++ b/erpnext/manufacturing/doctype/material_request_plan_item/test_material_request_plan_item.py @@ -0,0 +1,9 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +from __future__ import unicode_literals + +import unittest + +class TestMaterialRequestPlanItem(unittest.TestCase): + pass diff --git a/erpnext/manufacturing/doctype/production_order/production_order.json b/erpnext/manufacturing/doctype/production_order/production_order.json index a5428aa1c6b..4399d32c883 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.json +++ b/erpnext/manufacturing/doctype/production_order/production_order.json @@ -1344,6 +1344,67 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "production_plan", + "fieldtype": "Link", + "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": "Production Plan", + "length": 0, + "no_copy": 1, + "options": "Production Plan", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "production_plan_item", + "fieldtype": "Data", + "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": "Production Plan Item", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_bulk_edit": 0, "allow_on_submit": 0, @@ -1388,7 +1449,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2017-11-03 05:31:56.636724", + "modified": "2017-12-20 05:31:56.636724", "modified_by": "Administrator", "module": "Manufacturing", "name": "Production Order", diff --git a/erpnext/manufacturing/doctype/production_order/production_order.py b/erpnext/manufacturing/doctype/production_order/production_order.py index d3b7c5a4980..439659a5ca4 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.py +++ b/erpnext/manufacturing/doctype/production_order/production_order.py @@ -189,6 +189,13 @@ class ProductionOrder(Document): self.db_set(fieldname, qty) + if self.production_plan: + self.update_production_plan_status() + + def update_production_plan_status(self): + production_plan = frappe.get_doc('Production Plan', self.production_plan) + production_plan.run_method("update_produced_qty", self.produced_qty, self.production_plan_item) + def before_submit(self): self.make_time_logs() @@ -201,6 +208,7 @@ class ProductionOrder(Document): self.update_reserved_qty_for_production() self.update_completed_qty_in_material_request() self.update_planned_qty() + self.update_ordered_qty() def on_cancel(self): self.validate_cancel() @@ -209,6 +217,7 @@ class ProductionOrder(Document): self.delete_timesheet() self.update_completed_qty_in_material_request() self.update_planned_qty() + self.update_ordered_qty() self.update_reserved_qty_for_production() def validate_cancel(self): @@ -230,6 +239,16 @@ class ProductionOrder(Document): mr_obj = frappe.get_doc("Material Request", self.material_request) mr_obj.update_requested_qty([self.material_request_item]) + def update_ordered_qty(self): + if self.production_plan and self.production_plan_item: + qty = self.qty if self.docstatus == 1 else 0 + frappe.db.set_value('Production Plan Item', + self.production_plan_item, 'ordered_qty', qty) + + doc = frappe.get_doc('Production Plan', self.production_plan) + doc.set_status() + doc.db_set('status', doc.status) + def update_completed_qty_in_material_request(self): if self.material_request: frappe.get_doc("Material Request", self.material_request).update_completed_qty([self.material_request_item]) diff --git a/erpnext/manufacturing/doctype/production_plan/__init__.py b/erpnext/manufacturing/doctype/production_plan/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.js b/erpnext/manufacturing/doctype/production_plan/production_plan.js new file mode 100644 index 00000000000..953c124cbc1 --- /dev/null +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.js @@ -0,0 +1,168 @@ +// Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +// For license information, please see license.txt + +frappe.ui.form.on('Production Plan', { + setup: function(frm) { + frm.fields_dict['po_items'].grid.get_field('warehouse').get_query = function(doc) { + return { + filters: { + company: doc.company + } + } + } + + frm.fields_dict['po_items'].grid.get_field('bom_no').get_query = function(doc, cdt, cdn) { + var d = locals[cdt][cdn]; + if (d.item_code) { + return { + query: "erpnext.controllers.queries.bom", + filters:{'item': cstr(d.item_code)} + } + } else frappe.msgprint(__("Please enter Item first")); + } + + frm.fields_dict['mr_items'].grid.get_field('warehouse').get_query = function(doc) { + return { + filters: { + company: doc.company + } + } + } + }, + + refresh: function(frm) { + if (frm.doc.docstatus === 1) { + frm.trigger("show_progress"); + } + + if (frm.doc.docstatus === 1 && frm.doc.po_items + && frm.doc.status != 'Completed') { + frm.add_custom_button(__("Production Order"), ()=> { + frm.trigger("make_production_order"); + }, __("Make")); + } + + if (frm.doc.docstatus === 1 && frm.doc.mr_items + && !in_list(['Material Requested', 'Completed'], frm.doc.status)) { + frm.add_custom_button(__("Material Request"), ()=> { + frm.trigger("make_material_request"); + }, __("Make")); + } + + frm.trigger("material_requirement"); + }, + + make_production_order: function(frm) { + frappe.call({ + method: "make_production_order", + freeze: true, + doc: frm.doc, + callback: function() { + frm.reload_doc(); + } + }); + }, + + make_material_request: function(frm) { + frappe.call({ + method: "make_material_request", + freeze: true, + doc: frm.doc, + callback: function(r) { + frm.reload_doc(); + } + }); + }, + + get_sales_orders: function(frm) { + frappe.call({ + method: "get_open_sales_orders", + doc: frm.doc, + callback: function(r) { + refresh_field("sales_orders"); + } + }); + }, + + get_material_request: function(frm) { + frappe.call({ + method: "get_pending_material_requests", + doc: frm.doc, + callback: function() { + refresh_field('material_requests'); + } + }); + }, + + get_items: function(frm) { + frappe.call({ + method: "get_items", + freeze: true, + doc: frm.doc, + callback: function() { + refresh_field('po_items'); + } + }); + }, + + get_items_for_mr: function(frm) { + frappe.call({ + method: "get_items_for_material_requests", + freeze: true, + doc: frm.doc, + callback: function() { + refresh_field('mr_items'); + } + }); + }, + + show_progress: function(frm) { + var bars = []; + var message = ''; + var title = ''; + + // produced qty + let item_wise_qty = {}; + frm.doc.po_items.forEach((data) => { + if(!item_wise_qty[data.item_code]) { + item_wise_qty[data.item_code] = data.produced_qty; + } else { + item_wise_qty[data.item_code] += data.produced_qty; + } + }) + + if (item_wise_qty) { + for (var key in item_wise_qty) { + title += __('Item {0}: {1} qty produced, ', [key, item_wise_qty[key]]); + } + } + + bars.push({ + 'title': title, + 'width': (frm.doc.total_produced_qty / frm.doc.total_planned_qty * 100) + '%', + 'progress_class': 'progress-bar-success' + }); + if (bars[0].width == '0%') { + bars[0].width = '0.5%'; + } + message = title; + frm.dashboard.add_progress(__('Status'), bars, message); + }, +}); + +frappe.ui.form.on("Material Request Plan Item", { + warehouse: function(frm, cdt, cdn) { + const row = locals[cdt][cdn]; + if (row.warehouse && row.item_code) { + frappe.call({ + method: "erpnext.manufacturing.doctype.production_plan.production_plan.get_bin_details", + args: { + row: row + }, + callback: function(r) { + frappe.model.set_value(cdt, cdn, 'actual_qty', r.message[1]) + } + }) + } + } +}) diff --git a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.json b/erpnext/manufacturing/doctype/production_plan/production_plan.json similarity index 61% rename from erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.json rename to erpnext/manufacturing/doctype/production_plan/production_plan.json index ffba219ae61..06301d70ad9 100644 --- a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.json +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.json @@ -1,20 +1,89 @@ { - "allow_copy": 1, + "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, + "autoname": "naming_series:", "beta": 0, - "creation": "2013-01-21 12:03:47", + "creation": "2017-10-29 11:53:09.523362", "custom": 0, - "default_print_format": "Standard", + "default_print_format": "", "docstatus": 0, "doctype": "DocType", - "document_type": "Setup", + "document_type": "Document", "editable_grid": 0, + "engine": "InnoDB", "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, + "default": "PLN-", + "fieldname": "naming_series", + "fieldtype": "Select", + "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": "Naming Series", + "length": 0, + "no_copy": 0, + "options": "PLN-", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "depends_on": "", + "fieldname": "company", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Company", + "length": 0, + "no_copy": 0, + "options": "Company", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, "default": "", "fieldname": "get_items_from", "fieldtype": "Select", @@ -22,7 +91,9 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, - "in_list_view": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, "label": "Get Items From", "length": 0, "no_copy": 0, @@ -32,6 +103,7 @@ "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, @@ -39,10 +111,73 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "depends_on": "get_items_from", + "columns": 0, + "fieldname": "column_break1", + "fieldtype": "Column Break", + "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, + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "Today", + "fieldname": "posting_date", + "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Posting Date", + "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": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 1, + "collapsible_depends_on": "eval: doc.__islocal", + "columns": 0, + "depends_on": "eval: doc.get_items_from", "description": "", "fieldname": "filters", "fieldtype": "Section Break", @@ -50,14 +185,18 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "label": "Filters", "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, @@ -65,24 +204,30 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "fieldname": "fg_item", + "columns": 0, + "fieldname": "item_code", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, - "label": "Item", + "in_standard_filter": 0, + "label": "Item Code", "length": 0, "no_copy": 0, "options": "Item", "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, @@ -90,9 +235,11 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "depends_on": "eval: doc.get_items_from == \"Sales Order\"", "fieldname": "customer", "fieldtype": "Link", @@ -100,15 +247,19 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Customer", "length": 0, "no_copy": 0, "options": "Customer", "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, @@ -116,9 +267,11 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "depends_on": "eval: doc.get_items_from == \"Material Request\"", "fieldname": "warehouse", "fieldtype": "Link", @@ -126,7 +279,9 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "label": "Warehouse", "length": 0, "no_copy": 0, @@ -136,6 +291,7 @@ "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, @@ -143,107 +299,11 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "depends_on": "eval: doc.get_items_from == \"Sales Order\"", - "fieldname": "company", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 1, - "label": "Company", - "length": 0, - "no_copy": 0, - "options": "Company", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "column_break1", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0, - "width": "50%" - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "from_date", - "fieldtype": "Date", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "From Date", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "to_date", - "fieldtype": "Date", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "To Date", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, + "columns": 0, "depends_on": "eval: doc.get_items_from == \"Sales Order\"", "fieldname": "project", "fieldtype": "Link", @@ -251,7 +311,9 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "label": "Project", "length": 0, "no_copy": 0, @@ -261,6 +323,7 @@ "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, @@ -268,93 +331,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "depends_on": "eval: doc.get_items_from == \"Sales Order\"", - "fieldname": "section_break1", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "length": 0, - "no_copy": 0, - "options": "", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "description": "Pull sales orders (pending to deliver) based on the above criteria", - "fieldname": "get_sales_orders", - "fieldtype": "Button", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Get Sales Orders", - "length": 0, - "no_copy": 0, - "options": "", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "sales_orders", - "fieldtype": "Table", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Sales Orders", - "length": 0, - "no_copy": 0, - "options": "Production Plan Sales Order", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "depends_on": "eval: doc.get_items_from == \"Material Request\"", - "fieldname": "section_break_16", - "fieldtype": "Section Break", + "columns": 0, + "fieldname": "column_break2", + "fieldtype": "Column Break", "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, "length": 0, "no_copy": 0, "permlevel": 0, @@ -362,6 +352,38 @@ "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, + "width": "50%" + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "from_date", + "fieldtype": "Date", + "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": "From Date", + "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, @@ -369,17 +391,179 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "description": "Pull Material Request of type Manufacture based on the above criteria", + "columns": 0, + "fieldname": "to_date", + "fieldtype": "Date", + "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": "To Date", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 1, + "collapsible_depends_on": "eval: doc.__islocal", + "columns": 0, + "depends_on": "eval: doc.get_items_from == \"Sales Order\"", + "fieldname": "sales_orders_detail", + "fieldtype": "Section Break", + "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": "Sales Orders Detail", + "length": 0, + "no_copy": 0, + "options": "", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "", + "fieldname": "get_sales_orders", + "fieldtype": "Button", + "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": "Get Sales Orders", + "length": 0, + "no_copy": 0, + "options": "", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "sales_orders", + "fieldtype": "Table", + "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": "Sales Orders", + "length": 0, + "no_copy": 1, + "options": "Production Plan Sales Order", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 1, + "collapsible_depends_on": "eval: doc.__islocal", + "columns": 0, + "depends_on": "eval: doc.get_items_from == \"Material Request\"", + "fieldname": "material_request_detail", + "fieldtype": "Section Break", + "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": "Material Request Detail", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "description": "", "fieldname": "get_material_request", "fieldtype": "Button", "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": "Get Material Request", "length": 0, "no_copy": 0, @@ -389,6 +573,7 @@ "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, @@ -396,25 +581,30 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "material_requests", "fieldtype": "Table", "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": "Material Requests", "length": 0, - "no_copy": 0, + "no_copy": 1, "options": "Production Plan Material Request", "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, @@ -422,24 +612,30 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "description": "Enter items and planned qty for which you want to raise production orders or download raw materials for analysis.", + "columns": 0, + "description": "", "fieldname": "items_for_production", "fieldtype": "Section Break", "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": "Select Items", "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, @@ -447,9 +643,11 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "depends_on": "get_items_from", "fieldname": "get_items", "fieldtype": "Button", @@ -457,15 +655,19 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, - "label": "Get Items", + "in_standard_filter": 0, + "label": "Get Items For Production Order", "length": 0, "no_copy": 0, "options": "", "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, @@ -473,143 +675,53 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "fieldname": "items", + "columns": 0, + "fieldname": "po_items", "fieldtype": "Table", "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": "Items", "length": 0, - "no_copy": 0, + "no_copy": 1, "options": "Production Plan Item", "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, - "bold": 0, - "collapsible": 0, - "description": "", - "fieldname": "create_production_orders", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Production Orders", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "description": "Separate production order will be created for each finished good item.", - "fieldname": "create_production_order", - "fieldtype": "Button", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Create Production Orders", - "length": 0, - "no_copy": 0, - "options": "", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, + "reqd": 1, "search_index": 0, "set_only_once": 0, "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "depends_on": "", - "fieldname": "sb5", + "fieldname": "material_request_planning", "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, - "label": "Material Requirement", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "purchase_request_for_warehouse", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Material Request For Warehouse", - "length": 0, - "no_copy": 0, - "options": "Warehouse", - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "fieldname": "create_material_requests_for_all_required_qty", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Create for full quantity, ignoring quantity already on order", + "in_standard_filter": 0, + "label": "Material Request Planning", "length": 0, "no_copy": 0, "permlevel": 0, @@ -617,6 +729,7 @@ "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, @@ -624,25 +737,30 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "description": "", - "fieldname": "create_material_requests", - "fieldtype": "Button", + "columns": 0, + "default": "1", + "fieldname": "include_non_stock_items", + "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, - "label": "Create Material Requests", + "in_standard_filter": 0, + "label": "Include Non Stock Items", "length": 0, "no_copy": 0, - "options": "", "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, @@ -650,24 +768,29 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "description": "Download a report containing all raw materials with their latest inventory status", - "fieldname": "download_materials_required", - "fieldtype": "Button", + "columns": 0, + "fieldname": "ignore_existing_ordered_qty", + "fieldtype": "Check", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, - "label": "Download Materials Required", + "in_standard_filter": 0, + "label": "Ignore Existing Ordered Quantity", "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, @@ -675,16 +798,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "fieldname": "column_break_2", + "columns": 0, + "fieldname": "column_break_25", "fieldtype": "Column Break", "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, "length": 0, "no_copy": 0, "permlevel": 0, @@ -692,6 +819,7 @@ "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, @@ -699,71 +827,52 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "description": "If checked, Will include non-stock items in the Material Requests.", - "fieldname": "create_material_requests_non_stock_request", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Include non-stock items", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, + "columns": 0, "default": "1", + "fieldname": "include_subcontracted_items", + "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": "Include Subcontracted Items", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, "depends_on": "", - "description": "If checked, all the children of each production item will be included in the Material Requests.", - "fieldname": "use_multi_level_bom", - "fieldtype": "Check", + "fieldname": "section_break_27", + "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, - "label": "Use Multi-Level BOM", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "description": "If checked, only Purchase material requests for final raw materials will be included in the Material Requests. Otherwise, Material Requests for parent items will be created", - "fieldname": "only_raw_materials", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Only Obtain Raw Materials", + "in_standard_filter": 0, "length": 0, "no_copy": 0, "permlevel": 0, @@ -771,6 +880,7 @@ "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, @@ -778,19 +888,21 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "depends_on": "use_multi_level_bom", - "description": "If checked, raw materials for items that are sub-contracted will be included in the Material Requests", - "fieldname": "include_subcontracted", - "fieldtype": "Check", + "columns": 0, + "fieldname": "get_items_for_mr", + "fieldtype": "Button", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, - "label": "Include sub-contracted raw materials", + "in_standard_filter": 0, + "label": "Get Raw Materials For Production", "length": 0, "no_copy": 0, "permlevel": 0, @@ -798,6 +910,221 @@ "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "mr_items", + "fieldtype": "Table", + "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": "Material Request Plan Item", + "length": 0, + "no_copy": 1, + "options": "Material Request Plan Item", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 1, + "columns": 0, + "fieldname": "other_details", + "fieldtype": "Section Break", + "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": "Other Details", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "0", + "fieldname": "total_planned_qty", + "fieldtype": "Float", + "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": "Total Planned Qty", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "0", + "fieldname": "total_produced_qty", + "fieldtype": "Float", + "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": "Total Produced Qty", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_32", + "fieldtype": "Column Break", + "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, + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "default": "Draft", + "fieldname": "status", + "fieldtype": "Select", + "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": "Status", + "length": 0, + "no_copy": 1, + "options": "\nDraft\nSubmitted\nNot Started\nIn Process\nCompleted\nStopped\nCancelled\nMaterial Requested", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "amended_from", + "fieldtype": "Link", + "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": "Amended From", + "length": 0, + "no_copy": 1, + "options": "Production Plan", + "permlevel": 0, + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -805,29 +1132,30 @@ "unique": 0 } ], + "has_web_view": 0, "hide_heading": 0, - "hide_toolbar": 1, + "hide_toolbar": 0, "icon": "fa fa-calendar", - "idx": 1, + "idx": 0, "image_view": 0, - "in_create": 1, - "in_dialog": 0, - "is_submittable": 0, - "issingle": 1, + "in_create": 0, + "is_submittable": 1, + "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2016-11-16 05:35:34.331954", + "modified": "2018-02-15 13:18:59.092921", "modified_by": "Administrator", "module": "Manufacturing", - "name": "Production Planning Tool", - "owner": "jai@webnotestech.com", + "name": "Production Plan", + "name_case": "", + "owner": "Administrator", "permissions": [ { - "amend": 0, + "amend": 1, "apply_user_permissions": 0, - "cancel": 0, + "cancel": 1, "create": 1, - "delete": 0, + "delete": 1, "email": 1, "export": 0, "if_owner": 0, @@ -836,17 +1164,20 @@ "print": 1, "read": 1, "report": 0, - "restrict": 0, "role": "Manufacturing User", "set_user_permissions": 0, "share": 1, - "submit": 0, + "submit": 1, "write": 1 } ], "quick_entry": 0, - "read_only": 1, + "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", "sort_order": "ASC", + "title_field": "", + "track_changes": 0, "track_seen": 0 -} +} \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan.py b/erpnext/manufacturing/doctype/production_plan/production_plan.py new file mode 100644 index 00000000000..fdfb0d37ba6 --- /dev/null +++ b/erpnext/manufacturing/doctype/production_plan/production_plan.py @@ -0,0 +1,499 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and contributors +# For license information, please see license.txt + +from __future__ import unicode_literals +import frappe, json +from frappe import msgprint, _ +from frappe.model.document import Document +from erpnext.manufacturing.doctype.bom.bom import validate_bom_no +from frappe.utils import cstr, flt, cint, nowdate, add_days, comma_and, now_datetime +from erpnext.manufacturing.doctype.production_order.production_order import get_item_details + +class ProductionPlan(Document): + def validate(self): + self.calculate_total_planned_qty() + self.set_status() + + def validate_data(self): + for d in self.get('po_items'): + if not d.bom_no: + frappe.throw(_("Please select BOM for Item in Row {0}".format(d.idx))) + else: + validate_bom_no(d.item_code, d.bom_no) + + if not flt(d.planned_qty): + frappe.throw(_("Please enter Planned Qty for Item {0} at row {1}").format(d.item_code, d.idx)) + + def get_open_sales_orders(self): + """ Pull sales orders which are pending to deliver based on criteria selected""" + so_filter = item_filter = "" + if self.from_date: + so_filter += " and so.transaction_date >= %(from_date)s" + if self.to_date: + so_filter += " and so.transaction_date <= %(to_date)s" + if self.customer: + so_filter += " and so.customer = %(customer)s" + if self.project: + so_filter += " and so.project = %(project)s" + + if self.item_code: + item_filter += " and so_item.item_code = %(item)s" + + open_so = frappe.db.sql(""" + select distinct so.name, so.transaction_date, so.customer, so.base_grand_total + from `tabSales Order` so, `tabSales Order Item` so_item + where so_item.parent = so.name + and so.docstatus = 1 and so.status not in ("Stopped", "Closed") + and so.company = %(company)s + and so_item.qty > so_item.delivered_qty {0} {1} + and (exists (select name from `tabBOM` bom where bom.item=so_item.item_code + and bom.is_active = 1) + or exists (select name from `tabPacked Item` pi + where pi.parent = so.name and pi.parent_item = so_item.item_code + and exists (select name from `tabBOM` bom where bom.item=pi.item_code + and bom.is_active = 1))) + """.format(so_filter, item_filter), { + "from_date": self.from_date, + "to_date": self.to_date, + "customer": self.customer, + "project": self.project, + "item": self.item_code, + "company": self.company + }, as_dict=1) + + self.add_so_in_table(open_so) + + def add_so_in_table(self, open_so): + """ Add sales orders in the table""" + self.set('sales_orders', []) + + for data in open_so: + self.append('sales_orders', { + 'sales_order': data.name, + 'sales_order_date': data.transaction_date, + 'customer': data.customer, + 'grand_total': data.grand_total + }) + + def get_pending_material_requests(self): + """ Pull Material Requests that are pending based on criteria selected""" + mr_filter = item_filter = "" + if self.from_date: + mr_filter += " and mr.transaction_date >= %(from_date)s" + if self.to_date: + mr_filter += " and mr.transaction_date <= %(to_date)s" + if self.warehouse: + mr_filter += " and mr_item.warehouse = %(warehouse)s" + + if self.item_code: + item_filter += " and mr_item.item_code = %(item)s" + + pending_mr = frappe.db.sql(""" + select distinct mr.name, mr.transaction_date + from `tabMaterial Request` mr, `tabMaterial Request Item` mr_item + where mr_item.parent = mr.name + and mr.material_request_type = "Manufacture" + and mr.docstatus = 1 and mr.company = %(company)s + and mr_item.qty > ifnull(mr_item.ordered_qty,0) {0} {1} + and (exists (select name from `tabBOM` bom where bom.item=mr_item.item_code + and bom.is_active = 1)) + """.format(mr_filter, item_filter), { + "from_date": self.from_date, + "to_date": self.to_date, + "warehouse": self.warehouse, + "item": self.item_code, + "company": self.company + }, as_dict=1) + + self.add_mr_in_table(pending_mr) + + def add_mr_in_table(self, pending_mr): + """ Add Material Requests in the table""" + self.set('material_requests', []) + + for data in pending_mr: + self.append('material_requests', { + 'material_request': data.name, + 'material_request_date': data.transaction_date + }) + + def get_items(self): + if self.get_items_from == "Sales Order": + self.get_so_items() + elif self.get_items_from == "Material Request": + self.get_mr_items() + + def get_so_items(self): + so_list = [d.sales_order for d in self.sales_orders if d.sales_order] + if not so_list: + msgprint(_("Please enter Sales Orders in the above table")) + return [] + + item_condition = "" + if self.item_code: + item_condition = ' and so_item.item_code = "{0}"'.format(frappe.db.escape(self.item_code)) + + items = frappe.db.sql("""select distinct parent, item_code, warehouse, + (qty - delivered_qty)*conversion_factor as pending_qty + from `tabSales Order Item` so_item + where parent in (%s) and docstatus = 1 and qty > delivered_qty + and exists (select name from `tabBOM` bom where bom.item=so_item.item_code + and bom.is_active = 1) %s""" % \ + (", ".join(["%s"] * len(so_list)), item_condition), tuple(so_list), as_dict=1) + + if self.item_code: + item_condition = ' and pi.item_code = "{0}"'.format(frappe.db.escape(self.item_code)) + + packed_items = frappe.db.sql("""select distinct pi.parent, pi.item_code, pi.warehouse as warehouse, + (((so_item.qty - so_item.delivered_qty) * pi.qty) / so_item.qty) + as pending_qty + from `tabSales Order Item` so_item, `tabPacked Item` pi + where so_item.parent = pi.parent and so_item.docstatus = 1 + and pi.parent_item = so_item.item_code + and so_item.parent in (%s) and so_item.qty > so_item.delivered_qty + and exists (select name from `tabBOM` bom where bom.item=pi.item_code + and bom.is_active = 1) %s""" % \ + (", ".join(["%s"] * len(so_list)), item_condition), tuple(so_list), as_dict=1) + + self.add_items(items + packed_items) + self.calculate_total_planned_qty() + + def get_mr_items(self): + mr_list = [d.material_request for d in self.material_requests if d.material_request] + if not mr_list: + msgprint(_("Please enter Material Requests in the above table")) + return [] + + item_condition = "" + if self.item_code: + item_condition = " and mr_item.item_code ='{0}'".format(frappe.db.escape(self.item_code)) + + items = frappe.db.sql("""select distinct parent, name, item_code, warehouse, + (qty - ordered_qty) as pending_qty + from `tabMaterial Request Item` mr_item + where parent in (%s) and docstatus = 1 and qty > ordered_qty + and exists (select name from `tabBOM` bom where bom.item=mr_item.item_code + and bom.is_active = 1) %s""" % \ + (", ".join(["%s"] * len(mr_list)), item_condition), tuple(mr_list), as_dict=1) + + self.add_items(items) + self.calculate_total_planned_qty() + + def add_items(self, items): + self.set('po_items', []) + for data in items: + item_details = get_item_details(data.item_code) + pi = self.append('po_items', { + 'include_exploded_items': 1, + 'warehouse': data.warehouse, + 'item_code': data.item_code, + 'description': item_details and item_details.description or '', + 'stock_uom': item_details and item_details.stock_uom or '', + 'bom_no': item_details and item_details.bom_no or '', + 'planned_qty': data.pending_qty, + 'pending_qty': data.pending_qty, + 'planned_start_date': now_datetime() + }) + + if self.get_items_from == "Sales Order": + pi.sales_order = data.parent + pi.sales_order_item = data.name + + elif self.get_items_from == "Material Request": + pi.material_request = data.parent + pi.material_request_item = data.name + + def calculate_total_planned_qty(self): + self.total_planned_qty = 0 + for d in self.po_items: + self.total_planned_qty += flt(d.planned_qty) + + def calculate_total_produced_qty(self): + self.total_produced_qty = 0 + for d in self.po_items: + self.total_produced_qty += flt(d.produced_qty) + + self.db_set("total_produced_qty", self.total_produced_qty, update_modified=False) + + def update_produced_qty(self, produced_qty, production_plan_item): + for data in self.po_items: + if data.name == production_plan_item: + data.produced_qty = produced_qty + data.db_update() + + self.calculate_total_produced_qty() + self.set_status() + self.db_set('status', self.status) + + def on_cancel(self): + self.db_set('status', 'Cancelled') + self.delete_draft_production_order() + + def delete_draft_production_order(self): + for d in frappe.get_all('Production Order', fields = ["name"], + filters = {'docstatus': 0, 'production_plan': ("=", self.name)}): + frappe.delete_doc('Production Order', d.name) + + def set_status(self): + self.status = { + '0': 'Draft', + '1': 'Submitted' + }[cstr(self.docstatus or 0)] + + if self.total_produced_qty > 0: + self.status = "In Process" + if self.total_produced_qty == self.total_planned_qty: + self.status = "Completed" + + if self.status != 'Completed': + self.update_ordered_status() + self.update_requested_status() + + def update_ordered_status(self): + update_status = False + for d in self.po_items: + if d.planned_qty == d.ordered_qty: + update_status = True + + if update_status and self.status != 'Completed': + self.status = 'In Process' + + def update_requested_status(self): + update_status = True + for d in self.mr_items: + if d.quantity != d.requested_qty: + update_status = False + + if update_status: + self.status = 'Material Requested' + + def get_production_items(self): + item_dict = {} + for d in self.po_items: + item_details= { + "production_item" : d.item_code, + "use_multi_level_bom" : d.include_exploded_items, + "sales_order" : d.sales_order, + "material_request" : d.material_request, + "material_request_item" : d.material_request_item, + "bom_no" : d.bom_no, + "description" : d.description, + "stock_uom" : d.stock_uom, + "company" : self.company, + "fg_warehouse" : d.warehouse, + "production_plan" : self.name, + "production_plan_item" : d.name + } + + item_details.update({ + "project": self.project or frappe.db.get_value("Sales Order", d.sales_order, "project") + }) + + if self.get_items_from == "Material Request": + item_details.update({ + "qty": d.planned_qty + }) + item_dict[(d.item_code, d.material_request_item, d.warehouse)] = item_details + else: + item_details.update({ + "qty":flt(item_dict.get((d.item_code, d.sales_order, d.warehouse),{}) + .get("qty")) + flt(d.planned_qty) + }) + item_dict[(d.item_code, d.sales_order, d.warehouse)] = item_details + + return item_dict + + def get_items_for_material_requests(self): + self.mr_items = [] + + for data in self.po_items: + bom_wise_item_details = {} + if not data.planned_qty: + frappe.throw(_("For row {0}: Enter planned qty").format(data.idx)) + + if data.include_exploded_items and data.bom_no and self.include_subcontracted_items: + for d in frappe.db.sql("""select bei.item_code, item.default_bom as bom, + ifnull(sum(bei.stock_qty/ifnull(bom.quantity, 1)), 0) as qty, item.item_name, + bei.description, bei.stock_uom, item.min_order_qty, bei.source_warehouse, + item.default_material_request_type, item.min_order_qty, item.default_warehouse + from + `tabBOM Explosion Item` bei, `tabBOM` bom, `tabItem` item + where + bom.name = bei.parent and item.name = bei.item_code + and bei.docstatus < 2 and bom.name=%s and item.is_stock_item in (1, {0}) + group by bei.item_code, bei.stock_uom""".format(self.include_non_stock_items), + data.bom_no, as_dict=1): + bom_wise_item_details.setdefault(d.item_code, d) + else: + bom_wise_item_details = self.get_subitems(data, bom_wise_item_details, data.bom_no, 1) + + for item, item_details in bom_wise_item_details.items(): + if item_details.qty > 0: + self.add_item_in_material_request_items(item, item_details, data) + + def get_subitems(self, data, bom_wise_item_details, bom_no, parent_qty): + items = frappe.db.sql(""" + SELECT + bom_item.item_code, default_material_request_type, item.item_name, + ifnull(%(parent_qty)s * sum(bom_item.stock_qty/ifnull(bom.quantity, 1)), 0) as qty, + item.is_sub_contracted_item as is_sub_contracted, bom_item.source_warehouse, + item.default_bom as default_bom, bom_item.description as description, + bom_item.stock_uom as stock_uom, item.min_order_qty as min_order_qty, + item.default_warehouse + FROM + `tabBOM Item` bom_item, `tabBOM` bom, tabItem item + where + bom.name = bom_item.parent and bom.name = %(bom)s + and bom_item.docstatus < 2 and bom_item.item_code = item.name + and item.is_stock_item in (1, {0}) + group by bom_item.item_code""".format(self.include_non_stock_items),{ + 'bom': bom_no, + 'parent_qty': parent_qty + }, as_dict=1) + + for d in items: + if not data.include_exploded_items or not d.default_bom: + if d.item_code in bom_wise_item_details: + bom_wise_item_details[d.item_code].qty = bom_wise_item_details[d.item_code].qty + d.qty + else: + bom_wise_item_details[d.item_code] = d + + if data.include_exploded_items and d.default_bom: + if ((d.default_material_request_type in ["Manufacture", "Purchase"] and + not d.is_sub_contracted) or (d.is_sub_contracted and self.include_subcontracted_items)): + if d.qty > 0: + self.get_subitems(data, bom_wise_item_details, d.default_bom, d.qty) + + return bom_wise_item_details + + def add_item_in_material_request_items(self, item, row, data): + total_qty = row.qty * data.planned_qty + projected_qty, actual_qty = get_bin_details(row) + + requested_qty = 0 + if self.ignore_existing_ordered_qty: + requested_qty = total_qty + elif total_qty > projected_qty: + requested_qty = total_qty - projected_qty + + if requested_qty and requested_qty < row.min_order_qty: + requested_qty = row.min_order_qty + + if requested_qty > 0: + self.append('mr_items', { + 'item_code': item, + 'item_name': row.item_name, + 'quantity': requested_qty, + 'warehouse': row.source_warehouse or row.default_warehouse, + 'actual_qty': actual_qty, + 'min_order_qty': row.min_order_qty, + 'sales_order': data.sales_order + }) + + def make_production_order(self): + pro_list = [] + self.validate_data() + items_data = self.get_production_items() + + for key, item in items_data.items(): + production_order = self.create_production_order(item) + if production_order: + pro_list.append(production_order) + + frappe.flags.mute_messages = False + + if pro_list: + pro_list = ["""%s""" % \ + (p, p) for p in pro_list] + msgprint(_("{0} created").format(comma_and(pro_list))) + else : + msgprint(_("No Production Orders created")) + + def create_production_order(self, item): + from erpnext.manufacturing.doctype.production_order.production_order import OverProductionError, get_default_warehouse + warehouse = get_default_warehouse() + pro = frappe.new_doc("Production Order") + pro.update(item) + pro.set_production_order_operations() + + if not pro.fg_warehouse: + pro.fg_warehouse = warehouse.get('fg_warehouse') + try: + pro.insert() + return pro.name + except OverProductionError: + pass + + def make_material_request(self): + material_request_list = [] + + item_details = self.get_itemwise_qty() + for item_code, rows in item_details.items(): + item_doc = frappe.get_doc("Item", item_code) + schedule_date = add_days(nowdate(), cint(item_doc.lead_time_days)) + + material_request = frappe.new_doc("Material Request") + material_request.update({ + "transaction_date": nowdate(), + "status": "Draft", + "company": self.company, + "requested_by": frappe.session.user, + "schedule_date": schedule_date, + 'material_request_type': item_doc.default_material_request_type + }) + + for idx in rows: + child = self.mr_items[cint(idx)-1] + material_request.append("items", { + "item_code": item_code, + "qty": child.quantity, + "schedule_date": schedule_date, + "warehouse": child.warehouse, + "sales_order": child.sales_order, + 'production_plan': self.name, + 'material_request_plan_item': child.name, + "project": frappe.db.get_value("Sales Order", child.sales_order, "project") \ + if child.sales_order else None + }) + + material_request.flags.ignore_permissions = 1 + material_request.run_method("set_missing_values") + material_request.submit() + material_request_list.append(material_request.name) + + frappe.flags.mute_messages = False + + if material_request_list: + material_request_list = ["""%s""" % \ + (p, p) for p in material_request_list] + msgprint(_("{0} created").format(comma_and(material_request_list))) + else : + msgprint(_("No material request created")) + + def get_itemwise_qty(self): + item_details = {} + for data in self.get('mr_items'): + if data.item_code in item_details: + item_details[data.item_code].append(data.idx) + else: + item_details.setdefault(data.item_code, [data.idx]) + + return item_details + +@frappe.whitelist() +def get_bin_details(row): + if isinstance(row, basestring): + row = frappe._dict(json.loads(row)) + + conditions = "" + warehouse = row.source_warehouse or row.default_warehouse or row.warehouse + if warehouse: + conditions = " and warehouse='{0}'".format(frappe.db.escape(warehouse)) + + item_projected_qty = frappe.db.sql(""" select ifnull(sum(projected_qty),0) as projected_qty, + ifnull(sum(actual_qty),0) as actual_qty from `tabBin` + where item_code = %(item_code)s {conditions} + """.format(conditions=conditions), { "item_code": row.item_code }, as_list=1) + + return item_projected_qty and item_projected_qty[0] or (0,0) diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan_dashboard.py b/erpnext/manufacturing/doctype/production_plan/production_plan_dashboard.py new file mode 100644 index 00000000000..5be6b2232f0 --- /dev/null +++ b/erpnext/manufacturing/doctype/production_plan/production_plan_dashboard.py @@ -0,0 +1,12 @@ +from frappe import _ + +def get_data(): + return { + 'fieldname': 'production_plan', + 'transactions': [ + { + 'label': _('Related'), + 'items': ['Production Order', 'Material Request'] + }, + ] + } \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_plan/production_plan_list.js b/erpnext/manufacturing/doctype/production_plan/production_plan_list.js new file mode 100644 index 00000000000..d377ef0af76 --- /dev/null +++ b/erpnext/manufacturing/doctype/production_plan/production_plan_list.js @@ -0,0 +1,17 @@ +frappe.listview_settings['Production Plan'] = { + add_fields: ["status"], + filters: [["status", "!=", "Stopped"]], + get_indicator: function(doc) { + if(doc.status==="Submitted") { + return [__("Not Started"), "orange", "status,=,Submitted"]; + } else { + return [__(doc.status), { + "Draft": "red", + "In Process": "orange", + "Completed": "green", + "Material Requested": "darkgrey", + "Cancelled": "darkgrey" + }[doc.status], "status,=," + doc.status]; + } + } +}; diff --git a/erpnext/manufacturing/doctype/production_plan/test_production_plan.js b/erpnext/manufacturing/doctype/production_plan/test_production_plan.js new file mode 100644 index 00000000000..ef7d64c92da --- /dev/null +++ b/erpnext/manufacturing/doctype/production_plan/test_production_plan.js @@ -0,0 +1,23 @@ +/* eslint-disable */ +// rename this file from _test_[name] to test_[name] to activate +// and remove above this line + +QUnit.test("test: Production Plan", function (assert) { + let done = assert.async(); + + // number of asserts + assert.expect(1); + + frappe.run_serially([ + // insert a new Production Plan + () => frappe.tests.make('Production Plan', [ + // values to be set + {key: 'value'} + ]), + () => { + assert.equal(cur_frm.doc.key, 'value'); + }, + () => done() + ]); + +}); diff --git a/erpnext/manufacturing/doctype/production_plan/test_production_plan.py b/erpnext/manufacturing/doctype/production_plan/test_production_plan.py new file mode 100644 index 00000000000..15fff7d491d --- /dev/null +++ b/erpnext/manufacturing/doctype/production_plan/test_production_plan.py @@ -0,0 +1,148 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors +# See license.txt +from __future__ import unicode_literals + +import frappe +import unittest +from frappe.utils import nowdate, now_datetime, flt +from erpnext.stock.doctype.item.test_item import create_item +from erpnext.stock.doctype.stock_reconciliation.test_stock_reconciliation import create_stock_reconciliation + +class TestProductionPlan(unittest.TestCase): + def setUp(self): + for item in ['Test Production Item 1', 'Subassembly Item 1', + 'Raw Material Item 1', 'Raw Material Item 2']: + create_item(item, valuation_rate=100) + + sr = frappe.db.get_value('Stock Reconciliation Item', + {'item_code': item, 'docstatus': 1}, 'parent') + if sr: + sr_doc = frappe.get_doc('Stock Reconciliation', sr) + sr_doc.cancel() + + create_item('Test Non Stock Raw Material', is_stock_item=0) + for item, raw_materials in {'Subassembly Item 1': ['Raw Material Item 1', 'Raw Material Item 2'], + 'Test Production Item 1': ['Raw Material Item 1', 'Subassembly Item 1', + 'Test Non Stock Raw Material']}.items(): + if not frappe.db.get_value('BOM', {'item': item}): + print(item, raw_materials) + make_bom(item = item, raw_materials = raw_materials) + + def test_production_plan(self): + pln = create_production_plan(item_code='Test Production Item 1') + self.assertTrue(len(pln.mr_items), 2) + pln.make_material_request() + + pln = frappe.get_doc('Production Plan', pln.name) + self.assertTrue(pln.status, 'Material Requested') + material_requests = frappe.get_all('Material Request Item', fields = ['distinct parent'], + filters = {'production_plan': pln.name}, as_list=1) + + self.assertTrue(len(material_requests), 2) + + pln.make_production_order() + production_orders = frappe.get_all('Production Order', fields = ['name'], + filters = {'production_plan': pln.name}, as_list=1) + + self.assertTrue(len(production_orders), len(pln.po_items)) + + for name in material_requests: + mr = frappe.get_doc('Material Request', name[0]) + mr.cancel() + + for name in production_orders: + mr = frappe.delete_doc('Production Order', name[0]) + + pln = frappe.get_doc('Production Plan', pln.name) + pln.cancel() + + def test_production_plan_for_existing_ordered_qty(self): + sr1 = create_stock_reconciliation(item_code="Raw Material Item 1", + target="_Test Warehouse - _TC", qty=1, rate=100) + sr2 = create_stock_reconciliation(item_code="Raw Material Item 2", + target="_Test Warehouse - _TC", qty=1, rate=100) + + pln = create_production_plan(item_code='Test Production Item 1', ignore_existing_ordered_qty=0) + self.assertTrue(len(pln.mr_items), 1) + self.assertTrue(flt(pln.mr_items[0].quantity), 1.0) + + sr1.cancel() + sr2.cancel() + pln.cancel() + + def test_production_plan_with_non_stock_item(self): + pln = create_production_plan(item_code='Test Production Item 1', include_non_stock_items=0) + self.assertTrue(len(pln.mr_items), 3) + pln.cancel() + + def test_production_plan_without_multi_level(self): + pln = create_production_plan(item_code='Test Production Item 1', use_multi_level_bom=0) + self.assertTrue(len(pln.mr_items), 2) + pln.cancel() + + def test_production_plan_without_multi_level_for_existing_ordered_qty(self): + sr1 = create_stock_reconciliation(item_code="Raw Material Item 1", + target="_Test Warehouse - _TC", qty=1, rate=100) + sr2 = create_stock_reconciliation(item_code="Subassembly Item 1", + target="_Test Warehouse - _TC", qty=1, rate=100) + + pln = create_production_plan(item_code='Test Production Item 1', + use_multi_level_bom=0, ignore_existing_ordered_qty=0) + self.assertTrue(len(pln.mr_items), 0) + + sr1.cancel() + sr2.cancel() + pln.cancel() + +def create_production_plan(**args): + args = frappe._dict(args) + + pln = frappe.get_doc({ + 'doctype': 'Production Plan', + 'company': args.company or '_Test Company', + 'posting_date': nowdate(), + 'include_non_stock_items': args.include_non_stock_items or 1, + 'include_subcontracted_items': args.include_subcontracted_items or 1, + 'ignore_existing_ordered_qty': args.ignore_existing_ordered_qty or 1, + 'po_items': [{ + 'use_multi_level_bom': args.use_multi_level_bom or 1, + 'item_code': args.item_code, + 'bom_no': frappe.db.get_value('Item', args.item_code, 'default_bom'), + 'planned_qty': args.planned_qty or 1, + 'planned_start_date': args.planned_start_date or now_datetime() + }] + }) + pln.get_items_for_material_requests() + + if not args.do_not_save: + pln.insert() + if not args.do_not_submit: + pln.submit() + + return pln + +def make_bom(**args): + args = frappe._dict(args) + + bom = frappe.get_doc({ + 'doctype': "BOM", + 'is_default': 1, + 'item': args.item, + 'quantity': args.quantity or 1, + 'company': args.company or '_Test Company' + }) + + for item in args.raw_materials: + item_doc = frappe.get_doc('Item', item) + + bom.append('items', { + 'item_code': item, + 'qty': 1, + 'uom': item_doc.stock_uom, + 'stock_uom': item_doc.stock_uom, + 'rate': item_doc.valuation_rate + }) + + bom.insert(ignore_permissions=True) + bom.submit() \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_plan_item/production_plan_item.json b/erpnext/manufacturing/doctype/production_plan_item/production_plan_item.json index 354afbd6660..3a8bcd94fcb 100644 --- a/erpnext/manufacturing/doctype/production_plan_item/production_plan_item.json +++ b/erpnext/manufacturing/doctype/production_plan_item/production_plan_item.json @@ -1,5 +1,6 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, "autoname": "hash", @@ -11,16 +12,50 @@ "editable_grid": 1, "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 2, + "fieldname": "include_exploded_items", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Include Exploded Items", + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 2, "fieldname": "item_code", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Item Code", "length": 0, "no_copy": 0, @@ -32,6 +67,7 @@ "print_hide_if_no_value": 0, "print_width": "150px", "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -40,16 +76,20 @@ "width": "150px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 2, "fieldname": "bom_no", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "BOM No", "length": 0, "no_copy": 0, @@ -61,6 +101,7 @@ "print_hide_if_no_value": 0, "print_width": "100px", "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -69,16 +110,20 @@ "width": "100px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "planned_qty", "fieldtype": "Float", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Planned Qty", "length": 0, "no_copy": 0, @@ -89,6 +134,7 @@ "print_hide_if_no_value": 0, "print_width": "100px", "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -97,17 +143,21 @@ "width": "100px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, - "default": "", + "columns": 0, + "default": "Today", "fieldname": "planned_start_date", "fieldtype": "Datetime", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, - "in_list_view": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, "label": "Planned Start Date", "length": 0, "no_copy": 0, @@ -116,6 +166,7 @@ "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -123,16 +174,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "column_break_6", "fieldtype": "Column Break", "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, "length": 0, "no_copy": 0, "permlevel": 0, @@ -140,6 +195,7 @@ "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, @@ -147,9 +203,11 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "description": "Reserved Warehouse in Sales Order / Finished Goods Warehouse", "fieldname": "warehouse", "fieldtype": "Link", @@ -157,7 +215,9 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "label": "Warehouse", "length": 0, "no_copy": 0, @@ -166,6 +226,7 @@ "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, @@ -173,16 +234,50 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, + "fieldname": "produced_qty", + "fieldtype": "Float", + "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": "Produced Qty", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, "fieldname": "sales_order", "fieldtype": "Link", "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": "Sales Order", "length": 0, "no_copy": 0, @@ -193,6 +288,7 @@ "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -200,16 +296,50 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, + "fieldname": "sales_order_item", + "fieldtype": "Data", + "hidden": 1, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Sales Order Item", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, "fieldname": "material_request", "fieldtype": "Link", "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": "Material Request", "length": 0, "no_copy": 0, @@ -219,6 +349,7 @@ "print_hide": 0, "print_hide_if_no_value": 0, "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -226,16 +357,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "pending_qty", "fieldtype": "Float", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, - "in_list_view": 1, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, "label": "Pending Qty", "length": 0, "no_copy": 0, @@ -246,6 +381,7 @@ "print_hide_if_no_value": 0, "print_width": "100px", "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -254,16 +390,20 @@ "width": "100px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "stock_uom", "fieldtype": "Link", "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": "UOM", "length": 0, "no_copy": 0, @@ -275,6 +415,7 @@ "print_hide_if_no_value": 0, "print_width": "80px", "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 1, "search_index": 0, @@ -283,16 +424,20 @@ "width": "80px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "description", "fieldtype": "Text Editor", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, - "in_list_view": 1, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, "label": "Description", "length": 0, "no_copy": 0, @@ -303,6 +448,7 @@ "print_hide_if_no_value": 0, "print_width": "200px", "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -311,16 +457,20 @@ "width": "200px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "material_request_item", "fieldtype": "Data", "hidden": 1, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 0, + "in_standard_filter": 0, "label": "material_request_item", "length": 0, "no_copy": 0, @@ -329,6 +479,37 @@ "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_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "ordered_qty", + "fieldtype": "Float", + "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": "Ordered Qty", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -336,17 +517,17 @@ "unique": 0 } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "idx": 1, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2016-07-11 03:28:04.410743", + "modified": "2018-02-16 12:13:41.513586", "modified_by": "Administrator", "module": "Manufacturing", "name": "Production Plan Item", @@ -355,6 +536,8 @@ "quick_entry": 0, "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, "sort_order": "ASC", + "track_changes": 0, "track_seen": 0 } \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_plan_material_request/production_plan_material_request.json b/erpnext/manufacturing/doctype/production_plan_material_request/production_plan_material_request.json index c4fdc9ae1ef..b5eb73ed061 100644 --- a/erpnext/manufacturing/doctype/production_plan_material_request/production_plan_material_request.json +++ b/erpnext/manufacturing/doctype/production_plan_material_request/production_plan_material_request.json @@ -1,5 +1,6 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, "autoname": "hash", @@ -12,16 +13,20 @@ "editable_grid": 1, "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "material_request", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Material Request", "length": 0, "no_copy": 0, @@ -34,24 +39,29 @@ "print_hide_if_no_value": 0, "print_width": "150px", "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, - "reqd": 0, + "reqd": 1, "search_index": 0, "set_only_once": 0, "unique": 0, "width": "150px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "col_break1", "fieldtype": "Column Break", "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, "length": 0, "no_copy": 0, "permlevel": 0, @@ -59,6 +69,7 @@ "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, @@ -66,16 +77,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "material_request_date", "fieldtype": "Date", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Material Request Date", "length": 0, "no_copy": 0, @@ -88,6 +103,7 @@ "print_hide_if_no_value": 0, "print_width": "120px", "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -96,17 +112,17 @@ "width": "120px" } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "idx": 0, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2016-07-11 03:28:04.519523", + "modified": "2017-10-29 12:31:57.986869", "modified_by": "Administrator", "module": "Manufacturing", "name": "Production Plan Material Request", @@ -116,7 +132,9 @@ "quick_entry": 0, "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, "sort_field": "modified", "sort_order": "ASC", + "track_changes": 0, "track_seen": 0 } \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.json b/erpnext/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.json index 43f79c9c60f..40f3662556b 100644 --- a/erpnext/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.json +++ b/erpnext/manufacturing/doctype/production_plan_sales_order/production_plan_sales_order.json @@ -1,5 +1,6 @@ { "allow_copy": 0, + "allow_guest_to_view": 0, "allow_import": 0, "allow_rename": 0, "autoname": "hash", @@ -11,16 +12,20 @@ "editable_grid": 1, "fields": [ { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "sales_order", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Sales Order", "length": 0, "no_copy": 0, @@ -32,24 +37,29 @@ "print_hide_if_no_value": 0, "print_width": "150px", "read_only": 0, + "remember_last_selected_value": 0, "report_hide": 0, - "reqd": 0, + "reqd": 1, "search_index": 0, "set_only_once": 0, "unique": 0, "width": "150px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "sales_order_date", "fieldtype": "Date", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Sales Order Date", "length": 0, "no_copy": 0, @@ -61,6 +71,7 @@ "print_hide_if_no_value": 0, "print_width": "120px", "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -69,16 +80,20 @@ "width": "120px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "col_break1", "fieldtype": "Column Break", "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, "length": 0, "no_copy": 0, "permlevel": 0, @@ -86,6 +101,7 @@ "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, @@ -93,16 +109,20 @@ "unique": 0 }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "customer", "fieldtype": "Link", "hidden": 0, "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Customer", "length": 0, "no_copy": 0, @@ -112,6 +132,7 @@ "print_hide_if_no_value": 0, "print_width": "150px", "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -120,9 +141,11 @@ "width": "150px" }, { + "allow_bulk_edit": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "default": "", "fieldname": "grand_total", "fieldtype": "Currency", @@ -130,7 +153,9 @@ "ignore_user_permissions": 0, "ignore_xss_filter": 0, "in_filter": 0, + "in_global_search": 0, "in_list_view": 1, + "in_standard_filter": 0, "label": "Grand Total", "length": 0, "no_copy": 0, @@ -140,6 +165,7 @@ "print_hide_if_no_value": 0, "print_width": "120px", "read_only": 1, + "remember_last_selected_value": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -148,17 +174,17 @@ "width": "120px" } ], + "has_web_view": 0, "hide_heading": 0, "hide_toolbar": 0, "idx": 1, "image_view": 0, "in_create": 0, - "in_dialog": 0, "is_submittable": 0, "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2016-07-11 03:28:04.587544", + "modified": "2017-10-29 12:29:36.726079", "modified_by": "Administrator", "module": "Manufacturing", "name": "Production Plan Sales Order", @@ -167,6 +193,8 @@ "quick_entry": 0, "read_only": 0, "read_only_onload": 0, + "show_name_in_global_search": 0, "sort_order": "ASC", + "track_changes": 0, "track_seen": 0 } \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_planning_tool/README.md b/erpnext/manufacturing/doctype/production_planning_tool/README.md deleted file mode 100644 index 5dff64c69ef..00000000000 --- a/erpnext/manufacturing/doctype/production_planning_tool/README.md +++ /dev/null @@ -1 +0,0 @@ -Tool to create Production Orders from a bunch of Sales Orders and generate Material Requests (MRP) as required. \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_planning_tool/__init__.py b/erpnext/manufacturing/doctype/production_planning_tool/__init__.py deleted file mode 100644 index baffc488252..00000000000 --- a/erpnext/manufacturing/doctype/production_planning_tool/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from __future__ import unicode_literals diff --git a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.js b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.js deleted file mode 100644 index f541e5b0329..00000000000 --- a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.js +++ /dev/null @@ -1,128 +0,0 @@ -// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -// License: GNU General Public License v3. See license.txt - - - -cur_frm.cscript.onload = function(doc) { - cur_frm.set_value("company", frappe.defaults.get_user_default("Company")) -} - -cur_frm.cscript.refresh = function(doc) { - cur_frm.disable_save(); -} - -cur_frm.add_fetch("material_request", "transaction_date", "material_request_date"); - -cur_frm.add_fetch("sales_order", "transaction_date", "sales_order_date"); -cur_frm.add_fetch("sales_order", "customer", "customer"); -cur_frm.add_fetch("sales_order", "base_grand_total", "grand_total"); - -frappe.ui.form.on("Production Planning Tool", { - onload_post_render: function(frm) { - frm.get_field("items").grid.set_multiple_add("item_code", "planned_qty"); - }, - get_sales_orders: function(frm) { - frappe.call({ - doc: frm.doc, - method: "get_open_sales_orders", - callback: function(r) { - refresh_field("sales_orders"); - } - }); - }, - - get_material_request: function(frm) { - frappe.call({ - doc: frm.doc, - method: "get_pending_material_requests", - callback: function(r) { - refresh_field("material_requests"); - } - }); - }, - - get_items: function(frm) { - frappe.call({ - doc: frm.doc, - method: "get_items", - callback: function(r) { - refresh_field("items"); - } - }); - }, - - create_production_order: function(frm) { - frappe.call({ - doc: frm.doc, - method: "raise_production_orders" - }); - }, - - create_material_requests: function(frm) { - frappe.call({ - doc: frm.doc, - method: "raise_material_requests" - }); - } -}); - -cur_frm.cscript.item_code = function(doc,cdt,cdn) { - var d = locals[cdt][cdn]; - if (d.item_code) { - frappe.call({ - method: "erpnext.manufacturing.doctype.production_order.production_order.get_item_details", - args: { - "item" : d.item_code - }, - callback: function(r) { - $.extend(d, r.message); - refresh_field("items"); - } - }); - } -} - -cur_frm.cscript.download_materials_required = function(doc, cdt, cdn) { - return $c_obj(doc, 'validate_data', '', function(r, rt) { - if (!r['exc']) - $c_obj_csv(doc, 'download_raw_materials', '', ''); - }); -} - -cur_frm.fields_dict['sales_orders'].grid.get_field('sales_order').get_query = function(doc) { - var args = { "docstatus": 1 }; - if(doc.customer) { - args["customer"] = doc.customer; - } - - return { filters: args } -} - -cur_frm.fields_dict['items'].grid.get_field('item_code').get_query = function(doc) { - return erpnext.queries.item({ - 'is_stock_item': 1 - }); -} - -cur_frm.fields_dict['items'].grid.get_field('bom_no').get_query = function(doc, cdt, cdn) { - var d = locals[cdt][cdn]; - if (d.item_code) { - return { - query: "erpnext.controllers.queries.bom", - filters:{'item': cstr(d.item_code)} - } - } else frappe.msgprint(__("Please enter Item first")); -} - -cur_frm.fields_dict.customer.get_query = function(doc,cdt,cdn) { - return{ - query: "erpnext.controllers.queries.customer_query" - } -} - -cur_frm.fields_dict.sales_orders.grid.get_field("customer").get_query = - cur_frm.fields_dict.customer.get_query; - -cur_frm.cscript.planned_start_date = function(doc, cdt, cdn) { - erpnext.utils.copy_value_in_all_row(doc, cdt, cdn, "items", "planned_start_date"); -} diff --git a/erpnext/manufacturing/doctype/production_planning_tool/test_production_planning_tool.py b/erpnext/manufacturing/doctype/production_planning_tool/test_production_planning_tool.py deleted file mode 100644 index af4220ccfc9..00000000000 --- a/erpnext/manufacturing/doctype/production_planning_tool/test_production_planning_tool.py +++ /dev/null @@ -1,388 +0,0 @@ -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -# MIT License. See license.txt - -import frappe -import frappe.defaults -import unittest -from frappe.test_runner import make_test_records - -from erpnext.manufacturing.doctype.production_planning_tool.production_planning_tool import ProductionPlanningTool - -# load test records and dependencies - -test_records = frappe.get_test_records('Production Planning Tool') - -test_dependencies = ["Item","BOM"] - -class TestEvent(unittest.TestCase): - - def test_materials_requests_all_raw_multi_level(self): - items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", - "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", - "_Test PPT Item SC B","_Test PPT Item Master"] - quantities = [14,9,36,1,0,0,0,0,0,0] - types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", - "Purchase","Manufacture"] - - self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=1, only_raw_materials=1, \ - include_subcontracted=1) - - def test_materials_requests_multi_no_subcontracted(self): - items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", - "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", - "_Test PPT Item SC B","_Test PPT Item Master"] - quantities = [14,5,20,0,0,0,0,0,0,0] - types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", - "Purchase","Manufacture"] - - # This one should fail for now - self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=1, only_raw_materials=1, \ - include_subcontracted=0) - - - - def test_materials_requests_manufacture_and_sub_multi_level(self): - items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", - "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", - "_Test PPT Item SC B","_Test PPT Item Master"] - quantities = [14,9,36,1,2,5,2,1,4,0] - types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", - "Purchase","Manufacture"] - - self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=1, only_raw_materials=0, \ - include_subcontracted=1) - - def test_materials_requests_manufacture_multi_level(self): - items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", - "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", - "_Test PPT Item SC B","_Test PPT Item Master"] - quantities = [14,5,20,0,2,5,2,1,4,0] - types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", - "Purchase","Manufacture"] - - self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=1, only_raw_materials=0, \ - include_subcontracted=0) - - - - def test_materials_requests_single_level_purch_only(self): - items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", - "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", - "_Test PPT Item SC B","_Test PPT Item Master"] - quantities = [2,0,0,0,0,0,0,1,0,0] - types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", - "Purchase","Manufacture"] - - self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=0, only_raw_materials=1, \ - include_subcontracted=0) - - def test_materials_requests_single_level(self): - items = ["_Test PPT Item Raw A","_Test PPT Item Raw B","_Test PPT Item Raw C","_Test PPT Item Raw D", - "_Test PPT Item Sub A","_Test PPT Item Sub B","_Test PPT Item Sub C","_Test PPT Item SC A", - "_Test PPT Item SC B","_Test PPT Item Master"] - quantities = [2,0,0,0,2,1,0,1,0,0] - types = ["Purchase","Purchase","Purchase","Purchase","Manufacture","Manufacture","Manufacture","Purchase", - "Purchase","Manufacture"] - - self.runtest_materials_requests(items, quantities, types, use_multi_level_bom=0, only_raw_materials=0, \ - include_subcontracted=0) - - def runtest_materials_requests(self, items, quantities, types,use_multi_level_bom, only_raw_materials, \ - include_subcontracted): - - clear_material_requests() - create_test_records() - - ppt = run_production_planning_tool(use_multi_level_bom=use_multi_level_bom, - only_raw_materials=only_raw_materials, include_subcontracted=include_subcontracted, - item_code = "_Test PPT Item Master", bom_no = "BOM-_Test PPT Item Master-001", - planned_qty = 1, planned_start_date = "5/5/2029", - warehouse = "_Test Warehouse - _TC", company = "_Test Company") - - create_material_requests(ppt) - - for item, qty, type in zip(items, quantities, types): - self.assertEqual(qty, get_requested_qty(item)) - for mat_req_type in get_requested_types(item): - self.assertEqual(type, mat_req_type) - -def create_test_records(): - from erpnext.stock.doctype.item.test_item import make_item - - subA = make_item("_Test PPT Item Sub A",{ - "item_code": "_Test PPT Item Sub A", - "item_name": "_Test PPT Item Sub A", - "description": "A manufactured _Test PPT Item Sub Assembly", - "default_material_request_type": "Manufacture", - "is_sub_contracted_item": 0, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - - subB = make_item("_Test PPT Item Sub B",{ - "item_code": "_Test PPT Item Sub B", - "item_name": "_Test PPT Item Sub B", - "description": "A manufactured _Test PPT Item Sub Assembly", - "default_material_request_type": "Manufacture", - "is_sub_contracted_item": 0, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - - subC = make_item("_Test PPT Item Sub C",{ - "item_code": "_Test PPT Item Sub C", - "item_name": "_Test PPT Item Sub C", - "description": "A manufactured _Test PPT Item Sub Assembly", - "default_material_request_type": "Manufacture", - "is_sub_contracted_item": 0, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - - sCA = make_item("_Test PPT Item SC A",{ - "item_code": "_Test PPT Item SC A", - "item_name": "_Test PPT Item SC A", - "description": "A subcontracted part with raw materials", - "default_material_request_type": "Purchase", - "is_sub_contracted_item": 1, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - subA = make_item("_Test PPT Item Sub A",{ - "item_code": "_Test PPT Item Sub A", - "item_name": "_Test PPT Item Sub A", - "description": "A manufactured _Test PPT Item Sub Assembly", - "default_material_request_type": "Manufacture", - "is_sub_contracted_item": 0, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - sCB = make_item("_Test PPT Item SC B",{ - "item_code": "_Test PPT Item SC B", - "item_name": "_Test PPT Item SC B", - "description": "A subcontracted part with raw materials", - "default_material_request_type": "Purchase", - "is_sub_contracted_item": 1, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - - rawA = make_item("_Test PPT Item Raw A",{ - "item_code": "_Test PPT Item Raw A", - "item_name": "_Test PPT Item Raw A", - "description": "A raw material", - "default_material_request_type": "Purchase", - "is_sub_contracted_item": 0, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - - rawB = make_item("_Test PPT Item Raw B",{ - "item_code": "_Test PPT Item Raw B", - "item_name": "_Test PPT Item Raw B", - "description": "A raw material", - "default_material_request_type": "Purchase", - "is_sub_contracted_item": 0, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - - rawC = make_item("_Test PPT Item Raw C",{ - "item_code": "_Test PPT Item Raw C", - "item_name": "_Test PPT Item Raw C", - "description": "A raw material", - "default_material_request_type": "Purchase", - "is_sub_contracted_item": 0, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - - rawD = make_item("_Test PPT Item Raw D",{ - "item_code": "_Test PPT Item Raw D", - "item_name": "_Test PPT Item Raw D", - "description": "A raw material", - "default_material_request_type": "Purchase", - "is_sub_contracted_item": 0, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - - master = make_item("_Test PPT Item Master",{ - "item_code": "_Test PPT Item Master", - "item_name": "_Test PPT Item Master", - "description": "The final assembly", - "default_material_request_type": "Manufacture", - "is_sub_contracted_item": 0, - "is_stock_item": 1, - "stock_uom": "_Test UOM", - "item_group": "_Test Item Group", - "default_warehouse": "_Test Warehouse - _TC"}) - - - - bom_subB = make_bom("BOM-_Test PPT Item Sub B-001",{"quantity":1.0, - "item": "_Test PPT Item Sub B", - "is_active": 1, - "is_default": 1, - "docstatus": 1, - "with_operations": 0}, [{"item_code": "_Test PPT Item Raw B", "doctype":"BOM Item", "stock_qty":1, - "rate":100, "amount": 100, "stock_uom": "_Test UOM"}, - {"item_code": "_Test PPT Item Raw C", "doctype":"BOM Item", "stock_qty":4, "rate":100, - "amount": 400,"stock_uom": "_Test UOM"}]) - - bom_subC = make_bom("BOM-_Test PPT Item Sub C-001",{"quantity":1, - "item": "_Test PPT Item Sub C", - "is_active": 1, - "is_default": 1, - "docstatus": 1, - "with_operations": 0}, [ - {"item_code": "_Test PPT Item Raw A","item_name": "_Test PPT Item Raw A", - "doctype":"BOM Item", "stock_qty":6, "rate":100, "amount": 600}, - {"item_code": "_Test PPT Item Sub B","item_name": "_Test PPT Item Sub B", - "bom_no":"BOM-_Test PPT Item Sub B-001", "doctype":"BOM Item", "stock_qty":2, - "rate":100, "amount": 200}]) - - bom_sCA = make_bom("BOM-_Test PPT Item SC A-001",{"quantity":1, - "item": "_Test PPT Item SC A", - "is_active": 1, - "is_default": 1, - "docstatus": 1, - "with_operations": 0}, [ - {"item_code": "_Test PPT Item Raw D","item_name": "_Test PPT Item Raw D", - "doctype":"BOM Item", "stock_qty":1, "rate":100, "amount": 100}]) - - bom_sCB = make_bom("BOM-_Test PPT Item SC B-001",{"quantity":1, - "item": "_Test PPT Item SC B", - "is_active": 1, - "is_default": 1, - "docstatus": 1, - "with_operations": 0}, [ - {"item_code": "_Test PPT Item Raw B","item_name": "_Test PPT Item Raw B", - "doctype":"BOM Item", "stock_qty":1, "rate":100, "amount": 100}, - {"item_code": "_Test PPT Item Raw C","item_name": "_Test PPT Item Raw C", - "doctype":"BOM Item", "stock_qty":4, "rate":100, "amount": 400}]) - - bom_subA = make_bom("BOM-_Test PPT Item Sub A-001",{"quantity":1, - "item": "_Test PPT Item Sub A", - "is_active": 1, - "is_default": 1, - "docstatus": 1, - "with_operations": 0}, [ - {"item_code": "_Test PPT Item Sub C","item_name": "_Test PPT Item Sub C", - "bom_no":"BOM-_Test PPT Item Sub C-001", "doctype":"BOM Item", - "stock_qty":1, "rate":100, "amount": 100}, - {"item_code": "_Test PPT Item SC B","item_name": "_Test PPT Item SC B", - "bom_no":"BOM-_Test PPT Item SC B-001", "doctype":"BOM Item", "stock_qty":2, - "rate":100, "amount": 200}]) - - bom_master = make_bom("BOM-_Test PPT Item Master-001",{"quantity":1, - "item": "_Test PPT Item Master", - "is_active": 1, - "is_default": 1, - "docstatus": 1, - "with_operations": 0}, [ - {"item_code": "_Test PPT Item Sub A","item_name": "_Test PPT Item Sub A", - "bom_no":"BOM-_Test PPT Item Sub A-001", - "doctype":"BOM Item", "stock_qty":2, "rate":100, "amount": 200}, - {"item_code": "_Test PPT Item Sub B","item_name": "_Test PPT Item Sub B", - "bom_no":"BOM-_Test PPT Item Sub B-001", - "doctype":"BOM Item", "stock_qty":1, "rate":100, "amount": 100}, - {"item_code": "_Test PPT Item Raw A","item_name": "_Test PPT Item Raw A", - "doctype":"BOM Item", "stock_qty":2, "rate":100, - "amount": 200}, - {"item_code": "_Test PPT Item SC A","item_name": "_Test PPT Item SC A", - "bom_no":"BOM-_Test PPT Item SC A-001", - "doctype":"BOM Item", "stock_qty":1, "rate":100, "amount": 100} - ]) - - -def make_bom(name, properties=None, items=None): - if frappe.db.exists("BOM", name): - return frappe.get_doc("BOM", name) - - bom = frappe.new_doc("BOM") - item = frappe.get_doc({ - "doctype": "BOM", - "name": name, - "quantity": "1", - "with_operations": 0 - }) - - if properties: - bom.update(properties) - - if items: - for item in items: - bom.append("items", item) - - - bom.insert() - bom.submit() - - return bom - -def clear_material_requests(): - frappe.db.sql("delete from `tabMaterial Request Item`") - frappe.db.sql("delete from `tabMaterial Request`") - - -def run_production_planning_tool(**args): - ppt = frappe.new_doc("Production Planning Tool") - args = frappe._dict(args) - - if args.use_multi_level_bom: - ppt.use_multi_level_bom = args.use_multi_level_bom - else: - ppt.use_multi_level_bom = 0 - - if args.only_raw_materials: - ppt.only_raw_materials = args.only_raw_materials - else: - ppt.only_raw_materials = 0 - - if args.include_subcontracted: - ppt.include_subcontracted = args.include_subcontracted - else: - ppt.include_subcontracted = 0 - - if args.warehouse: - ppt.purchase_request_for_warehouse = args.warehouse - - if args.company: - ppt.company = args.company - ppt.create_material_requests_for_all_required_qty = 1 - - ppt.append("items",{"item_code": args.item_code, "bom_no": args.bom_no, "planned_qty": args.planned_qty, - "planned_start_date": args.planned_start_date, "warehouse": args.warehouse}) - - return ppt - -def create_material_requests(ppt): - ppt.raise_material_requests() - -def get_requested_qty(item_code): - total_qty = 0 - for d in frappe.db.sql("""select item.qty as qty - from `tabMaterial Request` mat_req, `tabMaterial Request Item` item - where item.item_code = %(item_code)s and item.parent = mat_req.name""", {"item_code":item_code}, as_dict=1): - total_qty += d.qty - return total_qty - -def get_requested_types(item_code): - types = [] - for d in frappe.db.sql("""select mat_req.material_request_type as type - from `tabMaterial Request` mat_req, `tabMaterial Request Item` item - where item.item_code = %(item_code)s and item.parent = mat_req.name""", {"item_code":item_code}, as_dict=1): - types.append(d.type) - return types - diff --git a/erpnext/manufacturing/doctype/production_planning_tool/test_records.json b/erpnext/manufacturing/doctype/production_planning_tool/test_records.json deleted file mode 100644 index 2e807efe7f4..00000000000 --- a/erpnext/manufacturing/doctype/production_planning_tool/test_records.json +++ /dev/null @@ -1,3 +0,0 @@ -[ - -] diff --git a/erpnext/patches.txt b/erpnext/patches.txt index 243158cd968..6b30422f518 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -499,4 +499,5 @@ erpnext.patches.v10_0.set_currency_in_pricing_rule erpnext.patches.v10_0.workflow_expense_claim erpnext.patches.v10_0.set_b2c_limit erpnext.patches.v10_0.update_translatable_fields -erpnext.patches.v10_0.rename_offer_letter_to_job_offer \ No newline at end of file +erpnext.patches.v10_0.rename_offer_letter_to_job_offer +execute:frappe.delete_doc('DocType', 'Production Planning Tool', ignore_missing=True) diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index 8812d8e821b..edb36fc771c 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -234,10 +234,6 @@ class Company(Document): frappe.db.set(self, "round_off_cost_center", _("Main") + " - " + self.abbr) frappe.db.set(self, "depreciation_cost_center", _("Main") + " - " + self.abbr) - def before_rename(self, olddn, newdn, merge=False): - if merge: - frappe.throw(_("Sorry, companies cannot be merged")) - def after_rename(self, olddn, newdn, merge=False): frappe.db.set(self, "company_name", newdn) diff --git a/erpnext/stock/doctype/item/test_item.py b/erpnext/stock/doctype/item/test_item.py index 8a436fdf906..9b3c2c37673 100644 --- a/erpnext/stock/doctype/item/test_item.py +++ b/erpnext/stock/doctype/item/test_item.py @@ -296,7 +296,7 @@ def make_item_variant(): test_records = frappe.get_test_records('Item') -def create_item(item_code, is_stock_item=None): +def create_item(item_code, is_stock_item=None, valuation_rate=0, warehouse=None): if not frappe.db.exists("Item", item_code): item = frappe.new_doc("Item") item.item_code = item_code @@ -304,4 +304,6 @@ def create_item(item_code, is_stock_item=None): item.description = item_code item.item_group = "All Item Groups" item.is_stock_item = is_stock_item or 1 + item.valuation_rate = valuation_rate or 0.0 + item.default_warehouse = warehouse or '_Test Warehouse - _TC' item.save() diff --git a/erpnext/stock/doctype/material_request/material_request.json b/erpnext/stock/doctype/material_request/material_request.json index ba373453beb..7da305caf92 100644 --- a/erpnext/stock/doctype/material_request/material_request.json +++ b/erpnext/stock/doctype/material_request/material_request.json @@ -702,6 +702,36 @@ "search_index": 0, "set_only_once": 0, "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 1, + "columns": 0, + "fieldname": "reference", + "fieldtype": "Section Break", + "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": "Reference", + "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 } ], "has_web_view": 0, @@ -716,7 +746,7 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2017-10-05 18:24:17.148782", + "modified": "2017-12-03 18:45:10.293916", "modified_by": "Administrator", "module": "Stock", "name": "Material Request", diff --git a/erpnext/stock/doctype/material_request/material_request.py b/erpnext/stock/doctype/material_request/material_request.py index 32874419c36..e6e933c563c 100644 --- a/erpnext/stock/doctype/material_request/material_request.py +++ b/erpnext/stock/doctype/material_request/material_request.py @@ -92,6 +92,7 @@ class MaterialRequest(BuyingController): def on_submit(self): # frappe.db.set(self, 'status', 'Submitted') self.update_requested_qty() + self.update_requested_qty_in_production_plan() def before_save(self): self.set_status(update=True) @@ -144,6 +145,7 @@ class MaterialRequest(BuyingController): def on_cancel(self): self.update_requested_qty() + self.update_requested_qty_in_production_plan() def update_completed_qty(self, mr_items=None, update_modified=True): if self.material_request_type == "Purchase": @@ -195,6 +197,22 @@ class MaterialRequest(BuyingController): "indented_qty": get_indented_qty(item_code, warehouse) }) + def update_requested_qty_in_production_plan(self): + production_plans = [] + for d in self.get('items'): + if d.production_plan and d.material_request_plan_item: + qty = d.qty if self.docstatus == 1 else 0 + frappe.db.set_value('Material Request Plan Item', + d.material_request_plan_item, 'requested_qty', qty) + + if d.production_plan not in production_plans: + production_plans.append(d.production_plan) + + for production_plan in production_plans: + doc = frappe.get_doc('Production Plan', production_plan) + doc.set_status() + doc.db_set('status', doc.status) + def update_completed_and_requested_qty(stock_entry, method): if stock_entry.doctype == "Stock Entry": material_request_map = {} diff --git a/erpnext/stock/doctype/material_request_item/material_request_item.json b/erpnext/stock/doctype/material_request_item/material_request_item.json index ef2e7fc8b47..8c63ae7255d 100644 --- a/erpnext/stock/doctype/material_request_item/material_request_item.json +++ b/erpnext/stock/doctype/material_request_item/material_request_item.json @@ -701,6 +701,67 @@ "set_only_once": 0, "unique": 0 }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "production_plan", + "fieldtype": "Link", + "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": "Production Plan", + "length": 0, + "no_copy": 1, + "options": "Production Plan", + "permlevel": 0, + "precision": "", + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_bulk_edit": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "material_request_plan_item", + "fieldtype": "Data", + "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": "Material Request Plan Item", + "length": 0, + "no_copy": 1, + "permlevel": 0, + "precision": "", + "print_hide": 1, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, { "allow_bulk_edit": 0, "allow_on_submit": 0, @@ -898,7 +959,7 @@ "issingle": 0, "istable": 1, "max_attachments": 0, - "modified": "2017-12-15 16:29:18.902085", + "modified": "2017-12-20 16:29:18.902085", "modified_by": "nabinhait@gmail.com", "module": "Stock", "name": "Material Request Item",