public ActionResult EditEmpDetails([DataSourceRequest] DataSourceRequest request, IEnumerable <ProjectInvolvementPercentageModel> employees, ProjectInvolvementPercentageModel griditems) { // ViewBag.EmployeeList = DropdownList.EmployeeList(); try { long empid = 0; foreach (ProjectInvolvementPercentageModel item in employees) { empid = item.EmployeeID; DateTime?startDate = null; if (item.StartDate.HasValue) { startDate = Convert.ToDateTime(item.StartDate.Value); } DateTime?endDate = null; if (item.EndDate.HasValue) { endDate = Convert.ToDateTime(item.EndDate.Value); } ProjectEmployeesModel existing = DB.ProjectEmployee.FirstOrDefault(x => x.EmployeeID == item.EmployeeID && x.ProjectID == item.ProjectId);//&& x.StartDate == startDate && x.EndDate == endDate if (existing != null) { existing.StartDate = startDate; existing.EndDate = endDate; existing.InvPercentage = item.InvolvePercent; DB.ProjectEmployee.Attach(existing); DB.Entry(existing).State = System.Data.Entity.EntityState.Modified; DB.SaveChanges(); } } List <ProjectInvolvementPercentageModel> GetDetails = DB.Database.SqlQuery <ProjectInvolvementPercentageModel>( @"exec " + Constants.P_GetMasterListOfTotalProjectInvolvement + " @empID", new object[] { new SqlParameter("@empID", empid) }).ToList(); DataSourceResult result = employees.ToDataSourceResult(request); return(Json(result)); } 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; } }
public JsonResult Search([DataSourceRequest] DataSourceRequest request, long projectid, int grantId) { GetDropdownList(); try { long empid = (long)Session[Constants.SessionEmpID]; //long role = (long)Session[Constants.SessionRoleID]; //long userid = (long)Session[Constants.SessionUserID]; //if (role == 1) //{ List <ProjectMasterModel> projectList = DB.ProjectMaster.Where(x => x.ProjectID == (projectid == 0 ? x.ProjectID : projectid) && x.ProjectGrant == (grantId == 0 ? x.ProjectGrant : grantId)).ToList(); var projectEmpolyees = DB.ProjectEmployee.Where(x => x.EmployeeID == empid).ToList(); var projectGrants = DB.MasterData.Where(x => x.MstTypeID == 3).ToList(); List <SearchList> allProjectS = new List <SearchList>(); foreach (ProjectMasterModel item in projectList) { ProjectEmployeesModel project = projectEmpolyees.Where(x => x.ProjectID == item.ProjectID && x.EmployeeID == empid).FirstOrDefault(); string projectGrant = projectGrants.Where(x => x.MstID == item.ProjectGrant).FirstOrDefault()?.MstName; if (project != null) { allProjectS.Add(new SearchList() { ProjectId = project.ProjectID, isPM = project.CheckRole ? "YES" : "NO", EmpEndDate = project.EndDate.Value.ToString("dd MMM yyyy"), EmpStartDate = project.StartDate.Value.ToString("dd MMM yyyy"), InvPercentage = project.InvPercentage.Value, prgEndDate = item.EndDate.Value.ToString("dd MMM yyyy"), prgStartDate = item.StartDate.Value.ToString("dd MMM yyyy"), ProjectCode = item.ProjectCode, ProjectGrant = projectGrant, ProjectName = item.ProjectName }); } else { allProjectS.Add(new SearchList() { ProjectId = item.ProjectID, isPM = "", EmpEndDate = "", EmpStartDate = "", InvPercentage = null, prgEndDate = item.EndDate.Value.ToString("dd MMM yyyy"), prgStartDate = item.StartDate.Value.ToString("dd MMM yyyy"), ProjectCode = item.ProjectCode, ProjectGrant = projectGrant, ProjectName = item.ProjectName }); } } return(Json(allProjectS.ToDataSourceResult(request))); } catch (Exception ex) { LogHelper.ErrorLog(ex); throw ex; } // return Json(new { data = "" }); }