public void OnValidateOpen(ValidateOpenStatus validateStatus) { if (validateStatus == ValidateOpenStatus.LastDateNotClosed) { var dres = ShowMessageBox(MessageDialogType.Question, "WN0001", MSG_ED_CLOSE_ASK); if (dres == DialogResult.Yes) { // goto 마감처리화면 // show Popup var edForm = ChildManager.ShowForm(string.Empty, "WSWD.WmallPos.POS.ED.dll", "WSWD.WmallPos.POS.ED.VC.POS_ED_P003", false, true); edForm.Unload += new EventHandler(edForm_Unload); } else { // 프로그램 종료 this.DialogResult = DialogResult.Ignore; } } else if (validateStatus == ValidateOpenStatus.NeedOpen) { // 개설한다 var openForm = ChildManager.ShowForm(string.Empty, "WSWD.WmallPos.POS.SD.dll", "WSWD.WmallPos.POS.SD.VC.POS_SD_P001"); openForm.Unload += new EventHandler(openForm_Unload); } else { if (validateStatus == ValidateOpenStatus.UpdateEodFlagLogin) { var res = ShowMessageBox(MessageDialogType.Question, "CODE", string.Format(MSG_OPENNED_CONT_ASK, DateTime.Today)); if (res == DialogResult.No) { // 프로그램 종료 this.DialogResult = DialogResult.Ignore; return; } ConfigData.Current.AppConfig.PosInfo.EodFlag = "N"; ConfigData.Current.AppConfig.Save(); } // 로그인한다 GotoLogin(); } }
/// <summary> /// /// (4) 당일 개설 여부를 확인하여 개설 작업 자동 처리 한다. /// - 프로그램 기동후 다음 조건을 만족하면 자동으로 개설 작업 진행 한다. /// (CASE 1) CFG.영업일자 < 시스템 일자 AND CFG.정산완료 = 'Y' 이면 개설 처리 /// (CASE 2) CFG.매장형태=24시간운영 AND CFG.영업일자 = 시스템 일자 AND CFG.정산완료 = 'Y' 이면 개설 처리 /// - 만약 이전 영업일 마감정산이 안되었으면 /// IF 현재일자 > CFG.영업일자 AND CFG.정산여부 = 'N' THEN /// ① 이전 영업일자 마감여부 확인 MessageBox 표시 (메시지:"이전 일자 마감 미처리 !!", 버튼: 예(정산) 아니오:(종료)) /// ② 예(정산) 이면 : 마감처리 회면 호출하여 처리 /// ③ 아니오(종료) 이면 : 프로그램 종료 /// END IF /// </summary> public void ValidateOnOpen() { ValidateOpenStatus validateStatus = ValidateOpenStatus.GotoLogin; int sysDate = int.Parse(DateTime.Today.ToString("yyyyMMdd")); int saleDate = TypeHelper.ToInt32(ConfigData.Current.AppConfig.PosInfo.SaleDate); if (saleDate == 0) { validateStatus = ValidateOpenStatus.NeedOpen; } else { // 24시간운영일때 if ("1".Equals(ConfigData.Current.AppConfig.PosInfo.StoreType)) { //2015.09.01정광호 수정---------------------------------------- //로직 변경 //if (!"Y".Equals(ConfigData.Current.AppConfig.PosInfo.EodFlag)) //{ // validateStatus = ValidateOpenStatus.GotoLogin; //} //else //{ // validateStatus = ValidateOpenStatus.NeedOpen; //} if (!"Y".Equals(ConfigData.Current.AppConfig.PosInfo.EodFlag)) { if (sysDate == saleDate) { validateStatus = ValidateOpenStatus.GotoLogin; } else if (sysDate > saleDate) { int nowDate = TypeHelper.ToInt32(DateTime.Now.Hour); int eodBaseDate = TypeHelper.ToInt32(ConfigData.Current.AppConfig.PosInfo.EodBaseHour.Length <= 0 || ConfigData.Current.AppConfig.PosInfo.EodBaseHour == "0" ? "1" : ConfigData.Current.AppConfig.PosInfo.EodBaseHour); if (nowDate < eodBaseDate) { validateStatus = ValidateOpenStatus.GotoLogin; } else { validateStatus = ValidateOpenStatus.LastDateNotClosed; } } } else { validateStatus = ValidateOpenStatus.NeedOpen; } //----------------------------------------------------------------- } else { if (!"Y".Equals(ConfigData.Current.AppConfig.PosInfo.EodFlag)) { /// /// IF CFG.SaleDate < 시스템알자 /// • 전일자 마감 처리 여부 확인 메시지 창에서 [아니오] 클릭하면 프로그램 종료한다. /// • [마감] 클릭하면 전일자 마감 처리 실행 후 개설 작업 처리 한다. /// if (sysDate > saleDate) { validateStatus = ValidateOpenStatus.LastDateNotClosed; } else { validateStatus = ValidateOpenStatus.GotoLogin; } } else { // 개설처리한다 if (sysDate > saleDate) { validateStatus = ValidateOpenStatus.NeedOpen; } else { /* * "이미 yyyy/mm/dd 마감 처리하였습니다." "매출 등록 하시겠습니까?" 메시지 표시 * [예] 버튼 : AppConfig.EodFlag 'N'으로 업데이트 하고 SignOn 화면 호출 * [아니오] 버튼 : 프로그램 종료 * */ validateStatus = ValidateOpenStatus.UpdateEodFlagLogin; } } } } m_view.OnValidateOpen(validateStatus); }