public DeliveryAddress()
        {
            InitializeComponent();
            _CVM             = new DeliveryAddressViewModel();
            this.DataContext = _CVM;


            dataGrid1.ItemsSource = ListGrid;
            ListGridRef           = dataGrid1;
        }
Exemple #2
0
 public static bool changeDeliveryAddress(string login, DeliveryAddressViewModel deliveryAddressViewModel)
 {
     using (sklepEntities db = new sklepEntities())
     {
         Users user = db.Users.Where(x => x.UserName == login).Single();
         user.NumOfHouse = deliveryAddressViewModel.NumOfHouse;
         user.Street     = deliveryAddressViewModel.Street;
         user.PostCode   = deliveryAddressViewModel.PostCode;
         user.City       = deliveryAddressViewModel.City;
         db.SaveChanges();
         return(true);
     }
 }
        public ActionResult wyborDostawy()
        {
            List <SelectListItem> deliveriesList = OrderManager.GetDeliveriesList();

            ViewData["deliveriesList"] = (IEnumerable <SelectListItem>)deliveriesList;

/*            int deliveryID = Int32.Parse(Request["de  liveriesList"]);
 *          if(deliveryID == 1)
 *          {
 *              ViewBag.Delivery = 1;
 *          }*/
            usuniecieKoszykaUzytkownika(User.Identity.Name);
            DeliveryAddressViewModel deliveryAddressViewModel = UserManager.GetUserAddress(User.Identity.Name);

            return(View(deliveryAddressViewModel));
        }
Exemple #4
0
        public static DeliveryAddressViewModel GetUserAddress(string login)   // uzyskanie danych adresowych uzytkownika
        {
            DeliveryAddressViewModel deliveryAddressViewModel = new DeliveryAddressViewModel();

            using (sklepEntities db = new sklepEntities())
            {
                Users addressDB = db.Users.Where(x => x.UserName == login).Single();
                deliveryAddressViewModel.NumOfHouse = addressDB.NumOfHouse;
                deliveryAddressViewModel.PostCode   = addressDB.PostCode;
                deliveryAddressViewModel.Street     = addressDB.Street;
                deliveryAddressViewModel.City       = addressDB.City;
                deliveryAddressViewModel.Name       = addressDB.Name;
                deliveryAddressViewModel.Surname    = addressDB.Surname;
                return(deliveryAddressViewModel);
            }
        }
Exemple #5
0
        public IActionResult Index()
        {
            var model = _cartRepository.GetDelivery(null);

            var viewModel = _mapper.Map <DeliveryAddress, DeliveryAddressViewModel>(model);

            if (viewModel == null)
            {
                viewModel = new DeliveryAddressViewModel();
            }

            viewModel.MinimumCharge  = _config.GetValue <int>("LowestDeliveryCost");
            viewModel.CostByBlock    = _config.GetValue <int>("DeliveryCostByBlock");
            viewModel.DeliveryRadius = _config.GetValue <int>("DeliveryRadius");

            return(View(viewModel));
        }
 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"));
     }
 }
Exemple #7
0
        public async Task <ActionResult> Index(AddDeliveryAddressPage currentPage)
        {
            var viewModel = new DeliveryAddressViewModel(currentPage)
            {
                DeliveryAddressModel = new SingleDeliveryAddressViewModel(false)
            };

            var activeCustomer = UserManager.GetActiveCustomer(HttpContext);
            var customerId     = activeCustomer?.CustomerId ?? 0;

            if (customerId > 0)
            {
                var allReceivers = await _securityRepository.GetUsersForCustomerAsync(customerId);

                viewModel.DeliveryAddressModel.DeliveryAddress.Receivers = allReceivers.IsNullOrEmpty()
                    ? new List <User>()
                    : allReceivers.ToList();
            }
            viewModel.DeliveryAddressModel.CustomerName = activeCustomer != null
                ? activeCustomer.CustomerName
                : string.Empty;
            return(View("~/Views/Organization/DeliveryAdresses/AddDeliveryAddress.cshtml", viewModel));
        }
Exemple #8
0
        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);
                }
            }
        }
Exemple #9
0
        public async Task <IActionResult> Index(DeliveryAddressViewModel deliveryAddres)
        {
            deliveryAddres.MinimumCharge  = _config.GetValue <int>("LowestDeliveryCost");
            deliveryAddres.CostByBlock    = _config.GetValue <int>("DeliveryCostByBlock");
            deliveryAddres.DeliveryRadius = _config.GetValue <int>("DeliveryRadius");

            if (!ModelState.IsValid)
            {
                try
                {
                    var potentialPlace = await _deliveryRepository.GuessPlaceIdAsync(deliveryAddres.AddressLine1);

                    var placeConfirmed = await _deliveryRepository.GetPlaceAsync(potentialPlace);

                    deliveryAddres.AddressLine1 = placeConfirmed.StreetName + " " + placeConfirmed.StreetNumber + ", " + placeConfirmed.PostalCode;
                    deliveryAddres.ZipCode      = placeConfirmed.PostalCode;
                    deliveryAddres.StreetName   = placeConfirmed.StreetName;
                    deliveryAddres.StreetNumber = placeConfirmed.StreetNumber;
                }
                catch
                {
                    return(View(deliveryAddres));
                }
            }

            var distance = await _deliveryRepository.GetDistanceAsync(deliveryAddres.AddressLine1);

            if (distance > deliveryAddres.DeliveryRadius)
            {
                if (distance > 0)
                {
                    ModelState.AddModelError("DistanceNotCovered", $"La distancia debe ser menor a {deliveryAddres.DeliveryRadius/1000}kms. Tu ubicación está a {(distance / 1000.0).ToString("#.##")} kms.");
                }
                else
                {
                    ModelState.AddModelError("DistanceError", "No pudimos calcular la distancia.");
                }

                return(View(deliveryAddres));
            }

            var delivery = _mapper.Map <DeliveryAddressViewModel, DeliveryAddress>(deliveryAddres);

            delivery.ShoppingCartId = _cartRepository.GetSessionCartId();
            delivery.DeliveryCost   = _deliveryRepository.GetDeliveryEstimate(distance);
            delivery.Distance       = distance;


            var user = await _userManager.GetUser(_signInManager);

            if (user != null)
            {
                delivery.User = user;
            }

            try
            {
                _deliveryRepository.AddOrUpdateDelivery(delivery);
            }
            catch (Exception ex)
            {
                ModelState.AddModelError(ex.InnerException.Message, ex.Message);
                return(View(deliveryAddres));
            }

            return(RedirectToAction("Index", "ShoppingCart", null));
        }