Ejemplo n.º 1
0
        public ActionResult RegisterIn(ts numb)
        {
                if (ModelState.IsValidField("Number"))
                {
                    visitparameters vp = mp.visitparameters.Where(x => x.Status == "Active").FirstOrDefault();
                    if (vp != null)
                    {
                        reservation r = new reservation();
                        r.FindOnExpired("");
                        ts searchts = mp.ts.Where(x => x.Number == numb.Number & x.Status == "True").FirstOrDefault();
                        if (searchts != null)
                        {
                            visit nvis = new visit();
                                            visit vis = mp.visit.Where(x => x.id_ts == searchts.id_ts & x.DateOut == "dateout").FirstOrDefault();
                                            if (vis == null)
                                            {
                                                place p = new place();
                                                string Log = searchts.Login;
                                                string Date = DateTime.Now.ToString("dd.MM.yy HH:mm");
                                                reservation res = mp.reservation.Where(x => x.Login == Log & x.Status == "Active").FirstOrDefault(); //Существует ли бронь
                                                if (res != null)
                                                {
                                                    if (res.id_alternative_location_place != null)
                                                    {

                                                        nvis.RegisterIn((long)res.id_alternative_location_place, searchts.id_ts, Date, vp.id_vis_param);
                                                        res.DateOutFromActivity = Date;
                                                        res.Status = "Closed";
                                                        res.Description = "Reservation was used";
                                                        mp.Entry(res).State = EntityState.Modified;
                                                        mp.SaveChanges();
                                                        r.Revoke("Reservation was used", res, Date);
                                                        p.ChangeStatus("Occupied", (long)res.id_alternative_location_place, (Int32)res.place.id_alternative_tariff_on_place);
                                                    }
                                                    else
                                                    {
                                                        ViewData["ExceptionRegisterIn"] = "Изначально выбранное место этим ТС было закрыто, других свободных мест на данный момент нет"; //, с броней ничего не делать. Будет ждать свободных, не дождется - умрет сама.
                                                        return View("RegisterIn");
                                                    }
                                                }
                                                else
                                                {
                                                    place autoplace = mp.place.Where(x => x.Status == "Free").OrderBy(x => x.tariffonplace.PriceForHourWithoutAbonement).FirstOrDefault();
                                                    if (autoplace != null)
                                                    {
                                                        nvis.RegisterIn((long)autoplace.id_location_place, searchts.id_ts, Date, vp.id_vis_param);
                                                        p.ChangeStatus("Occupied", (long)autoplace.id_location_place, 0);
                                                    }
                                                    else
                                                    {
                                                        ViewData["ExceptionRegisterIn"] = "Свободных мест нет!";
                                                        return View("RegisterIn");
                                                    }
                                                    //Автоматический расчет мест";
                                                }
                                            }
                                            else
                                            {
                                                ViewData["ExceptionRegisterIn"] = "Возможно, Вы ошиблись при вводе регистрационного номера, т.к. указанное вами ТС уже находится на парковке.";
                                                return View("RegisterIn");
                                            }
                        }
                        else
                        {
                            ViewData["ExceptionRegisterIn"] = "TC не найдено в бд";
                            return View("RegisterIn");
                        }

                    }
                    else
                    {
                        ViewData["ExceptionRegisterIn"] = "Осутствуют параметры въезда, активной записи не найдено";
                        return View("RegisterIn");
                    }







                    return RedirectToAction("Index", new { Controller = "Home"});
                }
                else
                {
                    return View("RegisterIn");
                }
            

        }
Ejemplo n.º 2
0
        public bool FindOnExpired(string Log)
        {
            if (Log != "")
            {
                bool Result = false;
                foreach (reservation n in mp.reservation.Where(x => x.Login == Log & x.Status == "Active").ToList())
                {
                string Date = DateTime.Now.ToString("dd.MM.yy HH:mm");
                    //Проверяю истекла ли дата брони
                    if (Convert.ToDateTime(n.ApproximatelyDateOutFromActivity) < Convert.ToDateTime(Date))
                    {
                        n.DateOutFromActivity = n.ApproximatelyDateOutFromActivity;
                        n.Status = "Closed";
                        n.Description = "Reservation was expired";
                        mp.Entry(n).State = EntityState.Modified;
                        mp.SaveChanges();
                        //При посещении или отказе (и если бронь не истекла) в кач-ве третьего параметра отправить текущее время,
                        //Здесь оа истекла и я отправляю предположительное, уже ранее рассчитанное при создании заявки брони.
                        reservation r = new reservation();
                        r.Revoke("Reservation was expired", n, n.ApproximatelyDateOutFromActivity);
                        //рассчитать средства и списать их со счета.
                        Result = true;
                        break;
                    }
                }
                return Result;
            }
            else
            {

                foreach (reservation n in mp.reservation.Where(x => x.Status == "Active").ToList())
                {
                    string Date = DateTime.Now.ToString("dd.MM.yy HH:mm");
                    //Проверяю истекла ли дата брони
                    if (Convert.ToDateTime(n.ApproximatelyDateOutFromActivity) < Convert.ToDateTime(Date))
                    {
                        n.DateOutFromActivity = n.ApproximatelyDateOutFromActivity;
                        n.Status = "Closed";
                        n.Description = "Reservation was expired";
                        mp.Entry(n).State = EntityState.Modified;
                        mp.SaveChanges();
                        //При посещении или отказе (и если бронь не истекла) в кач-ве третьего параметра отправить текущее время,
                        //Здесь оа истекла и я отправляю предположительное, уже ранее рассчитанное при создании заявки брони.
                        reservation r = new reservation();
                        r.Revoke("Reservation was expired", n, n.ApproximatelyDateOutFromActivity);
                        //рассчитать средства и списать их со счета.
                        break;
                    }
                }
                return true;
            }


        }