Staffing Plan - remove department filter, query by dates (#14590)
This commit is contained in:
parent
fd5ac45775
commit
f972e7b259
@ -18,7 +18,6 @@ frappe.ui.form.on('Job Opening', {
|
|||||||
args: {
|
args: {
|
||||||
company: frm.doc.company,
|
company: frm.doc.company,
|
||||||
designation: frm.doc.designation,
|
designation: frm.doc.designation,
|
||||||
department: frm.doc.department,
|
|
||||||
date: frappe.datetime.now_date() // ToDo - Date in Job Opening?
|
date: frappe.datetime.now_date() // ToDo - Date in Job Opening?
|
||||||
},
|
},
|
||||||
callback: function (data) {
|
callback: function (data) {
|
||||||
|
|||||||
@ -25,7 +25,7 @@ class JobOpening(WebsiteGenerator):
|
|||||||
def validate_current_vacancies(self):
|
def validate_current_vacancies(self):
|
||||||
if not self.staffing_plan:
|
if not self.staffing_plan:
|
||||||
staffing_plan = get_active_staffing_plan_details(self.company,
|
staffing_plan = get_active_staffing_plan_details(self.company,
|
||||||
self.designation, self.department)
|
self.designation)
|
||||||
if staffing_plan:
|
if staffing_plan:
|
||||||
self.staffing_plan = staffing_plan[0].name
|
self.staffing_plan = staffing_plan[0].name
|
||||||
self.planned_vacancies = staffing_plan[0].vacancies
|
self.planned_vacancies = staffing_plan[0].vacancies
|
||||||
|
|||||||
@ -53,7 +53,7 @@ class StaffingPlan(Document):
|
|||||||
return # No parent, nothing to validate
|
return # No parent, nothing to validate
|
||||||
|
|
||||||
# Get staffing plan applicable for the company (Parent Company)
|
# Get staffing plan applicable for the company (Parent Company)
|
||||||
parent_plan_details = get_active_staffing_plan_details(self.company, staffing_plan_detail.designation)
|
parent_plan_details = get_active_staffing_plan_details(self.company, staffing_plan_detail.designation, self.from_date, self.to_date)
|
||||||
if not parent_plan_details:
|
if not parent_plan_details:
|
||||||
return #no staffing plan for any parent Company in herarchy
|
return #no staffing plan for any parent Company in herarchy
|
||||||
|
|
||||||
@ -135,28 +135,21 @@ def get_designation_counts(designation, company):
|
|||||||
return employee_counts_dict
|
return employee_counts_dict
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def get_active_staffing_plan_details(company, designation, department=None, date=getdate(nowdate())):
|
def get_active_staffing_plan_details(company, designation, from_date=getdate(nowdate()), to_date=getdate(nowdate())):
|
||||||
if not company or not designation:
|
if not company or not designation:
|
||||||
frappe.throw(_("Please select Company and Designation"))
|
frappe.throw(_("Please select Company and Designation"))
|
||||||
|
|
||||||
conditions = ""
|
|
||||||
if(department): #Department is an optional field
|
|
||||||
conditions += " and sp.department='{0}'".format(frappe.db.escape(department))
|
|
||||||
|
|
||||||
if(date): #ToDo: Date should be mandatory?
|
|
||||||
conditions += " and '{0}' between sp.from_date and sp.to_date".format(date)
|
|
||||||
|
|
||||||
staffing_plan = frappe.db.sql("""
|
staffing_plan = frappe.db.sql("""
|
||||||
select sp.name, spd.vacancies, spd.total_estimated_cost
|
select sp.name, spd.vacancies, spd.total_estimated_cost
|
||||||
from `tabStaffing Plan Detail` spd join `tabStaffing Plan` sp on spd.parent=sp.name
|
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}
|
where company=%s and spd.designation=%s and sp.docstatus=1
|
||||||
""".format(conditions), (company, designation), as_dict = 1)
|
and to_date >= %s and from_date <= %s """, (company, designation, from_date, to_date), as_dict = 1)
|
||||||
|
|
||||||
if not staffing_plan:
|
if not staffing_plan:
|
||||||
parent_company = frappe.db.get_value("Company", company, "parent_company")
|
parent_company = frappe.db.get_value("Company", company, "parent_company")
|
||||||
if parent_company:
|
if parent_company:
|
||||||
staffing_plan = get_active_staffing_plan_details(parent_company,
|
staffing_plan = get_active_staffing_plan_details(parent_company,
|
||||||
designation, department, date)
|
designation, from_date, to_date)
|
||||||
|
|
||||||
# Only a single staffing plan can be active for a designation on given date
|
# Only a single staffing plan can be active for a designation on given date
|
||||||
return staffing_plan if staffing_plan else None
|
return staffing_plan if staffing_plan else None
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user