void OnGUI() { _originalMeshObject = EditorGUILayout.ObjectField(_originalMeshObject, typeof(Mesh), true); _outputPath = EditorGUILayout.TextField("Output path", _outputPath); _combineOrder = (CombineOrder)EditorGUILayout.EnumPopup("Combine order", _combineOrder); EditorGUILayout.Space(); if (GUILayout.Button("Generate inverted")) { Mesh originalMesh = _originalMeshObject as Mesh; if (originalMesh != null) { Mesh invertedMesh = CreateInvertedMesh(originalMesh); string path = GetInvertedMeshPath(originalMesh.name, invertedMesh); SaveMesh(path, invertedMesh); } } if (GUILayout.Button("Generate double-sided")) { Mesh originalMesh = _originalMeshObject as Mesh; if (originalMesh != null) { Mesh invertedMesh = CreateInvertedMesh(originalMesh); Mesh combinedMesh = CombineMeshes(originalMesh, invertedMesh); string path = GetDoubleSidedMeshPath(originalMesh.name, combinedMesh); SaveMesh(path, combinedMesh); } } if (GUILayout.Button("Generate double-sided with UV3 = 1 for inverted mesh")) { Mesh originalMesh = _originalMeshObject as Mesh; if (originalMesh != null) { Mesh invertedMesh = CreateInvertedMesh(originalMesh); Mesh combinedMesh = CombineMeshes(ChangeUV3(originalMesh, 0), ChangeUV3(invertedMesh, 1)); string path = GetDoubleSidedMeshPath(originalMesh.name, combinedMesh, true); SaveMesh(path, combinedMesh); } } }
/// 合并订单 private void btnCombineTrade_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { #region 变量定义 List <int> rowHandleList = new List <int>(); /*用于记录父子交易关系的tid*/ List <string> tidList = new List <string>(); List <string> CustomTidList = new List <string>(); /*用于记录所选的交易*/ List <Alading.Entity.Trade> tradeList = new List <Alading.Entity.Trade>(); DataRow rowData = null; #endregion #region 合并准备 #region /*记录被打勾的项*/ for (int row = 0; row < gvTradeWaitConfirm.RowCount; row++) { rowData = gvTradeWaitConfirm.GetDataRow(row); if (rowData == null) { return; }//if if (Convert.ToBoolean(rowData["IsSelected"].ToString())) { /*添加*/ rowHandleList.Add(row); }//if rowData = null; }//for /*没有勾选交易不能合并*/ if (rowHandleList.Count <= 0) { XtraMessageBox.Show("没有勾选需要合并的交易,请检查!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }//if /*一个交易不能合并*/ if (rowHandleList.Count == 1) { XtraMessageBox.Show("只勾选了一个交易,不能合并,请检查!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }//if #endregion #region /*判断被选中交易的合法性*/ rowData = gvTradeWaitConfirm.GetDataRow(rowHandleList[0]); string buyer_nick = rowData["buyer_nick"].ToString(); string LastReceiverName = rowData["receiver_name"].ToString(); string LastReceiverZip = rowData["receiver_zip"].ToString(); /*用于标识是否是合并 并且提交打印的交易*/ bool ConbinePrintFlg = false; /*用于标识是否是合并还原为一个交易的交易*/ bool ConbineTradeFlg = false; int SplitFflag = 0; foreach (int record in rowHandleList) { rowData = gvTradeWaitConfirm.GetDataRow(record); if (string.IsNullOrEmpty(rowData["RealPostFee"].ToString())) { XtraMessageBox.Show("选中的交易中有交易实付邮费没有填写,不能合并,请检查!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (Convert.ToBoolean(rowData["IsCombined"].ToString())) { XtraMessageBox.Show("选中的交易中有合并交易,不能在合并,请检查!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } /*判断买家昵称是否一致*/ if (rowData["buyer_nick"].ToString() != buyer_nick) { XtraMessageBox.Show("选中的交易中,买家昵称不一致,不能合并,请检查!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }//if /*判断收货人姓名是否一致*/ if (rowData["receiver_name"].ToString() != LastReceiverName) { XtraMessageBox.Show("选中的交易中,收货人姓名不一致,不能合并,请检查!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }//if /*所选交易邮编一致性检验*/ if (rowData["receiver_zip"].ToString() != LastReceiverZip) { XtraMessageBox.Show("选中的交易中,收货人邮编不一致,不能合并,请检查!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }//if tradeList.Add(TradeService.GetTrade(q => q.CustomTid == rowData["CustomTid"].ToString()).FirstOrDefault()); CustomTidList.Add(rowData["CustomTid"].ToString()); rowData = null; }/*foreach (int record in rowHandleList)*/ /*检验拆分交易与非拆分交易合并的合法性*/ foreach (Alading.Entity.Trade tradeObj in tradeList) { if (tradeObj.IsSplited == true) { SplitFflag++; } }// for if (SplitFflag >= tradeList.Count) { /*勾选的 属于能够还原成一个交易的 交易*/ ConbineTradeFlg = true; } else if (SplitFflag <= 0) { /*勾选的 属于不同的交易 能够合并成一个交易的交易*/ ConbinePrintFlg = true; } else { XtraMessageBox.Show("选中的交易中有 拆分过的交易 和 没有拆分过的交易,混合交易不能合并,请检查!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } #endregion #endregion #region 合并 /*为还原成一个交易*/ if (ConbineTradeFlg) { string tid = tradeList.First().tid; foreach (Alading.Entity.Trade tradeObj in tradeList) { /*判断能否合并还原成一个交易*/ if (tid != tradeObj.tid) { XtraMessageBox.Show("收货人为:" + tradeObj.receiver_name.ToString() + "的交易的交易id与其他所选交易不一致,不能合并,请检查!", "出错", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } /*合并操作*/ CombineOrder data_present = new CombineOrder(CustomTidList, combineStyle.ConbineTradeFlg); data_present.ShowDialog(); } /*不同交易合并成一个交易,并且提交打印*/ if (ConbinePrintFlg) { /*合并操作*/ CombineOrder data_present = new CombineOrder(CustomTidList, combineStyle.ConbinePrintFlg); data_present.ShowDialog(); } InitSelectTab(); #endregion }