コード例 #1
0
 public ActionResult Podsumowanie(DeliveryAddressViewModel deliveryAddressViewModel)
 {
     if (ModelState.IsValid)
     {
         int deliveryID = Int32.Parse(Request["deliveriesList"]);
         int status;
         SummaryOrderViewModel summaryOrderViewModel = OrderManager.GetOrderToSummary(deliveryAddressViewModel, deliveryID, User.Identity.Name, out status);
         ViewBag.Status = status;
         OrderDetailsView orderDetails = new OrderDetailsView();
         orderDetails.orderProductList = summaryOrderViewModel.orderProductList;
         orderDetails.TotalOrderPriceB = summaryOrderViewModel.TotalOrderPriceB;
         orderDetails.DeliveryPriceB   = summaryOrderViewModel.DeliveryPriceB;
         orderDetails.NameDelivery     = summaryOrderViewModel.NameDelivery;
         ViewData["payUData"]          = OrderManager.GetPayUFrom(orderDetails);
         return(View(summaryOrderViewModel));
     }
     else
     {
         // TODO: usuniecie zamowienia z BD
         return(RedirectToAction("Index", "Koszyk"));
     }
 }
コード例 #2
0
ファイル: OrderManager.cs プロジェクト: togrzesik/HerbalShop
        public static SummaryOrderViewModel GetOrderToSummary(DeliveryAddressViewModel deliveryAddressViewModel, int deliveryID, string login, out int status)
        {
            using (sklepEntities db = new sklepEntities())
            {
                Deliveries delivery = db.Deliveries.Where(x => x.DeliveryID == deliveryID).Single();
                Users      user     = db.Users.Where(x => x.UserName == login).Single();
                int        orderID  = db.Orders.Where(x => x.UserID == user.UserID)
                                      .OrderByDescending(x => x.OrderID)
                                      .Select(x => x.OrderID)
                                      .First();

                Orders order           = db.Orders.Where(x => x.OrderID == orderID).Single();
                var    productsOfOrder = db.ProductsOfOrders.Where(x => x.NumOfOrderID == orderID);
                order.PriceN            = order.PriceN + delivery.PriceN;
                order.PriceB            = order.PriceB + (1M + delivery.Vat) * delivery.PriceN;
                order.NameDelivery      = delivery.Name;
                order.PriceNDelivery    = delivery.PriceN;
                order.VATDelivery       = delivery.Vat;
                order.DeliverCity       = deliveryAddressViewModel.City;
                order.DeliverNumOfHouse = deliveryAddressViewModel.NumOfHouse;
                order.DeliverPostCode   = deliveryAddressViewModel.PostCode;
                order.DeliverStreet     = deliveryAddressViewModel.Street;
                order.Name    = deliveryAddressViewModel.Name;
                order.Surname = deliveryAddressViewModel.Surname;


                SummaryOrderViewModel orderDetails = new SummaryOrderViewModel();
                orderDetails.orderProductList = new List <OrderProductView>();
                List <ShoppingCartView> productsList = new List <ShoppingCartView>();
                foreach (ProductsOfOrders item in productsOfOrder)
                {
                    OrderProductView orderProductView = new OrderProductView();
                    orderProductView.ProductID          = item.ProductID;
                    orderProductView.ProductName        = db.Products.Where(x => x.ProductID == item.ProductID).Select(x => x.Name).Single();
                    orderProductView.ProductPriceN      = item.PriceN.ToString("C2");
                    orderProductView.ProductPriceB      = ((1M + item.Vat) * item.PriceN).ToString("C2");        // ToString("C2") oznacza - ustawienie zapisania ceny w odpowiedni sposob
                    orderProductView.QuantityChoose     = (int)item.Quantity;
                    orderProductView.TotalProductPriceB = ((1M + item.Vat) * item.PriceN * (int)item.Quantity).ToString("C2");

                    var productWithImage = from pro in db.Products                        // znalezienie zdjec danego produktu w bazie danych
                                           where pro.ProductID == item.ProductID
                                           join img in db.Images
                                           on pro.ProductID equals img.ProductID
                                           select new { pro.ProductID, img.Path };
                    var image = productWithImage.GroupBy(p => p.ProductID).Select(s => s.FirstOrDefault()).Single();      // wybranie pierwszego zdjecia produktu

                    orderProductView.ImagePath = image.Path;
                    orderDetails.orderProductList.Add(orderProductView);
                }
                orderDetails.TotalOrderPriceN = ((decimal)order.PriceN).ToString("C2");
                orderDetails.TotalOrderPriceB = ((decimal)order.PriceB).ToString("C2");
                orderDetails.NameDelivery     = delivery.Name;
                orderDetails.DeliveryPriceB   = ((1M + delivery.Vat) * delivery.PriceN).ToString("C2");
                orderDetails.Name             = order.Name;
                orderDetails.Surname          = order.Surname;
                orderDetails.Street           = order.DeliverStreet;
                orderDetails.NumOfHouse       = order.DeliverNumOfHouse;
                orderDetails.PostCode         = order.DeliverPostCode;
                orderDetails.City             = order.DeliverCity;
                orderDetails.OrderID          = order.OrderID;
                if (delivery.DeliveryID <= 1)                                                        // czy przedplata
                {
                    order.Status = "Oczekiwanie na wpłatę";
                    db.SaveChanges();
                    status = 1;
                    GenereateOrderPdf(orderID);
                    return(orderDetails);
                }
                else                                                                                                    // czy za pobraniem
                {
                    order.Status = "Oczekiwanie na wysyłkę";
                    db.SaveChanges();
                    status = 0;
                    GenereateOrderPdf(orderID);
                    return(orderDetails);
                }
            }
        }