public ActionResult Details(int id = 0) { int?position = null; if (Session["PositionId"] != null) { position = int.Parse(Session["PositionId"]?.ToString()); } ViewBag.Emps = _hrUnitOfWork.CheckListRepository.GetManagerEmpList(User.Identity.GetEmpId(), position, CompanyId, Language); EmpTask oldTask = _hrUnitOfWork.Repository <EmpTask>().Where(t => t.ManagerId == User.Identity.GetEmpId()).OrderByDescending(t => t.TaskNo).FirstOrDefault(); if (id == 0) { return(View(new EmpTasksViewModel() { TaskNo = (short)(oldTask != null ? (oldTask.TaskNo + 1) : 1), AssignedTime = DateTime.Now, Status = 1 })); } EmpTasksViewModel task = _hrUnitOfWork.CheckListRepository.GetManagerEmpTask(id); return(task == null ? (ActionResult)HttpNotFound() : View(task)); }
public EmpTasksViewModel GetEmployeeTask(int Id, string culture) { EmpTasksViewModel task = context.EmpTasks.Where(t => t.Id == Id) .Select(t => new EmpTasksViewModel { Id = t.Id, EmpList = t.EmpChklist.Name, Manager = HrContext.TrlsName(t.Manager.Title + " " + t.Manager.FirstName + " " + t.Manager.Familyname, culture), Description = t.Description, Priority = t.Priority, Status = t.Status, TaskCategory = HrContext.GetLookUpCode("EmpTaskCat", t.TaskCat.Value, culture), TaskNo = t.TaskNo, AssignedTime = t.AssignedTime, Attachments = HrContext.GetAttachments("EmpTasksForm", t.Id), StartTime = t.StartTime, EndTime = t.EndTime, Duration = t.Duration, EmpListId = t.EmpListId, ExpectDur = t.ExpectDur, Unit = t.Unit, Required = t.Required, Employee = HrContext.TrlsName(t.EmpChklist.Employee.Title + " " + t.EmpChklist.Employee.FirstName + " " + t.EmpChklist.Employee.Familyname, culture), }).FirstOrDefault(); return(task); }
public EmpTasksViewModel GetManagerEmpTask(int Id) { EmpTasksViewModel task = context.EmpTasks.Where(t => t.Id == Id) .Select(t => new EmpTasksViewModel { Id = t.Id, Description = t.Description, Priority = t.Priority, Status = t.Status, TaskCat = t.TaskCat, TaskNo = t.TaskNo, AssignedTime = t.AssignedTime, Attachments = HrContext.GetAttachments("EmpTasksForm", t.Id), StartTime = t.StartTime, EndTime = t.EndTime, Duration = t.Duration, EmpListId = t.EmpListId, ExpectDur = t.ExpectDur, Unit = t.Unit, Required = t.Required, EmpId = t.EmpId }).FirstOrDefault(); return(task); }
public IHttpActionResult EmployeeTasksDetails(int id = 0) { EmpTasksViewModel task = _hrUnitOfWork.CheckListRepository.GetEmployeeTask(id, User.Identity.GetLanguage()); if (task == null) { return(NotFound()); } return(Ok(task)); }
public ActionResult EmployeeTasksDetails(int id) { EmpTasksViewModel task = _hrUnitOfWork.CheckListRepository.GetEmployeeTask(id, Language); return(task == null ? (ActionResult)HttpNotFound() : View(task)); }
public ActionResult Details(EmpTasksViewModel model, OptionsViewModel moreInfo) { List <Error> errors = new List <Error>(); if (ModelState.IsValid) { if (ServerValidationEnabled) { errors = _hrUnitOfWork.CompanyRepository.CheckForm(new CheckParm { CompanyId = CompanyId, ObjectName = "EmpTasksForm", TableName = "EmpTasks", Columns = Models.Utils.GetColumnViews(ModelState.Where(a => !a.Key.Contains('.'))), ParentColumn = "CompanyId", Culture = Language }); if (errors.Count() > 0) { foreach (var e in errors) { foreach (var errorMsg in e.errors) { ModelState.AddModelError(errorMsg.field, errorMsg.message); } } return(Json(Models.Utils.ParseFormErrors(ModelState))); } } } else { return(Json(Models.Utils.ParseFormErrors(ModelState))); } EmpTask task = _hrUnitOfWork.CheckListRepository.GetEmpTask(model.Id); byte version; byte.TryParse(Request.Form["version"], out version); string message = "OK,"; //Check 1.Subperiod is defiend, 2.Done tasks is started if (model.Status == 1) //1-AssignTo { if (model.AssignedTime == null) { model.AssignedTime = DateTime.Now; } int? subPeriod; string error = _hrUnitOfWork.CheckListRepository.GetTaskSubPeriod(CompanyId, model.AssignedTime, Language, out subPeriod); if (error.Length > 0) { ModelState.AddModelError("AssignedTime", error); return(Json(Models.Utils.ParseFormErrors(ModelState))); } model.SubPeriodId = subPeriod; } else if (model.Status == 2) //2-Done { if (model.StartTime == null || model.StartTime > DateTime.Now) { ModelState.AddModelError("Status", MsgUtils.Instance.Trls("TaskNotStarted")); return(Json(Models.Utils.ParseFormErrors(ModelState))); } model.EndTime = DateTime.Now; } ///Save if (model.Id == 0) { /// New task = new EmpTask(); AutoMapper(new AutoMapperParm() { Source = model, Destination = task, Version = version, ObjectName = "EmpTasksForm", Options = moreInfo }); task.SubPeriodId = model.SubPeriodId; task.CreatedUser = UserName; task.CreatedTime = DateTime.Now; _hrUnitOfWork.CheckListRepository.Add(task); } else if (model.ChangeEmployee) { EmpTask oldTask = _hrUnitOfWork.CheckListRepository.GetEmpTask(model.Id); var oldEmpId = oldTask.EmpId; //check emp changed if (oldEmpId == model.EmpId) { return(Json(MsgUtils.Instance.Trls("ChangeToSameEmp"))); } //assign to new Emp task = new EmpTask(); AutoMapper(new AutoMapperParm() { Source = model, Destination = task, Version = version, ObjectName = "EmpTasksForm", Options = moreInfo }); task.Status = 1; //1-AssignTo task.AssignedTime = DateTime.Now; int? subPeriod; string error = _hrUnitOfWork.CheckListRepository.GetTaskSubPeriod(CompanyId, model.AssignedTime, Language, out subPeriod); if (error.Length > 0) { ModelState.AddModelError("AssignedTime", error); return(Json(Models.Utils.ParseFormErrors(ModelState))); } task.SubPeriodId = subPeriod; task.CreatedUser = UserName; task.CreatedTime = DateTime.Now; _hrUnitOfWork.CheckListRepository.Add(task); //cancel from current Emp AutoMapper(new AutoMapperParm() { Source = model, Destination = oldTask, Version = version, ObjectName = "EmpTasksForm", Options = moreInfo }); oldTask.EmpId = oldEmpId; oldTask.Status = 3; //3-cancel oldTask.ModifiedUser = UserName; oldTask.ModifiedTime = DateTime.Now; _hrUnitOfWork.CheckListRepository.Attach(oldTask); _hrUnitOfWork.CheckListRepository.Entry(oldTask).State = EntityState.Modified; } else { /// Edit if (task.EmpId != model.EmpId) { return(Json(MsgUtils.Instance.Trls("ClickChangeEmp"))); } AutoMapper(new AutoMapperParm() { Source = model, Destination = task, Version = version, ObjectName = "EmpTasksForm", Options = moreInfo }); task.ModifiedUser = UserName; task.ModifiedTime = DateTime.Now; _hrUnitOfWork.CheckListRepository.Attach(task); _hrUnitOfWork.CheckListRepository.Entry(task).State = EntityState.Modified; if (task.Status == 2 || task.Status == 4) //2-Done, 4-Not Done { _hrUnitOfWork.CheckListRepository.AssignNextTask(task); } } var Errors = SaveChanges(Language); if (Errors.Count > 0) { message = Errors.First().errors.First().message; } else { message = message + ((new JavaScriptSerializer()).Serialize(model)); } return(Json(message)); }
public IHttpActionResult SaveTask(EmpTasksViewModel model) { EmpTask task = _hrUnitOfWork.CheckListRepository.GetEmpTask(model.Id); if (model.isStart) //Start { _hrUnitOfWork.LeaveRepository.AddTrail(new AddTrailViewModel { ColumnName = "StartTime", ValueBefore = task.StartTime.ToString(), ValueAfter = DateTime.Now.ToString(), ObjectName = "EmpTasksForm", CompanyId = User.Identity.GetDefaultCompany(), SourceId = task.Id.ToString(), UserName = User.Identity.Name }); if (task.StartTime != null) { return(Ok(MsgUtils.Instance.Trls("TaskAlreadyStarted"))); } task.StartTime = DateTime.Now; } else { _hrUnitOfWork.LeaveRepository.AddTrail(new AddTrailViewModel { ColumnName = "EndTime", ValueBefore = task.EndTime.ToString(), ValueAfter = DateTime.Now.ToString(), ObjectName = "EmpTasksForm", CompanyId = User.Identity.GetDefaultCompany(), SourceId = task.Id.ToString(), UserName = User.Identity.Name }); _hrUnitOfWork.LeaveRepository.AddTrail(new AddTrailViewModel { ColumnName = "Status", ValueBefore = task.Status.ToString(), ValueAfter = "2", ObjectName = "EmpTasksForm", CompanyId = User.Identity.GetDefaultCompany(), SourceId = task.Id.ToString(), UserName = User.Identity.Name }); task.EndTime = DateTime.Now; task.Status = 2; TimeSpan duration = task.EndTime.Value - task.StartTime.Value; switch (task.Unit) { case 0: //Minutes task.Duration = Convert.ToSByte(duration.Minutes); break; case 1: //Hours task.Duration = Convert.ToSByte(duration.Hours); break; case 2: //Days task.Duration = Convert.ToSByte(duration.Days); break; case 3: //Weeks task.Duration = Convert.ToSByte(duration.Days / 7); break; case 4: //Months task.Duration = Convert.ToSByte(duration.Days / 365.25 * 12); break; } _hrUnitOfWork.LeaveRepository.AddTrail(new AddTrailViewModel { ColumnName = "Status", ValueBefore = "", ValueAfter = task.Duration.ToString(), ObjectName = "EmpTasksForm", CompanyId = User.Identity.GetDefaultCompany(), SourceId = task.Id.ToString(), UserName = User.Identity.Name }); _hrUnitOfWork.CheckListRepository.AssignNextTask(task); } task.ModifiedTime = DateTime.Now; task.ModifiedUser = User.Identity.Name; _hrUnitOfWork.CheckListRepository.Attach(task); _hrUnitOfWork.CheckListRepository.Entry(task).State = EntityState.Modified; string message = "Ok"; var Errors = SaveChanges(User.Identity.GetLanguage()); if (Errors.Count > 0) { message = Errors.First().errors.First().message; } return(Json(message)); }