Ejemplo n.º 1
0
        public ResultModel OrderCreate(OrderModel model, string account)
        {
            List <ShoppingCarModel> shoppingcarlist = ShoppingCarRepository.GetCarList(account);

            if (shoppingcarlist != null)
            {
                var order = new OrderModel
                {
                    Account         = account,
                    ReceiverName    = model.ReceiverName,
                    ReceiverPhone   = model.ReceiverPhone,
                    ReceiverAddress = model.ReceiverAddress,
                    OrderDate       = DateTimeHelper.GetNowTime(),
                    OrderState      = "未出貨",
                };
                var orderid = OrderRepository.CreateAndResultIdentity <int>(order);

                /*
                 * var orderdetails = new List<OrderDetailsModel>();
                 *  foreach (var e in shoppingcarlist)
                 * {
                 *  orderdetails.Add(new OrderDetailsModel
                 *  {
                 *      OrderId = orderid,
                 *      ProductID = e.ProductID,
                 *      ProductName = e.ProductName,
                 *      Price = e.Price,
                 *      Qry = e.Qry,
                 *  );
                 * }
                 */
                var orderdetails = shoppingcarlist.Select(e => new OrderDetailsModel
                {
                    OrderId     = orderid,
                    ProductID   = e.ProductID,
                    ProductName = e.ProductName,
                    Price       = e.Price,
                    Qry         = e.Qry,
                }).ToList();
                OrderDetailsRepository.Create(orderdetails);

                var car2orderdeletelist = shoppingcarlist.Select(e => e.CarId).ToList();

                ShoppingCarRepository.Delete <int>(car2orderdeletelist);
                return(new ResultModel
                {
                    IsSuccess = true,
                    Message = "成功下單"
                });
            }

            return(new ResultModel
            {
                IsSuccess = false,
                Message = "購物車空無一物"
            });
        }
        public void TestCreate()
        {
            OrderDetails model = new OrderDetails()
            {
                OrderID   = 3,
                ProductID = 2,
                Quantity  = 3
            };
            OrderDetailsRepository ordersDetail = new OrderDetailsRepository();

            ordersDetail.Create(model);
            Assert.IsTrue(model.OrderID == 3);
        }
        //新增訂單明細
        public void CreateOrderDetail(string OrderId, string CustomerId)
        {
            var Data = cartRepository.FindById(CustomerId);

            foreach (var item in Data)
            {
                var newData = new OrderDetails()
                {
                    OrderID   = OrderId,
                    ProductID = item.ProductID,
                    Quantity  = item.Quantity,
                    Discount  = 0
                };
                orderDetailsRepository.Create(newData);
            }
        }
Ejemplo n.º 4
0
        public IActionResult Create([FromBody] OrderDetails orderdetails)
        {
            if (ModelState.IsValid)
            {
                if (orderdetails.OrderId > 0)
                {
                    Order order = new Order()
                    {
                        Id = orderdetails.OrderId, Adress = orderdetails.Address
                    };
                    orderRepository.Update(order);
                }

                orderDetailsRepository.Create(orderdetails);
                return(Ok(orderdetails));
            }
            else
            {
                ModelState.AddModelError("", "Error. Check the form data.");
            }
            return(BadRequest(new { message = "error", ModelState }));
        }
        public ActionResult Shopping5()
        {
            List <Shopping>      shopping;
            User                 user;
            ShipData             ship;
            JavaScriptSerializer JSONSerializer = new JavaScriptSerializer();

            if (Request.Cookies["shoppingcar"] != null && Request.Cookies["user"] != null && Request.Cookies["ShipData"] != null)
            {
                string json = HttpUtility.UrlDecode(Request.Cookies["shoppingcar"].Value);
                shopping = JSONSerializer.Deserialize <List <Shopping> >(json);
                string json1 = HttpUtility.UrlDecode(Request.Cookies["user"].Value);
                user = JSONSerializer.Deserialize <User>(json1);
                string json2 = HttpUtility.UrlDecode(Request.Cookies["ShipData"].Value);
                ship = JSONSerializer.Deserialize <ShipData>(json2);
                SqlConnection connection = new SqlConnection("data source=.; database=Commerce; integrated security=true");
                connection.Open();
                using (var transaction = connection.BeginTransaction())
                {
                    try
                    {
                        var order = new Orders()
                        {
                            MemberID      = user.UserID,
                            EmployeeID    = 1,
                            OrderDate     = DateTime.Now,
                            Discount      = 1,
                            ReceiptedDate = null,
                            ShipName      = ship.ShipName,
                            ShipPhone     = ship.ShipPhone,
                            ShipAddress   = ship.ShipAddress,
                            ShippedDate   = null,
                            Status        = "未出貨"
                        };
                        var orderrepository = new OrdersRepository();
                        orderrepository.Create(order, connection, transaction);
                        var memberrepository      = new MemberRepository();
                        var memberorder           = memberrepository.GetBuyerOrder(user.UserID, connection, transaction);
                        var lastordeer            = memberorder.First();
                        var orderdetailrepository = new OrderDetailsRepository();
                        foreach (var item in shopping)
                        {
                            OrderDetails od = new OrderDetails()
                            {
                                OrderID         = lastordeer.OrderID,
                                ProductFormatID = item.ProductFormatID,
                                Quantity        = item.Quantity,
                                UnitPrice       = item.UnitPrice
                            };
                            orderdetailrepository.Create(od, connection, transaction);
                        }
                        transaction.Commit();
                        return(RedirectToAction("Shopping6", "Shopping"));
                    }
                    catch (Exception)
                    {
                        transaction.Rollback();
                        return(RedirectToAction("", "Shopping"));
                    }
                }
            }
            else
            {
                return(RedirectToAction("", "Shopping"));
            }
            //做order跟orderdetail
        }
Ejemplo n.º 6
0
 public void Create(OrderDetails model)
 {
     repository.Create(model);
 }
Ejemplo n.º 7
0
        public JsonResult Order(string name, string phone, string address, string memberID, decimal totalPrice)
        {
            if (string.IsNullOrWhiteSpace(name) || string.IsNullOrWhiteSpace(phone) || string.IsNullOrWhiteSpace(address))
            {
                return(Json("填空區不可有空白"));
            }
            else
            {
                if (Regex.Match(name, @"[\u3000-\u9FA5\x20]{2,4}").Success)
                {
                    if (Regex.Match(phone, @"(\(?\d{3,4}\)?)?[\s-]?\d{7,8}[\s-]?\d{0,4}").Success)
                    {
                        ShoppingCartRepository  shoppingCartRepository  = new ShoppingCartRepository();
                        OrdersRepository        ordersRepository        = new OrdersRepository();
                        EmployeesRepository     employeesRepository     = new EmployeesRepository();
                        ProductFormatRepository productFormatRepository = new ProductFormatRepository();
                        OrderDetailsRepository  orderDetailsRepository  = new OrderDetailsRepository();
                        ProductRepository       productRepository       = new ProductRepository();
                        var employees    = employeesRepository.GetAll();
                        var randomNumber = new Random().Next(0, employees.Count());


                        Orders orders = new Orders()
                        {
                            EmployeeID  = employees.ElementAt(randomNumber).EmployeeID,
                            MemberID    = memberID,
                            ShipName    = name,
                            ShipAddress = address,
                            ShipPhone   = phone,
                            OrderDate   = DateTime.Now,
                            Status      = "未送貨",
                            TotalPrice  = totalPrice
                        };

                        ordersRepository.Create(orders);
                        Procedure.Procedure procedure = new Procedure.Procedure();
                        var orderTempID = procedure.FindOrderID(memberID);

                        var shoppingCart = shoppingCartRepository.FindByMemberID(memberID);
                        Stack <OrderDetails> orderData = new Stack <OrderDetails>();
                        orderData.Clear();
                        foreach (var item in shoppingCart)
                        {
                            if (productFormatRepository.FindById(item.ProductFormatID).StockQuantity - item.Quantity >= 0)
                            {
                                OrderDetails orderDetails = new OrderDetails()
                                {
                                    OrderID         = orderTempID.OrderID,
                                    ProductFormatID = item.ProductFormatID,
                                    Quantity        = item.Quantity,
                                    UnitPrice       = productRepository.FindById(item.ProductID).UnitPrice
                                };
                                orderData.Push(orderDetails);
                            }
                            else
                            {
                                var productFormatTemp = productFormatRepository.FindById(item.ProductFormatID);
                                var productTemp       = productRepository.FindById(productFormatTemp.ProductID);


                                return(Json("產品:" + productTemp.ProductName + Environment.NewLine +
                                            "顏色:" + productFormatTemp.Color + Environment.NewLine +
                                            "尺寸:" + productFormatTemp.Size + Environment.NewLine +
                                            "剩餘數量:" + productFormatTemp.StockQuantity + Environment.NewLine +
                                            "請重新下訂!"));
                            }
                        }

                        foreach (var orderItem in orderData)
                        {
                            orderDetailsRepository.Create(orderItem);
                        }

                        shoppingCartRepository.DeleteByMemberId(memberID);

                        return(Json("下訂成功"));
                    }
                    else
                    {
                        return(Json("電話格式有誤"));
                    }
                }
                else
                {
                    return(Json("姓名不符合格式"));
                }
            }
        }
Ejemplo n.º 8
0
        public string ConfirmOrders(List <ShoppingcartDetails> shoppingcar, Order order)//新增訂單
        {
            var shoppingcarRepository  = new ShoppingcartDetailsRepository();
            var productsRepository     = new ProductsRepository();
            var orderRepository        = new OrderRepository();
            var orderDetailsRepository = new OrderDetailsRepository();

            SqlConnection connection = new SqlConnection(sqlstr);

            connection.Open();
            var transactition = connection.BeginTransaction();

            try
            {
                foreach (var item in shoppingcar)//每一件是否都有庫存
                {
                    var stock = productsRepository.CheckStock(item.ProductID, item.Quantity);
                    if (!stock)
                    {
                        return($"{item.ProductID}");
                    }
                }

                orderRepository.Create(order);//新增訂單



                var orderid = orderRepository.FindLastOrderByCustomerID(order.CustomerID);
                foreach (var item in shoppingcar)//新增訂單明細
                {
                    var orderDetails = new OrderDetails()
                    {
                        OrderID   = orderid,
                        ProductID = item.ProductID,
                        Quantity  = item.Quantity
                    };
                    orderDetailsRepository.Create(orderDetails);
                }
                //扣庫存
                foreach (var item in shoppingcar)
                {
                    var product = new Products()
                    {
                        ProductID = item.ProductID
                    };
                    productsRepository.UpdateStockPminus(product, item.Quantity);
                }
                //刪購物車內容
                //先判斷購物車商品數量與訂單商品數量

                shoppingcarRepository.DeleteAllForUser(order.CustomerID);

                transactition.Commit();
            }
            catch (SqlException e)
            {
                transactition.Rollback();
                return(e.Message);
            }
            connection.Close();

            return("OrderSuccess");
        }