public ActionResult ADEdit(int?id, string isClone)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ActualDebit actualDebit = db.ActualDebit.Find(id);

            if (actualDebit == null)
            {
                return(HttpNotFound());
            }

            string _prgName = db.Projects.Where(x => x.id == actualDebit.ProjectId).Select(x => x.ShortName).FirstOrDefault().ToString();

            ViewData["ProjectName"] = _prgName;

            string _orgName = db.Organizations.Where(x => x.id == actualDebit.OrganizationId).Select(x => x.Title).FirstOrDefault().ToString();

            ViewData["OrganizationName"] = _orgName;

            if (Convert.ToBoolean(isClone))
            {
                actualDebit.Date = DateTime.Today;
                return(View("ADClone", actualDebit));
            }
            else
            {
                return(View(actualDebit));
            }
        }
        public ActionResult DeleteConfirmed(int id)
        {
            bool AD_access_allow = Boolean.Parse(db.Settings.FirstOrDefault(z => z.SettingName == "AD_old_access").SettingValue.ToString());

            if (AD_access_allow)
            {
                try
                {
                    ActualDebit actualDebit = db.ActualDebit.FirstOrDefault(x => x.ActualDebitId == id);
                    if (actualDebit == null)
                    {
                        TempData["MessageError"] = "Удаляемый объект отсутствует в базе данных";
                        return(RedirectToAction("ADShow"));
                    }

                    db.ActualDebit.Remove(actualDebit);
                    db.SaveChanges();
                    TempData["MessageOK"] = "Информация удалена";
                    return(RedirectToAction("ADShow"));
                }
                catch (Exception ex)
                {
                    ViewBag.ErMes   = ex.Message;
                    ViewBag.ErStack = ex.StackTrace;
                    ViewBag.ErInner = ex.InnerException.InnerException.Message;
                    return(View("Error"));
                }
            }
            TempData["MessageError"] = "Удаление данных запрещено настройками системы";
            return(RedirectToAction("ADShow"));
        }
        public ActionResult ADCreate()
        {
            ActualDebit _model = new ActualDebit();

            _model.Date = DateTime.Today;
            return(View(_model));
        }
        public ActionResult ADEdit([Bind(Include = "ActualDebitId,Date,Sum,ProjectId,OrganizationId,Appointment,DocNumber")] ActualDebit actualDebit)
        {
            bool AD_access_allow = Boolean.Parse(db.Settings.FirstOrDefault(z => z.SettingName == "AD_old_access").SettingValue.ToString());

            if (AD_access_allow)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        //Получаем идентификатор текущего пользователя
                        using (ApplicationDbContext aspdb = new ApplicationDbContext())
                        {
                            var user = System.Web.HttpContext.Current.User.Identity.GetUserId();
                            actualDebit.UserId = user;
                        }

                        db.Database.Log             = (s => System.Diagnostics.Debug.WriteLine(s));
                        db.Entry(actualDebit).State = EntityState.Modified;
                        db.SaveChanges();
                        TempData["MessageOK"] = "Информация обновлена";
                        return(RedirectToAction("ADShow"));
                    }
                    catch (Exception ex)
                    {
                        ViewBag.ErMes   = ex.Message;
                        ViewBag.ErStack = ex.StackTrace;
                        ViewBag.ErInner = ex.InnerException.InnerException.Message;
                        return(View("Error"));
                    }
                }

                TempData["MessageError"]     = "Ошибка валидации модели";
                ViewData["ProjectName"]      = db.Projects.Where(x => x.id == actualDebit.ProjectId).Select(x => x.ShortName).FirstOrDefault().ToString();
                ViewData["OrganizationName"] = db.Organizations.Where(x => x.id == actualDebit.OrganizationId).Select(x => x.Title).FirstOrDefault().ToString();
                return(View(actualDebit));
            }
            TempData["MessageError"]     = "Редактирование данных запрещено настройками системы";
            ViewData["ProjectName"]      = db.Projects.Where(x => x.id == actualDebit.ProjectId).Select(x => x.ShortName).FirstOrDefault().ToString();
            ViewData["OrganizationName"] = db.Organizations.Where(x => x.id == actualDebit.OrganizationId).Select(x => x.Title).FirstOrDefault().ToString();
            return(View(actualDebit));
        }
        public ActionResult ADDelete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ActualDebit actualDebit = db.ActualDebit.Find(id);

            if (actualDebit == null)
            {
                return(HttpNotFound());
            }

            string _prgName = db.Projects.Where(x => x.id == actualDebit.ProjectId).Select(x => x.ShortName).FirstOrDefault().ToString();

            actualDebit.ProjectName = _prgName;

            string _orgName = db.Organizations.Where(x => x.id == actualDebit.OrganizationId).Select(x => x.Title).FirstOrDefault().ToString();

            actualDebit.OrganizationName = _orgName;

            return(View(actualDebit));
        }
        public ActionResult ADCreate([Bind(Include = "ActualDebitId,Date,Sum,ProjectId,OrganizationId,Appointment,DocNumber,ApplicationUser")] ActualDebit actualDebit)
        {
            bool AD_access_allow = Boolean.Parse(db.Settings.FirstOrDefault(z => z.SettingName == "AD_old_access").SettingValue.ToString());

            if (AD_access_allow)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        //Получаем идентификатор текущего пользователя
                        using (ApplicationDbContext aspdb = new ApplicationDbContext())
                        {
                            var user = System.Web.HttpContext.Current.User.Identity.GetUserId();
                            actualDebit.UserId = user;
                        }

                        db.ActualDebit.Add(actualDebit);
                        db.SaveChanges();
                        TempData["MessageOK"] = "Информация добавлена";
                        return(RedirectToAction("ADShow"));
                    }
                    catch (Exception ex)
                    {
                        ViewBag.ErMes   = ex.Message;
                        ViewBag.ErStack = ex.StackTrace;
                        ViewBag.ErInner = ex.InnerException.InnerException.Message;
                        return(View("Error"));
                    }
                }
                TempData["MessageError"] = "Ошибка валидации модели";
                return(View(actualDebit));
            }

            TempData["MessageError"] = "Добавление данных запрещено настройками системы";
            return(View(actualDebit));
        }
        public ActionResult ADDetails(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ActualDebit actualDebit = db.ActualDebit.Find(id);

            if (actualDebit == null)
            {
                return(HttpNotFound());
            }

            string _prgName = db.Projects.Where(x => x.id == actualDebit.ProjectId).Select(x => x.ShortName).FirstOrDefault().ToString();

            actualDebit.ProjectName = _prgName;

            string _orgName = db.Organizations.Where(x => x.id == actualDebit.OrganizationId).Select(x => x.Title).FirstOrDefault().ToString();

            actualDebit.OrganizationName = _orgName;

            ViewData["AD_Access_Allow"] = db.Settings.FirstOrDefault(z => z.SettingName == "AD_old_access").SettingValue.ToString();
            return(View(actualDebit));
        }