/// 向交易添加赠品 private void barGiftAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { int totalRowCount = gvGiftList.RowCount; //循环获取需要提交的Trade List <TradeOrder> orderList = new List <TradeOrder>(); //批量提交数据 View_StockItemProduct giftItem = null; WaitDialogForm waitFrm = new WaitDialogForm(Alading.Taobao.Constants.OPERATE_DB_DATA); for (int runner = 0; runner < totalRowCount; runner++) { giftItem = gvGiftList.GetRow(runner) as Alading.Entity.View_StockItemProduct; if (Convert.ToBoolean(giftItem.IsSelected)) { int existFlag = (gvGiftOrders.DataSource as List <TradeOrder>).Count(p => p.outer_sku_id == giftItem.SkuOuterID); if (existFlag != 0) { XtraMessageBox.Show("交易中已经含有赠品:" + giftItem.Name); } else { TradeOrder createOrder = new TradeOrder(); CreateOrderRow(createOrder, giftItem); orderList.Add(createOrder); } } } TradeOrderService.AddTradeOrder(orderList); waitFrm.Close(); InitTradeList(); XtraMessageBox.Show("添加赠品成功!"); }
//绑定数据到下方界面 根据选中选中选项卡取得数据 private void SetTradeDetailMessage(Alading.Entity.Trade trade) { if (trade == null) { return; } switch (tabsDetailMessage.SelectedTabPageIndex) { case 0: LoadPrintPreview(trade); break; case 1: break; case 2: //调用存储过程获得数据 gcOrdersDetail.DataSource = TradeOrderService.GetView_TradeDetailItemsDataSet(trade.CustomTid).Tables[0]; break; case 3: detailGCFlowMessage.DataSource = TradeInfoService.GetTradeInfo(p => p.CustomTid == trade.CustomTid); break; } }
/// 根据界面内容来提交交易,订单数据 private void SummitTradeAndOrders() { Alading.Entity.Trade createTrade = new Alading.Entity.Trade(); TradeCreateData(createTrade); foreach (DataRow row in _dTbRecord.Rows) { Alading.Entity.TradeOrder createOrder = new Alading.Entity.TradeOrder(); OrderCreateData(createOrder, row, createTrade.CustomTid); TradeOrderService.AddTradeOrder(createOrder); } TradeService.AddTrade(createTrade); }
//确认订单修改 private void barConfirmNumChange_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { int totalRowCount = gvGiftOrders.RowCount;//循环获取需要提交的Trade TradeOrder orderItem = null; WaitDialogForm waitFrm = new WaitDialogForm(Alading.Taobao.Constants.OPERATE_DB_DATA); for (int runner = 0; runner < totalRowCount; runner++) { orderItem = gvGiftOrders.GetRow(runner) as Alading.Entity.TradeOrder; TradeOrderService.UpdateTradeOrder(orderItem); } waitFrm.Close(); InitTradeList(); XtraMessageBox.Show("保存修改成功!"); }
//保存修改 private void BtnModify_Click(object sender, EventArgs e) { DialogResult result = DialogResult.OK; if (!Alading.Utils.SystemHelper.CompareTimeStamp(_orderTimeStamp as byte[], _tradeStock.OrderTimeStamp)) { result = XtraMessageBox.Show("当前订单已经被修改,继续修改(OK)/查看流程信息(Canel)", "订单修改", MessageBoxButtons.OKCancel); } if (result == DialogResult.OK) { string skuProsName = cmbProperties.Text.ToString();//取得选中sku_pros TradeOrder order = TradeOrderService.GetTradeOrder(p => p.TradeOrderCode == _tradeStock.TradeOrderCode).FirstOrDefault(); if (order.sku_properties_name != skuProsName) //的的确确修改订单信息才提交笔生成流程信息 { //创建一条交易信息 string flowMeassge = "商品\"" + _tradeStock.title + "\"销售属性修改:" + order.sku_properties_name + "-->" + skuProsName; SystemHelper.CreateFlowMessage(_tradeStock.CustomTid, "订单信息修改", flowMeassge, "订单管理"); order.sku_properties_name = skuProsName; #region 保存修改信息到数据库和并同步到淘宝 WaitDialogForm wdf = new WaitDialogForm(Alading.Taobao.Constants.OPERATE_TBDB_DATA); try { UpdateTaobaoOrder(); TradeOrderService.UpdateTradeOrder(order); wdf.Close(); XtraMessageBox.Show("修改订单信息成功!"); } catch (Exception ex) { wdf.Close(); XtraMessageBox.Show("将修改信息保存到淘宝失败,修改无效!原因:" + ex.Message); } #endregion } else { result = DialogResult.Ignore; //实际什么都没做,不需要更新数据库时间戳 } } //如果在主界面接受到的结果为Dialog.Canel,则跳转流程信息页面。如果是Dialog.OK则修改界面信息,Dialog.Ignore不做 this.DialogResult = result; this.Close(); }
//绑定数据到下方界面 根据选中选中选项卡取得数据 private void SetTradeDetailMessage(Alading.Entity.Trade trade) { if (trade == null) { gcOrdersDetail.DataSource = null; detailGCFlowMessage.DataSource = null; return; } switch (tabsDetail.SelectedTabPageIndex) { case 0: gcOrdersDetail.DataSource = TradeOrderService.GetView_TradeDetailItemsDataSet(_focusedTrade.CustomTid).Tables[0]; break; case 1: detailGCFlowMessage.DataSource = TradeInfoService.GetTradeInfo(p => p.CustomTid == trade.CustomTid); break; } }
//删除选中交易 private void barDeleteGifts_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { int totalRowCount = gvGiftOrders.RowCount; //循环获取需要提交的Trade TradeOrder orderItem = null; List <string> removeOrderList = new List <string>(); //批量删除数据 WaitDialogForm waitFrm = new WaitDialogForm(Alading.Taobao.Constants.OPERATE_DB_DATA); for (int runner = 0; runner < totalRowCount; runner++) { orderItem = gvGiftOrders.GetRow(runner) as Alading.Entity.TradeOrder; if (Convert.ToBoolean(orderItem.IsSelected)) { removeOrderList.Add(orderItem.TradeOrderCode); } } waitFrm.Close(); TradeOrderService.RemoveTradeOrder(removeOrderList); InitTradeList(); XtraMessageBox.Show("删除赠品成功!"); }
/// 按照每个Tab快的功能不同而设定其GridControl的值 private void InitSelectTab() { WaitDialogForm wdf = new WaitDialogForm(Constants.WAIT_LOAD_DATA); DataSet resultSet = null; detailTicketMessage.PageVisible = false; //根据状态的不同 从而设置不同的参数来绑定 switch (tradeTabMain.SelectedTabPageIndex) { case 0: //所有交易 resultSet = TradeOrderService.GetView_TradeStockDataSet("%", "%", DateTime.Now.AddYears(-1), DateTime.Now); detailCombineTradeMessage.PageVisible = false; /*隐藏合并单信息*/ detailAessemble.PageVisible = false; /*隐藏商品信息*/ break; case 1: //未付款 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.HasNotSummit, TradeEnum.WAIT_BUYER_PAY, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); detailAessemble.PageVisible = false; /*隐藏商品信息*/ break; case 2: //待确认 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.HasNotSummit, TradeEnum.WAIT_SELLER_SEND_GOODS, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); detailCombineTradeMessage.PageVisible = false; /*隐藏合并单信息*/ detailAessemble.PageVisible = false; /*隐藏商品信息*/ break; case 3: //待打印 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.SummitNotPrint, TradeEnum.WAIT_SELLER_SEND_GOODS, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); detailCombineTradeMessage.PageVisible = true; /*显示合并单信息*/ detailAessemble.PageVisible = false; /*隐藏商品信息*/ break; case 4: //已打印 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.Printed, TradeEnum.WAIT_SELLER_SEND_GOODS, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); break; case 5: //已打印待配货 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.WaitAssort, TradeEnum.WAIT_SELLER_SEND_GOODS, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); break; case 6: //待发送 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.AssortedNotSent, TradeEnum.WAIT_SELLER_SEND_GOODS, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); break; case 7: //已发送 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.SentNotRate, TradeEnum.WAIT_BUYER_CONFIRM_GOODS, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); break; case 8: //待评价 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.SentNotRate, TradeEnum.WAIT_BUYER_CONFIRM_GOODS, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); break; case 9: //已完成 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.TradeFinish, TradeEnum.TRADE_FINISHED, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); break; case 10: //退货 resultSet = TradeOrderService.GetView_TradeStockDataSet(LocalTradeStatus.REFUND_STATUS, TradeEnum.ALL_CLOSED, DateTime.Now.AddYears(-1), DateTime.Now.AddDays(1)); break; case 11: //历史 resultSet = TradeOrderService.GetView_TradeStockDataSet("%", "%", DateTime.Now.AddYears(-1), DateTime.Now.AddDays(-15)); break; default: break; } LoadTrade(resultSet); //界面出示化时默认绑定第一条数据 _currentTradeRow = GetCurrentTradeGV().GetDataRow(0); if (_currentTradeRow != null) { SetTradeDetailMessages(_currentTradeRow); } wdf.Close(); }
//刷新交易赠品列表 private void InitTradeList() { gcGiftOrders.DataSource = TradeOrderService.GetTradeOrder(p => p.CustomTid == _customTid && p.OrderType == Alading.Core.Enum.emumOrderType.GiftGoods); gcGiftOrders.ForceInitialize(); }
/// <summary> /// 交易合并成一个交易 /// </summary> private void ConbinePrintFlg() { /*再次确认收货人姓名、地址,省市区是否一直等信息*/ if (DialogResult.Cancel == XtraMessageBox.Show(Alading.Properties.Resources.CheckTidData, Alading.Properties.Resources.Imformation, MessageBoxButtons.OKCancel, MessageBoxIcon.Information)) { combine.Enabled = true; return; } foreach (string custom in customTidList) { tradeList.AddRange(TradeService.GetTrade(q => q.CustomTid == custom)); parentTradeOrderList.AddRange(TradeOrderService.GetTradeOrder(q => q.CustomTid == custom)); }/*foreach*/ //通过outer_id GroupBy List <IGrouping <string, Alading.Entity.TradeOrder> > groupOrderList = new List <IGrouping <string, Alading.Entity.TradeOrder> >(); groupOrderList = parentTradeOrderList.GroupBy(q => q.iid).ToList(); //生成combine_code string combine_code = Guid.NewGuid().ToString(); #region /*查找相同的订单 并把相同的订单合单*/ foreach (IGrouping <string, Alading.Entity.TradeOrder> orderList in groupOrderList) { //在对sku_properties_name分类 List <IGrouping <string, Alading.Entity.TradeOrder> > groupList = orderList.GroupBy(q => q.sku_properties_name).ToList(); /*存在至少有两个相同的订单*/ if (groupList.Count() < orderList.Count()) { foreach (IGrouping <string, Alading.Entity.TradeOrder> listOrder in groupList) { /*找到了相同的订单*/ if (listOrder.Count() > 1) { /*订单合并处理*/ TradeOrderStock tradeOrderStock = new TradeOrderStock(); int num = 0; foreach (Alading.Entity.TradeOrder order in listOrder) { tradeOrderStock.order = order; //购买量汇总 num += order.num; //adjust_fee汇总 tradeOrderStock.order.adjust_fee += order.adjust_fee; //discount_fee汇总 tradeOrderStock.order.discount_fee += order.discount_fee; }/*if*/ AddDetail(listOrder.First().TradeOrderCode, tradeOrderStock); //num 汇总 tradeOrderStock.order.num = num; //total_fee汇总 tradeOrderStock.order.total_fee = tradeOrderStock.order.num * tradeOrderStock.order.price + tradeOrderStock.order.adjust_fee; //payment汇总 tradeOrderStock.order.payment = tradeOrderStock.order.discount_fee + tradeOrderStock.order.total_fee; //customtid赋值 tradeOrderStock.order.CustomTid = combine_code; //添加订单 tradeOrderList.Add(tradeOrderStock); } /*if*/ else /*没有和其他订单相同属性的单个订单*/ { TradeOrderStock tradeOrderStock = new TradeOrderStock(); tradeOrderStock.order = listOrder.First(); //添加宝贝名等信息 AddDetail(listOrder.First().TradeOrderCode, tradeOrderStock); //CustomTid tradeOrderStock.order.CustomTid = combine_code; tradeOrderList.Add(tradeOrderStock); } } /*foreach*/ } /*if*/ else { //单个订单 foreach (Alading.Entity.TradeOrder order in orderList) { TradeOrderStock tradeOrderStock = new TradeOrderStock(); tradeOrderStock.order = order; //添加宝贝名等信息 AddDetail(order.TradeOrderCode, tradeOrderStock); //CustomTid tradeOrderStock.order.CustomTid = combine_code; //total_fee汇总 tradeOrderStock.order.total_fee = tradeOrderStock.order.num * tradeOrderStock.order.price + tradeOrderStock.order.adjust_fee; //payment汇总 tradeOrderStock.order.payment = tradeOrderStock.order.discount_fee + tradeOrderStock.order.total_fee; tradeOrderList.Add(tradeOrderStock); } } }/*foreach*/ #endregion //邮费 double realPostFee = 0.0; double payment = 0.0; double total_fee = 0.0; /*修改子交易信息*/ for (int i = 0; i < tradeList.Count; i++) { if (realPostFee < tradeList[i].post_fee) { realPostFee = tradeList[i].post_fee; } //修改本地状态 tradeList[i].LocalStatus = LocalTradeStatus.CombineTrade; //添加combinecode tradeList[i].CombineCode = combine_code; }/*foreach*/ /*父交易*/ FatherTrade = TradeService.GetTrade(q => q.CustomTid == customTidList[0]).FirstOrDefault(); /*父订单(虚拟订单)*/ /*修改父交易相关信息*/ foreach (TradeOrderStock tradeOrderStock in tradeOrderList) { payment += tradeOrderStock.order.payment; total_fee += tradeOrderStock.order.total_fee; } FatherTrade.payment = payment + realPostFee; FatherTrade.total_fee = total_fee; FatherTrade.post_fee = realPostFee; FatherTrade.CombineCode = combine_code; FatherTrade.tid = Guid.NewGuid().ToString(); FatherTrade.IsCombined = true; FatherTrade.IsSelected = false; /*将combine_code赋给父交易的 CustomTid*/ FatherTrade.CustomTid = combine_code; FatherTrade.LocalStatus = LocalTradeStatus.HasNotSummit; /*显示数据*/ LoadTradeOrder(gcCombineTrade, gvCombineOrder, tradeOrderList, null); LoadTextEdit(FatherTrade); XtraMessageBox.Show(Alading.Properties.Resources.ConbineSuccess, Alading.Properties.Resources.Imformation); //合并不能用 combine.Enabled = false; }
/// <summary> /// 合并还原成一个交易 /// </summary> private void ConbineTradeFlg() { #region 交易合并 还原成一个交易 if (DialogResult.Cancel == XtraMessageBox.Show(Alading.Properties.Resources.TidNotSame, Alading.Properties.Resources.Imformation, MessageBoxButtons.OKCancel, MessageBoxIcon.Information)) { return; } int OrdeFlg = 0; string customStr = customTidList[0]; string customParent = null; string customChild = null; List <Alading.Entity.TradeOrder> childTradeOrderList = new List <Alading.Entity.TradeOrder>(); Alading.Entity.TradeOrder order = new Alading.Entity.TradeOrder(); /*找出父交易的customtid 与 子交易的customtid*/ foreach (string str in customTidList) { if (str.Length > customStr.Length) { customParent = customStr; customChild = str; }/*if*/ else { customParent = str; customChild = customStr; } /*else*/ } /*foreach*/ /*将父交易的订单列表找出*/ parentTradeOrderList = TradeOrderService.GetTradeOrder(q => q.CustomTid == customParent); childTradeOrderList = TradeOrderService.GetTradeOrder(q => q.CustomTid == customChild); for (int i = 0; i < parentTradeOrderList.Count; i++) { /*找到相应的子订单*/ order = childTradeOrderList.Where(q => q.oid == parentTradeOrderList[i].oid).FirstOrDefault(); if (order != null) { /*数量合并*/ parentTradeOrderList[i].num += order.num; /*总费合并*/ parentTradeOrderList[i].total_fee = parentTradeOrderList[i].price * parentTradeOrderList[i].num; /*应付金额合并*/ parentTradeOrderList[i].payment = parentTradeOrderList[i].total_fee + parentTradeOrderList[i].adjust_fee + parentTradeOrderList[i].discount_fee; }//if childTradeOrderList.Remove(order); }//fro /*子订单列表中剩余的订单 全部加到父订单列表中*/ if (childTradeOrderList.Count > 0) { parentTradeOrderList.AddRange(childTradeOrderList); } /*修改customtid*/ for (int i = 0; i < parentTradeOrderList.Count; i++) { parentTradeOrderList[i].CustomTid = customParent; } trade = TradeService.GetTrade(q => q.CustomTid == customParent).FirstOrDefault(); if (trade == null) { return; } /*trade的总费*/ trade.total_fee = parentTradeOrderList.Sum(q => q.total_fee); /*得到trade总的应付金额*/ trade.payment = parentTradeOrderList.Sum(q => q.payment) + trade.post_fee; /*修改状态*/ trade.IsSplited = false; /*显示数据*/ LoadTradeOrder(gcCombineTrade, gvCombineOrder, null, parentTradeOrderList); LoadTextEdit(trade); XtraMessageBox.Show(Alading.Properties.Resources.ConbineSuccess, Alading.Properties.Resources.Imformation); #endregion }