fix: update To Date in Employee Work History (#31811)

This commit is contained in:
Rucha Mahabal
2022-08-09 18:19:09 +05:30
committed by GitHub
parent 3c8c5d01fb
commit 0057c10a7d
3 changed files with 19 additions and 1 deletions

View File

@@ -10,7 +10,7 @@ from frappe.permissions import (
remove_user_permission,
set_user_permission_if_allowed,
)
from frappe.utils import add_years, cstr, getdate, today, validate_email_address
from frappe.utils import add_days, add_years, cstr, getdate, today, validate_email_address
from frappe.utils.nestedset import NestedSet
from erpnext.utilities.transaction_base import delete_events
@@ -64,6 +64,8 @@ class Employee(NestedSet):
if existing_user_id:
remove_user_permission("Employee", self.name, existing_user_id)
self.update_to_date_in_work_history()
def after_rename(self, old, new, merge):
self.db_set("employee", new)
@@ -166,6 +168,18 @@ class Employee(NestedSet):
user.flags.ignore_permissions = True
user.add_roles("Expense Approver")
def update_to_date_in_work_history(self):
if not self.internal_work_history:
return
for idx, row in enumerate(self.internal_work_history):
if not row.from_date or idx == 0:
continue
self.internal_work_history[idx - 1].to_date = add_days(row.from_date, -1)
self.internal_work_history[-1].to_date = None
def validate_date(self):
if self.date_of_birth and getdate(self.date_of_birth) > getdate(today()):
throw(_("Date of Birth cannot be greater than today."))

View File

@@ -80,12 +80,14 @@ class TestEmployeeTransfer(unittest.TestCase):
department = ["Accounts - TC", "Management - TC"]
designation = ["Accountant", "Manager"]
dt = [getdate("01-10-2021"), getdate()]
to_date = [add_days(dt[1], -1), None]
employee = frappe.get_doc("Employee", employee)
for data in employee.internal_work_history:
self.assertEqual(data.department, department[count])
self.assertEqual(data.designation, designation[count])
self.assertEqual(data.from_date, dt[count])
self.assertEqual(data.to_date, to_date[count])
count = count + 1
transfer.cancel()
@@ -95,6 +97,7 @@ class TestEmployeeTransfer(unittest.TestCase):
self.assertEqual(data.designation, designation[0])
self.assertEqual(data.department, department[0])
self.assertEqual(data.from_date, dt[0])
self.assertEqual(data.to_date, None)
def create_company():

View File

@@ -224,6 +224,7 @@ def delete_employee_work_history(details, employee, date):
filters["from_date"] = date
if filters:
frappe.db.delete("Employee Internal Work History", filters)
employee.reload()
@frappe.whitelist()