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")); }
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")); }
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")); }