public ActionResult CheckOut(string fReceiver, string fAddress, string fEmail, int[] fId)
        {
            List <tOrderDetail> list = new List <tOrderDetail>();
            string fUserId           = (Session["Member"] as tMember).fUserId;
            string guid  = Guid.NewGuid().ToString();
            tOrder order = new tOrder()
            {
                fAddress   = fAddress,
                fEmail     = fEmail,
                fDate      = DateTime.Now,
                fOrderGuid = guid,
                fReceiver  = fReceiver,
                fUserId    = fUserId,
            };

            foreach (var item in fId)
            {
                var orderdetail = db.tOrderDetail.Where(m => m.fIsApproved == "未下定" && m.fUserId == fUserId && m.fId == item).FirstOrDefault();
                orderdetail.fIsApproved = "已下定";
                orderdetail.fOrderGuid  = guid;
                orderdetail.fdate       = DateTime.Now;
                var product = db.tProduct.Where(m => m.fName == (orderdetail.fName)).FirstOrDefault();
                product.fselled = Convert.ToInt32(orderdetail.fQty);
                list.Add(orderdetail);
            }
            var orderlist = db.tOrder.Where(m => m.fOrderGuid == guid).FirstOrDefault();

            ViewBag.Order = orderlist;
            db.tOrder.Add(order);
            db.SaveChanges();
            return(View("BuyerDetail", "_LayOutMember", list));
        }
Example #2
0
        public OrderPayStatus GetPayStatus(int orderId)
        {
            tOrder order = dbContext.tOrders.Where(o => o.OrderId == orderId).FirstOrDefault();
            List <tOrderDetail> detaillist = dbContext.tOrderDetails.Where(od => od.oOrderId == orderId).ToList();
            List <tOrderPay>    paylist    = dbContext.tOrderPays.Where(op => op.oOrderId == orderId).ToList();
            OrderPayStatus      payStatus  = new OrderPayStatus();

            foreach (var detail in detaillist)
            {
                int price = Convert.ToInt32(dbContext.tProducts.Where(p => p.ProductId == detail.oProductId).FirstOrDefault().pPrice);
                payStatus.TotalAmount += detail.oProductQty * price;
            }
            tPromotion promotion = dbContext.tPromotions.Where(pm => pm.PromotionId == order.oPromotionId).FirstOrDefault();

            if (promotion != null)
            {
                payStatus.TotalAmount -= Convert.ToInt32(promotion.pDiscount);
            }
            if (paylist.Count() == 0)
            {
                payStatus.AlreadyPay = 0;
            }
            else
            {
                foreach (var payitem in paylist)
                {
                    payStatus.AlreadyPay += Convert.ToInt32(payitem.oPayment);
                }
            }
            payStatus.Unpaid = payStatus.TotalAmount - payStatus.AlreadyPay;
            return(payStatus);
        }
        public ActionResult ShoppingCar(string fReceiver, string fEmail, string fAddress)
        {
            string fUserId = (Session["Member"] as tMember).fUserId;

            //建立識別值當作訂單編號
            string guid = Guid.NewGuid().ToString();

            //建立訂單主檔資料
            tOrder order = new tOrder();

            order.fOrderGuid = guid;
            order.fUserId    = fUserId;
            order.fReceiver  = fReceiver;
            order.fEmail     = fEmail;
            order.fAddress   = fAddress;
            order.fDate      = DateTime.Now;

            //找出目前會員在訂單明細中是購物車狀態的產品
            var carList = db.tOrderDetail
                          .Where(m => m.fIsApproved == "否" && m.fUserId == fUserId)
                          .ToList();

            //將購物車狀態產品的fIsApproved設為"是",表示確認訂購產品
            foreach (var item in carList)
            {
                item.fOrderGuid  = guid;
                item.fIsApproved = "是";
            }

            //完成訂單主檔和訂單明細的更新
            db.SaveChanges();
            return(RedirectToAction("OrderList"));
        }
Example #4
0
 public ActionResult ShoppingCar(string fReceiver, string fEmail, string fAddress)
 {
     //找出會員帳號並指定給fUserId
     string fUserId = (Session["Member"] as tMember).fUserId;
     //建立唯一的識別值並指定給guid變數,用來當做訂單編號
     //tOrder的fOrderGuid欄位會關聯到tOrderDetail的fOrderGuid欄位
     //形成一對多的關係,即一筆訂單資料會對應到多筆訂單明細
     string guid = Guid.NewGuid().ToString();
     //建立訂單主檔資料
     tOrder order = new tOrder();
     order.fOrderGuid = guid;
     order.fUserId = fUserId;
     order.fReceiver = fReceiver;
     order.fEmail = fEmail;
     order.fAddress = fAddress;
     order.fDate = DateTime.Now;
     db.tOrder.Add(order);
     //找出目前會員在訂單明細中是購物車狀態的產品
     var carList = db.tOrderDetail
         .Where(m => m.fIsApproved == "否" && m.fUserId == fUserId)
         .ToList();
     //將購物車狀態產品的fIsApproved設為"是",表示確認訂購產品
     foreach (var item in carList)
     {
         item.fOrderGuid = guid;
         item.fIsApproved = "是";
     }
     //更新資料庫,異動tOrder和tOrderDetail
     //完成訂單主檔和訂單明細的更新
     db.SaveChanges();
     //執行Home控制器的OrderList動作方法
     return RedirectToAction("OrderList");
 }
Example #5
0
        public ActionResult Edit(int id)
        {
            ViewBag.RefundStatuses = GetRefundModel();
            tOrder currentOrder = _orderRepository.Find(id);

            return(View(currentOrder));
        }
Example #6
0
 public void InsertOrUpdate(tOrder order)
 {
     if (order.IDOrder == default(int))
     {
         // New entity
         context.tOrders.InsertOnSubmit(order);
     }
     else
     {
         // Existing entity
         tOrder orderToUpdate = Find(order.IDOrder);
         if (orderToUpdate != null && orderToUpdate.IDOrder > 0)
         {
             orderToUpdate.AmountPaid      = order.AmountPaid;
             orderToUpdate.BuyerNotes      = order.BuyerNotes;
             orderToUpdate.IDCoupon        = order.IDCoupon;
             orderToUpdate.IDDeal          = order.IDDeal;
             orderToUpdate.IDUserBought    = order.IDUserBought;
             orderToUpdate.MobilePhoneNo   = order.MobilePhoneNo;
             orderToUpdate.OrderNotes      = order.OrderNotes;
             orderToUpdate.OrderStatus     = order.OrderStatus;
             orderToUpdate.PaymentType     = order.PaymentType;
             orderToUpdate.Quantity        = order.Quantity;
             orderToUpdate.RefundStatus    = order.RefundStatus;
             orderToUpdate.Options         = order.OrderNotes;
             orderToUpdate.ReferrerAddress = order.ReferrerAddress;
         }
     }
 }
Example #7
0
        public ActionResult ShoppingCar(string fReceiver, string fEmail, string fAddress)
        {
            //string fUserId = (Session["Member"] as tMember).fUserId;
            string fUserId = "tom";
            string guid    = Guid.NewGuid().ToString();
            tOrder order   = new tOrder();

            order.fOrderGuid = guid;
            order.fUserId    = fUserId;
            order.fReceiver  = fReceiver;
            order.fEmail     = fEmail;
            order.fAddress   = fAddress;
            order.fDate      = DateTime.Now;
            db.tOrder.Add(order);

            var carList = db.tOrderDetail.Where(m => m.fIsApproved == "否" && m.fUserId == fUserId).ToList();

            foreach (var item in carList)
            {
                item.fOrderGuid  = guid;
                item.fIsApproved = "是";
            }
            db.SaveChanges();
            return(RedirectToAction("OrderList"));
        }
        public ActionResult ShoppingCart(CShoppingCartViewModel buy)
        {
            string user = (Session[CDictionary.SK_LOGINED_USER] as tMember).fUserId;

            string guid = Guid.NewGuid().ToString();

            tOrder o = new tOrder();
            o.fUserId = user;
            o.fOrderId = guid;
            o.fReceiver = buy.fReceiver;
            o.fAddress = buy.fAddress;
            o.fDate = DateTime.Now;

            db.tOrder.Add(o);

            var cart = db.tOrderDetail
                .Where(od => od.fUserId == user && od.fIsApproved == "N").ToList();

            foreach (var item in cart)
            {
                item.fOrderId = guid;
                item.fIsApproved = "Y";
            }

            db.SaveChanges();

            return RedirectToAction("OrderDetail");
        }
Example #9
0
        public ActionResult ShoppingCar(string fReceiver, string fEmail, string fAddress)
        {
            string fUserId = (Session["Member"] as tMember).fUserId;
            string guid    = Guid.NewGuid().ToString();
            tOrder order   = new tOrder();

            order.fOrderGuid = guid;
            order.fUserId    = fUserId;
            order.fReceiver  = fReceiver;
            order.fEmail     = fEmail;
            order.fAddress   = fAddress;
            order.fDate      = DateTime.Now;
            db.tOrder.Add(order);

            //同時將購物車商品轉換成訂單明細並存入資料庫中

            var carList = db.tOrderDetail
                          .Where(m => m.fIsApproved == "否" && m.fUserId == fUserId)
                          .ToList();

            foreach (var item in carList)
            {
                item.fOrderGuid  = guid; //給予現在產生的guid
                item.fIsApproved = "是";  //將訂單明細,fisApproved改成是
            }

            db.SaveChanges();
            return(RedirectToAction("OrderList")); //返回訂單查詢功能列表
        }
Example #10
0
 public JsonResult 實體店新增訂單(EmployeeOrderViewModel empOrder)
 {
     if (Session[CSession關鍵字.SK_LOGINED_EMPLOYEE] != null)
     {
         tEmployee emp = Session[CSession關鍵字.SK_LOGINED_EMPLOYEE] as tEmployee;
         if (Session[CSession關鍵字.SK_ORDERDETAIL] == null)
         {
             return(Json(new { result = false, msg = "訂單尚未完成!", url = Url.Action("實體店新增訂單", "Order") }));
         }
         else
         {
             List <EmployeeOrderDetailViewModel> orders = Session[CSession關鍵字.SK_ORDERDETAIL] as List <EmployeeOrderDetailViewModel>;
             MotaiDataEntities dbContext = new MotaiDataEntities();
             tCustomer         customer  = dbContext.tCustomers.Where(c => c.cCellPhone == empOrder.cCellphone).FirstOrDefault();
             tOrder            list      = new tOrder();
             list.oEmployeeId = emp.EmployeeId;
             list.oCustomerId = customer.CustomerId;
             if (empOrder.oAddress == null)
             {
                 list.oAddress = customer.cAddress;
             }
             else
             {
                 list.oAddress = empOrder.oAddress;
             }
             list.oDate          = empOrder.oDate;
             list.cNote          = empOrder.cNote;
             list.oWarehouseName = empOrder.oWarehouseName;
             dbContext.tOrders.Add(list);
             dbContext.SaveChanges();
             int orderId       = dbContext.tOrders.OrderByDescending(i => i.OrderId).First().OrderId;
             int originalPrice = 0;
             foreach (var items in orders)
             {
                 tOrderDetail detail = new tOrderDetail();
                 detail.oOrderId    = orderId;
                 detail.oProductId  = items.oProductId;
                 detail.oProductQty = items.oProductQty;
                 detail.oNote       = items.oNote;
                 dbContext.tOrderDetails.Add(detail);
                 tProduct product = dbContext.tProducts.Where(p => p.ProductId.Equals(items.oProductId)).FirstOrDefault();
                 originalPrice += items.oProductQty * Convert.ToInt32(product.pPrice);
             }
             tOrder order       = dbContext.tOrders.Where(o => o.OrderId == orderId).FirstOrDefault();
             int    promotionId = orderRespoitory.SelectPromotionId(originalPrice, empOrder.oDate);
             if (promotionId != 0)
             {
                 order.oPromotionId = promotionId;
             }
             dbContext.SaveChanges();
             Session[CSession關鍵字.SK_ORDERDETAIL] = null;
             return(Json(new { result = true, msg = "新增成功", url = Url.Action("realCheckView", "Order"), OrderId = orderId }));
         }
     }
     else
     {
         return(Json(new { result = false, msg = "尚未登入!", url = Url.Action("員工登入", "Employee") }));
     }
 }
        //刪除資料庫
        public void DeleteOrder(string id)
        {
            int    _id = Convert.ToInt32(id);
            tOrder t   = (from p in db.tOrder where p.fLessonId == _id select p).FirstOrDefault();

            db.tOrder.Remove(t);
            db.SaveChanges();
        }
Example #12
0
        public void Delete(int id)
        {
            tOrder user = Find(id);

            if (user != null && user.IDOrder > 0)
            {
                context.tOrders.DeleteOnSubmit(user);
            }
            context.SubmitChanges();
        }
Example #13
0
        public ActionResult OrderDetails(int?IDOrder)
        {
            IDOrder = IDOrder ?? 0;
            int    UserID = (int)MembershipHelper.GetCurrenUser().ProviderUserKey;
            tOrder order  = _orderRepository.Find((int)IDOrder, UserID);

            if (order == null)
            {
                return(RedirectToAction("OrderDataNotFound"));
            }
            return(View(order));
        }
Example #14
0
        public ActionResult Delete(int?id) //將不需要的訂單設為2(錯誤訂單)
        {
            // dbMSIT126Team02Entities3 db = new dbMSIT126Team02Entities3();
            tOrder order = db.tOrders.First(p => p.fOrderID == id);

            if (order != null)
            {
                order.fOrderConfirm = "2";
                db.SaveChanges();
            }
            return(RedirectToAction("sales"));
        }
        public ActionResult Complete(tOrderViewModel tOrderViewModel)
        {
            var Member = this.Member;

            if (Member == null)
            {
                Session.Clear();  //清除Session變數資料
                return(RedirectToAction("Index"));
            }

            //找出會員帳號並指定給fUserId
            string fUserId = Member.fUserId;
            //建立唯一的識別值並指定給guid變數,用來當做訂單編號
            //tOrder的fOrderGuid欄位會關聯到tOrderDetail的fOrderGuid欄位
            //形成一對多的關係,即一筆訂單資料會對應到多筆訂單明細
            string guid = Guid.NewGuid().ToString();
            //建立訂單主檔資料
            tOrder order = new tOrder();

            order.fOrderGuid = guid;
            order.fUserId    = fUserId;
            order.fReceiver  = tOrderViewModel.tOrderData.fReceiver;
            order.fEmail     = tOrderViewModel.tOrderData.fEmail;
            order.fPhone     = tOrderViewModel.tOrderData.fPhone;
            order.fAddress   = tOrderViewModel.tOrderData.fAddress;
            order.fDate      = DateTime.Now;

            //找出目前會員在訂單明細中是購物車狀態的產品
            var carList = db.tOrderDetail
                          .Where(m => m.fIsApproved == "否" && m.fUserId == fUserId)
                          .ToList();

            int totalPrice = 0;

            //將購物車狀態產品的fIsApproved設為"是",表示確認訂購產品
            foreach (var item in carList)
            {
                item.fOrderGuid  = guid;
                item.fIsApproved = "是";
                totalPrice      += item.fAmount;
            }

            //總價
            order.fTotalPrice = totalPrice;
            db.tOrder.Add(order);

            //更新資料庫,異動tOrder和tOrderDetail
            //完成訂單主檔和訂單明細的更新
            db.SaveChanges();
            //執行Home控制器的OrderList動作方法
            return(RedirectToAction("OrderList"));
        }
Example #16
0
        public ActionResult Add(QorderModel model, string idMenu, string idMeja)
        {
            tOrder order = new tOrder()
            {
                MejaId     = idMeja,
                MenuId     = idMenu,
                JumlahMenu = model.Jumlah
            };

            context.tOrders.InsertOnSubmit(order);
            context.SubmitChanges();
            return(RedirectToAction("PesanMenu"));
        }
 public string CompleteTbookData(List <tOrder> applyObj)
 {
     if (applyObj != null)
     {
         foreach (tOrder t in applyObj)
         {
             tOrder data = (from p in db.tOrder where p.forderid == t.forderid select p).FirstOrDefault();
             data.fSuccessed = t.fSuccessed;
             db.Entry(data).Property(x => x.fSuccessed).IsModified = true;
             db.Entry(data).State = System.Data.Entity.EntityState.Modified;
             db.SaveChanges();
         }
     }
     return("");
 }
        public ActionResult 會計審核(OrderViewModel checkOrder)
        {
            if (Session[CSession關鍵字.SK_LOGINED_EMPLOYEE] == null)
            {
                return(RedirectToAction("員工登入"));
            }
            MotaiDataEntities dbContext   = new MotaiDataEntities();
            tOrder            tcheckOrder = dbContext.tOrders.FirstOrDefault(p => p.OrderId == checkOrder.OrderId);

            tcheckOrder.oCheck = checkOrder.oCheck;
            var date = DateTime.Now.Date;

            checkOrder.oCheckDate = date;
            dbContext.SaveChanges();
            return(RedirectToAction("會計查詢"));
        }
 public JsonResult orderCheck(int Id)
 {
     if (Session[CSession關鍵字.SK_LOGINED_EMPLOYEE] == null)
     {
         return(Json(new { result = false, msg = "請先登入" }));
     }
     else
     {
         MotaiDataEntities dbContext = new MotaiDataEntities();
         tOrder            order     = dbContext.tOrders.Where(o => o.OrderId.Equals(Id)).FirstOrDefault();
         order.oCheck     = "checked";
         order.oCheckDate = DateTime.Now;
         dbContext.SaveChanges();
         return(Json(new { msg = "審核成功", url = Url.Action("會計查詢", "Accountant") }));
     }
 }
Example #20
0
        public ActionResult Delete(OrderModel model)
        {
            try
            {
                // TODO: Add delete logic here

                tOrder order = context.tOrders.Where(some => some.IdOrder == model.IdOrder).SingleOrDefault();

                context.tOrders.DeleteOnSubmit(order);
                context.SubmitChanges();
                return(RedirectToAction("Index"));
            }
            catch
            {
                return(View());
            }
        }
Example #21
0
        public ActionResult Edit(int id) //修改訂單
        {
            //撈回empID
            SelectList getempList = new SelectList(this.getempList(), "fEmployeeID", "fName");

            ViewBag.theempList = getempList;
            //撈回customerID
            SelectList getcustList = new SelectList(this.getcustList(), "fCustomerID", "fCompanyName");

            ViewBag.thecustList = getcustList;

            tOrder order = db.tOrders.First(p => p.fOrderID == id);

            //customerlist(order.fCustomerID.Value);
            if (order == null)
            {
                return(RedirectToAction("sales"));
            }
            return(View(order));
        }
Example #22
0
        public ActionResult Create(OrderModel model)
        {
            try
            {
                // TODO: Add insert logic here
                tOrder order = new tOrder()
                {
                    MejaId     = model.MejaId,
                    MenuId     = model.MenuId,
                    JumlahMenu = model.JumlahMenu
                };

                context.tOrders.InsertOnSubmit(order);
                context.SubmitChanges();
                return(RedirectToAction("Create"));
            }
            catch
            {
                return(View(model));
            }
        }
        public ActionResult 出貨單建立(ShipCreateModel ShipList)
        {
            MotaiDataEntities dbContext = new MotaiDataEntities();

            if (Session[CSession關鍵字.SK_LOGINED_EMPLOYEE] != null)
            {
                tEmployee employee = Session[CSession關鍵字.SK_LOGINED_EMPLOYEE] as tEmployee;
                tShipList Shiplist = new tShipList();
                Shiplist.sEmployeeId      = employee.EmployeeId;
                Shiplist.sShipSerialValue = ShipList.sShipSerialValue;
                Shiplist.sOrderId         = ShipList.SelectOrder;
                Shiplist.sShipDate        = ShipList.sShipDate;
                Shiplist.sShipNote        = ShipList.sShipNote;
                dbContext.tShipLists.Add(Shiplist);
                dbContext.SaveChanges();
                for (int i = 0; i < ShipList.WareHouseId.Count; i++)
                {
                    if (ShipList.ShipProductQty[i] != 0)
                    {
                        tShipDetail tShipdetail = new tShipDetail();
                        tShipdetail.ShipId           = dbContext.tShipLists.OrderByDescending(s => s.ShipId).First().ShipId;
                        tShipdetail.sOrderDetailId   = ShipList.OrderDetailId[i];
                        tShipdetail.sProductId       = ShipList.ProductId[i];
                        tShipdetail.sQuantity        = ShipList.ShipProductQty[i];
                        tShipdetail.sWarehouseNameId = ShipList.WareHouseId[i];
                        dbContext.tShipDetails.Add(tShipdetail);
                        //倉儲變動
                        tWarehouse Warehouse = dbContext.tWarehouses.Where(w => w.WarehouseNameId == tShipdetail.sWarehouseNameId && w.wProductId == tShipdetail.sProductId).FirstOrDefault();
                        if (Warehouse != null)
                        {
                            Warehouse.wPQty -= ShipList.ShipProductQty[i];
                        }
                    }
                }
                tOrder order = dbContext.tOrders.Where(o => o.OrderId == Shiplist.sOrderId).FirstOrDefault();
                order.oDeliverDate = ShipList.sShipDate;
                dbContext.SaveChanges();
            }
            return(RedirectToAction("出貨單查詢"));
        }
Example #24
0
        // POST: api/ApiOrder
        public int Post(tOrder o)
        {
            int n = 0;

            try
            {
                dbmyDBEntities db = new dbmyDBEntities();

                if (string.IsNullOrEmpty(o.fAddress))
                {
                    return(n);
                }
                db.tOrder.Add(o);
                n = db.SaveChanges();
            }
            catch (Exception ex)
            {
                n = 0;
            }

            return(n);
        }
Example #25
0
        public ActionResult Edit(OrderModel model)
        {
            try
            {
                // TODO: Add update logic here
                tOrder order = context.tOrders.Where(some => some.IdOrder == model.IdOrder).SingleOrDefault();

                order.MejaId     = model.MejaId;
                order.MenuId     = model.MenuId;
                order.JumlahMenu = model.JumlahMenu;

                context.SubmitChanges();
                return(RedirectToAction("Index"));
            }
            catch
            {
                OrderModel modela = new OrderModel();

                PreparePublisher(model);
                return(View(model));
            }
        }
Example #26
0
        public ActionResult Edit(tOrder p, string ODConfirm)//修改訂單儲存
        {
            //dbMSIT126Team02Entities3 db = new dbMSIT126Team02Entities3();
            tOrder order = db.tOrders.First(m => m.fOrderID == p.fOrderID);

            if (order == null)
            {
                return(RedirectToAction("sales"));
            }
            order.fCrackFee      = p.fCrackFee;
            order.fCustomerID    = p.fCustomerID;
            order.fDeliverDate1  = p.fDeliverDate1;
            order.fDeliverDate2  = p.fDeliverDate2;
            order.fDeliverDate3  = p.fDeliverDate3;
            order.fDeliverDate4  = p.fDeliverDate4;
            order.fDoorFee       = p.fDoorFee;
            order.fEmployeeID    = p.fEmployeeID;
            order.fGetMoneyBack1 = p.fGetMoneyBack1;
            order.fGetMoneyBack2 = p.fGetMoneyBack2;
            order.fGetMoneyBack3 = p.fGetMoneyBack3;
            order.fGetMoneyBack4 = p.fGetMoneyBack4;
            order.fGlassFee      = p.fGlassFee;
            order.fMaterialPrice = p.fMaterialPrice;
            order.fOrderDate     = p.fOrderDate;
            order.fScreenFee     = p.fScreenFee;
            order.fWaterwayFee   = p.fWaterwayFee;
            //order.fOrderConfirm = p.fOrderConfirm;
            if (ODConfirm == "0")
            {
                order.fOrderConfirm = "0";
            }
            else
            {
                order.fOrderConfirm = "1";
            }
            db.SaveChanges();
            return(RedirectToAction("sales"));
        }
Example #27
0
 public JsonResult EditOrderRefundStatusAjax(int IDOrder, int RefundStatus)
 {
     if (ModelState.IsValid)
     {
         tOrder oldOrder = _orderRepository.Find(IDOrder);
         oldOrder.RefundStatus = RefundStatus;
         _orderRepository.InsertOrUpdate(oldOrder);
         _orderRepository.Save();
         return(Json(new {
             objectAddedName = oldOrder.tDeal.DealTitle,
             valid = true,
             Message = "Order Data was updated Succesfully"
         }));
     }
     else
     {
         return(Json(new {
             objectAddedName = "",
             valid = false,
             Message = "Fill All Fields please"
         }));
     }
 }
Example #28
0
        public ActionResult Order(tOrder vOrder)
        {
            string uid = User.Identity.Name;

            var order = new tOrder
            {
                fReceiverAddress = vOrder.fReceiverAddress,
                fOrderDate       = DateTime.Now,
                fOrderState      = "未出貨",
                fReceiver        = vOrder.fReceiver,
                fReceiverPhone   = vOrder.fReceiverPhone,
                fUId             = uid
            };

            db.tOrder.Add(order);
            db.SaveChanges();

            var shoppings = db.tShoppingCar.Where(e => e.fUId == uid).ToList();

            var details = shoppings.Select(e =>
                                           new tOrderDetails
            {
                fOrderId = order.fOrderId,
                fPId     = e.fPId,
                fPName   = e.fPName,
                fPrice   = e.fPrice,
                fQty     = e.fQty
            }).ToList();

            db.tOrderDetails.AddRange(details);
            db.tShoppingCar.RemoveRange(shoppings);

            db.SaveChanges();

            return(RedirectToAction("OrderList"));
        }
Example #29
0
        //網購寫入訂單
        public string webOrder(WebPay payData)
        {
            if (Session[CSession關鍵字.SK_LOGINED_CUSTOMER] != null)
            {
                tCustomer cust = Session[CSession關鍵字.SK_LOGINED_CUSTOMER] as tCustomer;

                MotaiDataEntities dbContext      = new MotaiDataEntities();
                List <tStatu>     StatuList      = dbContext.tStatus.Where(s => s.sCustomerId.Equals(cust.CustomerId)).ToList();
                string            szHtml         = String.Empty;
                string            szErrorMessage = String.Empty;
                List <string>     enErrors       = new List <string>();
                try
                {
                    using (AllInOne oPayment = new AllInOne())
                    {
                        /* 服務參數 */
                        oPayment.ServiceMethod = AllPay.Payment.Integration.HttpMethod.HttpPOST;
                        oPayment.ServiceURL    = "https://payment-stage.opay.tw/Cashier/AioCheckOut/V5";
                        oPayment.HashKey       = "5294y06JbISpM5x9";
                        oPayment.HashIV        = "v77hoKGq4kWxNNIS";
                        oPayment.MerchantID    = "2000132";
                        /* 基本參數 */
                        string baseURI = Request.Url.Scheme + "://" + Request.Url.Authority;
                        if (payData.payType == 2)
                        {
                            oPayment.Send.ReturnURL = baseURI + Url.Action("orderCredit", "Order");
                        }
                        else
                        {
                            oPayment.Send.ReturnURL = baseURI + Url.Action("ATMpayOff", "Order");
                        }
                        oPayment.Send.ClientBackURL = baseURI;
                        //oPayment.Send.OrderResultURL = baseURI;
                        int number = (DateTime.Now.Hour * 3600 + DateTime.Now.Minute * 60 + DateTime.Now.Second) * 3;
                        oPayment.Send.MerchantTradeNo   = "MD" + DateTime.Now.Date.ToString("yyyyMMdd") + number.ToString("000000");
                        oPayment.Send.MerchantTradeDate = DateTime.Now;
                        oPayment.Send.TotalAmount       = Decimal.Parse(payData.totalPay);
                        oPayment.Send.TradeDesc         = "感謝購買墨台商品";
                        if (payData.payType == 1)
                        {
                            oPayment.Send.ChoosePayment    = PaymentMethod.ATM;
                            oPayment.SendExtend.ExpireDate = Int32.Parse("3");
                        }
                        else
                        {
                            oPayment.Send.ChoosePayment = PaymentMethod.Credit;
                        }
                        //oPayment.Send.ChoosePayment = PaymentMethod.ALL;
                        oPayment.Send.Remark            = "饒了我吧";
                        oPayment.Send.ChooseSubPayment  = PaymentMethodItem.None;
                        oPayment.Send.NeedExtraPaidInfo = ExtraPaymentInfo.No;
                        oPayment.Send.HoldTrade         = HoldTradeType.No;
                        oPayment.Send.DeviceSource      = DeviceType.PC;
                        oPayment.Send.UseRedeem         = UseRedeemFlag.No; //購物金/紅包折抵
                        oPayment.Send.IgnorePayment     = "";               // 例如財付通:Tenpay
                        // 加入選購商品資料。
                        foreach (var item in StatuList)
                        {
                            tProduct product = dbContext.tProducts.Where(p => p.ProductId.Equals(item.sProductId)).FirstOrDefault();
                            //var chg = JObject.Parse(item.Value.ToString());
                            oPayment.Send.Items.Add(new Item()
                            {
                                Name     = product.pName,
                                Price    = product.pPrice,
                                Currency = "NTD",
                                Quantity = item.sProductQty,
                                URL      = "<< 產品說明位址 >>"
                            });
                        }
                        // 當付款方式為 ALL 時,建議增加的參數。
                        if (payData.payType == 1)
                        {
                            oPayment.SendExtend.PaymentInfoURL = baseURI + Url.Action("orderATM", "Order");
                        }
                        ////攜帶參數
                        //WebOrderModel order = new WebOrderModel();
                        //order.boughtList = StatuList;
                        //order.webpay = payData;
                        //order.customer = cust;
                        //order.payDate = oPayment.Send.MerchantTradeDate;

                        //http.Session[oPayment.Send.MerchantTradeNo] = order;

                        //database產生訂單
                        tOrder newOrder = new tOrder();
                        newOrder.oCustomerId    = cust.CustomerId;
                        newOrder.oEmployeeId    = 19;
                        newOrder.oDate          = DateTime.Now;
                        newOrder.oAddress       = payData.shipAddress;
                        newOrder.oWarehouseName = 1;
                        newOrder.cNote          = oPayment.Send.MerchantTradeNo;
                        dbContext.tOrders.Add(newOrder);
                        dbContext.SaveChanges();
                        tOrder    CreateOrder = dbContext.tOrders.OrderByDescending(o => o.OrderId).FirstOrDefault();
                        tOrderPay pay         = new tOrderPay();
                        pay.oOrderId          = CreateOrder.OrderId;
                        pay.oOrderInstallment = 1;
                        pay.oPayType          = payData.payType;
                        pay.oPayment          = Convert.ToInt32(payData.totalPay);
                        pay.oPayDate          = DateTime.Now;
                        dbContext.tOrderPays.Add(pay);
                        foreach (var item in StatuList)
                        {
                            tOrderDetail orderDetail = new tOrderDetail();
                            orderDetail.oOrderId    = CreateOrder.OrderId;
                            orderDetail.oProductId  = item.sProductId;
                            orderDetail.oProductQty = item.sProductQty;
                            dbContext.tOrderDetails.Add(orderDetail);
                            dbContext.tStatus.Remove(item);
                            dbContext.SaveChanges();
                        }
                        dbContext.SaveChanges();
                        /* 產生訂單 */
                        enErrors.AddRange(oPayment.CheckOut());
                        /* 產生產生訂單 Html Code 的方法 */
                        //string szHtml = String.Empty;
                        enErrors.AddRange(oPayment.CheckOutString(ref szHtml));
                    }
                }
                catch (Exception ex)
                {
                    // 例外錯誤處理。
                    enErrors.Add(ex.Message);
                }
                finally
                {
                    // 顯示錯誤訊息。
                    if (enErrors.Count() > 0)
                    {
                        szErrorMessage = String.Join("\\r\\n", enErrors);
                    }
                }
                if (enErrors.Count() == 0)
                {
                    return(szHtml);
                }
                else
                {
                    return(szErrorMessage);
                }
            }
            return(String.Empty);
        }
Example #30
0
        //網購傳回ATM訂單
        public void orderATM(string callback)
        {
            MotaiDataEntities dbContext  = new MotaiDataEntities();
            List <string>     enErrors   = new List <string>();
            Hashtable         htFeedback = null;

            try
            {
                using (AllInOne oPayment = new AllInOne())
                {
                    oPayment.HashKey = "5294y06JbISpM5x9";
                    oPayment.HashIV  = "v77hoKGq4kWxNNIS";
                    /* 取回付款結果 */
                    enErrors.AddRange(oPayment.CheckOutFeedback(ref htFeedback));
                }
                // 取回所有資料
                if (enErrors.Count() == 0)
                {
                    /* 支付後的回傳的基本參數 */
                    string szMerchantID      = String.Empty;
                    string szMerchantTradeNo = String.Empty;
                    string szPaymentType     = String.Empty;
                    string szRtnCode         = String.Empty;
                    string szRtnMsg          = String.Empty;
                    string szTradeAmt        = String.Empty;
                    string szTradeDate       = String.Empty;
                    string szTradeNo         = String.Empty;
                    string szBankCode        = String.Empty;
                    string szVirtualAccount  = String.Empty;
                    string szExpireDate      = String.Empty;
                    // 取得資料
                    foreach (string szKey in htFeedback.Keys)
                    {
                        switch (szKey)
                        {
                        /* 支付後的回傳的基本參數 */
                        case "MerchantID": szMerchantID = htFeedback[szKey].ToString(); break;

                        case "MerchantTradeNo": szMerchantTradeNo = htFeedback[szKey].ToString();
                            break;

                        case "RtnCode": szRtnCode = htFeedback[szKey].ToString(); break;

                        case "RtnMsg": szRtnMsg = htFeedback[szKey].ToString(); break;

                        case "TradeNo": szTradeNo = htFeedback[szKey].ToString(); break;

                        case "TradeAmt": szTradeAmt = htFeedback[szKey].ToString(); break;

                        case "PaymentType": szPaymentType = htFeedback[szKey].ToString(); break;

                        case "TradeDate": szTradeDate = htFeedback[szKey].ToString(); break;

                        case "BankCode": szBankCode = htFeedback[szKey].ToString(); break;

                        case "vAccount": szVirtualAccount = htFeedback[szKey].ToString(); break;

                        case "ExpireDate": szExpireDate = htFeedback[szKey].ToString(); break;

                        default:
                            break;
                        }
                    }
                    WebOrderModel Trade = Session[szMerchantTradeNo] as WebOrderModel;
                    //先建訂單
                    tOrder newOrder = new tOrder();
                    newOrder.oCustomerId    = Trade.customer.CustomerId;
                    newOrder.oDate          = Trade.payDate;
                    newOrder.oAddress       = Trade.webpay.shipAddress;
                    newOrder.oWarehouseName = 1;
                    dbContext.tOrders.Add(newOrder);
                    dbContext.SaveChanges();
                    tOrder CreateOrder = dbContext.tOrders.OrderByDescending(o => o.OrderId).FirstOrDefault();
                    foreach (var item in Trade.boughtList)
                    {
                        tOrderDetail orderDetail = new tOrderDetail();
                        orderDetail.oOrderId    = CreateOrder.OrderId;
                        orderDetail.oProductId  = item.sProductId;
                        orderDetail.oProductQty = item.sProductQty;
                        dbContext.tOrderDetails.Add(orderDetail);
                        dbContext.tStatus.Remove(item);
                    }
                    dbContext.SaveChanges();
                }
                else
                {
                    // 其他資料處理。
                }
            }
            catch (Exception ex)
            {
                // 例外錯誤處理。
                enErrors.Add(ex.Message);
            }
            finally
            {
                this.Response.Clear();
                // 回覆成功訊息。
                if (enErrors.Count() == 0)
                {
                    this.Response.Write("1|OK");
                }
                // 回覆錯誤訊息。
                else
                {
                    this.Response.Write(String.Format("0|{0}", String.Join("\\r\\n", enErrors)));
                }
                this.Response.Flush();
                this.Response.End();
            }
        }
Example #31
0
 public void SaveOrder(tOrder order)
 {
     mmEntities.tOrders.Add(order);
     mmEntities.SaveChanges();
 }