public void CreateOrder(string CustomerId, CreateOrderView model)
        {
            //產生orderId
            string Id     = ordersRepository.GetNewId();
            var    split  = Id.Split('E');
            string numner = (Convert.ToInt32(split[1]) + 1).ToString();

            while (numner.Length < 3)
            {
                numner = "0" + numner;
            }


            var newOrder = new Orders()
            {
                OrderID          = "DE" + numner,
                CustomerID       = CustomerId,
                OrderDate        = DateTime.Now,
                ShippedDate      = null,
                PaymentMethodID  = model.PaymentMethodID,
                DeliveryMethodID = model.DeliveryMethodID,
                Status           = 0
            };

            //新增訂單
            ordersRepository.Create(newOrder);
            //新增訂單明細
            CreateOrderDetail(newOrder.OrderID, CustomerId);
        }
Пример #2
0
        public ActionResult Create(CreateOrderView createOrder)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    UserDb UserSession = (UserDb)Session["User"];
                    var    country     = db.Countries.FirstOrDefault(f => f.Id == createOrder.CountryId);
                    var    user        = db.Users.FirstOrDefault(f => f.Id == UserSession.Id);
                    if (country != null && user != null)
                    {
                        OrderDb order = new OrderDb();
                        order.CountryId = createOrder.CountryId;
                        order.UserDbId  = user.Id;
                        for (var i = 0; i < createOrder.Link.Length; i++)
                        {
                            if (String.IsNullOrWhiteSpace(createOrder.Link[i]) ||
                                String.IsNullOrWhiteSpace(createOrder.Coment[i]) ||
                                createOrder.Price[i] <= 0 || createOrder.Quantity[i] < 1)
                            {
                                ViewBag.Categories = db.Categories.ToList();
                                ViewBag.Country    = db.Countries.Where(w => w.IsActive == true).ToList();
                                return(View());
                            }
                            else
                            {
                                order.OrderName   = createOrder.OrderName[i];
                                order.Link        = createOrder.Link[i];
                                order.Price       = createOrder.Price[i] * createOrder.Quantity[i];
                                order.Quantity    = createOrder.Quantity[i];
                                order.Coment      = createOrder.Coment[i];
                                order.isUrgent    = createOrder.isUrgent[i];
                                order.CategoryId  = createOrder.CategoryId[i];
                                order.CreatedDate = DateTime.Now;
                                order.isPaid      = false;

                                db.Orders.Add(order);
                                db.SaveChanges();
                            }
                        }
                    }
                    ViewBag.Categories = db.Categories.ToList();
                    ViewBag.Country    = db.Countries.Where(w => w.IsActive == true).ToList();
                    return(RedirectToAction("IndexUser"));
                }
                ViewBag.Categories = db.Categories.ToList();
                ViewBag.Country    = db.Countries.Where(w => w.IsActive == true).ToList();
                return(View());
            }
            catch (Exception)
            {
                ViewBag.Country    = db.Countries.Where(w => w.IsActive == true).ToList();
                ViewBag.Categories = db.Categories.ToList();
                return(View());
            }
        }
 public override bool HandleCreateNew()
 {
     using (CreateOrderView frmCreateOrderView = InitCreateOrderView())
     {
         if (frmCreateOrderView.ShowDialog(this) == DialogResult.OK)
         {
             DataBind();
         }
     }
     return(false);
 }
        public void CreateTest_IsFalse()
        {
            var service = new OrdersService();
            var model   = new CreateOrderView()
            {
                PaymentMethodID  = 1,
                DeliveryMethodID = 1
            };
            string remsg = service.Create("Alison", model);

            Assert.IsTrue(remsg != "訂單成立");
        }
        public void CreateOrderTest()
        {
            var service = new OrdersService();
            var model   = new CreateOrderView()
            {
                PaymentMethodID  = 1,
                DeliveryMethodID = 1
            };

            service.CreateOrder("Doris", model);

            Assert.IsTrue(true);
        }
        public async Task <ActionResult> OrderPreview(bool Error = false)
        {
            ViewBag.Error = Error;

            CreateOrderView createOrderView = new CreateOrderView();

            double priceListTireFittingsSum = 0;

            if (TempData.ContainsKey("CreateOrder"))
            {
                createOrderView = (CreateOrderView)TempData["CreateOrder"];
                createOrderView.CarWashWorkers = Mapper.Map <IEnumerable <CarWashWorkersView> >(await _employeesFacade.ListOfEmployeesForService((int)TypeService.TireFitting)).ToList();

                var getAllAdminDay = Mapper.Map <IEnumerable <CarWashWorkersView> >(await _employeesFacade.ListOfEmployeesForService());

                ViewBag.TeamLead     = new SelectList(getAllAdminDay.Where(x => x.IdPosition <= 2), "id", "Name");
                ViewBag.Adminstrator = new SelectList(getAllAdminDay.Where(x => x.IdPosition == 4), "id", "Name");

                if (createOrderView.client != null)
                {
                    createOrderView.Client = Mapper.Map <ClientsOfCarWashView>(await _clientsOfCarWash.GetId(createOrderView.client));

                    if (createOrderView.Client.discont != null)
                    {
                        createOrderView.discontClient = createOrderView.Client.discont.Value;
                        discontClient = createOrderView.discontClient;
                    }
                }

                if (createOrderView.numberOfTires != 0 || createOrderView.priceListTireFittings != null)
                {
                    priceListTireFittingsSum = SumTireChangeService(createOrderView.priceListTireFittings, createOrderView.numberOfTires.Value);
                    createOrderView.PriceListTireFittingsSum = priceListTireFittingsSum;
                }

                double riceListTireFittingAdditionalsSum = TireServices(createOrderView.priceListTireFittingAdditionals);
                double total = (priceListTireFittingsSum + riceListTireFittingAdditionalsSum) / 100 * discontClient;

                createOrderView.Total = priceListTireFittingsSum + riceListTireFittingAdditionalsSum - total;

                TempData.Keep("CreateOrder");

                return(View(createOrderView));
            }

            return(View());
        }
Пример #7
0
        public ActionResult Chart(int DeliveryMethodID, int PaymentMethodID)
        {
            var customerId = Get_CustomerId();
            var model      = new CreateOrderView();

            model.DeliveryMethodID = DeliveryMethodID;
            model.PaymentMethodID  = PaymentMethodID;
            var str = ordersService.Create(customerId, model);

            if (str == "訂單成立")
            {
                TempData["Message"] = str;
                return(RedirectToAction("OrderList", "Customer"));
            }
            else
            {
                TempData["Message"] = str;
                return(RedirectToAction("Chart", "Customer"));
            }
        }
        //判斷是否可以新增訂單
        public string Create(string CustomerId, CreateOrderView model)
        {
            bool          IsAllStock   = true;
            List <string> NotStockName = new List <string>();

            //取得購物車資料
            var Data = cartRepository.FindById(CustomerId);

            //確認庫存
            foreach (var item in Data)
            {
                var product = productsRepository.FindById(item.ProductID);
                //購買數量大於庫存數量
                if (item.Quantity > product.Stock)
                {
                    IsAllStock = false;
                    NotStockName.Add(product.ProductName);
                }
            }

            if (IsAllStock)
            {
                //新增訂單
                CreateOrder(CustomerId, model);
                //更新產品庫存
                UpdateStock(CustomerId);
                //刪除購物車資料
                DeleteCart(CustomerId);
                return("訂單成立");
            }
            else
            {
                var str = "";
                foreach (var item in NotStockName)
                {
                    str += item + " ";
                }
                return($"{str}庫存不足");
            }
        }
        public async Task <ActionResult> SaleOfTireFittingServices(List <int> AdditionalServices, List <int> key, List <int> AdditionalServicesQuantity)
        {
            if (AdditionalServices != null)
            {
                CreateOrderView createOrderView = new CreateOrderView();

                if (key.Count != 0 && AdditionalServicesQuantity.Count != 0)
                {
                    var priceAdditionalServices = _createOrder.SaveOrder(key, AdditionalServicesQuantity);

                    createOrderView.priceListTireFittingAdditionals = Mapper.Map <List <PriceListTireFittingAdditionalServicesView> >(await _createOrder.SelectPriceServise(priceAdditionalServices, AdditionalServices));

                    TempData["CreateOrder"] = createOrderView;

                    return(RedirectToAction("OrderPreview"));
                }
            }

            return(RedirectToAction("Checkout", "ClientsOfCarWashViews", new RouteValueDictionary(new
            {
                services = (int)TypeServices.TireFitting
            })));
        }
        public async Task <ActionResult> OrderPreview(List <string> idBrigade, double Total, int idPaymentState, int idStatusOrder, int?idAdmin, int?idTeamLead)
        {
            CreateOrderView createOrderView = new CreateOrderView();

            int idOrder = 0;

            if (idStatusOrder == (int)StatusOrder.Completed && idBrigade == null)
            {
                TempData.Keep("CreateOrder");

                return(RedirectToAction("OrderPreview", "TireChangeService", new RouteValueDictionary(new
                {
                    Error = true
                })));
            }

            if (TempData.ContainsKey("CreateOrder"))
            {
                createOrderView = (CreateOrderView)TempData["CreateOrder"];

                double priceListTireFittingAdditionalsSum = 0;

                if (createOrderView.priceListTireFittingAdditionals != null)
                {
                    priceListTireFittingAdditionalsSum = createOrderView.priceListTireFittingAdditionals.Sum(x => x.TheCost).Value;
                }

                if (createOrderView.numberOfTires != 0 || createOrderView.priceListTireFittings != null)
                {
                    double TotalSum = SumTireChangeService(createOrderView.priceListTireFittings, createOrderView.numberOfTires.Value) + priceListTireFittingAdditionalsSum;
                    idOrder = await _createOrder.SaveOrderTireFitting(TotalSum, Total, idPaymentState, idStatusOrder, createOrderView.client.Value, 4);
                }
                else if (priceListTireFittingAdditionalsSum != 0)
                {
                    idOrder = await _createOrder.SaveOrderTireFitting(priceListTireFittingAdditionalsSum, Total, idPaymentState, idStatusOrder, createOrderView.client, 4);
                }

                if (createOrderView.priceListTireFittingAdditionals != null)
                {
                    List <PriceListTireFittingAdditionalServicesBll> priceListTireFittings = new List <PriceListTireFittingAdditionalServicesBll>();
                    priceListTireFittings = Mapper.Map <List <PriceListTireFittingAdditionalServicesView>, List <PriceListTireFittingAdditionalServicesBll> >(createOrderView.priceListTireFittingAdditionals);

                    await _createOrder.SeveTireService(createOrderView.client, idOrder, priceListTireFittings);
                }

                if (createOrderView.priceListTireFittings != null)
                {
                    List <PriceListTireFittingBll> listTireFittingBlls = new List <PriceListTireFittingBll>();
                    listTireFittingBlls = Mapper.Map <List <PriceListTireFittingView>, List <PriceListTireFittingBll> >(createOrderView.priceListTireFittings);

                    await _createOrder.SaveTireChangeService(idOrder, createOrderView.numberOfTires.Value, listTireFittingBlls);
                }

                var order = await _orderServices.GetId(idOrder);

                if (idBrigade != null)
                {
                    // Начисление заработной платы сотрудникам
                    await _wageModules.Payroll(order, _wageModules.ConvertListToIEnumerable(idBrigade), (int)TypeService.TireFitting);
                }

                if (idAdmin != null)
                {
                    // Начисление заработной платы Администраору
                    await _wageModules.AdminWage(order, (int)TypeService.Sales, idAdmin.Value);
                }

                if (idTeamLead != null)
                {
                    // Наичление заработной платы Тим лидеру
                    await _wageModules.AdminWage(order, (int)TypeService.TireFitting, idTeamLead.Value);
                }

                TempData.Remove("CreateOrder");

                return(RedirectToAction("../Order/Index"));
            }

            TempData.Keep("CreateOrder");

            return(View());
        }
        public async Task <ActionResult> CreateOrder(int?Client, int?NumberOfTires, int?TireRadius, List <int> Services,
                                                     List <int> AdditionalServices, List <int> key, List <int> AdditionalServicesQuantity, int?Type)
        {
            CreateOrderView createOrderView = new CreateOrderView();

            if (Client != null && NumberOfTires != null && (TireRadius != null || Services != null))
            {
                if (Services != null)
                {
                    createOrderView.priceListTireFittings = Mapper.Map <IEnumerable <PriceListTireFittingView> >(await _priceListTireFitting.SelectValueFromThePriceList(Services)).ToList();
                }

                if (TireRadius != null)
                {
                    var resultRadius = Mapper.Map <IEnumerable <PriceListTireFittingView> >(await _priceListTireFitting.SelectRadius(TireRadius.Value)).ToList();

                    if (Services != null)
                    {
                        createOrderView.priceListTireFittings = (List <PriceListTireFittingView>)createOrderView.priceListTireFittings.Concat(resultRadius);
                    }
                    else
                    {
                        createOrderView.priceListTireFittings = resultRadius;
                    }
                }

                if (AdditionalServices != null)
                {
                    if (key.Count != 0 && AdditionalServicesQuantity.Count != 0)
                    {
                        var priceAdditionalServices = _createOrder.SaveOrder(key, AdditionalServicesQuantity);

                        createOrderView.priceListTireFittingAdditionals = Mapper.Map <List <PriceListTireFittingAdditionalServicesView> >(await _createOrder.SelectPriceServise(priceAdditionalServices, AdditionalServices));
                    }
                }

                createOrderView.client        = Client;
                createOrderView.numberOfTires = NumberOfTires;

                TempData["CreateOrder"] = createOrderView;

                return(RedirectToAction("OrderPreview"));
            }
            else if (AdditionalServices != null && Client != 0 && TireRadius == null && NumberOfTires == null)
            {
                createOrderView.client = Client;

                if (key.Count != 0 && AdditionalServicesQuantity.Count != 0)
                {
                    var priceAdditionalServices = _createOrder.SaveOrder(key, AdditionalServicesQuantity);

                    createOrderView.priceListTireFittingAdditionals = Mapper.Map <List <PriceListTireFittingAdditionalServicesView> >(await _createOrder.SelectPriceServise(priceAdditionalServices, AdditionalServices));

                    TempData["CreateOrder"] = createOrderView;

                    return(RedirectToAction("OrderPreview"));
                }

                return(RedirectToAction("CreateOrder", "TireChangeService", new RouteValueDictionary(new
                {
                    IdClient = Client,
                    Error = true
                })));
            }
            else
            {
                return(RedirectToAction("CreateOrder", "TireChangeService", new RouteValueDictionary(new
                {
                    IdClient = Client,
                    Error = true
                })));
            }
        }