fix: employee status server-side validation (#26442)

* fix: employee status server-side validation

* fix: test

* test: employee inactive status

* fix: test
This commit is contained in:
Rucha Mahabal
2021-07-30 10:21:42 +05:30
committed by GitHub
parent 383c49cfed
commit 821db5cce7
27 changed files with 88 additions and 32 deletions

View File

@@ -3,13 +3,12 @@
import erpnext
import frappe
from erpnext.hr.doctype.employee.employee import get_holiday_list_for_employee
from erpnext.hr.doctype.employee.employee import get_holiday_list_for_employee, InactiveEmployeeStatusError
from frappe import _
from frappe.desk.form import assign_to
from frappe.model.document import Document
from frappe.utils import (add_days, cstr, flt, format_datetime, formatdate,
get_datetime, getdate, nowdate, today, unique)
get_datetime, getdate, nowdate, today, unique, get_link_to_form)
class DuplicateDeclarationError(frappe.ValidationError): pass
@@ -410,3 +409,8 @@ def share_doc_with_approver(doc, user):
approver = approvers.get(doc.doctype)
if doc_before_save.get(approver) != doc.get(approver):
frappe.share.remove(doc.doctype, doc.name, doc_before_save.get(approver))
def validate_active_employee(employee):
if frappe.db.get_value("Employee", employee, "status") == "Inactive":
frappe.throw(_("Transactions cannot be created for an Inactive Employee {0}.").format(
get_link_to_form("Employee", employee)), InactiveEmployeeStatusError)