//保存修改 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(); }
/// <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; }
//刷新交易赠品列表 private void InitTradeList() { gcGiftOrders.DataSource = TradeOrderService.GetTradeOrder(p => p.CustomTid == _customTid && p.OrderType == Alading.Core.Enum.emumOrderType.GiftGoods); gcGiftOrders.ForceInitialize(); }
/// <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 }