public ActionResult EmployeeEdit(long ProjectId, long EmployeeID) { try { ProjectEmpList GetDetails = DB.Database.SqlQuery <ProjectEmpList>( @"exec " + Constants.P_GetEmp_Project_Details_Edit + " @EmpId,@ProjectId", new object[] { new SqlParameter("@ProjectId", ProjectId), new SqlParameter("@EmpId", EmployeeID) }).ToList().FirstOrDefault(); ViewBag.ProjectId = ProjectId; ViewBag.RoleList = DropdownList.RoleList(); ViewBag.RoleID = GetDetails.RoleID; return(View(GetDetails)); } catch (Exception ex) { LogHelper.ErrorLog(ex); throw ex; } }
public ActionResult UpdateEmployee(ProjectEmpList EEP) { try { if (EEP.StartDate == DateTime.MinValue || EEP.EndDate == DateTime.MinValue) { ViewBag.RoleList = DropdownList.RoleList(); ViewBag.Message = "Please enter valid start date or end date"; return(View("EmployeeEdit", EEP)); } if (EEP.EndDate < EEP.StartDate) { ViewBag.RoleList = DropdownList.RoleList(); ViewBag.Message = "End Date Can not be less than the start date"; return(View("EmployeeEdit", EEP)); } long empid = EEP.EmployeeID; DateTime startDate = Convert.ToDateTime(EEP.StartDate); DateTime endDate = Convert.ToDateTime(EEP.EndDate); DateTime currentDate = DateTime.Now; //long projectID = Convert.ToInt64(Session["ProjectId"]); List <int> totalInvolvement = DB.Employee.Where(x => x.EmployeeID == empid).Select(x => x.TotalInvolvement ?? 100).ToList(); decimal? currentInvolvement = (from x in DB.ProjectEmployee join y in DB.ProjectMaster on x.ProjectID equals y.ProjectID where x.EmployeeID == empid && (x.EndDate >= DateTime.Now || !x.EndDate.HasValue) && x.ProjectID != EEP.ProjectID select x.InvPercentage).Sum(); // currentInvolvement = currentInvolvement + EEP.InvPercentage; if (totalInvolvement[0] >= (currentInvolvement ?? 0)) { decimal?availableInvolvement = totalInvolvement[0] - (currentInvolvement ?? 0); if (availableInvolvement >= EEP.InvPercentage) { // var projectId = Convert.ToInt64(Session["ProjectId"].ToString()); ProjectEmployeesModel emp = DB.ProjectEmployee.AsQueryable().FirstOrDefault(x => x.EmployeeID == EEP.EmployeeID && x.ProjectID == EEP.ProjectID); if (emp != null) { emp.CheckRole = EEP.CheckRole; emp.InvPercentage = EEP.InvPercentage; emp.ModifiedBy = (long)Session[Constants.SessionEmpID]; emp.ModifiedDate = DateTime.Now; emp.StartDate = EEP.StartDate; emp.EndDate = EEP.EndDate; emp.RefRole = EEP.IsRDProject == 1 ? EEP.RoleID : 0; DB.Entry(emp).State = System.Data.Entity.EntityState.Modified; DB.SaveChanges(); } } else { ViewBag.RoleList = DropdownList.RoleList(); ViewBag.Message = "The maximum limit of involvement percentage is exceed. Please edit Percentage of Involvment field"; return(View("EmployeeEdit", EEP)); } } else { ViewBag.RoleList = DropdownList.RoleList(); ViewBag.Message = "Exceeds the Total Involvement Percentage Limit"; return(View("EmployeeEdit", EEP)); } return(RedirectToAction("ProjectEdit", "ProjectMaster", new { id = EEP.ProjectID })); } catch (Exception ex) { LogHelper.ErrorLog(ex); throw ex; } }