Пример #1
0
        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;
            }
        }
Пример #2
0
        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;
            }
        }