Ejemplo n.º 1
0
        public ActionResult ListItemPartial()
        {
            int id;

            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }
                if (System.Web.HttpContext.Current.Session["PListID"] == null)
                {
                    id = db.PList.Where(m => m.Member_ID == MemberID).Select(m => m.PList_ID).First();;
                }
                else
                {
                    id = (int)System.Web.HttpContext.Current.Session["PListID"];
                }


                var q = db.ShoppingList.Where(s => s.PList_ID == id);
                return(PartialView(q.ToList()));//改了這個
            }
        }
Ejemplo n.º 2
0
        //新增一筆Product,使用ProductId
        public bool AddProduct(int Product_ID)
        {
            var findItem = this.cartItems
                           .Where(s => s.Product_ID == Product_ID)
                           .Select(s => s)
                           .FirstOrDefault();

            //判斷相同Id的CartItem是否已經存在購物車內
            if (findItem == default(Models.Carts.CartItem))
            {
                //不存在購物車內,則新增一筆
                using (Models.SmartShoppingEntities ss = new SmartShoppingEntities())
                {
                    var product = (from p in ss.Products
                                   where p.Product_ID == Product_ID
                                   select p).FirstOrDefault();
                    if (product != default(Models.Products))
                    {
                        this.AddProduct(product);
                    }
                }
            }
            else
            {
                //存在購物車內,則將商品數量增加
                findItem.Stock += 1;
            }

            return(true);
        }
Ejemplo n.º 3
0
        public ActionResult AddItem(string item)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }

                ShoppingList slist = new Models.ShoppingList();
                if (System.Web.HttpContext.Current.Session["PListID"] == null)
                {
                    slist.PList_ID = db.PList.Where(m => m.Member_ID == MemberID).Select(m => m.PList_ID).First();;
                }
                else
                {
                    slist.PList_ID = (int)System.Web.HttpContext.Current.Session["PListID"];
                }

                slist.ListName = item;
                slist.Active   = true;

                db.Entry(slist).State = EntityState.Added;
                db.SaveChanges();
                return(RedirectToAction("ShoppingListP", new { id = slist.PList_ID }));
            }
        }
Ejemplo n.º 4
0
        public ActionResult ShoppingCategoryPartial()
        {
            //讀取Member的父類別
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }

                var q = from s in db.PList
                        where s.Member_ID == MemberID
                        select s;
                if (q.FirstOrDefault() == null)
                {
                    PList pl = new PList();
                    pl.Member_ID = MemberID;
                    pl.ListName  = "我的購物清單";
                    //pl.PList_ID = db.PList.Max(m => m.PList_ID) + 1;

                    db.Entry(pl).State = EntityState.Added;
                    db.SaveChanges();
                }

                return(PartialView("ShoppingCategoryPartial", q.ToList()));
            }
        }
Ejemplo n.º 5
0
        public static List <Categories> GetCategories(List <int> RolesID)//用角色抓出推薦產品category的函式
        {
            List <Categories> Categories = new List <Categories>();

            if (RolesID != null)
            {
                using (SmartShoppingEntities db = new SmartShoppingEntities())
                {
                    for (int i = 0; i < RolesID.Count; i++)
                    {
                        int id = RolesID[i];
                        //List<RolesDetail> rolesd = db.RolesDetail.Where(p => p.Roles_ID == RolesID[i]);
                        var q = from r in db.RolesDetail
                                where r.Roles_ID == id
                                select r;
                        foreach (var item in q)
                        {
                            Categories category = db.Categories.Where(c => c.Category_ID == item.Categories_ID).First();
                            if (!Categories.Contains(category))
                            {
                                Categories.Add(category);
                            }
                        }
                    }
                }
            }


            return(Categories);
        }
Ejemplo n.º 6
0
        public ActionResult Added(string title, DateTime date)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                ShoppingList shoppinglist = new ShoppingList();
                //categoryname?
                shoppinglist.NextDate        = date;
                db.Entry(shoppinglist).State = EntityState.Modified;
                db.SaveChanges();
                //修改訂單資料如果是需要出貨的

                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 7
0
        public ActionResult AddFromDetail(int id, int?no, int?by)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }
                //存到我的購物清單

                int plistID = db.PList.Where(m => m.Member_ID == MemberID && m.ListName == "我的購物清單").Select(p => p.PList_ID).FirstOrDefault();
                if (plistID == 0)//幫他創一個
                {
                    PList pl = new PList();
                    pl.Member_ID       = MemberID;
                    pl.ListName        = "我的購物清單";
                    pl.PList_ID        = db.PList.Max(m => m.PList_ID) + 1;
                    plistID            = pl.PList_ID;
                    db.Entry(pl).State = EntityState.Added;
                }
                ShoppingList sl = new Models.ShoppingList();
                sl.PList_ID     = plistID;
                sl.Products     = db.Products.Where(p => p.Product_ID == id).First();
                sl.RepeatNumber = no;
                sl.RepeatBy     = by;
                sl.ListName     = sl.Products.Categories.CategoryName;
                sl.Active       = true;
                if (no != 0)
                {
                    if (by == 1)//月
                    {
                        sl.NextDate = DateTime.Today.AddMonths((int)no);
                    }
                    else if (by == 2)//周
                    {
                        sl.NextDate = DateTime.Today.AddDays((int)(7 * no));
                    }
                    else if (by == 3)//日
                    {
                        sl.NextDate = DateTime.Today.AddDays((int)no);
                    }
                }

                db.Entry(sl).State = EntityState.Added;
                db.SaveChanges();

                return(Content(sl.Products.ProductName + "已加入您的智慧清單"));
            }
        }
Ejemplo n.º 8
0
        public ActionResult GetItem(int id = 1)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }

                var q = db.ShoppingList.Where(s => s.PList_ID == id);
                return(PartialView("ListItemPartial", q.ToList()));
            }
        }
Ejemplo n.º 9
0
        public ActionResult Dropped(string title, DateTime date, int id)
        {
            //存進List Update
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                ShoppingList shoppinglist = db.ShoppingList.Find(id);

                shoppinglist.NextDate        = date;
                db.Entry(shoppinglist).State = EntityState.Modified;
                db.SaveChanges();
                //修改訂單資料如果是需要出貨的

                return(RedirectToAction("Index"));
            }
        }
Ejemplo n.º 10
0
        public ActionResult Detail(int id)//Get ListID
        {
            ViewBag.Clicked = true;

            System.Web.HttpContext.Current.Session["listitem"] = id;

            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                var sl = from s in db.ShoppingList.Include("ShoppingListInside")
                         where s.List_ID == id
                         select new MyShoppingList {
                    id = s.List_ID, listname = s.ListName, productname = s.Products.ProductName ?? "瀏覽相關產品", repeatno = s.RepeatNumber ?? 0, repeatby = s.RepeatBy ?? 1, lastdate = s.LastDate ?? DateTime.Today, nextdate = s.NextDate ?? DateTime.Today, quantity = s.Quantity ?? 1, link = s.Link ?? "#", phonenumber = s.Phone, address = s.Address
                };

                return(View("ShoppingList", sl.First()));
            }
        }
Ejemplo n.º 11
0
        public ActionResult CategoryInsert(string item)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }

                PList plist = new PList();
                plist.ListName        = item;
                plist.Member_ID       = MemberID;
                db.Entry(plist).State = EntityState.Added;
                db.SaveChanges();
                return(RedirectToAction("ShoppingList"));
            }
        }
Ejemplo n.º 12
0
        public ActionResult SetProduct(int id)//PID 接收到他現在要換什麼但還沒確認
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                //存入shoppinglistinside
                int switching = (int)System.Web.HttpContext.Current.Session["switchingid"];

                var slist = (from s in db.ShoppingList.Include(s => s.Products)
                             where s.List_ID == switching
                             select s).First();

                slist.List_ID  = switching;
                slist.Products = db.Products.Where(p => p.Product_ID == id).First();//存整個product給他

                db.Entry(slist).State = EntityState.Modified;
                db.SaveChanges();

                System.Web.HttpContext.Current.Session["switchingid"]   = null;
                System.Web.HttpContext.Current.Session["switchingname"] = null;
                return(RedirectToAction("Detail", "ShoppingList", new { id = switching }));
            }
        }
Ejemplo n.º 13
0
        public ActionResult DeleteItem(int listid)
        {
            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                //刪除shoppinglist& shoppinglistinside
                var slist = (from s in db.ShoppingList.Include(s => s.Products)
                             where s.List_ID == listid
                             select s).First();
                if (slist.Order_ID != null)
                {
                    //刪除order
                    int         orderid = (int)slist.Order_ID;
                    OrderDetail od      = db.OrderDetail.Where(o => o.Order_ID == orderid).First();
                    db.Entry(od).State = EntityState.Deleted;
                    Orders order = db.Orders.Where(o => o.Order_ID == orderid).First();
                    db.Entry(order).State = EntityState.Deleted;
                }

                db.Entry(slist).State = EntityState.Deleted;
                db.SaveChanges();
                return(RedirectToAction("ShoppingList"));
            }
        }
Ejemplo n.º 14
0
        public ActionResult GetEvent()
        {
            //讀出貨產品 + 日期

            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                if (User.Identity.IsAuthenticated)
                {
                    string aspid = User.Identity.GetUserId();
                    MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                }
                var list = (from p in db.PList
                            where p.Member_ID == MemberID
                            select p.PList_ID).ToList();

                //如果沒有PID  就讀CID
                var q = from s in db.ShoppingList.Include("ShoppingListInside").Where(c => list.Contains(c.PList_ID))
                        select new { title = s.Products.ProductName ?? s.ListName, start = s.NextDate, id = s.List_ID };
                var list2 = q.ToList();


                return(Json(q.ToList(), JsonRequestBehavior.AllowGet));
            }
        }
Ejemplo n.º 15
0
        public ActionResult SaveChanges(int listid, int repeatno, int repeatby, string nextdate, int quantity, string link1, string phone1, string address1)
        {
            DateTime date = Convert.ToDateTime(nextdate);

            using (SmartShoppingEntities db = new SmartShoppingEntities())
            {
                var slist = (from s in db.ShoppingList.Include(s => s.Products)
                             where s.List_ID == listid
                             select s).First();
                slist.RepeatNumber    = repeatno;
                slist.RepeatBy        = repeatby;
                slist.NextDate        = date;
                slist.Quantity        = quantity;
                slist.Link            = link1;
                slist.Address         = address1;
                slist.Phone           = phone1;
                db.Entry(slist).State = EntityState.Modified;
                db.SaveChanges();
                ViewBag.Clicked = null;

                //存到order去
                //order跟著動 addOrUpdate
                if (slist.Products != null)
                {
                    int pid = slist.Products.Product_ID;

                    if (User.Identity.IsAuthenticated)
                    {
                        string aspid = User.Identity.GetUserId();
                        MemberID = db.Members.Where(m => m.Id == aspid).Select(m => m.Member_ID).First();
                    }

                    var order = (from o in db.OrderDetail
                                 where o.Orders.Status_ID == 7 && o.Orders.Member_ID == MemberID && o.Product_ID == pid
                                 select o).FirstOrDefault();
                    var originalOID = slist.Order_ID;
                    if (order == null)
                    {
                        //第一次設add
                        Orders neworder = new Orders();
                        neworder.ArrivalDate      = date;
                        neworder.Member_ID        = MemberID;
                        neworder.OrderDate        = DateTime.Today;
                        neworder.SubTotal         = slist.Products.UnitPrice;
                        neworder.ValueAddTax      = (int)Math.Round((neworder.SubTotal) * 0.05);
                        neworder.Amount           = neworder.SubTotal + neworder.ValueAddTax;
                        neworder.ShipMethod_ID    = 1;
                        neworder.PaymentMethod_ID = 4;
                        neworder.Status_ID        = 7;


                        neworder.Order_ID        = db.Orders.Max(o => o.Order_ID) + 1;
                        db.Entry(neworder).State = EntityState.Added;

                        //存orderid到slist
                        slist.Order_ID        = neworder.Order_ID;
                        db.Entry(slist).State = EntityState.Modified;



                        //save orderdetail
                        OrderDetail od = new OrderDetail();
                        od.Order_ID   = neworder.Order_ID;
                        od.Product_ID = pid;
                        od.UnitPrice  = slist.Products.UnitPrice;

                        od.Quantity        = quantity;
                        db.Entry(od).State = EntityState.Added;
                        db.SaveChanges();
                    }
                    if (order == null && originalOID != null)//是更換要把本來的訂單刪除
                    {
                        OrderDetail od = db.OrderDetail.Where(o => o.Order_ID == originalOID).First();
                        db.Entry(od).State = EntityState.Deleted;
                        Orders ord = db.Orders.Find(originalOID);
                        db.Entry(ord).State = EntityState.Deleted;

                        db.SaveChanges();
                    }
                    if (order != null && slist.Order_ID != null)
                    {
                        //修改既有訂單.表示只是修同一筆
                        Orders ord = db.Orders.Find((int)slist.Order_ID);
                        ord.ArrivalDate = date;
                        OrderDetail od = db.OrderDetail.Where(o => o.Order_ID == (int)slist.Order_ID).First();
                        od.Quantity         = quantity;
                        db.Entry(od).State  = EntityState.Modified;
                        db.Entry(ord).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }

                return(Content("success"));
            }
        }