Пример #1
0
        public ActionResult Payment(PaymentModel model)
        {
            OrderViewModel order = _orderLogic.Read(new OrderBindingModel
            {
                Id = model.OrderId
            }).FirstOrDefault();
            int leftSum = CalculateLeftSum(order);

            if (!ModelState.IsValid)
            {
                ViewBag.Order   = order;
                ViewBag.LeftSum = leftSum;
                return(View(model));
            }
            if (leftSum < model.PaymentAmount)
            {
                ViewBag.Order   = order;
                ViewBag.LeftSum = leftSum;
                return(View(model));
            }
            _paymentLogic.CreateOrUpdate(new PaymentBindingModel
            {
                OrderId       = order.Id,
                ClientId      = Program.Client.Id,
                PaymentDate   = DateTime.Now,
                PaymentAmount = model.PaymentAmount
            });
            leftSum -= model.PaymentAmount;
            _orderLogic.CreateOrUpdate(new OrderBindingModel
            {
                Id        = order.Id,
                ClientId  = order.ClientId,
                OrderDate = order.OrderDate,
                Status    = leftSum > 0 ? PaymentStatus.Оплачен_не_полностью : PaymentStatus.Оплачен,
                TotalSum  = order.TotalSum,
                Positions = order.Positions.Select(rec => new PositionBindingModel
                {
                    Id                 = rec.Id,
                    OrderId            = rec.OrderId,
                    FurnitureModelId   = rec.FurnitureModelId,
                    FurnitureModelName = rec.ModelName,
                    Count              = rec.Count
                }).ToList()
            });
            return(RedirectToAction("Order"));
        }
Пример #2
0
        public ActionResult Payment(PaymentModel model)
        {
            EducationViewModel visit = _educationLogic.Read(new EducationBindingModel
            {
                Id = model.EducationId
            }).FirstOrDefault();
            int leftSum = CalculateLeftSum(visit);

            if (!ModelState.IsValid)
            {
                ViewBag.Education = visit;
                ViewBag.LeftSum   = leftSum;
                return(View(model));
            }
            if (leftSum < model.Sum)
            {
                ViewBag.Education = visit;
                ViewBag.LeftSum   = leftSum;
                return(View(model));
            }
            _paymentLogic.CreateOrUpdate(new PaymentBindingModel
            {
                EducationId = visit.Id,
                ClientId    = Program.Client.Id,
                DatePayment = DateTime.Now,
                Sum         = model.Sum
            });
            leftSum -= model.Sum;
            _educationLogic.CreateOrUpdate(new EducationBindingModel
            {
                Id               = visit.Id,
                ClientId         = visit.ClientId,
                DateOfBuying     = visit.DateOfBuying,
                Duration         = visit.Duration,
                Status           = leftSum > 0 ? EducationStatus.Получено_не_полностью : EducationStatus.Получено,
                FinalCost        = visit.FinalCost,
                EducationCourses = visit.EducationCourses.Select(rec => new EducationСourseBindingModel
                {
                    Id          = rec.Id,
                    EducationId = rec.EducationId,
                    CourseId    = rec.CourseId,
                    Count       = rec.Count
                }).ToList()
            });
            return(RedirectToAction("Education"));
        }
        public ActionResult PayOrder(PayOrderModel model)
        {
            OrderViewModel order = _orderLogic.Read(new OrderBindingModel
            {
                Id = model.OrderId
            }).FirstOrDefault();

            if (!ModelState.IsValid)
            {
                ViewBag.Order = order;
                return(View(model));
            }

            if (order.SumPaid > model.Sum)
            {
                ViewBag.Order = order;
                return(View(model));
            }

            _paymentLogic.CreateOrUpdate(new PaymentBindingModel
            {
                OrderId  = order.Id,
                ClientId = Program.Client.Id,
                Account  = model.Account,
                Date     = DateTime.Now,
                Sum      = model.Sum
            });

            _orderLogic.CreateOrUpdate(new OrderBindingModel
            {
                Id       = order.Id,
                ClientId = order.ClientId,
                Date     = order.Date,
                Status   = order.SumPaid + model.Sum < order.Sum ? OrderStatus.Оплачивается : OrderStatus.Оплачен,
                Sum      = order.Sum,
                Products = order.Products.Select(rec => new OrderProductBindingModel
                {
                    Id        = rec.Id,
                    OrderId   = rec.OrderId,
                    ProductId = rec.ProductId,
                    Count     = rec.Count
                }).ToList()
            });

            return(RedirectToAction("Index"));
        }
Пример #4
0
        public ActionResult Payment(PaymentModel model)
        {
            OrderViewModel order = _orderLogic.Read(new OrderBindingModel
            {
                Id = model.OrderId
            }).FirstOrDefault();
            int sum = CalculateSum(order);

            if (!ModelState.IsValid)
            {
                ViewBag.Order = order;
                ViewBag.Sum   = sum;
                return(View(model));
            }
            if (order.Price - sum < model.Sum)
            {
                ViewBag.Order = order;
                ViewBag.Sum   = order.Price - sum;
                return(View(model));
            }
            _paymentLogic.CreateOrUpdate(new PaymentBindingModel
            {
                OrderId     = order.Id,
                ClientId    = Program.Client.Id,
                DatePayment = DateTime.Now,
                Sum         = model.Sum
            });
            sum += model.Sum;
            _orderLogic.CreateOrUpdate(new OrderBindingModel
            {
                Id            = order.Id,
                ClientId      = order.ClientId,
                DateCreate    = order.DateCreate,
                Status        = sum < order.Price ? OrderStatus.Оплачен_не_полностью : OrderStatus.Оплачен,
                Price         = order.Price,
                OrderServices = order.OrderServices.Select(rec => new OrderServiceBindingModel
                {
                    Id        = rec.Id,
                    OrderId   = rec.OrderId,
                    ServiceId = rec.ServiceId,
                    Count     = rec.Count
                }).ToList()
            });
            return(RedirectToAction("Order"));
        }