From 1aac9563067c10ace82da38b0976fd79832215d4 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Tue, 25 Oct 2016 15:01:30 +0530 Subject: [PATCH] [minor] [fixes] can rename program and disable role on domainify --- .../production_planning_tool.py | 18 +++++++++--------- erpnext/schools/doctype/program/program.json | 15 +++++++++++++-- erpnext/setup/setup_wizard/domainify.py | 1 + 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py index aa9e78c399..3433f1fd45 100644 --- a/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py +++ b/erpnext/manufacturing/doctype/production_planning_tool/production_planning_tool.py @@ -175,7 +175,7 @@ class ProductionPlanningTool(Document): and bom.is_active = 1) %s""" % \ (", ".join(["%s"] * len(mr_list)), item_condition), tuple(mr_list), as_dict=1) - self.add_items(items) + self.add_items(items) def add_items(self, items): @@ -314,7 +314,7 @@ class ProductionPlanningTool(Document): } """ item_list = [] - + for bom, so_wise_qty in bom_dict.items(): bom_wise_item_details = {} if self.use_multi_level_bom and self.only_raw_materials and self.include_subcontracted: @@ -335,19 +335,19 @@ class ProductionPlanningTool(Document): # so no childs of SA items bom_wise_item_details = self.get_subitems(bom_wise_item_details, bom,1, \ self.use_multi_level_bom,self.only_raw_materials, self.include_subcontracted,non_stock_item) - + for item, item_details in bom_wise_item_details.items(): for so_qty in so_wise_qty: item_list.append([item, flt(item_details.qty) * so_qty[1], item_details.description, item_details.stock_uom, item_details.min_order_qty, so_qty[0]]) - + self.make_items_dict(item_list) def get_subitems(self,bom_wise_item_details, bom, parent_qty, include_sublevel, only_raw, supply_subs,non_stock_item=0): for d in frappe.db.sql("""SELECT bom_item.item_code, default_material_request_type, - ifnull(%(parent_qty)s * sum(bom_item.qty/ifnull(bom.quantity, 1)), 0) as qty, + ifnull(%(parent_qty)s * sum(bom_item.qty/ifnull(bom.quantity, 1)), 0) as qty, item.is_sub_contracted_item as is_sub_contracted, item.default_bom as default_bom, - bom_item.description as description, bom_item.stock_uom as stock_uom, item.min_order_qty + bom_item.description as description, bom_item.stock_uom as stock_uom, item.min_order_qty as min_order_qty FROM `tabBOM Item` bom_item, `tabBOM` bom, tabItem item where bom.name = bom_item.parent and bom.name = %(bom)s and bom_item.docstatus < 2 and bom_item.item_code = item.name @@ -364,7 +364,7 @@ class ProductionPlanningTool(Document): if include_sublevel: if (d.default_material_request_type == "Purchase" and d.is_sub_contracted \ and supply_subs) or (d.default_material_request_type == "Manufacture"): - child_details = self.get_subitems(bom_wise_item_details,d.default_bom, \ + self.get_subitems(bom_wise_item_details,d.default_bom, \ d.qty, include_sublevel, only_raw, supply_subs) return bom_wise_item_details @@ -409,12 +409,12 @@ class ProductionPlanningTool(Document): items_to_be_requested = frappe._dict() if not self.create_material_requests_for_all_required_qty: - item_projected_qty = self.get_projected_qty() + item_projected_qty = self.get_projected_qty() for item, so_item_qty in self.item_dict.items(): total_qty = sum([flt(d[0]) for d in so_item_qty]) requested_qty = 0 - + if self.create_material_requests_for_all_required_qty: requested_qty = total_qty elif total_qty > item_projected_qty.get(item, 0): diff --git a/erpnext/schools/doctype/program/program.json b/erpnext/schools/doctype/program/program.json index ca6e1dfac6..0ee9be0058 100644 --- a/erpnext/schools/doctype/program/program.json +++ b/erpnext/schools/doctype/program/program.json @@ -1,7 +1,7 @@ { "allow_copy": 0, "allow_import": 1, - "allow_rename": 0, + "allow_rename": 1, "autoname": "field:program_name", "beta": 0, "creation": "2015-09-07 12:54:03.609282", @@ -10,11 +10,13 @@ "doctype": "DocType", "document_type": "", "editable_grid": 0, + "engine": "InnoDB", "fields": [ { "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "program_name", "fieldtype": "Data", "hidden": 0, @@ -40,6 +42,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "program_code", "fieldtype": "Data", "hidden": 0, @@ -65,6 +68,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "program_abbreviation", "fieldtype": "Data", "hidden": 0, @@ -90,6 +94,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "column_break_3", "fieldtype": "Column Break", "hidden": 0, @@ -114,6 +119,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "department", "fieldtype": "Link", "hidden": 0, @@ -140,6 +146,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "section_break_5", "fieldtype": "Section Break", "hidden": 0, @@ -165,6 +172,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "courses", "fieldtype": "Table", "hidden": 0, @@ -191,6 +199,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "fee_schedule", "fieldtype": "Section Break", "hidden": 0, @@ -216,6 +225,7 @@ "allow_on_submit": 0, "bold": 0, "collapsible": 0, + "columns": 0, "fieldname": "fees", "fieldtype": "Table", "hidden": 0, @@ -250,7 +260,7 @@ "istable": 0, "max_attachments": 0, "menu_index": 0, - "modified": "2016-08-27 03:21:35.806511", + "modified": "2016-10-18 12:17:05.479801", "modified_by": "Administrator", "module": "Schools", "name": "Program", @@ -267,6 +277,7 @@ "export": 1, "if_owner": 0, "import": 0, + "is_custom": 0, "permlevel": 0, "print": 1, "read": 1, diff --git a/erpnext/setup/setup_wizard/domainify.py b/erpnext/setup/setup_wizard/domainify.py index 4d6ea5c9e1..9d5bf3059d 100644 --- a/erpnext/setup/setup_wizard/domainify.py +++ b/erpnext/setup/setup_wizard/domainify.py @@ -97,6 +97,7 @@ def setup_roles(data): '''Add, remove roles from `data.allow_roles` or `data.remove_roles`''' def remove_role(role): frappe.db.sql('delete from tabUserRole where role=%s', role) + frappe.set_value('Role', role, 'disabled', 1) if data.remove_roles: for role in data.remove_roles: