public ActionResult DeleteConfirmed(string id) { AspNetUsersDiscountCode aspNetUsersDiscountCode = db.AspNetUsersDiscountCodes.Find(id); db.AspNetUsersDiscountCodes.Remove(aspNetUsersDiscountCode); db.SaveChanges(); return(RedirectToAction("Index")); }
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)); }
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)); }
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)); }
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)); } }