public ActionResult Edit(tableOrder model)
 {
     if (ModelState.IsValid)
     {
         db.Entry(model).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(model));
 }
        public ActionResult Create(tableOrder model)
        {
            if (ModelState.IsValid)
            {
                db.tableOrders.Add(model);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(model));
        }
Example #3
0
        public ActionResult OrderProduct(tableOrder p3)
        {
            if (Session["UserType"] == null)
            {
                return(RedirectToAction("ProductList"));
            }
            bool update = true;

            if (p3.CustomerID == null)
            {
                int userId = Convert.ToInt32(Session["UserID"]);
                p3.CustomerID = userId;
                p3.Time       = DateTime.Now;
                update        = false;
            }
            else
            {
                p3 = db.tableOrder.Find(p3.ID);
            }


            var     userWallet        = db.tableWallet.FirstOrDefault(x => x.UserID == p3.CustomerID);
            var     muhWallet         = db.tableWallet.FirstOrDefault(x => x.tableUser.UserName == "accounting");
            var     productList       = db.tableProduct.Where(x => x.ProductName == p3.ProductName && x.Price == p3.Price); // fiyata göre sıralanması
            int?    q                 = p3.Quantity;
            var     money             = userWallet.Money;
            decimal availableQuantity = 0;

            string message = "";

            bool completed = false;

            foreach (var item in productList)
            {
                var supplierWallet = db.tableWallet.FirstOrDefault(x => x.UserID == item.UserID);
                if (item.Quantity > 0)
                {
                    if (priceCentesimal(item.Price * q) <= money)
                    {
                        if (item.Quantity >= q)
                        {
                            item.Quantity        -= q;
                            money                -= priceCentesimal(item.Price * q);
                            supplierWallet.Money += item.Price * q;
                            muhWallet.Money      += (item.Price * q) / 100;
                            message               = "Your purchase has been made.";
                            completed             = true;
                            break;
                        }
                        else
                        {
                            q     -= item.Quantity;
                            money -= priceCentesimal(item.Price * item.Quantity);
                            supplierWallet.Money += (item.Price * item.Quantity);
                            muhWallet.Money      += (item.Price * item.Quantity) / 100;
                            message       = "You bought " + item.Quantity + " pieces of " + p3.ProductName + "";
                            completed     = true;
                            item.Quantity = 0;
                        }
                    }
                    else if (money / item.Price >= 1)
                    {
                        double a = Convert.ToDouble(money / item.Price);
                        availableQuantity     = Convert.ToDecimal(Math.Round(a));
                        money                -= priceCentesimal(availableQuantity * item.Price);
                        supplierWallet.Money += availableQuantity * item.Price;
                        muhWallet.Money      += (availableQuantity * item.Price) / 100;
                        item.Quantity        -= Convert.ToInt32(availableQuantity);
                        message               = "You bought " + availableQuantity + " pieces of " + p3.ProductName + "";
                        completed             = true;
                        break;
                    }
                    else
                    {
                        completed = false;
                        message   = "You don't have enough money for this purchase";
                        break;
                    }
                }
            }

            p3.State = completed;

            if (!update)
            {
                db.tableOrder.Add(p3);
            }



            userWallet.Money = money;
            db.SaveChanges();

            ViewBag.Message = message;

            return(View());
        }