Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        /// 合并订单
        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
        }