public ActionResult OrderlistDetail(int num)
 {
     if (Session["Account"] != null)
     {
         var datacount = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).Count();
         var data = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).SingleOrDefault();
         if (datacount > 0)
         {
             var model = new OrderViewModel()
             {
                 Order = orderCompleteData.Get().ToList().Where(a => a.num == num && a.memberId == data.num && a.isdel == 0),
                 productsize = psd.Get().ToList(),
                 productcolor = pcd.Get().ToList()
             };
             return View(model);
         }
         else
         {
             return RedirectToAction("Index", "Home");
         }
     }
     else
     {
         return RedirectToAction("Index", "Home");
     }
 }
 public ActionResult Orderlist()
 {
     if (Session["Account"] != null)
     {
         var datacount = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).Count();
         var data = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).SingleOrDefault();
         if (datacount > 0)
         {
             var model = new OrderViewModel()
             {
                 Order = orderCompleteData.Get().ToList().Where(a => a.memberId == data.num && a.isdel == 0).OrderByDescending(a=>a.num).ThenByDescending(a=>a.wdate)
             };
             return View(model);
         }
         else
         {
             return RedirectToAction("Index", "Home");
         }
     }
     else
     {
         return RedirectToAction("Index", "Home");
     }
 }
        public ActionResult Read(int page = 1, string find1 = "")
        {
            if (!CheckMemberlogin)
            {
                return RedirectToAction("login", "admin");
            }
            else
            {
                leftModel();
                ViewBag.searchResult = 0;
                ViewBag.search = 1;
                ViewBag.gowhere = Url.Action("Read", "adminOrder");
                if (find1 != "")
                {
                    ViewBag.searchResult = 1;
                    ViewBag.searchText = find1;
                }
                var currentpage = page < 1 ? 1 : page;
                var pagesize = 10;

                var order = orderCompleteData.Get().ToList().Where(a => a.isdel == 0 && a.orderId.Contains(find1)).OrderByDescending(a => a.wdate);
                var model = new OrderViewModel()
                {
                    Order_pagelist = order.ToPagedList(currentpage, pagesize)

                };
                return View(model);
            }
        }
 public ActionResult Edit(int num)
 {
     if (!CheckMemberlogin)
     {
         return RedirectToAction("login", "admin");
     }
     else
     {
         leftModel();
         var model = new OrderViewModel()
         {
             Order = orderCompleteData.Get().ToList().Where(a => a.num == num),
             productsize = psd.Get().ToList(),
             productcolor = pcd.Get().ToList()
         };
         return View(model);
     }
 }
        public ActionResult Index(string coupons = "")
        {
            TempData["ordercheckempty"] = false;
            TempData["ordercheckmsg"] = false;
            TempData["cuponsError"] = false;
            Session["couponcoin"] = "";
            bool isUseCoupon = false;
            if (Session["Account"] != null)
            {
                int total = Convert.ToInt32(Session["CartTotal"] != null ? Session["CartTotal"] : "0");

                if (!String.IsNullOrEmpty(coupons))
                {
                    //使用優惠券
                    var datacount = cood.Get().ToList().Where(a => a.CooponCode == coupons && a.isusing == 0 && a.isdel == 0).Count();
                    var data = cood.Get().ToList().Where(a => a.CooponCode == coupons && a.isusing == 0 && a.isdel == 0).SingleOrDefault();
                    if (datacount > 0)
                    {
                        isUseCoupon = true;
                        TempData["cuponsError"] = false;
                        TempData["isUseCoupon"] = isUseCoupon;
                        TempData["Couponcoin"] = data.coin;
                        Session["couponcoin"] = data.coin;
                        Session["couponID"] = coupons;
                        var allttotal = total - data.coin;
                        if (allttotal < 0)
                        {
                            allttotal = 0;
                        }
                        Session["CartTotal"] = allttotal;
                        Session["CartDesCoupon"] = allttotal;
                        var model = new OrderViewModel()
                        {
                            prodcut = pd.Get().ToList().Where(a => a.isdel == 0),
                            productsize = psd.Get().ToList().Where(a => a.isdel == 0),
                            productcolor = pcd.Get().ToList().Where(a => a.isdel == 0),
                            Member = md.Get().ToList().Where(a => a.isdel == 0)
                        };
                        return View(model);
                    }
                    else
                    {

                        return RedirectToAction("Index", "Cart");
                    }
                }
                else
                {
                    //不使用優惠券
                    isUseCoupon = false;
                    TempData["isUseCoupon"] = isUseCoupon;

                    TempData["Couponcoin"] = 0;
                    Session["couponcoin"] = 0;
                    Session["couponID"] = null;
                    var allttotal = total - 0;
                    if (allttotal < 0)
                    {
                        allttotal = 0;
                    }
                    Session["CartTotal"] = allttotal;
                    Session["CartDesCoupon"] = allttotal;
                    var model = new OrderViewModel()
                    {
                        prodcut = pd.Get().ToList().Where(a => a.isdel == 0),
                        productsize = psd.Get().ToList().Where(a => a.isdel == 0),
                        productcolor = pcd.Get().ToList().Where(a => a.isdel == 0),
                        Member = md.Get().ToList().Where(a => a.isdel == 0)
                    };
                    return View(model);
                }

            }
            else
            {
                TempData["loginmsg"] = "請先登入會員";
                return RedirectToAction("Index", "login");
            }
        }
        public ActionResult Complete(OrderComplete orderlist, string keyin = "")
        {
            //try
            //{
            if (Session["Account"] != null)
            {
                if (keyin == "")
                {
                    TempData["ordercheckempty"] = true;
                    return RedirectToAction("Index", "Order");
                }

                if (keyin != Session["ordercheck"].ToString())
                {
                    TempData["ordercheckmsg"] = true;
                    return RedirectToAction("Index", "Order");
                }
                //------會員------
                var memberdata = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).SingleOrDefault();
                orderlist.memberId = memberdata.num;
                orderlist.memberAccount = memberdata.uAccount;
                orderlist.memberName = memberdata.uName;
                //------地址------
                var cd = citydata.Get().ToList().Where(a => a.num == Convert.ToInt32(orderlist.city)).SingleOrDefault();
                var ad = areadata.Get().ToList().Where(a => a.num == Convert.ToInt32(orderlist.area)).SingleOrDefault();
                orderlist.city = cd.cityName;
                orderlist.area = ad.AreaName;
                orderlist.Status = 0;
                orderlist.isRead = 0;
                orderlist.isdel = 0;
                if (Convert.ToInt32(orderlist.pay_mode) == 3)
                {
                    orderlist.Status = 5;
                }
                //-------產生訂單----------
                //發票格式
                orderlist.pay_invoice = ((Enum_pay_invoice)Convert.ToInt32(orderlist.pay_invoice)).ToString();
                //付款方式
                orderlist.pay_mode = ((Enum_pay_mode)Convert.ToInt32(orderlist.pay_mode)).ToString();
                //運送方式
                orderlist.transport = ((Enum_transport)Convert.ToInt32(orderlist.transport)).ToString();
                orderlist.wdate = DateTime.Now;
                orderlist.udate = DateTime.Now;
                var dataCount = ocd.Get().ToList().Count();
                orderlist.orderId = "FUN" + DateTime.Now.ToString("yyyyMMdd") + (dataCount + 1).ToString().PadLeft(3, '0');

                //var id = "";
                //將購物車內容轉json
                orderlist.productJson = JsonConvert.SerializeObject(GetCartProduct());

                if (Session["CartDesCoupon"] != null)
                {
                    orderlist.Total = Convert.ToInt32(Session["CartDesCoupon"]);
                }
                else
                {
                    TempData["totalerror"] = "Error";
                    return RedirectToAction("Index", "Order");
                }
                if (Session["couponcoin"] != null)
                {
                    orderlist.coupon = Convert.ToInt32(Session["couponcoin"]);
                }
                else
                {
                    orderlist.coupon = 0;
                }
                if (Session["couponID"] != null)
                {
                    orderlist.couponID = Session["couponID"].ToString();
                }
                else
                {
                    orderlist.couponID = "";
                }

                //**************************************************************************************************************************

                //將優惠券變成已使用
                DeleCoupon();
                //刪除購物車內容物
                DeleCart();

                ocd.Create(orderlist);

                if (orderlist.pay_mode == "線上刷卡")
                {
                    return RedirectToAction("AllpayWebsite", orderlist);
                }

                var model = new OrderViewModel()
                {
                    Order = ocd.Get().ToList().Where(a => a.memberId == memberdata.num && a.orderId == orderlist.orderId),
                    prodcut = pd.Get().ToList().Where(a => a.isdel == 0),
                    productsize = psd.Get().ToList().Where(a => a.isdel == 0),
                    productcolor = pcd.Get().ToList().Where(a => a.isdel == 0)
                };

                return View(model);
            }
            else
            {
                TempData["loginmsg"] = "請先登入會員";
                return RedirectToAction("Index", "login");
            }
            //}
            //catch (Exception ex)
            //{
            //    return RedirectToAction("Index", "Home");
            //}
        }
        //歐富寶系列導向頁
        public ActionResult Complete_AllPay(AllPay_RedirectVal allpay)
        {
            try
            {
                if ((allpay.RtnCode == 2 && allpay.PaymentType.Contains("ATM")) ||
                    (allpay.RtnCode == 10100073 && allpay.PaymentType.Contains("CVS")) ||
                    (allpay.RtnCode == 1 && allpay.PaymentType.Contains("Credit")))
                {

                    if (Session["Account"] != null)
                    {
                        var memberdata = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString());
                        if (memberdata != null)
                        {
                            var memberdatas = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).SingleOrDefault();
                            var orderlist = ocd.Get().ToList().Where(a => a.memberId == memberdatas.num && a.orderId == allpay.MerchantTradeNo);
                            if (orderlist != null)
                            {
                                SendEmailToGuest(orderlist.SingleOrDefault(), allpay);
                            }

                            var model = new OrderViewModel()
                               {
                                   Order = orderlist,
                                   prodcut = pd.Get().ToList().Where(a => a.isdel == 0),
                                   productsize = psd.Get().ToList().Where(a => a.isdel == 0),
                                   productcolor = pcd.Get().ToList().Where(a => a.isdel == 0),
                                   AllPay_RedirectVal = allpay
                               };

                            return View(model);
                        }
                        else
                        {
                            TempData["msg"] = "會員取得失敗";
                            return RedirectToAction("Index", "Home");
                        }
                    }
                    else
                    {
                        TempData["msg"] = "會員取得失敗";
                        return RedirectToAction("Index", "Home");
                    }

                }
                else
                {
                    var memberdata = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString());
                    if (memberdata != null)
                    {
                        var memberdatas = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).SingleOrDefault();
                        var orderlist = ocd.Get().ToList().Where(a => a.memberId == memberdatas.num && a.orderId == allpay.MerchantTradeNo);
                        if (orderlist != null)
                        {
                            var orderlists = ocd.Get().ToList().Where(a => a.memberId == memberdatas.num && a.orderId == allpay.MerchantTradeNo).SingleOrDefault();
                            OrderComplete od = new OrderComplete();
                            od.udate = DateTime.Now;
                            od.isdel = 1;
                            od.num = orderlists.num;
                            ocd.Delete(od);
                        }
                    }
                    TempData["msg"] = "交易失敗,導回首頁";
                    return RedirectToAction("Index", "Home");
                }
            }
            catch (Exception ex)
            {

                TempData["msg"] = "交易失敗,導回首頁";
                return RedirectToAction("Index", "Home");
            }
        }
        public ActionResult Complete(OrderComplete orderlist, string keyin = "")
        {
            //判斷session, 會員是否有登入
            if (Session["Account"] != null)
            {
                //再次判斷前端驗證碼是否符合session值
                if (keyin != Session["ordercheck"].ToString())
                {
                    TempData["msg"] = "驗證碼錯誤";
                    return RedirectToAction("Index", "OrderNoAllpay");
                }

                //------會員------
                //取得會員
                var memberdata = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).SingleOrDefault();
                //會員自動編號
                orderlist.memberId = memberdata.num;
                //會員帳號
                orderlist.memberAccount = memberdata.uAccount;
                //會員姓名
                orderlist.memberName = memberdata.uName;

                //------地址------
                //取得城市
                var cityd = citydata.Get().ToList().Where(a => a.num == Convert.ToInt32(orderlist.city)).SingleOrDefault();
                //取得地區
                var aread = areadata.Get().ToList().Where(a => a.num == Convert.ToInt32(orderlist.area)).SingleOrDefault();

                //城市
                orderlist.city = cityd.cityName;
                //地區
                orderlist.area = aread.AreaName;
                //訂單狀態
                orderlist.Status = 0;
                orderlist.isRead = 0;
                //是否刪除
                orderlist.isdel = 0;
                //發票格式
                orderlist.pay_invoice = ((Enum_pay_invoice)Convert.ToInt32(orderlist.pay_invoice)).ToString();
                //付款方式
                orderlist.pay_mode = ((Enum_pay_mode)Convert.ToInt32(orderlist.pay_mode)).ToString();
                //運送方式
                //orderlist.transport = ((Enum_transport)Convert.ToInt32(orderlist.transport)).ToString();
                orderlist.transport = "";
                //建檔日期
                orderlist.wdate = DateTime.Now;
                //更新日期
                orderlist.udate = DateTime.Now;
                //訂單筆數
                var dataCount = ocd.Get().ToList().Count();
                //訂單編號
                orderlist.orderId = "SUN" + DateTime.Now.ToString("yyyyMMdd") + (dataCount + 1).ToString().PadLeft(3, '0');
                //優惠券金額
                orderlist.coupon = 0;
                //優惠券序號
                orderlist.couponID = "";
                //將購物車內容轉json
                orderlist.productJson = JsonConvert.SerializeObject(GetCartProduct());
                //每筆商品總額相加
                int total = 0;
                foreach (var i in cd.Get().ToList().Where(a => a.isdel == 0 && a.memberID == memberdata.num))
                {
                    total += i.total;
                }

                //****************需要運費不須註解*******************
                //運費已城市為主
                //int pay = 0, paydesc = 0;
                //bool isPaytf = false;
                //int totalAddPay = 0;
                //pay = PayFn.GetPay(cityd.num);
                //paydesc = PayFn.GetDescPay(cityd.num);
                //if (total < paydesc)
                //{
                //    isPaytf = true;
                //    totalAddPay = total + pay;
                //}
                //else
                //{
                //    isPaytf = false;
                //    totalAddPay = total;
                //}
                //****************//需要運費不須註解*******************

                //總金額
                orderlist.Total = total;
                //刪除購物車內容物
                DeleCart();
                //新增訂單
                ocd.Create(orderlist);

                //******寄信***********
                string toEmail = orderlist.buyemail;
                string fromEmail = "*****@*****.**";
                string Title = "杉魁-訂單通知";
                string Subject = "杉魁-訂單通知";
                string Content = "";
                bool isSSL = false;

                Content =
                "<table align='center' border='1' cellpadding='2' cellspacing='0' width='700'>" +
                "<tbody>" +
                        "<tr><td align='right' width='15%'>訂單編號</td><td align='left' width='85%'>" + orderlist.orderId + "</td></tr>" +
                        "<tr><td align='right'>訂購人</td><td align='left'>" + orderlist.buyers + "</td></tr>" +
                        "<tr><td align='right'>聯絡電話</td><td align='left'>" + orderlist.buyers_tel + "</td></tr>" +
                        "<tr><td align='right'>取貨人</td><td align='left'>" + orderlist.consignee + "</td></tr>" +
                        "<tr><td align='right'>取貨人電話</td><td align='left'>" + orderlist.consignee_tel + "</td></tr>" +
                        "<tr><td align='right'>取貨人手機</td><td align='left'>" + orderlist.consignee_phone + "</td></tr>" +
                        "<tr><td align='right'>取貨人地址</td><td align='left'>" + orderlist.city + orderlist.area + orderlist.address + "</td></tr>" +
                        "<tr><td align='right'>發票格式</td><td align='left'>" + orderlist.pay_invoice + "</td></tr>" +
                        "<tr><td align='right'>統一編號</td><td align='left'>" + orderlist.number + "</td></tr>" +
                        "<tr><td align='right'>抬頭</td><td align='left'>" + orderlist.invoice_title + "</td></tr>" +
                        "<tr><td align='right'>下單時間</td><td align='left'>" + orderlist.wdate + "</td></tr>" +
                        "<tr><td align='right'>付款方式</td><td align='left'>" + orderlist.pay_mode + "</td></tr>" +
                        "<tr><td align='right'>總金額</td><td align='left'>" + orderlist.Total + "元</td></tr>" +
                        "<tr><td align='right'>運費</td><td align='left'>" + orderlist.thispay + "元(出貨時會另行通知)</td></tr>" +
                        "<tr><td align='right'>備 註</td><td align='left'>" + orderlist.demo + "</td></tr>" +
                        "<tr><td align='right'>產品清單</td><td align='left'>" +
                                "<table border='1'>" +
                                    "<thead>" +
                    //"<th align='center'>圖片</th>" +
                                        "<th align='center'>產品名稱</th>" +
                                        "<th align='center'>形式</th>" +
                                        "<th align='center' width='5%'>價錢</th>" +
                                        "<th align='center' width='5%'>數量</th>" +
                                    "</thead>" +
                                    "<tbody>";
                var alltotal = 0;
                if (!String.IsNullOrEmpty(orderlist.productJson))
                {
                    var jsonstr = JsonConvert.DeserializeObject<List<productlistforCart>>(orderlist.productJson);
                    foreach (var i in jsonstr)
                    {
                        Content += "<tr>";
                        //Content += "<td align='center'><img src='" + AppDomain.CurrentDomain.BaseDirectory +"/upload/product/" + i.pic1 + "' width='50' height='50'/></td>";
                        Content += "<td align='center'>" + i.pname + "</td>";
                        Content += "<td align='center'>" + i.pro_type_name + "</td>";
                        Content += "<td align='center'>" + i.price + "</td>";
                        Content += "<td align='center'>" + i.qty + "</td>";
                        Content += " </tr>";
                        alltotal += (i.qty * i.price);

                    }

                }

                Content += "<tr>";
                Content += "<td align='center' colspan='5'>";
                Content += "<span>總計(原金額):" + alltotal + "</span>";
                Content += "</td>";
                Content += "</tr>";
                Content += "<tr>";
                Content += "<td align='center' colspan='5'>";
                Content += "<span>運費:" + orderlist.thispay + "</span>";
                Content += "</td>";
                Content += "</tr>";
                Content += "<tr>";
                Content += "<td align='center' colspan='5'>";
                Content += "<span>(總金額+運費):" + (orderlist.Total + orderlist.thispay) + "</span>";
                Content += "</td>";
                Content += "</tr>";
                Content += "</tbody></table></td></tr></tbody></table>";
                SendMailToEveryOne.SendMail(toEmail, fromEmail, Title, Subject, Content, isSSL);
                SendMailToEveryOne.SendMail(fromEmail, toEmail, Title, Subject, Content, isSSL);

                //*********//寄信***********
                //製作成ViewModel供訂單完成頁面使用
                var model = new OrderViewModel()
                {
                    Order = ocd.Get().ToList().Where(a => a.memberId == memberdata.num && a.orderId == orderlist.orderId),
                    prodcut = pd.Get().ToList().Where(a => a.isdel == 0),
                    total = total,
                    //pay = pay,
                    //ispay = isPaytf

                };

                return View(model);
            }
            else
            {
                TempData["msg"] = "請先登入會員";
                return RedirectToAction("Index", "login");
            }
        }
        public ActionResult Index()
        {
            if (Session["Account"] != null)
            {

                var mdata = md.Get().ToList().Where(a => a.uAccount == Session["Account"].ToString()).SingleOrDefault();
                int total = 0;

                var cartdata = cd.Get().ToList().Where(a => a.isdel == 0 && a.memberID == mdata.num);
                if (cartdata != null && cartdata.Count() > 0)
                {

                    foreach (var i in cd.Get().ToList().Where(a => a.isdel == 0 && a.memberID == mdata.num))
                    {
                        total += i.total;
                    }

                    var model = new OrderViewModel()
                    {
                        cart = cd.Get().ToList().Where(a => a.isdel == 0 && a.memberID == mdata.num),
                        prodcut = pd.Get().ToList().Where(a => a.isdel == 0),
                        Member = md.Get().ToList().Where(a => a.isdel == 0 && a.num == mdata.num),
                        pro_type_item = ptid.Get().ToList().Where(a => a.isdel == 0),
                        total = total
                    };
                    return View(model);
                }
                else
                {
                    TempData["msg"] = "您尚未購物,系統將自動導向";
                    return RedirectToAction("Index", "product");
                }
            }
            else
            {
                TempData["msg"] = "無登入會員,系統將自動導向";
                return RedirectToAction("Index", "login");
            }
        }