public virtual ActionResult CheckCoworkersAndCommonEmployees(EmployeeWorkplaceForSave model) { string msg = ""; int? oldCoworkerID = null; int? newCoworkerID = null; var employee = Repository.Employees.GetInstance(model.ID); var coworkers = Kesco.Employees.BusinessLogic.Repository.Employees.GetEmployeeCoWorkersByOfficeWorkPlace(model.ID, model.WorkPlaceID); //Текущий общий сотрудник oldCoworkerID = employee.CommonEmployeeID; //Новый общий сотрудник newCoworkerID = coworkers.Where(c => c.Status == 0 && c.PersonID == null).Select(k => k.CoWorkerID).FirstOrDefault(); if (oldCoworkerID == 0) { oldCoworkerID = null; } if (newCoworkerID == 0) { newCoworkerID = null; } if (employee.Status == 0 && employee.PersonID == null) { return(Json("true", JsonRequestBehavior.AllowGet)); } else { //Ошибка if (oldCoworkerID != null && newCoworkerID != null && oldCoworkerID != newCoworkerID) { var commonEmployee = Repository.Employees.GetInstance(Convert.ToInt32(employee.CommonEmployeeID)); msg = String.Format(@"{0} является членом группы {1}, но вы назначаете его на рабочее место группы {2}. Сотрудник не может одновременно быть членом двух групп посменной работы.", employee.LastNameWithInitials, commonEmployee.LastNameWithInitials, coworkers.Where(m => m.PersonID == null).Select(k => k.CoWorker).FirstOrDefault()); Response.StatusCode = (int)System.Net.HttpStatusCode.BadRequest; return(Content(msg, System.Net.Mime.MediaTypeNames.Text.Plain)); } //Новое место в группе else if (newCoworkerID != null && oldCoworkerID != newCoworkerID) { msg = String.Format(@"Вы назначаете {0} на рабочее место группы {1}. Вы подтверждаете, что {0} является членом группы {1}?", employee.LastNameWithInitials, coworkers.Where(m => m.PersonID == null).Select(k => k.CoWorker).FirstOrDefault()); } //Новое место в совместной работе else if (coworkers.Any(m => m.PersonID != null && m.WorkPlace == 1)) { msg = String.Format("Вы назначаете {0} на рабочее место, на котором посменно работают {1}. Вы подтверждаете, что {0} работает посменно {1}?", employee.LastNameWithInitials, String.Join(" ,", coworkers.Where(m => m.PersonID != null).Select(t => t.CoWorker))); } } if (!String.IsNullOrEmpty(msg)) { return(Json(msg, JsonRequestBehavior.AllowGet)); } return(Json("true", JsonRequestBehavior.AllowGet)); }
public virtual ActionResult SaveEmployeeWorkplace(EmployeeWorkplaceForSave model) { Kesco.Employees.BusinessLogic.Repository.Employees .SaveEmployeeWorkPlaces(model.ID, model.WorkPlaceID); return(Json("success", JsonRequestBehavior.AllowGet)); }