Example #1
0
        private void LoadOrder()
        {
            OrderInfoDto order = null;

            if (!string.IsNullOrEmpty(OrderNumber))
            {
                using (IUnitOfWork uow = UnitOfWorkFactory.Instance.Start(DataStoreResolver.CRMDataStoreKey))
                {
                    OrderFacade facade = new OrderFacade(uow);
                    order = facade.RetrieveOrderInfo(OrderNumber, new OrderInfoConverter());
                }

                if (order != null)
                {
                    lblMsg.Visible  = false;
                    ucOrder.Visible = true;
                    ucOrder.LoadData(order);
                }
                else
                {
                    lblMsg.Visible  = true;
                    ucOrder.Visible = false;
                }
            }
        }
Example #2
0
        public Order ScaffoldOrderForCreation(OrderInfoDto customerInfo, BasketForPaymentDto basketForPaymentDto)
        {
            var result = new Order()
            {
                OrderRef     = Guid.NewGuid(),
                Name         = customerInfo.Name,
                SurName      = customerInfo.SurName,
                Street       = customerInfo.Street,
                PostCode     = customerInfo.PostCode,
                Phone        = customerInfo.Phone,
                Email        = customerInfo.Email,
                City         = customerInfo.City,
                Country      = customerInfo.Country,
                DeliveryType = customerInfo.DeliveryType,
                OrderPrice   = basketForPaymentDto.BasketPrice,
                StripeRef    = basketForPaymentDto.StripeRef,
                OrderStocks  = basketForPaymentDto.BasketProducts.Select(x => new OrderStock()
                {
                    StockId  = x.StockId,
                    Quantity = x.StockQty,
                    Price    = _ctx.Stocks.Include(s => s.Product).FirstOrDefault(s => s.Id == x.StockId).Product.Price
                }).ToList()
            };


            return(result);
        }
Example #3
0
        public IActionResult Index(string basketCurrentUserId, OrderInfoDto orderInfoDto)
        {
            var _basketModel = _servicesManager.Baskets.GetBasketsList().Where(b => b.CurrentUser == basketCurrentUserId && b.isProcessed == false);

            EmailService emailService = new EmailService();

            string emailText = "<div>Firstname: " + orderInfoDto.FirstName + "</div><div>Lastname: " + orderInfoDto.LastName + "</div><div>Phone: " + orderInfoDto.PhoneNum +
                               "</div><div>Email: " + orderInfoDto.Email + "</div><div>";
            int totalPrice = 0;

            foreach (var item in _basketModel)
            {
                if (item.CurrentUser == basketCurrentUserId && item.isProcessed == false)
                {
                    var clothesModel = _servicesManager.Clothes.GetClothesModelById(item.ClothesId);
                    emailText        = emailText + "<div>Clothes name: " + clothesModel.Name + " Price:" + clothesModel.Price + "$</div>";
                    totalPrice      += clothesModel.Price;
                    item.isProcessed = true;
                }
                _servicesManager.Baskets.UpdateBasketsDtoToDb(item);
            }
            emailText += "<div style=\"font-weight:bold\">Total price: " + totalPrice.ToString() + "</div></div>";
            emailService.SendEmail(orderInfoDto.Email, "CasualShop Order",
                                   emailText);
            return(RedirectToAction("Index", "Shop"));
        }
Example #4
0
        protected void ucOrder_OrderChanged(object sender, InstanceChangedEventArgs e)
        {
            LoadListsData();
            OrderInfoDto order = e.Instance as OrderInfoDto;

            LoadSelectedOrder(order.OrderId);
        }
Example #5
0
        public void LoadData(OrderInfoDto order)
        {
            lvItems.DataSource = order.OrderItems;
            lvItems.DataBind();

            lblQtyOrderedTotal.Text = order.QtyOrderedTotal.ToString();
            lblTotalAmount.Text     = order.Amount.ToString();
        }
Example #6
0
 private void LoadOrderInfo(OrderInfoDto order)
 {
     if (order != null)
     {
         ucOrder.Visible = true;
         ucOrder.Order   = order;
         ucOrder.LoadData();
     }
 }
Example #7
0
 private DeliveryInfo getDeliveryInfo(OrderInfoDto orderInfoDto)
 {
     var result = orderInfoDto.delivery;
     result.abcd = orderInfoDto.abcd;
     result.orderid = orderInfoDto.orderid;
     result.prescriptionid = orderInfoDto.prescriptionid;
     result.createtime = DateTime.Now;
     return result;
 }
Example #8
0
 private InvoiceInfo getInoviceInfo(OrderInfoDto orderInfoDto)
 {
     var result = orderInfoDto.invoice;
     result.abcd = orderInfoDto.abcd;
     result.orderid = orderInfoDto.orderid;
     result.prescriptionid = orderInfoDto.prescriptionid;
     result.createtime = DateTime.Now;
     return result;
 }
Example #9
0
        public async Task <int> UpdateOrder(OrderInfoDto model)
        {
            var order = await _service.QueryAsync(model.Id);

            order.UpdateTime = DateTime.Now;
            order.AcceptName = model.AcceptName;
            order.Phone      = model.Phone;
            order.Address    = model.Address;

            return(await _service.EditAsync(order));
        }
Example #10
0
        public void SaveOrderInfoDtoToDb(OrderInfoDto orderInfoDto)
        {
            OrderInfo _orderInfoDbModel;

            _orderInfoDbModel           = new OrderInfo();
            _orderInfoDbModel.FirstName = orderInfoDto.FirstName;
            _orderInfoDbModel.LastName  = orderInfoDto.LastName;
            _orderInfoDbModel.PhoneNum  = orderInfoDto.PhoneNum;
            _orderInfoDbModel.Email     = orderInfoDto.Email;

            _dataManager.OrderInfos.SaveOrderInfo(_orderInfoDbModel);
        }
Example #11
0
        private void LoadSelectedOrder(object orderId)
        {
            OrderInfoDto order = null;

            using (IUnitOfWork uow = UnitOfWorkFactory.Instance.Start(DataStoreResolver.CRMDataStoreKey))
            {
                OrderFacade facade = new OrderFacade(uow);
                order = facade.RetrieveOrderInfo(orderId, new OrderInfoConverter());
                order.OrderCommands = facade.GetOrderCommands(order.StatusId);
            }

            LoadOrderInfo(order);
        }
        public ActionResult ClientValidation()
        {
            OrderInfoDto dto =
                new OrderInfoDto
                {
                    OrderInfoID = 1,
                    Delay = null,
                    DeliveryDate = null,
                    OrderDateTime = null
                };

            return View(dto);
        }
        public ActionResult ClientValidation()
        {
            OrderInfoDto dto =
                new OrderInfoDto
            {
                OrderInfoID   = 1,
                Delay         = null,
                DeliveryDate  = null,
                OrderDateTime = null
            };

            return(View(dto));
        }
Example #14
0
 public async Task <int> AddOrder(OrderInfoDto model)
 {
     return(await _service.AddAsync(new OrderInfo()
     {
         PayState = model.PayState,
         UserId = model.UserId,
         Phone = model.Phone,
         Address = model.Address,
         AcceptName = model.AcceptName,
         TotalPrice = model.TotalPrice,
         PayType = model.PayType
     }));
 }
Example #15
0
        public List <OrderInfoDto> CreateOrdersFromCart(CartDto cart, ShipToDto shipTo)
        {
            ArgumentValidator.IsNotNull("cart", cart);
            ArgumentValidator.IsNotNull("shipTo", shipTo);

            List <OrderInfoDto> orders = new List <OrderInfoDto>();
            // validate cart
            bool isValid = Validate(cart);

            if (isValid)
            {
                IEnumerable <object> supplierIds = cart.CartItems.Select(o => o.SupplierId).Distinct();

                int orderNo = 0;
                foreach (object supplierId in supplierIds)
                {
                    orderNo++;
                    OrderInfoDto order = new OrderInfoDto();
                    order.OrderNumber = orderNo.ToString();
                    order.SupplierId  = supplierId;
                    order.ShipTo      = shipTo;

                    order.OrderItems = new List <OrderItemInfoDto>();
                    foreach (CartItemDto cartItem in cart.CartItems)
                    {
                        // filter by supplierId
                        if (object.Equals(cartItem.SupplierId, supplierId))
                        {
                            order.SupplierName = cartItem.SupplierName;
                            OrderItemInfoDto orderItem = new OrderItemInfoDto();
                            order.OrderItems.Add(orderItem);
                            orderItem.ProductId   = cartItem.ProductId;
                            orderItem.ProductName = cartItem.ProductName;
                            orderItem.QtyOrdered  = cartItem.QtyOrdered;
                            orderItem.UnitPrice   = cartItem.UnitPrice;
                            orderItem.Amount      = cartItem.Amount;
                        }
                    }

                    order.QtyOrderedTotal = order.OrderItems.Sum(o => o.QtyOrdered);
                    order.Amount          = order.OrderItems.Sum(o => o.Amount);

                    if (order.QtyOrderedTotal > 0)
                    {
                        orders.Add(order);
                    }
                }
            }

            return(orders);
        }
Example #16
0
        public IActionResult OrderInfoList(int pageIndex = 1)
        {
            int pageSize = 30;
            var openId   = HttpContext.Session.GetString("OpenId");
            var owner    = _context.Menbers.FirstOrDefault(x => x.WeChatOpenId == openId);
            var tempData = _context.Orders.Where(x => x.OwnerId == owner.Id).OrderByDescending(x => x.CreateTime);

            OrderInfoDto vm = new OrderInfoDto();

            vm.Orders    = tempData.Skip(pageIndex - 1).Take(pageSize).ToList();
            vm.PageCount = (tempData.Count() % pageSize > 0) ? ((tempData.Count() / pageSize) + 1) : (tempData.Count() / pageSize);
            vm.PageIndex = pageIndex;
            return(View(vm));
        }
Example #17
0
 private OrderInfo getOrderInfo(OrderInfoDto dto)
 {
     var result = new OrderInfo();
     result.abcd = dto.abcd;
     result.orderid = dto.orderid;
     result.prescriptionid = dto.prescriptionid;
     result.fee = dto.fee;
     result.ybfee = (dto.ybfee);
     result.ybpay = (dto.ybpay);
     result.thirdpay = (dto.thirdpay);
     result.type = dto.type;
     result.paymentstandard = dto.paymentstandard;
     result.pharmacyId = dto.pharmacyId;
     result.createtime = DateTime.Now;
     return result;
 }
Example #18
0
        public IFacadeUpdateResult <OrderData> SaveNewOrder(OrderInfoDto dto)
        {
            UnitOfWork.BeginTransaction();
            IFacadeUpdateResult <OrderData> result = OrderSystem.SaveNewOrder(dto);

            if (result.IsSuccessful)
            {
                UnitOfWork.CommitTransaction();
            }
            else
            {
                UnitOfWork.RollbackTransaction();
            }

            return(result);
        }
 public ActionResult <OrderInfoDto> OrderInfo(int signId)
 {
     using (var transaction = dataContext.Database.BeginTransaction())
     {
         var data = dataContext.Set <Order>().FirstOrDefault(x => x.Id == signId);
         {
             if (data == null)
             {
                 return(BadRequest("No info found"));
             }
             OrderInfoDto response = new OrderInfoDto();
             response.purchaseTime = data.purchaseTime;
             response.email        = data.email;
             response.address      = data.address;
             transaction.Commit();
             return(Ok(response));
         };
     }
 }
        private void LoadSelectedOrder(object orderId)
        {
            OrderInfoDto order = null;

            using (IUnitOfWork uow = UnitOfWorkFactory.Instance.Start(DataStoreResolver.CRMDataStoreKey))
            {
                OrderFacade facade = new OrderFacade(uow);
                order = facade.RetrieveOrderInfo(orderId, new OrderInfoConverter());
            }

            if (order != null)
            {
                ucOrder.Visible = true;
                ucOrder.LoadData(order);
            }
            else
            {
                ucOrder.Visible = false;
            }
        }
Example #21
0
 private void TransferOrderData(OrderInfoDto dto, Order instance)
 {
     if (dto.ShipToId == null)
     {
         instance.ShipToContactPhone  = dto.ShipTo.ContactPhone;
         instance.ShipToContactPerson = dto.ShipTo.ContactPerson;
         instance.ShipToAddress       = dto.ShipTo.AddressLine1;
         instance.ShipToZipCode       = dto.ShipTo.ZipCode;
     }
     instance.OrderNumber     = ComposeOrderNumber(instance.ShipToContactPhone, instance.TimeOrdered, dto.OrderNumber);
     instance.CustomerId      = dto.CustomerId;
     instance.ContactId       = dto.ContactId;
     instance.TimeShipped     = dto.TimeShipped;
     instance.TimeShipBy      = dto.TimeShipBy;
     instance.TimeCancelBy    = dto.TimeCancelBy;
     instance.QtyOrderedTotal = dto.QtyOrderedTotal;
     instance.Amount          = dto.Amount;
     instance.CurrencyId      = dto.CurrencyId;
     instance.SupplierId      = dto.SupplierId;
     instance.ShipToId        = dto.ShipToId;
     instance.Notes           = dto.Notes;
 }
Example #22
0
        public async Task <JsonResult> UpdateOrderInfo(OrderInfoDto model)
        {
            IOrderInfoManager manager = new OrderInfoManager(new OrderInfoService());
            var result = await manager.UpdateOrder(model);

            if (result == 1)
            {
                _msg = new MsgResult()
                {
                    IsSuccess = true,
                    Info      = "修改成功"
                };
            }
            else
            {
                _msg = new MsgResult()
                {
                    IsSuccess = false,
                    Info      = "修改失败"
                };
            }
            return(Json(_msg));
        }
Example #23
0
        internal IFacadeUpdateResult <OrderData> SaveNewOrder(OrderInfoDto dto)
        {
            ArgumentValidator.IsNotNull("dto", dto);

            FacadeUpdateResult <OrderData> result = new FacadeUpdateResult <OrderData>();
            IOrderService service = UnitOfWork.GetService <IOrderService>();
            // Create Order
            Order instance = service.CreateNew <Order>();

            TransferOrderData(dto, instance);
            // Create OrderItems
            foreach (OrderItemInfoDto itemDto in dto.OrderItems)
            {
                OrderItem item = instance.OrderItems.AddNewBo();
                TransferOrderItemData(itemDto, item);
            }
            // Save
            var saveQuery = service.Save(instance);

            result.AttachResult(instance.RetrieveData <OrderData>());
            result.Merge(saveQuery);

            return(result);
        }
Example #24
0
        public IActionResult Index()
        {
            var model = new OrderInfoDto();

            return(View(model));
        }
Example #25
0
        public async Task <IActionResult> Charge([FromHeader(Name = "Stripe-Token")] string stripeToken, OrderInfoDto customerInfo)
        {
            var basketJson = HttpContext.Session.GetString("Basket");

            if (string.IsNullOrEmpty(basketJson))
            {
                return(BadRequest("Basket Cookie is empty"));
            }

            var basketProductsCookie = JsonConvert.DeserializeObject <List <ProductFromBasketCookieDto> >(basketJson);

            if (!await _synchronizeBasket.Do(HttpContext.Session, basketProductsCookie) && !_synchronizeBasket.MissingStocks.Any())
            {
                return(BadRequest("Stocks in Basket are not able to be assign to that Session"));
            }

            var productsFromRepo = await _unitOfWork.StockOnHold.GetStockOnHoldWithProductForCharge(HttpContext.Session, basketProductsCookie);

            if (productsFromRepo.Count < 1)
            {
                return(BadRequest("Error occured during retrieving data products from Database"));
            }

            decimal basketPrice = _countOrderPrice.Do(productsFromRepo);

            var basketForPaymentDto = _createCharge.Do(stripeToken, basketPrice, basketProductsCookie);

            var order = _unitOfWork.Order.ScaffoldOrderForCreation(customerInfo, basketForPaymentDto);

            // var stockIdWithQtyToRemove = productsFromRepo.ToDictionary(s => s.StockId, s => s.StockQty);

            // await _unitOfWork.Stock.RemoveStockQty(stockIdWithQtyToRemove);

            await _unitOfWork.StockOnHold.DeleteRangeAsync(s => s.SessionId == HttpContext.Session.Id);

            _unitOfWork.Order.Add(order);

            if (await _unitOfWork.SaveAsync())
            {
                Response.Cookies.Delete("Basket");
                //TODO Replace that
                return(Ok(201));
            }


            return(BadRequest("Something went wrong during saving Order"));
        }
 public void LoadData(OrderInfoDto order)
 {
     Order = order;
     LoadData();
 }
 public ActionResult ClientValidation(OrderInfoDto dto)
 {
     return(View(dto));
 }
 public ActionResult ClientValidation(OrderInfoDto dto)
 {
     return View(dto);
 }
Example #29
0
        /// <summary>
        /// 用户在线下单
        /// </summary>
        /// <param name="orderInfo">订单信息</param>
        /// <returns></returns>
        public async Task CreateOrder(OrderInfoDto orderInfo)
        {
            var context = new Model.LogisticsContext();

            using (var transaction = context.Database.BeginTransaction())
            {
                try
                {
                    //创建订单
                    var order = new Model.Order()
                    {
                        BarCode        = orderInfo.BarCode,
                        Region         = orderInfo.Region,
                        StartWebsiteId = orderInfo.StartWebsiteId
                    };
                    context.Set <Model.Order>().Add(order);
                    await context.SaveChangesAsync();

                    //添加寄件人信息
                    var cargoSender = new Model.CargoSender()
                    {
                        OrderId       = order.Id,
                        Name          = orderInfo.SName,
                        MobliePhone   = orderInfo.SMobliePhone,
                        Provinces     = orderInfo.SProvince,
                        DetailAddress = orderInfo.SAddress,
                        PostCode      = orderInfo.SPostCode,
                        TelPhone      = orderInfo.STelPhone,
                        FirmName      = orderInfo.SFirmName,
                        Location      = orderInfo.SLocation
                    };
                    context.Set <Model.CargoSender>().Add(cargoSender);
                    await context.SaveChangesAsync();

                    //添加收件人信息
                    var cargoReceiver = new Model.CargoReceiver()
                    {
                        OrderId       = order.Id,
                        Name          = orderInfo.RName,
                        MobliePhone   = orderInfo.RMobliePhone,
                        Provinces     = orderInfo.RProvince,
                        DetailAddress = orderInfo.RAddress,
                        PostCode      = orderInfo.RPostCode,
                        TelPhone      = orderInfo.RTelPhone,
                        FirmName      = orderInfo.RFirmName,
                        Location      = orderInfo.RLocation
                    };
                    context.Set <Model.CargoReceiver>().Add(cargoReceiver);
                    await context.SaveChangesAsync();

                    //创建订单明细表
                    var orderDetaile = new Model.OrderDetails()
                    {
                        OrderId       = order.Id,
                        Freight       = Convert.ToDecimal(orderInfo.Freight),
                        IsInsured     = orderInfo.IsInsured,
                        CargoName     = orderInfo.CargoName,
                        CargoWeight   = orderInfo.CargoWeight,
                        CargoVolume   = orderInfo.CargoVolume,
                        UitNum        = orderInfo.UitNum,
                        PayType       = orderInfo.PayType,
                        Mark          = orderInfo.Mark,
                        SenderId      = cargoSender.Id,
                        ReceiverId    = cargoReceiver.Id,
                        GetGoodsTime  = orderInfo.TakeTime,
                        ServiceCharge = Convert.ToDecimal(orderInfo.ServiceCharge)
                    };
                    context.Set <Model.OrderDetails>().Add(orderDetaile);
                    await context.SaveChangesAsync();

                    if (orderInfo.IsInsured)
                    {
                        var insure = new Model.InsuranceInfo()
                        {
                            OrderId   = order.Id,
                            InsurerId = cargoSender.Id,
                            Value     = orderInfo.CargoValue,
                            Risk      = orderInfo.Risk,
                            Fee       = decimal.Parse(Tools.MaverickCost.CalcInSurenceFee(Convert.ToDouble(orderInfo.CargoValue)))
                        };
                        context.Set <Model.InsuranceInfo>().Add(insure);
                        await context.SaveChangesAsync();
                    }

                    transaction.Commit();
                }
                catch (Exception errer)
                {
                    transaction.Rollback();
                    throw errer;
                }
                finally
                {
                    context.Dispose();
                }
            }
        }