示例#1
0
        public static string CancelSplitOrderByID(string oldorderid, int fromsplitid, int itemid)
        {
            string         str            = string.Empty;
            OrderSplitInfo orderSplitInfo = GetOrderSplitInfo(fromsplitid);

            if (orderSplitInfo == null)
            {
                return(str);
            }
            string         itemList = orderSplitInfo.ItemList;
            OrderSplitInfo orderSplitInfoByOrderIDAndNum = GetOrderSplitInfoByOrderIDAndNum(1, oldorderid);

            if (orderSplitInfoByOrderIDAndNum == null)
            {
                return(str);
            }
            if (!itemList.Contains <char>(','))
            {
                orderSplitInfoByOrderIDAndNum.ItemList   = orderSplitInfoByOrderIDAndNum.ItemList + "," + itemid.ToString();
                orderSplitInfoByOrderIDAndNum.UpdateTime = DateTime.Now;
                new OrderSplitDao().UpdateOrderSplitInfo(orderSplitInfoByOrderIDAndNum);
                new OrderSplitDao().DelOrderSplitInfo(fromsplitid);
                return("1");
            }
            orderSplitInfoByOrderIDAndNum.ItemList   = orderSplitInfoByOrderIDAndNum.ItemList + "," + itemid.ToString();
            orderSplitInfoByOrderIDAndNum.UpdateTime = DateTime.Now;
            new OrderSplitDao().UpdateOrderSplitInfo(orderSplitInfoByOrderIDAndNum);
            orderSplitInfo.ItemList   = ("," + orderSplitInfo.ItemList + ",").Replace("," + itemid.ToString() + ",", ",").Trim(new char[] { ',' });
            orderSplitInfo.UpdateTime = DateTime.Now;
            new OrderSplitDao().UpdateOrderSplitInfo(orderSplitInfo);
            return("1");
        }
示例#2
0
        public bool UpdateOrderSplitFright(OrderSplitInfo info)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("UPDATE vshop_OrderSplit SET ").Append("AdjustedFreight=@AdjustedFreight ").Append(" WHERE ID=@ID");
            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString());
            this.database.AddInParameter(sqlStringCommand, "AdjustedFreight", System.Data.DbType.Decimal, info.AdjustedFreight);
            this.database.AddInParameter(sqlStringCommand, "ID", System.Data.DbType.Int32, info.Id);
            return(this.database.ExecuteNonQuery(sqlStringCommand) > 0);
        }
示例#3
0
        public bool UpdateOrderSplitInfo(OrderSplitInfo info)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("UPDATE vshop_OrderSplit SET ").Append("OrderIDNum=@OrderIDNum,").Append("ItemList=@ItemList,").Append("UpdateTime=@UpdateTime").Append(" WHERE ID=@ID");
            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString());
            this.database.AddInParameter(sqlStringCommand, "OrderIDNum", System.Data.DbType.Int32, info.OrderIDNum);
            this.database.AddInParameter(sqlStringCommand, "ItemList", System.Data.DbType.String, info.ItemList);
            this.database.AddInParameter(sqlStringCommand, "UpdateTime", System.Data.DbType.DateTime, info.UpdateTime);
            this.database.AddInParameter(sqlStringCommand, "ID", System.Data.DbType.Int32, info.Id);
            return(this.database.ExecuteNonQuery(sqlStringCommand) > 0);
        }
示例#4
0
        public OrderSplitInfo GetOrderSplitInfo(int id)
        {
            string query = "select * from vshop_OrderSplit where ID=" + id;

            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query);
            OrderSplitInfo result = null;

            using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                result = ReaderConvert.ReaderToModel <OrderSplitInfo>(dataReader);
            }
            return(result);
        }
示例#5
0
        public int NewOrderSplit(OrderSplitInfo info)
        {
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("insert into vshop_OrderSplit(OrderIDNum,OldOrderID,ItemList,UpdateTime,AdjustedFreight) ");
            stringBuilder.Append(" values(@OrderIDNum,@OldOrderID,@ItemList,@UpdateTime,@AdjustedFreight);select @@identity ");
            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(stringBuilder.ToString());
            this.database.AddInParameter(sqlStringCommand, "OrderIDNum", System.Data.DbType.Int32, info.OrderIDNum);
            this.database.AddInParameter(sqlStringCommand, "OldOrderID", System.Data.DbType.String, info.OldOrderId);
            this.database.AddInParameter(sqlStringCommand, "ItemList", System.Data.DbType.String, info.ItemList);
            this.database.AddInParameter(sqlStringCommand, "UpdateTime", System.Data.DbType.DateTime, info.UpdateTime);
            this.database.AddInParameter(sqlStringCommand, "AdjustedFreight", System.Data.DbType.Decimal, info.AdjustedFreight);
            return(Globals.ToNum(this.database.ExecuteScalar(sqlStringCommand)));
        }
示例#6
0
        public OrderSplitInfo GetOrderSplitInfoByOrderIDAndNum(int orderidnum, string oldorderid)
        {
            string query = "select * from vshop_OrderSplit where OldOrderID=@OldOrderID and OrderIDNum=@OrderIDNum";

            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query);
            this.database.AddInParameter(sqlStringCommand, "OrderIDNum", System.Data.DbType.Int32, orderidnum);
            this.database.AddInParameter(sqlStringCommand, "OldOrderID", System.Data.DbType.String, oldorderid);
            OrderSplitInfo result = null;

            using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                result = ReaderConvert.ReaderToModel <OrderSplitInfo>(dataReader);
            }
            return(result);
        }
示例#7
0
        public static string CancelSplitOrderByID(string oldorderid, int fromsplitid, int itemid)
        {
            string         result         = string.Empty;
            OrderSplitInfo orderSplitInfo = OrderSplitHelper.GetOrderSplitInfo(fromsplitid);

            if (orderSplitInfo != null)
            {
                string         itemList = orderSplitInfo.ItemList;
                OrderSplitInfo orderSplitInfoByOrderIDAndNum = OrderSplitHelper.GetOrderSplitInfoByOrderIDAndNum(1, oldorderid);
                if (orderSplitInfoByOrderIDAndNum != null)
                {
                    if (!itemList.Contains(','))
                    {
                        orderSplitInfoByOrderIDAndNum.ItemList   = orderSplitInfoByOrderIDAndNum.ItemList + "," + itemid.ToString();
                        orderSplitInfoByOrderIDAndNum.UpdateTime = DateTime.Now;
                        new OrderSplitDao().UpdateOrderSplitInfo(orderSplitInfoByOrderIDAndNum);
                        new OrderSplitDao().DelOrderSplitInfo(fromsplitid);
                        result = "1";
                    }
                    else
                    {
                        orderSplitInfoByOrderIDAndNum.ItemList   = orderSplitInfoByOrderIDAndNum.ItemList + "," + itemid.ToString();
                        orderSplitInfoByOrderIDAndNum.UpdateTime = DateTime.Now;
                        new OrderSplitDao().UpdateOrderSplitInfo(orderSplitInfoByOrderIDAndNum);
                        orderSplitInfo.ItemList = ("," + orderSplitInfo.ItemList + ",").Replace("," + itemid.ToString() + ",", ",").Trim(new char[]
                        {
                            ','
                        });
                        orderSplitInfo.UpdateTime = DateTime.Now;
                        new OrderSplitDao().UpdateOrderSplitInfo(orderSplitInfo);
                        result = "1";
                    }
                }
            }
            return(result);
        }
示例#8
0
 public static bool UpdateOrderSplitFright(OrderSplitInfo info)
 {
     return(new OrderSplitDao().UpdateOrderSplitFright(info));
 }
示例#9
0
        public static string OrderSplitToTemp(OrderInfo OldOrderInfo, string skuid, string neworderid, int itemid)
        {
            string result  = string.Empty;
            string orderId = OldOrderInfo.OrderId;
            string text    = string.Empty;
            string text2   = string.Empty;

            if (OldOrderInfo != null)
            {
                if (neworderid == "0")
                {
                    IList <OrderSplitInfo> orderSplitItems = new OrderSplitDao().GetOrderSplitItems(orderId);
                    if (orderSplitItems.Count == 0)
                    {
                        foreach (LineItemInfo current in OldOrderInfo.LineItems.Values)
                        {
                            if (current.ID == itemid)
                            {
                                text = current.ID.ToString();
                            }
                            else
                            {
                                text2 = text2 + "," + current.ID.ToString();
                            }
                        }
                        text2 = text2.Trim(new char[]
                        {
                            ','
                        });
                        OrderSplitInfo orderSplitInfo = new OrderSplitInfo();
                        int            num            = 1;
                        orderSplitInfo.OldOrderId      = orderId;
                        orderSplitInfo.OrderIDNum      = num;
                        orderSplitInfo.ItemList        = text2;
                        orderSplitInfo.UpdateTime      = DateTime.Now;
                        orderSplitInfo.AdjustedFreight = OldOrderInfo.AdjustedFreight;
                        new OrderSplitDao().NewOrderSplit(orderSplitInfo);
                        orderSplitInfo.ItemList        = text;
                        orderSplitInfo.OrderIDNum      = num + 1;
                        orderSplitInfo.UpdateTime      = DateTime.Now;
                        orderSplitInfo.AdjustedFreight = 0m;
                        new OrderSplitDao().NewOrderSplit(orderSplitInfo);
                        result = "1";
                    }
                    else
                    {
                        string text3 = string.Empty;
                        int    id    = 0;
                        foreach (OrderSplitInfo current2 in orderSplitItems)
                        {
                            if (current2.OrderIDNum == 1)
                            {
                                text3 = current2.ItemList;
                                id    = current2.Id;
                                break;
                            }
                        }
                        LineItemInfo returnMoneyByOrderIDAndProductID = new LineItemDao().GetReturnMoneyByOrderIDAndProductID(orderId, skuid, itemid);
                        if (returnMoneyByOrderIDAndProductID != null && ("," + text3 + ",").Contains("," + returnMoneyByOrderIDAndProductID.ID + ","))
                        {
                            decimal  d     = 0m;
                            decimal  num2  = 0m;
                            string[] array = text3.Split(new char[]
                            {
                                ','
                            });
                            if (array.Length > 1)
                            {
                                string[] array2 = array;
                                for (int i = 0; i < array2.Length; i++)
                                {
                                    string       s            = array2[i];
                                    LineItemInfo lineItemInfo = new LineItemDao().GetLineItemInfo(Globals.ToNum(s), orderId);
                                    if (lineItemInfo != null)
                                    {
                                        decimal num3 = 0m;
                                        if (lineItemInfo.Type == 0)
                                        {
                                            num3 = lineItemInfo.ItemAdjustedPrice * lineItemInfo.Quantity - lineItemInfo.ItemAdjustedCommssion - lineItemInfo.DiscountAverage;
                                        }
                                        if (lineItemInfo.ID == itemid)
                                        {
                                            num2 = num3;
                                            text = lineItemInfo.ID.ToString();
                                        }
                                        d += num3;
                                    }
                                }
                                if (d > num2 && num2 > 0m)
                                {
                                    OrderSplitInfo orderSplitInfo = new OrderSplitInfo();
                                    int            num            = new OrderSplitDao().GetMaxOrderIDNum(orderId);
                                    orderSplitInfo.Id         = id;
                                    orderSplitInfo.OldOrderId = orderId;
                                    orderSplitInfo.OrderIDNum = 1;
                                    orderSplitInfo.ItemList   = ("," + text3 + ",").Replace("," + returnMoneyByOrderIDAndProductID.ID.ToString() + ",", ",").Trim(new char[]
                                    {
                                        ','
                                    });
                                    orderSplitInfo.UpdateTime      = DateTime.Now;
                                    orderSplitInfo.AdjustedFreight = OldOrderInfo.AdjustedFreight;
                                    new OrderSplitDao().UpdateOrderSplitInfo(orderSplitInfo);
                                    orderSplitInfo.AdjustedFreight = 0m;
                                    orderSplitInfo.ItemList        = returnMoneyByOrderIDAndProductID.ID.ToString();
                                    orderSplitInfo.OrderIDNum      = num + 1;
                                    orderSplitInfo.UpdateTime      = DateTime.Now;
                                    new OrderSplitDao().NewOrderSplit(orderSplitInfo);
                                    result = "1";
                                }
                                else
                                {
                                    result = "-3";
                                }
                            }
                            else
                            {
                                result = "-1";
                            }
                        }
                        else
                        {
                            result = "-2";
                        }
                    }
                }
                else
                {
                    IList <OrderSplitInfo> orderSplitItems = new OrderSplitDao().GetOrderSplitItems(orderId);
                    if (orderSplitItems.Count > 0)
                    {
                        string text3      = string.Empty;
                        int    id         = 0;
                        int    id2        = 0;
                        int    orderIDNum = 0;
                        string str        = string.Empty;
                        int    num4       = 0;
                        foreach (OrderSplitInfo current2 in orderSplitItems)
                        {
                            if (current2.OrderIDNum == 1)
                            {
                                text3 = current2.ItemList;
                                id    = current2.Id;
                                num4++;
                            }
                            if (current2.Id.ToString() == neworderid)
                            {
                                str        = current2.ItemList;
                                id2        = current2.Id;
                                orderIDNum = current2.OrderIDNum;
                                num4++;
                            }
                            if (num4 == 2)
                            {
                                break;
                            }
                        }
                        decimal  d     = 0m;
                        decimal  num2  = 0m;
                        string[] array = text3.Split(new char[]
                        {
                            ','
                        });
                        if (array.Length > 1)
                        {
                            string[] array2 = array;
                            for (int i = 0; i < array2.Length; i++)
                            {
                                string       s            = array2[i];
                                LineItemInfo lineItemInfo = new LineItemDao().GetLineItemInfo(Globals.ToNum(s), orderId);
                                if (lineItemInfo != null)
                                {
                                    decimal num3 = 0m;
                                    if (lineItemInfo.Type == 0)
                                    {
                                        num3 = lineItemInfo.ItemAdjustedPrice * lineItemInfo.Quantity - lineItemInfo.ItemAdjustedCommssion - lineItemInfo.DiscountAverage;
                                    }
                                    if (lineItemInfo.ID == itemid)
                                    {
                                        num2 = num3;
                                        text = lineItemInfo.ID.ToString();
                                    }
                                    d += num3;
                                }
                            }
                            if (d > num2 && num2 > 0m)
                            {
                                OrderSplitInfo orderSplitInfo = new OrderSplitInfo();
                                orderSplitInfo.Id         = id;
                                orderSplitInfo.OldOrderId = orderId;
                                orderSplitInfo.OrderIDNum = 1;
                                orderSplitInfo.ItemList   = ("," + text3 + ",").Replace("," + text + ",", ",").Trim(new char[]
                                {
                                    ','
                                });
                                orderSplitInfo.UpdateTime      = DateTime.Now;
                                orderSplitInfo.AdjustedFreight = OldOrderInfo.AdjustedFreight;
                                new OrderSplitDao().UpdateOrderSplitInfo(orderSplitInfo);
                                orderSplitInfo.Id = id2;
                                orderSplitInfo.AdjustedFreight = 0m;
                                orderSplitInfo.ItemList        = str + "," + text;
                                orderSplitInfo.OrderIDNum      = orderIDNum;
                                orderSplitInfo.UpdateTime      = DateTime.Now;
                                new OrderSplitDao().UpdateOrderSplitInfo(orderSplitInfo);
                                result = "1";
                            }
                            else
                            {
                                result = "-3";
                            }
                        }
                        else
                        {
                            result = "-1";
                        }
                    }
                    else
                    {
                        result = "-2";
                    }
                }
            }
            return(result);
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            string str2;
            string str4;
            int    num2;
            string str = Globals.RequestFormStr("posttype");

            if (string.IsNullOrEmpty(this.reUrl))
            {
                this.reUrl = "manageorder.aspx";
            }
            switch (str)
            {
            case "getordersplit":
            {
                base.Response.ContentType = "application/json";
                str2         = "[]";
                this.orderId = Globals.RequestFormStr("orderid");
                IList <OrderSplitInfo> orderSplitItems = OrderSplitHelper.GetOrderSplitItems(this.orderId);
                if (orderSplitItems.Count <= 0)
                {
                    OrderInfo     orderInfo = OrderHelper.GetOrderInfo(this.orderId);
                    StringBuilder builder2  = new StringBuilder();
                    if (orderInfo != null)
                    {
                        if (orderInfo.SplitState > 0)
                        {
                            builder2.Append("{\"id\":\"splited\"}");
                        }
                        else
                        {
                            builder2.Append("[");
                            if (orderInfo != null)
                            {
                                builder2.Append("{\"id\":0,\"orderid\":\"" + orderInfo.OrderId + "\",\"adjustedfreight\":" + orderInfo.AdjustedFreight.ToString("F2") + ",\"data\":[" + this.GetOrderItemListByOrder(orderInfo) + "]}");
                            }
                            builder2.Append("]");
                        }
                    }
                    str2 = builder2.ToString();
                    break;
                }
                StringBuilder builder = new StringBuilder();
                builder.Append("[");
                int num = 0;
                foreach (OrderSplitInfo info in orderSplitItems)
                {
                    if (num != 0)
                    {
                        builder.Append(",");
                    }
                    num++;
                    builder.Append(string.Concat(new object[] { "{\"id\":", info.Id, ",\"orderid\":\"", this.FormatNewOrderID(info.OldOrderId, info.OrderIDNum.ToString()), "\",\"adjustedfreight\":", info.AdjustedFreight.ToString("F2"), ",\"data\":[", this.GetOrderItemListData(info.ItemList, info.OldOrderId), "]}" }));
                }
                builder.Append("]");
                str2 = builder.ToString();
                break;
            }

            case "savesplit":
            {
                base.Response.ContentType = "application/json";
                string neworderid = Globals.RequestFormStr("toorderid");
                str4 = Globals.RequestFormStr("fromorderid");
                num2 = Globals.RequestFormNum("itemid");
                string skuid = Globals.RequestFormStr("fromskuid");
                str2 = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                OrderInfo oldOrderInfo = OrderHelper.GetOrderInfo(str4);
                if (oldOrderInfo != null)
                {
                    if ((oldOrderInfo.OrderStatus != OrderStatus.WaitBuyerPay) && (oldOrderInfo.OrderStatus != OrderStatus.BuyerAlreadyPaid))
                    {
                        OrderSplitHelper.DelOrderSplitByOrderID(str4, null);
                        str2 = "{\"type\":\"3\",\"tips\":\"当前订单状态不允许拆分!\"}";
                    }
                    else
                    {
                        decimal num3 = oldOrderInfo.GetTotal() - oldOrderInfo.AdjustedFreight;
                        decimal num4 = 0M;
                        foreach (LineItemInfo info4 in oldOrderInfo.LineItems.Values)
                        {
                            if (info4.ID == num2)
                            {
                                if (info4.Type != 1)
                                {
                                    num4 = ((info4.ItemAdjustedPrice * info4.Quantity) - info4.ItemAdjustedCommssion) - info4.DiscountAverage;
                                }
                                break;
                            }
                        }
                        if (num4 >= num3)
                        {
                            str2 = "{\"type\":\"0\",\"tips\":\"订单拆分后,原订单的价格将不大于0!\"}";
                        }
                        else if ((num4 == 0M) && (neworderid == "0"))
                        {
                            str2 = "{\"type\":\"0\",\"tips\":\"订单拆分后,新订单的价格必须大于0!\"}";
                        }
                        else
                        {
                            string str10 = OrderSplitHelper.OrderSplitToTemp(oldOrderInfo, skuid, neworderid, num2);
                            if (str10 != null)
                            {
                                if (!(str10 == "1"))
                                {
                                    if (str10 == "-1")
                                    {
                                        str2 = "{\"type\":\"0\",\"tips\":\"订单只有一条记录,不允许拆分!\"}";
                                    }
                                    else if (str10 == "-2")
                                    {
                                        str2 = "{\"type\":\"0\",\"tips\":\"非法数据!\"}";
                                    }
                                    else if (str10 == "-3")
                                    {
                                        str2 = "{\"type\":\"0\",\"tips\":\"拆分出去的订单价格必须大于0!\"}";
                                    }
                                }
                                else
                                {
                                    str2 = "{\"type\":\"1\",\"tips\":\"操作成功!\"}";
                                }
                            }
                        }
                    }
                }
                base.Response.Write(str2);
                base.Response.End();
                return;
            }

            case "cancelordersplit":
            {
                string str11;
                base.Response.ContentType = "application/json";
                str4 = Globals.RequestFormStr("fromorderid");
                num2 = Globals.RequestFormNum("itemid");
                int fromsplitid = Globals.RequestFormNum("fromsplitid");
                str2 = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                if ((((OrderHelper.GetOrderInfo(str4) != null) && (num2 > 0)) && ((fromsplitid > 0) && ((str11 = OrderSplitHelper.CancelSplitOrderByID(str4, fromsplitid, num2)) != null))) && (str11 == "1"))
                {
                    str2 = "{\"type\":\"1\",\"tips\":\"操作成功!\"}";
                }
                base.Response.Write(str2);
                base.Response.End();
                return;
            }

            case "editfright":
            {
                base.Response.ContentType = "application/json";
                str2 = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                int     id     = Globals.RequestFormNum("id");
                decimal result = 0M;
                decimal.TryParse(Globals.RequestFormStr("val"), out result);
                if (result >= 0M)
                {
                    OrderSplitInfo orderSplitInfo = OrderSplitHelper.GetOrderSplitInfo(id);
                    if (orderSplitInfo != null)
                    {
                        orderSplitInfo.AdjustedFreight = result;
                        if (OrderSplitHelper.UpdateOrderSplitFright(orderSplitInfo))
                        {
                            str2 = "{\"type\":\"1\",\"tips\":\"操作成功!\"}";
                        }
                    }
                }
                base.Response.Write(str2);
                base.Response.End();
                return;
            }

            case "cancelsplittoorder":
                base.Response.ContentType = "application/json";
                str2 = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                if (OrderSplitHelper.DelOrderSplitByOrderID(Globals.RequestFormStr("fromorderid"), null))
                {
                    str2 = "{\"type\":\"1\",\"tips\":\"取消成功!\"}";
                }
                base.Response.Write(str2);
                base.Response.End();
                return;

            case "savesplittoorder":
            {
                base.Response.ContentType = "application/json";
                str2 = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                str4 = Globals.RequestFormStr("fromorderid");
                IList <OrderSplitInfo> infoList = OrderSplitHelper.GetOrderSplitItems(str4);
                if (infoList.Count <= 1)
                {
                    str2 = "{\"type\":\"0\",\"tips\":\"订单未拆分,不能保存!\"}";
                }
                else
                {
                    OrderInfo oldorderinfo = OrderHelper.GetOrderInfo(str4);
                    if (oldorderinfo == null)
                    {
                        str2 = "{\"type\":\"0\",\"tips\":\"主订单已不存在,不能保存!\"}";
                    }
                    else if ((oldorderinfo.OrderStatus != OrderStatus.WaitBuyerPay) && (oldorderinfo.OrderStatus != OrderStatus.BuyerAlreadyPaid))
                    {
                        str2 = "{\"type\":\"0\",\"tips\":\"待付款和待发货状态的订单才允许拆分!\"}";
                    }
                    else
                    {
                        string str8 = OrderSplitHelper.UpdateAndCreateOrderByOrderSplitInfo(infoList, oldorderinfo);
                        if (str8 == "1")
                        {
                            str2 = "{\"type\":\"1\",\"tips\":\"订单拆分成功!\"}";
                        }
                        else
                        {
                            str2 = "{\"type\":\"0\",\"tips\":\"订单拆分失败,原因是" + str8 + "!\"}";
                        }
                    }
                }
                base.Response.Write(str2);
                base.Response.End();
                return;
            }

            default:
                return;
            }
            base.Response.Write(str2);
            base.Response.End();
        }
示例#11
0
        public static string OrderSplitToTemp(OrderInfo OldOrderInfo, string skuid, string neworderid, int itemid)
        {
            IList <OrderSplitInfo> orderSplitItems;
            OrderSplitInfo         info2;
            string  itemList;
            int     id;
            decimal num3;
            decimal num4;

            string[]     strArray;
            LineItemInfo lineItemInfo;
            decimal      num5;
            int          num6;
            int          orderIDNum;
            string       str7;
            string       str     = string.Empty;
            string       orderId = OldOrderInfo.OrderId;
            string       str3    = string.Empty;
            string       str4    = string.Empty;

            if (OldOrderInfo == null)
            {
                return(str);
            }
            if (!(neworderid == "0"))
            {
                orderSplitItems = new OrderSplitDao().GetOrderSplitItems(orderId);
                if (orderSplitItems.Count <= 0)
                {
                    return("-2");
                }
                itemList   = string.Empty;
                id         = 0;
                num6       = 0;
                orderIDNum = 0;
                str7       = string.Empty;
                int num8 = 0;
                foreach (OrderSplitInfo info3 in orderSplitItems)
                {
                    if (info3.OrderIDNum == 1)
                    {
                        itemList = info3.ItemList;
                        id       = info3.Id;
                        num8++;
                    }
                    if (info3.Id.ToString() == neworderid)
                    {
                        str7       = info3.ItemList;
                        num6       = info3.Id;
                        orderIDNum = info3.OrderIDNum;
                        num8++;
                    }
                    if (num8 == 2)
                    {
                        break;
                    }
                }
            }
            else
            {
                int maxOrderIDNum;
                orderSplitItems = new OrderSplitDao().GetOrderSplitItems(orderId);
                if (orderSplitItems.Count == 0)
                {
                    foreach (LineItemInfo info in OldOrderInfo.LineItems.Values)
                    {
                        if (info.ID == itemid)
                        {
                            str3 = info.ID.ToString();
                        }
                        else
                        {
                            str4 = str4 + "," + info.ID.ToString();
                        }
                    }
                    str4                  = str4.Trim(new char[] { ',' });
                    info2                 = new OrderSplitInfo();
                    maxOrderIDNum         = 1;
                    info2.OldOrderId      = orderId;
                    info2.OrderIDNum      = maxOrderIDNum;
                    info2.ItemList        = str4;
                    info2.UpdateTime      = DateTime.Now;
                    info2.AdjustedFreight = OldOrderInfo.AdjustedFreight;
                    new OrderSplitDao().NewOrderSplit(info2);
                    info2.ItemList        = str3;
                    info2.OrderIDNum      = maxOrderIDNum + 1;
                    info2.UpdateTime      = DateTime.Now;
                    info2.AdjustedFreight = 0M;
                    new OrderSplitDao().NewOrderSplit(info2);
                    return("1");
                }
                itemList = string.Empty;
                id       = 0;
                foreach (OrderSplitInfo info3 in orderSplitItems)
                {
                    if (info3.OrderIDNum == 1)
                    {
                        itemList = info3.ItemList;
                        id       = info3.Id;
                        break;
                    }
                }
                LineItemInfo info4 = new LineItemDao().GetReturnMoneyByOrderIDAndProductID(orderId, skuid, itemid);
                if ((info4 != null) && ("," + itemList + ",").Contains("," + info4.ID + ","))
                {
                    num3     = 0M;
                    num4     = 0M;
                    strArray = itemList.Split(new char[] { ',' });
                    if (strArray.Length > 1)
                    {
                        foreach (string str6 in strArray)
                        {
                            lineItemInfo = new LineItemDao().GetLineItemInfo(Globals.ToNum(str6), orderId);
                            if (lineItemInfo != null)
                            {
                                num5 = 0M;
                                if (lineItemInfo.Type == 0)
                                {
                                    num5 = ((lineItemInfo.ItemAdjustedPrice * lineItemInfo.Quantity) - lineItemInfo.ItemAdjustedCommssion) - lineItemInfo.DiscountAverage;
                                }
                                if (lineItemInfo.ID == itemid)
                                {
                                    num4 = num5;
                                    str3 = lineItemInfo.ID.ToString();
                                }
                                num3 += num5;
                            }
                        }
                        if ((num3 > num4) && (num4 > 0M))
                        {
                            info2                 = new OrderSplitInfo();
                            maxOrderIDNum         = new OrderSplitDao().GetMaxOrderIDNum(orderId);
                            info2.Id              = id;
                            info2.OldOrderId      = orderId;
                            info2.OrderIDNum      = 1;
                            info2.ItemList        = ("," + itemList + ",").Replace("," + info4.ID.ToString() + ",", ",").Trim(new char[] { ',' });
                            info2.UpdateTime      = DateTime.Now;
                            info2.AdjustedFreight = OldOrderInfo.AdjustedFreight;
                            new OrderSplitDao().UpdateOrderSplitInfo(info2);
                            info2.AdjustedFreight = 0M;
                            info2.ItemList        = info4.ID.ToString();
                            info2.OrderIDNum      = maxOrderIDNum + 1;
                            info2.UpdateTime      = DateTime.Now;
                            new OrderSplitDao().NewOrderSplit(info2);
                            return("1");
                        }
                        return("-3");
                    }
                    return("-1");
                }
                return("-2");
            }
            num3     = 0M;
            num4     = 0M;
            strArray = itemList.Split(new char[] { ',' });
            if (strArray.Length > 1)
            {
                foreach (string str6 in strArray)
                {
                    lineItemInfo = new LineItemDao().GetLineItemInfo(Globals.ToNum(str6), orderId);
                    if (lineItemInfo != null)
                    {
                        num5 = 0M;
                        if (lineItemInfo.Type == 0)
                        {
                            num5 = ((lineItemInfo.ItemAdjustedPrice * lineItemInfo.Quantity) - lineItemInfo.ItemAdjustedCommssion) - lineItemInfo.DiscountAverage;
                        }
                        if (lineItemInfo.ID == itemid)
                        {
                            num4 = num5;
                            str3 = lineItemInfo.ID.ToString();
                        }
                        num3 += num5;
                    }
                }
                if ((num3 > num4) && (num4 > 0M))
                {
                    info2 = new OrderSplitInfo {
                        Id              = id,
                        OldOrderId      = orderId,
                        OrderIDNum      = 1,
                        ItemList        = ("," + itemList + ",").Replace("," + str3 + ",", ",").Trim(new char[] { ',' }),
                        UpdateTime      = DateTime.Now,
                        AdjustedFreight = OldOrderInfo.AdjustedFreight
                    };
                    new OrderSplitDao().UpdateOrderSplitInfo(info2);
                    info2.Id = num6;
                    info2.AdjustedFreight = 0M;
                    info2.ItemList        = str7 + "," + str3;
                    info2.OrderIDNum      = orderIDNum;
                    info2.UpdateTime      = DateTime.Now;
                    new OrderSplitDao().UpdateOrderSplitInfo(info2);
                    return("1");
                }
                return("-3");
            }
            return("-1");
        }
示例#12
0
        protected void Page_Load(object sender, System.EventArgs e)
        {
            string text = Globals.RequestFormStr("posttype");

            if (string.IsNullOrEmpty(this.reUrl))
            {
                this.reUrl = "manageorder.aspx";
            }
            string key;

            switch (key = text)
            {
            case "getordersplit":
            {
                base.Response.ContentType = "application/json";
                string s = "[]";
                this.orderId = Globals.RequestFormStr("orderid");
                System.Collections.Generic.IList <OrderSplitInfo> orderSplitItems = OrderSplitHelper.GetOrderSplitItems(this.orderId);
                if (orderSplitItems.Count > 0)
                {
                    System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder();
                    stringBuilder.Append("[");
                    int num2 = 0;
                    foreach (OrderSplitInfo current in orderSplitItems)
                    {
                        if (num2 != 0)
                        {
                            stringBuilder.Append(",");
                        }
                        num2++;
                        stringBuilder.Append(string.Concat(new object[]
                            {
                                "{\"id\":",
                                current.Id,
                                ",\"orderid\":\"",
                                this.FormatNewOrderID(current.OldOrderId, current.OrderIDNum.ToString()),
                                "\",\"adjustedfreight\":",
                                current.AdjustedFreight.ToString("F2"),
                                ",\"data\":[",
                                this.GetOrderItemListData(current.ItemList, current.OldOrderId),
                                "]}"
                            }));
                    }
                    stringBuilder.Append("]");
                    s = stringBuilder.ToString();
                }
                else
                {
                    OrderInfo orderInfo = OrderHelper.GetOrderInfo(this.orderId);
                    System.Text.StringBuilder stringBuilder2 = new System.Text.StringBuilder();
                    if (orderInfo != null)
                    {
                        if (orderInfo.SplitState > 0)
                        {
                            stringBuilder2.Append("{\"id\":\"splited\"}");
                        }
                        else
                        {
                            stringBuilder2.Append("[");
                            if (orderInfo != null)
                            {
                                stringBuilder2.Append(string.Concat(new string[]
                                    {
                                        "{\"id\":0,\"orderid\":\"",
                                        orderInfo.OrderId,
                                        "\",\"adjustedfreight\":",
                                        orderInfo.AdjustedFreight.ToString("F2"),
                                        ",\"data\":[",
                                        this.GetOrderItemListByOrder(orderInfo),
                                        "]}"
                                    }));
                            }
                            stringBuilder2.Append("]");
                        }
                    }
                    s = stringBuilder2.ToString();
                }
                base.Response.Write(s);
                base.Response.End();
                return;
            }

            case "savesplit":
            {
                base.Response.ContentType = "application/json";
                string    text2      = Globals.RequestFormStr("toorderid");
                string    text3      = Globals.RequestFormStr("fromorderid");
                int       num3       = Globals.RequestFormNum("itemid");
                string    skuid      = Globals.RequestFormStr("fromskuid");
                string    s          = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                OrderInfo orderInfo2 = OrderHelper.GetOrderInfo(text3);
                if (orderInfo2 != null)
                {
                    if (orderInfo2.OrderStatus == OrderStatus.WaitBuyerPay || orderInfo2.OrderStatus == OrderStatus.BuyerAlreadyPaid)
                    {
                        decimal d  = orderInfo2.GetTotal() - orderInfo2.AdjustedFreight;
                        decimal d2 = 0m;
                        foreach (LineItemInfo current2 in orderInfo2.LineItems.Values)
                        {
                            if (current2.ID == num3)
                            {
                                if (current2.Type != 1)
                                {
                                    d2 = current2.ItemAdjustedPrice * current2.Quantity - current2.ItemAdjustedCommssion - current2.DiscountAverage;
                                    break;
                                }
                                break;
                            }
                        }
                        if (d2 >= d)
                        {
                            s = "{\"type\":\"0\",\"tips\":\"订单拆分后,原订单的价格将不大于0!\"}";
                        }
                        else if (d2 == 0m && text2 == "0")
                        {
                            s = "{\"type\":\"0\",\"tips\":\"订单拆分后,新订单的价格必须大于0!\"}";
                        }
                        else
                        {
                            string text4 = OrderSplitHelper.OrderSplitToTemp(orderInfo2, skuid, text2, num3);
                            string a;
                            if ((a = text4) != null)
                            {
                                if (!(a == "1"))
                                {
                                    if (!(a == "-1"))
                                    {
                                        if (!(a == "-2"))
                                        {
                                            if (a == "-3")
                                            {
                                                s = "{\"type\":\"0\",\"tips\":\"拆分出去的订单价格必须大于0!\"}";
                                            }
                                        }
                                        else
                                        {
                                            s = "{\"type\":\"0\",\"tips\":\"非法数据!\"}";
                                        }
                                    }
                                    else
                                    {
                                        s = "{\"type\":\"0\",\"tips\":\"订单只有一条记录,不允许拆分!\"}";
                                    }
                                }
                                else
                                {
                                    s = "{\"type\":\"1\",\"tips\":\"操作成功!\"}";
                                }
                            }
                        }
                    }
                    else
                    {
                        OrderSplitHelper.DelOrderSplitByOrderID(text3, null);
                        s = "{\"type\":\"3\",\"tips\":\"当前订单状态不允许拆分!\"}";
                    }
                }
                base.Response.Write(s);
                base.Response.End();
                return;
            }

            case "cancelordersplit":
            {
                base.Response.ContentType = "application/json";
                string    text3      = Globals.RequestFormStr("fromorderid");
                int       num3       = Globals.RequestFormNum("itemid");
                int       num4       = Globals.RequestFormNum("fromsplitid");
                string    s          = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                OrderInfo orderInfo2 = OrderHelper.GetOrderInfo(text3);
                if (orderInfo2 != null && num3 > 0 && num4 > 0)
                {
                    string text5 = OrderSplitHelper.CancelSplitOrderByID(text3, num4, num3);
                    string a2;
                    if ((a2 = text5) != null && a2 == "1")
                    {
                        s = "{\"type\":\"1\",\"tips\":\"操作成功!\"}";
                    }
                }
                base.Response.Write(s);
                base.Response.End();
                return;
            }

            case "editfright":
            {
                base.Response.ContentType = "application/json";
                string  s    = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                int     id   = Globals.RequestFormNum("id");
                decimal num5 = 0m;
                decimal.TryParse(Globals.RequestFormStr("val"), out num5);
                if (num5 >= 0m)
                {
                    OrderSplitInfo orderSplitInfo = OrderSplitHelper.GetOrderSplitInfo(id);
                    if (orderSplitInfo != null)
                    {
                        orderSplitInfo.AdjustedFreight = num5;
                        if (OrderSplitHelper.UpdateOrderSplitFright(orderSplitInfo))
                        {
                            s = "{\"type\":\"1\",\"tips\":\"操作成功!\"}";
                        }
                    }
                }
                base.Response.Write(s);
                base.Response.End();
                return;
            }

            case "cancelsplittoorder":
            {
                base.Response.ContentType = "application/json";
                string s     = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                string text3 = Globals.RequestFormStr("fromorderid");
                if (OrderSplitHelper.DelOrderSplitByOrderID(text3, null))
                {
                    s = "{\"type\":\"1\",\"tips\":\"取消成功!\"}";
                }
                base.Response.Write(s);
                base.Response.End();
                return;
            }

            case "savesplittoorder":
            {
                base.Response.ContentType = "application/json";
                string s     = "{\"type\":\"0\",\"tips\":\"操作失败!\"}";
                string text3 = Globals.RequestFormStr("fromorderid");
                System.Collections.Generic.IList <OrderSplitInfo> orderSplitItems2 = OrderSplitHelper.GetOrderSplitItems(text3);
                if (orderSplitItems2.Count > 1)
                {
                    OrderInfo orderInfo3 = OrderHelper.GetOrderInfo(text3);
                    if (orderInfo3 != null)
                    {
                        if (orderInfo3.OrderStatus == OrderStatus.WaitBuyerPay || orderInfo3.OrderStatus == OrderStatus.BuyerAlreadyPaid)
                        {
                            string text6 = OrderSplitHelper.UpdateAndCreateOrderByOrderSplitInfo(orderSplitItems2, orderInfo3);
                            if (text6 == "1")
                            {
                                s = "{\"type\":\"1\",\"tips\":\"订单拆分成功!\"}";
                            }
                            else
                            {
                                s = "{\"type\":\"0\",\"tips\":\"订单拆分失败,原因是" + text6 + "!\"}";
                            }
                        }
                        else
                        {
                            s = "{\"type\":\"0\",\"tips\":\"待付款和待发货状态的订单才允许拆分!\"}";
                        }
                    }
                    else
                    {
                        s = "{\"type\":\"0\",\"tips\":\"主订单已不存在,不能保存!\"}";
                    }
                }
                else
                {
                    s = "{\"type\":\"0\",\"tips\":\"订单未拆分,不能保存!\"}";
                }
                base.Response.Write(s);
                base.Response.End();
                break;
            }

                return;
            }
        }