Esempio n. 1
0
 /// <summary>
 /// 将一条订单相关信息展示到一行上面去
 /// </summary>
 /// <param name="orderRow">展示行</param>
 /// <param name="orderCur">展示订单</param>
 private void InitOrderRow(DataRow orderRow, ViewTradeStock orderCur)
 {
     orderRow["tid"]                 = orderCur.tid;
     orderRow["oid"]                 = orderCur.oid;
     orderRow["TradeOrderCode"]      = orderCur.TradeOrderCode;
     orderRow["IsSelected"]          = false;
     orderRow["CustomTid"]           = orderCur.CustomTid;
     orderRow["ItemName"]            = orderCur.title;
     orderRow["sku_properties_name"] = orderCur.sku_properties_name;
     orderRow["LeftQuantity"]        = orderCur.SkuQuantity - orderCur.OccupiedQuantity;
     orderRow["num"]                 = orderCur.num;
     orderRow["price"]               = orderCur.price;
     orderRow["payment"]             = orderCur.payment;
     orderRow["OrderType"]           = orderCur.OrderType;
     orderRow["numSplit"]            = string.Empty;
     orderRow["orderTotalFee"]       = orderCur.total_fee;
     orderRow["iid"]                 = orderCur.iid;
     //查询货物库存量
     if (orderCur.SkuQuantity == null)
     {
         orderRow["TradeIsLockProduct"] = LackProductOrNot.NotBuildStock;
     }
     if (orderCur.SkuQuantity - orderCur.OccupiedQuantity - orderCur.num >= 0)
     {
         orderRow["TradeIsLockProduct"] = LackProductOrNot.Normal;
     }
     else
     {
         orderRow["TradeIsLockProduct"] = LackProductOrNot.Lack;
     }
 }
Esempio n. 2
0
        private List <ViewTradeStock> ViewTradeStockCopyData(List <View_TradeStock> viewSrc)
        {
            if (viewSrc == null || viewSrc.Count == 0)
            {
                return(null);
            }
            List <ViewTradeStock> viewDes = new List <ViewTradeStock>();

            foreach (View_TradeStock Tradestock in viewSrc)
            {
                ViewTradeStock TradestockObj = new ViewTradeStock();
                viewCopy(TradestockObj, Tradestock);
                viewDes.Add(TradestockObj);
            }
            return(viewDes);
        }
Esempio n. 3
0
 private void viewCopyData(View_TradeStock viewDes, ViewTradeStock viewSrc)
 {
     viewDes.TradeOrderID           = viewSrc.TradeOrderID;
     viewDes.TradeOrderCode         = viewSrc.TradeOrderCode;
     viewDes.iid                    = viewSrc.iid;
     viewDes.sku_id                 = viewSrc.sku_id;
     viewDes.oid                    = viewSrc.oid;
     viewDes.outer_sku_id           = viewSrc.outer_sku_id;
     viewDes.outer_iid              = viewSrc.outer_iid;
     viewDes.sku_properties_name    = viewSrc.sku_properties_name;
     viewDes.price                  = viewSrc.price;
     viewDes.total_fee              = viewSrc.total_fee;
     viewDes.discount_fee           = viewSrc.discount_fee;
     viewDes.adjust_fee             = viewSrc.adjust_fee;
     viewDes.payment                = viewSrc.payment;
     viewDes.item_meal_name         = viewSrc.item_meal_name;
     viewDes.num                    = viewSrc.num;
     viewDes.title                  = viewSrc.title;
     viewDes.pic_path               = viewSrc.pic_path;
     viewDes.seller_nick            = viewSrc.seller_nick;
     viewDes.buyer_nick             = viewSrc.buyer_nick;
     viewDes.type                   = viewSrc.type;
     viewDes.created                = viewSrc.created;
     viewDes.refund_status          = viewSrc.refund_status;
     viewDes.seller_type            = viewSrc.seller_type;
     viewDes.snapshot_url           = viewSrc.snapshot_url;
     viewDes.snapshot               = viewSrc.snapshot;
     viewDes.timeout_action_time    = viewSrc.timeout_action_time;
     viewDes.OrderType              = viewSrc.OrderType;
     viewDes.OrderTimeStamp         = viewSrc.OrderTimeStamp;
     viewDes.HouseCode              = viewSrc.HouseCode;
     viewDes.LayoutCode             = viewSrc.LayoutCode;
     viewDes.ShopTypeName           = viewSrc.ShopTypeName;
     viewDes.LogisticCompanyName    = viewSrc.LogisticCompanyName;
     viewDes.TemplateName           = viewSrc.TemplateName;
     viewDes.CustomTid              = viewSrc.CustomTid;
     viewDes.LogisticCompanyCode    = viewSrc.LogisticCompanyCode;
     viewDes.TemplateCode           = viewSrc.TemplateCode;
     viewDes.tid                    = viewSrc.tid;
     viewDes.TradeCreated           = viewSrc.TradeCreated;
     viewDes.buyer_message          = viewSrc.buyer_message;
     viewDes.buyer_memo             = viewSrc.buyer_memo;
     viewDes.alipay_no              = viewSrc.alipay_no;
     viewDes.TradePayment           = viewSrc.TradePayment;
     viewDes.status                 = viewSrc.status;
     viewDes.TradeAdjustFee         = viewSrc.TradeAdjustFee;
     viewDes.TradeDiscountFee       = viewSrc.TradeDiscountFee;
     viewDes.pay_time               = viewSrc.pay_time;
     viewDes.end_time               = viewSrc.end_time;
     viewDes.post_fee               = viewSrc.post_fee;
     viewDes.receiver_name          = viewSrc.receiver_name;
     viewDes.receiver_city          = viewSrc.receiver_city;
     viewDes.receiver_district      = viewSrc.receiver_district;
     viewDes.receiver_address       = viewSrc.receiver_address;
     viewDes.receiver_zip           = viewSrc.receiver_zip;
     viewDes.receiver_mobile        = viewSrc.receiver_mobile;
     viewDes.receiver_phone         = viewSrc.receiver_phone;
     viewDes.receiver_state         = viewSrc.receiver_state;
     viewDes.TradeTimeStamp         = viewSrc.TradeTimeStamp;
     viewDes.HasInvoice             = viewSrc.HasInvoice;
     viewDes.TradeSourceType        = viewSrc.TradeSourceType;
     viewDes.IsSplited              = viewSrc.IsSplited;
     viewDes.IsCombined             = viewSrc.IsCombined;
     viewDes.LockedUserName         = viewSrc.LockedUserName;
     viewDes.LockedUserCode         = viewSrc.LockedUserCode;
     viewDes.LockedTime             = viewSrc.LockedTime;
     viewDes.ShippingCode           = viewSrc.ShippingCode;
     viewDes.LastShippingType       = viewSrc.LastShippingType;
     viewDes.LocalStatus            = viewSrc.LocalStatus;
     viewDes.CombineCode            = viewSrc.CombineCode;
     viewDes.ParentCustomTid        = viewSrc.ParentCustomTid;
     viewDes.SkuProps_Str           = viewSrc.SkuProps_Str;
     viewDes.SkuQuantity            = viewSrc.SkuQuantity;
     viewDes.SkuPrice               = viewSrc.SkuPrice;
     viewDes.OccupiedQuantity       = viewSrc.OccupiedQuantity;
     viewDes.OuterID                = viewSrc.OuterID;
     viewDes.ItemName               = viewSrc.ItemName;
     viewDes.CatName                = viewSrc.CatName;
     viewDes.Cid                    = viewSrc.Cid;
     viewDes.seller_name            = viewSrc.seller_name;
     viewDes.seller_phone           = viewSrc.seller_phone;
     viewDes.seller_mobile          = viewSrc.seller_mobile;
     viewDes.seller_alipay_no       = viewSrc.seller_alipay_no;
     viewDes.commission_fee         = viewSrc.commission_fee;
     viewDes.buyer_email            = viewSrc.buyer_email;
     viewDes.consign_time           = viewSrc.consign_time;
     viewDes.buyer_alipay_no        = viewSrc.buyer_alipay_no;
     viewDes.TradeTotalFee          = viewSrc.TradeTotalFee;
     viewDes.buyer_obtain_point_fee = viewSrc.buyer_obtain_point_fee;
     viewDes.modified               = viewSrc.modified;
     viewDes.point_fee              = viewSrc.point_fee;
     viewDes.real_point_fee         = viewSrc.real_point_fee;
     viewDes.seller_memo            = viewSrc.seller_memo;
     viewDes.seller_rate            = viewSrc.seller_rate;
     viewDes.buyer_rate             = viewSrc.buyer_rate;
     viewDes.TradeType              = viewSrc.TradeType;
     viewDes.shipping_type          = viewSrc.shipping_type;
     viewDes.has_post_fee           = viewSrc.has_post_fee;
     viewDes.seller_email           = viewSrc.seller_email;
     viewDes.available_confirm_fee  = viewSrc.available_confirm_fee;
     viewDes.received_payment       = viewSrc.received_payment;
     viewDes.cod_fee                = viewSrc.cod_fee;
     viewDes.cod_status             = viewSrc.cod_status;
     viewDes.TradeTimeOutActionTime = viewSrc.TradeTimeOutActionTime;
     viewDes.is_3D                  = viewSrc.is_3D;
     viewDes.BuyerType              = viewSrc.BuyerType;
     viewDes.SellerType             = viewSrc.SellerType;
 }
Esempio n. 4
0
        /// <summary>
        /// 合并方法
        /// </summary>
        private void combine()
        {
            int                   count      = 0;
            List <int>            recordList = new List <int>();
            List <ViewTradeStock> viewList   = new List <ViewTradeStock>();

            #region 记录被勾选的行
            for (; count < gvChildOrder.RowCount; count++)
            {
                DataRow row = gvChildOrder.GetDataRow(count);
                if (row == null)
                {
                    return;
                }
                if (Convert.ToBoolean(row["IsSelected"].ToString()))
                {
                    recordList.Add(count);
                }
            }
            #endregion
            for (int record = 0; record < recordList.Count; record++)
            {
                /*取出勾选行的数据*/
                DataRow dataRow = gvChildOrder.GetDataRow(record);
                if (dataRow == null)
                {
                    return;
                }
                int view = 0;
                for (view = 0; view < _parentOrderList.Count; view++)
                {
                    ViewTradeStock viewObj = new ViewTradeStock();
                    /*找到在_parentOrderList对应的行*/
                    if (_parentOrderList[view].oid == dataRow["oid"].ToString())
                    {
                        /*取出_childOrderList中的对应的数据*/
                        viewObj = _childOrderList.Where(q => q.oid == dataRow["oid"].ToString()).FirstOrDefault();
                        int flag = 0;
                        if (viewObj == null)
                        {
                            return;
                        }
                        /*取出数据在  _childOrderList下标*/
                        flag = _childOrderList.IndexOf(viewObj);
                        /*订单量更新*/
                        viewObj.num += _parentOrderList[view].num;
                        /*总消费更新*/
                        viewObj.total_fee = (viewObj.price) * viewObj.num;
                        _parentOrderList.Remove(_parentOrderList[view]);
                        viewList.Add(viewObj);
                        _childOrderList.Remove(_childOrderList[flag]);
                        break;
                    }
                }
                /*子列表中的订单在父列表中没有*/
                if (view >= _parentOrderList.Count)
                {
                    ViewTradeStock viewObj = new ViewTradeStock();
                    viewObj = _childOrderList.Where(q => q.oid == dataRow["oid"].ToString()).FirstOrDefault();
                    if (viewObj == null)
                    {
                        return;
                    }
                    viewList.Add(viewObj);
                    _childOrderList.Remove(viewObj);
                }
            }
            _parentOrderList.AddRange(viewList);
            LoadSpiltTrade(gcParentTrade, _parentOrderList);
            gcParentTrade.RefreshDataSource();
            LoadSpiltTrade(gcChildTrade, _childOrderList);
            gcChildTrade.RefreshDataSource();
        }
Esempio n. 5
0
        /// <summary>
        /// 自动拆分
        /// </summary>
        private void AutoSplit()
        {
            #region 自动拆分
            /*子列表清空*/
            _childOrderList.Clear();
            /*父列表清空*/
            _parentOrderList.Clear();
            /*获取值*/
            List <View_TradeStock> ParentTradeList = View_TradeStockService.GetView_TradeStock(p => p.CustomTid == _customTid);
            /*数据转换*/
            _parentOrderList = ViewTradeStockCopyData(ParentTradeList);

            /*删除列表*/
            List <ViewTradeStock> removeTradeList = new List <ViewTradeStock>();

            for (int i = 0; i < _parentOrderList.Count; i++)
            {
                int LeftQuantity = 0;

                /*剩余量*/
                LeftQuantity = _parentOrderList[i].SkuQuantity.Value - _parentOrderList[i].OccupiedQuantity.Value;
                /*自动拆分缺货的订单*/
                if (LeftQuantity < _parentOrderList[i].num)
                {
                    View_TradeStock viewTrade      = View_TradeStockService.GetView_TradeStock(q => q.TradeOrderCode == _parentOrderList[i].TradeOrderCode).FirstOrDefault();
                    ViewTradeStock  viewChildTrade = new ViewTradeStock();
                    if (viewTrade == null)
                    {
                        return;
                    }
                    /*数据转换*/
                    viewCopy(viewChildTrade, viewTrade);
                    /*订单量改变*/
                    viewChildTrade.num = _parentOrderList[i].num - LeftQuantity;
                    /*订单量改变*/
                    viewChildTrade.total_fee = (viewChildTrade.price) * viewChildTrade.num;
                    /*修改customtid*/
                    viewChildTrade.CustomTid = "child" + viewChildTrade.CustomTid;
                    /*tradeordercode*/
                    viewChildTrade.TradeOrderCode = Guid.NewGuid().ToString();
                    /*向子列表中填值*/
                    _childOrderList.Add(viewChildTrade);

                    /*订单量改变*/
                    _parentOrderList[i].num = LeftQuantity;

                    if (_parentOrderList[i].num == 0)
                    {
                        removeTradeList.Add(_parentOrderList[i]);
                    }
                    /*订单量改变*/
                    _parentOrderList[i].total_fee = (_parentOrderList[i].price) * _parentOrderList[i].num;
                } //if
            }     //for
            /*将全部缺货的订单分离出去*/
            foreach (ViewTradeStock tradeStock in removeTradeList)
            {
                _parentOrderList.Remove(tradeStock);
            }
            #endregion

            #region  子交易修改
            ChildTrade = TradeService.GetTrade(_customTid);
            if (ChildTrade == null)
            {
                return;
            }
            /*CustomTid 随机产生一个*/
            ChildTrade.CustomTid       = "child" + _customTid;
            ChildTrade.ParentCustomTid = _customTid;
            ChildTrade.IsSplited       = true;
            /*邮费*/
            ChildTrade.post_fee = ChildTrade.post_fee;
            /*修改应付金额,总费*/
            ChildTrade.payment   = 0;
            ChildTrade.total_fee = 0.0;
            float ChildTotalFee = 0;
            foreach (ViewTradeStock order in _childOrderList)
            {
                ChildTrade.payment += order.payment;
                ChildTotalFee      += (float)(order.total_fee);
            }
            ChildTrade.total_fee = ChildTotalFee;
            ChildTrade.post_fee  = ParentTradeList[0].post_fee;
            #endregion

            #region 父交易修改
            /*获取父交易*/
            ParentTrade = TradeService.GetTrade(_customTid);
            /*修改父交易*/
            ParentTrade.IsSplited       = true;
            ParentTrade.ParentCustomTid = "0";
            /*修改应付金额,总费*/
            ParentTrade.payment = 0;
            float total_fee = 0;
            foreach (ViewTradeStock order in _parentOrderList)
            {
                ParentTrade.payment += order.payment;
                total_fee           += (float)(order.total_fee);
            }
            ParentTrade.total_fee = total_fee;
            #endregion

            #region 数据展示
            LoadSpiltTrade(gcParentTrade, _parentOrderList);
            gcParentTrade.RefreshDataSource();

            LoadSpiltTrade(gcChildTrade, _childOrderList);
            gcChildTrade.RefreshDataSource();
            #endregion
        }
Esempio n. 6
0
        /// <summary>
        /// 拆分函数
        /// </summary>
        /// <param name="gc"></param>
        /// <param name="view"></param>
        private void FunSplit(GridControl gc, GridView view)
        {
            #region 订单拆分修改
            List <int> rowList = new List <int>();

            //接收从数据库视图表中传出来的值,此值不能修改
            Alading.Entity.View_TradeStock ParentOrder = new Alading.Entity.View_TradeStock();

            Alading.Entity.View_TradeStock ChildOrder = new Alading.Entity.View_TradeStock();

            //所勾选要被拆分的交易 ,用于修改数据库
            List <ViewTradeStock> tradeParentOrderList = new List <ViewTradeStock>();

            DataRow row = null;

            int NullRecord = 0;

            for (int rowHandle = 0; rowHandle < view.RowCount; rowHandle++)
            {
                //将从数据库视图表中传出来的值转换
                ViewTradeStock ParentOrderExtent = new ViewTradeStock();
                ViewTradeStock ChildOrderExtent  = new ViewTradeStock();

                row = view.GetDataRow(rowHandle);

                if (row == null)
                {
                    return;
                }
                if (Convert.ToBoolean(row["IsSelected"].ToString()))
                {
                    ParentOrder = View_TradeStockService.GetView_TradeStock(q => q.oid == row["oid"].ToString()).FirstOrDefault();
                    if (ParentOrder == null)
                    {
                        return;
                    }
                    /*数据转换*/
                    viewCopy(ParentOrderExtent, ParentOrder);
                    /*购买量的修改*/
                    if (row["numSplit"].ToString() == null || row["numSplit"].ToString() == string.Empty)
                    {
                        return;
                    }

                    ParentOrderExtent.num = int.Parse(row["num"].ToString()) - int.Parse(row["numSplit"].ToString());
                    /*total_fee的修改*/
                    ParentOrderExtent.total_fee = float.Parse(row["price"].ToString()) * ParentOrderExtent.num;
                    /*修改payment*/
                    ParentOrderExtent.payment = (ParentOrderExtent.total_fee + ParentOrderExtent.adjust_fee);
                    tradeParentOrderList.Add(ParentOrderExtent);

                    ChildOrder = ParentOrder;
                    if (ChildOrder == null)
                    {
                        return;
                    }
                    /*数据转换*/
                    viewCopy(ChildOrderExtent, ChildOrder);
                    /*购买量修改*/
                    ChildOrderExtent.num            = int.Parse(row["numSplit"].ToString());
                    ChildOrderExtent.TradeOrderCode = Guid.NewGuid().ToString();
                    /*total_fee的修改*/
                    ChildOrderExtent.total_fee = float.Parse(row["price"].ToString()) * ChildOrderExtent.num;
                    /*修改payment*/
                    ChildOrderExtent.payment = (ChildOrderExtent.total_fee);
                    /*修改customTid  子交易后面加1*/
                    ChildOrderExtent.CustomTid = "child" + ChildOrderExtent.CustomTid;

                    #region 如果新拆分后订单在子订单列表中存在,则累加相应的量
                    int count = 0;
                    for (count = 0; count < _childOrderList.Count; count++)
                    {
                        if (ChildOrderExtent.oid == _childOrderList[count].oid)
                        {
                            ChildOrderExtent.num += _childOrderList[count].num;

                            ChildOrderExtent.total_fee = (ChildOrderExtent.price) * ChildOrderExtent.num;
                            ChildOrderExtent.payment   = (ChildOrderExtent.total_fee);

                            /*修改相关量*/
                            _childOrderList[count].num       = ChildOrderExtent.num;
                            _childOrderList[count].total_fee = ChildOrderExtent.total_fee;
                            _childOrderList[count].payment   = ChildOrderExtent.payment;

                            break;
                        } //if
                    }     //for
                    /*子订单列表中没有新添加的订单*/
                    if (count >= _childOrderList.Count)
                    {
                        _childOrderList.Add(ChildOrderExtent);
                    }
                }/*if (Convert.ToBoolean(row["IsSelected"].ToString()))*/
                else
                {
                    /*记载没被勾选的行数*/
                    NullRecord++;
                }
            }/*for (int rowHandle = 0; rowHandle < view.RowCount; rowHandle++)*/
            if (NullRecord >= view.RowCount)
            {
                XtraMessageBox.Show(Alading.Properties.Resources.NotSelctCanNOtSplit, Alading.Properties.Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            #endregion

            #endregion

            #region 修改显示的订单列表
            List <ViewTradeStock> removeTradeList = new List <ViewTradeStock>();
            for (int i = 0; i < tradeParentOrderList.Count; i++)
            {
                for (int j = 0; j < _parentOrderList.Count; j++)
                {
                    if (tradeParentOrderList[i].oid == _parentOrderList[j].oid)
                    {
                        if (tradeParentOrderList[i].num == 0)
                        {
                            removeTradeList.Add(_parentOrderList[j]);
                        }
                        _parentOrderList[j].num       = tradeParentOrderList[i].num;
                        _parentOrderList[j].total_fee = tradeParentOrderList[i].total_fee;
                        _parentOrderList[j].payment   = tradeParentOrderList[i].payment;
                    }
                }
            }
            /*删除_parentOrderList.num 为零的交易*/
            foreach (ViewTradeStock tradeStock in removeTradeList)
            {
                _parentOrderList.Remove(tradeStock);
            }
            #endregion

            #region 所对应交易的修改
            /*获取父交易*/
            ParentTrade = TradeService.GetTrade(_customTid);
            if (ParentTrade == null)
            {
                return;
            }
            /*修改父交易*/
            ParentTrade.IsSplited       = true;
            ParentTrade.ParentCustomTid = "0";
            /*修改应付金额,总费*/
            ParentTrade.payment = 0;
            float total_fee = 0;
            foreach (ViewTradeStock order in _parentOrderList)
            {
                ParentTrade.payment += (double)order.payment;
                total_fee           += (float)order.total_fee;
            }
            ParentTrade.total_fee = total_fee;
            /*修改子交易*/
            ChildTrade = TradeService.GetTrade(_customTid);
            if (ChildTrade == null)
            {
                return;
            }
            /*CustomTid 随机产生一个*/
            ChildTrade.CustomTid       = "child" + _customTid;
            ChildTrade.ParentCustomTid = _customTid;
            ChildTrade.IsSplited       = true;
            /*邮费*/
            ChildTrade.post_fee = ChildTrade.post_fee;
            /*修改应付金额,总费*/
            ChildTrade.payment   = 0;
            ChildTrade.total_fee = 0.0;
            float ChildTotalFee = 0;
            foreach (ViewTradeStock order in _childOrderList)
            {
                ChildTrade.payment += order.payment;
                ChildTotalFee      += (float)(order.total_fee);
            }
            ChildTrade.total_fee = ChildTotalFee;
            /*子交易加上邮费*/
            ChildTrade.post_fee = ParentTradeList[0].post_fee;
            #endregion

            #region 数据展示
            //拆分不合理
            if (_parentOrderList.Count == 0)
            {
                XtraMessageBox.Show("拆分不合理!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error);

                _parentOrderList.Clear();

                //数据转换
                _parentOrderList = ViewTradeStockCopyData(ParentTradeList);

                LoadSpiltTrade(gcParentTrade, _parentOrderList);

                _childOrderList.Clear();
            }
            LoadSpiltTrade(gcParentTrade, _parentOrderList);
            gcParentTrade.RefreshDataSource();

            LoadSpiltTrade(gcChildTrade, _childOrderList);
            gcChildTrade.RefreshDataSource();
            #endregion
        }