예제 #1
0
        public void ShouldCallAddAddressMethodFromAddressesService(string userId,
                                                                   string street,
                                                                   string city,
                                                                   string country,
                                                                   string phoneNumber,
                                                                   OrderPaymentStatusType orderPaymentStatusType,
                                                                   OrderStatusType orderStatusType)
        {
            // Arrange
            var sendOn = new DateTime(2017, 4, 6);

            // Act
            this.mockedView.Raise(v => v.CheckingOut += null, new CheckOutEventArgs(userId,
                                                                                    street,
                                                                                    city,
                                                                                    country,
                                                                                    phoneNumber,
                                                                                    sendOn,
                                                                                    orderPaymentStatusType,
                                                                                    orderStatusType));

            // Assert
            this.mockedAddressesService.Verify(ads =>
                                               ads.AddAddress(this.address), Times.Once);
        }
예제 #2
0
        public void ShouldCallCreateOrderMethodFromOrdersFactory(string userId,
                                                                 string street,
                                                                 string city,
                                                                 string country,
                                                                 string phoneNumber,
                                                                 OrderPaymentStatusType orderPaymentStatusType,
                                                                 OrderStatusType orderStatusType)
        {
            // Arrange
            var sendOn = new DateTime(2017, 4, 6);

            // Act
            this.mockedView.Raise(v => v.CheckingOut += null, new CheckOutEventArgs(userId,
                                                                                    street,
                                                                                    city,
                                                                                    country,
                                                                                    phoneNumber,
                                                                                    sendOn,
                                                                                    orderPaymentStatusType,
                                                                                    orderStatusType));

            // Assert
            this.mockedOrdersFactory.Verify(of => of.CreateOrder(userId,
                                                                 this.user,
                                                                 sendOn,
                                                                 this.shoppingCart.Total,
                                                                 this.address.Id,
                                                                 this.address,
                                                                 phoneNumber,
                                                                 orderPaymentStatusType,
                                                                 orderStatusType), Times.Once);
        }
예제 #3
0
        /// <summary>
        ///     系统状态类型名称转换
        /// </summary>
        public static string ToCaption(this OrderStatusType value)
        {
            switch (value)
            {
            case OrderStatusType.PendingPayment:
                return("待支付");

            case OrderStatusType.FullPayment:
                return("全额付款");

            case OrderStatusType.RefundApply:
                return("退款申请");

            case OrderStatusType.OrderOvertimeShutdown:
                return("订单超时失败");

            case OrderStatusType.ProductChangeShutown:
                return("商品信息变更失败");

            case OrderStatusType.StockShutown:
                return("库存不足失败");

            case OrderStatusType.InitiativeRefund:
                return("主动退款完成关闭");

            default:
                return("系统状态类型(错误)");
            }
        }
예제 #4
0
 public WebOrderRespondVo(WebOrder webOrder)
 {
     if (null != webOrder)
     {
         TradeNo               = webOrder.TradeNo;
         ExternalTradeNo       = webOrder.ExternalTradeNo;
         BuyTime               = webOrder.BuyTime;
         IsWebOrderVaild       = true;
         PaymentVendor         = webOrder.PaymentVendor;
         OriAFCStationCode     = webOrder.OriAFCStationCode;
         DesAFCStationCode     = webOrder.DesAFCStationCode;
         OriStationChineseName = String.Empty;
         DesStationChineseName = String.Empty;
         OriStationEnglishName = String.Empty;
         DesStationEnglishName = String.Empty;
         TicketPrice           = webOrder.TicketPrice;
         TicketNum             = webOrder.TicketNum;
         Discount              = webOrder.Discount;
         ActualFee             = 0;
         if (null != webOrder.ActualFee)
         {
             ActualFee = webOrder.ActualFee.Value;
         }
         TicketTarget = TicketTargetType.NONE;
         if (!String.IsNullOrEmpty(webOrder.TicketTarget))
         {
             try
             {
                 TicketTarget = EnumHelper.GetTicketTargetType(webOrder.TicketTarget);
             }
             catch (Exception)
             { }
         }
         TransactionId = webOrder.TransactionId;
         PayEndTime    = webOrder.PayEndTime;
         //// 临时处理
         //ExpiryTime = new DateTime();
         Voucher       = String.Empty;
         TicketTakeNum = 0;
         if (null != webOrder.TicketTakeNum)
         {
             TicketTakeNum = webOrder.TicketTakeNum.Value;
             IsUsed        = true;
         }
         UsedTime    = webOrder.TicketTakeTime;
         OrderStatus = OrderStatusType.None;
         try
         {
             OrderStatus = EnumHelper.GetOrderStatusTypeByFlagString(webOrder.OrderStatus);
         }
         catch (Exception)
         { }
         OrderStep = EnumHelper.GetWebOrderStep(webOrder.Step);
     }
 }
 public bool SetOrderStatus(int orderNumber, OrderStatusType status)
 {
     try
     {
         OrderStatus.SetStatus(_connection.Url, _connection.SessionId, new object[] { orderNumber, status.ToString().ToLower() });
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
예제 #6
0
        private void CreateLog(Core.Entities.Financial.Order.Order entity, OrderStatusType newOrderStatus, string userId, string description = null)
        {
            OrderLog logEntity = new OrderLog()
            {
                Id          = Guid.NewGuid(),
                FromState   = entity.OrderStatus,
                ToState     = newOrderStatus,
                Description = description,
                UserId      = userId
            };

            this._orderLogRepository.Create(logEntity);
        }
예제 #7
0
        /// <summary>
        /// 订单是否是有效订单
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static bool IsSuccess(this OrderStatusType value)
        {
            switch (value)
            {
            case OrderStatusType.OrderOvertimeShutdown:
            case OrderStatusType.ProductChangeShutown:
            case OrderStatusType.StockShutown:
                return(false);

            default:
                return(true);
            }
        }
예제 #8
0
        public static string GetCssClassName(this OrderStatusType enumValue)
        {
            switch (enumValue)
            {
            case OrderStatusType.Waiting:
                return("bg-warning");

            case OrderStatusType.Successed:
                return("bg-success");

            case OrderStatusType.Failed:
            default:
                return("bg-danger");
            }
        }
        public IEnumerable <OrderDataTransferObject> GetOrdersByStatus(OrderStatusType status,
                                                                       Guid id)
        {
            var orders = _database.Orders.GetOrdersByPredicate(o => o.Status == status)
                         .Where(o => o.CustomerId == id).ToList();

            foreach (var order in orders)
            {
                _database.OrderItems.GetOrdersByPredicate(oi => oi.OrderId == order.Id);
                _database.Customers.GetOrdersByPredicate(c => c.Id == order.CustomerId);
                foreach (var orderItem in order.OrderItems)
                {
                    _database.Items.GetOrdersByPredicate(i => i.Id == orderItem.Item.Id);
                }
            }
            var customer = _database.Customers.GetItem(id);

            return(orders.Select(o => new OrderDataTransferObject
            {
                Id = o.Id,
                OrderDate = o.OrderDate,
                ShipmentDate = (DateTimeOffset)(o.ShipmentDate == null ? default(DateTimeOffset) : o.ShipmentDate),
                OrderNumber = (int)(o.OrderNumber == null ? default(int) : o.OrderNumber),
                Status = (OrderStatusType)(o.Status == null ? OrderStatusType.New : o.Status),
                Customer = new CustomerDataTransferObject
                {
                    Id = customer.Id,
                    Name = customer.Name,
                    Code = customer.Code,
                    Adress = customer.Adress,
                    Discount = customer.Discount
                },
                OrderItems = o.OrderItems.Select(oi => new OrderItemDataTransferObject
                {
                    Id = oi.Id,
                    Item = new ItemDataTransferObject
                    {
                        Id = _database.Items.GetItem(oi.ItemId).Id,
                        Code = _database.Items.GetItem(oi.ItemId).Code,
                        Name = _database.Items.GetItem(oi.ItemId).Name,
                        Price = (double)_database.Items.GetItem(oi.ItemId).Price,
                        Category = _database.Items.GetItem(oi.ItemId).Category
                    },
                    ItemsCount = oi.ItemsCount,
                    ItemPrice = oi.ItemPrice
                }).ToList()
            }).ToList());
        }
예제 #10
0
 public CheckOutEventArgs(string userId,
                          string street,
                          string city,
                          string country,
                          string phoneNumber,
                          DateTime sendOn,
                          OrderPaymentStatusType orderPaymentStatusType,
                          OrderStatusType orderStatusType)
 {
     this.UserId                 = userId;
     this.Street                 = street;
     this.City                   = city;
     this.Country                = country;
     this.PhoneNumber            = phoneNumber;
     this.SendOn                 = sendOn;
     this.OrderStatusType        = orderStatusType;
     this.OrderPaymentStatusType = orderPaymentStatusType;
 }
예제 #11
0
 public Order(string userId,
              User user,
              DateTime sendOn,
              decimal total,
              int addressId,
              Address address,
              string phoneNumber,
              OrderPaymentStatusType orderPaymentStatusType,
              OrderStatusType orderStatusType) : this()
 {
     this.UserId                 = userId;
     this.User                   = user;
     this.SendOn                 = sendOn;
     this.Total                  = total;
     this.AddressId              = addressId;
     this.Address                = address;
     this.PhoneNumber            = phoneNumber;
     this.OrderPaymentStatusType = orderPaymentStatusType;
     this.OrderStatusType        = orderStatusType;
 }
예제 #12
0
파일: Order.cs 프로젝트: p8b/OSnack
        internal bool ChangeStatus(OrderStatusType orderStatusType)
        {
            bool canChange = (Status, orderStatusType) switch
            {
                (OrderStatusType.InProgress, OrderStatusType.Confirmed) => true,
                (OrderStatusType.InProgress, OrderStatusType.Canceled) => true,
                (OrderStatusType.Delivered, OrderStatusType.FullyRefunded) => true,
                (OrderStatusType.Delivered, OrderStatusType.PartialyRefunded) => true,
                (OrderStatusType.Confirmed, OrderStatusType.PartialyRefunded) => true,
                (OrderStatusType.Confirmed, OrderStatusType.FullyRefunded) => true,
                (OrderStatusType.Confirmed, OrderStatusType.Delivered) => true,
                (_, _) => false
            };

            if (canChange)
            {
                Status = orderStatusType;
            }
            return(canChange);
        }
예제 #13
0
        private static void CreateOrderStatusType(QuiltContext ctx, string orderStatusCode, string name)
        {
            Console.WriteLine("CreateOrderStatusType {0}", orderStatusCode);

            var dbOrderStatusType = ctx.OrderStatusTypes.Where(r => r.OrderStatusCode == orderStatusCode).SingleOrDefault();

            if (dbOrderStatusType == null)
            {
                dbOrderStatusType = new OrderStatusType()
                {
                    OrderStatusCode = orderStatusCode,
                    Name            = name
                };
                _ = ctx.OrderStatusTypes.Add(dbOrderStatusType);
            }
            else
            {
                dbOrderStatusType.Name = name;
            }
        }
예제 #14
0
        public bool UpdateStatusByOrderId(OrderStatusType StatusType1, Order_Status StatusValue1, DateTime deliveryFinishTime, string orderIds)
        {
            string StatusType  = StatusType1.ToString();
            string StatusValue = StatusValue1.ToString();
            bool   result      = false;
            string sql         = "";

            switch (StatusType)
            {
            case "配送":
                sql    = string.Format("update OrderStatus set DeliveryStatus='{0}',DeliveryFinishTime = '{1}'  where OrderId in ({2})", StatusValue, deliveryFinishTime, orderIds);
                result = m_dbo.ExecuteNonQuery(sql);
                break;

            case "回单":
                sql    = string.Format("update OrderStatus set FeedBackStatus='{0}',FeedBackFinishTime = '{1}'  where OrderId in ({2})", StatusValue, DateTime.Now, orderIds);
                result = m_dbo.ExecuteNonQuery(sql);
                break;
            }
            return(result);
        }
예제 #15
0
        private static bool CheckForCanceled(OrderSubmitStatusType submitStatus,
                                             OrderStatusType statusType)
        {
            switch (submitStatus)
            {
            case OrderSubmitStatusType.INSERT_SUBMITTED:
            case OrderSubmitStatusType.ACCEPTED:
            {
                switch (statusType)
                {
                case OrderStatusType.ORDER_CANCELED:
                    return(true);
                }
            }
            break;

            default:
                return(false);
            }
            return(false);
        }
 public WebOrderRefundResultRespondVo(WebOrderRefund webOrderRefund)
 {
     if (null != webOrderRefund)
     {
         TradeNo         = webOrderRefund.TradeNo;
         ExternalTradeNo = webOrderRefund.ExternalTradeNo;
         RefundTradeNo   = webOrderRefund.RefundTradeNo;
         IsTradeNoValid  = true;
         RefundReason    = webOrderRefund.RefundReason;
         PaymentVendor   = webOrderRefund.PaymentVendor;
         RefundFee       = 0;
         try
         {
             RefundFee = Convert.ToInt32(webOrderRefund.RefundFee);
         }
         catch (Exception)
         { }
         TotalFee = 0;
         try
         {
             TotalFee = Convert.ToInt32(webOrderRefund.TotalFee);
         }
         catch (Exception)
         { }
         BankType          = webOrderRefund.BankType;
         RequestTime       = webOrderRefund.RequestTime;
         IsRequestSuccess  = webOrderRefund.IsRequestSuccess;
         RequestErrCodeDes = webOrderRefund.RequestErrCodeDes;
         IsRespondSuccess  = webOrderRefund.IsRespondSuccess;
         RespondTime       = webOrderRefund.RespondTime;
         RespondErrCodeDes = webOrderRefund.RespondErrCodeDes;
         OrderStatus       = OrderStatusType.None;
         try
         {
             OrderStatus = EnumHelper.GetOrderStatusTypeByFlagString(webOrderRefund.OrderStatus);
         }
         catch (Exception)
         { }
     }
 }
예제 #17
0
        public IActionResult GetOrdersByStatus(Guid id, OrderStatusType status)
        {
            var orders = _orderService.GetOrdersByStatus(status, id);

            if (orders == null)
            {
                return(BadRequest());
            }
            return(Ok(orders.Select(o => new OrderGetModel
            {
                Id = o.Id,
                Customer = new CustomerGetModel
                {
                    Id = o.Customer.Id,
                    Name = o.Customer.Name,
                    Code = o.Customer.Code,
                    Adress = o.Customer.Adress,
                    Discount = o.Customer.Discount
                },
                OrderDate = o.OrderDate,
                ShipmentDate = o.ShipmentDate,
                Status = o.Status,
                OrderNumber = o.OrderNumber,
                OrderItems = o.OrderItems.Select(oi => new OrderItemModel
                {
                    Id = oi.Id,
                    Item = new ItemGetModel
                    {
                        Id = oi.Item.Id,
                        Name = oi.Item.Name,
                        Code = oi.Item.Code,
                        Price = oi.Item.Price,
                        Category = oi.Item.Category
                    },
                    ItemsCount = oi.ItemsCount,
                    ItemPrice = oi.ItemPrice
                }).ToList()
            })));
        }
예제 #18
0
        public void ShouldSetOrderProductsFromShoppingCartPermanentProducts(string userId,
                                                                            string street,
                                                                            string city,
                                                                            string country,
                                                                            string phoneNumber,
                                                                            OrderPaymentStatusType orderPaymentStatusType,
                                                                            OrderStatusType orderStatusType)
        {
            // Arrange
            var sendOn = new DateTime(2017, 4, 6);

            // Act
            this.mockedView.Raise(v => v.CheckingOut += null, new CheckOutEventArgs(userId,
                                                                                    street,
                                                                                    city,
                                                                                    country,
                                                                                    phoneNumber,
                                                                                    sendOn,
                                                                                    orderPaymentStatusType,
                                                                                    orderStatusType));

            // Assert
            CollectionAssert.AreEquivalent(this.shoppingCart.PermamentProducts, this.order.Products);
        }
예제 #19
0
        public void ShouldCallGetCartMethodFromShoppingCartsService(string userId,
                                                                    string street,
                                                                    string city,
                                                                    string country,
                                                                    string phoneNumber,
                                                                    OrderPaymentStatusType orderPaymentStatusType,
                                                                    OrderStatusType orderStatusType)
        {
            // Arrange
            var sendOn = new DateTime(2017, 4, 6);

            // Act
            this.mockedView.Raise(v => v.CheckingOut += null, new CheckOutEventArgs(userId,
                                                                                    street,
                                                                                    city,
                                                                                    country,
                                                                                    phoneNumber,
                                                                                    sendOn,
                                                                                    orderPaymentStatusType,
                                                                                    orderStatusType));

            // Assert
            this.mockedShoppingCartsService.Verify(scs => scs.GetCart(userId), Times.Once);
        }
예제 #20
0
        /// <summary>
        ///修改订单的状态
        /// ERP FFeedBack.cs 中调用
        /// </summary>
        /// <param name="StatusType1"></param>
        /// <param name="StatusValue1"></param>
        /// <param name="UserId"></param>
        /// <returns></returns>
        public bool UpdateStatus(OrderStatusType StatusType1, Order_Status StatusValue1, int UserId)
        {
            string StatusType  = StatusType1.ToString();
            string StatusValue = StatusValue1.ToString();

            this.Id = Id;
            this.Load();
            string Status   = string.Empty;
            int    IsInner  = -1;
            int    statusId = 0;

            switch (StatusType)
            {
            case "客服":
                this.ServiceStatus = StatusValue;
                this.ServiceId     = UserId;
                if (StatusValue == "已完成")
                {
                    this.ServiceFinishTime = DateTime.Now;
                    Status  = "您的订单已确认";
                    IsInner = 0;
                }
                else
                {
                    IsInner = -1;
                    this.ServiceFinishTime = new DateTime(1900, 1, 1);
                }
                break;

            case "采购":
                this.PurchaseStatus = StatusValue;
                if (StatusValue == "已完成")
                {
                    this.PurchaseFinishTime = DateTime.Now;
                }
                else if (StatusValue == "已接受")
                {
                    IsInner  = 1;
                    Status   = "采购已接受!";
                    statusId = 3;
                    this.PurchaseFinishTime = new DateTime(1900, 1, 1);
                }
                else
                {
                    IsInner = -1;
                    this.PurchaseFinishTime = new DateTime(1900, 1, 1);
                }
                break;

            case "仓库":
                this.StoreStatus = StatusValue;
                if (StatusValue == "已完成")
                {
                    this.StoreFinishTime = DateTime.Now;
                    statusId             = 4;
                    Status  = "您商品已出库";
                    IsInner = 1;
                }
                else if (StatusValue == "已接受")
                {
                    IsInner              = 0;
                    Status               = "您的订单正在分拣!";
                    statusId             = 3;
                    this.StoreFinishTime = new DateTime(1900, 1, 1);
                }
                else
                {
                    IsInner = -1;
                    this.StoreFinishTime = new DateTime(1900, 1, 1);
                }
                break;

            case "配送":
                this.DeliveryStatus = StatusValue;
                if (StatusValue == "已完成")
                {
                    this.DeliveryFinishTime = DateTime.Now;
                    Status   = "您的订单已配送完成!";
                    statusId = 5;
                    IsInner  = 0;
                }
                else if (StatusValue == "已接受")
                {
                    IsInner  = 0;
                    statusId = 4;
                    Status   = "您的订单已分配到配送员,我们会尽快送达!";
                    this.DeliveryFinishTime = new DateTime(1900, 1, 1);
                }
                else
                {
                    IsInner = -1;
                    this.DeliveryFinishTime = new DateTime(1900, 1, 1);
                }
                break;

            case "回单":
                this.FeedBackStatus = StatusValue;

                if (StatusValue == "已完成")
                {
                    IsInner  = 1;
                    Status   = "订单已完成!";
                    statusId = 6;
                    this.FeedBackFinishTime = DateTime.Now;
                }
                else
                {
                    IsInner = -1;
                    this.FeedBackFinishTime = new DateTime(1900, 1, 1);
                }
                break;
            }
            if (this.Save() > 0)
            {
                if (IsInner >= 0)
                {
                    //添加订单状态明细
                    OrderStatusDetail osd = new OrderStatusDetail();
                    osd.IsInner   = IsInner;
                    osd.OrderId   = this.OrderId;
                    osd.Status    = Status;
                    osd.UserId    = UserId;
                    osd.StatusId  = statusId;
                    osd.TPIStatus = CommenClass.Order_Status.已完成.ToString();
                    if (osd.UserId == 0)
                    {
                        osd.UserName = "******";
                    }
                    else
                    {
                        Sys_Users sys_users = new Sys_Users();
                        sys_users.Id = osd.UserId;
                        if (sys_users.Load())
                        {
                            osd.UserName = sys_users.Name;
                        }
                    }
                    osd.Save();
                }
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #21
0
 public void SetOrderStatusType(OrderStatusType Status)
 {
     this.Status = Status;
 }
예제 #22
0
 public bool SetOrderStatus(int orderNumber, OrderStatusType status)
 {
     throw new System.NotImplementedException();
 }
예제 #23
0
        private void SetAdvisorRankingAndProfitData(ref AdvisorRankingAndProfitData advisorRankingAndProfitData, OrderStatusType statusType, OrderType orderType,
                                                    int assetId, double profit, double quantity, double totalUSD, DateTime now, DateTime closeDate, int?tradeMinutes, double?fee)
        {
            var investedDollar = profit != -1 ? (totalUSD / (1 + profit)) : totalUSD;

            if (statusType != OrderStatusType.Open)
            {
                var days   = now.Subtract(closeDate).TotalDays;
                var weight = (days <= 30 ? 1.0 : Math.Max((Math.Log(days) / -2.5100067169575757) + 2.3550550915595987, 0.0)) * investedDollar;
                advisorRankingAndProfitData.RankingWeight         += weight;
                advisorRankingAndProfitData.RankingWeightedProfit += profit * weight;
                if (weight > 0)
                {
                    ++advisorRankingAndProfitData.OrderCount;
                }
            }

            if (!advisorRankingAndProfitData.AssetProfitData.ContainsKey(assetId))
            {
                advisorRankingAndProfitData.AssetProfitData[assetId] = new Dictionary <OrderStatusType, Dictionary <OrderType, AdvisorRankingAndProfitData.ProfitData> >();
            }
            if (!advisorRankingAndProfitData.AssetProfitData[assetId].ContainsKey(statusType))
            {
                advisorRankingAndProfitData.AssetProfitData[assetId][statusType] = new Dictionary <OrderType, AdvisorRankingAndProfitData.ProfitData>();
            }
            if (!advisorRankingAndProfitData.AssetProfitData[assetId][statusType].ContainsKey(orderType))
            {
                advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType] = new AdvisorRankingAndProfitData.ProfitData();
            }

            advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].SummedProfitPercentage += profit;
            advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].TotalDollar            += totalUSD;
            advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].TotalQuantity          += quantity;
            advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].SummedProfitDollar     += totalUSD - investedDollar;
            ++advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].OrderCount;
            if (profit > 0)
            {
                ++advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].SuccessCount;
            }

            if (tradeMinutes.HasValue)
            {
                if (advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].SummedTradeMinutes.HasValue)
                {
                    advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].SummedTradeMinutes += tradeMinutes.Value;
                }
                else
                {
                    advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].SummedTradeMinutes = tradeMinutes.Value;
                }
            }
            if (fee.HasValue)
            {
                if (advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].TotalFee.HasValue)
                {
                    advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].TotalFee += fee.Value;
                }
                else
                {
                    advisorRankingAndProfitData.AssetProfitData[assetId][statusType][orderType].TotalFee = fee.Value;
                }
            }
        }
예제 #24
0
        /// <summary>
        /// 修改订单状态
        /// ERP FFeedBack.cs 中调用
        /// </summary>
        /// <param name="StatusType1"></param>
        /// <param name="StatusValue1"></param>
        /// <param name="deliveryFinishTime"></param>
        /// <returns></returns>
        public bool UpdateStatus(OrderStatusType StatusType1, Order_Status StatusValue1, DateTime deliveryFinishTime)
        {
            string StatusType  = StatusType1.ToString();
            string StatusValue = StatusValue1.ToString();

            this.Id = Id;
            this.Load();
            switch (StatusType)
            {
            case "客服":
                this.ServiceStatus = StatusValue;
                if (StatusValue == "已完成")
                {
                    this.ServiceFinishTime = DateTime.Now;
                }
                else
                {
                    this.ServiceFinishTime = new DateTime(1900, 1, 1);
                }
                break;

            case "采购":
                this.PurchaseStatus = StatusValue;
                if (StatusValue == "已完成")
                {
                    this.PurchaseFinishTime = DateTime.Now;
                }
                else
                {
                    this.PurchaseFinishTime = new DateTime(1900, 1, 1);
                }
                break;

            case "仓库":
                this.StoreStatus = StatusValue;
                if (StatusValue == "已完成")
                {
                    this.StoreFinishTime = DateTime.Now;
                }
                else
                {
                    this.StoreFinishTime = new DateTime(1900, 1, 1);
                }
                break;

            case "配送":
                this.DeliveryStatus = StatusValue;
                if (StatusValue == "已完成")
                {
                    this.DeliveryFinishTime = deliveryFinishTime;
                }
                else
                {
                    this.DeliveryFinishTime = new DateTime(1900, 1, 1);
                }
                break;

            case "回单":
                this.FeedBackStatus = StatusValue;
                if (StatusValue == "已完成")
                {
                    this.FeedBackFinishTime = DateTime.Now;
                }
                else
                {
                    this.FeedBackFinishTime = new DateTime(1900, 1, 1);
                }
                break;
            }
            if (this.Save() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
예제 #25
0
        public static string GetStatus(OrderSubmitStatusType submitStatus,
                                       OrderStatusType statusType)
        {
            string status = "未知";

            switch (submitStatus)
            {
            case OrderSubmitStatusType.NOT_SUBMITTED:
                status = "未提交";
                break;

            case OrderSubmitStatusType.INSERT_SUBMITTED:
            case OrderSubmitStatusType.ACCEPTED:
            {
                if (submitStatus == OrderSubmitStatusType.INSERT_SUBMITTED)
                {
                    status = "委托已提交";
                }
                else if (submitStatus == OrderSubmitStatusType.ACCEPTED)
                {
                    status = "委托被接受";
                }

                switch (statusType)
                {
                case OrderStatusType.ALL_TRADED:
                    status = "全部成交";
                    break;

                case OrderStatusType.PART_TRADED_QUEUEING:
                case OrderStatusType.PART_TRADED_NOT_QUEUEING:
                    status = "部分成交";
                    break;

                case OrderStatusType.NO_TRADE_QUEUEING:
                case OrderStatusType.NO_TRADE_NOT_QUEUEING:
                    status = "未成交";
                    break;

                case OrderStatusType.ORDER_CANCELED:
                    status = "委托已取消";
                    break;

                case OrderStatusType.ORDER_NOT_TOUCHED:
                    status = "委托未触发";
                    break;

                case OrderStatusType.ORDER_TOUCHED:
                    status = "委托已触发";
                    break;

                case OrderStatusType.STATUS_UNKNOWN:
                default:
                    break;
                }
            }
            break;

            case OrderSubmitStatusType.CANCEL_SUBMITTED:
                status = "取消已提交";
                break;

            case OrderSubmitStatusType.MODIFY_SUBMITTED:
                status = "修改已提交";
                break;

            case OrderSubmitStatusType.INSERT_REJECTED:
                status = "委托被拒绝";
                break;

            case OrderSubmitStatusType.CANCEL_REJECTED:
                status = "取消被拒绝";
                break;

            case OrderSubmitStatusType.MODIFY_REJECTED:
                status = "修改被拒绝";
                break;

            default:
                break;
            }

            return(status);
        }
 /// <summary>
 /// Creates a new instance of the <see cref="T:GIIS.BusinessLogic.Exception.IllegalStateException"/> class
 /// </summary>
 /// <param name="currentState">The current state of the object that caused the exception</param>
 /// <param name="className">The name of the class in the state which caused the exception</param>
 /// <param name="action">The name of the action which caused the exception</param>
 public IllegalStateException(OrderStatusType currentState, String className, String action) : base(String.Format("Could not perform {0} on instance of {1} as object is invalid state (currentState: {2})", action, className, currentState))
 {
     this.CurrentState = currentState;
     this.Action       = action;
     this.ClassName    = className;
 }
예제 #27
0
        public async Task <PagedResult <Course> > GetPagedCourseAsync(string Title, bool IsDeleted, int Count, int CurrentNumber, CancellationToken cancellationToken,
                                                                      PriceStatusType PrisceStatusType = PriceStatusType.All, OrderStatusType orderStatusType = OrderStatusType.Default, int StartingPrice = 0, int EndOfPrice = 0,
                                                                      IEnumerable <int> SelectedGroup  = null, string KeyWordTitle = "")
        {
            PagedResult <Course> paged = new PagedResult <Course>();

            int ListCount = await NoTrackEntities.SmartWhere(Title, IsDeleted, SelectedGroup, StartingPrice, EndOfPrice, PrisceStatusType, KeyWordTitle).CountAsync(cancellationToken);

            IQueryable <Course> query = NoTrackEntities.SmartWhere(Title, IsDeleted, SelectedGroup, StartingPrice, EndOfPrice, PrisceStatusType, KeyWordTitle).SmartOrderByStatus(orderStatusType);

            paged.ListItem = await query.Skip((CurrentNumber - 1) *Count).Take(Count)
                             .AsNoTracking()
                             .ToListAsync(cancellationToken);

            paged.PageData.CurentItem  = CurrentNumber;
            paged.PageData.TotalItem   = ListCount;
            paged.PageData.ItemPerPage = Count;
            return(paged);
        }
예제 #28
0
        public async Task <Core.Entities.Financial.Order.Order> ChangeStateOfOrderForceAsync(string orderNumber, OrderStatusType newOrderStatus, string userId, string description = null)
        {
            var entity = await GetOrderByNumberAsync(orderNumber);

            CreateLog(entity, newOrderStatus, userId);
            entity.OrderStatus = newOrderStatus;
            Update(entity);
            return(entity);
        }
        public static IQueryable <Course> SmartOrderByStatus(this IQueryable <Course> queryable, OrderStatusType statusType)
        {
            switch (statusType)
            {
            case OrderStatusType.Default:
                queryable = queryable.OrderBy(c => c.CourseTitle);
                break;

            case OrderStatusType.Date:
                queryable = queryable.OrderBy(c => c.CreateDate);
                break;

            case OrderStatusType.Price:
                queryable = queryable.OrderBy(c => c.CoursePrice);
                break;
            }
            return(queryable);
        }
예제 #30
0
        public async Task <List <Core.Entities.Financial.Order.Order> > ChangeStateOfOrderListForceAsync(List <string> orderNumber, OrderStatusType newOrderStatus, string userId, string description = null)
        {
            var entityList = await GetOrderListByNumberListAsync(orderNumber);

            foreach (var entity in entityList)
            {
                entity.OrderStatus = newOrderStatus;
                CreateLog(entity, newOrderStatus, userId);
                Update(entity);
            }

            return(entityList);
        }