Exemple #1
0
        public ActionResult DeleteConfirmed(string id)
        {
            AspNetUsersDiscountCode aspNetUsersDiscountCode = db.AspNetUsersDiscountCodes.Find(id);

            db.AspNetUsersDiscountCodes.Remove(aspNetUsersDiscountCode);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #2
0
 public ActionResult Edit([Bind(Include = "AspNetUser_Id,DiscountCode_idDiscountCode,numberOfUses")] AspNetUsersDiscountCode aspNetUsersDiscountCode)
 {
     if (ModelState.IsValid)
     {
         db.Entry(aspNetUsersDiscountCode).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.AspNetUser_Id = new SelectList(db.AspNetUsers, "Id", "Email", aspNetUsersDiscountCode.AspNetUser_Id);
     ViewBag.DiscountCode_idDiscountCode = new SelectList(db.DiscountCodes, "idDiscountCode", "code", aspNetUsersDiscountCode.DiscountCode_idDiscountCode);
     return(View(aspNetUsersDiscountCode));
 }
Exemple #3
0
        public ActionResult Details(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AspNetUsersDiscountCode aspNetUsersDiscountCode = db.AspNetUsersDiscountCodes.Find(id);

            if (aspNetUsersDiscountCode == null)
            {
                return(HttpNotFound());
            }
            return(View(aspNetUsersDiscountCode));
        }
Exemple #4
0
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AspNetUsersDiscountCode aspNetUsersDiscountCode = db.AspNetUsersDiscountCodes.Find(id);

            if (aspNetUsersDiscountCode == null)
            {
                return(HttpNotFound());
            }
            ViewBag.AspNetUser_Id = new SelectList(db.AspNetUsers, "Id", "Email", aspNetUsersDiscountCode.AspNetUser_Id);
            ViewBag.DiscountCode_idDiscountCode = new SelectList(db.DiscountCodes, "idDiscountCode", "code", aspNetUsersDiscountCode.DiscountCode_idDiscountCode);
            return(View(aspNetUsersDiscountCode));
        }
Exemple #5
0
        public ActionResult Order([Bind(Include = "idCustomer,name,surname,telephoneNumber,emailAddress,addressOfResidence,zipCode,AspNetUsers_idAspNetUsers,Locality_idLocality,PermanentDiscount_idPermanentDiscount")] Customer customer)
        {
            if (!User.Identity.IsAuthenticated)
            {
                if (ModelState.IsValid)
                {
                    string locality = Request["Locality.locality1"];

                    List <Locality> l     = db.Localities.Where(loc => loc.locality1.ToLower().Equals(locality.ToLower())).ToList();
                    string          local = "";

                    if (l.Count() > 0)
                    {
                        local = l.First().locality1;
                    }
                    else
                    {
                        Locality newLocality = new Locality();
                        newLocality.locality1 = locality;
                        db.Localities.Add(newLocality);
                        db.SaveChanges();
                        l = db.Localities.Where(loc => loc.locality1.ToLower().Equals(locality.ToLower())).ToList();
                    }

                    customer.Locality_idLocality = l.First().idLocality;
                    db.Customers.Add(customer);
                    db.SaveChanges();

                    Sale sale = new Sale();

                    sale.Customer_idCustomer = customer.idCustomer;
                    sale.date = DateTime.Now;

                    Shipping delivery = (Shipping)Session["deliveryCost"];
                    Session["deliveryCost"]  = null;
                    sale.Shipping_idShipping = delivery.idShipping;

                    SaleType saleTypeId = db.SaleTypes.Where(i => i.type == "Internetowa").First();
                    sale.SaleType_idSaleType = saleTypeId.idSaleType;

                    Employee employeeId = db.Employees.Where(i => i.name == "Internetowy").First();
                    sale.Employee_idEmployee = employeeId.idEmployee;

                    SaleState stateId = db.SaleStates.Where(i => i.state == "oczekuje na zatwierdzenie").First();
                    sale.SaleState_idSaleState = stateId.idSaleState;

                    db.Sales.Add(sale);
                    db.SaveChanges();

                    List <Cart> lsCart = new List <Cart>();
                    lsCart = (List <Cart>)Session[sessionCartString];

                    int lastSaleDetails = 0;

                    foreach (var item in lsCart)
                    {
                        SaleDetail detailOfSale = new SaleDetail();
                        Item       itemInShop   = new Item();

                        itemInShop = db.Items.Find(item.Item.idItem);
                        int availbility = (int)itemInShop.availability - item.Quantity;
                        try
                        {
                            itemInShop.availability = checked ((byte)availbility);
                        }
                        catch (OverflowException e)
                        {
                            db.Customers.Remove(customer);
                            db.Sales.Remove(sale);
                            db.SaveChanges();

                            if (itemInShop.availability <= 0)
                            {
                                lsCart.Remove(item);
                            }
                            else
                            {
                                item.Quantity = itemInShop.availability;
                            }

                            return(RedirectToAction("Index", "ShoppingCart", new { Error = "Podczas składania zamówienia wystąpił błąd. Twoje zamówienie zawierało więcej przedmiotów, niż wynosi stan magazynowy." }));
                        }

                        db.Entry(itemInShop).Entity.availability = itemInShop.availability;
                        db.SaveChanges();

                        detailOfSale.Item_idItem = item.Item.idItem;
                        detailOfSale.Sale_idSale = db.Entry(sale).Entity.idSale;

                        lastSaleDetails = detailOfSale.Sale_idSale;

                        detailOfSale.quantity = (byte)item.Quantity;
                        detailOfSale.value    = item.Item.price * item.Quantity;
                        detailOfSale.details  = (item.Options != "") ? item.Options : "bez-opcji";

                        db.SaleDetails.Add(detailOfSale);
                        db.SaveChanges();
                    }

                    Session[sessionCartString] = null;

                    return(RedirectToAction("Final", new { idOfSale = lastSaleDetails }));
                }

                ViewBag.Locality_idLocality = new SelectList(db.Localities, "idLocality", "locality1", customer.Locality_idLocality);

                return(View(customer));
            }
            else
            {
                ViewBag.Locality_idLocality = new SelectList(db.Localities, "idLocality", "locality1", customer.Locality_idLocality);

                ModelState.Remove("idCustomer");

                if (ModelState.IsValid)
                {
                    IQueryable <Customer> Customers = db.Customers.Where(cust => cust.AspNetUser.UserName == User.Identity.Name);
                    string locality = Request["Locality.locality1"];

                    List <Locality> l     = db.Localities.Where(loc => loc.locality1.ToLower().Equals(locality.ToLower())).ToList();
                    string          local = "";

                    if (l.Count() > 0)
                    {
                        local = l.First().locality1;
                    }
                    else
                    {
                        Locality newLocality = new Locality();
                        newLocality.locality1 = locality;
                        db.Localities.Add(newLocality);
                        db.SaveChanges();
                        l = db.Localities.Where(loc => loc.locality1.ToLower().Equals(locality.ToLower())).ToList();
                    }

                    customer.AspNetUsers_idAspNetUsers = db.AspNetUsers.Where(user => user.UserName == User.Identity.Name).First().Id;
                    customer.Locality_idLocality       = l.First().idLocality;

                    if (Customers.Count() > 0)
                    {
                        //customer = Customers.First();
                        if (EntityState.Modified.ToString() == "Modified")
                        {
                            //customer.idCustomer = Customers.First().idCustomer;
                            db.Entry(customer).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                    }
                    else
                    {
                        db.Customers.Add(customer);
                        db.SaveChanges();
                    }

                    // calculate new price


                    Sale sale = new Sale();

                    sale.Customer_idCustomer = customer.idCustomer;
                    sale.date = DateTime.Now;


                    SaleType saleTypeId = db.SaleTypes.Where(i => i.type == "Internetowa").First();
                    sale.SaleType_idSaleType = saleTypeId.idSaleType;

                    Employee employeeId = db.Employees.Where(i => i.name == "Internetowy").First();
                    sale.Employee_idEmployee = employeeId.idEmployee;

                    SaleState stateId = db.SaleStates.Where(i => i.state == "oczekuje na zatwierdzenie").First();
                    sale.SaleState_idSaleState = stateId.idSaleState;

                    Shipping delivery = (Shipping)Session["deliveryCost"];
                    Session["deliveryCost"]  = null;
                    sale.Shipping_idShipping = delivery.idShipping;

                    db.Sales.Add(sale);
                    db.SaveChanges();

                    List <Cart> lsCart = new List <Cart>();
                    lsCart = (List <Cart>)Session[sessionCartString];

                    List <Tuple <int, int> > pairs = new List <Tuple <int, int> >();
                    pairs = (List <Tuple <int, int> >)Session[itemsForCodeString];

                    List <int> ids = (Session["code"] != null) ? pairs.Select(i => i.Item1).ToList() : null;

                    string code = (string)(Session["code"]);

                    byte discount = 0;

                    if (Session["customerDiscount"] != null)
                    {
                        discount = (byte)Session["customerDiscount"];
                    }

                    int lastSaleDetails = 0;

                    foreach (var item in lsCart)
                    {
                        SaleDetail detailOfSale = new SaleDetail();
                        Item       itemInShop   = new Item();

                        itemInShop = db.Items.Find(item.Item.idItem);

                        if (ids != null)
                        {
                            if (ids.Contains(itemInShop.idItem))
                            {
                                int index = ids.FindIndex(i => i == itemInShop.idItem);
                                item.NewPrice = item.Item.price * ((100.0M - discount - (decimal)pairs.ElementAt(index).Item2) / 100.0M);
                                detailOfSale.DiscountCode_idDiscountCode = db.DiscountCodes.Where(id => id.code == code).First().idDiscountCode;
                            }
                        }
                        else if (discount > 0)
                        {
                            item.NewPrice = item.Item.price * ((100.0M - discount) / 100.0M);
                        }

                        int availbility = (int)itemInShop.availability - item.Quantity;
                        try
                        {
                            itemInShop.availability = checked ((byte)availbility);
                        }
                        catch (OverflowException e)
                        {
                            db.Sales.Remove(sale);
                            db.SaveChanges();

                            if (itemInShop.availability <= 0)
                            {
                                lsCart.Remove(item);
                            }
                            else
                            {
                                item.Quantity = itemInShop.availability;
                            }

                            return(RedirectToAction("Index", "ShoppingCart", new { Error = "Podczas składania zamówienia wystąpił błąd. Twoje zamówienie zawierało więcej przedmiotów, niż wynosi stan magazynowy." }));
                        }

                        db.Entry(itemInShop).Entity.availability = itemInShop.availability;
                        db.SaveChanges();

                        detailOfSale.Item_idItem = item.Item.idItem;
                        detailOfSale.Sale_idSale = db.Entry(sale).Entity.idSale;

                        lastSaleDetails = detailOfSale.Sale_idSale;

                        detailOfSale.quantity = (byte)item.Quantity;
                        detailOfSale.value    = (item.NewPrice != 0.0M) ? item.NewPrice * (decimal)item.Quantity : item.Item.price * (decimal)item.Quantity;
                        detailOfSale.details  = (item.Options != "") ? item.Options: "bez-opcji";

                        db.SaleDetails.Add(detailOfSale);
                        db.SaveChanges();
                    }

                    if (Session["code"] != null)
                    {
                        List <AspNetUsersDiscountCode> aspNetUsersDiscountCodes = db.AspNetUsersDiscountCodes.Where(id => id.AspNetUser.UserName == User.Identity.Name).Where(co => co.DiscountCode.code == code).ToList();

                        if (aspNetUsersDiscountCodes.Count() > 0)
                        {
                            AspNetUsersDiscountCode userCode = aspNetUsersDiscountCodes.First();
                            userCode.numberOfUses++;

                            db.Entry(userCode).State = EntityState.Modified;
                            db.SaveChanges();
                        }
                        else
                        {
                            AspNetUsersDiscountCode newRow = new AspNetUsersDiscountCode();
                            newRow.AspNetUser_Id = db.AspNetUsers.Where(id => id.UserName == User.Identity.Name).First().Id;
                            newRow.DiscountCode_idDiscountCode = db.DiscountCodes.Where(co => co.code == code).First().idDiscountCode;
                            newRow.numberOfUses = 1;

                            db.AspNetUsersDiscountCodes.Add(newRow);
                            db.SaveChanges();
                        }
                    }

                    Session["code"] = null;

                    Session["customerDiscount"] = null;

                    Session[itemsForCodeString] = null;

                    Session[sessionCartString] = null;

                    return(RedirectToAction("Final", new { idOfSale = lastSaleDetails }));
                }

                return(View(customer));
            }
        }