From d580c923771f0e298c2d646ca7212fade6dc4348 Mon Sep 17 00:00:00 2001 From: Ranjith Kurungadam Date: Tue, 5 Jun 2018 11:40:58 +0530 Subject: [PATCH] Staffing Plan (#14346) * validate staffing plan * staffing plan docs * get_active_staffing_plan_and_vacancies now returns dict, mandatory fields set * validate with parent and child company plans, plan now considers open job openings * Failure details in validate error messages * Fixed sql injection --- .../human-resources/staffing-plan-detail.png | Bin 0 -> 39896 bytes .../img/human-resources/staffing-plan.png | Bin 0 -> 113958 bytes .../en/human-resources/staffing-plan.md | 18 + erpnext/hr/doctype/job_opening/job_opening.js | 6 +- erpnext/hr/doctype/job_opening/job_opening.py | 21 +- .../hr/doctype/staffing_plan/staffing_plan.js | 21 +- .../doctype/staffing_plan/staffing_plan.json | 16 +- .../hr/doctype/staffing_plan/staffing_plan.py | 138 ++++- .../staffing_plan_detail.json | 521 ++++++++++-------- 9 files changed, 457 insertions(+), 284 deletions(-) create mode 100644 erpnext/docs/assets/img/human-resources/staffing-plan-detail.png create mode 100644 erpnext/docs/assets/img/human-resources/staffing-plan.png create mode 100644 erpnext/docs/user/manual/en/human-resources/staffing-plan.md diff --git a/erpnext/docs/assets/img/human-resources/staffing-plan-detail.png b/erpnext/docs/assets/img/human-resources/staffing-plan-detail.png new file mode 100644 index 0000000000000000000000000000000000000000..63532b7a73b245bda968a14764b0331d204359a7 GIT binary patch literal 39896 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 b+`XmrpCO%H5UBT2-{+Pc3kb=@i literal 0 HcmV?d00001 diff --git a/erpnext/docs/assets/img/human-resources/staffing-plan.png b/erpnext/docs/assets/img/human-resources/staffing-plan.png new file mode 100644 index 0000000000000000000000000000000000000000..f6550290ee1083791d9b7d0447995d30b6c603d9 GIT binary patch literal 113958 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 literal 0 HcmV?d00001 diff --git a/erpnext/docs/user/manual/en/human-resources/staffing-plan.md b/erpnext/docs/user/manual/en/human-resources/staffing-plan.md new file mode 100644 index 0000000000..d16a1ec0ce --- /dev/null +++ b/erpnext/docs/user/manual/en/human-resources/staffing-plan.md @@ -0,0 +1,18 @@ +# Staffing Plan +Staffing Plan helps you to plan human resource recruitments for your Company. ERPNext allows you to do this at a group company level helping you efficiently plan and budget new hirings for a period. Job Openings can only be created as per the number of vacancies and budget as per the active Staffing Plan. + +> Human Resources > Setup > Staffing Plan > New Staffing Plan + +Staffing Plan + +- **Designation:** The designations for which you are creating the Staffing Plan. +- **Number of Positions:** The number of positions you plan to recruit for between the Staffing Plan from and to dates. +- **Current Count:** This is the number of Employees already hired for the Designation. +- **Vacancies:** The number of vacancies based on the Number of Positions you wish to recruit and the current Employee count. +- **Estimated Cost Per Position:** You can specify the cost to company per position so that hiring officials can stick to the budget. + +Staffing Plan Detail + +**Total Estimated Budget** Once you enter the recruitment plan for all the designations, Staffing Plan will draw up the total estimated budget. diff --git a/erpnext/hr/doctype/job_opening/job_opening.js b/erpnext/hr/doctype/job_opening/job_opening.js index 7b0e447a9e..b303b2451d 100644 --- a/erpnext/hr/doctype/job_opening/job_opening.js +++ b/erpnext/hr/doctype/job_opening/job_opening.js @@ -14,7 +14,7 @@ frappe.ui.form.on('Job Opening', { designation: function(frm) { if(frm.doc.designation && frm.doc.company){ frappe.call({ - "method": "erpnext.hr.doctype.staffing_plan.staffing_plan.get_active_staffing_plan_and_vacancies", + "method": "erpnext.hr.doctype.staffing_plan.staffing_plan.get_active_staffing_plan_details", args: { company: frm.doc.company, designation: frm.doc.designation, @@ -23,8 +23,8 @@ frappe.ui.form.on('Job Opening', { }, callback: function (data) { if(data.message){ - frm.set_value('staffing_plan', data.message[0]); - frm.set_value('planned_vacancies', data.message[1]); + frm.set_value('staffing_plan', data.message[0].name); + frm.set_value('planned_vacancies', data.message[0].vacancies); } else { frm.set_value('staffing_plan', ""); frm.set_value('planned_vacancies', 0); diff --git a/erpnext/hr/doctype/job_opening/job_opening.py b/erpnext/hr/doctype/job_opening/job_opening.py index b579d6f24a..cfe6290049 100644 --- a/erpnext/hr/doctype/job_opening/job_opening.py +++ b/erpnext/hr/doctype/job_opening/job_opening.py @@ -8,7 +8,7 @@ import frappe from frappe.website.website_generator import WebsiteGenerator from frappe import _ -from erpnext.hr.doctype.staffing_plan.staffing_plan import get_current_employee_count, get_active_staffing_plan_and_vacancies +from erpnext.hr.doctype.staffing_plan.staffing_plan import get_designation_counts, get_active_staffing_plan_details class JobOpening(WebsiteGenerator): website = frappe._dict( @@ -24,11 +24,11 @@ class JobOpening(WebsiteGenerator): def validate_current_vacancies(self): if not self.staffing_plan: - vacancies = get_active_staffing_plan_and_vacancies(self.company, + staffing_plan = get_active_staffing_plan_details(self.company, self.designation, self.department) - if vacancies: - self.staffing_plan = vacancies[0] - self.planned_vacancies = vacancies[1] + if staffing_plan: + self.staffing_plan = staffing_plan[0].name + self.planned_vacancies = staffing_plan[0].vacancies elif not self.planned_vacancies: planned_vacancies = frappe.db.sql(""" select vacancies from `tabStaffing Plan Detail` @@ -39,14 +39,13 @@ class JobOpening(WebsiteGenerator): staffing_plan_company = frappe.db.get_value("Staffing Plan", self.staffing_plan, "company") lft, rgt = frappe.db.get_value("Company", staffing_plan_company, ["lft", "rgt"]) - current_count = get_current_employee_count(self.designation, staffing_plan_company) - current_count+= frappe.db.sql("""select count(*) from `tabJob Opening` \ - where designation=%s and status='Open' - and company in (select name from tabCompany where lft>=%s and rgt<=%s) - """, (self.designation, lft, rgt))[0][0] + designation_counts = get_designation_counts(self.designation, self.company) + current_count = designation_counts['employee_count'] + designation_counts['job_openings'] if self.planned_vacancies <= current_count: - frappe.throw(_("Job Openings for designation {0} and company {1} already opened or hiring completed as per Staffing Plan {2}".format(self.designation, staffing_plan_company, self.staffing_plan))) + frappe.throw(_("Job Openings for designation {0} already open \ + or hiring completed as per Staffing Plan {1}" + .format(self.designation, self.staffing_plan))) def get_context(self, context): context.parents = [{'route': 'jobs', 'title': _('All Jobs') }] diff --git a/erpnext/hr/doctype/staffing_plan/staffing_plan.js b/erpnext/hr/doctype/staffing_plan/staffing_plan.js index ca57d9f19d..4fbc6b3089 100644 --- a/erpnext/hr/doctype/staffing_plan/staffing_plan.js +++ b/erpnext/hr/doctype/staffing_plan/staffing_plan.js @@ -33,17 +33,22 @@ frappe.ui.form.on('Staffing Plan Detail', { let child = locals[cdt][cdn] if(frm.doc.company && child.designation){ frappe.call({ - "method": "erpnext.hr.doctype.staffing_plan.staffing_plan.get_current_employee_count", + "method": "erpnext.hr.doctype.staffing_plan.staffing_plan.get_designation_counts", args: { designation: child.designation, company: frm.doc.company }, callback: function (data) { if(data.message){ - frappe.model.set_value(cdt, cdn, 'current_count', data.message); + frappe.model.set_value(cdt, cdn, 'current_count', data.message.employee_count); + frappe.model.set_value(cdt, cdn, 'current_openings', data.message.job_openings); + if (child.number_of_positions < (data.message.employee_count + data.message.job_openings)){ + frappe.model.set_value(cdt, cdn, 'number_of_positions', data.message.employee_count + data.message.job_openings); + } } else{ // No employees for this designation frappe.model.set_value(cdt, cdn, 'current_count', 0); + frappe.model.set_value(cdt, cdn, 'current_openings', 0); } } }); @@ -67,19 +72,25 @@ frappe.ui.form.on('Staffing Plan Detail', { var set_vacancies = function(frm, cdt, cdn) { let child = locals[cdt][cdn] - if(child.number_of_positions) { - frappe.model.set_value(cdt, cdn, 'vacancies', child.number_of_positions - child.current_count); + if (child.number_of_positions < (child.current_count + child.current_openings)){ + frappe.throw(__("Number of positions cannot be less then current count of employees")) + } + + if(child.number_of_positions > 0) { + frappe.model.set_value(cdt, cdn, 'vacancies', child.number_of_positions - (child.current_count + child.current_openings)); } else{ frappe.model.set_value(cdt, cdn, 'vacancies', 0); } + set_total_estimated_cost(frm, cdt, cdn); } // Note: Estimated Cost is calculated on number of Vacancies +// Validate for > 0 ? var set_total_estimated_cost = function(frm, cdt, cdn) { let child = locals[cdt][cdn] - if(child.number_of_positions && child.estimated_cost_per_position) { + if(child.vacancies > 0 && child.estimated_cost_per_position) { frappe.model.set_value(cdt, cdn, 'total_estimated_cost', child.vacancies * child.estimated_cost_per_position); } else { diff --git a/erpnext/hr/doctype/staffing_plan/staffing_plan.json b/erpnext/hr/doctype/staffing_plan/staffing_plan.json index 229cc05ddd..9576bc306a 100644 --- a/erpnext/hr/doctype/staffing_plan/staffing_plan.json +++ b/erpnext/hr/doctype/staffing_plan/staffing_plan.json @@ -15,6 +15,7 @@ "fields": [ { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -47,6 +48,7 @@ }, { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -79,6 +81,7 @@ }, { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -109,6 +112,7 @@ }, { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -132,7 +136,7 @@ "read_only": 0, "remember_last_selected_value": 0, "report_hide": 0, - "reqd": 0, + "reqd": 1, "search_index": 0, "set_only_once": 0, "translatable": 0, @@ -140,6 +144,7 @@ }, { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -163,7 +168,7 @@ "read_only": 0, "remember_last_selected_value": 0, "report_hide": 0, - "reqd": 0, + "reqd": 1, "search_index": 0, "set_only_once": 0, "translatable": 0, @@ -171,6 +176,7 @@ }, { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -202,6 +208,7 @@ }, { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -234,6 +241,7 @@ }, { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -264,6 +272,7 @@ }, { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -296,6 +305,7 @@ }, { "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, "allow_on_submit": 0, "bold": 0, "collapsible": 0, @@ -336,7 +346,7 @@ "issingle": 0, "istable": 0, "max_attachments": 0, - "modified": "2018-04-18 19:10:34.394249", + "modified": "2018-05-28 18:30:27.041395", "modified_by": "Administrator", "module": "HR", "name": "Staffing Plan", diff --git a/erpnext/hr/doctype/staffing_plan/staffing_plan.py b/erpnext/hr/doctype/staffing_plan/staffing_plan.py index 37ff5cbc90..e1a5f8ccb3 100644 --- a/erpnext/hr/doctype/staffing_plan/staffing_plan.py +++ b/erpnext/hr/doctype/staffing_plan/staffing_plan.py @@ -6,7 +6,7 @@ from __future__ import unicode_literals import frappe from frappe.model.document import Document from frappe import _ -from frappe.utils import getdate, nowdate +from frappe.utils import getdate, nowdate, cint, flt class StaffingPlan(Document): def validate(self): @@ -14,32 +14,128 @@ class StaffingPlan(Document): if self.from_date and self.to_date and self.from_date > self.to_date: frappe.throw(_("From Date cannot be greater than To Date")) - # Validate if any submitted Staffing Plan exist for Designations in this plan - # and spd.vacancies>0 ? - for detail in self.get("staffing_details"): - overlap = (frappe.db.sql("""select spd.parent \ - from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name \ - where spd.designation='{0}' and sp.docstatus=1 \ - and sp.to_date >= '{1}' and sp.from_date <='{2}'""" - .format(detail.designation, self.from_date, self.to_date))) + self.total_estimated_budget = 0 - if overlap and overlap [0][0]: - frappe.throw(_("Staffing Plan {0} already exist for designation {1}" - .format(overlap[0][0], detail.designation))) + for detail in self.get("staffing_details"): + self.validate_overlap(detail) + self.validate_with_subsidiary_plans(detail) + self.validate_with_parent_plan(detail) + + #Set readonly fields + designation_counts = get_designation_counts(detail.designation, self.company) + detail.current_count = designation_counts['employee_count'] + detail.current_openings = designation_counts['job_openings'] + + if detail.number_of_positions < (detail.current_count + detail.current_openings): + frappe.throw(_("Number of positions cannot be less then current count of employees")) + elif detail.number_of_positions > 0: + detail.vacancies = detail.number_of_positions - (detail.current_count + detail.current_openings) + if detail.vacancies > 0 and detail.estimated_cost_per_position: + detail.total_estimated_cost = detail.vacancies * detail.estimated_cost_per_position + else: detail.total_estimated_cost = 0 + else: detail.vacancies = detail.number_of_positions = detail.total_estimated_cost = 0 + self.total_estimated_budget += detail.total_estimated_cost + + def validate_overlap(self, staffing_plan_detail): + # Validate if any submitted Staffing Plan exist for any Designations in this plan + # and spd.vacancies>0 ? + overlap = frappe.db.sql("""select spd.parent + from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name + where spd.designation=%s and sp.docstatus=1 + and sp.to_date >= %s and sp.from_date <= %s and sp.company = %s + """, (staffing_plan_detail.designation, self.from_date, self.to_date, self.company)) + if overlap and overlap [0][0]: + frappe.throw(_("Staffing Plan {0} already exist for designation {1}" + .format(overlap[0][0], staffing_plan_detail.designation))) + + def validate_with_parent_plan(self, staffing_plan_detail): + if not frappe.db.get_value("Company", self.company, "parent_company"): + return # No parent, nothing to validate + + # Get staffing plan applicable for the company (Parent Company) + parent_plan_details = get_active_staffing_plan_details(self.company, staffing_plan_detail.designation) + if not parent_plan_details: + return #no staffing plan for any parent Company in herarchy + + # Fetch parent company which owns the staffing plan. NOTE: Parent could be higher up in the heirarchy + parent_company = frappe.db.get_value("Staffing Plan", parent_plan_details[0].name, "company") + + # Parent plan available, validate with parent, siblings as well as children of staffing plan Company + if staffing_plan_detail.vacancies > cint(parent_plan_details[0].vacancies) or \ + staffing_plan_detail.total_estimated_cost > flt(parent_plan_details[0].total_estimated_cost): + frappe.throw(_("You can only plan for upto {0} vacancies and budget {1} \ + for {2} as per staffing plan {3} for parent company {4}" + .format(cint(parent_plan_details[0].vacancies), + parent_plan_details[0].total_estimated_cost, + frappe.bold(staffing_plan_detail.designation), + parent_plan_details[0].name, + parent_company))) + + #Get vacanices already planned for all companies down the herarchy of Parent Company + lft, rgt = frappe.db.get_value("Company", parent_company, ["lft", "rgt"]) + all_sibling_details = frappe.db.sql("""select sum(spd.vacancies) as vacancies, + sum(spd.total_estimated_cost) as total_estimated_cost + from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name + where spd.designation=%s and sp.docstatus=1 + and sp.to_date >= %s and sp.from_date <=%s + and sp.company in (select name from tabCompany where lft > %s and rgt < %s) + """, (staffing_plan_detail.designation, self.from_date, self.to_date, lft, rgt), as_dict = 1)[0] + + if (cint(parent_plan_details[0].vacancies) < \ + (staffing_plan_detail.vacancies + cint(all_sibling_details.vacancies))) or \ + (flt(parent_plan_details[0].total_estimated_cost) < \ + (staffing_plan_detail.total_estimated_cost + flt(all_sibling_details.total_estimated_cost))): + frappe.throw(_("{0} vacancies and {1} budget for {2} already planned for subsidiary companies of {3}. \ + You can only plan for upto {4} vacancies and and budget {5} as per staffing plan {6} for parent company {3}" + .format(cint(all_sibling_details.vacancies), + all_sibling_details.total_estimated_cost, + frappe.bold(staffing_plan_detail.designation), + parent_company, + cint(parent_plan_details[0].vacancies), + parent_plan_details[0].total_estimated_cost, + parent_plan_details[0].name))) + + def validate_with_subsidiary_plans(self, staffing_plan_detail): + #Valdate this plan with all child company plan + children_details = frappe.db.sql("""select sum(spd.vacancies) as vacancies, + sum(spd.total_estimated_cost) as total_estimated_cost + from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name + where spd.designation=%s and sp.docstatus=1 + and sp.to_date >= %s and sp.from_date <=%s + and sp.company in (select name from tabCompany where parent_company = %s) + """, (staffing_plan_detail.designation, self.from_date, self.to_date, self.company), as_dict = 1)[0] + + if children_details and \ + staffing_plan_detail.vacancies < cint(children_details.vacancies) or \ + staffing_plan_detail.total_estimated_cost < flt(children_details.total_estimated_cost): + frappe.throw(_("Subsidiary companies have already planned for {1} vacancies at a budget of {2}. \ + Staffing Plan for {0} should allocate more vacancies and budget for {3} than planned for its subsidiary companies" + .format(self.company, + cint(children_details.vacancies), + children_details.total_estimated_cost, + frappe.bold(staffing_plan_detail.designation)))) @frappe.whitelist() -def get_current_employee_count(designation, company): +def get_designation_counts(designation, company): if not designation: return False + employee_counts_dict = {} lft, rgt = frappe.db.get_value("Company", company, ["lft", "rgt"]) - employee_count = frappe.db.sql("""select count(*) from `tabEmployee` + employee_counts_dict["employee_count"] = frappe.db.sql("""select count(*) from `tabEmployee` where designation = %s and status='Active' and company in (select name from tabCompany where lft>=%s and rgt<=%s) """, (designation, lft, rgt))[0][0] - return employee_count -def get_active_staffing_plan_and_vacancies(company, designation, department=None, date=getdate(nowdate())): + employee_counts_dict['job_openings'] = frappe.db.sql("""select count(*) from `tabJob Opening` \ + where designation=%s and status='Open' + and company in (select name from tabCompany where lft>=%s and rgt<=%s) + """, (designation, lft, rgt))[0][0] + + return employee_counts_dict + +@frappe.whitelist() +def get_active_staffing_plan_details(company, designation, department=None, date=getdate(nowdate())): if not company or not designation: frappe.throw(_("Please select Company and Designation")) @@ -51,16 +147,16 @@ def get_active_staffing_plan_and_vacancies(company, designation, department=None conditions += " and '{0}' between sp.from_date and sp.to_date".format(date) staffing_plan = frappe.db.sql(""" - select sp.name, spd.vacancies + select sp.name, spd.vacancies, spd.total_estimated_cost from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name where company=%s and spd.designation=%s and sp.docstatus=1 {0} - """.format(conditions), (company, designation)) + """.format(conditions), (company, designation), as_dict = 1) if not staffing_plan: parent_company = frappe.db.get_value("Company", company, "parent_company") if parent_company: - staffing_plan = get_active_staffing_plan_and_vacancies(parent_company, + staffing_plan = get_active_staffing_plan_details(parent_company, designation, department, date) - # Only a signle staffing plan can be active for a designation on given date - return staffing_plan[0] if staffing_plan else None + # Only a single staffing plan can be active for a designation on given date + return staffing_plan if staffing_plan else None diff --git a/erpnext/hr/doctype/staffing_plan_detail/staffing_plan_detail.json b/erpnext/hr/doctype/staffing_plan_detail/staffing_plan_detail.json index eb77b43914..f1d16096c0 100644 --- a/erpnext/hr/doctype/staffing_plan_detail/staffing_plan_detail.json +++ b/erpnext/hr/doctype/staffing_plan_detail/staffing_plan_detail.json @@ -1,258 +1,297 @@ { - "allow_copy": 0, - "allow_guest_to_view": 0, - "allow_import": 0, - "allow_rename": 0, - "beta": 0, - "creation": "2018-04-13 18:04:20.978931", - "custom": 0, - "docstatus": 0, - "doctype": "DocType", - "document_type": "", - "editable_grid": 1, - "engine": "InnoDB", + "allow_copy": 0, + "allow_guest_to_view": 0, + "allow_import": 0, + "allow_rename": 0, + "beta": 0, + "creation": "2018-04-13 18:04:20.978931", + "custom": 0, + "docstatus": 0, + "doctype": "DocType", + "document_type": "", + "editable_grid": 1, + "engine": "InnoDB", "fields": [ { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "designation", - "fieldtype": "Link", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Designation", - "length": 0, - "no_copy": 0, - "options": "Designation", - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "designation", + "fieldtype": "Link", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Designation", + "length": 0, + "no_copy": 0, + "options": "Designation", + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 1, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "number_of_positions", - "fieldtype": "Int", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Number Of Positions", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "number_of_positions", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Number Of Positions", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "estimated_cost_per_position", - "fieldtype": "Currency", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Estimated Cost Per Position", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "estimated_cost_per_position", + "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Estimated Cost Per Position", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "total_estimated_cost", - "fieldtype": "Currency", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "label": "Total Estimated Cost", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "column_break_5", + "fieldtype": "Column Break", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 0, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "column_break_5", - "fieldtype": "Column Break", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 0, - "in_standard_filter": 0, - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 0, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "current_count", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Current Count", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "current_count", - "fieldtype": "Int", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Current Count", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "current_openings", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 0, + "in_standard_filter": 0, + "label": "Current Openings", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - }, + }, { - "allow_bulk_edit": 0, - "allow_on_submit": 0, - "bold": 0, - "collapsible": 0, - "columns": 0, - "fieldname": "vacancies", - "fieldtype": "Int", - "hidden": 0, - "ignore_user_permissions": 0, - "ignore_xss_filter": 0, - "in_filter": 0, - "in_global_search": 0, - "in_list_view": 1, - "in_standard_filter": 0, - "label": "Vacancies", - "length": 0, - "no_copy": 0, - "permlevel": 0, - "precision": "", - "print_hide": 0, - "print_hide_if_no_value": 0, - "read_only": 1, - "remember_last_selected_value": 0, - "report_hide": 0, - "reqd": 0, - "search_index": 0, - "set_only_once": 0, - "translatable": 0, + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "vacancies", + "fieldtype": "Int", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Vacancies", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, "unique": 0 - } - ], - "has_web_view": 0, - "hide_heading": 0, - "hide_toolbar": 0, - "idx": 0, - "image_view": 0, - "in_create": 0, - "is_submittable": 0, - "issingle": 0, - "istable": 1, - "max_attachments": 0, - "modified": "2018-04-15 16:09:12.622186", - "modified_by": "Administrator", - "module": "HR", - "name": "Staffing Plan Detail", - "name_case": "", - "owner": "Administrator", - "permissions": [], - "quick_entry": 1, - "read_only": 0, - "read_only_onload": 0, - "show_name_in_global_search": 0, - "sort_field": "modified", - "sort_order": "DESC", - "track_changes": 1, + }, + { + "allow_bulk_edit": 0, + "allow_in_quick_entry": 0, + "allow_on_submit": 0, + "bold": 0, + "collapsible": 0, + "columns": 0, + "fieldname": "total_estimated_cost", + "fieldtype": "Currency", + "hidden": 0, + "ignore_user_permissions": 0, + "ignore_xss_filter": 0, + "in_filter": 0, + "in_global_search": 0, + "in_list_view": 1, + "in_standard_filter": 0, + "label": "Total Estimated Cost", + "length": 0, + "no_copy": 0, + "permlevel": 0, + "precision": "", + "print_hide": 0, + "print_hide_if_no_value": 0, + "read_only": 1, + "remember_last_selected_value": 0, + "report_hide": 0, + "reqd": 0, + "search_index": 0, + "set_only_once": 0, + "translatable": 0, + "unique": 0 + } + ], + "has_web_view": 0, + "hide_heading": 0, + "hide_toolbar": 0, + "idx": 0, + "image_view": 0, + "in_create": 0, + "is_submittable": 0, + "issingle": 0, + "istable": 1, + "max_attachments": 0, + "modified": "2018-06-01 17:03:38.020993", + "modified_by": "Administrator", + "module": "HR", + "name": "Staffing Plan Detail", + "name_case": "", + "owner": "Administrator", + "permissions": [], + "quick_entry": 1, + "read_only": 0, + "read_only_onload": 0, + "show_name_in_global_search": 0, + "sort_field": "modified", + "sort_order": "DESC", + "track_changes": 1, "track_seen": 0 -} \ No newline at end of file +}