Пример #1
0
        /// <summary>
        /// 메뉴 관리 신규 데이터 저장
        /// </summary>
        /// <param name="_da">데이터베이스 엑세스 객체</param>
        /// <param name="_item">신규 저장 대상 데이터</param>
        /// <returns></returns>
        private async Task <bool> Save_SP_MENU_INS(BaseDataAccess _da, MenuMgmt _item)
        {
            bool isRtnValue = true;

            #region + 파라메터 변수 선언 및 값 할당
            DataTable dtRtnValue       = null;
            var       strProcedureName = "UI_C1003_MENU_INS";
            Dictionary <string, object> dicInputParam = new Dictionary <string, object>();
            Dictionary <object, BaseEnumClass.MSSqlOutputDataType> dicOutPutParam = new Dictionary <object, BaseEnumClass.MSSqlOutputDataType>();
            Dictionary <object, object> dicRtnValue = new Dictionary <object, object>();

            var strMenuID    = _item.MENU_ID;                                       // 메뉴 ID
            var strMenuNM    = _item.MENU_NM;                                       // 메뉴명
            var strMenuDesc  = _item.MENU_DESC;                                     // 메뉴 상세
            var strMenuLevel = _item.MENU_LVL;                                      // 메뉴 레벨
            var strMenuType  = _item.MENU_TYPE;                                     // 메뉴 타입
            var strMenuUrl   = _item.MENU_URL;                                      // 메뉴 URL
            var strMenuIcon  = _item.MENU_ICON;                                     // 메뉴 아이콘
            var strTreeID    = _item.TREE_ID;                                       // 트리 ID
            var strParentID  = _item.PARENT_ID;                                     // 상위 메뉴 ID
            var strUseYN     = _item.USE_YN_CHECKED == true ? "Y" : "N";            // 사용여부
            var iSortSeq     = _item.SORT_SEQ;                                      // 정렬 순서
            var strUserID    = this.BaseClass.UserID;                               // 사용자 ID
            #endregion

            #region + Input 파라메터
            dicInputParam.Add("MENU_ID", strMenuID);                           // 메뉴 ID
            dicInputParam.Add("MENU_NM", strMenuNM);                           // 메뉴명
            dicInputParam.Add("MENU_DESC", strMenuDesc);                       // 메뉴 상세
            dicInputParam.Add("MENU_LVL", strMenuLevel);                       // 메뉴 레벨
            dicInputParam.Add("MENU_TYPE", strMenuType);                       // 메뉴 타입
            dicInputParam.Add("MENU_URL", strMenuUrl);                         // 메뉴 URL
            dicInputParam.Add("MENU_ICON", strMenuIcon);                       // 메뉴 아이콘
            dicInputParam.Add("TREE_ID", strTreeID);                           // 트리 ID
            dicInputParam.Add("PARENT_ID", strParentID);                       // 상위 메뉴 ID
            dicInputParam.Add("USE_YN", strUseYN);                             // 사용여부
            dicInputParam.Add("SORT_SEQ", iSortSeq);                           // 정렬 순서
            dicInputParam.Add("L_USER_ID", strUserID);                         // 사용자 ID
            #endregion

            #region + Output 파라메터
            dicOutPutParam.Add("RTN_VAL", BaseEnumClass.MSSqlOutputDataType.INT32);
            dicOutPutParam.Add("RTN_MSG", BaseEnumClass.MSSqlOutputDataType.VARCHAR);
            #endregion

            #region + 데이터 조회
            await System.Threading.Tasks.Task.Run(() =>
            {
                dtRtnValue = _da.GetSpDataTable(strProcedureName, dicInputParam, dicOutPutParam, ref dicRtnValue);
            }).ConfigureAwait(true);

            #endregion

            if (dicRtnValue["RTN_VAL"].ToString().Equals("0") == false)
            {
                var strMessage = dicRtnValue["RTN_MSG"].ToString();
                this.BaseClass.MsgError(strMessage, BaseEnumClass.CodeMessage.MESSAGE);
                isRtnValue = false;
            }

            return(isRtnValue);
        }
Пример #2
0
        /// <summary>
        /// (행추가) ContextMenu 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void MenuItemRowAdd_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            try
            {
                string strSelectedMenuID   = (this.treeListControl.SelectedItem as MenuMgmt).MENU_ID;       // 메뉴 ID
                string strSelectedTreeID   = (this.treeListControl.SelectedItem as MenuMgmt).TREE_ID;       // 트리 ID
                var    iSelectedMenuLevel  = (this.treeListControl.SelectedItem as MenuMgmt).MENU_LVL;      // 메뉴 레벨
                var    strSelectedNewRowYN = (this.treeListControl.SelectedItem as MenuMgmt).IsNew;         // 신규 여부

                // 신규 추가된 Row의 경우 하위 Row를 추가하지 않기 때문에
                // isNew가 true인 경우 구문을 리턴한다.
                if (strSelectedNewRowYN == true)
                {
                    return;
                }

                var liFilterData = this.MenuMgntList.Where(p => p.PARENT_ID.Equals(strSelectedTreeID) == true).ToList();

                int i = 0;
                foreach (var item in this.MenuMgntList)
                {
                    if (item.MENU_ID.Equals(strSelectedMenuID) == true)
                    {
                        break;
                    }
                    i++;
                }

                string strTreeIDFirst = string.Empty;
                string strTreeID      = string.Empty;
                int    iTreeIDSecond  = 0;
                int    iSortSeq       = 0;

                if (liFilterData.Count > 0)
                {
                    strTreeID      = liFilterData.OrderByDescending(p => p.TREE_ID).FirstOrDefault().TREE_ID;
                    iSortSeq       = liFilterData.OrderByDescending(p => p.SORT_SEQ).FirstOrDefault().SORT_SEQ + 1;
                    strTreeIDFirst = strTreeID.Substring(0, strTreeID.Length - 2);
                    iTreeIDSecond  = Convert.ToInt32(strTreeID.Substring(strTreeID.Length - 2, 2)) + 1;
                    strTreeID      = $"{strTreeIDFirst}{iTreeIDSecond.ToString("D2")}";
                }
                else
                {
                    iSortSeq  = 1;
                    strTreeID = $"{strSelectedTreeID}01";
                }

                var newItem = new MenuMgmt
                {
                    MENU_ID      = string.Empty                     // 메뉴 ID
                    , MENU_NM    = string.Empty                     // 메뉴명
                    , MENU_DESC  = string.Empty                     // 메뉴 상세
                    , MENU_LVL   = iSelectedMenuLevel + 1           // 메뉴 레벨
                    , MENU_TYPE  = string.Empty                     // 메뉴 타입
                    , MENU_URL   = string.Empty                     // 메뉴 URL
                    , MENU_ICON  = string.Empty                     // 메뉴 아이콘
                    , TREE_ID    = strTreeID                        // 트리 ID
                    , PARENT_ID  = strSelectedTreeID                // 상위 메뉴 ID
                    , USE_YN     = "Y"                              // 사용 여부
                    , SORT_SEQ   = iSortSeq                         // 정렬 순서
                    , IsSelected = true
                    , IsNew      = true
                    , IsUpdate   = false
                };

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

                this.MenuMgntList[this.MenuMgntList.Count - 1].BackgroundBrush     = new SolidColorBrush(Colors.GhostWhite);
                this.MenuMgntList[this.MenuMgntList.Count - 1].BaseBackgroundBrush = new SolidColorBrush(Colors.GhostWhite);


                #region 추가된 트리의 상위 메뉴 ID로 포커스를 이동하기 위한 구문
                int j = 0;
                for (j = 0; j < this.treeListControl.VisibleRowCount; j++)
                {
                    var rowData   = this.treeListControl.GetRow(j);
                    var strMenuID = ((SMART.WCS.UI.COMMON.DataMembers.C1003.MenuMgmt)rowData).MENU_ID;

                    if (strSelectedMenuID.Equals(strMenuID) == true)
                    {
                        break;
                    }
                }

                this.BaseClass.SetTreeListControlRowAddFocus(this.treeListControl, j);
                #endregion

                this.treeListView.ExpandAllNodes();
            }
            catch (Exception err)
            {
                this.BaseClass.Error(err);
            }
        }
Пример #3
0
        /// <summary>
        /// 메뉴 관리 데이터 수정
        /// </summary>
        /// <param name="_da"></param>
        /// <param name="_item"></param>
        /// <returns></returns>
        private async Task <bool> UpdateSP_MENU_UPD(BaseDataAccess _da, MenuMgmt _item)
        {
            bool isRtnValue = true;

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

            var strCenterCD = this.BaseClass.CenterCD;                              // 센터코드
            var strMenuID   = _item.MENU_ID;                                        // 메뉴 ID
            var strMenuNM   = _item.MENU_NM;                                        // 메뉴명
            var strMenuDesc = string.IsNullOrWhiteSpace(_item.MENU_DESC);           // 메뉴 상세
            var strMenuType = _item.MENU_TYPE;                                      // 메뉴 타입
            var strMenuUrl  = _item.MENU_URL;                                       // 메뉴 URL
            var strMenuIcon = _item.MENU_ICON;                                      // 메뉴 아이콘
            //var strParentID         = _item.PARENT_ID;                              // 상위 메뉴 ID
            var strUseYN   = _item.USE_YN_CHECKED == true ? "Y" : "N";              // 사용여부
            var strSortSeq = _item.SORT_SEQ.ToString();                             // 정렬 순서
            var strUserID  = this.BaseClass.UserID;                                 // 사용자 ID
            #endregion

            #region + Input 파라메터
            dicInputParam.Add("P_CNTR_CD", strCenterCD);                        // 센터코드
            dicInputParam.Add("P_MENU_ID", strMenuID);                          // 메뉴 ID
            dicInputParam.Add("P_MENU_NM", strMenuNM);                          // 메뉴명
            dicInputParam.Add("P_MENU_DESC", strMenuDesc);                      // 메뉴 상세
            dicInputParam.Add("P_MENU_TYPE", strMenuType);                      // 메뉴 타입
            dicInputParam.Add("P_MENU_URL", strMenuUrl);                        // 메뉴 URL
            dicInputParam.Add("P_MENU_ICON", strMenuIcon);                      // 메뉴 아이콘
            //dicInputParam.Add("P_PARENT_ID",            strParentID);           // 상위 메뉴 ID
            dicInputParam.Add("P_USE_YN", strUseYN);                            // 사용여부
            dicInputParam.Add("P_SORT_SEQ", strSortSeq);                        // 정렬 순서
            dicInputParam.Add("P_USER_ID", strUserID);                          // 사용자 ID
            #endregion

            #region + 데이터 조회
            await System.Threading.Tasks.Task.Run(() =>
            {
                dtRtnValue = _da.GetSpDataTable(strProcedureName, dicInputParam, arrOutputParam);
            }).ConfigureAwait(true);

            #endregion

            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);
        }