private static void View_ShowingEditor(object sender, ShowingEditorEventArgs e)
        {
            if (g_IsAuthAllYN == false)
            {
                e.Cancel = true;
                return;
            }

            TableView      tv         = sender as TableView;
            OrderCreateMgt OptOrdList = tv.Grid.CurrentItem as OrderCreateMgt;

            if (OptOrdList == null)
            {
                return;
            }

            switch (e.Column.FieldName)
            {
            // 컬럼이 행추가 상태 (신규 Row 추가)가 아닌 경우
            // 고객사 코드, 데이터 그룹, 오더 번호, 오더 라인번호 컬럼은 수정이 되지 않도록 처리한다.
            case "CST_CD":
            case "WAV_NO":
            case "ORD_NO":
            case "ORD_LINE_NO":
                if (OptOrdList.IsNew == false)
                {
                    e.Cancel = true;
                    OptOrdList.IsSelected = false;
                }
                break;

            default: break;
            }
        }
        /// <summary>
        /// 그리드 행추가 버튼 크릭 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnRowAdd_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            var newItem = new OrderCreateMgt
            {
                CST_CD         = string.Empty
                , WAV_NO       = string.Empty
                , ORD_NO       = string.Empty
                , ORD_LINE_NO  = string.Empty
                , SHIP_TO_CD   = string.Empty
                , SKU_CD       = string.Empty
                , SKU_CBM      = 0
                , SKU_WTH_LEN  = 0
                , SKU_VERT_LEN = 0
                , SKU_HGT_LEN  = 0
                , SKU_WGT      = 0
                , LOC_CD       = string.Empty
                , PLAN_QTY     = 1
                , IsSelected   = true
                , IsNew        = true
            };

            this.OptOrdList.Add(newItem);
            this.gridMain.Focus();
            this.gridMain.CurrentColumn         = this.gridMain.Columns.First();
            this.gridMain.View.FocusedRowHandle = this.OptOrdList.Count - 1;

            this.OptOrdList[this.OptOrdList.Count - 1].BackgroundBrush     = new SolidColorBrush(Colors.White);
            this.OptOrdList[this.OptOrdList.Count - 1].BaseBackgroundBrush = new SolidColorBrush(Colors.White);
        }
        /// <summary>
        /// 오더 정보 저장
        /// </summary>
        /// <returns></returns>
        private async Task <bool> SaveSP_GI_ORD_LIST_SAVE(BaseDataAccess _da, OrderCreateMgt _item)
        {
            bool isRtnValue = true;

            #region  라메터 변수 선언 및 값 할당
            DataTable dtRtnValue       = null;
            var       strProcedureName = "PK_O1007_QPS.SP_GI_ORD_LIST_SAVE";
            Dictionary <string, object> dicInputParam = new Dictionary <string, object>();
            string[] arrOutputParam = { "O_RTN_RSLT" };

            var     strCenterCD   = this.BaseClass.CenterCD;                                    // 센터코드
            var     strWavNo      = _item.WAV_NO;                                               // 데이터 그룹
            var     strCstCD      = _item.CST_CD;                                               // 고객사 코드
            var     strOrdNo      = _item.ORD_NO;                                               // 오더 번호
            var     strOrdLineNo  = _item.ORD_LINE_NO;                                          // 오더 라인번호
            var     strWrkPlanYmd = this.BaseClass.GetCalendarValue(this.deWrkPlanWmd);         // 출고일자
            var     strShipToCD   = _item.SHIP_TO_CD;                                           // 거래처 코드
            var     strSkuCD      = _item.SKU_CD;                                               // SKU 코드
            decimal dSkuCbm       = _item.SKU_CBM;                                              // SKU CBM
            decimal dSkuWthLen    = _item.SKU_WTH_LEN;                                          // SKU 가로
            decimal dSkuVertLen   = _item.SKU_VERT_LEN;                                         // SKU 세로
            decimal dSkuHgtLen    = _item.SKU_HGT_LEN;                                          // SKU 높이
            decimal dSkuWgt       = _item.SKU_WGT;                                              // SKU 중량
            string  strLocation   = _item.LOC_CD;                                               // 위치 코드
            decimal dPlanQty      = _item.PLAN_QTY;                                             // 계획 수량
            var     strUserID     = this.BaseClass.UserID;                                      // 사용자 ID
            #endregion

            #region Input 파라메터
            dicInputParam.Add("P_CNTR_CD", strCenterCD);                // 센터코드
            dicInputParam.Add("P_WAV_NO", strWavNo);                    // 데이터 그룹
            dicInputParam.Add("P_CST_CD", strCstCD);                    // 고객사 코드
            dicInputParam.Add("P_ORD_NO", strOrdNo);                    // 오더 번호
            dicInputParam.Add("P_ORD_LINE_NO", strOrdLineNo);           // 오더 라인번호
            dicInputParam.Add("P_WRK_PLAN_YMD", strWrkPlanYmd);         // 출고일자
            dicInputParam.Add("P_SHIP_TO_CD", strShipToCD);             // 거래처 코드
            dicInputParam.Add("P_SKU_CD", strSkuCD);                    // SKU 코드
            dicInputParam.Add("P_SKU_CBM", dSkuCbm);                    // SKU CBM
            dicInputParam.Add("P_SKU_WTH_LEN", dSkuWthLen);             // SKU 가로
            dicInputParam.Add("P_SKU_VERT_LEN", dSkuVertLen);           // SKU 세로
            dicInputParam.Add("P_SKU_HGT_LEN", dSkuHgtLen);             // SKU 높이
            dicInputParam.Add("P_SKU_WGT", dSkuWgt);                    // SKU 중량
            dicInputParam.Add("P_LOC_CD", strLocation);                 // 위치 코드
            dicInputParam.Add("P_PLAN_QTY", dPlanQty);                  // 계획 수량
            dicInputParam.Add("P_USER_ID", strUserID);                  // 사용자 ID
            #endregion

            await System.Threading.Tasks.Task.Run(() =>
            {
                dtRtnValue = _da.GetSpDataTable(strProcedureName, dicInputParam, arrOutputParam);
            }).ConfigureAwait(true);

            if (dtRtnValue != null)
            {
                if (dtRtnValue.Rows.Count > 0)
                {
                    if (dtRtnValue.Rows[0]["CODE"].ToString().Equals("0") == false)
                    {
                        var strMessage = dtRtnValue.Rows[0]["MSG"].ToString();
                        this.BaseClass.MsgError(strMessage, BaseEnumClass.CodeMessage.MESSAGE);
                        isRtnValue = false;
                    }
                }
                else
                {
                    // ERR_SAVE - 저장 중 오류가 발생했습니다.
                    this.BaseClass.MsgError("ERR_SAVE");
                    isRtnValue = false;
                }
            }

            return(isRtnValue);
        }