public bool AddEmployeeLeaveEntry(LeaveEntry leaveEntry) { try { var LeaveConfirmationViewModel = new LeaveConfirmationViewModel { EmployeeCode = leaveEntry.EmployeeCode, LeaveTypeCode = leaveEntry.LeaveTypeCode, LeaveRequestedFromDate = leaveEntry.LeaveRequestedFromDate.ToString(), LeaveStatus = leaveEntry.LeaveStatus, NumberOfLeaves = leaveEntry.NumberOfLeaves }; var result = _leaveStatusService.UpdateEmployeeLeaveAllocation(LeaveConfirmationViewModel); if (result == false) { return(false); } _unitOfWork.LeaveEntryRepository.Insert(leaveEntry); _unitOfWork.SaveAsync(); return(true); } catch (Exception ex) { return(false); } }
public object GetAllLeaveByEmployee(string employeeCode, int?year) { var leaveList = _unitOfWork.LeaveEntryRepository.Get(e => e.EmployeeCode == employeeCode && e.LeaveRequestedFromDate.Year == year).ToList(); List <LeaveConfirmationViewModel> leaveConfirmationDtoList = new List <LeaveConfirmationViewModel>(); foreach (var leave in leaveList) { var leaveType = _unitOfWork.LeaveTypesRepository.Get(e => e.LeaveTypeCode == leave.LeaveTypeCode).FirstOrDefault().LeaveTypeDescription; var leaveConfirmationViewModel = new LeaveConfirmationViewModel { Year = leave.LeaveRequestedFromDate.Year.ToString(), LeaveType = leaveType, EmployeeCode = leave.EmployeeCode, LeaveTypeCode = leave.LeaveTypeCode, LeaveRequestedFromDate = leave.LeaveRequestedFromDate.ToString("dd-MM-yyyy"), LeaveRequestedToDate = leave.LeaveRequestedToDate.ToString("dd-MM-yyyy"), NumberOfLeaves = leave.NumberOfLeaves, EmployeeComment = leave.EmployeeComment, ApproverComment = leave.ApproverComment, LeaveStatus = leave.LeaveStatus }; leaveConfirmationDtoList.Add(leaveConfirmationViewModel); } return(leaveConfirmationDtoList); }
public ActionResult LeaveConfirmation(string employeeCode, string leaveRequestedFromDate, string leaveTypeCode, int noOfLeave, string status, string approverComment) { string supervisorCode = Session["LoggedSupervisorCode"].ToString(); var leaveConfirmationViewModel = new LeaveConfirmationViewModel { EmployeeCode = employeeCode, LeaveTypeCode = leaveTypeCode, LeaveRequestedFromDate = leaveRequestedFromDate, LeaveStatus = status, NumberOfLeaves = noOfLeave, ApproverComment = approverComment, LeaveStatusUpdatedDate = DateTime.Now.Date.ToString(), LeaveStatusUpdatedBy = supervisorCode }; var result = _leaveStatusService.UpdateEmployeeLeaveEntry(leaveConfirmationViewModel); if (result == true) { if (status == "Approved") { TempData["SuccessMessage"] = "Employee Successfully Approved !"; } else if (status == "Rejected") { TempData["SuccessMessage"] = "Employee Successfully Rejected !"; } } else { TempData["ErrorMessage"] = "Error !"; } return(Redirect(this.Request.UrlReferrer.AbsolutePath)); }
public object GetLeaveConfirmationsBySupervisor(string supervisorCode) { var approvedRejectedLeaveList = _unitOfWork.LeaveEntryRepository.Get(e => e.EmployeesSupervisorCode == supervisorCode && e.LeaveStatus != "Requested").ToList(); List <LeaveConfirmationViewModel> leaveConfirmationDtoList = new List <LeaveConfirmationViewModel>(); foreach (var approvedRejectedLeave in approvedRejectedLeaveList) { var employeeName = _unitOfWork.EmployeeMasterRepository.Get(e => e.EmployeeCode == approvedRejectedLeave.EmployeeCode).FirstOrDefault().EmployeeName; var leaveType = _unitOfWork.LeaveTypesRepository.Get(e => e.LeaveTypeCode == approvedRejectedLeave.LeaveTypeCode).FirstOrDefault().LeaveTypeDescription; var leaveConfirmationViewModel = new LeaveConfirmationViewModel { EmployeeName = employeeName, LeaveType = leaveType, EmployeeCode = approvedRejectedLeave.EmployeeCode, LeaveTypeCode = approvedRejectedLeave.LeaveTypeCode, LeaveRequestedFromDate = approvedRejectedLeave.LeaveRequestedFromDate.ToString("MM/dd/yyyy"), LeaveRequestedToDate = approvedRejectedLeave.LeaveRequestedToDate.ToString("MM/dd/yyyy"), NumberOfLeaves = approvedRejectedLeave.NumberOfLeaves, EmployeeComment = approvedRejectedLeave.EmployeeComment, LeaveStatusUpdatedDate = approvedRejectedLeave.LeaveStatusUpdatedDate, ApproverComment = approvedRejectedLeave.ApproverComment, LeaveStatus = approvedRejectedLeave.LeaveStatus }; leaveConfirmationDtoList.Add(leaveConfirmationViewModel); } return(leaveConfirmationDtoList); }
public bool UpdateEmployeeLeaveAllocation(LeaveConfirmationViewModel leaveConfirmationViewModel) { try { var requestedDate = Convert.ToDateTime(leaveConfirmationViewModel.LeaveRequestedFromDate); var employeeLeaveAllocation = _unitOfWork.LeaveAllocationRepository.Get(e => e.EmployeeCode == leaveConfirmationViewModel.EmployeeCode && e.LeaveTypeCode == leaveConfirmationViewModel.LeaveTypeCode && e.Year == requestedDate.Year.ToString()).ToList(); if (employeeLeaveAllocation.Count > 0) { if (leaveConfirmationViewModel.LeaveStatus == "Rejected") { employeeLeaveAllocation.FirstOrDefault().UtilizedLeaveAmount -= leaveConfirmationViewModel.NumberOfLeaves; employeeLeaveAllocation.FirstOrDefault().RemainingLeaveAmount = employeeLeaveAllocation.FirstOrDefault().EntitledLeaveAmount - employeeLeaveAllocation.FirstOrDefault().UtilizedLeaveAmount; } else if (leaveConfirmationViewModel.LeaveStatus == "Requested") { employeeLeaveAllocation.FirstOrDefault().UtilizedLeaveAmount += leaveConfirmationViewModel.NumberOfLeaves; employeeLeaveAllocation.FirstOrDefault().RemainingLeaveAmount = employeeLeaveAllocation.FirstOrDefault().EntitledLeaveAmount - employeeLeaveAllocation.FirstOrDefault().UtilizedLeaveAmount; } _unitOfWork.LeaveAllocationRepository.Update(employeeLeaveAllocation.FirstOrDefault()); _unitOfWork.SaveAsync(); return(true); } else { return(false); } } catch (Exception ex) { return(false); } }
public bool UpdateEmployeeLeaveEntry(LeaveConfirmationViewModel leaveConfirmationViewModel) { try { var requestedDate = Convert.ToDateTime(leaveConfirmationViewModel.LeaveRequestedFromDate); var employeeLeaveEntry = _unitOfWork.LeaveEntryRepository.Get(e => e.EmployeeCode == leaveConfirmationViewModel.EmployeeCode && e.LeaveTypeCode == leaveConfirmationViewModel.LeaveTypeCode && e.LeaveRequestedFromDate == requestedDate && e.LeaveStatus == "Requested").ToList(); if (employeeLeaveEntry.Count > 0) { employeeLeaveEntry.FirstOrDefault().LeaveStatus = leaveConfirmationViewModel.LeaveStatus; employeeLeaveEntry.FirstOrDefault().LeaveStatusUpdatedBy = leaveConfirmationViewModel.LeaveStatusUpdatedBy; employeeLeaveEntry.FirstOrDefault().LeaveStatusUpdatedDate = leaveConfirmationViewModel.LeaveStatusUpdatedDate; employeeLeaveEntry.FirstOrDefault().ApproverComment = leaveConfirmationViewModel.ApproverComment; if (leaveConfirmationViewModel.LeaveStatus == "Rejected") { var result = UpdateEmployeeLeaveAllocation(leaveConfirmationViewModel); if (result == false) { return(false); } } _unitOfWork.LeaveEntryRepository.Update(employeeLeaveEntry.FirstOrDefault()); _unitOfWork.SaveAsync(); return(true); } else { return(false); } } catch (Exception ex) { return(false); } }