From 62dba50e9bc663009c335a93109700890f3835fc Mon Sep 17 00:00:00 2001 From: Neil Trini Lasrado Date: Mon, 10 Aug 2015 15:51:13 +0530 Subject: [PATCH] Multiple Fixes --- erpnext/change_log/v5/v5_1_0.md | 1 - erpnext/change_log/v5/v5_1_3.md | 1 - erpnext/config/stock.py | 7 +- erpnext/manufacturing/doctype/bom/bom.json | 462 +++++++++++++-- .../bom_explosion_item.json | 232 +++++++- .../doctype/bom_item/bom_item.json | 238 +++++++- .../doctype/bom_operation/bom_operation.json | 107 +++- .../bom_replace_tool/bom_replace_tool.json | 61 +- .../production_order/production_order.json | 530 +++++++++++++++-- erpnext/patches.txt | 1 - erpnext/patches/v5_0/item_variants.py | 19 - erpnext/patches/v5_4/item_template.py | 7 +- erpnext/projects/doctype/project/project.json | 561 ++++++++++++++++-- .../doctype/project_task/project_task.json | 75 ++- erpnext/stock/doctype/item/item.js | 78 +-- erpnext/stock/doctype/item/item.json | 30 +- erpnext/stock/doctype/item/item.py | 30 +- .../item_attribute/item_attribute.json | 54 +- .../item_template_attribute/__init__.py | 0 .../item_template_attribute.json | 192 ------ .../item_template_attribute.py | 10 - .../stock/doctype/manage_variants/__init__.py | 0 .../manage_variants/manage_variants.js | 60 -- .../manage_variants/manage_variants.json | 103 ---- .../manage_variants/manage_variants.py | 222 ------- .../manage_variants/test_manage_variants.py | 49 -- .../doctype/manage_variants_item/__init__.py | 0 .../manage_variants_item.json | 76 --- .../manage_variants_item.py | 10 - .../doctype/stock_entry/stock_entry.json | 2 +- .../doctype/stock_entry/test_stock_entry.py | 16 - .../stock_entry_detail.json | 2 +- .../stock_settings/stock_settings.json | 2 +- .../stock_uom_replace_utility.json | 104 +++- .../variant_attribute/variant_attribute.json | 161 ++++- 35 files changed, 2425 insertions(+), 1078 deletions(-) delete mode 100644 erpnext/patches/v5_0/item_variants.py delete mode 100644 erpnext/stock/doctype/item_template_attribute/__init__.py delete mode 100644 erpnext/stock/doctype/item_template_attribute/item_template_attribute.json delete mode 100644 erpnext/stock/doctype/item_template_attribute/item_template_attribute.py delete mode 100644 erpnext/stock/doctype/manage_variants/__init__.py delete mode 100644 erpnext/stock/doctype/manage_variants/manage_variants.js delete mode 100644 erpnext/stock/doctype/manage_variants/manage_variants.json delete mode 100644 erpnext/stock/doctype/manage_variants/manage_variants.py delete mode 100644 erpnext/stock/doctype/manage_variants/test_manage_variants.py delete mode 100644 erpnext/stock/doctype/manage_variants_item/__init__.py delete mode 100644 erpnext/stock/doctype/manage_variants_item/manage_variants_item.json delete mode 100644 erpnext/stock/doctype/manage_variants_item/manage_variants_item.py diff --git a/erpnext/change_log/v5/v5_1_0.md b/erpnext/change_log/v5/v5_1_0.md index 3ed2227f826..bf869a0a684 100644 --- a/erpnext/change_log/v5/v5_1_0.md +++ b/erpnext/change_log/v5/v5_1_0.md @@ -1,4 +1,3 @@ -- Item variants is now manageable via dedicated tool **Manage Variants**. To learn about it, check [Manual Page for Item variants](https://manual.erpnext.com/contents/stock/item/item-variants) - Against account in General Ledger will show Party instead of Account (which is not useful) - Print format for recurring documents can be set by the users - Recurring documents won't be created for Stopped Sales / Purchase Orders. diff --git a/erpnext/change_log/v5/v5_1_3.md b/erpnext/change_log/v5/v5_1_3.md index 9825a10ffb3..d6fbb7bb3a5 100644 --- a/erpnext/change_log/v5/v5_1_3.md +++ b/erpnext/change_log/v5/v5_1_3.md @@ -1,3 +1,2 @@ - Hide zero balance rows in batch-wise balance history report -- Autocomplete issue fixed in Manage Variants - Remove user permission (Employee role) if user id is unset from Employee record \ No newline at end of file diff --git a/erpnext/config/stock.py b/erpnext/config/stock.py index f4ec6f087c1..f5ecba0458a 100644 --- a/erpnext/config/stock.py +++ b/erpnext/config/stock.py @@ -82,12 +82,7 @@ def get_data(): "type": "doctype", "name": "Stock UOM Replace Utility", "description": _("Change UOM for an Item."), - }, - { - "type": "doctype", - "name": "Manage Variants", - "description": _("Manage Item Variants."), - }, + } ] }, { diff --git a/erpnext/manufacturing/doctype/bom/bom.json b/erpnext/manufacturing/doctype/bom/bom.json index 67e2b78bbb4..b1ffd4d6425 100644 --- a/erpnext/manufacturing/doctype/bom/bom.json +++ b/erpnext/manufacturing/doctype/bom/bom.json @@ -3,50 +3,112 @@ "allow_import": 1, "allow_rename": 0, "creation": "2013-01-22 15:11:38", + "custom": 0, "docstatus": 0, "doctype": "DocType", "document_type": "Master", "fields": [ { + "allow_on_submit": 0, "description": "Item to be manufactured or repacked", "fieldname": "item", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, "in_list_view": 1, "label": "Item", + "no_copy": 0, "oldfieldname": "item", "oldfieldtype": "Link", "options": "Item", "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, "reqd": 1, - "search_index": 1 + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "item_name", "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Item Name", + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "rm_cost_as_per", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Rate Of Materials Based On", + "no_copy": 0, "options": "Valuation Rate\nLast Purchase Rate\nPrice List", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "eval:doc.rm_cost_as_per===\"Price List\"", "fieldname": "buying_price_list", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Price List", + "no_copy": 0, "options": "Price List", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "cb0", "fieldtype": "Column Break", - "permlevel": 0 + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 1, @@ -54,213 +116,517 @@ "fieldname": "is_active", "fieldtype": "Check", "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Is Active", "no_copy": 1, "oldfieldname": "is_active", "oldfieldtype": "Select", "permlevel": 0, - "reqd": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 1, "default": "1", "fieldname": "is_default", "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Is Default", "no_copy": 1, "oldfieldname": "is_default", "oldfieldtype": "Check", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "Manage cost of operations", "fieldname": "with_operations", "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "With Operations", - "permlevel": 0 + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "", "description": "Specify the operations, operating cost and give a unique Operation no to your operations.", "fieldname": "operations_section", "fieldtype": "Section Break", - "label": "Operations", - "oldfieldtype": "Section Break", - "permlevel": 0 - }, - { - "fieldname": "operations", - "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Operations", + "no_copy": 0, + "oldfieldtype": "Section Break", + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "operations", + "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Operations", + "no_copy": 0, "oldfieldname": "bom_operations", "oldfieldtype": "Table", "options": "BOM Operation", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "materials_section", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Materials", + "no_copy": 0, "oldfieldtype": "Section Break", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "items", "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Items", + "no_copy": 0, "oldfieldname": "bom_materials", "oldfieldtype": "Table", "options": "BOM Item", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "1", "description": "Quantity of item obtained after manufacturing / repacking from given quantities of raw materials", "fieldname": "quantity", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Quantity", + "no_copy": 0, "oldfieldname": "quantity", "oldfieldtype": "Currency", "permlevel": 0, - "reqd": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "costing", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Costing", + "no_copy": 0, "oldfieldtype": "Section Break", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "operating_cost", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Operating Cost", + "no_copy": 0, "options": "Company:company:default_currency", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "raw_material_cost", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Raw Material Cost", + "no_copy": 0, "options": "Company:company:default_currency", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "cb1", "fieldtype": "Column Break", - "permlevel": 0 + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "total_cost", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Total Cost", + "no_copy": 0, "options": "Company:company:default_currency", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "more_info_section", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "", - "permlevel": 0 + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "project_name", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Project Name", + "no_copy": 0, "oldfieldname": "project_name", "oldfieldtype": "Link", "options": "Project", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "company", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Company", + "no_copy": 0, "options": "Company", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "amended_from", "fieldtype": "Link", + "hidden": 0, "ignore_user_permissions": 1, + "in_filter": 0, + "in_list_view": 0, "label": "Amended From", "no_copy": 1, "options": "BOM", "permlevel": 0, "print_hide": 1, - "read_only": 1 + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "col_break23", "fieldtype": "Column Break", - "permlevel": 0 + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "uom", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Item UOM", + "no_copy": 0, "options": "UOM", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "section_break_25", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "description", "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Item Desription", + "no_copy": 0, "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_27", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "image", "fieldtype": "Attach", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Image", + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { - "fieldname": "Image_view", + "allow_on_submit": 0, + "fieldname": "image_view", "fieldtype": "Image", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Image View", + "no_copy": 0, "options": "image", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "eval:!doc.__islocal", "fieldname": "section_break0", "fieldtype": "Section Break", "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Materials Required (Exploded)", + "no_copy": 0, "permlevel": 0, - "print_hide": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "exploded_items", "fieldtype": "Table", "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Exploded_items", "no_copy": 1, "oldfieldname": "flat_bom_details", @@ -268,7 +634,12 @@ "options": "BOM Explosion Item", "permlevel": 0, "print_hide": 1, - "read_only": 1 + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], "hide_heading": 0, @@ -276,46 +647,59 @@ "icon": "icon-sitemap", "idx": 1, "in_create": 0, + "in_dialog": 0, "is_submittable": 1, "issingle": 0, "istable": 0, - "modified": "2015-06-26 02:02:30.705279", + "modified": "2015-08-12 08:52:36.656865", "modified_by": "Administrator", "module": "Manufacturing", "name": "BOM", "owner": "Administrator", "permissions": [ { + "amend": 0, + "apply_user_permissions": 0, "cancel": 1, "create": 1, "delete": 1, "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, "print": 1, "read": 1, "report": 1, "role": "Manufacturing Manager", + "set_user_permissions": 0, "share": 1, "submit": 1, "write": 1 }, { + "amend": 0, "apply_user_permissions": 1, "cancel": 1, "create": 1, "delete": 1, "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, "print": 1, "read": 1, "report": 1, "role": "Manufacturing User", + "set_user_permissions": 0, "share": 1, "submit": 1, "write": 1 } ], "read_only": 0, + "read_only_onload": 0, "search_fields": "item", "sort_field": "modified", "sort_order": "DESC" diff --git a/erpnext/manufacturing/doctype/bom_explosion_item/bom_explosion_item.json b/erpnext/manufacturing/doctype/bom_explosion_item/bom_explosion_item.json index 14f091a068c..a05113df4d0 100644 --- a/erpnext/manufacturing/doctype/bom_explosion_item/bom_explosion_item.json +++ b/erpnext/manufacturing/doctype/bom_explosion_item/bom_explosion_item.json @@ -1,150 +1,336 @@ { + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, "autoname": "hash", "creation": "2013-03-07 11:42:57", + "custom": 0, "default_print_format": "Standard", "docstatus": 0, "doctype": "DocType", "fields": [ { + "allow_on_submit": 0, "fieldname": "item_code", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Item Code", + "no_copy": 0, "oldfieldname": "item_code", "oldfieldtype": "Link", "options": "Item", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "cb", "fieldtype": "Column Break", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "item_name", - "fieldtype": "Data", - "in_list_view": 1, - "label": "Item Name", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, + "fieldname": "item_name", + "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 1, + "label": "Item Name", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, "fieldname": "section_break_3", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "description", "fieldtype": "Text", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Description", + "no_copy": 0, "oldfieldname": "description", "oldfieldtype": "Text", "permlevel": 0, + "print_hide": 0, "print_width": "300px", "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "300px" }, { + "allow_on_submit": 0, "fieldname": "column_break_2", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "image", "fieldtype": "Attach", "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Image", + "no_copy": 0, "permlevel": 0, "precision": "", - "print_hide": 1 + "print_hide": 1, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "image_view", "fieldtype": "Image", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Image View", + "no_copy": 0, "options": "image", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "section_break_4", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "qty", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Qty", + "no_copy": 0, "oldfieldname": "qty", "oldfieldtype": "Currency", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "rate", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Rate", + "no_copy": 0, "oldfieldname": "standard_rate", "oldfieldtype": "Currency", "options": "Company:company:default_currency", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "qty_consumed_per_unit", "fieldtype": "Float", "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Qty Consumed Per Unit", "no_copy": 0, "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_8", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "stock_uom", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Stock UOM", + "no_copy": 0, "oldfieldname": "stock_uom", "oldfieldtype": "Link", "options": "UOM", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "amount", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Amount", + "no_copy": 0, "oldfieldname": "amount_as_per_sr", "oldfieldtype": "Currency", "options": "Company:company:default_currency", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], + "hide_heading": 0, + "hide_toolbar": 0, "idx": 1, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, "istable": 1, - "modified": "2015-02-19 01:06:59.399382", + "modified": "2015-08-12 08:52:39.190103", "modified_by": "Administrator", "module": "Manufacturing", "name": "BOM Explosion Item", "owner": "Administrator", "permissions": [], - "read_only": 0 + "read_only": 0, + "read_only_onload": 0 } \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/bom_item/bom_item.json b/erpnext/manufacturing/doctype/bom_item/bom_item.json index 4870241836a..06d83503618 100644 --- a/erpnext/manufacturing/doctype/bom_item/bom_item.json +++ b/erpnext/manufacturing/doctype/bom_item/bom_item.json @@ -1,174 +1,382 @@ { + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, "creation": "2013-02-22 01:27:49", + "custom": 0, "docstatus": 0, "doctype": "DocType", "fields": [ { + "allow_on_submit": 0, "fieldname": "item_code", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, "in_list_view": 1, "label": "Item Code", + "no_copy": 0, "oldfieldname": "item_code", "oldfieldtype": "Link", "options": "Item", "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, "reqd": 1, - "search_index": 1 + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "item_name", "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Item Name", + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_3", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "bom_no", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, "in_list_view": 0, "label": "BOM No", + "no_copy": 0, "oldfieldname": "bom_no", "oldfieldtype": "Link", "options": "BOM", "permlevel": 0, + "print_hide": 0, "print_width": "150px", + "read_only": 0, + "report_hide": 0, "reqd": 0, "search_index": 1, + "set_only_once": 0, + "unique": 0, "width": "150px" }, { + "allow_on_submit": 0, "fieldname": "section_break_5", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "description", "fieldtype": "Text", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Item Description", + "no_copy": 0, "oldfieldname": "description", "oldfieldtype": "Text", "permlevel": 0, + "print_hide": 0, "print_width": "250px", + "read_only": 0, + "report_hide": 0, "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "250px" }, { + "allow_on_submit": 0, "fieldname": "col_break1", "fieldtype": "Column Break", - "permlevel": 0 + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "image", "fieldtype": "Attach", "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Image", + "no_copy": 0, "permlevel": 0, "precision": "", - "print_hide": 1 + "print_hide": 1, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "image_view", "fieldtype": "Image", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Image View", + "no_copy": 0, "options": "image", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "quantity_and_rate", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Quantity and Rate", - "permlevel": 0 + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "qty", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Qty", + "no_copy": 0, "oldfieldname": "qty", "oldfieldtype": "Currency", "permlevel": 0, - "reqd": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "See \"Rate Of Materials Based On\" in Costing Section", "fieldname": "rate", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Rate", + "no_copy": 0, "options": "Company:company:default_currency", "permlevel": 0, - "reqd": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "col_break2", "fieldtype": "Column Break", - "permlevel": 0 + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "stock_uom", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Stock UOM", + "no_copy": 0, "oldfieldname": "stock_uom", "oldfieldtype": "Data", "options": "UOM", "permlevel": 0, + "print_hide": 0, "read_only": 1, - "reqd": 1 + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "amount", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Amount", + "no_copy": 0, "oldfieldname": "amount_as_per_mar", "oldfieldtype": "Currency", "options": "Company:company:default_currency", "permlevel": 0, + "print_hide": 0, "print_width": "150px", "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "150px" }, { + "allow_on_submit": 0, "fieldname": "scrap", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Scrap %", + "no_copy": 0, "oldfieldname": "scrap", "oldfieldtype": "Currency", "permlevel": 0, - "print_hide": 1 + "print_hide": 1, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "qty_consumed_per_unit", "fieldtype": "Float", "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Qty Consumed Per Unit", + "no_copy": 0, "oldfieldname": "qty_consumed_per_unit", "oldfieldtype": "Float", "permlevel": 0, "print_hide": 1, - "read_only": 1 + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], + "hide_heading": 0, + "hide_toolbar": 0, "idx": 1, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, "istable": 1, - "modified": "2015-02-12 15:17:18.324810", + "modified": "2015-08-12 08:52:41.512788", "modified_by": "Administrator", "module": "Manufacturing", "name": "BOM Item", "owner": "Administrator", "permissions": [], + "read_only": 0, + "read_only_onload": 0, "sort_field": "modified", "sort_order": "DESC" } \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/bom_operation/bom_operation.json b/erpnext/manufacturing/doctype/bom_operation/bom_operation.json index 0c25e8fcc20..59f0eb1e1cc 100644 --- a/erpnext/manufacturing/doctype/bom_operation/bom_operation.json +++ b/erpnext/manufacturing/doctype/bom_operation/bom_operation.json @@ -1,86 +1,175 @@ { + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, "creation": "2013-02-22 01:27:49", + "custom": 0, "docstatus": 0, "doctype": "DocType", "fields": [ { + "allow_on_submit": 0, "fieldname": "operation", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Operation", + "no_copy": 0, "oldfieldname": "operation_no", "oldfieldtype": "Data", "options": "Operation", "permlevel": 0, - "reqd": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "workstation", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Workstation", + "no_copy": 0, "oldfieldname": "workstation", "oldfieldtype": "Link", "options": "Workstation", "permlevel": 0, - "reqd": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "description", "fieldtype": "Text", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Operation Description", + "no_copy": 0, "oldfieldname": "opn_description", "oldfieldtype": "Text", "permlevel": 0, - "reqd": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "col_break1", "fieldtype": "Column Break", - "permlevel": 0 + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "hour_rate", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Hour Rate", + "no_copy": 0, "oldfieldname": "hour_rate", "oldfieldtype": "Currency", "permlevel": 0, - "reqd": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "In minutes", "fieldname": "time_in_mins", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Operation Time ", + "no_copy": 0, "oldfieldname": "time_in_mins", "oldfieldtype": "Currency", "options": "", "permlevel": 0, - "reqd": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 0, "fieldname": "operating_cost", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Operating Cost", + "no_copy": 0, "oldfieldname": "operating_cost", "oldfieldtype": "Currency", "permlevel": 0, + "print_hide": 0, "read_only": 1, - "reqd": 0 + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], + "hide_heading": 0, + "hide_toolbar": 0, "idx": 1, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, "istable": 1, - "modified": "2015-04-22 03:24:47.809532", + "modified": "2015-08-12 08:52:43.922881", "modified_by": "Administrator", "module": "Manufacturing", "name": "BOM Operation", "owner": "Administrator", - "permissions": [] + "permissions": [], + "read_only": 0, + "read_only_onload": 0 } \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/bom_replace_tool/bom_replace_tool.json b/erpnext/manufacturing/doctype/bom_replace_tool/bom_replace_tool.json index a1e215dd054..91ee189d7ea 100644 --- a/erpnext/manufacturing/doctype/bom_replace_tool/bom_replace_tool.json +++ b/erpnext/manufacturing/doctype/bom_replace_tool/bom_replace_tool.json @@ -1,40 +1,77 @@ { "allow_copy": 1, "allow_email": 1, + "allow_import": 0, "allow_print": 1, + "allow_rename": 0, "creation": "2012-12-06 12:10:10", + "custom": 0, "description": "Replace a particular BOM in all other BOMs where it is used. It will replace the old BOM link, update cost and regenerate \"BOM Explosion Item\" table as per new BOM", "docstatus": 0, "doctype": "DocType", "document_type": "Other", "fields": [ { + "allow_on_submit": 0, "description": "The BOM which will be replaced", "fieldname": "current_bom", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Current BOM", + "no_copy": 0, "options": "BOM", "permlevel": 0, + "print_hide": 0, "read_only": 0, - "reqd": 1 + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "The new BOM after replacement", "fieldname": "new_bom", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "New BOM", + "no_copy": 0, "options": "BOM", "permlevel": 0, + "print_hide": 0, "read_only": 0, - "reqd": 1 + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "replace", "fieldtype": "Button", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Replace", + "no_copy": 0, "options": "replace_bom", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], "hide_heading": 1, @@ -42,23 +79,37 @@ "icon": "icon-magic", "idx": 1, "in_create": 1, + "in_dialog": 0, + "is_submittable": 0, "issingle": 1, - "modified": "2015-02-05 05:11:35.233845", + "istable": 0, + "modified": "2015-08-12 08:52:46.035343", "modified_by": "Administrator", "module": "Manufacturing", "name": "BOM Replace Tool", "owner": "Administrator", "permissions": [ { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, "create": 1, + "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, + "print": 0, "read": 1, "report": 0, "role": "Manufacturing Manager", + "set_user_permissions": 0, "share": 1, "submit": 0, "write": 1 } ], - "read_only": 1 + "read_only": 1, + "read_only_onload": 0 } \ No newline at end of file diff --git a/erpnext/manufacturing/doctype/production_order/production_order.json b/erpnext/manufacturing/doctype/production_order/production_order.json index e07ac5bf97c..19107668aaf 100644 --- a/erpnext/manufacturing/doctype/production_order/production_order.json +++ b/erpnext/manufacturing/doctype/production_order/production_order.json @@ -1,31 +1,62 @@ { + "allow_copy": 0, "allow_import": 1, + "allow_rename": 0, "autoname": "naming_series:", "creation": "2013-01-10 16:34:16", + "custom": 0, "docstatus": 0, "doctype": "DocType", "fields": [ { + "allow_on_submit": 0, "fieldname": "item", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "", + "no_copy": 0, "options": "icon-gift", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "PRO-", "fieldname": "naming_series", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Series", + "no_copy": 0, "options": "PRO-", "permlevel": 0, - "reqd": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "Draft", "depends_on": "eval:!doc.__islocal", "fieldname": "status", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, "in_list_view": 0, "label": "Status", @@ -34,333 +65,739 @@ "oldfieldtype": "Select", "options": "\nDraft\nSubmitted\nStopped\nIn Process\nCompleted\nCancelled", "permlevel": 0, + "print_hide": 0, "read_only": 1, + "report_hide": 0, "reqd": 1, - "search_index": 1 + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "production_item", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, "in_list_view": 1, "label": "Item To Manufacture", + "no_copy": 0, "oldfieldname": "production_item", "oldfieldtype": "Link", "options": "Item", "permlevel": 0, + "print_hide": 0, "read_only": 0, - "reqd": 1 + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "", "description": "", "fieldname": "bom_no", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "BOM No", + "no_copy": 0, "oldfieldname": "bom_no", "oldfieldtype": "Link", "options": "BOM", "permlevel": 0, + "print_hide": 0, "read_only": 0, - "reqd": 1 + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "1", "description": "Plan material for sub-assemblies", "fieldname": "use_multi_level_bom", "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Use Multi-Level BOM", - "permlevel": 0 + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break1", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "oldfieldtype": "Column Break", "permlevel": 0, + "print_hide": 0, "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" }, { + "allow_on_submit": 0, "depends_on": "", "fieldname": "qty", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Qty To Manufacture", + "no_copy": 0, "oldfieldname": "qty", "oldfieldtype": "Currency", "permlevel": 0, + "print_hide": 0, "read_only": 0, - "reqd": 1 + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "0", "depends_on": "eval:doc.docstatus==1", "description": "", "fieldname": "material_transferred_for_manufacturing", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Material Transferred for Manufacturing", "no_copy": 1, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "0", "depends_on": "eval:doc.docstatus==1", "description": "", "fieldname": "produced_qty", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Manufactured Qty", "no_copy": 1, "oldfieldname": "produced_qty", "oldfieldtype": "Currency", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "warehouses", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Warehouses", + "no_copy": 0, "options": "icon-building", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "wip_warehouse", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Work-in-Progress Warehouse", + "no_copy": 0, "options": "Warehouse", "permlevel": 0, - "reqd": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_12", "fieldtype": "Column Break", - "permlevel": 0 + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "", "description": "", "fieldname": "fg_warehouse", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Target Warehouse", + "no_copy": 0, "options": "Warehouse", "permlevel": 0, + "print_hide": 0, "read_only": 0, - "reqd": 0 + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "time", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Time", + "no_copy": 0, "options": "icon-time", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "", "fieldname": "expected_delivery_date", "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Expected Delivery Date", + "no_copy": 0, "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "now", "fieldname": "planned_start_date", "fieldtype": "Datetime", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Planned Start Date", + "no_copy": 0, "permlevel": 0, "precision": "", - "reqd": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "planned_end_date", "fieldtype": "Datetime", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Planned End Date", "no_copy": 1, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_13", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "actual_start_date", "fieldtype": "Datetime", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Actual Start Date", + "no_copy": 0, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "actual_end_date", "fieldtype": "Datetime", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Actual End Date", + "no_copy": 0, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "", "fieldname": "operations_section", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Operations", + "no_copy": 0, "options": "icon-wrench", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "", "fieldname": "operations", "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Operations", + "no_copy": 0, "options": "Production Order Operation", "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "operations", "fieldname": "section_break_22", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Operation Cost", + "no_copy": 0, "options": "", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "planned_operating_cost", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Planned Operating Cost", "no_copy": 0, "options": "Company:company:default_currency", "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "actual_operating_cost", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Actual Operating Cost", "no_copy": 1, "options": "Company:company:default_currency", "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "additional_operating_cost", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Additional Operating Cost", "no_copy": 1, "options": "Company:company:default_currency", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_24", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "total_operating_cost", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Total Operating Cost", "no_copy": 1, "options": "Company:company:default_currency", "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "more_info", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "More Info", + "no_copy": 0, "options": "icon-file-text", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "description", "fieldtype": "Small Text", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Item Description", + "no_copy": 0, "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "", "fieldname": "stock_uom", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Stock UOM", + "no_copy": 0, "oldfieldname": "stock_uom", "oldfieldtype": "Data", "options": "UOM", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break2", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, + "print_hide": 0, "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" }, { + "allow_on_submit": 0, "fieldname": "project_name", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Project Name", + "no_copy": 0, "oldfieldname": "project_name", "oldfieldtype": "Link", "options": "Project", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "Manufacture against Sales Order", "fieldname": "sales_order", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Sales Order", + "no_copy": 0, "options": "Sales Order", "permlevel": 0, - "read_only": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "company", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Company", + "no_copy": 0, "oldfieldname": "company", "oldfieldtype": "Link", "options": "Company", "permlevel": 0, + "print_hide": 0, "read_only": 0, - "reqd": 1 + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "amended_from", "fieldtype": "Link", + "hidden": 0, "ignore_user_permissions": 1, + "in_filter": 0, + "in_list_view": 0, "label": "Amended From", "no_copy": 1, "oldfieldname": "amended_from", "oldfieldtype": "Data", "options": "Production Order", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], + "hide_heading": 0, + "hide_toolbar": 0, "icon": "icon-cogs", "idx": 1, "in_create": 0, + "in_dialog": 0, "is_submittable": 1, - "modified": "2015-07-21 07:45:53.206902", + "issingle": 0, + "istable": 0, + "modified": "2015-08-12 08:50:32.803526", "modified_by": "Administrator", "module": "Manufacturing", "name": "Production Order", @@ -373,22 +810,41 @@ "create": 1, "delete": 1, "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, "print": 1, "read": 1, "report": 1, "role": "Manufacturing User", + "set_user_permissions": 0, "share": 1, "submit": 1, "write": 1 }, { + "amend": 0, "apply_user_permissions": 1, + "cancel": 0, + "create": 0, + "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, + "print": 0, "read": 1, "report": 1, - "role": "Stock User" + "role": "Stock User", + "set_user_permissions": 0, + "share": 0, + "submit": 0, + "write": 0 } ], + "read_only": 0, + "read_only_onload": 0, "title_field": "production_item" } \ No newline at end of file diff --git a/erpnext/patches.txt b/erpnext/patches.txt index c7c938832bc..acd5253e8d0 100644 --- a/erpnext/patches.txt +++ b/erpnext/patches.txt @@ -172,7 +172,6 @@ execute:frappe.delete_doc("Page", "users") erpnext.patches.v5_0.update_material_transferred_for_manufacturing_again erpnext.patches.v5_0.index_on_account_and_gl_entry execute:frappe.db.sql("""delete from `tabProject Task`""") -erpnext.patches.v5_0.item_variants erpnext.patches.v5_0.update_item_desc_in_invoice erpnext.patches.v5_1.fix_against_account erpnext.patches.v5_1.fix_credit_days_based_on diff --git a/erpnext/patches/v5_0/item_variants.py b/erpnext/patches/v5_0/item_variants.py deleted file mode 100644 index 66300be671e..00000000000 --- a/erpnext/patches/v5_0/item_variants.py +++ /dev/null @@ -1,19 +0,0 @@ -import frappe - -def execute(): - frappe.reload_doctype("Item") - for dt in ["manage_variants", "manage_variants_item", "variant_attribute"]: - frappe.reload_doc("stock", "doctype", dt) - - for d in frappe.get_list("Item", filters={"has_variants":1}): - manage_variant = frappe.new_doc("Manage Variants") - manage_variant.item_code = d.name - manage_variant.attributes = frappe.db.sql("select item_attribute as attribute, item_attribute_value as attribute_value \ - from `tabItem Variant` where parent = %s", d.name, as_dict=1) - if manage_variant.attributes: - if not frappe.get_list("Item", filters={"variant_of": d.name}, limit_page_length=1): - frappe.db.sql("delete from `tabItem Variant` where parent=%s", d.name) - else: - manage_variant.generate_combinations() - manage_variant.create_variants() - frappe.delete_doc("DocType", "Item Variant") \ No newline at end of file diff --git a/erpnext/patches/v5_4/item_template.py b/erpnext/patches/v5_4/item_template.py index 4183654d16f..455aae6cb3c 100644 --- a/erpnext/patches/v5_4/item_template.py +++ b/erpnext/patches/v5_4/item_template.py @@ -12,5 +12,8 @@ def execute(): for item, attributes in item_attribute.items(): template = frappe.get_doc("Item", item) - template.set('valid_attributes', attributes) - template.save() \ No newline at end of file + template.set('attributes', attributes) + template.save() + + frappe.delete_doc("DocType", "Manage Variants") + frappe.delete_doc("DocType", "Manage Variants Item") \ No newline at end of file diff --git a/erpnext/projects/doctype/project/project.json b/erpnext/projects/doctype/project/project.json index 486d86112ea..04d6cb48aa1 100644 --- a/erpnext/projects/doctype/project/project.json +++ b/erpnext/projects/doctype/project/project.json @@ -1,68 +1,129 @@ { + "allow_copy": 0, "allow_import": 1, "allow_rename": 1, "autoname": "field:project_name", "creation": "2013-03-07 11:55:07", + "custom": 0, "docstatus": 0, "doctype": "DocType", "document_type": "Master", "fields": [ { + "allow_on_submit": 0, "description": "", "fieldname": "project_name", "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Project Name", "no_copy": 0, "oldfieldname": "project_name", "oldfieldtype": "Data", "permlevel": 0, - "reqd": 1 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "default": "Open", "fieldname": "status", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Status", "no_copy": 1, "oldfieldname": "status", "oldfieldtype": "Select", "options": "Open\nCompleted\nCancelled", "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, "reqd": 1, - "search_index": 1 + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "project_type", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Project Type", "no_copy": 0, "oldfieldname": "project_type", "oldfieldtype": "Data", "options": "Internal\nExternal\nOther", "permlevel": 0, - "search_index": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_5", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "is_active", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Is Active", "no_copy": 0, "oldfieldname": "is_active", "oldfieldtype": "Select", "options": "Yes\nNo", "permlevel": 0, - "search_index": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "priority", "fieldtype": "Select", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "Priority", "no_copy": 0, @@ -70,53 +131,123 @@ "oldfieldtype": "Select", "options": "Medium\nLow\nHigh", "permlevel": 0, - "search_index": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "section_break_12", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "expected_start_date", "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Expected Start Date", "no_copy": 0, "oldfieldname": "project_start_date", "oldfieldtype": "Date", "permlevel": 0, - "search_index": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_11", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "expected_end_date", "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Expected End Date", "no_copy": 0, "oldfieldname": "completion_date", "oldfieldtype": "Date", "permlevel": 0, - "search_index": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "customer_details", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "", + "no_copy": 0, "oldfieldtype": "Section Break", "options": "icon-user", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "customer", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, "in_filter": 1, + "in_list_view": 0, "label": "Customer", "no_copy": 0, "oldfieldname": "customer", @@ -124,115 +255,281 @@ "options": "Customer", "permlevel": 0, "print_hide": 1, + "read_only": 0, + "report_hide": 0, "reqd": 0, - "search_index": 1 + "search_index": 1, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_14", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "sales_order", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Sales Order", + "no_copy": 0, "options": "Sales Order", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "sb_milestones", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Tasks", + "no_copy": 0, "oldfieldtype": "Section Break", "options": "icon-flag", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "tasks", "fieldtype": "Table", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Tasks", + "no_copy": 0, "options": "Project Task", "permlevel": 0, "precision": "", - "reqd": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "percent_complete", "fieldtype": "Percent", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 0, "label": "% Tasks Completed", "no_copy": 1, "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "section_break0", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "", + "no_copy": 0, "oldfieldtype": "Section Break", "options": "icon-list", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "notes", "fieldtype": "Text Editor", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Notes", "no_copy": 0, "oldfieldname": "notes", "oldfieldtype": "Text Editor", "permlevel": 0, - "search_index": 0 + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "section_break_18", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "actual_start_date", "fieldtype": "Data", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Actual Start Date", + "no_copy": 0, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "actual_time", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Actual Time (in Hours)", + "no_copy": 0, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_20", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "actual_end_date", "fieldtype": "Date", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Actual End Date", "no_copy": 0, "oldfieldname": "act_completion_date", "oldfieldtype": "Date", "permlevel": 0, + "print_hide": 0, "read_only": 1, - "search_index": 0 + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "section_break_26", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "estimated_costing", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, "in_list_view": 1, "label": "Estimated Costing", "no_copy": 0, @@ -240,124 +537,292 @@ "oldfieldtype": "Currency", "options": "Company:company:default_currency", "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, "reqd": 0, - "search_index": 0 + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_22", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "company", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Company", + "no_copy": 0, "options": "Company", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "cost_center", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Default Cost Center", + "no_copy": 0, "options": "Cost Center", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "project_details", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "", + "no_copy": 0, "oldfieldtype": "Section Break", "options": "icon-money", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "", "fieldname": "total_costing_amount", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Total Costing Amount (via Time Logs)", + "no_copy": 0, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "", "fieldname": "total_expense_claim", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Total Expense Claim (via Expense Claims)", + "no_copy": 0, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_28", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "description": "", "fieldname": "total_billing_amount", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Total Billing Amount (via Time Logs)", + "no_copy": 0, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "total_purchase_cost", "fieldtype": "Currency", "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Total Purchase Cost (via Purchase Invoice)", + "no_copy": 0, "permlevel": 0, "precision": "", - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "margin", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "", + "no_copy": 0, "oldfieldtype": "Column Break", "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0, "width": "50%" }, { + "allow_on_submit": 0, "fieldname": "gross_margin", "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Gross Margin", "no_copy": 0, "oldfieldname": "gross_margin_value", "oldfieldtype": "Currency", "options": "Company:company:default_currency", "permlevel": 0, + "print_hide": 0, "read_only": 1, + "report_hide": 0, "reqd": 0, - "search_index": 0 + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_37", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "per_gross_margin", "fieldtype": "Percent", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Gross Margin %", "no_copy": 0, "oldfieldname": "per_gross_margin", "oldfieldtype": "Currency", "options": "", "permlevel": 0, + "print_hide": 0, "read_only": 1, + "report_hide": 0, "reqd": 0, - "search_index": 0 + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], + "hide_heading": 0, + "hide_toolbar": 0, "icon": "icon-puzzle-piece", "idx": 1, + "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 0, "max_attachments": 4, - "modified": "2015-06-12 09:00:54.080220", + "modified": "2015-08-12 08:51:43.620261", "modified_by": "Administrator", "module": "Projects", "name": "Project", @@ -366,29 +831,45 @@ { "amend": 0, "apply_user_permissions": 1, + "cancel": 0, "create": 1, "delete": 1, "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, "print": 1, "read": 1, "report": 1, "role": "Projects User", + "set_user_permissions": 0, "share": 1, "submit": 0, "write": 1 }, { "amend": 0, + "apply_user_permissions": 0, "cancel": 0, "create": 0, "delete": 0, + "email": 0, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 1, + "print": 0, "read": 1, "report": 1, "role": "All", - "submit": 0 + "set_user_permissions": 0, + "share": 0, + "submit": 0, + "write": 0 } ], + "read_only": 0, + "read_only_onload": 0, "search_fields": "customer, status, priority, is_active" } \ No newline at end of file diff --git a/erpnext/projects/doctype/project_task/project_task.json b/erpnext/projects/doctype/project_task/project_task.json index e5aae3eb4b6..44180cb9a35 100644 --- a/erpnext/projects/doctype/project_task/project_task.json +++ b/erpnext/projects/doctype/project_task/project_task.json @@ -25,7 +25,8 @@ "report_hide": 0, "reqd": 1, "search_index": 0, - "set_only_once": 0 + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 0, @@ -46,21 +47,48 @@ "report_hide": 0, "reqd": 1, "search_index": 0, - "set_only_once": 0 + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "depends_on": "task_id", "fieldname": "edit_task", "fieldtype": "Button", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "View Task", + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "column_break_3", "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 0, @@ -79,7 +107,8 @@ "report_hide": 0, "reqd": 0, "search_index": 0, - "set_only_once": 0 + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 0, @@ -99,13 +128,27 @@ "report_hide": 0, "reqd": 0, "search_index": 0, - "set_only_once": 0 + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "section_break_6", "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 0, @@ -124,17 +167,29 @@ "report_hide": 0, "reqd": 0, "search_index": 0, - "set_only_once": 0 + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "task_id", "fieldtype": "Link", "hidden": 1, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Task ID", "no_copy": 1, "options": "Task", "permlevel": 0, - "precision": "" + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], "hide_heading": 0, @@ -144,7 +199,7 @@ "is_submittable": 0, "issingle": 0, "istable": 1, - "modified": "2015-04-23 05:48:00.504508", + "modified": "2015-08-12 08:51:46.609018", "modified_by": "Administrator", "module": "Projects", "name": "Project Task", diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js index bb86885ec21..477d3063ec0 100644 --- a/erpnext/stock/doctype/item/item.js +++ b/erpnext/stock/doctype/item/item.js @@ -6,6 +6,10 @@ frappe.provide("erpnext.item"); frappe.ui.form.on("Item", { onload: function(frm) { erpnext.item.setup_queries(frm); + if (frm.doc.variant_of){ + frm.fields_dict["attributes"].grid.set_column_disp("attribute_value", true); + } + }, refresh: function(frm) { @@ -31,8 +35,8 @@ frappe.ui.form.on("Item", { frappe.set_route("List", "Item", {"variant_of": frm.doc.name}); }, "icon-list", "btn-default"); - frm.add_custom_button(__("Search Variant"), function() { - erpnext.item.search_variant() + frm.add_custom_button(__("Make Variant"), function() { + erpnext.item.make_variant() }, "icon-list", "btn-default"); } if (frm.doc.variant_of) { @@ -53,6 +57,8 @@ frappe.ui.form.on("Item", { } erpnext.item.toggle_reqd(frm); + + erpnext.item.toggle_attributes(frm); }, validate: function(frm){ @@ -86,6 +92,10 @@ frappe.ui.form.on("Item", { is_stock_item: function(frm) { erpnext.item.toggle_reqd(frm); + }, + + has_variants: function(frm) { + erpnext.item.toggle_attributes(frm); } }); @@ -184,12 +194,12 @@ $.extend(erpnext.item, { } }, - search_variant: function(doc) { + make_variant: function(doc) { var fields = [] - for(var i=0;i< cur_frm.doc.valid_attributes.length;i++){ + for(var i=0;i< cur_frm.doc.attributes.length;i++){ var fieldtype, desc; - var row = cur_frm.doc.valid_attributes[i]; + var row = cur_frm.doc.attributes[i]; if (row.numeric_values){ fieldtype = "Float"; desc = "Min Value: "+ row.from_range +" , Max Value: "+ row.to_range +", in Increments of: "+ row.increment @@ -206,18 +216,13 @@ $.extend(erpnext.item, { "description": desc }) } - fields = fields.concat({ - "label": "Result", - "fieldname": "result", - "fieldtype": "HTML" - }) var d = new frappe.ui.Dialog({ - title: __("Search Variant"), + title: __("Make Variant"), fields: fields }); - d.set_primary_action(__("Search"), function() { + d.set_primary_action(__("Make"), function() { args = d.get_values(); if(!args) return; frappe.call({ @@ -227,28 +232,32 @@ $.extend(erpnext.item, { "args": d.get_values() }, callback: function(r) { + // returns variant item if (r.message) { - d.get_field("result").set_value($(''+__("View {0}", [r.message[0]])+'') - .on("click", function() { - d.hide(); - frappe.set_route("Form", "Item", r.message[0]); - })); + var variant = r.message[0]; + var msgprint_dialog = frappe.msgprint(__("Item Variant {0} already exists with same attributes", + [repl('%(item)s', { + item_encoded: encodeURIComponent(variant), + item: variant + })] + )); + msgprint_dialog.hide_on_page_refresh = true; + msgprint_dialog.$wrapper.find(".variant-click").on("click", function() { + d.hide(); + }); } else { - d.get_field("result").set_value($('' - +__("Variant Not Found - Create New"+'')).on("click", function() { - d.hide(); - frappe.call({ - method:"erpnext.stock.doctype.item.item.create_variant", - args: { - "item": cur_frm.doc.name, - "param": d.get_values() - }, - callback: function(r) { - var doclist = frappe.model.sync(r.message); - frappe.set_route("Form", doclist[0].doctype, doclist[0].name); - } - }); - })); + d.hide(); + frappe.call({ + method:"erpnext.stock.doctype.item.item.create_variant", + args: { + "item": cur_frm.doc.name, + "param": d.get_values() + }, + callback: function(r) { + var doclist = frappe.model.sync(r.message); + frappe.set_route("Form", doclist[0].doctype, doclist[0].name); + } + }); } } }); @@ -280,7 +289,6 @@ $.extend(erpnext.item, { fields: ["attribute_value"] }, callback: function(r) { - d.get_field("result").set_value("") if (r.message) { response($.map(r.message, function(d) { return d.attribute_value; })); } @@ -299,6 +307,10 @@ $.extend(erpnext.item, { }, 500); }); }); + }, + toggle_attributes: function(frm) { + frm.toggle_display("attributes", frm.doc.has_variants || frm.doc.variant_of); + frm.fields_dict.attributes.grid.toggle_reqd("attribute_value", frm.doc.variant_of ? 1 : 0); } }); diff --git a/erpnext/stock/doctype/item/item.json b/erpnext/stock/doctype/item/item.json index b8f996f9563..997d8e8fd02 100644 --- a/erpnext/stock/doctype/item/item.json +++ b/erpnext/stock/doctype/item/item.json @@ -819,32 +819,10 @@ }, { "allow_on_submit": 0, - "depends_on": "has_variants", - "fieldname": "valid_attributes", - "fieldtype": "Table", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Valid Attributes", - "no_copy": 0, - "options": "Item Template Attribute", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "depends_on": "variant_of", + "depends_on": "", "fieldname": "attributes", "fieldtype": "Table", - "hidden": 0, + "hidden": 1, "ignore_user_permissions": 0, "in_filter": 0, "in_list_view": 0, @@ -854,7 +832,7 @@ "permlevel": 0, "precision": "", "print_hide": 0, - "read_only": 1, + "read_only": 0, "report_hide": 0, "reqd": 0, "search_index": 0, @@ -1951,7 +1929,7 @@ "issingle": 0, "istable": 0, "max_attachments": 1, - "modified": "2015-08-04 07:04:46.573200", + "modified": "2015-08-12 10:28:54.242793", "modified_by": "Administrator", "module": "Stock", "name": "Item", diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index 66d24134b3d..5902c685f42 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -10,7 +10,6 @@ from frappe.website.website_generator import WebsiteGenerator from erpnext.setup.doctype.item_group.item_group import invalidate_cache_for, get_parent_item_groups from frappe.website.render import clear_cache from frappe.website.doctype.website_slideshow.website_slideshow import get_slideshow -from erpnext.stock.doctype.manage_variants.manage_variants import update_variant class WarehouseNotSet(frappe.ValidationError): pass class ItemTemplateCannotHaveStock(frappe.ValidationError): pass @@ -301,7 +300,9 @@ class Item(WebsiteGenerator): updated = [] variants = frappe.db.get_all("Item", fields=["item_code"], filters={"variant_of": self.name }) for d in variants: - update_variant(self.name, d) + variant = frappe.get_doc("Item", d) + copy_attributes_to_variant(self, variant) + variant.save() updated.append(d.item_code) if updated: frappe.msgprint(_("Item Variants {0} updated").format(", ".join(updated))) @@ -333,7 +334,9 @@ class Item(WebsiteGenerator): def validate_template_attributes(self): if self.has_variants: attributes = [] - for d in self.valid_attributes: + if not self.attributes: + frappe.throw(_("Attribute is mandatory for Item Template")) + for d in self.attributes: if d.attribute in attributes: frappe.throw(_("Attribute {0} selected multiple times in Attributes Table".format(d.attribute))) else: @@ -343,6 +346,8 @@ class Item(WebsiteGenerator): if self.variant_of: args = {} for d in self.attributes: + if not d.attribute_value: + frappe.throw(_("Please specify Attribute Value for attribute {0}").format(d.attribute)) args[d.attribute] = d.attribute_value variant = get_variant(self.variant_of, args) @@ -495,7 +500,7 @@ def get_variant(item, args): for d in args: if d in numeric_attributes: - values = frappe.db.sql("""select from_range, to_range, increment from `tabItem Template Attribute` \ + values = frappe.db.sql("""select from_range, to_range, increment from `tabVariant Attribute` \ where parent = %s and attribute = %s""", (item, d), as_dict=1)[0] if (not values.from_range < cint(args[d]) < values.to_range) or ((cint(args[d]) - values.from_range) % values.increment != 0): @@ -525,10 +530,8 @@ def get_variant(item, args): @frappe.whitelist() def create_variant(item, param): - from erpnext.stock.doctype.manage_variants.manage_variants import copy_attributes_to_variant args = json.loads(param) variant = frappe.new_doc("Item") - variant.item_code = item variant_attributes = [] for d in args: variant_attributes.append({ @@ -538,3 +541,18 @@ def create_variant(item, param): variant.set("attributes", variant_attributes) copy_attributes_to_variant(item, variant) return variant + +def copy_attributes_to_variant(item, variant): + from frappe.model import no_value_fields + for field in item.meta.fields: + if field.fieldtype not in no_value_fields and (not field.no_copy)\ + and field.fieldname not in ("item_code", "item_name"): + if variant.get(field.fieldname) != item.get(field.fieldname): + variant.set(field.fieldname, item.get(field.fieldname)) + variant.variant_of = item.name + variant.has_variants = 0 + variant.show_in_website = 0 + if variant.attributes: + variant.description += "\n" + for d in variant.attributes: + variant.description += "

" + d.attribute + ": " + cstr(d.attribute_value) + "

" diff --git a/erpnext/stock/doctype/item_attribute/item_attribute.json b/erpnext/stock/doctype/item_attribute/item_attribute.json index 35711dea74f..d23fe4d4279 100644 --- a/erpnext/stock/doctype/item_attribute/item_attribute.json +++ b/erpnext/stock/doctype/item_attribute/item_attribute.json @@ -29,48 +29,6 @@ "set_only_once": 0, "unique": 0 }, - { - "allow_on_submit": 0, - "default": "1", - "depends_on": "eval: doc.numeric_values==0", - "description": "Lower the number, higher the priority in the Item Code suffix that will be created for this Item Attribute for the Item Variant", - "fieldname": "priority", - "fieldtype": "Int", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Priority", - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "fieldname": "column_break_3", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, { "allow_on_submit": 0, "default": "0", @@ -95,7 +53,7 @@ { "allow_on_submit": 0, "depends_on": "numeric_values", - "fieldname": "section_break_5", + "fieldname": "section_break_4", "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, @@ -114,6 +72,7 @@ }, { "allow_on_submit": 0, + "depends_on": "", "fieldname": "from_range", "fieldtype": "Float", "hidden": 0, @@ -134,6 +93,7 @@ }, { "allow_on_submit": 0, + "depends_on": "", "fieldname": "increment", "fieldtype": "Float", "hidden": 0, @@ -173,6 +133,7 @@ }, { "allow_on_submit": 0, + "depends_on": "", "fieldname": "to_range", "fieldtype": "Float", "hidden": 0, @@ -193,8 +154,8 @@ }, { "allow_on_submit": 0, - "depends_on": "eval: doc.numeric_values==0", - "fieldname": "section_break_10", + "depends_on": "eval: !doc.numeric_values", + "fieldname": "section_break_5", "fieldtype": "Section Break", "hidden": 0, "ignore_user_permissions": 0, @@ -213,6 +174,7 @@ }, { "allow_on_submit": 0, + "depends_on": "", "fieldname": "item_attribute_values", "fieldtype": "Table", "hidden": 0, @@ -241,7 +203,7 @@ "is_submittable": 0, "issingle": 0, "istable": 0, - "modified": "2015-08-05 05:27:55.912105", + "modified": "2015-08-11 08:43:10.240847", "modified_by": "Administrator", "module": "Stock", "name": "Item Attribute", diff --git a/erpnext/stock/doctype/item_template_attribute/__init__.py b/erpnext/stock/doctype/item_template_attribute/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/erpnext/stock/doctype/item_template_attribute/item_template_attribute.json b/erpnext/stock/doctype/item_template_attribute/item_template_attribute.json deleted file mode 100644 index 40c1707eebc..00000000000 --- a/erpnext/stock/doctype/item_template_attribute/item_template_attribute.json +++ /dev/null @@ -1,192 +0,0 @@ -{ - "allow_copy": 0, - "allow_import": 1, - "allow_rename": 0, - "autoname": "", - "creation": "2015-07-31 02:14:41.660844", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "Other", - "fields": [ - { - "allow_on_submit": 0, - "fieldname": "attribute", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 1, - "label": "Attribute", - "no_copy": 0, - "options": "Item Attribute", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "fieldname": "column_break_2", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "fieldname": "numeric_values", - "fieldtype": "Check", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Numeric Values", - "no_copy": 0, - "options": "", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 1, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "depends_on": "numeric_values", - "fieldname": "section_break_4", - "fieldtype": "Section Break", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "fieldname": "from_range", - "fieldtype": "Float", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "From Range", - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "fieldname": "increment", - "fieldtype": "Float", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Increment", - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "fieldname": "column_break_7", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - }, - { - "allow_on_submit": 0, - "fieldname": "to_range", - "fieldtype": "Float", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "To Range", - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "unique": 0 - } - ], - "hide_heading": 0, - "hide_toolbar": 0, - "icon": "", - "in_create": 0, - "in_dialog": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "modified": "2015-08-05 07:50:03.836731", - "modified_by": "Administrator", - "module": "Stock", - "name": "Item Template Attribute", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "read_only": 0, - "read_only_onload": 0, - "sort_field": "modified", - "sort_order": "DESC" -} \ No newline at end of file diff --git a/erpnext/stock/doctype/item_template_attribute/item_template_attribute.py b/erpnext/stock/doctype/item_template_attribute/item_template_attribute.py deleted file mode 100644 index b82bebdad9c..00000000000 --- a/erpnext/stock/doctype/item_template_attribute/item_template_attribute.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -import frappe -from frappe.model.document import Document - -class ItemTemplateAttribute(Document): - pass diff --git a/erpnext/stock/doctype/manage_variants/__init__.py b/erpnext/stock/doctype/manage_variants/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/erpnext/stock/doctype/manage_variants/manage_variants.js b/erpnext/stock/doctype/manage_variants/manage_variants.js deleted file mode 100644 index edbfcd269ad..00000000000 --- a/erpnext/stock/doctype/manage_variants/manage_variants.js +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -// License: GNU General Public License v3. See license.txt - -frappe.ui.form.on("Manage Variants", { - onload: function(frm) { - var df = frappe.meta.get_docfield("Variant Attribute", "attribute_value", "Manage Variants"); - df.on_make = function(field) { - $(field.input_area).addClass("ui-front"); - field.$input.autocomplete({ - minLength: 0, - minChars: 0, - source: function(request, response) { - frappe.call({ - method:"frappe.client.get_list", - args:{ - doctype:"Item Attribute Value", - filters: [ - ["parent","=", field.doc.attribute], - ["attribute_value", "like", request.term + "%"] - ], - fields: ["attribute_value"] - }, - callback: function(r) { - response($.map(r.message, function(d) { return d.attribute_value; })); - } - }); - }, - select: function(event, ui) { - field.$input.val(ui.item.value); - field.$input.trigger("change"); - } - }); - } - }, - - refresh: function(frm) { - frm.disable_save(); - frm.page.set_primary_action(__("Create Variants"), function() { - frappe.call({ - method: "create_variants", - doc:frm.doc - }) - }); - }, - - onload_post_render: function(frm) { - frm.get_field("variants").grid.cannot_add_rows = true; - }, - - item_code:function(frm) { - return frappe.call({ - method: "get_item_details", - doc:frm.doc, - callback: function(r) { - refresh_field('attributes'); - refresh_field('variants'); - } - }) - } -}); diff --git a/erpnext/stock/doctype/manage_variants/manage_variants.json b/erpnext/stock/doctype/manage_variants/manage_variants.json deleted file mode 100644 index ff4f4367ef7..00000000000 --- a/erpnext/stock/doctype/manage_variants/manage_variants.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "allow_copy": 0, - "allow_import": 0, - "allow_rename": 0, - "creation": "2015-05-19 05:39:59.345901", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "fields": [ - { - "fieldname": "item_code", - "fieldtype": "Link", - "label": "Item Code", - "options": "Item", - "permlevel": 0, - "precision": "", - "reqd": 1 - }, - { - "fieldname": "section_break_2", - "fieldtype": "Section Break", - "label": "Item Variant Attributes", - "permlevel": 0, - "precision": "" - }, - { - "allow_on_submit": 0, - "fieldname": "attributes", - "fieldtype": "Table", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 0, - "label": "Attributes", - "no_copy": 0, - "options": "Variant Attribute", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0 - }, - { - "fieldname": "generate_combinations", - "fieldtype": "Button", - "label": "Generate Combinations", - "options": "generate_combinations", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "section_break_4", - "fieldtype": "Section Break", - "label": "Item Variants", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "variants", - "fieldtype": "Table", - "label": "Variants", - "options": "Manage Variants Item", - "permlevel": 0, - "precision": "" - } - ], - "hide_heading": 0, - "hide_toolbar": 0, - "in_create": 1, - "in_dialog": 0, - "is_submittable": 0, - "issingle": 1, - "istable": 0, - "modified": "2015-07-13 05:28:29.057918", - "modified_by": "Administrator", - "module": "Stock", - "name": "Manage Variants", - "name_case": "", - "owner": "Administrator", - "permissions": [ - { - "create": 1, - "delete": 1, - "email": 1, - "export": 0, - "permlevel": 0, - "print": 1, - "read": 1, - "report": 0, - "role": "Item Manager", - "share": 1, - "write": 1 - } - ], - "read_only": 1, - "read_only_onload": 0, - "sort_field": "modified", - "sort_order": "DESC" -} \ No newline at end of file diff --git a/erpnext/stock/doctype/manage_variants/manage_variants.py b/erpnext/stock/doctype/manage_variants/manage_variants.py deleted file mode 100644 index 3114a6cdd68..00000000000 --- a/erpnext/stock/doctype/manage_variants/manage_variants.py +++ /dev/null @@ -1,222 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -import frappe -from frappe import _ -from frappe.model.document import Document -from frappe.utils import cstr, flt -import copy -import json - -class DuplicateAttribute(frappe.ValidationError): pass - -class ManageVariants(Document): - - def get_item_details(self): - self.clear_tables() - if self.item_code: - self.get_attributes() - self.get_variants() - - def generate_combinations(self): - self.validate_attributes() - self.validate_template_item() - self.validate_attribute_values() - self.validate_attributes_are_unique() - self.get_variant_item_codes() - - def create_variants(self): - self.sync_variants() - - def clear_tables(self): - self.set('attributes', []) - self.set('variants', []) - - def get_attributes(self): - attributes = {} - self.set('attributes', []) - for d in frappe.db.sql("""select attr.attribute, attr.attribute_value from `tabVariant Attribute` as attr, - `tabItem` as item where attr.parent = item.name and item.variant_of = %s""", self.item_code, as_dict=1): - attributes.setdefault(d.attribute, []).append(d.attribute_value) - for d in attributes: - attribute_values = set(attributes[d]) - for value in attribute_values: - self.append('attributes',{"attribute": d, "attribute_value": value}) - - def get_variants(self): - variants = [d.name for d in frappe.get_all("Item", - filters={"variant_of":self.item_code})] - data = frappe.db.sql("""select parent, attribute, attribute_value from `tabVariant Attribute`""", as_dict=1) - for d in variants: - variant_attributes, attributes = "", [] - for attribute in data: - if attribute.parent == d: - variant_attributes += attribute.attribute_value + " | " - attributes.append([attribute.attribute, attribute.attribute_value]) - self.append('variants',{"variant": d, "variant_attributes": variant_attributes[: -3], "attributes": json.dumps(attributes)}) - - def validate_attributes(self): - if not self.attributes: - frappe.throw(_("Enter atleast one Attribute & its Value in Attribute table.")) - - def validate_template_item(self): - if not frappe.db.get_value("Item", self.item_code, "has_variants"): - frappe.throw(_("Selected Item cannot have Variants.")) - - if frappe.db.get_value("Item", self.item_code, "variant_of"): - frappe.throw(_("Item cannot be a variant of a variant")) - - def validate_attribute_values(self): - attributes = {} - numeric_attributes = [] - for t in frappe.db.get_all("Item Attribute Value", fields=["parent", "attribute_value"]): - attributes.setdefault(t.parent, []).append(t.attribute_value) - - for t in frappe.get_list("Item Attribute", filters={"numeric_values":1}): - numeric_attributes.append(t.name) - - for d in self.attributes: - if d.attribute in numeric_attributes: - values = frappe.db.sql("""select from_range, to_range, increment from `tabItem Template Attribute` \ - where parent = %s and attribute = %s""", (self.item_code, d.attribute), as_dict=1)[0] - - if (not values.from_range < flt(d.attribute_value) < values.to_range) \ - or ((flt(d.attribute_value) - values.from_range) % values.increment != 0): - frappe.throw(_("Attribute value {0} for attribute {1} must be within range of {2} to {3} and in increments of {4}") - .format(d.attribute_value, d.attribute, values.from_range, values.to_range, values.increment)) - else: - if d.attribute_value not in attributes.get(d.attribute): - frappe.throw(_("Attribute value {0} for attribute {1} does not exist \ - in Item Attribute Master.").format(d.attribute_value, d.attribute)) - - def validate_attributes_are_unique(self): - attributes = [] - for d in self.attributes: - key = (d.attribute, d.attribute_value) - if key in attributes: - frappe.throw(_("{0} {1} is entered more than once in Attributes table") - .format(d.attribute, d.attribute_value), DuplicateAttribute) - attributes.append(key) - - def get_variant_item_codes(self): - """Get all possible suffixes for variants""" - variant_dict = {} - self.set('variants', []) - - for d in self.attributes: - variant_dict.setdefault(d.attribute, []).append(d.attribute_value) - - all_attributes = [d.name for d in frappe.get_all("Item Attribute", order_by = "priority asc")] - - # sort attributes by their priority - attributes = filter(None, map(lambda d: d if d in variant_dict else None, all_attributes)) - - def add_attribute_suffixes(item_code, my_attributes, attributes): - attr = frappe.get_doc("Item Attribute", attributes[0]) - for value in attr.item_attribute_values: - if value.attribute_value in variant_dict[attr.name]: - _my_attributes = copy.deepcopy(my_attributes) - _my_attributes.append([attr.name, value.attribute_value]) - if len(attributes) > 1: - add_attribute_suffixes(item_code + "-" + value.abbr, _my_attributes, attributes[1:]) - else: - variant_attributes = "" - for d in _my_attributes: - variant_attributes += d[1] + " | " - self.append('variants', {"variant": item_code + "-" + value.abbr, - "attributes": json.dumps(_my_attributes), "variant_attributes": variant_attributes[: -3]}) - add_attribute_suffixes(self.item_code, [], attributes) - - def sync_variants(self): - variant_item_codes = [] - item_variants_attributes = {} - inserted, updated, old_variant_name, new_variant_name, deleted = [], [], [], [], [] - - for v in self.variants: - variant_item_codes.append(v.variant) - - existing_variants = [d.name for d in frappe.get_all("Item", - filters={"variant_of":self.item_code})] - - for d in existing_variants: - attributes = [] - for attribute in frappe.db.sql("""select attribute, attribute_value from `tabVariant Attribute` where parent = %s""", d): - attributes.append([attribute[0], attribute[1]]) - item_variants_attributes.setdefault(d, []).append(attributes) - - for existing_variant in existing_variants: - if existing_variant not in variant_item_codes: - att = item_variants_attributes[existing_variant][0] - for variant in self.variants: - if sorted(json.loads(variant.attributes) ,key=lambda x: x[0]) == \ - sorted(att ,key=lambda x: x[0]): - rename_variant(existing_variant, variant.variant) - old_variant_name.append(existing_variant) - new_variant_name.append(variant.variant) - - if existing_variant not in old_variant_name: - delete_variant(existing_variant) - deleted.append(existing_variant) - - for item_code in variant_item_codes: - if item_code not in existing_variants: - if item_code not in new_variant_name: - make_variant(self.item_code, item_code, self.variants) - inserted.append(item_code) - else: - update_variant(self.item_code, item_code, self.variants) - updated.append(item_code) - - if inserted: - frappe.msgprint(_("Item Variants {0} created").format(", ".join(inserted))) - - if updated: - frappe.msgprint(_("Item Variants {0} updated").format(", ".join(updated))) - - if old_variant_name: - frappe.msgprint(_("Item Variants {0} renamed").format(", ".join(old_variant_name))) - - if deleted: - frappe.msgprint(_("Item Variants {0} deleted").format(", ".join(deleted))) - -def make_variant(item, variant_code, variant_attribute): - variant = frappe.new_doc("Item") - variant.item_code = variant_code - copy_attributes_to_variant(item, variant, variant_attribute, insert=True) - variant.insert() - -def update_variant(item, variant_code, variant_attribute=None): - variant = frappe.get_doc("Item", variant_code) - copy_attributes_to_variant(item, variant, variant_attribute, insert=True) - variant.save() - -def rename_variant(old_variant_code, new_variant_code): - frappe.rename_doc("Item", old_variant_code, new_variant_code) - -def delete_variant(variant_code): - frappe.delete_doc("Item", variant_code) - -def copy_attributes_to_variant(item, variant, variant_attribute=None, insert=False): - template = frappe.get_doc("Item", item) - from frappe.model import no_value_fields - for field in template.meta.fields: - if field.fieldtype not in no_value_fields and (insert or not field.no_copy)\ - and field.fieldname not in ("item_code", "item_name"): - if variant.get(field.fieldname) != template.get(field.fieldname): - variant.set(field.fieldname, template.get(field.fieldname)) - variant.item_name = template.item_name + variant.item_code[len(template.name):] - variant.variant_of = template.name - variant.has_variants = 0 - variant.show_in_website = 0 - if variant_attribute: - for d in variant_attribute: - if d.variant == variant.item_code: - variant.attributes= [] - for a in json.loads(d.attributes): - variant.append('attributes', {"attribute": a[0], "attribute_value": a[1]}) - if variant.attributes: - variant.description += "\n" - for d in variant.attributes: - variant.description += "

" + d.attribute + ": " + cstr(d.attribute_value) + "

" \ No newline at end of file diff --git a/erpnext/stock/doctype/manage_variants/test_manage_variants.py b/erpnext/stock/doctype/manage_variants/test_manage_variants.py deleted file mode 100644 index 6aa7f832f19..00000000000 --- a/erpnext/stock/doctype/manage_variants/test_manage_variants.py +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors -# License: GNU General Public License v3. See license.txt - -from __future__ import unicode_literals -import unittest -import frappe - -from erpnext.stock.doctype.manage_variants.manage_variants import DuplicateAttribute - -class TestManageVariants(unittest.TestCase): - def test_variant_item_codes(self): - manage_variant = frappe.new_doc("Manage Variants") - manage_variant.update({ - "item_code": "_Test Variant Item", - "attributes": [ - { - "attribute": "Test Size", - "attribute_value": "Small" - }, - { - "attribute": "Test Size", - "attribute_value": "Large" - } - ] - }) - manage_variant.generate_combinations() - self.assertEqual(manage_variant.variants[0].variant, "_Test Variant Item-S") - self.assertEqual(manage_variant.variants[1].variant, "_Test Variant Item-L") - - self.assertEqual(manage_variant.variants[0].variant_attributes, "Small") - self.assertEqual(manage_variant.variants[1].variant_attributes, "Large") - manage_variant.create_variants() - - def test_attributes_are_unique(self): - manage_variant = frappe.new_doc("Manage Variants") - manage_variant.update({ - "item_code": "_Test Variant Item", - "attributes": [ - { - "attribute": "Test Size", - "attribute_value": "Small" - }, - { - "attribute": "Test Size", - "attribute_value": "Small" - } - ] - }) - self.assertRaises(DuplicateAttribute, manage_variant.generate_combinations) diff --git a/erpnext/stock/doctype/manage_variants_item/__init__.py b/erpnext/stock/doctype/manage_variants_item/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/erpnext/stock/doctype/manage_variants_item/manage_variants_item.json b/erpnext/stock/doctype/manage_variants_item/manage_variants_item.json deleted file mode 100644 index a8bb61d5e48..00000000000 --- a/erpnext/stock/doctype/manage_variants_item/manage_variants_item.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "allow_copy": 0, - "allow_import": 1, - "allow_rename": 0, - "autoname": "", - "creation": "2015-05-19 05:55:31.155672", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "Other", - "fields": [ - { - "allow_on_submit": 0, - "fieldname": "variant", - "fieldtype": "Data", - "hidden": 0, - "ignore_user_permissions": 0, - "in_filter": 0, - "in_list_view": 1, - "label": "Variant", - "no_copy": 0, - "options": "", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "read_only": 0, - "report_hide": 0, - "reqd": 1, - "search_index": 0, - "set_only_once": 0 - }, - { - "fieldname": "column_break_2", - "fieldtype": "Column Break", - "permlevel": 0, - "precision": "" - }, - { - "fieldname": "variant_attributes", - "fieldtype": "Data", - "in_list_view": 1, - "label": "Variant Attributes", - "permlevel": 0, - "precision": "", - "read_only": 1 - }, - { - "fieldname": "attributes", - "fieldtype": "Text", - "hidden": 1, - "label": "attributes", - "permlevel": 0, - "precision": "", - "read_only": 1 - } - ], - "hide_heading": 0, - "hide_toolbar": 0, - "icon": "", - "in_create": 0, - "in_dialog": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "modified": "2015-06-30 03:19:07.548196", - "modified_by": "Administrator", - "module": "Stock", - "name": "Manage Variants Item", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "read_only": 0, - "read_only_onload": 0, - "sort_field": "modified", - "sort_order": "DESC" -} \ No newline at end of file diff --git a/erpnext/stock/doctype/manage_variants_item/manage_variants_item.py b/erpnext/stock/doctype/manage_variants_item/manage_variants_item.py deleted file mode 100644 index 800888a864d..00000000000 --- a/erpnext/stock/doctype/manage_variants_item/manage_variants_item.py +++ /dev/null @@ -1,10 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors and contributors -# For license information, please see license.txt - -from __future__ import unicode_literals -import frappe -from frappe.model.document import Document - -class ManageVariantsItem(Document): - pass diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.json b/erpnext/stock/doctype/stock_entry/stock_entry.json index 165c4741d99..bf3c9766b10 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.json +++ b/erpnext/stock/doctype/stock_entry/stock_entry.json @@ -1178,7 +1178,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2015-08-07 12:28:35.832492", + "modified": "2015-08-12 08:51:07.002600", "modified_by": "Administrator", "module": "Stock", "name": "Stock Entry", diff --git a/erpnext/stock/doctype/stock_entry/test_stock_entry.py b/erpnext/stock/doctype/stock_entry/test_stock_entry.py index f00a235fa76..03a2ffec35c 100644 --- a/erpnext/stock/doctype/stock_entry/test_stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/test_stock_entry.py @@ -68,22 +68,6 @@ class TestStockEntry(unittest.TestCase): def test_auto_material_request(self): self._test_auto_material_request("_Test Item") - def test_auto_material_request_for_variant(self): - manage_variant = frappe.new_doc("Manage Variants") - - manage_variant.update({ - "item_code": "_Test Variant Item", - "attributes": [ - { - "attribute": "Test Size", - "attribute_value": "Small" - } - ] - }) - manage_variant.generate_combinations() - manage_variant.create_variants() - self._test_auto_material_request("_Test Variant Item-S") - def _test_auto_material_request(self, item_code): item = frappe.get_doc("Item", item_code) diff --git a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json index fe8a1b15bea..62c2a782e93 100644 --- a/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json +++ b/erpnext/stock/doctype/stock_entry_detail/stock_entry_detail.json @@ -828,7 +828,7 @@ "is_submittable": 0, "issingle": 0, "istable": 1, - "modified": "2015-08-07 13:21:23.840052", + "modified": "2015-08-12 08:51:15.789056", "modified_by": "Administrator", "module": "Stock", "name": "Stock Entry Detail", diff --git a/erpnext/stock/doctype/stock_settings/stock_settings.json b/erpnext/stock/doctype/stock_settings/stock_settings.json index a6dc6d485dd..cd6043d41ce 100644 --- a/erpnext/stock/doctype/stock_settings/stock_settings.json +++ b/erpnext/stock/doctype/stock_settings/stock_settings.json @@ -311,7 +311,7 @@ "is_submittable": 0, "issingle": 1, "istable": 0, - "modified": "2015-08-03 13:00:36.082986", + "modified": "2015-08-12 08:51:24.798096", "modified_by": "Administrator", "module": "Stock", "name": "Stock Settings", diff --git a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.json b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.json index 3747f5c449f..365abaae362 100644 --- a/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.json +++ b/erpnext/stock/doctype/stock_uom_replace_utility/stock_uom_replace_utility.json @@ -1,78 +1,168 @@ { + "allow_copy": 0, + "allow_import": 0, + "allow_rename": 0, "creation": "2013-01-10 16:34:30", + "custom": 0, "docstatus": 0, "doctype": "DocType", "fields": [ { + "allow_on_submit": 0, "fieldname": "item_code", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Item", + "no_copy": 0, "options": "Item", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "current_stock_uom", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Current Stock UOM", + "no_copy": 0, "options": "UOM", "permlevel": 0, - "read_only": 1 + "print_hide": 0, + "read_only": 1, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "new_stock_uom", "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "New Stock UOM", + "no_copy": 0, "options": "UOM", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "conversion_factor", "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Conversion Factor", - "permlevel": 0 + "no_copy": 0, + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 }, { + "allow_on_submit": 0, "fieldname": "update", "fieldtype": "Button", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, "label": "Update", + "no_copy": 0, "options": "update_stock_uom", - "permlevel": 0 + "permlevel": 0, + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], + "hide_heading": 0, + "hide_toolbar": 0, "icon": "icon-magic", "idx": 1, "in_create": 0, + "in_dialog": 0, + "is_submittable": 0, "issingle": 1, - "modified": "2015-07-13 05:28:25.689187", + "istable": 0, + "modified": "2015-08-12 08:52:09.322664", "modified_by": "Administrator", "module": "Stock", "name": "Stock UOM Replace Utility", "owner": "Administrator", "permissions": [ { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, "create": 1, + "delete": 0, "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, "print": 1, "read": 1, "report": 0, "role": "Item Manager", + "set_user_permissions": 0, "share": 1, "submit": 0, "write": 1 }, { + "amend": 0, + "apply_user_permissions": 0, + "cancel": 0, "create": 1, + "delete": 0, "email": 1, + "export": 0, + "if_owner": 0, + "import": 0, "permlevel": 0, "print": 1, "read": 1, "report": 0, "role": "Stock Manager", + "set_user_permissions": 0, "share": 1, "submit": 0, "write": 1 } ], - "read_only": 0 + "read_only": 0, + "read_only_onload": 0 } \ No newline at end of file diff --git a/erpnext/stock/doctype/variant_attribute/variant_attribute.json b/erpnext/stock/doctype/variant_attribute/variant_attribute.json index 5ab3d73239e..f560a707520 100644 --- a/erpnext/stock/doctype/variant_attribute/variant_attribute.json +++ b/erpnext/stock/doctype/variant_attribute/variant_attribute.json @@ -27,19 +27,34 @@ "report_hide": 0, "reqd": 1, "search_index": 0, - "set_only_once": 0 - }, - { - "fieldname": "column_break_2", - "fieldtype": "Column Break", - "permlevel": 0, - "precision": "" + "set_only_once": 0, + "unique": 0 }, { "allow_on_submit": 0, + "fieldname": "column_break_2", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "depends_on": "", "fieldname": "attribute_value", "fieldtype": "Data", - "hidden": 0, + "hidden": 1, "ignore_user_permissions": 0, "in_filter": 0, "in_list_view": 1, @@ -51,9 +66,133 @@ "print_hide": 0, "read_only": 0, "report_hide": 0, - "reqd": 1, + "reqd": 0, "search_index": 0, - "set_only_once": 0 + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "depends_on": "has_variants", + "fieldname": "numeric_values", + "fieldtype": "Check", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Numeric Values", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "depends_on": "numeric_values", + "fieldname": "section_break_4", + "fieldtype": "Section Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "depends_on": "", + "fieldname": "from_range", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "From Range", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "depends_on": "", + "fieldname": "increment", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "Increment", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "fieldname": "column_break_8", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 + }, + { + "allow_on_submit": 0, + "depends_on": "", + "fieldname": "to_range", + "fieldtype": "Float", + "hidden": 0, + "ignore_user_permissions": 0, + "in_filter": 0, + "in_list_view": 0, + "label": "To Range", + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "read_only": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "unique": 0 } ], "hide_heading": 0, @@ -64,7 +203,7 @@ "is_submittable": 0, "issingle": 0, "istable": 1, - "modified": "2015-05-20 06:16:16.803578", + "modified": "2015-08-12 02:47:07.959104", "modified_by": "Administrator", "module": "Stock", "name": "Variant Attribute",