using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Collections; using System.Runtime.InteropServices; using System.IO; using Cosmos.BaseFrame; using Cosmos.UserFrame; using Cosmos.ServiceProvider; using Cosmos.Common; using Cosmos.CommonManager; using Cosmos.UI; /*-----------------------------------------------------------------------------------------------*/ // 설 명 : 화면보호기 // 작 성 자 : // 변경 이력 : /*-----------------------------------------------------------------------------------------------*/ namespace Cosmos.Service { public partial class frmScreenSaver : Form { private SManager sManager = new SManager(); //이 객체를 통해 업무 Service 호출 private StateServer StateObject = (StateServer)StateServer.GetInstance(); //StateObject : StateServer Object(객체) private PosStatus m_cPosStatus = new PosStatus(); //기본정보 참조 private TranStatus m_cTrnStatus = new TranStatus(); //거래정보 참조 private IMasterUs m_cMstService = null; //마스터 관리 private ArrayList m_alMedia = new ArrayList(); // 이미지 리스트 private int m_nMediaPos = 0; // 이미지 표시 위치 private int m_nCurrTime = 0; // 이미지 표시 경과시간 public frmScreenSaver() { InitializeComponent(); base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true); //this.UpdateStyles(); m_cPosStatus = (PosStatus)StateObject.POS; //POS 기본정보 m_cTrnStatus = (TranStatus)StateObject.TRAN; //POS 거래정보 m_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER); } private void frmScreenSaver_Load(object sender, EventArgs e) { UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ""); // 컨트롤 초기화 InitControl(); } private void frmScreenSaver_FormClosing(object sender, FormClosingEventArgs e) { UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ""); } #region 컨트롤 초기화 /// /// 폼 컨트롤 초기화 /// private void InitControl() { try { FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT); // 폼 크기 설정 this.Location = new Point(0, 0); picMedia.Location = new Point(1, 1); //wmpMedia.Location = new Point(1, 1); btnFunc1.BackColor = CmUtil.GetColorToString(m_cPosStatus.ScnMst.ThemeColor); btnFunc2.BackColor = CmUtil.GetColorToString(m_cPosStatus.ScnMst.ThemeColor); btnFunc1.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_SAVER_PART); btnFunc2.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_SAVER_OWN); lblFunc1.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0033); lblFunc2.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0034); btnFunc1.Size = new Size(273, 159); btnFunc2.Size = new Size(273, 159); lblFunc1.Size = new Size(178, 66); lblFunc2.Size = new Size(178, 66); //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start txtInPut.Text = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0805); //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end if (m_cPosStatus.Sale.ScreenSizeUser == 800) { this.Size = new Size(800, 600); picMedia.Size = new Size(798, 598); //wmpMedia.Size = new Size(798, 598); btnFunc1.Location = new Point(85, 223); btnFunc2.Location = new Point(443, 223); lblFunc1.Location = new Point(171, 269); lblFunc2.Location = new Point(528, 269); } else { this.Size = new Size(1024, 768); picMedia.Size = new Size(1022, 766); //wmpMedia.Size = new Size(1022, 766); btnFunc1.Location = new Point(187, 305); btnFunc2.Location = new Point(565, 305); lblFunc1.Location = new Point(273, 351); lblFunc2.Location = new Point(650, 351); } this.Refresh(); //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start //기존 /* txtInPut.Text = ""; txtInPut.Top = this.Height + 10; picMedia.Visible = false; //wmpMedia.Visible = false; */ //변경 txtInPut.Top = 0; txtInPut.Left = 0; txtInPut.Width = this.Width; txtInPut.Visible = false; picMedia.Visible = false; btnFunc1.Visible = false; btnFunc2.Visible = false; lblFunc1.Visible = false; lblFunc2.Visible = false; tmrMedia.Enabled = false; m_nMediaPos = 0; m_nCurrTime = 0; if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1") { //frmScreenSaver.Opacity = 100; this.Opacity = 10D; txtInPut.Visible = true; txtInPut.BringToFront(); if (m_alMedia.Count == 0) { m_alMedia.Clear(); if (CmUtil.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + "ScreenSaver1.png") == true) { m_alMedia.Add(new string[] { "1", //파일구분(1:이미지,2:동영상) "30", //표시시간 "ScreenSaver1.png", //파일명 "000000", //시작시간 "235959"}); //끝 시간 } if (CmUtil.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + "ScreenSaver2.png") == true) { m_alMedia.Add(new string[] { "1", //파일구분(1:이미지,2:동영상) "30", //표시시간 "ScreenSaver2.png", //파일명 "000000", //시작시간 "235959"}); //끝 시간 } } tmrMedia.Enabled = true; } else { this.Opacity = 0.9D; btnFunc1.Visible = true; btnFunc2.Visible = true; lblFunc1.Visible = true; lblFunc2.Visible = true; } //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end //m_nMediaPos = 0; //m_nCurrTime = 0; //if (m_alMedia.Count == 0) //{ // m_alMedia.Clear(); // // 마스터 로딩 // string sQuery = ""; // sQuery += " SELECT * FROM POSMST..MST_CUST_DSP "; // sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; // sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; // sQuery += " AND '" + m_cPosStatus.Base.SaleDate + "' BETWEEN START_DT AND FNSH_DT "; // sQuery += " AND DISP_KIND = '3' "; // 표시종류(1:고객메인, 2:고객컨텐츠, 3:화면보호기) // sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; // sQuery += " ORDER BY DISP_DIV DESC, SEQ "; // DataTable dtDspData = m_cMstService.Select(new string[] { sQuery }); // if (dtDspData == null || dtDspData.Rows.Count == 0) return; // // 이벤트 컨텐츠 있으며 이벤트만 표시 // foreach (DataRow dr in dtDspData.Rows) // { // string sDow = CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.DOW); // if (sDow.Length >= 7) // { // DateTime dt = new DateTime(int.Parse(m_cPosStatus.Base.SaleDate.Substring(0, 4)), int.Parse(m_cPosStatus.Base.SaleDate.Substring(4, 2)), int.Parse(m_cPosStatus.Base.SaleDate.Substring(6, 2))); // if (sDow.Substring((int)dt.DayOfWeek, 1) == "0") continue; // } // if (CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.DISP_KIND) == "3") // { // // 파일구분(1:이미지,2:동영상), 표시시간, 파일명 // m_alMedia.Add(new string[] { CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.FILE_TYPE) // , CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.FILE_TIME) // , CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.FILE_NM) // , CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.START_HOUR) // , CmUtil.GetDataRowStr(dr, PosMst.MST_CUST_DSP.DATA.FNSH_HOUR)}); // } // } //} //DisplayMedia(); //tmrMedia.Enabled = true; } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } } #endregion #region DisplayMedia(컨텐츠 표시) /// /// 컨텐츠 표시 /// public void DisplayMedia() { try { if (m_alMedia.Count <= 0) return; if (m_nMediaPos >= m_alMedia.Count) m_nMediaPos = 0; // 파일구분(1:이미지,2:동영상), 표시시간, 파일명 string[] saMedia = (string[])m_alMedia[m_nMediaPos]; if (File.Exists(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + saMedia[2]) == false) return; if (CmUtil.IntParse(saMedia[3]) > CmUtil.IntParse(DateTime.Now.ToString("HHmmss")) || CmUtil.IntParse(saMedia[4]) < CmUtil.IntParse(DateTime.Now.ToString("HHmmss"))) return; if (saMedia[0] == PosConst.MEDIA_FILE_DIV.IMAGE) // 이미지 { //wmpMedia.Visible = false; picMedia.Visible = true; picMedia.Image = CmUtil.LoadImage(BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + saMedia[2]); m_nCurrTime = CmUtil.IntParse(saMedia[1]); } else if (saMedia[0] == PosConst.MEDIA_FILE_DIV.MOVIE) // 동영상 { picMedia.Visible = false; //wmpMedia.Visible = true; //wmpMedia.URL = BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CUSTOMER + saMedia[2]; m_nCurrTime = 0; } } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } } #endregion #region 다음 컨텐츠 표시 체크 /// /// 다음 컨텐츠 표시 체크 /// /// /// private void tmrMedia_Tick(object sender, EventArgs e) { try { tmrMedia.Enabled = false; //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1") { m_nCurrTime = m_nCurrTime - 1; if (m_nCurrTime <= 0) { m_nMediaPos++; DisplayMedia(); } picMedia.Focus(); } //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end //// 컨텐츠 완료 체크 //if (wmpMedia.Visible == true) //{ // // 동영상 // if (wmpMedia.playState != WMPLib.WMPPlayState.wmppsPlaying && wmpMedia.playState != WMPLib.WMPPlayState.wmppsWaiting // && wmpMedia.playState != WMPLib.WMPPlayState.wmppsTransitioning) // { // m_nMediaPos++; // DisplayMedia(); // } //} //else //{ // // 이미지 // m_nCurrTime = m_nCurrTime - 1; // if (m_nCurrTime <= 0) // { // m_nMediaPos++; // DisplayMedia(); // } //} } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } tmrMedia.Enabled = true; } #endregion #region StoDisplay(컨텐츠 표시 종료) /// /// 컨텐츠 표시 종료 /// public void StopDisplay() { try { //if (wmpMedia.Visible == true) //{ // wmpMedia.Ctlcontrols.stop(); // wmpMedia.URL = ""; //} //tmrMedia.Enabled = false; this.DialogResult = DialogResult.OK; this.Close(); } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } } private void frmScreenSaver_KeyPress(object sender, KeyPressEventArgs e) { //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start, 20181012 //대기화면 표시된 상태에서 바코드 리딩시 첫번째자리 짤리는 증상으로 주석 처리 /* if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1") { StopDisplay(); } */ //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end, 20181012 //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end } private void frmScreenSaver_Click(object sender, EventArgs e) { //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1") { StopDisplay(); } //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end } //private void wmpMedia_ClickEvent(object sender, AxWMPLib._WMPOCXEvents_ClickEvent e) //{ // //StopDisplay(); //} #endregion private void btnFunc1_Click(object sender, EventArgs e) { try { if (((Button)sender) == btnFunc1) // 알바 { if (m_cPosStatus.Base.OwnPartDiv == PosConst.OWN_PART_DIV.OWN_DIV) { m_cPosStatus.Base.OwnPartDiv = PosConst.OWN_PART_DIV.PART_DIV; //전송데이터 저장 IDataCommonUs cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); cDataCommon.SaveServerRequestTransactionData(PosConst.RE_TRANSACTIONDATA.OWNER_MODE, new string[] { m_cPosStatus.Base.OwnPartDiv }); } } else if (((Button)sender) == btnFunc2) // 점주 { if (m_cPosStatus.Base.OwnPartDiv == PosConst.OWN_PART_DIV.PART_DIV) { m_cPosStatus.Base.OwnPartDiv = PosConst.OWN_PART_DIV.OWN_DIV; //전송데이터 저장 IDataCommonUs cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); cDataCommon.SaveServerRequestTransactionData(PosConst.RE_TRANSACTIONDATA.OWNER_MODE, new string[] { m_cPosStatus.Base.OwnPartDiv }); } } StopDisplay(); } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } } private void lblFunc1_Click(object sender, EventArgs e) { try { if (((Label)sender) == lblFunc1) // 알바 { btnFunc1_Click(btnFunc1, e); } else if (((Label)sender) == lblFunc2) // 점주 { btnFunc1_Click(btnFunc2, e); } } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } } private void txtInPut_Click(object sender, EventArgs e) { //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start if (PosMstManager.GetPosOption(POS_OPTION.OPT556) == "1") { StopDisplay(); } //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end } } }