using System; using System.Collections; using System.Linq; using System.Text; using System.Data; using Cosmos.Common; using Cosmos.CommonManager; using Cosmos.ServiceProvider; using Cosmos.UserFrame; namespace Cosmos.Service { class PosNoticeCom : IDataServiceUs { private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출 private PosStatus m_cPosStatus = new PosStatus(); //기본정보 참조 private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체) private IMasterUs m_cMstService = null; // 마스터 관리 protected IDataCommonUs m_cDataCommon = null; // 판매공통 모듈 public PosNoticeCom() { m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON); m_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER); } /// /// 서비스 실행 /// public string Execute(string[] aParam) { string sRet = UserCom.RST_ERR; try { string sQuery = ""; sQuery += " UPDATE POSMST.dbo.MST_EMG_NOTE "; sQuery += " SET READ_YN = '" + aParam[3] + "' "; sQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "; sQuery += " , SEND_YN = '0' "; sQuery += " WHERE 1 = 1 "; sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'"; sQuery += " AND START_DT = '" + aParam[0] + "'"; sQuery += " AND MSG_CODE = '" + aParam[1] + "'"; sQuery += " AND MSG_DIV = '" + aParam[2] + "'"; sQuery = sQuery.Replace("\t", " "); int iRet = m_cMstService.Update(new string[] { sQuery }); if (iRet == 1) sRet = UserCom.RST_OK; } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } return sRet; } /// /// 데이터 획득 /// public object GetData(string[] aParam) { try { string sQuery = ""; if (aParam[0] == PosMst.MST_EMG_NOTE.TABLE_NAME) { sQuery += " SELECT *"; sQuery += " FROM POSMST.dbo.MST_EMG_NOTE "; sQuery += " WHERE 1 = 1 "; sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'"; if (aParam[1] == ItemConst.NOTE_MSG_DIV.NRL) //일반 { sQuery += " AND START_DT <= '" + DateTime.Now.ToString("yyyyMMdd") + "'"; sQuery += " AND MSG_DIV = '" + ItemConst.NOTE_MSG_DIV.NRL + "'"; sQuery += " AND FNSH_HOUR >= '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "'"; } else if (aParam[1] == ItemConst.NOTE_MSG_DIV.EMG) //긴급 { sQuery += " AND START_DT <= '" + DateTime.Now.ToString("yyyyMMdd") + "'"; sQuery += " AND MSG_DIV = '" + ItemConst.NOTE_MSG_DIV.EMG + "'"; sQuery += " AND FNSH_HOUR >= '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "'"; } else if (aParam[1] == ItemConst.NOTE_MSG_DIV.BIZ) //영업 { sQuery += " AND START_DT <= '" + DateTime.Now.ToString("yyyyMMdd") + "'"; sQuery += " AND MSG_DIV = '" + ItemConst.NOTE_MSG_DIV.BIZ + "'"; sQuery += " AND FNSH_HOUR >= '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "'"; } else if (aParam[1] == ItemConst.NOTE_MSG_DIV.ALL) //전체 { sQuery += " AND START_DT <= '" + DateTime.Now.ToString("yyyyMMdd") + "'"; sQuery += " AND FNSH_HOUR >= '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "'"; } else if (aParam[1] == ItemConst.NOTE_MSG_DIV.ROL) //롤링 { sQuery += " AND START_DT <= '" + DateTime.Now.ToString("yyyyMMdd") + "'"; sQuery += " AND MSG_DIV = '" + ItemConst.NOTE_MSG_DIV.EMG + "'"; sQuery += " AND MSG_TYPE NOT IN ('1','2') "; //프로그램 또는 마스터가 아닌것 sQuery += " AND POPUP_YN = '0'"; //팝업구분 sQuery += " AND FNSH_HOUR >= '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "'"; sQuery += " AND USE_YN = '1' "; } else if (aParam[1] == ItemConst.NOTE_MSG_DIV.POP) // 팝업 또는 프로그램/마스터 { sQuery += " AND START_DT = '" + DateTime.Now.ToString("yyyyMMdd") + "'"; sQuery += " AND MSG_DIV = '" + ItemConst.NOTE_MSG_DIV.EMG + "'"; sQuery += " AND (MSG_TYPE IN ('1','2') OR POPUP_YN = '1')"; //프로그램 또는 마스터 또는 팝업 sQuery += " AND READ_YN IN ('0','1') "; // sQuery += " AND USE_YN = '1' "; } sQuery += " ORDER BY CMP_CD ,STOR_CD ,POS_NO, MSG_CODE DESC "; } else if (aParam[0] == PosMst.MST_CPI.TABLE_NAME) { sQuery = " SELECT ROW_NUMBER() OVER( ORDER BY CPI_CD ASC) AS NO,CPI_CD,CPI_NM,CPI_EXPLN,CPI_INFO "; sQuery += " FROM POSMST.dbo.MST_CPI WITH(NOLOCK) "; sQuery += " WHERE 1 = 1 "; sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "; sQuery += " AND '" + DateTime.Now.ToString("yyyyMMdd") + "' BETWEEN STARTDAY AND FNSHDAY "; sQuery += " AND PRGRS_STATUS = 'C'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' "; } sQuery = sQuery.Replace("\t", " "); return m_cMstService.Select(new string[] { sQuery }); } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } return null; } /// /// 프로그램 관련 데이터 업데이트 /// public string SetData(object oParam) { string sRet = UserCom.RST_ERR; try { string sQuery = ""; // 재기동시 POS 프로그램은 무조건 최신버전으로 수신하기에 // 긴급메시지로 프로그램 다운로드 하라는 메시지 읽음으로 처리한다. sQuery += " UPDATE POSMST.dbo.MST_EMG_NOTE \n"; sQuery += " SET READ_YN = '2' \n"; sQuery += " , SEND_YN = '0' \n"; sQuery += " , DOWN_YN = '1' \n"; sQuery += " WHERE 1 = 1 \n"; sQuery += " AND CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n"; sQuery += " AND READ_YN <> '2' \n"; sQuery += " AND MSG_TYPE = '1' \n"; sQuery += " AND MSG_DIV = '" + ItemConst.NOTE_MSG_DIV.EMG + "' \n"; sQuery = sQuery.Replace("\t", " "); int iRet = m_cMstService.Update(new string[] { sQuery }); if (iRet == 1) sRet = UserCom.RST_OK; } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message); } return sRet; } } }