Пример #1
0
        /// <summary>
        /// 셀 Optimization 버튼 클릭 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnCellOpti_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            // 상태바 (아이콘) 실행
            this.loadingScreen.IsSplashScreenShown = true;
            DataSet dsRtnValue = null;

            string strWrkPlanYmd = string.Empty;
            string strDataSetID  = string.Empty;
            int    iRocOptSeq    = 0;

            try
            {
                int iCheckCount = await this.GetSP_OPT_CBM_CHK();

                if (iCheckCount > 0)
                {
                    this.BaseClass.MsgQuestion("ASK_CELL_MAX_CBM_EXISTS");
                    if (this.BaseClass.BUTTON_CONFIRM_YN == false)
                    {
                        return;
                    }
                }

                using (BaseDataAccess da = new BaseDataAccess())
                {
                    Dictionary <string, object> dicInputParam = new Dictionary <string, object>();

                    #region  라메터 변수 선언 및 값 할당
                    var strCenterCD = this.BaseClass.CenterCD;                                                                  // 센터코드
                    strWrkPlanYmd = this.BaseClass.GetCalendarValue(this.deWrkPlanWmd);                                         // 출고일자
                    strDataSetID  = this.BaseClass.ComboBoxSelectedKeyValue(this.cboDataSetID);                                 // 데이터 그룹 ID
                    iRocOptSeq    = Convert.ToInt32(this.BaseClass.ComboBoxSelectedKeyValue(this.cboRocOptSeq));                // ROC 최적화 차수
                    var iSupBtchDivCnt = Convert.ToInt32(this.txtSupBtchDivCnt.Text.Trim());                                    // 보충배치 분할개수
                    var iMinSupSkuUnit = Convert.ToInt32(this.txtMinSupSkuUnit.Text.Trim());                                    // 보충 SKU 최소단위
                    var strLocBtchInfo = this.BaseClass.ComboBoxSelectedKeyValue(this.cboBtchInfo);                             // 구역간 배치정보
                    var strSkuCelType  = this.BaseClass.ComboBoxSelectedKeyValue(this.cboSkuCellType);                          // SKU별 셀유형
                    var strUserID      = this.BaseClass.UserID;                                                                 // 사용자 ID
                    #endregion

                    #region Input 파라메터
                    dicInputParam.Add("P_CNTR_CD", strCenterCD);                            // 센터코드
                    dicInputParam.Add("P_WRK_PLAN_YMD", strWrkPlanYmd);                     // 출고일자
                    dicInputParam.Add("P_DATA_SET_ID", strDataSetID);                       // 데이터 그룹 ID
                    dicInputParam.Add("P_ROC_OPT_SEQ", iRocOptSeq);                         // ROC 최적화 차수
                    dicInputParam.Add("P_SUP_BTCH_DIV_CNT", iSupBtchDivCnt);                // 보충배치 분할개수
                    dicInputParam.Add("P_MIN_SUP_SKU_UNIT", iMinSupSkuUnit);                // 보충 SKU 최소단위
                    dicInputParam.Add("P_LOC_BTCH_INFO", strLocBtchInfo);                   // 구역간 배치정보
                    dicInputParam.Add("P_SKU_CEL_TYPE", strSkuCelType);                     // SKU별 셀유형
                    dicInputParam.Add("P_USER_ID", strUserID);                              // 사용자 ID
                    #endregion

                    dsRtnValue = await this.SaveSP_CELL_OPT_SEQ_SAVE(da, dicInputParam);

                    if (dsRtnValue != null)
                    {
                        if (dsRtnValue.Tables[1].Rows.Count > 0)
                        {
                            if (dsRtnValue.Tables[1].Rows[0]["CODE"].ToString().Equals("0") == false)
                            {
                                // 프로시저에서 오류 리턴시 오류 메세지를 출력한다.
                                var strErrMessage = dsRtnValue.Tables[1].Rows[0]["MSG"].ToString();
                                this.BaseClass.MsgError(strErrMessage);
                                return;
                            }
                        }
                        else
                        {
                            // ERR_SAVE - 저장 중 오류가 발생했습니다.
                            this.BaseClass.MsgError("ERR_SAVE");
                        }
                    }
                }
            }
            catch (Exception err)
            {
                // 상태바 (아이콘) 실행
                this.loadingScreen.IsSplashScreenShown = false;
                // ERR_SAVE - 저장 중 오류가 발생했습니다.
                this.BaseClass.MsgError("ERR_SAVE");
                this.BaseClass.Error(err);
                return;
            }

            try
            {
                #region 웹 서비스 호출 영역
                // 저장 후 리턴받은 값 (OPT_SEQ)
                var strOptSeq = dsRtnValue.Tables[0].Rows[0][0].ToString();

                if (CallJsonWebService.CallServiceCellOpti(strWrkPlanYmd, strDataSetID, strOptSeq, iRocOptSeq) == true)
                {
                    await this.GetSP_OPT_CELL_QTY_LIST_INQ();
                }
                else
                {
                    // ERR_CELL_OPTI_PROC - 셀 Optimization 처리중 오류가 발생했습니다.
                    BaseClass.MsgError("ERR_CELL_OPTI_PROC");
                }
                #endregion
            }
            catch (Exception err)
            {
                // ERR_CELL_OPTI_PROC - 셀 Optimization 처리중 오류가 발생했습니다.
                BaseClass.MsgError("ERR_CELL_OPTI_PROC");
                this.BaseClass.Error(err);
            }
            finally
            {
                // 상태바 (아이콘) 실행
                this.loadingScreen.IsSplashScreenShown = false;
            }

            // CMPT_CELL_OPTI - 셀 Optimization 처리가 완료되었습니다.
            this.BaseClass.MsgInfo("CMPT_CELL_OPTI");
            this.CboRocOptSeq_SelectedIndexChanged(null, null);
        }
        /// <summary>
        /// 최적화 실행 버튼 클릭 이벤트
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnRocExec_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            this.BaseClass.MsgQuestion("ROC 수행을 처리하시겠습니까?");
            if (this.BaseClass.BUTTON_CONFIRM_YN == false)
            {
                return;
            }

            // 상태바 (아이콘) 실행
            this.loadingScreen.IsSplashScreenShown = true;
            DataSet dsRtnValue = null;

            string strWrkPlanYmd = string.Empty;
            string strDataSetID  = string.Empty;

            try
            {
                #region  라메터 변수 선언 및 값 할당
                Dictionary <string, object> dicInputParam = new Dictionary <string, object>();

                var strCenterCD = this.BaseClass.CenterCD;                                                  // 센터코드
                strWrkPlanYmd = this.BaseClass.GetCalendarValue(this.deWrkPlanWmd);                         // 출고일자
                strDataSetID  = this.BaseClass.ComboBoxSelectedKeyValue(this.cboDataSetID);                 // Data 그룹
                var BtchDivLim   = this.txtBtchDivNum.Text.Trim();                                          // 배치분배차수
                var strSetMaxDiv = this.chkAll.IsChecked == true ? "OFF" : "ON";                            // 체크박스
                var strLocBal    = this.BaseClass.ComboBoxSelectedKeyValue(this.cboLocBal);                 // Location Balance
                var strSortMode  = this.BaseClass.ComboBoxSelectedKeyValue(this.cboSortMode);               // Sorting Mode
                var strUserID    = this.BaseClass.UserID;                                                   // 사용자 ID
                #endregion

                using (BaseDataAccess da = new BaseDataAccess())
                {
                    #region Input 파라메터
                    dicInputParam.Add("P_CNTR_CD", strCenterCD);                // 센터코드
                    dicInputParam.Add("P_WRK_PLAN_YMD", strWrkPlanYmd);         // 출고일자
                    dicInputParam.Add("P_DATA_SET_ID", strDataSetID);           // Data 그룹
                    dicInputParam.Add("P_BTCH_DIV_LIM", BtchDivLim);            // 배치분배차수
                    dicInputParam.Add("P_SET_MAX_DIV", strSetMaxDiv);           // 체크박스
                    dicInputParam.Add("P_LOC_BAL", strLocBal);                  // Location Balance
                    dicInputParam.Add("P_SORT_MODE", strSortMode);              // Sorting Mode
                    dicInputParam.Add("P_USER_ID", strUserID);                  // 사용자 ID
                    #endregion

                    dsRtnValue = await this.SaveSP_ROC_OPT_OPT_SEQ_SAVE(da, dicInputParam);

                    if (dsRtnValue != null)
                    {
                        if (dsRtnValue.Tables.Count == 1)
                        {
                            var strMessage = dsRtnValue.Tables[0].Rows[0]["MSG"].ToString();
                            //this.BaseClass.MsgError(strMessage, BaseEnumClass.CodeMessage.MESSAGE);

                            throw new Exception(strMessage);
                        }

                        if (dsRtnValue.Tables[1].Rows.Count > 0)
                        {
                            if (dsRtnValue.Tables[1].Rows[0]["CODE"].ToString().Equals("0") == false)
                            {
                                var strMessage = dsRtnValue.Tables[1].Rows[0]["MSG"].ToString();
                                throw new Exception(strMessage);
                            }
                        }
                        else
                        {
                            // ERR_SAVE - 저장 중 오류가 발생했습니다.
                            this.BaseClass.MsgError("ERR_SAVE");
                        }
                    }
                }
            }
            catch (Exception err)
            {
                // 상태바 (아이콘) 실행
                this.loadingScreen.IsSplashScreenShown = false;
                // ERR_SAVE - 저장 중 오류가 발생했습니다.
                this.BaseClass.MsgError("ERR_SAVE");
                this.BaseClass.Error(err);
                return;
            }

            #region 웹 서비스 호출 영역
            try
            {
                // 저장 후 리턴받은 값 (OPT_SEQ)
                var strOptSeq = dsRtnValue.Tables[0].Rows[0][0].ToString();

                if (CallJsonWebService.CallServiceRocExec(strWrkPlanYmd, strDataSetID, strOptSeq) == true)
                {
                    await this.GetRocOptRsltInfo();
                }
                else
                {
                    BaseClass.MsgError("ERR_DATA_SEND");
                }
            }
            catch (Exception err)
            {
                BaseClass.MsgError("ERR_DATA_SEND");
                this.BaseClass.Error(err);
            }
            finally
            {
                // 상태바 (아이콘) 실행
                this.loadingScreen.IsSplashScreenShown = false;
            }
            #endregion

            // ROC 수행이 완료되었습니다. - CMPT_ROC_EXEC
            this.BaseClass.MsgInfo("CMPT_ROC_EXEC");

            this.CboDataSetID_SelectedIndexChanged(null, null);
        }
Пример #3
0
        /// <summary>
        /// PLAN수립
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BtnPlanCreate_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            try
            {
                bool isRtnValue = false;

                var cBtchNo = this.WrkPlanList.Where(w => w.IsSelected == true).Select(s => s.BTCH_NO).FirstOrDefault();
                var cEqpId  = this.WrkPlanList.Where(w => w.IsSelected == true).Select(s => s.EQP_ID).FirstOrDefault();

                if (!string.IsNullOrEmpty(cBtchNo))
                {
                    using (BaseDataAccess da = new BaseDataAccess())
                    {
                        try
                        {
                            // 상태바 (아이콘) 실행
                            this.loadingScreen.IsSplashScreenShown = true;

                            da.BeginTransaction();

                            // TODO : 배치생성하는 부분 (CWJ)
                            //isRtnValue = true;

                            //if(isRtnValue)
                            if (CallJsonWebService.CallServiceGantryPicking(cBtchNo, cEqpId) == true)
                            {
                                isRtnValue = this.SetSP_WRK_BTCH_CONFIRM(da, cBtchNo);

                                if (isRtnValue == true)
                                {
                                    // 저장된 경우
                                    da.CommitTransaction();

                                    // 상태바 (아이콘) 제거
                                    this.loadingScreen.IsSplashScreenShown = false;

                                    // 저장되었습니다.
                                    BaseClass.MsgInfo("CMPT_SAVE");

                                    // 출고작업 조회
                                    //MenuOpen_R1007_GAN_View();
                                }
                                else
                                {
                                    // 배치컨펌시 오류 발생하여 저장 실패한 경우
                                    da.RollbackTransaction();
                                }
                            }
                            else
                            {
                                // 배치생성시 오류 발생하여 저장 실패한 경우
                                da.RollbackTransaction();
                            }
                        }
                        catch
                        {
                            if (da.TransactionState_Oracle == BaseEnumClass.TransactionState_ORACLE.TransactionStarted)
                            {
                                da.RollbackTransaction();
                            }

                            BaseClass.MsgError("ERR_SAVE");
                            throw;
                        }
                        finally
                        {
                            // 상태바 (아이콘) 제거
                            this.loadingScreen.IsSplashScreenShown = false;

                            // 출고계획 리스트 재조회
                            WrkPlanListSearch();
                        }
                    }
                }
            }
            catch (Exception err)
            {
                this.BaseClass.Error(err);
            }
        }