fix: staffing Plan validation (#22379)
This commit is contained in:
parent
ca8894b0fc
commit
36560c8406
@ -20,10 +20,9 @@ class JobOffer(Document):
|
|||||||
staffing_plan = get_staffing_plan_detail(self.designation, self.company, self.offer_date)
|
staffing_plan = get_staffing_plan_detail(self.designation, self.company, self.offer_date)
|
||||||
check_vacancies = frappe.get_single("HR Settings").check_vacancies
|
check_vacancies = frappe.get_single("HR Settings").check_vacancies
|
||||||
if staffing_plan and check_vacancies:
|
if staffing_plan and check_vacancies:
|
||||||
vacancies = frappe.db.get_value("Staffing Plan Detail", filters={"name": staffing_plan.name}, fieldname=['vacancies'])
|
job_offers = self.get_job_offer(staffing_plan.from_date, staffing_plan.to_date)
|
||||||
job_offers = len(self.get_job_offer(staffing_plan.from_date, staffing_plan.to_date))
|
if staffing_plan.vacancies - len(job_offers) <= 0:
|
||||||
if vacancies - job_offers <= 0:
|
frappe.throw(_("There are no vacancies under staffing plan {0}").format(frappe.bold(get_link_to_form("Staffing Plan", staffing_plan.parent))))
|
||||||
frappe.throw(_("There are no vacancies under staffing plan {0}").format(get_link_to_form("Staffing Plan", staffing_plan.parent)))
|
|
||||||
|
|
||||||
def on_change(self):
|
def on_change(self):
|
||||||
update_job_applicant(self.status, self.job_applicant)
|
update_job_applicant(self.status, self.job_applicant)
|
||||||
@ -42,18 +41,22 @@ def update_job_applicant(status, job_applicant):
|
|||||||
|
|
||||||
def get_staffing_plan_detail(designation, company, offer_date):
|
def get_staffing_plan_detail(designation, company, offer_date):
|
||||||
detail = frappe.db.sql("""
|
detail = frappe.db.sql("""
|
||||||
SELECT spd.name as name,
|
SELECT DISTINCT spd.parent,
|
||||||
sp.from_date as from_date,
|
sp.from_date as from_date,
|
||||||
sp.to_date as to_date,
|
sp.to_date as to_date,
|
||||||
sp.name as parent
|
sp.name,
|
||||||
|
sum(spd.vacancies) as vacancies,
|
||||||
|
spd.designation
|
||||||
FROM `tabStaffing Plan Detail` spd, `tabStaffing Plan` sp
|
FROM `tabStaffing Plan Detail` spd, `tabStaffing Plan` sp
|
||||||
WHERE
|
WHERE
|
||||||
sp.docstatus=1
|
sp.docstatus=1
|
||||||
AND spd.designation=%s
|
AND spd.designation=%s
|
||||||
AND sp.company=%s
|
AND sp.company=%s
|
||||||
|
AND spd.parent = sp.name
|
||||||
AND %s between sp.from_date and sp.to_date
|
AND %s between sp.from_date and sp.to_date
|
||||||
""", (designation, company, offer_date), as_dict=1)
|
""", (designation, company, offer_date), as_dict=1)
|
||||||
return detail[0] if detail else None
|
|
||||||
|
return frappe._dict(detail[0]) if detail else None
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
def make_employee(source_name, target_doc=None):
|
def make_employee(source_name, target_doc=None):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user