예제 #1
0
        public IHttpActionResult Update(int id, [FromBody] OrderUpdateViewModel order)
        {
            if (order == null || id != order.OrderId)
            {
                return(BadRequest());
            }
            var statuses = Enum.GetValues(typeof(OrderStatus)).Cast <int>().ToArray();

            if (statuses.Contains(order.Status) == false)
            {
                return(BadRequest());
            }
            var existingOrder = ordersRepo.GetById(id);

            if (existingOrder == null || existingOrder.IsDeleted)
            {
                return(NotFound());
            }
            if (existingOrder == null || existingOrder.IsDeleted)
            {
                return(NotFound());
            }
            if (order.Status == (int)OrderStatus.Shipped)
            {
                existingOrder.Status      = (int)OrderStatus.Shipped;
                existingOrder.ShippedAt   = DateTime.Now;
                existingOrder.DeliveredAt = null;
            }
            else if (order.Status == (int)OrderStatus.Delivered)
            {
                existingOrder.Status      = (int)OrderStatus.Delivered;
                existingOrder.DeliveredAt = DateTime.Now;
            }
            else
            {
                existingOrder.Status      = (int)OrderStatus.Created;
                existingOrder.DeliveredAt = null;
                existingOrder.ShippedAt   = null;
            }
            ordersRepo.Update(existingOrder);

            return(StatusCode(HttpStatusCode.NoContent));
        }
예제 #2
0
        public async Task <IActionResult> OrderUpdate(OrderUpdateViewModel viewModel)
        {
            var orderModel = orderService.Get(viewModel.OrderID);

            if (orderModel == null)
            {
                return(View(viewModel));
            }

            var ENVIRONMENT_USER_ID = await userManager.GetUserAsync(User);

            if (ENVIRONMENT_USER_ID == null)
            {
                return(RedirectToAction("SignIn", "Login"));
            }
            orderModel.LastModifyByUser = ENVIRONMENT_USER_ID.Id;
            orderModel.LastModifyDate   = DateTime.Now;
            orderModel.DeadlineShip     = viewModel.DeadlineShip;
            orderModel.ShippingDate     = viewModel.ShippingDate;

            orderModel.Shipper = viewModel.Shipper;
            orderModel.State++;

            int isReturn = 0;

            // Execute Insert
            try
            {
                isReturn = orderService.UpdateOrder(orderModel);

                viewModel.IsError = false; // success
            }
            catch (Exception e)
            {
                viewModel.Message = e.Message;
                viewModel.IsError = true;
            }

            return(View(viewModel));
        }
예제 #3
0
        public async Task <IActionResult> OrderUpdate(int orderID)
        {
            OrderUpdateViewModel viewModel = new OrderUpdateViewModel();

            viewModel.ProductDetail = new List <ProductDetailBasicViewModel>();
            viewModel.IsError       = true;

            var ENVIRONMENT_USER_ID = await userManager.GetUserAsync(User);

            if (ENVIRONMENT_USER_ID == null)
            {
                return(RedirectToAction("SignIn", "Login"));
            }
            var role      = userManager.GetRolesAsync(ENVIRONMENT_USER_ID).Result;
            var isShipper = false;

            if (role.Contains("Shipper"))
            {
                isShipper = true;
            }

            viewModel.UserID   = ENVIRONMENT_USER_ID.Id;
            viewModel.UserName = ENVIRONMENT_USER_ID.UserName;

            Order orderModel = orderService.Get(orderID);

            if (orderModel == null)
            {
                return(View(viewModel));
            }
            viewModel.SumPrice        = orderModel.PriceSum;                          // Giá tổng
            viewModel.ShippingFee     = orderModel.ShippingFee;                       // Phí vận chuyển
            viewModel.FinalPrice      = orderModel.PriceSum + orderModel.ShippingFee; // Tổng tiền thu
            viewModel.CreateDate      = orderModel.CreateDate;
            viewModel.OrderID         = orderID;
            viewModel.State           = orderModel.State;
            viewModel.Shipper         = orderModel.Shipper;
            viewModel.ReceiverAddress = orderModel.Address;
            viewModel.ReceiverName    = orderModel.Name;
            viewModel.ReceiverPhone   = orderModel.PhoneNumber;
            if (isShipper)
            {
                viewModel.ShippingDate = (orderModel.ShippingDate == null) ? DateTime.Now : orderModel.ShippingDate;
            }
            viewModel.DeadlineShip = (orderModel.DeadlineShip == null) ? DateTime.Now : orderModel.DeadlineShip;
            IEnumerable <OrderDetail>          orderDetailModel = orderDetailService.GetListByOrder(orderID);
            List <ProductDetailBasicViewModel> productDetail    = new List <ProductDetailBasicViewModel>();

            foreach (var orderDetail in orderDetailModel)
            {
                ProductDetail detail = productDetailService.GetOne(orderDetail.ProductDetailId);
                detail.PriceNavigation = priceService.GetOne((Int32)detail.Price);
                detail.ColorNavigation = productTypeService.GetOne((Int32)detail.Color);
                detail.SizeNavigation  = productTypeService.GetOne((Int32)detail.Size);

                ProductDetailBasicViewModel product = new ProductDetailBasicViewModel(detail);
                product.PriceText    = orderDetail.Price;
                product.Quantity     = orderDetail.Quantity;
                product.ProductName  = detail.Product.Name;
                product.SumPriceText = product.PriceText * product.Quantity;
                productDetail.Add(product);
            }
            viewModel.ProductDetail = productDetail;
            viewModel.CbbShipper    = GetShippers();
            return(View(viewModel));
        }