public ActionResult PDEdit(int?id, string isClone) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PlanDebit planDebit = db.PlanDebits.Find(id); if (planDebit == null) { return(HttpNotFound()); } //Проверяем наличие у пользователя прав для работы с данной сущностью if (!UsrWksMethods.isAllowed(db, planDebit.ProjectId)) { return(View("~/Views/Shared/AccessDenied.cshtml")); } planDebit.ProjectName = db.Projects.Where(x => x.id == planDebit.ProjectId).Select(x => x.ShortName).FirstOrDefault().ToString(); planDebit.OrganizationName = db.Organizations.Where(x => x.id == planDebit.OrganizationId).Select(x => x.Title).FirstOrDefault().ToString(); ViewData["periodItems"] = new SelectList(db.PlanningPeriods, "PlanningPeriodId", "PeriodName"); if (Convert.ToBoolean(isClone)) { planDebit.Date = DateTime.Today; return(View("PDClone", planDebit)); } else { return(View(planDebit)); } }
public ActionResult DeleteConfirmed(int id) { try { PlanDebit planDebit = db.PlanDebits.FirstOrDefault(x => x.PlanDebitId == id); if (planDebit == null) { TempData["MessageError"] = "Удаляемый объект отсутствует в базе данных"; return(RedirectToAction("PDShow")); } //Проверяем наличие у пользователя прав для работы с данной сущностью if (!UsrWksMethods.isAllowed(db, planDebit.ProjectId)) { return(View("~/Views/Shared/AccessDenied.cshtml")); } db.PlanDebits.Remove(planDebit); db.SaveChanges(); TempData["MessageOK"] = "Информация удалена"; return(RedirectToAction("PDShow")); } catch (Exception ex) { ViewBag.ErMes = ex.Message; ViewBag.ErStack = ex.StackTrace; ViewBag.ErInner = ex.InnerException.InnerException.Message; return(View("Error")); } }
public ActionResult PDCreate() { PlanDebit _model = new PlanDebit(); ViewData["periodItems"] = new SelectList(db.PlanningPeriods, "PlanningPeriodId", "PeriodName"); _model.Date = DateTime.Today; return(View(_model)); }
public ActionResult PDCreate([Bind(Include = "PlanDebitId,Date,Sum,ProjectId,OrganizationId,Appointment,UserId,PeriodId")] PlanDebit planDebit) { if (ModelState.IsValid) { //Запрещаем руководителям проектов добавление/редактирование планов текущего и предыдущих месяцев int NextMonth = DateTime.Today.Month + 1; int WYear = DateTime.Today.Year; if (NextMonth > 12) { NextMonth = 1; WYear += 1; } int PlanMonth = planDebit.Date.Month; int PlanYear = planDebit.Date.Year; bool isPrgManager = System.Web.HttpContext.Current.User.IsInRole("ProjectManager"); if (isPrgManager && ((PlanMonth < NextMonth && PlanYear <= DateTime.Today.Year))) { TempData["MessageError"] = "Руководителям проектов запрещено добавление/редактирование планов текущего и предыдущих месяцев"; ViewData["periodItems"] = new SelectList(db.PlanningPeriods, "PlanningPeriodId", "PeriodName"); ViewData["prgSelect"] = db.Projects.FirstOrDefault(x => x.id == planDebit.ProjectId).ShortName; ViewData["orgSelect"] = db.Organizations.FirstOrDefault(x => x.id == planDebit.OrganizationId).Title; return(View(planDebit)); } try { //Получаем идентификатор текущего пользователя using (ApplicationDbContext aspdb = new ApplicationDbContext()) { var user = System.Web.HttpContext.Current.User.Identity.GetUserId(); planDebit.UserId = user; } db.PlanDebits.Add(planDebit); db.SaveChanges(); TempData["MessageOK"] = "Информация добавлена"; return(RedirectToAction("PDShow")); } catch (Exception ex) { ViewBag.ErMes = ex.Message; ViewBag.ErStack = ex.StackTrace; ViewBag.ErInner = ex.InnerException.InnerException.Message; return(View("Error")); } } TempData["MessageError"] = "Ошибка валидации модели"; return(View(planDebit)); }
public ActionResult PDDetails(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PlanDebit planDebit = (from _pd in db.PlanDebits join _pname in db.Projects on _pd.ProjectId equals _pname.id join _org in db.Organizations on _pd.OrganizationId equals _org.id join _period in db.PlanningPeriods on _pd.PeriodId equals _period.PlanningPeriodId where (_pd.PlanDebitId == id) select new { PlanDebitId = _pd.PlanDebitId, Sum = _pd.Sum, Date = _pd.Date, ProjectId = _pd.ProjectId, ProjectName = _pname.ShortName, OrganizationName = _org.Title, PeriodName = _period.PeriodName, Appointment = _pd.Appointment }).AsEnumerable().Select(x => new PlanDebit { PlanDebitId = x.PlanDebitId, Sum = x.Sum, Date = x.Date, ProjectId = x.ProjectId, ProjectName = x.ProjectName, OrganizationName = x.OrganizationName, PeriodName = x.PeriodName, Appointment = x.Appointment }).FirstOrDefault(); if (planDebit == null) { return(HttpNotFound()); } //Проверяем наличие у пользователя прав для работы с данной сущностью if (!UsrWksMethods.isAllowed(db, planDebit.ProjectId)) { return(View("~/Views/Shared/AccessDenied.cshtml")); } return(View(planDebit)); }
public ActionResult PDDelete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } PlanDebit planDebit = db.PlanDebits.Find(id); if (planDebit == null) { return(HttpNotFound()); } //Проверяем наличие у пользователя прав для работы с данной сущностью if (!UsrWksMethods.isAllowed(db, planDebit.ProjectId)) { return(View("~/Views/Shared/AccessDenied.cshtml")); } planDebit.ProjectName = db.Projects.Where(x => x.id == planDebit.ProjectId).Select(x => x.ShortName).FirstOrDefault().ToString(); planDebit.OrganizationName = db.Organizations.Where(x => x.id == planDebit.OrganizationId).Select(x => x.Title).FirstOrDefault().ToString(); return(View(planDebit)); }
public ActionResult PDEdit([Bind(Include = "PlanDebitId,Date,Sum,ProjectId,OrganizationId,Appointment,PeriodId")] PlanDebit planDebit) { //Проверяем наличие у пользователя прав для работы с данной сущностью if (!UsrWksMethods.isAllowed(db, planDebit.ProjectId)) { return(View("~/Views/Shared/AccessDenied.cshtml")); } if (ModelState.IsValid) { //Запрещаем руководителям проектов добавление/редактирование планов текущего и предыдущих месяцев int NextMonth = DateTime.Today.Month + 1; int WYear = DateTime.Today.Year; if (NextMonth > 12) { NextMonth = 1; WYear += 1; } int PlanMonth = planDebit.Date.Month; int PlanYear = planDebit.Date.Year; bool isPrgManager = System.Web.HttpContext.Current.User.IsInRole("ProjectManager"); if (isPrgManager && ((PlanMonth < NextMonth && PlanYear <= DateTime.Today.Year))) { TempData["MessageError"] = "Руководителям проектов запрещено добавление/редактирование планов текущего и предыдущих месяцев"; ViewData["periodItems"] = new SelectList(db.PlanningPeriods, "PlanningPeriodId", "PeriodName"); ViewData["prgSelect"] = db.Projects.FirstOrDefault(x => x.id == planDebit.ProjectId).ShortName; ViewData["orgSelect"] = db.Organizations.FirstOrDefault(x => x.id == planDebit.OrganizationId).Title; return(View(planDebit)); } try { //Получаем идентификатор текущего пользователя using (ApplicationDbContext aspdb = new ApplicationDbContext()) { var user = System.Web.HttpContext.Current.User.Identity.GetUserId(); planDebit.UserId = user; } db.Database.Log = (s => System.Diagnostics.Debug.WriteLine(s)); db.Entry(planDebit).State = EntityState.Modified; db.SaveChanges(); TempData["MessageOK"] = "Информация обновлена"; return(RedirectToAction("PDShow")); } catch (Exception ex) { ViewBag.ErMes = ex.Message; ViewBag.ErStack = ex.StackTrace; ViewBag.ErInner = ex.InnerException.InnerException.Message; return(View("Error")); } } TempData["MessageError"] = "Ошибка валидации модели"; planDebit.ProjectName = db.Projects.Where(x => x.id == planDebit.ProjectId).Select(x => x.ShortName).FirstOrDefault().ToString(); planDebit.OrganizationName = db.Organizations.Where(x => x.id == planDebit.OrganizationId).Select(x => x.Title).FirstOrDefault().ToString(); return(View(planDebit)); }