private decimal CalculateRemain(ExcursionViewModel excursion)
        {
            decimal sum     = excursion.Cost;
            decimal paidSum = payLogic.Read(new OrderBindingModel
            {
                ExcursionId = excursion.Id
            }).Select(rec => rec.Sum).Sum();

            return(sum - paidSum);
        }
示例#2
0
        public void SaveRouteForExcursionsToExcelFile(string fileName, ExcursionViewModel excursion, string email)
        {
            string title = "Список маршрутов ";

            SaveToExcel.CreateDoc(new ExcelInfo
            {
                FileName = fileName,
                Title    = title,
                Routes   = GetRouteForExcursions(excursion)
            });
            SendMail(email, fileName, title);
        }
示例#3
0
        public List <RouteViewModel> GetRouteForExcursions(ExcursionViewModel ed)
        {
            var routes = new List <RouteViewModel>();

            foreach (var route in ed.RouteForExcursions)
            {
                routes.Add(routeLogic.Read(new RouteBindingModel
                {
                    Id = route.RouteId
                }).FirstOrDefault());
            }
            return(routes);
        }
        public ActionResult Order(OrderModel model)
        {
            ExcursionViewModel excursion = edLogic.Read(new ExcursionBindingModel
            {
                Id = model.ExcursionId
            }).FirstOrDefault();
            decimal Remain = CalculateRemain(excursion);

            if (!ModelState.IsValid)
            {
                ViewBag.Excursion = excursion;
                ViewBag.Remain    = Remain;
                return(View(model));
            }
            if (Remain < model.OrderSum)
            {
                ViewBag.Excursion = excursion;
                ViewBag.Remain    = Remain;
                return(View(model));
            }
            payLogic.CreateOrUpdate(new OrderBindingModel
            {
                ExcursionId = excursion.Id,
                ClientId    = Program.Client.Id,
                DateCreate  = DateTime.Now,
                Sum         = model.OrderSum
            });
            Remain -= model.OrderSum;
            edLogic.CreateOrUpdate(new ExcursionBindingModel
            {
                Id                 = excursion.Id,
                ClientId           = excursion.ClientId,
                ExcursionCreate    = excursion.ExcursionCreate,
                Status             = Remain > 0 ? ExcursionStatus.В_Рассрочке : ExcursionStatus.Заказ_оплачен,
                Final_Cost         = excursion.Cost,
                RouteForExcursions = excursion.RouteForExcursions.Select(rec => new RouteForExcursionBindingModel
                {
                    Id          = rec.Id,
                    ExcursionId = rec.ExcursionId,
                    RouteId     = rec.RouteId,
                    Cost        = rec.Cost
                }).ToList()
            });
            return(RedirectToAction("Excursion"));
        }