using System; using System.Text; using System.Collections; using System.Data; using System.Runtime.InteropServices; using Cosmos.BaseFrame; using Cosmos.UserFrame; using Cosmos.ServiceProvider; using Cosmos.Common; using Cosmos.CommonManager; using System.Drawing; using System.Threading; //#20180322 휴게소pos매출연동 start,phj using System.IO; using System.Diagnostics; using System.Collections.Generic; using System.Management; //#20180322 휴게소pos매출연동 end,phj /*-----------------------------------------------------------------------------------------------*/ // 설 명 : 공통함수 처리 // 작 성 자 : // 변경 이력 : /*-----------------------------------------------------------------------------------------------*/ namespace Cosmos.Service { class DataCommon : IDataCommonUs { 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 DeviceStatus m_cDevStatus = new DeviceStatus(); // POS Device 참조 private IMasterUs m_cMstService = null; // 마스터 관리 private DataService m_cDataService = null; // 거래데이터 합계금액 계산 및 관리 private INetworkVanSPCN m_cNetService = null; // SPCN 네트워크 공통 모듈 private IDatabaseSQL m_cSqlDbService = null; // 데이터베이스 관리 #if !FORKIOSK #endif frmPosIrtMessage m_cfPosIrtMsg = new frmPosIrtMessage(); // 내부통신(제이슨) frmExIrtMessage m_cfExIrtMsg = new frmExIrtMessage(); // 외부통신(TCP - ACK, 가변길이) frmTcpClientMsg m_cTcpClientMsg = new frmTcpClientMsg(); // 기타통신(TCP) private INetworkJSON m_cNetJSONService = null; private bool m_bIRTComplete = false; // 통신 완료 상태 Hashtable m_htRecvData = null; // 통신 수신 데이터 (JSON) //frmIrtMessage m_cfIrtMsg = new frmIrtMessage(); [DllImport("SPCNSecuCom.dll", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, SetLastError = true)] //public static extern int SPCNRequestApproval(string ipAddr, int uiPort, int uiMedia, string RequestMsg, int uiLen, public static extern int SPCNRequestApproval(byte[] ipAddr, int uiPort, int uiMedia, byte[] RequestMsg, int uiLen, byte[] ResponseMsg, int uiReadTimeOut, int uiConnectOption); public DataCommon() { m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보 m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보 m_cDevStatus = (DeviceStatus)StateObject.DEVICE; // POS Device 정보; m_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER); m_cDataService = (DataService)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE); m_cNetService = (INetworkVanSPCN)sManager.InitServiceInstance(ServiceLists.AGENT_NETWORK.DLL, ServiceLists.AGENT_NETWORK.NETWORK_VAN_SPCN); m_cNetJSONService = (INetworkJSON)sManager.InitServiceInstance(ServiceLists.AGENT_NETWORK.DLL, ServiceLists.AGENT_NETWORK.NETWORK_JSON); m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL); } #region 마스터 조회 //#20171018 상품등록 유통기한 체크하기 start, phj /// /// 상품 마스터 조회 /// /// /// /// /// //기존 //public DataTable SearchItemCode(string sSubStoreNo, string sItemCode, string sScanCode) //변경 public DataTable SearchItemCode(string sSubStoreNo, string sItemCode, string sScanCode, bool TimeStampBarCodeYn = false) //#20171018 상품등록 유통기한 체크하기 end, phj { try { //#20171018 상품등록 유통기한 체크하기 start, phj //기존 //if (sScanCode.Trim() != "") //변경 if ((sScanCode.Trim() != "") && (TimeStampBarCodeYn == false)) //#20171018 상품등록 유통기한 체크하기 end, phj { // 스캔코드 DataTable dtDataInfo = SeletItemMstToScanCode(sSubStoreNo, sScanCode); if (dtDataInfo == null || dtDataInfo.Rows.Count == 0) return null; foreach (DataRow dr in dtDataInfo.Rows) { sSubStoreNo = CmUtil.GetDataRowStr(dr, PosMst.MST_BARCODE.DATA.SUB_STOR_CD); sItemCode = CmUtil.GetDataRowStr(dr, PosMst.MST_BARCODE.DATA.ITEM_CD); DataTable dtPluInfo = SeletItemMstToItemCode(sSubStoreNo, sItemCode); if (dtPluInfo != null && dtPluInfo.Rows.Count > 0) { return dtPluInfo; } } } else { return SeletItemMstToItemCode(sSubStoreNo, sItemCode); } } 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; } /// /// 2019-05-08 - 1997fx11 : NHS 부가옵션을 조회 /// /// /// /// public DataTable SearchNHSOption(string sSubStoreNo, string sSubItemCode) { string sQuery = ""; sQuery = ""; sQuery += " SELECT * "; sQuery += " FROM POSMST..NHS_OPTN_MST WITH(NOLOCK) "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND ITEM_OPTN_CD = '" + sSubItemCode + "'"; try { 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 DataTable SeletItemMstToItemCode(string sSubStoreNo, string sItemCode) { string sQuery = ""; try { if (sSubStoreNo == "") sSubStoreNo = m_cPosStatus.Base.StoreNo; //#Rhee, 20180209 미국 상품검색 후 상품 추가시 상품의 중분류로 이동 Start // 기존 //// 상품코드로 상품 마스터 조회 //sQuery = ""; //sQuery += " SELECT * FROM POSMST..MST_ITEM WITH(NOLOCK) "; //sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; //sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; ////#20180103 복합매장 해피오더 픽업 완료시 상품마스터 조회 안되는 증상 수정 start ////#20180108 복합매장 중복 상품코드 있는 경우 서브점포코드 정상적으로 들어가지 않아 원복 //sQuery += " AND SUB_STOR_CD = '" + sSubStoreNo + "'"; ////#20180103 복합매장 해피오더 픽업 완료시 상품마스터 조회 안되는 증상 수정 end //sQuery += " AND ITEM_CD = '" + sItemCode + "'"; //sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; // 변경 if (m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) { // 상품코드로 상품 마스터 조회 sQuery = ""; sQuery += " SELECT A.STOR_CD + A.L_CLSS_CD + ' 0' + CAST( A.GRP_SEQ AS VARCHAR(2)) AS GRP_SEQ"; sQuery += " , B.* FROM POSMST..MST_ITEM_KEY A WITH(NOLOCK) JOIN POSMST..MST_ITEM B WITH(NOLOCK) ON "; sQuery += " A.CMP_CD=B.CMP_CD AND A.STOR_CD=B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD "; sQuery += " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; //#20180103 복합매장 해피오더 픽업 완료시 상품마스터 조회 안되는 증상 수정 start //#20180108 복합매장 중복 상품코드 있는 경우 서브점포코드 정상적으로 들어가지 않아 원복 sQuery += " AND A.SUB_STOR_CD = '" + sSubStoreNo + "'"; //#20180103 복합매장 해피오더 픽업 완료시 상품마스터 조회 안되는 증상 수정 end sQuery += " AND A.ITEM_CD = '" + sItemCode + "'"; sQuery += " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; } else { // 상품코드로 상품 마스터 조회 sQuery = ""; sQuery += " SELECT * FROM POSMST..MST_ITEM WITH(NOLOCK) "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; //#20180103 복합매장 해피오더 픽업 완료시 상품마스터 조회 안되는 증상 수정 start //#20180108 복합매장 중복 상품코드 있는 경우 서브점포코드 정상적으로 들어가지 않아 원복 sQuery += " AND SUB_STOR_CD = '" + sSubStoreNo + "'"; //#20180103 복합매장 해피오더 픽업 완료시 상품마스터 조회 안되는 증상 수정 end sQuery += " AND ITEM_CD = '" + sItemCode + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; } //#Rhee, 20180209 미국 상품검색 후 상품 추가시 상품의 중분류로 이동 End 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; } //#15945 해피오더 자동주문 상세기능 start /// /// 해피오더자동출하상품체크 /// public DataTable AutomaticShipmentItemCheck(string sSubStoreNo, string sItemCode) { string sQuery = ""; try { if (sSubStoreNo == "") sSubStoreNo = m_cPosStatus.Base.StoreNo; sQuery = ""; sQuery += " SELECT * FROM POSMST..MST_ITEM WITH(NOLOCK) "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND SUB_STOR_CD = '" + sSubStoreNo + "'"; sQuery += " AND ITEM_CD = '" + sItemCode + "'"; sQuery += " AND HP_ORD_DIV = '1'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; 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; } //#15945 해피오더 자동주문 상세기능 end /// /// 상품 마스터 조회(스캔코드로 조회) /// /// 서브점포 /// 스캔코드 /// public DataTable SeletItemMstToScanCode(string sSubStoreNo, string sScanCode) { string sQuery = ""; try { // 스켄코드로 상품 마스터 조회 //#20180620 바코드 스캔시 조건 변경 start //상품마스터(MST_ITEM)의 FILLER1 값이 취급종료('2'), 임시불가('3')가 아닌 경우엔 입력 가능 //취급종료('2'), 임시불가('3')인 경우엔 터치키가 있다면 입력 가능 //기존 /* sQuery = ""; sQuery += " SELECT * FROM POSMST..MST_ITEM_BAR_CD WITH(NOLOCK) "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; //sQuery += " AND SUB_STOR_CD = '" + sSubStoreNo + "'"; sQuery += " AND BAR_CD_NO = '" + sScanCode + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; */ //변경 sQuery = ""; sQuery += " SELECT A.SUB_STOR_CD, A.ITEM_CD "; sQuery += " FROM POSMST..MST_ITEM_BAR_CD A "; sQuery += " INNER JOIN POSMST..MST_ITEM B "; sQuery += " ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD "; sQuery += " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND A.BAR_CD_NO = '" + sScanCode + "'"; sQuery += " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " AND B.FILLER1 IN ('0','1') "; sQuery += " UNION ALL "; sQuery += " SELECT A.SUB_STOR_CD, A.ITEM_CD "; sQuery += " FROM POSMST..MST_ITEM_BAR_CD A "; sQuery += " INNER JOIN POSMST..MST_ITEM B "; sQuery += " ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD "; sQuery += " INNER JOIN POSMST..MST_ITEM_KEY C "; sQuery += " ON A.CMP_CD = C.CMP_CD AND A.STOR_CD = C.STOR_CD AND A.SUB_STOR_CD = C.SUB_STOR_CD AND A.ITEM_CD = C.ITEM_CD "; sQuery += " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND A.BAR_CD_NO = '" + sScanCode + "'"; sQuery += " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " AND B.FILLER1 IN ('2','3') "; //#20180620 바코드 스캔시 조건 변경 end 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; } #region public DataTable SeletItemMstNmoScanCode(string sSubStoreNo, string sScanCode) //---------------------------------------------- // 바코드 중복 처리를 위한 상품 마스터 조회 함수 //---------------------------------------------- public DataTable SeletItemMstNmToScanCode(string sSubStoreNo, string sScanCode) { string sQuery = ""; try { // 스켄코드로 상품 마스터 조회 //#13732 바코드 리딩 시 팝업 조건 변경요청 start //기존 /* sQuery = ""; sQuery += "\r\n" + " SELECT ROW_NUMBER() OVER (ORDER BY (select null)) AS NO,"; sQuery += "\r\n" + " A.STOR_CD, A.ITEM_CD,"; sQuery += "\r\n" + " (SELECT B.ITEM_NM FROM dbo.MST_ITEM B WHERE B.ITEM_CD = A.ITEM_CD) AS ITEM_NM,"; sQuery += "\r\n" + " (SELECT B.TAKE_IN_SALE_AMT FROM dbo.MST_ITEM B WHERE B.ITEM_CD = A.ITEM_CD) AS SALE_AMT"; sQuery += "\r\n" + " FROM POSMST..MST_ITEM_BAR_CD A WITH(NOLOCK) "; sQuery += "\r\n" + " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += "\r\n" + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += "\r\n" + " AND A.BAR_CD_NO = '" + sScanCode + "'"; sQuery += "\r\n" + " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; */ //변경 sQuery = ""; sQuery += "\r\n" + " SELECT ROW_NUMBER() OVER (ORDER BY (select null)) AS NO,"; sQuery += "\r\n" + " X.STOR_CD, X.ITEM_CD, X.ITEM_NM, X.SALE_AMT"; sQuery += "\r\n" + " FROM ("; sQuery += "\r\n" + " SELECT A.SUB_STOR_CD AS STOR_CD, A.ITEM_CD, B.ITEM_NM, B.TAKE_IN_SALE_AMT AS SALE_AMT"; sQuery += "\r\n" + " FROM POSMST..MST_ITEM_BAR_CD A "; sQuery += "\r\n" + " INNER JOIN POSMST..MST_ITEM B "; sQuery += "\r\n" + " ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD "; sQuery += "\r\n" + " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += "\r\n" + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += "\r\n" + " AND A.BAR_CD_NO = '" + sScanCode + "'"; sQuery += "\r\n" + " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += "\r\n" + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += "\r\n" + " AND B.FILLER1 IN ('0','1') "; sQuery += "\r\n" + " UNION ALL "; sQuery += "\r\n" + " SELECT A.SUB_STOR_CD AS STOR_CD, A.ITEM_CD, B.ITEM_NM, B.TAKE_IN_SALE_AMT AS SALE_AMT "; sQuery += "\r\n" + " FROM POSMST..MST_ITEM_BAR_CD A "; sQuery += "\r\n" + " INNER JOIN POSMST..MST_ITEM B "; sQuery += "\r\n" + " ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.ITEM_CD = B.ITEM_CD "; sQuery += "\r\n" + " INNER JOIN POSMST..MST_ITEM_KEY C "; sQuery += "\r\n" + " ON A.CMP_CD = C.CMP_CD AND A.STOR_CD = C.STOR_CD AND A.SUB_STOR_CD = C.SUB_STOR_CD AND A.ITEM_CD = C.ITEM_CD "; sQuery += "\r\n" + " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += "\r\n" + " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += "\r\n" + " AND A.BAR_CD_NO = '" + sScanCode + "'"; sQuery += "\r\n" + " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += "\r\n" + " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += "\r\n" + " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += "\r\n" + " AND B.FILLER1 = '2' "; sQuery += "\r\n" + " ) X "; //#13732 바코드 리딩 시 팝업 조건 변경요청 end 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; } #endregion //#20171018 상품등록 유통기한 체크하기 start, phj public string TimeStampBarCodeCheck(string sSubStoreNo, string sScanCode, ref string sRetItemCd) { string sRet = UserCom.RST_ERR; sRetItemCd = string.Empty; try { string TempDate = string.Empty; string TodayDate = string.Empty; TempDate = CmUtil.IntParse(DateTime.Now.ToString("yyMMdd")).ToString(); TodayDate = TempDate.Substring(1, 5); if (CmUtil.IntParse(CmUtil.MidH(sScanCode, 7, 5)) < Convert.ToInt32(TodayDate)) { WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0739); //유통기한이 경과된 상품입니다. return sRet; } sRetItemCd = sScanCode.Substring(1, 6); 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; } //#20171018 상품등록 유통기한 체크하기 end, phj /// /// 스캔 바코드 상품 조회 /// /// 스캔코드 /// public string SeletItemMstToBarCode(string sSubStoreNo, string sScanCode, ref string sRetItemCd, ref string sRetScanCode, ref string sShtcutItemNm) { //string sQuery = ""; string sRet = UserCom.RST_ERR; sRetItemCd = ""; sRetScanCode = ""; try { if (sScanCode.Length >= 6) { if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR) { // grayber@20180108 [BR] 바코드 18자리 인식 추가 start // 기존 //if (sScanCode.Length == 16) //{ // if (CmUtil.MidH(sScanCode, 10, 6) == "N9999X") // { // sRetItemCd = CmUtil.MidH(sScanCode, 4, 6); // } // else // { // sRetItemCd = CmUtil.MidH(sScanCode, 10, 6); // } // //유통기한 체크 // if (ScanBarcodeCheck(sSubStoreNo, sScanCode, sRetItemCd, ref sShtcutItemNm) == true) // { // sRet = UserCom.RST_OK; // } //} // 변경 if (sScanCode.Length == 16 || sScanCode.Length == 18 ) { if (CmUtil.RightH(sScanCode, 6) == "N9999X") { if (sScanCode.Length == 16) { sRetItemCd = CmUtil.MidH(sScanCode, 4, 6); } else if (sScanCode.Length == 18) { sRetItemCd = CmUtil.MidH(sScanCode, 4 + 2, 6 + 2); } } else { sRetItemCd = CmUtil.RightH(sScanCode, 6); } //유통기한 체크 if (ScanBarcodeCheck(sSubStoreNo, sScanCode, sRetItemCd, ref sShtcutItemNm) == true) { sRet = UserCom.RST_OK; } } // grayber@20180108 [BR] 바코드 18자리 인식 추가 end // grayber@20171129 필터 추가 및 바코드 상품 검색 조건 개선 start else if (sScanCode.Length == 6 && sScanCode.StartsWith("N") == true ) { sRetScanCode = sRetItemCd = sScanCode; if (ScanBarcodeCheck(sSubStoreNo, sScanCode, sRetItemCd, ref sShtcutItemNm) == true) { sRet = UserCom.RST_OK; }; } // grayber@20171129 필터 추가 및 바코드 상품 검색 조건 개선 end else { sRet = UserCom.RST_IGNORE; } } else if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC && m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.KR) { //PC if (sScanCode.Length == 15) { //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20180829 if (sScanCode.StartsWith("999") == true) { //string sHappyOrderNum = CmUtil.MidH(sScanCode.Trim(), 3, 12); //sRetItemCd = sHappyOrderNum; sShtcutItemNm = "HP_ORD"; return sRet; } else //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20180829 if (sScanCode.StartsWith("S88") == false) { WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0523); //등록되지 않은 바코드 입니다. return sRet; } else { if (CmUtil.IntParse(CmUtil.MidH(sScanCode, 9, 6)) < CmUtil.IntParse(DateTime.Now.ToString("yyMMdd"))) { //에러 선택 메세지 유통기한 확인 바랍니다. 제품을 등록하시겠습니까? if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0524) == false) return sRet; } sRetItemCd = CmUtil.MidH(sScanCode, 3, 6); sRet = UserCom.RST_OK; } } //#15897 요청)점포생산제품 바코드 출력기능 수정요청 start else if (sScanCode.Length == 18) { //구분자(2)+제품코드(6)+년(1)+월일시분(8)+체크(1) //구분자(2) : '22' //년(1) : 년도 마지막 자리 ex) 2018 -> 8 //체크(1) : bdataCheckNum(년+월일시분) if (sScanCode.StartsWith("22") == false) { WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0523); //등록되지 않은 바코드 입니다. return sRet; } //구분자(2)+제품코드(6)+년(1)+월일시분(8)+체크(1) string sCheckDigit = CmUtil.MidH(sScanCode, 17, 1); string sRetCheckDigit = LabelBarCodeCheck(CmUtil.MidH(sScanCode, 8, 9)); if (sCheckDigit != sRetCheckDigit) { WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0794)); return sRet; } sRetItemCd = CmUtil.MidH(sScanCode, 2, 6); sRet = UserCom.RST_OK; } //#15897 요청)점포생산제품 바코드 출력기능 수정요청 end else { sRet = UserCom.RST_IGNORE; } } else if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC && (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.US || m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.FR || m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.VN || m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.SG) ) { //미국, 프랑스, 배트남, 싱가포르 if (sScanCode.Length <= 10) { //제품 sRetItemCd = sScanCode; sRet = UserCom.RST_OK; } else { sRet = UserCom.RST_IGNORE; } } else if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC && m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.CN) { //중국 if (sScanCode.Length != 18) { //제품 sRetItemCd = sScanCode; sRet = UserCom.RST_OK; } else { sRet = UserCom.RST_IGNORE; } } } } 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; } #region 바코드 유통기간 체크 /// /// 바코드스캔 코드 체크 /// /// /// private bool ScanBarcodeCheck(string sSubStoreNo, string sScanCode, string sItemCode, ref string sShtcutItemNm) { bool bRet = true; string sMsg = ""; string sCreateDate = string.Empty; //생산일자 string sExpireDt = string.Empty; //유통기한 string sProduceDt = string.Empty; try { //유통기한 가져오기 DataTable dtDataInfo = SeletItemMstToItemCode(sSubStoreNo, sItemCode); if (dtDataInfo == null || dtDataInfo.Rows.Count == 0) { WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0010)); bRet = false; } else { DataRow dr = dtDataInfo.Rows[0]; int iExpire = CmUtil.GetDataRowInt(dr, PosMst.MST_ITEM.DATA.DISTBT_EXPIRE_NOD); sShtcutItemNm = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM); if (iExpire > 0) { // 년 2byte 월 2byte 일 2byte sProduceDt = "20" + AlphaToDate(sScanCode.Substring(0, 1)) + AlphaToDate(sScanCode.Substring(1, 1)) + AlphaToDate(sScanCode.Substring(2, 1)); if (sProduceDt.Length != 8) { UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "InputBarCodeToDate = " + sProduceDt); } else { //유통기간 날짜구하기! sExpireDt = GetExpireDate(sProduceDt, iExpire); if (sExpireDt != "") { if (CmUtil.LongParse(DateTime.Now.ToString("yyyyMMdd")) > CmUtil.LongParse(sExpireDt)) { sCreateDate = string.Format("{0}-{1}-{2}", sProduceDt.Substring(0, 4), sProduceDt.Substring(4, 2), sProduceDt.Substring(6, 2)); sExpireDt = string.Format("{0}-{1}-{2}", sExpireDt.Substring(0, 4), sExpireDt.Substring(4, 2), sExpireDt.Substring(6, 2)); sMsg = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0525), CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM), sCreateDate, sExpireDt); WinManager.ErrorMessage(sMsg); bRet = false; } } } } } } 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 bRet; } /// /// 유통기간 문자열 날짜 변환 /// /// /// private string AlphaToDate(string sScanCode) { string sRet = ""; try { string[] aAlpha = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "A" , "B", "C", "D", "E", "F", "G", "H", "I", "J", "K" , "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U" , "V" }; for (int iRow = 0; iRow <= aAlpha.Length - 1; iRow++) { if (aAlpha[iRow] == sScanCode) { sRet = (iRow + 1).ToString().PadLeft(2, '0'); break; } } } 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; } /// /// 유통기간 일자 및 체크 /// /// /// private string GetExpireDate(string sCreateDate, int iExpireDay) { string EDate = ""; try { string SDate = string.Format("{0}-{1}-{2}", sCreateDate.Substring(0, 4), sCreateDate.Substring(4, 2), sCreateDate.Substring(6, 2)); DateTime T1 = DateTime.Parse(SDate); DateTime T2 = T1.AddDays(iExpireDay); EDate = T2.Date.ToString("yyyyMMdd"); } 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 EDate; } #endregion 바코드 유통기간 체크 /// /// 기능키 그룹 조회 /// /// 기능그룹ID /// public DataTable SeletFuncKeyGroup(string sFuncGroupID) { string sQuery = ""; try { // 기능키 그룹 조회 sQuery += " SELECT * FROM POSMST..MST_FUNC_KEY_GRP "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; if (sFuncGroupID != "") sQuery += " AND FUNC_GRP_ID = '" + sFuncGroupID + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " ORDER BY FUNC_GRP_ID, DISP_SEQ "; 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 DataTable SeletFuncKey(string sFuncID) { string sQuery = ""; try { // 기능키 그룹 조회 sQuery += " SELECT * FROM POSMST..MST_FUNC_KEY "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; if (sFuncID != "") sQuery += " AND FUNC_ID = '" + sFuncID + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; //sQuery += " ORDER BY FUNC_ID, DISP_SEQ "; 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; } //#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 start /// /// 기능키 배치 여부 조회 /// /// /// public DataTable SeletFuncKeyGroupArr(string sFuncID) { string sQuery = ""; try { // 기능키 배치 여부 조회 sQuery += " SELECT * FROM POSMST..MST_FUNC_KEY_GRP "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND FUNC_ID = '" + sFuncID + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " ORDER BY FUNC_GRP_ID, DISP_SEQ "; 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; } //#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 end /// /// 공통코드 조회 /// /// 공통코드그룹(PosCont.COMMON_CODE_GROUP) /// 공통코드 /// public DataTable SeletCommonCode(string sCommCodeGroup, string sCommCode) { string sQuery = ""; try { // 공통코드 조회 sQuery += " SELECT * FROM POSMST..MST_CMM "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; if (sCommCodeGroup != "") sQuery += " AND CMM_GRP_CD = '" + sCommCodeGroup + "'"; if (sCommCode != "") sQuery += " AND CMM_CD = '" + sCommCode + "'"; sQuery += " AND LANG_TYPE = '" + m_cPosStatus.Base.Country + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " ORDER BY CMM_GRP_CD, DISP_SEQ, CMM_CD "; 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 double ItemTaxRate(string sTaxRateCode) { DataTable dt = null; double dTaxRate = 0; try { dt = SeletCommonCode(PosConst.COMMON_CODE_GROUP.M0101, sTaxRateCode); if (!(dt == null || dt.Rows.Count == 0)) { DataRow dr = dt.Rows[0]; dTaxRate = CmUtil.GetDataRowDouble(dr, PosMst.MST_COMMON.DATA.NUM_VAL_TITLE_VAL_01); } } 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 dTaxRate; } /// /// MOT 마스터 조회 /// /// /// /// /// public DataTable SelectMOT(string sTableName, string sMsgType, string sCnntID, string sSeqNo) { string sQuery = ""; try { if (sTableName == PosMst.MST_MOT_MSG.TABLE_NAME) { // MOT 해더 마스터 sQuery += " SELECT * FROM POSMST..MST_MOT_MSG "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND MSG_TYPE = '" + sMsgType + "'"; if (sCnntID != "") sQuery += " AND CNNT_ID = '" + sCnntID + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " ORDER BY SEQ_NO "; } if (sTableName == PosMst.MST_MOT_MSG_DTL.TABLE_NAME) { // MOT 상세 마스터 //sQuery += " SELECT * FROM POSMST..MST_MOT_MSG_DTL "; //sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; //sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; //sQuery += " AND MSG_TYPE = '" + sMsgType + "'"; //sQuery += " AND CNNT_ID = '" + sCnntID + "'"; //if (sSeqNo != "") // sQuery += " AND SEQ_NO = '" + sSeqNo + "'"; //sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; //sQuery += " ORDER BY SEQ "; sQuery += " SELECT B.* "; sQuery += " FROM POSMST..MST_MOT_MSG A "; sQuery += " INNER JOIN POSMST..MST_MOT_MSG_DTL B "; sQuery += " ON A.CMP_CD = B.CMP_CD "; sQuery += " AND A.STOR_CD = B.STOR_CD "; sQuery += " AND A.MSG_TYPE = B.MSG_TYPE "; sQuery += " AND A.CNNT_ID = B.CNNT_ID "; sQuery += " AND A.SEQ_NO = B.SEQ_NO "; sQuery += " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " WHERE B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND B.MSG_TYPE = '" + sMsgType + "'"; sQuery += " AND B.CNNT_ID = '" + sCnntID + "'"; if (sSeqNo != "") sQuery += " AND B.SEQ_NO = '" + sSeqNo + "'"; sQuery += " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " ORDER BY B.SEQ "; } 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 DataTable SelectSubStr(string sTableName) { string sQuery = ""; try { sQuery += " SELECT * FROM POSMST.dbo.MST_COMPLEX_SHOP_STOR "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; 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 DataTable SeletMstDpstWthdrAccDtl(string sDpstWthdrType, string sAccCd) { string sQuery = ""; try { // 입출금 계정 디테일 마스터 sQuery = ""; sQuery += " SELECT DPST_WTHDR_ACC_NM, DPST_WTHDR_TYPE, DPST_WTHDR_ACC_CD, SPPLR_INPUT_TYPE "; sQuery += " FROM POSMST..MST_DPST_WTHDR_ACC "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND DRT_FRCS_DIV = '" + m_cPosStatus.Mst.DrtFrcsDiv + "'"; //직가맹 구분 sQuery += " AND DPST_WTHDR_TYPE = '" + sDpstWthdrType + "'"; sQuery += " AND SALE_POS_USE_YN = '1' "; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; 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; } /// /// WEB_LINK 마스터 조회 /// /// public DataTable SeletMstWebLinkMst(string sDiv) { string sQuery = ""; try { sQuery = ""; sQuery += " SELECT * FROM POSMST..MST_WEB_LNKAGE "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND DISP_YN = '1'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " ORDER BY DISP_SEQ ASC "; 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; } /// /// 기능키 그룹 조회 /// /// 기능그룹ID /// public DataTable SeletSubPrcMenu(string sSubStoreNo, string sItemCode) { string sQuery = ""; try { // 상품코드로 상품 마스터 조회 sQuery = ""; sQuery += " SELECT DISTINCT * FROM POSMST..MST_SUBPRC_MENU_GRP "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND SUB_STOR_CD = '" + sSubStoreNo + "'"; sQuery += " AND SUBPRC_MENU_KEY_CD = '" + sItemCode + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; 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; } #endregion #region 카드 승인 헤더 IRT 전문 생성(SPC VAN 공용사용) /// /// 카드 승인 헤더 IRT 전문 생성(카드,OCB포인트,콘 공용사용) /// /// /// /// 업체정보 /// 단말기번호 /// public string MakeCreditCardHeader(string sMsgID, long nIRTBodyLen, string sCmpApprID, string sApprID) { string sSendData = ""; try { // 카드 승인 헤더 string[] aIrtHead = new string[Column.POS_VAN_HEADER.LEN.Length]; aIrtHead[Column.POS_VAN_HEADER.SEQ.HdrTrDiv] = sMsgID; aIrtHead[Column.POS_VAN_HEADER.SEQ.HdrLen] = (ItemColumn.LenMessage(Column.POS_VAN_HEADER.LEN) + nIRTBodyLen - 4).ToString(); //-4헤더에서 길이항목을 빼준다. aIrtHead[Column.POS_VAN_HEADER.SEQ.HdrSTX] = PosConst.VAN_HEXA.STX; aIrtHead[Column.POS_VAN_HEADER.SEQ.HdrCatNo] = sApprID; // 단말기번호(터미널ID) => "PCR0000001" aIrtHead[Column.POS_VAN_HEADER.SEQ.HdrCompany] = sCmpApprID; // 업체정보=> "BR31" aIrtHead[Column.POS_VAN_HEADER.SEQ.HdrDocSeq] = DateTime.Now.ToString("HHmmss"); // 전문일련번호*///m_cPosStatus.Base.MsgSeqNo; // 신용카드 승인 요청 헤더 전문 생성 sSendData = ItemColumn.MakeMessage(aIrtHead, Column.POS_VAN_HEADER.LEN, Column.POS_VAN_HEADER.TYPE); } 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 sSendData; } #endregion 카드 승인 헤더 IRT 전문 생성(SPC VAN 공용사용) #region SPC VAN 공통 전문 송/수신 /// /// SPC VAN 공통 전문 송/수신 /// /// /// /// /// //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180503 //해피쿠폰 발송시 승인 메시지 변경 '포인트 조회중입니다.' -> '쿠폰 발송중입니다.' //기존 /* public string ExecuteCardIrt(string sTradID, string sSendItem, ref string sRecvItem, bool bShowMsg, string sAuthInfo) { return ExecuteCardIrt(sTradID, sSendItem, ref sRecvItem, bShowMsg, "", "", "", sAuthInfo); } */ //변경 public string ExecuteCardIrt(string sTradID, string sSendItem, ref string sRecvItem, bool bShowMsg, string sAuthInfo, string sPAY_WAY_CD = "", string sPAY_DTL_CD_01 = "") { return ExecuteCardIrt(sTradID, sSendItem, ref sRecvItem, bShowMsg, "", "", "", sAuthInfo, sPAY_WAY_CD, sPAY_DTL_CD_01); } //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180503 //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180503 //해피쿠폰 발송시 승인 메시지 변경 '포인트 조회중입니다.' -> '쿠폰 발송중입니다.' //기존 //public string ExecuteCardIrt(string sTradID, string sSendItem, ref string sRecvItem, bool bShowMsg, string sChipData, string sSingData, string sLastRecvData, string sAuthInfo) //변경 public string ExecuteCardIrt(string sTradID, string sSendItem, ref string sRecvItem, bool bShowMsg, string sChipData, string sSingData, string sLastRecvData, string sAuthInfo, string sPAY_WAY_CD = "", string sPAY_DTL_CD_01 = "") //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180503 { string sRet = UserCom.RST_ERR; int nRet = -99; string sRecvData = ""; string sDspName = ""; try { // 화면 표시 메세지 설정 부분 switch (sTradID) { case PosConst.POS_VAN_MASTER.TRADE_ID.VAN_BILL_CHECK: sDspName = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0060); break; case PosConst.POS_VAN_MASTER.TRADE_ID.VAN_POT_QRY_A: sDspName = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0252); break; case PosConst.POS_VAN_MASTER.TRADE_ID.VAN_CARD_AGREE: sDspName = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0058); break; case PosConst.POS_VAN_MASTER.TRADE_ID.VAN_CASH_AGREE: sDspName = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0065); break; case PosConst.POS_VAN_MASTER.TRADE_ID.VAN_ICCARD_LINE_CANCEL: sDspName = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0096); break; default: break; } sDspName = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), sDspName); //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180503 //해피쿠폰 발송시 승인 메시지 변경 '포인트 조회중입니다.' -> '쿠폰 발송중입니다.' if (sPAY_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && sPAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.HAPPYCPN_SEND) { sDspName = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0783); } //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180503 //UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // CmUtil.RPadH("[SEND" + ": VAN(SPCN)", 27) + "] " + sSendItem); #if KIOSKSTART_OFF using (var m_cfVanMsg = new frmVanMessage()) { m_cfVanMsg.PosMessageStr = sDspName; m_cfVanMsg.SendData = sSendItem; m_cfVanMsg.ICData = sChipData; m_cfVanMsg.SignData = sSingData; m_cfVanMsg.LastRecvData = sLastRecvData; //망취소용 m_cfVanMsg.AuthInfo = sAuthInfo; m_cfVanMsg.ShowDialog(); sRecvData = m_cfVanMsg.RecvData; nRet = m_cfVanMsg.RecvRet; if (nRet < 0) sRet = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0158) + "\n" + m_cfVanMsg.RecvData; } #else var iCReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER); if (sLastRecvData.Trim() != "") //망취소 nRet = iCReader.SpcnCommPosForNetCancel(sSendItem, sLastRecvData, ref sRecvData); else nRet = iCReader.SpcnCommPos(sSendItem, sSingData, sChipData, string.Empty, sAuthInfo, ref sRecvData); if (nRet < 0) sRet = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0158) + "\n" + sRecvData; iCReader = null; #endif if (nRet < 0) { // 통신 실패 로그 UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", string.Format("SPCN SOCKET ERROR, RET = {0} => {1}", nRet, sRecvData)); return sRet; } //UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // CmUtil.RPadH("[RECV" + ": VAN(SPCN)", 27) + "] " + sRecvData); byte[] bytes = Encoding.Default.GetBytes(sRecvData); int nNowPos = 0; // 공통해더 전문 체크 string[] aCommHead = new string[Column.POS_VAN_HEADER.LEN.Length]; ItemColumn.ParseMessage(Column.POS_VAN_HEADER.LEN, Column.POS_VAN_HEADER.TYPE, bytes, ref nNowPos, ref aCommHead); // POS번호+전문순번 정합성 체크 if (CmUtil.MidH(sSendItem, 25, 6) != aCommHead[Column.POS_VAN_HEADER.SEQ.HdrDocSeq]) { sRet = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0158); // 통신 실패 로그 UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", string.Format("SPCN SOCKET ERROR, SEQNO => {0} != {1}", CmUtil.MidH(sSendItem, 25, 6), aCommHead[Column.POS_VAN_HEADER.SEQ.HdrDocSeq])); return sRet; } // 바디 체크 if (bytes.Length - nNowPos <= 0) { sRet = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0158); // 통신 실패 로그 UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "SPCN SOCKET ERROR, NO DATA"); return sRet; } if (sTradID == PosConst.POS_VAN_MASTER.TRADE_ID.VAN_ICCARD_AGREE) { //신용IC 승인은 망취소 때문에 헤더 자르는 없이 그대로 전송함! sRecvItem = sRecvData; } else { // 수신데이터(공통해더 제거) sRecvItem = Encoding.Default.GetString(bytes, nNowPos, bytes.Length - nNowPos); } 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); } finally { } return sRet; } #endregion SPC VAN 공통 전문 송/수신 #region 기능키 유효성 검사 /// /// 기능키 유효성 검사 /// /// /// public bool FunctionKeyValidity(string sFuncKey) { bool bRet = false; try { DataTable dtFuncKey = SeletFuncKey(sFuncKey); if (dtFuncKey == null || dtFuncKey.Rows.Count <= 0) { //거래 기능 정의 없음! - Err return bRet; } else { foreach (DataRow dr in dtFuncKey.Rows) { //거래 구분 체크 switch (m_cTrnStatus.Head.TradeDiv) { case ItemConst.TRAN_DIV.NORMAL: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.NORMAL) != "1") return bRet; break; case ItemConst.TRAN_DIV.REFUND: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.REFUND) != "1") return bRet; break; } //거래 유형 체크 switch (CmUtil.MidH(m_cTrnStatus.Head.TradeKind, 0, 1)) { case ItemConst.TRAN_KIND.NORMAL.DELIMITER: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.TRN_MODE_0) != "1") return bRet; break; case ItemConst.TRAN_KIND.UNDECIDED.DELIMITER: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.TRN_MODE_1) != "1") return bRet; break; case ItemConst.TRAN_KIND.FORIGN.DELIMITER: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.TRN_MODE_2) != "1") return bRet; break; case ItemConst.TRAN_KIND.AFTER.DELIMITER: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.TRN_MODE_3) != "1") return bRet; break; case ItemConst.TRAN_KIND.CHARGESALE.DELIMITER: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.TRN_MODE_4) != "1") return bRet; break; case ItemConst.TRAN_KIND.ETC.DELIMITER: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.TRN_MODE_5) != "1") return bRet; break; case ItemConst.TRAN_KIND.STATEMENT.DELIMITER: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.TRN_MODE_8) != "1") return bRet; break; case ItemConst.TRAN_KIND.LOG.DELIMITER: if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.TRN_MODE_9) != "1") return bRet; break; default: //알수 없는 거래 유형! break; } break; } } bRet = 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); } return bRet; } /// /// 기능키 서브 메뉴 처리 /// /// /// public bool FunctionKeySubMenuLoad(string sFuncKey) { bool bRet = false; try { DataTable dtFuncKey = SeletFuncKey(sFuncKey); if (dtFuncKey == null || dtFuncKey.Rows.Count <= 0) { //거래 기능 정의 없음! - Err } else { foreach (DataRow dr in dtFuncKey.Rows) { if (CmUtil.GetDataRowStr(dr, PosMst.MST_FUNC_KEY.DATA.MENU_GRP) == "1") bRet = 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); } return bRet; } #endregion #region 쿠폰할인 기능키 조회 /// /// 쿠폰할인 기능키 조회 /// /// /// public DataTable SeletCouponDCFuncKey(string sPay_Dc_Grp_Type, string sPay_Dc_Cd) { try { // 쿠폰할인 조회 string sQuery = ""; sQuery += " SELECT "; sQuery += " ROW_NUMBER() OVER( ORDER BY BRAND_CD DESC, CPN_DC_CD) SEQ"; sQuery += " , CMP_CD CMP_CD "; sQuery += " , STOR_CD STOR_CD "; sQuery += " , BRAND_CD BRAND_CD "; sQuery += " , ISNULL(CPN_DC_CD, '') CPN_DC_CD "; sQuery += " , ISNULL(CPN_DC_NM, '') CPN_DC_NM "; sQuery += " , ISNULL(DC_DIV, '1') CPN_TYPE "; // 할인구분 (1:율, 2:금액) sQuery += " , ISNULL(DC_RATE, 0) DC_RATE "; sQuery += " , 'WHITE' BACKGR_COLOR "; sQuery += " , '10' FONT_SIZE "; sQuery += " , '0' BTN_SIZE "; sQuery += " , '' BTN_ITEM_IMG "; sQuery += " FROM POSMST..MST_DC_DTL "; sQuery += " WHERE "; sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND BRAND_CD IN ('0000', '" + m_cPosStatus.Base.BrandCd + "') "; sQuery += " AND PAY_DC_GRP_TYPE = '" + sPay_Dc_Grp_Type + "' "; sQuery += " AND PAY_DC_CD = '" + sPay_Dc_Cd + "' "; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " ORDER BY 1"; 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; } #endregion #region 환율 조회 /// /// 환율 조회 /// /// /// public DataTable SelectForeign() { try { // 조회 string sQuery = ""; sQuery += " SELECT \n"; sQuery += " EXCHG_RATE_CD EXCHG_RATE_CD \n"; sQuery += " , EXCHG_RATE_NM EXCHG_RATE_NM \n"; sQuery += " , ISNULL(EXCHG_RATE_AMT, 0) EXCHG_RATE_AMT \n"; sQuery += " , ISNULL(EXCHG_RATE_UNIT, 0) EXCHG_RATE_UNIT \n"; sQuery += " FROM POSMST..MST_EXCHG_RATE \n"; sQuery += " WHERE \n"; sQuery += " EXCHG_RATE_REG_DT = CONVERT(VARCHAR(8), DATEADD(DAY, -1, '" + m_cPosStatus.Base.SaleDate + "'), 112) \n"; sQuery += " AND EXCHG_RATE_REG_DGRE = (SELECT ISNULL(MAX(EXCHG_RATE_REG_DGRE), 0) \n"; sQuery += " FROM POSMST..MST_EXCHG_RATE \n"; sQuery += " WHERE EXCHG_RATE_REG_DT = CONVERT(VARCHAR(8), DATEADD(DAY, -1, '" + m_cPosStatus.Base.SaleDate + "'), 112) \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "') \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; sQuery += " ORDER BY 1 \n"; 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; } #endregion #region 환율 단위 조회 /// /// 환율 단위 조회 /// /// /// public DataTable SelectExchangeRate(string sSaleDate) { try { // 조회 string sQuery = ""; sQuery += "SELECT \n"; sQuery += " CONVERT(VARCHAR(5), CMM.DISP_SEQ) DISP_SEQ \n"; sQuery += " , RTRIM(CMM.ENTRY_NM) EXCHG_RATE_CD \n"; sQuery += " , ISNULL(CMM.EXPLN, '') EXCHG_RATE_NM \n"; sQuery += " , ISNULL(EXR.EXCHG_RATE_AMT, '0') EXCHG_RATE_AMT \n"; sQuery += " , ISNULL(EXR.EXCHG_RATE_UNIT, ISNULL(CMM.CHAR_VAL_TITLE_VAL_05, '0')) EXCHG_RATE_UNIT \n"; sQuery += "FROM POSMST..MST_CMM CMM \n"; sQuery += " LEFT JOIN ( \n"; sQuery += " SELECT \n"; sQuery += " EXCHG_RATE_CD EXCHG_RATE_CD \n"; sQuery += " , ISNULL(EXCHG_RATE_NM, '') EXCHG_RATE_NM \n"; sQuery += " , CONVERT(VARCHAR(17), ISNULL(EXCHG_RATE_AMT, '0')) EXCHG_RATE_AMT \n"; sQuery += " , CONVERT(VARCHAR(17), ISNULL(EXCHG_RATE_UNIT, '0')) EXCHG_RATE_UNIT \n"; sQuery += " FROM POSMST..MST_EXCHG_RATE \n"; sQuery += " WHERE \n"; sQuery += " EXCHG_RATE_REG_DT = '" + sSaleDate + "' \n"; sQuery += " AND EXCHG_RATE_REG_DGRE = (SELECT ISNULL(MAX(EXCHG_RATE_REG_DGRE), 0) \n"; sQuery += " FROM POSMST..MST_EXCHG_RATE \n"; sQuery += " WHERE EXCHG_RATE_REG_DT = '" + sSaleDate + "' \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "') \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; sQuery += " ) EXR \n"; sQuery += " ON EXR.EXCHG_RATE_CD = RTRIM(CMM.ENTRY_NM) \n"; sQuery += "WHERE \n"; sQuery += " CMM.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += "AND CMM.CMM_GRP_CD = '" + PosConst.COMMON_CODE_GROUP.Z0004 + "' \n"; sQuery += "AND CMM.LANG_TYPE = '" + m_cPosStatus.Base.Country + "' \n"; sQuery += "AND CMM.CMM_CD IN ('31', '32', '33', '34') \n"; sQuery += "AND CMM.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; sQuery += "ORDER BY CONVERT(VARCHAR(5), CMM.DISP_SEQ) \n"; 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; } #endregion #region 환율등록 /// /// 환율등록 /// /// /// public DataTable SaveExchangeRate(string[] aRet) { try { // 조회 string sQuery = ""; sQuery += "INSERT INTO POSMST.dbo.MST_EXCHG_RATE \n"; sQuery += " ( EXCHG_RATE_REG_DT, EXCHG_RATE_REG_DGRE, EXCHG_RATE_CD, EXCHG_RATE_NM, EXCHG_RATE_AMT, EXCHG_RATE_UNIT, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, USE_YN ) \n"; sQuery += "SELECT \n"; sQuery += " CONVERT(VARCHAR(8), DATEADD(DAY, -1, '" + aRet[0] + "'), 112) EXCHG_RATE_REG_DT \n"; sQuery += " , '" + aRet[5] + "' EXCHG_RATE_REG_DGRE \n"; sQuery += " , '" + aRet[1] + "' EXCHG_RATE_CD \n"; sQuery += " , '" + aRet[2] + "' EXCHG_RATE_NM \n"; sQuery += " , '" + aRet[3] + "' EXCHG_RATE_AMT \n"; sQuery += " , '" + aRet[4] + "' EXCHG_RATE_UNIT \n"; sQuery += " , '' FILLER1 \n"; sQuery += " , '' FILLER2 \n"; sQuery += " , '' FILLER3 \n"; sQuery += " , '' FILLER4 \n"; sQuery += " , '' FILLER5 \n"; sQuery += " , '' UPD_DT \n"; sQuery += " , CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 114), ':', '') REG_DT \n"; sQuery += " , '" + PosConst.MST_USE_YN.YES + "' USE_YN \n"; sQuery += "SELECT @@ROWCOUNT \n"; 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; } #endregion #region 환율 차수 조회 /// /// 환율 차수 조회 /// /// /// public DataTable SelectExchangeRateChasu(string sSaleDate) { try { // 조회 string sQuery = ""; sQuery += " SELECT ISNULL(MAX(EXCHG_RATE_REG_DGRE), 0) + 1 MAX_CHASU \n"; sQuery += " FROM POSMST..MST_EXCHG_RATE \n"; sQuery += " WHERE EXCHG_RATE_REG_DT = CONVERT(VARCHAR(8), DATEADD(DAY, -1, '" + sSaleDate + "'), 112) \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; 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; } #endregion #region 식권 기능키 조회 /// /// 식권 기능키 조회 /// /// /// public DataTable SeletMealTicketFuncKey(string sPay_Dc_Grp_Type, string sPay_Dc_Cd) { try { // 쿠폰할인 조회 string sQuery = ""; sQuery += " SELECT "; sQuery += " ROW_NUMBER() OVER( ORDER BY MEAL_TCKT_ID) SEQ "; sQuery += " , CMP_CD CMP_CD "; sQuery += " , STOR_CD STOR_CD "; sQuery += " , '1' BRAND_CD "; sQuery += " , ISNULL(MEAL_TCKT_ID, '') MEALTICKET_CD "; sQuery += " , ISNULL(MEAL_TCKT_NM, '') MEALTICKET_NM "; sQuery += " , ISNULL(BLNC_AMT_EXCHNG_CPN_ISSUE_YN, '0') MEALTICKET_TYPE "; sQuery += " , ISNULL(MEAL_TCKT_FACE_AMT, 0) MEALTICKET_AMOUNT "; sQuery += " , 'WHITE' BACKGR_COLOR "; sQuery += " , '10' FONT_SIZE "; sQuery += " , '0' BTN_SIZE "; sQuery += " , '' BTN_ITEM_IMG "; sQuery += " , ISNULL(CHANGE_PAYMNT_YN, '0') CHANGE_PAYMNT_YN "; sQuery += " , ISNULL(FILLER1, '0') NO_INPUT_YN "; sQuery += " FROM "; sQuery += " POSMST..MST_MEAL_TCKT "; sQuery += " WHERE "; sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQuery += " ORDER BY 1"; 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; } #endregion #region 선불카드 판매 기능키 조회 /// /// 선불카드 판매 기능키 조회 /// /// /// public DataTable SeletSalePreCardFuncKey(double nAmount) { try { // 조회 string sQuery = ""; sQuery += " SELECT \n"; sQuery += " SORT_QUE SEQ \n"; sQuery += " , CMP_CD CMP_CD \n"; sQuery += " , STOR_CD STOR_CD \n"; sQuery += " , '1' BRAND_CD \n"; sQuery += " , ISNULL(PRECARD_ID, '') CODE \n"; sQuery += " , ISNULL(PRECARD_SHORT_NM, '') NAME \n"; sQuery += " , ISNULL(PRECARD_AMT, 0) AMOUNT \n"; sQuery += " , 'WHITE' BACKGR_COLOR \n"; sQuery += " , '10' FONT_SIZE \n"; sQuery += " , '0' BTN_SIZE \n"; sQuery += " , '' BTN_ITEM_IMG \n"; sQuery += " FROM \n"; sQuery += " POSMST..MST_PRECARD \n"; sQuery += " WHERE \n"; sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; if (nAmount != 0) sQuery += " AND ISNULL(PRECARD_AMT, 0) = " + nAmount + " \n"; sQuery += " ORDER BY SORT_QUE \n"; 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; } #endregion #region 상품권 기능키 조회 /// /// 상품권 기능키 조회 /// /// /// public DataTable SeletGiftFuncKey(string sPay_Dc_Grp_Type, string sPay_Dc_Cd) { try { // 조회 string sQuery = ""; sQuery += " SELECT \n"; sQuery += " ROW_NUMBER() OVER( ORDER BY SORT_QUE, GIF_CD) SEQ \n"; sQuery += " , '" + m_cPosStatus.Base.CmpCd + "' CMP_CD \n"; sQuery += " , '" + m_cPosStatus.Base.StoreNo + "' STOR_CD \n"; sQuery += " , ISNULL(GIF_FIX_BRAND_CD, '') BRAND_CD \n"; sQuery += " , ISNULL(GIF_CD, '') GIFT_CD \n"; sQuery += " , ISNULL(GIF_SHORT_NM, '') GIFT_NM \n"; sQuery += " , ISNULL(APPR_SVR_DIV, '0') APPR_SVR_DIV \n"; sQuery += " , ISNULL(APPR_YN, '0') APPR_TYPE \n"; sQuery += " , ISNULL(HP_ACCUM_YN, '0') HPPOINT_TYPE \n"; sQuery += " , ISNULL(MNDTRY_INPUT_YN, '0') MNDTRY_INPUT_YN \n"; sQuery += " , ISNULL(GIF_AMT, 0) GIFT_AMT \n"; sQuery += " , 'WHITE' BACKGR_COLOR \n"; sQuery += " , '10' FONT_SIZE \n"; sQuery += " , '0' BTN_SIZE \n"; sQuery += " , ISNULL(HPY_GIF_DIV, '0') HPY_GIF_DIV \n"; sQuery += " , (CASE ISNULL(IMG_USE_YN, '0') WHEN '1' THEN ISNULL(IMG_PATH, '') ELSE '' END) BTN_ITEM_IMG \n"; sQuery += " , ISNULL(CHANGE_PAYMNT_YN, '0') CHANGE_PAYMNT_YN \n"; sQuery += " FROM POSMST..MST_GIF \n"; sQuery += " WHERE USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; sQuery += " ORDER BY ISNULL(APPR_YN, '0') DESC, SORT_QUE ASC, GIF_CD ASC \n"; 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; } #endregion //#15533 상품권(승인) 시 PREFIX 리딩을 통한 승인기능도입 요청 start #region 상품권 권종 조회 /// /// 상품권 권종 조회 /// /// /// public DataTable SeletGiftCd(string sGiftCd) { try { // 조회 string sQuery = ""; sQuery += " SELECT \n"; sQuery += " ROW_NUMBER() OVER( ORDER BY SORT_QUE, GIF_CD) SEQ \n"; sQuery += " , '" + m_cPosStatus.Base.CmpCd + "' CMP_CD \n"; sQuery += " , '" + m_cPosStatus.Base.StoreNo + "' STOR_CD \n"; sQuery += " , ISNULL(GIF_FIX_BRAND_CD, '') BRAND_CD \n"; sQuery += " , ISNULL(GIF_CD, '') GIFT_CD \n"; sQuery += " , ISNULL(GIF_SHORT_NM, '') GIFT_NM \n"; sQuery += " , ISNULL(APPR_SVR_DIV, '0') APPR_SVR_DIV \n"; sQuery += " , ISNULL(APPR_YN, '0') APPR_TYPE \n"; sQuery += " , ISNULL(HP_ACCUM_YN, '0') HPPOINT_TYPE \n"; sQuery += " , ISNULL(MNDTRY_INPUT_YN, '0') MNDTRY_INPUT_YN \n"; sQuery += " , ISNULL(GIF_AMT, 0) GIFT_AMT \n"; sQuery += " , 'WHITE' BACKGR_COLOR \n"; sQuery += " , '10' FONT_SIZE \n"; sQuery += " , '0' BTN_SIZE \n"; sQuery += " , ISNULL(HPY_GIF_DIV, '0') HPY_GIF_DIV \n"; sQuery += " , (CASE ISNULL(IMG_USE_YN, '0') WHEN '1' THEN ISNULL(IMG_PATH, '') ELSE '' END) BTN_ITEM_IMG \n"; sQuery += " , ISNULL(CHANGE_PAYMNT_YN, '0') CHANGE_PAYMNT_YN \n"; sQuery += " FROM POSMST..MST_GIF \n"; sQuery += " WHERE USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; sQuery += " AND GIF_CD = '" + sGiftCd + "' \n"; sQuery += " ORDER BY ISNULL(APPR_YN, '0') DESC, SORT_QUE ASC, GIF_CD ASC \n"; 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; } #endregion 상품권 권종 조회 //#15533 상품권(승인) 시 PREFIX 리딩을 통한 승인기능도입 요청 end #region Prefix에 의한 사용 VAN 정보 조회 /// /// Prefix에 의한 사용 VAN 정보 조회 /// /// /// public DataTable SeletPrefixToPayTypeInfo(string sPrefixNo) { string sQuery = ""; try { if (sPrefixNo.Length == 0) return null; // Prefix에 검색하여 결제 수단을 조회 한다. sQuery = ""; sQuery += " SELECT "; sQuery += " TOP 1 "; sQuery += " PX.PAY_DC_GRP_TYPE"; sQuery += " , PX.PAY_DC_CD"; sQuery += " FROM "; sQuery += " POSMST..MST_PAY_DC_PRFX PX"; sQuery += " WHERE "; sQuery += " PX.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND PX.PRFX_INFO IN ( "; sQuery += " SUBSTRING('" + sPrefixNo.Trim() + "', 1, 3)"; sQuery += " , SUBSTRING('" + sPrefixNo.Trim() + "', 1, 4)"; sQuery += " , SUBSTRING('" + sPrefixNo.Trim() + "', 1, 5)"; sQuery += " , SUBSTRING('" + sPrefixNo.Trim() + "', 1, 6)"; sQuery += " , SUBSTRING('" + sPrefixNo.Trim() + "', 1, 7)"; sQuery += " , SUBSTRING('" + sPrefixNo.Trim() + "', 1, 8)"; sQuery += " )"; sQuery += " AND PX.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; } #endregion #region 프로덕트 ID로 상품 조회 /// /// 프로덕트 ID로 상품 조회 /// /// /// public DataTable SeletProductIDToItemCD(string sProductID) { string sQuery = ""; try { // 조회 sQuery += " SELECT \n"; sQuery += " CP.PRODUCT_CD \n"; sQuery += " , CP.PAY_DC_GRP_TYPE \n"; sQuery += " , CP.PAY_DC_CD \n"; sQuery += " , CP.SALE_START_DT \n"; sQuery += " , CP.SALE_FNSH_DT \n"; sQuery += " , CP.ITEM_CHECK_YN \n"; sQuery += " , ISNULL(CP.LMT_QTY, 0) LMT_QTY \n"; sQuery += " , ISNULL(CI.ITEM_CD, '') ITEM_CD \n"; sQuery += " , ISNULL(CI.QTY, 0) QTY \n"; sQuery += " , ISNULL(CI.DC_AMT, 0) DC_AMT \n"; sQuery += " FROM \n"; sQuery += " POSMST..MST_PAY_DC_CPN CP \n"; sQuery += " LEFT JOIN POSMST..MST_PAY_DC_CPN_ITEM CI \n"; sQuery += " ON CI.CMP_CD = CP.CMP_CD \n"; sQuery += " AND CI.STOR_CD = CP.STOR_CD \n"; sQuery += " AND CI.MOBILE_CPN_MNG_NO = CP.MOBILE_CPN_MNG_NO \n"; sQuery += " AND CI.USE_YN = '" + PosConst.MST_USE_YN.YES + "'\n"; sQuery += " WHERE \n"; sQuery += " CP.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'\n"; sQuery += " AND CP.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'\n"; sQuery += " AND CP.PRODUCT_CD = '" + sProductID + "'\n"; sQuery += " AND '" + m_cPosStatus.Base.SaleDate + "' BETWEEN CP.SALE_START_DT AND CP.SALE_FNSH_DT \n"; sQuery += " AND CP.USE_YN = '" + PosConst.MST_USE_YN.YES + "'\n"; sQuery += " ORDER BY CP.MOBILE_CPN_MNG_NO, ISNULL(CI.DC_AMT, 0) desc \n"; 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; } #endregion #region 마스터 기간제휴사 결제할인, 할인상품 마스터 조회 /// /// 마스터 기간제휴사 결제할인, 할인상품 마스터 조회 /// /// /// /// /// //#14231 KT 웰컴기프트 카드 기능 개발, PHJ START //기존 //public DataTable SeletTermCoopCmpPayDc(string sPayDcGrpType, string sPayDcCd, string sCmpGradeCd) //변경 public DataTable SeletTermCoopCmpPayDc(string sPayDcGrpType, string sPayDcCd, string sCmpGradeCd, string sDcApplyTrgt = "") //#14231 KT 웰컴기프트 카드 기능 개발, PHJ END { string sQuery = ""; try { sQuery = ""; sQuery += " SELECT * FROM POSMST..MST_TERM_COOP_CMP_PAY_DC "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND PAY_DC_GRP_TYPE = '" + sPayDcGrpType + "'"; sQuery += " AND PAY_DC_CD = '" + sPayDcCd + "'"; if (sCmpGradeCd != "") sQuery += " AND COOP_CMP_GRADE_CD = '" + sCmpGradeCd + "'"; //#14231 KT 웰컴기프트 카드 기능 개발, PHJ START //기존 //sQuery += " AND '" + m_cPosStatus.Base.SaleDate + "' BETWEEN START_DT AND FNSH_DT "; //변경 if (sDcApplyTrgt != "") { sQuery += " AND DC_APPLY_TRGT = '" + sDcApplyTrgt + "'"; //할인 대상 (1: 전체, 2:특정상품, 3:웰컴기프트) } //#14618 KT 더블할인 개발요청 start,phj //기존 //if (sDcApplyTrgt == ItemConst.DC_APPLY_TRGT.DC_WC_GIFT) //변경 if (sDcApplyTrgt == ItemConst.DC_APPLY_TRGT.DC_WC_GIFT || sDcApplyTrgt == ItemConst.DC_APPLY_TRGT.DC_KT_DOUBLE) //#14618 KT 더블할인 개발요청 end,phj { sQuery += " AND PAY_DC_METHD = '2'"; // 1: 율, 2: 금액 sQuery += " AND CONVERT(varchar(30), GETDATE(),112) BETWEEN START_DT AND FNSH_DT "; //시스템일자 } else { sQuery += " AND '" + m_cPosStatus.Base.SaleDate + "' BETWEEN START_DT AND FNSH_DT "; } //#14231 KT 웰컴기프트 카드 기능 개발, PHJ END //sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; 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 DataTable SeletTermCoopCmpDcItem(string sPayDcGrpType, string sPayDcCd, string sCmpGradeCd) { string sQuery = ""; try { sQuery = ""; sQuery += " SELECT * FROM POSMST..MST_TERM_COOP_CMP_DC_ITEM "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQuery += " AND PAY_DC_GRP_TYPE = '" + sPayDcGrpType + "'"; sQuery += " AND PAY_DC_CD = '" + sPayDcCd + "'"; if (sCmpGradeCd != "") sQuery += " AND COOP_CMP_GRADE_CD = '" + sCmpGradeCd + "'"; sQuery += " AND START_DT <= '" + m_cPosStatus.Base.SaleDate + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; 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; } #endregion //#14231 KT 웰컴기프트 카드 기능 개발, PHJ START #region 웰컴 기프트 버튼 활성화 유무 //#14618 KT 더블할인 개발요청 start,phj //기존 //public bool WelcomGiftBtnYN(string sPosMenuKey, double nDestAmt, out string ProductCode) //변경 public bool WelcomGiftBtnYN(string sType, string sPosMenuKey, double nDestAmt, out string ProductCode) //#14618 KT 더블할인 개발요청 end,phj { bool sRet = false; ProductCode = ""; try { // 웰컴기프트 대상 브랜드는 파리바게트만이기 때문에 이 외 점포는 옵션 미사용으로 해줘야함. //if (sPosMenuKey != PosKey.MENU_KEY.KT || if (PosMstManager.GetPosOption(POS_OPTION.OPT332) != "1") { return sRet; } string sPaywayCd = GetMenuKeyToPayWayCd(sPosMenuKey); // ItemConst.TR_ITEM_ID.MOBILE_COM_POINT;// KTF 결제코드,상세코드 string sPayDtlCd = GetMenuKeyToPayDtlCd(sPosMenuKey); // ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF;// KTF 결제코드,상세코드 //#14618 KT 더블할인 개발요청 start,phj //기존 //string sDcApplyTrgt = ItemConst.DC_APPLY_TRGT.DC_WC_GIFT;// 할인 대상 유형 (1: 전체, 2:특정상품, 3:웰컴기프트, 4:KT더블할인) //변경 string sDcApplyTrgt = sType; //#14618 KT 더블할인 개발요청 end,phj UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "KT start !!! " + "타입 : " + sType + ", (1:TOT_DC/ 2:ITEM_DC/ 3:WC_DC / 4:DOUBLE_DC)" + "메뉴키 :" + sPosMenuKey + "," + "결제코드 :" + sPaywayCd + "," + "상세코드 :" + sPayDtlCd + "," + "대상금액 :" + nDestAmt + "," + "사용유무 :" + PosMstManager.GetPosOption(POS_OPTION.OPT332)); //제휴사 결제/할인 정보 체크 DataTable dtPayDcInfo = SeletTermCoopCmpPayDc(sPaywayCd, sPayDtlCd, "", sDcApplyTrgt); if (dtPayDcInfo != null && dtPayDcInfo.Rows.Count != 0) { DataRow dr = dtPayDcInfo.Rows[0]; // 웰컴 기프트 할인 기준 금액 //#14231 KT 웰컴기프트 카드 기능 개발, PHJ START, 20180323 //금액 상관없이 버튼 활성화 -> 보류 if (CmUtil.DoubleParse(CmUtil.GetDataRowStr(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.PAY_DC_AMT_STD_PAY_AMT)) > nDestAmt) { UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", //"KT 웰컴 기프트 버튼 활성화 여부 end !!! " + sRet.ToString()); "KT end !!! (" + CmUtil.GetDataRowStr(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.PAY_DC_AMT_STD_PAY_AMT) + " > " + nDestAmt.ToString() + ")"); return sRet; } //#14231 KT 웰컴기프트 카드 기능 개발, PHJ END, 20180323 // 웰컴 기프트의 상품코드(프로덕트코드)는 제휴사 등급 조회 컬럼에 존재한다. string sCOOP_CMP_GRADE_CD = CmUtil.GetDataRowStr(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.COOP_CMP_GRADE_CD); // 웰컴 기프트 할인 기준 금액 string sPAY_DC_AMT_STD_PAY_AMT = CmUtil.GetDataRowStr(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.PAY_DC_AMT_STD_PAY_AMT); // 웰컴 기프트 할인 금액 string sPAY_DC_VAL = CmUtil.GetDataRowStr(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.PAY_DC_VAL); UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", //"KT 웰컴 기프트 ProductID :" + sCOOP_CMP_GRADE_CD + ", 할인 기준 금액 :" + sPAY_DC_AMT_STD_PAY_AMT + ", 할인 금액 :" + sPAY_DC_VAL); "KT ProductID :" + sCOOP_CMP_GRADE_CD + ", 할인 기준 금액 :" + sPAY_DC_AMT_STD_PAY_AMT + ", 할인 금액 :" + sPAY_DC_VAL); // 제휴코드에 셋팅한 프로덕트코드 넘김 ProductCode = sCOOP_CMP_GRADE_CD; sRet = true; } UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", //"KT 웰컴 기프트 버튼 활성화 여부 end !!! " + sRet.ToString()); "KT end !!! " + sRet.ToString()); } 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; } #endregion //#14231 KT 웰컴기프트 카드 기능 개발, PHJ END #region 제휴사 결제 할인 금액 계산 /// /// 제휴사 결제 할인 금액 계산 /// /// /// /// /// /// public double ExecTermCoopCmpPayDc(string sPAY_WAY_CD, string sPAY_DTL_CD_01, string sCmpGradeCd, double nSaleAmt) { double nDestAmt = 0; try { // 기간 제휴사 결제할인 마스터 조회 DataTable dtPayDcInfo = SeletTermCoopCmpPayDc(sPAY_WAY_CD, sPAY_DTL_CD_01, sCmpGradeCd); if (dtPayDcInfo == null || dtPayDcInfo.Rows.Count == 0) { // 기간제휴사 결제할인 마스터가 없으면 결제 할인 마스터 참조 if (PosMstManager.GetMstPayDc(sPAY_WAY_CD, sPAY_DTL_CD_01, PosMst.MST_PAY_DC.DATA.PAY_DC_METHD) == ItemConst.CPI_DC_TYPE.RATE) { nDestAmt = CmUtil.MathAmtPercent(nSaleAmt, CmUtil.DoubleParse(PosMstManager.GetMstPayDc(sPAY_WAY_CD, sPAY_DTL_CD_01, PosMst.MST_PAY_DC.DATA.PAY_DC_VAL))); if (sPAY_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM) // 적립 포인트 계산(무조건 올림 처리) nDestAmt = CmUtil.MathRounds(nDestAmt, PosConst.MATH_ROUND.CEILING, 0); else nDestAmt = CmUtil.MathRounds(nDestAmt, m_cPosStatus.Mst.DcRudDwLocMethd, CmUtil.IntParse(m_cPosStatus.Mst.DcRudDwLoc)); } else { nDestAmt = CmUtil.DoubleParse(PosMstManager.GetMstPayDc(sPAY_WAY_CD, sPAY_DTL_CD_01, PosMst.MST_PAY_DC.DATA.PAY_DC_VAL)); if (nDestAmt > nSaleAmt) nDestAmt = nSaleAmt; } } else { DataRow dr = dtPayDcInfo.Rows[0]; if (CmUtil.GetDataRowStr(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.PAY_DC_METHD) == ItemConst.CPI_DC_TYPE.RATE) { nDestAmt = CmUtil.MathAmtPercent(nSaleAmt, CmUtil.GetDataRowDouble(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.PAY_DC_VAL)); nDestAmt = CmUtil.MathRounds(nDestAmt , CmUtil.GetDataRowStr(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.PAY_DC_DEC_PNT_CALC_METHD), CmUtil.GetDataRowInt(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.PAY_DC_CALC_DIGT_NO)); } else { nDestAmt = CmUtil.GetDataRowDouble(dr, PosMst.MST_TERM_COOP_CMP_PAY_DC.DATA.PAY_DC_VAL); if (nDestAmt > nSaleAmt) nDestAmt = nSaleAmt; } } //// 해피포인트 적립예정 포인트 //if (sPAY_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && sPAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) //{ // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // 통신사 등록 체크 // ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); // foreach (Column.TR_PAYMENT.DATA cPayItem in alPayItem) // { // if (cPayItem.CANCEL_DIV != PosConst.CANCEL_DIV.NORMAL) continue; // // 통신사 할인 체크(통신사 가 등록 되어 있으면 기본적립 하지 않음) // if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT // && (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF // || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP)) // { // nDestAmt = 0; // break; // } // } //} } 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 nDestAmt; } #endregion #region POS IRT 전문 송/수신 /// /// POS IRT 전문 송/수신(점포서버 송수신: 제이슨 이용) /// public string ExecutePosIrt(string sMsgType, string sSvrIP, int nSvrPort, int nTimeout, Hashtable htSendData, ref Hashtable htRecvData) { return ExecutePosIrt(sMsgType, sSvrIP, nSvrPort, nTimeout, htSendData, ref htRecvData, true); } public string ExecutePosIrt(string sMsgType, string sSvrIP, int nSvrPort, int nTimeout, Hashtable htSendData, ref Hashtable htRecvData, bool bVisibleMode) { string sRet = UserCom.RST_ERR; try { // Rhee, 2017.10.23, 포스별 매출 조회기능 추가 Start // 기존 //string sCommHead = ItemColumn.MakeCommHeader(0, sMsgType); // 통신해더 생성 // 변경 string sCommHead = ""; if ((m_cPosStatus.Base.CmpCd.ToUpper().Equals("PCCN") && htSendData.ContainsKey("POS_NO")) && (m_cPosStatus.Base.PosNo != htSendData[Column.IQ_DATA_SEARCH_REQ.DATA.POS_NO].ToString()) ) { sCommHead = ItemColumn.MakeCommHeader(0, sMsgType, m_cPosStatus.Base.CmpCd, htSendData[Column.IQ_DATA_SEARCH_REQ.DATA.POS_NO].ToString()); // 통신해더 생성 } else { sCommHead = ItemColumn.MakeCommHeader(0, sMsgType); // 통신해더 생성 } // Rhee, 2017.10.23, 포스별 매출 조회기능 추가 End if (bVisibleMode == false) { // 팝업 화면 미표시 m_bIRTComplete = true; m_htRecvData = null; Thread thrSecondDisp = new Thread(() => sRet = OnNetworkIRT(sSvrIP, nSvrPort, nTimeout, sCommHead, htSendData)); thrSecondDisp.Start(); while (m_bIRTComplete == true) { Thread.Sleep(100); } htRecvData = m_htRecvData; } else { string sDispName = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), ""); if (string.IsNullOrEmpty(sDispName) == true) sDispName = "Searching data! Please wait."; m_cfPosIrtMsg.PosMessageStr = sDispName; m_cfPosIrtMsg.ServerIp = sSvrIP; m_cfPosIrtMsg.ServerPort = nSvrPort; m_cfPosIrtMsg.TimeOut = nTimeout; m_cfPosIrtMsg.CommHead = sCommHead; m_cfPosIrtMsg.SendData = htSendData; m_cfPosIrtMsg.ShowDialog(); if (m_cfPosIrtMsg.RecvRet != UserCom.OK) { sRet = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0158); // 통신 실패 로그 UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", string.Format("SOCKET ERROR,{0},{1}, RET={2}", sSvrIP, nSvrPort, m_cfPosIrtMsg.RecvRet)); return sRet; } htRecvData = m_cfPosIrtMsg.RecvData; 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; } #endregion #region POS IRT 전문 송/수신 - 외부 VAN /// /// POS IRT 전문 송/수신 - 외부 VAN /// public string ExecuteExIrt(string sSvrIP, int nSvrPort, int nTimeout, string sSendData, ref string sRecvData, int nRecvDataLen, string sAckData) { return ExecuteExIrt(sSvrIP, nSvrPort, nTimeout, sSendData, ref sRecvData, nRecvDataLen, sAckData, false); } public string ExecuteExIrt(string sSvrIP, int nSvrPort, int nTimeout, string sSendData, ref string sRecvData, int nRecvDataLen, string sAckData, bool bErrorSkip) { string sRet = UserCom.RST_ERR; try { string sDispName = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), ""); m_cfExIrtMsg.MessageStr = sDispName; m_cfExIrtMsg.ServerIp = sSvrIP; m_cfExIrtMsg.ServerPort = nSvrPort; m_cfExIrtMsg.TimeOut = nTimeout; m_cfExIrtMsg.RecvDataLen = nRecvDataLen; m_cfExIrtMsg.AckData = sAckData; m_cfExIrtMsg.SendData = sSendData; m_cfExIrtMsg.RecvLenFix = true; m_cfExIrtMsg.CommByteType = false; m_cfExIrtMsg.RecvErrorSkip = bErrorSkip; m_cfExIrtMsg.ShowDialog(); if (m_cfExIrtMsg.RecvRet != UserCom.OK) { sRet = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0158); // 통신 실패 로그 UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", string.Format("SOCKET ERROR,{0},{1}, RET=", sSvrIP, nSvrPort, m_cfExIrtMsg.RecvRet)); return sRet; } sRecvData = m_cfExIrtMsg.RecvData; 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; } #endregion #region POS IRT 전문 송/수신 - 외부 VAN /// /// POS IRT 전문 송/수신 - 외부 Van (전문 길이 위치 지정) /// public string ExecuteLenIrt(string sSvrIP, int nSvrPort, int nTimeout, string sSendData, ref string sRecvData, int nRecvDataLen, int nRecvDataStartPosition) { return ExecuteLenIrt(sSvrIP, nSvrPort, nTimeout, sSendData, ref sRecvData, true, nRecvDataLen, nRecvDataStartPosition); } /// /// POS IRT 전문 송/수신 - 외부 Van (헤더 길이 + 전문 길이 위치 지정) /// public string ExecuteLenIrt(string sSvrIP, int nSvrPort, int nTimeout, string sSendData, ref string sRecvData, bool bFullSize, int nRecvDataLen, int nRecvDataStartPosition) { string sRet = UserCom.RST_ERR; try { string sDispName = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), ""); //UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // "@@sDispName=" + sDispName + // "sSvrIP=" + sSvrIP + // "nSvrPort=" + nSvrPort + // "nRecvDataLen=" + nRecvDataLen + // "nRecvDataStartPosition=" + sDispName + // "sSendData=" + sSendData // ); m_cfExIrtMsg.MessageStr = sDispName; m_cfExIrtMsg.ServerIp = sSvrIP; m_cfExIrtMsg.ServerPort = nSvrPort; m_cfExIrtMsg.TimeOut = nTimeout; m_cfExIrtMsg.RecvFullSize = bFullSize; m_cfExIrtMsg.RecvDataLen = nRecvDataLen; m_cfExIrtMsg.RecvDataStartPosition = nRecvDataStartPosition; m_cfExIrtMsg.SendData = sSendData; m_cfExIrtMsg.CommByteType = false; m_cfExIrtMsg.RecvLenFix = false; m_cfExIrtMsg.ShowDialog(); if (m_cfExIrtMsg.RecvRet != UserCom.OK) { sRet = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0158); // 통신 실패 로그 UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", string.Format("SOCKET ERROR,{0},{1}, RET=", sSvrIP, nSvrPort, m_cfExIrtMsg.RecvRet)); return sRet; } sRecvData = m_cfExIrtMsg.RecvData; sRet = UserCom.RST_OK; //UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // "@@sRecvData=" + sRecvData // ); } 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; } #endregion #region POS IRT 전문 송/수신 - 외부 VAN (Byte 통신) /// /// POS IRT 전문 송/수신 - 외부 VAN (Byte 통신) /// public string ExecuteByteIrt(string sSvrIP, int nSvrPort, int nTimeout, byte[] bSendData, ref byte[] bRecvData, int nRecvDataLen) { string sRet = UserCom.RST_ERR; try { string sDispName = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), ""); m_cfExIrtMsg.MessageStr = sDispName; m_cfExIrtMsg.ServerIp = sSvrIP; m_cfExIrtMsg.ServerPort = nSvrPort; m_cfExIrtMsg.TimeOut = nTimeout; m_cfExIrtMsg.RecvFullSize = false; m_cfExIrtMsg.RecvDataLen = nRecvDataLen; m_cfExIrtMsg.RecvDataStartPosition = 0; m_cfExIrtMsg.SendByteData = bSendData; m_cfExIrtMsg.CommByteType = true; m_cfExIrtMsg.RecvLenFix = false; m_cfExIrtMsg.ShowDialog(); if (m_cfExIrtMsg.RecvRet != UserCom.OK) { sRet = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0158); // 통신 실패 로그 UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", string.Format("SOCKET ERROR,{0},{1}, RET=", sSvrIP, nSvrPort, m_cfExIrtMsg.RecvRet)); return sRet; } bRecvData = m_cfExIrtMsg.RecvByteData; 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; } #endregion #region POS TCP 전문 송/수신 기타 (Byte 통신) /// /// POS TCP 전문 송/수신 기타 (Byte 통신) /// public int ExecuteTcpClientIrt(string sFuncName, string sSvrIP, int nSvrPort, int nTimeout, byte[] bytSendData, ref byte[] bytRecvData, int nRecvDataLen) { try { m_cTcpClientMsg.MessageStr = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), ""); m_cTcpClientMsg.ExecFunction = sFuncName; m_cTcpClientMsg.ServerIp = sSvrIP; m_cTcpClientMsg.ServerPort = nSvrPort; m_cTcpClientMsg.TimeOut = nTimeout; m_cTcpClientMsg.SendByteData = bytSendData; m_cTcpClientMsg.RecvDataLen = nRecvDataLen; // 소캣 송수신 처리 m_cTcpClientMsg.ShowDialog(); // 송수신 성공여부 체크 if (m_cTcpClientMsg.ResultFlag == true) { bytRecvData = m_cTcpClientMsg.RecvByteData; return m_cTcpClientMsg.RecvDataLen; } } 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 0; } #endregion #region GetMenuKeyToPayCd 결제수단및세부코드 획득 /// /// 결제수단코드 획득 /// /// /// public string GetMenuKeyToPayWayCd(string sPosMenuKey) { string sPayWayCd = "", sPayDtlCd = ""; try { GetMenuKeyToPayCd(sPosMenuKey, ref sPayWayCd, ref sPayDtlCd); } 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 sPayWayCd; } /// /// 결제세부코드 획득 /// /// /// public string GetMenuKeyToPayDtlCd(string sPosMenuKey) { string sPayWayCd = "", sPayDtlCd = ""; try { GetMenuKeyToPayCd(sPosMenuKey, ref sPayWayCd, ref sPayDtlCd); } 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 sPayDtlCd; } /// /// 기능키로 결제코드 획득 /// /// /// /// public void GetMenuKeyToPayCd(string sPosMenuKey, ref string sPayWayCd, ref string sPayDtlCd) { try { sPayWayCd = ""; sPayDtlCd = ""; if (sPosMenuKey == PosKey.MENU_KEY.CASH) { sPayWayCd = ItemConst.TR_ITEM_ID.CASH_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.CASH.CASH_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.CHECK_CASH) { sPayWayCd = ItemConst.TR_ITEM_ID.CHECK_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.CHECK.CHECK_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.CREDIT_CARD) { sPayWayCd = ItemConst.TR_ITEM_ID.CREDITCARD_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD; } else if (sPosMenuKey == PosKey.MENU_KEY.SKT) // 제휴할인-SKT { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILE_COM_POINT; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT; } else if (sPosMenuKey == PosKey.MENU_KEY.KT) { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILE_COM_POINT; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF; } else if (sPosMenuKey == PosKey.MENU_KEY.LGT) { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILE_COM_POINT; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT; } else if (sPosMenuKey == PosKey.MENU_KEY.OLIBANK) { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILE_COM_POINT; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILE_COM.OILBANK_POINT; } else if (sPosMenuKey == PosKey.MENU_KEY.BLUE_MEMBERS) { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILE_COM_POINT; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILE_COM.HBLUE_M_POINT; } else if (sPosMenuKey == PosKey.MENU_KEY.RED_MEMBERS) { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILE_COM_POINT; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILE_COM.KRED_M_POINT; } else if (sPosMenuKey == PosKey.MENU_KEY.KT_VIP) { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILE_COM_POINT; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP; } else if (sPosMenuKey == PosKey.MENU_KEY.KT_DOUBLE) { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILE_COM_POINT; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_DOUBLE; } else if (sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT_USE) // 포인트사용 { sPayWayCd = ItemConst.TR_ITEM_ID.POINT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT; } else if (sPosMenuKey == PosKey.MENU_KEY.OKCASHBACK) { sPayWayCd = ItemConst.TR_ITEM_ID.POINT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.POINT_USE.OKCASHBACK_POINT; } else if (sPosMenuKey == PosKey.MENU_KEY.SAMSUNG_POINTS) { sPayWayCd = ItemConst.TR_ITEM_ID.POINT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.POINT_USE.SAMSUNG_POINT; } else if (sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT_USE_CHINA) { sPayWayCd = ItemConst.TR_ITEM_ID.POINT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT_USE_CHINA; } else if (sPosMenuKey == PosKey.MENU_KEY.GIFT_CARD) // 상품권 { sPayWayCd = ItemConst.TR_ITEM_ID.GIFT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.GIFT.GIFT_COM; } else if (sPosMenuKey == PosKey.MENU_KEY.ALIPAY) // 페이-알리페이 { sPayWayCd = ItemConst.TR_ITEM_ID.PAY_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.PAY.ALIPAY_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.WECHATPAY) // 페이-위체페이 / 은련페이(Rhee,2017/09/04) { sPayWayCd = ItemConst.TR_ITEM_ID.PAY_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.PAY.WECHAT_PAY; } //#20170911.001,중국 위쳇 페이, 샤오청쉬 기프트 카드 바이롱과 연동 개발 Start, girak.kim else if (sPosMenuKey == PosKey.MENU_KEY.WECHATPAY_BAIRONG) { sPayWayCd = ItemConst.TR_ITEM_ID.PAY_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.PAY.WECHAT_BIORONG_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.XIAOCHENGXU_GIFTCARD) { sPayWayCd = ItemConst.TR_ITEM_ID.PAY_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.PAY.XIAO_GIFTCARD_PAY; } //#20170911.001,중국 위쳇 페이, 샤오청쉬 기프트 카드 바이롱과 연동 개발 End, girak.kim else if (sPosMenuKey == PosKey.MENU_KEY.SMILE_PAY) { sPayWayCd = ItemConst.TR_ITEM_ID.PAY_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.PAY.SMILE_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.T_PAY) { sPayWayCd = ItemConst.TR_ITEM_ID.PAY_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.PAY.T_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.DC_COUPONS) // 쿠폰 { sPayWayCd = ItemConst.TR_ITEM_ID.COUPON_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.COUPON.NORMAL; } else if (sPosMenuKey == PosKey.MENU_KEY.HAPPY_DC_COUPON) { sPayWayCd = ItemConst.TR_ITEM_ID.COUPON_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.COUPON.INCARD; } else if (sPosMenuKey == PosKey.MENU_KEY.ONLINE_COUPONS) { sPayWayCd = ItemConst.TR_ITEM_ID.COUPON_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.COUPON.ONLINE; } else if (sPosMenuKey == PosKey.MENU_KEY.CAKE_VOUCHERS) { sPayWayCd = ItemConst.TR_ITEM_ID.COUPON_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.COUPON.CAKE_CHANGE; } else if (sPosMenuKey == PosKey.MENU_KEY.T_MONEY) // 모바일캐시 { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILECASH_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILECASH.T_MONEY; } else if (sPosMenuKey == PosKey.MENU_KEY.HAPPY_GIFTCARD) // 선불카드 { sPayWayCd = ItemConst.TR_ITEM_ID.PPCARD_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.PPCARD.HP_GIFT; } else if (sPosMenuKey == PosKey.MENU_KEY.PREPAID_CARDS_HPJOY) { sPayWayCd = ItemConst.TR_ITEM_ID.PPCARD_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.PPCARD.HPPP_CARD; } else if (sPosMenuKey == PosKey.MENU_KEY.MOBILE_COUPON) // 모바일쿠폰 { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILECON_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILECON.GIFTCON; } else if (sPosMenuKey == PosKey.MENU_KEY.SPC_EMPLOYEES_PAY) // 임직원결제 { sPayWayCd = ItemConst.TR_ITEM_ID.EMP_PAY_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.EMP_PAY.SPC; } else if (sPosMenuKey == PosKey.MENU_KEY.SEVERANCE_PAYMENTS) { sPayWayCd = ItemConst.TR_ITEM_ID.EMP_PAY_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.EMP_PAY.SEVERANCE; } else if (sPosMenuKey == PosKey.MENU_KEY.OURHOME) { sPayWayCd = ItemConst.TR_ITEM_ID.EMP_PAY_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.EMP_PAY.OURHOME; } else if (sPosMenuKey == PosKey.MENU_KEY.CREDIT_CUSTOMER) // 외상 { sPayWayCd = ItemConst.TR_ITEM_ID.CREDIT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.CREDIT.CREDIT_PAY; } // Rhee, 2017/09/22 딜리버리 외매(선매) 추가 -- START else if (sPosMenuKey == PosKey.MENU_KEY.CREDIT_DELIVERY) // 외상-딜리버리(외매) { sPayWayCd = ItemConst.TR_ITEM_ID.CREDIT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.CREDIT.CREDIT_PAY_DELIVERY; } // Rhee, 2017/09/22 딜리버리 외매(선매) 추가 -- END else if (sPosMenuKey == PosKey.MENU_KEY.FOREIGN_CURRENCY) // 외화 { sPayWayCd = ItemConst.TR_ITEM_ID.FOREIGNEX_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.FOREIGNEX.USD; } else if (sPosMenuKey == PosKey.MENU_KEY.RESERVATION) // 예약 { sPayWayCd = ItemConst.TR_ITEM_ID.RESERVATION_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.RESERVATION.BALANCE_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.SPC_EMPLOYEE_DC) // 임직원할인 { sPayWayCd = ItemConst.TR_ITEM_ID.EMP_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.EMP_DC.SPC; } else if (sPosMenuKey == PosKey.MENU_KEY.SAMSUNG_SFC) { sPayWayCd = ItemConst.TR_ITEM_ID.EMP_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.EMP_DC.SAMSUNGCARD; } else if (sPosMenuKey == PosKey.MENU_KEY.SEVERANCE_DC) { sPayWayCd = ItemConst.TR_ITEM_ID.EMP_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.EMP_DC.SEVERANCE; } else if (sPosMenuKey == PosKey.MENU_KEY.SPC_EMPLOYEE_DC_CHINA) { sPayWayCd = ItemConst.TR_ITEM_ID.EMP_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.EMP_DC.SPC_CHINA; } else if (sPosMenuKey == PosKey.MENU_KEY.SPC_EMPLOYEE_DC_PAY) { sPayWayCd = ItemConst.TR_ITEM_ID.EMP_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.EMP_DC.SPC_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.PAY_INSTOR_DC) // 임의할인 { sPayWayCd = ItemConst.TR_ITEM_ID.USER_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.USER_DC.IN_EMP_DC; } else if (sPosMenuKey == PosKey.MENU_KEY.PAY_INSTOR_DC_5) // 입점건물직원할인(5%)(2017.05.25) { sPayWayCd = ItemConst.TR_ITEM_ID.USER_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.USER_DC.IN_EMP_DC_5; } else if (sPosMenuKey == PosKey.MENU_KEY.TOTAL_DC_AMT) { sPayWayCd = ItemConst.TR_ITEM_ID.USER_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.USER_DC.TOTAL_DC_AMT; } else if (sPosMenuKey == PosKey.MENU_KEY.TOTAL_DC_RATE) { sPayWayCd = ItemConst.TR_ITEM_ID.USER_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.USER_DC.TOTAL_DC_RATE; } else if (sPosMenuKey == PosKey.MENU_KEY.TOTAL_ADDDC_AMT) { sPayWayCd = ItemConst.TR_ITEM_ID.USER_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.USER_DC.TOTAL_ADDDC_AMT; } else if (sPosMenuKey == PosKey.MENU_KEY.KAIST_DC) { sPayWayCd = ItemConst.TR_ITEM_ID.USER_DC_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.USER_DC.KAIST_DC; } else if (sPosMenuKey == PosKey.MENU_KEY.ORDER_CALLCENTER) // 배달(콜센터) { sPayWayCd = ItemConst.TR_ITEM_ID.ORDER_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.ORDER.CALLCENTER_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.ORDER_BAEMIN) { sPayWayCd = ItemConst.TR_ITEM_ID.ORDER_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.ORDER.BAEMIN_PAY; } else if (sPosMenuKey == PosKey.MENU_KEY.HPORDER_REVDC) { sPayWayCd = ItemConst.TR_ITEM_ID.ORDER_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.ORDER.HPORDER_REVDC; } else if (sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT) // 해피포인트 { sPayWayCd = ItemConst.TR_ITEM_ID.ETC_INFO_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT; } else if (sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT_SAVE_CHINA) { sPayWayCd = ItemConst.TR_ITEM_ID.ETC_INFO_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA; } else if (sPosMenuKey == PosKey.MENU_KEY.OKCASHBACK_SAVE) { sPayWayCd = ItemConst.TR_ITEM_ID.ETC_INFO_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.ETC_INFO.OCB_SAVE; } else if (sPosMenuKey == PosKey.MENU_KEY.ONLINE_COUPONS) { sPayWayCd = ItemConst.TR_ITEM_ID.ETC_INFO_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.ETC_INFO.ONLINE_CPN; } //*** MoonSeokWoo 2017.12.07 Add else if (sPosMenuKey == PosKey.MENU_KEY.SHINHANCARD_POINT) { sPayWayCd = ItemConst.TR_ITEM_ID.POINT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.POINT_USE.SHINHAN_POINT; } //*** MoonSeokWoo 2017.12.07 Add //*** MoonSeokWoo 2017.12.27 Add else if (sPosMenuKey == PosKey.MENU_KEY.HYUNDAI_M_POINTS) { sPayWayCd = ItemConst.TR_ITEM_ID.POINT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.POINT_USE.HYUNDAI_MPOINTS; } //*** MoonSeokWoo 2017.12.27 End // grayber@20180102 우리모아포인트 추가 start - 기능키 결제코드 분기 추가 else if (sPosMenuKey == PosKey.MENU_KEY.WOORIMORE_POINTS) { sPayWayCd = ItemConst.TR_ITEM_ID.POINT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.POINT_USE.WOORIMORE_POINTS; } // grayber@20180102 우리모아포인트 추가 end //grayber@20180208 코레일 마일리지 입력 start - 기능키 결제코드 분기 추가 else if (sPosMenuKey == PosKey.MENU_KEY.KORAIL_MILEAGE) { sPayWayCd = ItemConst.TR_ITEM_ID.POINT_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.POINT_USE.KORAIL_MILEAGE; } //grayber@20180208 코레일 마일리지 입력 end //#20180413 웰컴카드 신규기능 추가 start,phj else if (sPosMenuKey == PosKey.MENU_KEY.WELCOMECARD_DC) { sPayWayCd = ItemConst.TR_ITEM_ID.MOBILE_COM_POINT; sPayDtlCd = ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD; } //#20180413 웰컴카드 신규기능 추가 end,phj //#20180625 해피기프트(신) 결제/할인 수단 마스터 중복 체크 기능 추가 start /* else if (sPosMenuKey == PosKey.MENU_KEY.HPGIFTCARD) { sPayWayCd = ItemConst.TR_ITEM_ID.PPCARD_ITEM; sPayDtlCd = ItemConst.TR_ITEM_ID.PPCARD.HPGIFT_CARD; } */ //#20180625 해피기프트(신) 결제/할인 수단 마스터 중복 체크 기능 추가 end } 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 결제수단코드로 POS메뉴키 획득 /// /// 결제수단코드로 POS메뉴키 획득 /// /// /// /// public string GetPayCdToMenuKey(string sPayWayCd, string sPayDtlCd) { try { if (sPayWayCd == ItemConst.TR_ITEM_ID.CASH_ITEM) return PosKey.MENU_KEY.CASH; else if (sPayWayCd == ItemConst.TR_ITEM_ID.CHECK_ITEM) return PosKey.MENU_KEY.CHECK_CASH; else if (sPayWayCd == ItemConst.TR_ITEM_ID.CREDITCARD_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD) return PosKey.MENU_KEY.CREDIT_CARD; else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT) return PosKey.MENU_KEY.SKT; // 제휴할인-SKT else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF) return PosKey.MENU_KEY.KT; else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT) return PosKey.MENU_KEY.LGT; else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.OILBANK_POINT) return PosKey.MENU_KEY.OLIBANK; else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.HBLUE_M_POINT) return PosKey.MENU_KEY.BLUE_MEMBERS; else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.KRED_M_POINT) return PosKey.MENU_KEY.RED_MEMBERS; else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP) return PosKey.MENU_KEY.KT_VIP; else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_DOUBLE) return PosKey.MENU_KEY.KT_VIP; else if (sPayWayCd == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT) return PosKey.MENU_KEY.HAPPY_POINT_USE; // 포인트사용 else if (sPayWayCd == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.POINT_USE.OKCASHBACK_POINT) return PosKey.MENU_KEY.OKCASHBACK; else if (sPayWayCd == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.POINT_USE.SAMSUNG_POINT) return PosKey.MENU_KEY.SAMSUNG_POINTS; else if (sPayWayCd == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT_USE_CHINA) return PosKey.MENU_KEY.HAPPY_POINT_USE_CHINA; else if (sPayWayCd == ItemConst.TR_ITEM_ID.GIFT_ITEM) return PosKey.MENU_KEY.GIFT_CARD; // 상품권 else if (sPayWayCd == ItemConst.TR_ITEM_ID.PAY_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.PAY.ALIPAY_PAY) //페이 { if (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.KR) return PosKey.MENU_KEY.ALIPAY; // 알리페이 else return PosKey.MENU_KEY.WECHATPAY; // 위쳇페이 } else if (sPayWayCd == ItemConst.TR_ITEM_ID.PAY_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.PAY.WECHAT_PAY) return PosKey.MENU_KEY.WECHATPAY; // #Rhee, 20170922 중국 은련페이 추가 start else if (sPayWayCd == ItemConst.TR_ITEM_ID.PAY_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.PAY.UNION_PAY) return PosKey.MENU_KEY.WECHATPAY; // 위쳇페이와 동일화면 사용 // #Rhee, 20170922 중국 은련페이 추가 end else if (sPayWayCd == ItemConst.TR_ITEM_ID.PAY_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.PAY.SMILE_PAY) return PosKey.MENU_KEY.SMILE_PAY; else if (sPayWayCd == ItemConst.TR_ITEM_ID.PAY_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.PAY.T_PAY) return PosKey.MENU_KEY.T_PAY; else if (sPayWayCd == ItemConst.TR_ITEM_ID.COUPON_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.COUPON.NORMAL) return PosKey.MENU_KEY.DC_COUPONS; // 쿠폰 else if (sPayWayCd == ItemConst.TR_ITEM_ID.COUPON_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.COUPON.INCARD) return PosKey.MENU_KEY.HAPPY_DC_COUPON; else if (sPayWayCd == ItemConst.TR_ITEM_ID.COUPON_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.COUPON.ONLINE) return PosKey.MENU_KEY.ONLINE_COUPONS; else if (sPayWayCd == ItemConst.TR_ITEM_ID.COUPON_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.COUPON.CAKE_CHANGE) return PosKey.MENU_KEY.CAKE_VOUCHERS; else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILECASH_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILECASH.T_MONEY) return PosKey.MENU_KEY.T_MONEY; // 모바일캐시 else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILECASH_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILECASH.CASHBEE) return PosKey.MENU_KEY.CASHBEE; else if (sPayWayCd == ItemConst.TR_ITEM_ID.PPCARD_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.PPCARD.HP_GIFT) return PosKey.MENU_KEY.HAPPY_GIFTCARD; // 선불카드 else if (sPayWayCd == ItemConst.TR_ITEM_ID.PPCARD_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.PPCARD.HPPP_CARD) return PosKey.MENU_KEY.PREPAID_CARDS_HPJOY; else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILECON_ITEM) return PosKey.MENU_KEY.MOBILE_COUPON; // 모바일쿠폰 else if (sPayWayCd == ItemConst.TR_ITEM_ID.EMP_PAY_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.EMP_PAY.SPC) return PosKey.MENU_KEY.SPC_EMPLOYEES_PAY; // 임직원결제 else if (sPayWayCd == ItemConst.TR_ITEM_ID.EMP_PAY_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.EMP_PAY.SEVERANCE) return PosKey.MENU_KEY.SEVERANCE_PAYMENTS; else if (sPayWayCd == ItemConst.TR_ITEM_ID.EMP_PAY_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.EMP_PAY.OURHOME) return PosKey.MENU_KEY.OURHOME; else if (sPayWayCd == ItemConst.TR_ITEM_ID.CREDIT_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.CREDIT.CREDIT_PAY) return PosKey.MENU_KEY.CREDIT_CUSTOMER; // 외상 else if (sPayWayCd == ItemConst.TR_ITEM_ID.FOREIGNEX_ITEM) return PosKey.MENU_KEY.FOREIGN_CURRENCY; // 외화 else if (sPayWayCd == ItemConst.TR_ITEM_ID.RESERVATION_ITEM) return PosKey.MENU_KEY.RESERVATION; // 예약 else if (sPayWayCd == ItemConst.TR_ITEM_ID.EMP_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.EMP_DC.SPC) return PosKey.MENU_KEY.SPC_EMPLOYEE_DC; // 임직원할인 else if (sPayWayCd == ItemConst.TR_ITEM_ID.EMP_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.EMP_DC.SAMSUNGCARD) return PosKey.MENU_KEY.SAMSUNG_SFC; else if (sPayWayCd == ItemConst.TR_ITEM_ID.EMP_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.EMP_DC.SEVERANCE) return PosKey.MENU_KEY.SEVERANCE_DC; else if (sPayWayCd == ItemConst.TR_ITEM_ID.EMP_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.EMP_DC.SPC_CHINA) return PosKey.MENU_KEY.SPC_EMPLOYEE_DC_CHINA; else if (sPayWayCd == ItemConst.TR_ITEM_ID.EMP_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.EMP_DC.SPC_PAY) return PosKey.MENU_KEY.SPC_EMPLOYEE_DC_PAY; else if (sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.IN_EMP_DC) return PosKey.MENU_KEY.PAY_INSTOR_DC; // 임의할인 else if (sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.IN_EMP_DC_5) return PosKey.MENU_KEY.PAY_INSTOR_DC_5; // 입점매장직원할인5(2017.05.25) //#20180110 전체금액할인 & 전체%할인 통합 Start // 기존 //else if (sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.TOTAL_DC_AMT) // return PosKey.MENU_KEY.TOTAL_DC_AMT; //else if (sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.TOTAL_DC_RATE) // return PosKey.MENU_KEY.TOTAL_DC_RATE; //#20180227 전체금액할인 & 전체%할인 통합 국내만 적용되도록 수정 Start // 변경 //else if ((sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.TOTAL_DC_AMT) || // (sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.TOTAL_DC_RATE)) // return PosKey.MENU_KEY.TOTAL_DC_RATE; else if ((sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.TOTAL_DC_RATE) || (sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.TOTAL_DC_AMT && m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.KR)) return PosKey.MENU_KEY.TOTAL_DC_RATE; else if (sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.TOTAL_DC_AMT && m_cPosStatus.Mst.CntryDiv != ItemConst.CNTRY_DIV.KR) return PosKey.MENU_KEY.TOTAL_DC_AMT; //#20180227 전체금액할인 & 전체%할인 통합 국내만 적용되도록 수정 End //#20180110 전체금액할인 & 전체%할인 통합 End else if (sPayWayCd == ItemConst.TR_ITEM_ID.USER_DC_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.USER_DC.TOTAL_ADDDC_AMT) return PosKey.MENU_KEY.TOTAL_ADDDC_AMT; else if (sPayWayCd == ItemConst.TR_ITEM_ID.ORDER_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.ORDER.CALLCENTER_PAY) return PosKey.MENU_KEY.ORDER_CALLCENTER; //배달(콜센터) else if (sPayWayCd == ItemConst.TR_ITEM_ID.ORDER_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.ORDER.BAEMIN_PAY) return PosKey.MENU_KEY.ORDER_BAEMIN; else if (sPayWayCd == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) return PosKey.MENU_KEY.HAPPY_POINT; // 해피포인트 else if (sPayWayCd == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA) return PosKey.MENU_KEY.HAPPY_POINT_SAVE_CHINA; else if (sPayWayCd == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.ETC_INFO.OCB_SAVE) return PosKey.MENU_KEY.OKCASHBACK_SAVE; else if (sPayWayCd == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.ETC_INFO.ONLINE_CPN) return PosKey.MENU_KEY.ONLINE_COUPONS; //*** MoonSeokWoo 2017.12.07 Add else if (sPayWayCd == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.POINT_USE.SHINHAN_POINT) return PosKey.MENU_KEY.SHINHANCARD_POINT; //*** MoonSeokWoo 2017.12.07 Add //*** MoonSeokWoo 2017.12.27 Add else if (sPayWayCd == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.POINT_USE.HYUNDAI_MPOINTS) return PosKey.MENU_KEY.HYUNDAI_M_POINTS; //*** MoonSeokWoo 2017.12.27 Add // grayber@20180102 우리모아포인트 추가 start - POS메뉴키 획득 분기 추가 else if (sPayWayCd == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.POINT_USE.WOORIMORE_POINTS) return PosKey.MENU_KEY.WOORIMORE_POINTS; // grayber@20180102 우리모아포인트 추가 end //grayber@20180208 코레일 마일리지 입력 start - POS 메뉴ㅣ 획득 분기 추가 else if (sPayWayCd == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.POINT_USE.KORAIL_MILEAGE) return PosKey.MENU_KEY.KORAIL_MILEAGE; //grayber@20180208 코레일 마일리지 입력 end //#20180413 웰컴카드 신규기능 추가 start,phj else if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD) return PosKey.MENU_KEY.WELCOMECARD_DC; //#20180413 웰컴카드 신규기능 추가 end,phj } 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 ""; } #endregion #region PayDcDuplicationCheck 결제할인 마스터에서 결제할인 중복 가능여부 체크 /// /// 결제할인 마스터에서 결제할인 중복 가능여부 체크 /// /// /// public bool PayDcDuplicationCheck(string sPosMenuKey) { bool bRet = true; try { string sPayWayCd = GetMenuKeyToPayWayCd(sPosMenuKey); string sPayDtlCd = GetMenuKeyToPayDtlCd(sPosMenuKey); if (sPayWayCd == "" || sPayDtlCd == "") { //#20180309 제휴할인(통합) 사용시 에러 로그 생성 되는 부분 수정 start //제휴할인(통합)은 결제할인코드가 없기 때문에 예외조건에 추가 //기존 /* if (sPosMenuKey != PosKey.MENU_KEY.PAY_OTHER_DC && sPosMenuKey != PosKey.MENU_KEY.OTHER_PAYMENTS) { UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Not Find MenuKey = " + sPosMenuKey); } */ //변경 //#20180626 해피포인트 기본 적립제외 사용시 에러 로그 생성되는 부분 수정 start //해피포인트 기본 적립제외는 결제할인코드가 없기 때문에 예외조건에 추가 //기존 /* if (sPosMenuKey != PosKey.MENU_KEY.PAY_OTHER_DC && sPosMenuKey != PosKey.MENU_KEY.OTHER_PAYMENTS && sPosMenuKey != PosKey.MENU_KEY.MOBILE_UNITY) { UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Not Find MenuKey = " + sPosMenuKey); } */ //변경 if (sPosMenuKey != PosKey.MENU_KEY.PAY_OTHER_DC && sPosMenuKey != PosKey.MENU_KEY.OTHER_PAYMENTS && sPosMenuKey != PosKey.MENU_KEY.MOBILE_UNITY && sPosMenuKey != PosKey.MENU_KEY.HAPPY_SAVE_EXCLUDE) { UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Not Find MenuKey = " + sPosMenuKey); } //#20180626 해피포인트 기본 적립제외 사용시 에러 로그 생성되는 부분 수정 end //#20180309 제휴할인(통합) 사용시 에러 로그 생성 되는 부분 수정 end return true; } return PayDcDuplicationCheck(sPayWayCd, sPayDtlCd, 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); } return bRet; } /// /// 결제할인 마스터에서 결제할인 중복 가능여부 체크 /// /// public bool PayDcDuplicationCheck(string sPayWayCd, string sPayDtlCd, bool bShowMsg) { bool bRet = true; try { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// 결제할인 마스터 중복 가능여부 체크 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// string sCpiDupYn = PosMstManager.GetMstPayDc(sPayWayCd, sPayDtlCd, PosMst.MST_PAY_DC.DATA.CPI_DUP_YN); // 캠페인 중복여부(0:불가, 1:가능) string sDcTelecomDupYn = PosMstManager.GetMstPayDc(sPayWayCd, sPayDtlCd, PosMst.MST_PAY_DC.DATA.DC_TELECOM_DUP_YN); // 할인통신사 중복여부(0:불가, 1:가능) string sDcPointDupYn = PosMstManager.GetMstPayDc(sPayWayCd, sPayDtlCd, PosMst.MST_PAY_DC.DATA.DC_POINT_DUP_YN); // 할인포인트 중복여부(0:불가, 1:가능) string sDcCpnDupYn = PosMstManager.GetMstPayDc(sPayWayCd, sPayDtlCd, PosMst.MST_PAY_DC.DATA.DC_CPN_DUP_YN); // 할인쿠폰 중복여부(0:불가, 1:가능) string sDcEmpDcDupYn = PosMstManager.GetMstPayDc(sPayWayCd, sPayDtlCd, PosMst.MST_PAY_DC.DATA.DC_EMP_DC_DUP_YN); // 할인직원할인 중복여부(0:불가, 1:가능) string sDcGnrlDupYn = PosMstManager.GetMstPayDc(sPayWayCd, sPayDtlCd, PosMst.MST_PAY_DC.DATA.DC_GNRL_DUP_YN); // 할인일반 중복여부(0:불가, 1:가능) string sPayGnrlDupYn = PosMstManager.GetMstPayDc(sPayWayCd, sPayDtlCd, PosMst.MST_PAY_DC.DATA.PAY_GNRL_DUP_YN); // 결제일반 중복여부(0:불가, 1:가능) string sPayMovileDupYn = PosMstManager.GetMstPayDc(sPayWayCd, sPayDtlCd, PosMst.MST_PAY_DC.DATA.PAY_MOBILE_DUP_YN); // 결제모바일 중복여부(0:불가, 1:가능) string sPayPointDupYn = PosMstManager.GetMstPayDc(sPayWayCd, sPayDtlCd, PosMst.MST_PAY_DC.DATA.PAY_POINT_DUP_YN); // 결제포인트 중복여부(0:불가, 1:가능) ArrayList alTrPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); // 상품 아이템 foreach (Column.TR_PLU.DATA cSaleItem in alTrPluItem) { if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cSaleItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소 if (cSaleItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue; // 빌분리번호 // 캠페인 할인 체크 if (sCpiDupYn == "0" && cSaleItem.CPI_DC_AMT > 0) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0192); // 캠페인 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } // 할인 통신사 체크 if (sDcTelecomDupYn == "0" && cSaleItem.COOP_CARD_DC_AMT > 0) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0193); // 통신사 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } // 할인 포인트 체크 if (sDcPointDupYn == "0" && cSaleItem.POINT_DC_AMT > 0) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0194); // 포인트 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } // 할인 쿠폰 체크 if (sDcCpnDupYn == "0" && cSaleItem.CPN_DC_AMT > 0) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0195); // 쿠폰 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } // 할인 직원할인 체크 if (sDcEmpDcDupYn == "0" && cSaleItem.EMP_DC_AMT > 0) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0196); // 직원 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } // 할인 일반 체크 if (sDcGnrlDupYn == "0" && (cSaleItem.ITEM_DC_AMT > 0 || cSaleItem.SUM_DC_AMT > 0 || cSaleItem.SET_DC_AMT > 0)) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0197); // 일반 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } } ArrayList alTrPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); // 결제아이템 foreach (Column.TR_PAYMENT.DATA cPayItem in alTrPayItem) { if (cPayItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue; if (cPayItem.PAY_DTL_CD_05 == PosConst.PAY_DC_TYPE.PAY) // 할인결제구분 (1:결제, 2:할인) { // 결제일반 체크 if (sPayGnrlDupYn == "0" && cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.MOBILECON_ITEM && cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.POINT_ITEM) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0198); // 이미 결제가 등록되어 있습니다. 중복 불가 합니다 return false; } // 결제모바일 체크 if (sPayMovileDupYn == "0" && cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILECON_ITEM) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0199); // 모바일 결제가 등록되어 있습니다. 중복 불가 합니다 return false; } // 결제포인트 체크 if (sPayPointDupYn == "0" && cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.POINT_ITEM) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0200); // 포인트 결제가 등록되어 있습니다. 중복 불가 합니다 return false; } } // 할인 통신사 체크 if (sDcTelecomDupYn == "0" && cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF //#20180413 웰컴카드 신규기능 추가 start,phj || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD //#20180413 웰컴카드 신규기능 추가 end,phj || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_DOUBLE)) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0193); // 통신사 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } // 할인 포인트 체크 if (sDcPointDupYn == "0" && cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.OILBANK_POINT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.HBLUE_M_POINT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.KRED_M_POINT)) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0194); // 포인트 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } // 할인 쿠폰 체크 if (sDcCpnDupYn == "0" && cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.COUPON_ITEM) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0195); // 쿠폰 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } // 할인 직원할인 체크 if (sDcEmpDcDupYn == "0" && cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.EMP_DC_ITEM) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0196); // 직원 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// 결제할인 중복 가능여부 체크 - 마스터 참고 불가 항목 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 제휴 할인은 중복 등록 안됨 if (sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT) { // 할인 통신사 체크 if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT //#20180413 웰컴카드 신규기능 추가 start,phj || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD //#20180413 웰컴카드 신규기능 추가 end,phj || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_DOUBLE) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0193); // 통신사 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } // 할인 포인트 체크 if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.OILBANK_POINT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.HBLUE_M_POINT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.KRED_M_POINT) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0194); // 포인트 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } } // 임직원 할인은 중복 등록 안됨 if (sPayWayCd == ItemConst.TR_ITEM_ID.EMP_DC_ITEM && cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.EMP_DC_ITEM) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0196); // 직원 할인이 등록되어 있습니다. 중복 불가 합니다 return false; } //// 해피포인트 적립은 통신사 할인이 있으면 등록 안됨(SKT 제외) //if (sPayWayCd == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) //{ // if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && ( cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF // || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP)) // { // if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0193); // 통신사 할인이 등록되어 있습니다. 중복 불가 합니다 // return false; // } //} } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///// 결제할인 중복 가능여부 체크 - 마스터 참고 불가 항목 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 해피포인트 카드 등록 여부 체크 bool bHappyPointExist = false; ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); // 기타 내역 받아 오기 foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem) { if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue; if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) { bHappyPointExist = true; break; } } //// 통신사 할인은 해피포인트 적립 있으면 등록 안됨(SKT 제외) //if (bHappyPointExist == true && sPayWayCd == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && (sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF // || sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT || sPayDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP)) //{ // if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0201); // 해피포인트가 등록되어 있습니다. 중복 불가 합니다 // return false; //} // 해피포인트 적립은 중복 등록 안됨 if (bHappyPointExist == true && sPayWayCd == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && sPayDtlCd == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) { if (bShowMsg == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0201); // 해피포인트가 등록되어 있습니다. 중복 불가 합니다 } return 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); } return bRet; } #endregion #region 제휴사(통신사) VIP증정 대상 상품 체크 /// /// 제휴사(통신사) VIP증정 대상 상품 체크 /// /// /// /// /// public double SrarchTermCoopCmpDcItem(string sPAY_WAY_CD, string sPAY_DTL_CD_01, string sCmpGradeCd) { int nSelRow = -1; return SrarchTermCoopCmpDcItem(sPAY_WAY_CD, sPAY_DTL_CD_01, sCmpGradeCd, ref nSelRow); } public double SrarchTermCoopCmpDcItem(string sPAY_WAY_CD, string sPAY_DTL_CD_01, string sCmpGradeCd, ref int nSelRow) { double nSalePrice = 0; // 대상 상품단가 try { nSelRow = -1; // 제휴사 할인상품 마스터 조회 DataTable dtDcItem = SeletTermCoopCmpDcItem(sPAY_WAY_CD, sPAY_DTL_CD_01, sCmpGradeCd); if (dtDcItem == null || dtDcItem.Rows.Count == 0) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()" , "No Rows PayCd=" + sPAY_WAY_CD + ", PayDtlCd =" + sPAY_DTL_CD_01); //WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0151); return 0; } // KT VIP 상품은 최고가 기준으로 체크 ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); for (int i = 0; i < alSaleItem.Count; i++) { Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alSaleItem[i]; if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소 if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.NORMAL && cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.SET_MAIN) continue; // 일반상품 foreach (DataRow dr in dtDcItem.Rows) { if (CmUtil.GetDataRowStr(dr, PosMst.MST_TERM_COOP_CMP_DC_ITEM.DATA.ITEM_CD) == cPluItem.ITEM_PLU_CD) { double nSalePrc = cPluItem.SALE_PRC; // 상품단가 if (nSalePrc > cPluItem.BILL_AMT) nSalePrc = cPluItem.BILL_AMT; if (nSalePrc > nSalePrice) { nSalePrice = nSalePrc; nSelRow = i; } } } } //if (nSalePrice == 0) //{ // WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0154); // return nSalePrice; //} } 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 nSalePrice; } #endregion #region POS IRT 전문 송수신 - 화면 미표시용 private string OnNetworkIRT(string sServerIp, int nServerPort, int nTimeOut, string sCommHead, Hashtable htSendData) { string sRet = UserCom.RST_ERR; int nRecvRet = -1; try { m_bIRTComplete = true; if (m_cNetService == null) m_cNetJSONService = (INetworkJSON)sManager.InitServiceInstance(ServiceLists.AGENT_NETWORK.DLL, ServiceLists.AGENT_NETWORK.NETWORK_IRT); nRecvRet = m_cNetJSONService.IRTSendReceive(sServerIp, nServerPort, nTimeOut, sCommHead, htSendData, ref m_htRecvData); if (nRecvRet == BaseCom.OK) sRet = UserCom.RST_OK; } catch (Exception ex) { UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.ERROR_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Process Exception !!! " + ex.Message); } finally { m_bIRTComplete = false; } return sRet; } #endregion #region 공통승인로그 /// /// 공통 승인 로그 DB 저장 /// /// /// public string SetSaleApprLog(string sTradeDiv, string[] aParm) { string sRet = UserCom.RST_ERR; string sQuery = ""; double[] nAMT_ENTRY = new double[] { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; string[] sOCCUR_ENTRY = new string[] { "", "", "", "", "", "", "", "", "" }; int nNowPos = 0; string sHP_ADD_INFO = ""; string[] aIrtRsp = null; string sSaleDate = ""; string sSaleTime = ""; try { #region 승인일자 및 승인시간 체크 sSaleDate = aParm[7].Trim(); sSaleTime = aParm[8].Trim(); if (aParm[7].Trim() == "") sSaleDate = DateTime.Now.ToString("yyyyMMdd"); if (aParm[7].Trim().Length == 6) sSaleDate = CmUtil.MidH(DateTime.Now.ToString("yyyyMMdd"), 0, 2) + aParm[7].Trim(); if (aParm[8].Trim() == "") sSaleTime = DateTime.Now.ToString("HHmmss"); #endregion #region 해피포인트 별도 처리 if (aParm[3].Trim() == "R") { // 응답인 경우만 체크 if ( (aParm[0].Trim() == "04" && aParm[1].Trim() == "00") // 해피포인트 사용 //|| //(aParm[0].Trim() == "04" && aParm[1].Trim() == "04") // 해피포인트 사용 (중국) || (aParm[0].Trim() == "80" && aParm[1].Trim() == "01") // 해피포인트 적립 //|| //(aParm[0].Trim() == "80" && aParm[1].Trim() == "05") // 해피포인트 적립 (중국) ) { // 포인트 분해 byte[] bytes = Encoding.Default.GetBytes(aParm[11].Trim()); aIrtRsp = new string[Column.POS_RES_POINT.LEN.Length]; nNowPos = 0; ItemColumn.ParseMessage(Column.POS_RES_POINT.LEN, Column.POS_RES_POINT.TYPE, bytes, ref nNowPos, ref aIrtRsp); if (sTradeDiv == PosConst.CANCEL_DIV.NORMAL) { // 정상 nAMT_ENTRY[0] = CmUtil.DoubleParse(aIrtRsp[Column.POS_RES_POINT.SEQ.ResTrPoint]); // 적립포인트 nAMT_ENTRY[1] = CmUtil.DoubleParse(aIrtRsp[Column.POS_RES_POINT.SEQ.ResSavePoint]); // 총포인트(누적포인트) if (aParm[2].Trim() == PosConst.POS_VAN_MASTER.TRADE_ID.VAN_POT_QRY_A) { nAMT_ENTRY[2] = CmUtil.DoubleParse(aIrtRsp[Column.POS_RES_POINT.SEQ.ResUsesPoint]); // 가용포인트 sHP_ADD_INFO = aIrtRsp[Column.POS_RES_POINT.SEQ.ResAddRespon].Trim(); // 추가응답정보 nNowPos = 0; aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length]; ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(sHP_ADD_INFO), ref nNowPos, ref aIrtRsp); nAMT_ENTRY[3] = CmUtil.LongParse(aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointDELHPPOINT]); // 소명예정포인트 } else { sHP_ADD_INFO = aIrtRsp[Column.POS_RES_POINT.SEQ.ResAddRespon].Trim(); // 추가응답정보 nNowPos = 0; aIrtRsp = new string[Column.POINT_ADD_INFO_SAVE.LEN.Length]; ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SAVE.LEN, Column.POINT_ADD_INFO_SAVE.TYPE, Encoding.Default.GetBytes(sHP_ADD_INFO), ref nNowPos, ref aIrtRsp); nAMT_ENTRY[4] = CmUtil.DoubleParse(aIrtRsp[Column.POINT_ADD_INFO_SAVE.SEQ.AddSavePnt]); // 추가적립포인트 } } else { // 반품 nAMT_ENTRY[1] = CmUtil.DoubleParse(aIrtRsp[Column.POS_RES_POINT.SEQ.ResSavePoint]); // 총포인트(누적포인트) sHP_ADD_INFO = aIrtRsp[Column.POS_RES_POINT.SEQ.ResAddRespon].Trim(); // 추가응답정보 nNowPos = 0; aIrtRsp = new string[Column.POINT_ADD_INFO_SAVE.LEN.Length]; ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SAVE.LEN, Column.POINT_ADD_INFO_SAVE.TYPE, Encoding.Default.GetBytes(sHP_ADD_INFO), ref nNowPos, ref aIrtRsp); } } } nAMT_ENTRY[5] = CmUtil.DoubleParse(aParm[5]); // 승인금액 if ((aParm[0].Trim() == "04" && aParm[1].Trim() == "00") // 해피포인트 사용 //|| //(aParm[0].Trim() == "04" && aParm[1].Trim() == "04") // 해피포인트 사용 (중국) ) { nAMT_ENTRY[6] = CmUtil.DoubleParse(aParm[5]); // 사용point } if (aParm.Length > 12) { sOCCUR_ENTRY[0] = aParm[12]; // 입력구분 sOCCUR_ENTRY[1] = aParm[16]; // 고객번호 sOCCUR_ENTRY[2] = aParm[13]; // 추후승인여부 sOCCUR_ENTRY[3] = ""; // sOCCUR_ENTRY[4] = aParm[14]; // 적립구분 sOCCUR_ENTRY[5] = ""; // 할인구분 sOCCUR_ENTRY[6] = aParm[15]; // skt할인상품코드 sOCCUR_ENTRY[7] = ""; // sOCCUR_ENTRY[8] = ""; // } if (aParm[0].Trim() == "03") // 제휴서비스 할인 { byte[] bytes = Encoding.Default.GetBytes(aParm[11].Trim()); aIrtRsp = new string[Column.POS_RES_POINT.LEN.Length]; nNowPos = 0; ItemColumn.ParseMessage(Column.POS_RES_POINT.LEN, Column.POS_RES_POINT.TYPE, bytes, ref nNowPos, ref aIrtRsp); nAMT_ENTRY[7] = CmUtil.DoubleParse(aIrtRsp[Column.POS_RES_POINT.SEQ.ResTrPoint]); // 사용포인트(할인금액) sOCCUR_ENTRY[5] = CmUtil.MidH(aIrtRsp[Column.POS_RES_POINT.SEQ.ResReserved], 0, 3) + CmUtil.MidH(aIrtRsp[Column.POS_RES_POINT.SEQ.ResReserved], 12, 1); // 할인구분 } // 포인트 조회 if (aParm[2] == PosConst.POS_VAN_MASTER.TRADE_ID.VAN_POT_QRY_A) { if ((aParm[0].Trim() == "04" && aParm[1].Trim() == "00") // 해피포인트 사용 || (aParm[0].Trim() == "80" && aParm[1].Trim() == "01") // 해피포인트 적립 ) { byte[] bytes = Encoding.Default.GetBytes(aParm[11].Trim()); aIrtRsp = new string[Column.POS_RES_POINT.LEN.Length]; nNowPos = 0; ItemColumn.ParseMessage(Column.POS_RES_POINT.LEN, Column.POS_RES_POINT.TYPE, bytes, ref nNowPos, ref aIrtRsp); if (aIrtRsp[Column.POS_RES_POINT.SEQ.ResStatus] == "O") { string sAddInfo = aIrtRsp[Column.POS_RES_POINT.SEQ.ResAddRespon]; // 고정정보 if (sAddInfo.Trim() != "") { nNowPos = 0; aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length]; ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(sAddInfo), ref nNowPos, ref aIrtRsp); string sCustInfo = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointMEMINFO]; sOCCUR_ENTRY[1] = CmUtil.MidH(sCustInfo, 45, 35).Trim(); // 고객번호 } } } } #endregion sQuery = " DECLARE @SEQ INT \n"; sQuery += " SELECT @SEQ = ISNULL(MAX(SEQ),0) + 1 \n"; sQuery += " FROM POSLOG..TR_SALE_APPR_LOG \n"; sQuery += " WHERE 1 = 1 AND CMP_CD = '{0}' AND STOR_CD = '{1}' AND SALE_DT = '{2}' AND POS_NO = '{3}' AND TRADE_NO = '{4}' \n"; sQuery += " \n"; sQuery += " INSERT INTO POSLOG..TR_SALE_APPR_LOG( \n"; sQuery += " CMP_CD, STOR_CD, SALE_DT, POS_NO, TRADE_NO, SEQ, TRADE_DIV \n"; sQuery += " , PAY_WAY_CD, PAY_DTL_CD, INQ_TYPE, TRAN_TYPE, CARD_NO, PAY_AMT \n"; sQuery += " , APPR_NO, APPR_DT, APPR_TIME \n"; sQuery += " , RES_CD, RES_MSG, APPR_LOG, SEND_YN, REG_DATE, REG_ID \n"; sQuery += " , AMT_ENTRY_01, AMT_ENTRY_02, AMT_ENTRY_03, AMT_ENTRY_04, AMT_ENTRY_05 \n"; sQuery += " , AMT_ENTRY_06, AMT_ENTRY_07, AMT_ENTRY_08, AMT_ENTRY_09 \n"; sQuery += " , OCCUR_ENTRY_01, OCCUR_ENTRY_02, OCCUR_ENTRY_03, OCCUR_ENTRY_04, OCCUR_ENTRY_05 \n"; sQuery += " , OCCUR_ENTRY_06, OCCUR_ENTRY_07, OCCUR_ENTRY_08, OCCUR_ENTRY_09 \n"; sQuery += " , USE_YN \n"; sQuery += " ) \n"; sQuery += " VALUES ( '{0}', '{1}', '{2}', '{3}', '{4}', @SEQ, '{5}' \n"; sQuery += " , '{6}', '{7}', '{8}' , '{9}', '{10}', {11} \n"; sQuery += " , '{12}', '{13}', '{14}', '{15}', N'{16}', N'{17}', '{18}', '{19}', '{20}' \n"; sQuery += " , {21}, {22}, {23}, {24}, {25} \n"; sQuery += " , {26}, {27}, {28}, {29} \n"; sQuery += " , N'{30}', N'{31}', N'{32}', N'{33}', N'{34}' \n"; sQuery += " , N'{35}', N'{36}', N'{37}', N'{38}' \n"; sQuery += " , '{39}' \n"; sQuery += " )\n"; sQuery = sQuery.Replace("\t", " "); string sRegDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); sQuery = string.Format(sQuery , m_cPosStatus.Base.CmpCd // 0 CMP_CD , m_cPosStatus.Base.StoreNo // 1 STOR_CD , m_cPosStatus.Base.SaleDate // 2 SALE_DT , m_cPosStatus.Base.PosNo // 3 POS_NO , m_cPosStatus.Base.TradeNo // 4 TRADE_NO , sTradeDiv // 5 판매구분 , EnterNullRemoval(aParm[0].Trim()) // 6 결제수단 , EnterNullRemoval(aParm[1].Trim()) // 7 결제상세코드 , EnterNullRemoval(aParm[2].Trim()) // 8 INQ_TYPE , EnterNullRemoval(aParm[3].Trim()) // 9 TRAN_TYPE , EnterNullRemoval(CmUtil.LeftH(aParm[4], 6).Trim()) // 10 CARD_NO , EnterNullRemoval(CmUtil.DoubleParse(aParm[5]).ToString().Trim()) // 11 PAY_AMT , EnterNullRemoval(CmUtil.MidH(aParm[6].Trim(), 0, 16).Trim()) // 12 APPR_NO , EnterNullRemoval(CmUtil.MidH(sSaleDate, 0, 8).Trim()) // 13 APPR_DT , EnterNullRemoval(CmUtil.MidH(sSaleTime, 0, 6).Trim()) // 14 APPR_TIME , EnterNullRemoval(CmUtil.MidH(aParm[9].Trim(), 0, 20).Trim()) // 15 RES_CD , CmUtil.MidH(EnterNullRemoval(aParm[10].Trim()), 0, 199).Trim() // 16 RES_MSG //, EnterNullRemoval(aParm[11].Trim()) // 17 APPR_LOG , CmUtil.MidH(EnterNullRemoval(aParm[11].Trim()), 0, 3500) // 17 APPR_LOG 2017.04.17 선불고객 조회가 5000 넘아가 수정함 , "0" // 18 SEND_YN , sRegDateTime // 19 REG_DATE , m_cPosStatus.Base.CashierNo // 20 REG_ID , nAMT_ENTRY[0] // 21 적립포인트 , nAMT_ENTRY[1] // 22 총포인트 , nAMT_ENTRY[2] // 23 가용포인트 , nAMT_ENTRY[3] // 24 소멸예정포인트 , nAMT_ENTRY[4] // 25 추가적립포인트 , nAMT_ENTRY[5] // 26 승인금액 , nAMT_ENTRY[6] // 27 사용포인트 , nAMT_ENTRY[7] // 28 할인금액 , nAMT_ENTRY[8] // 29 금액9 , EnterNullRemoval(sOCCUR_ENTRY[0]) // 30 입력구분 , EnterNullRemoval(sOCCUR_ENTRY[1]) // 31 고객번호 , EnterNullRemoval(sOCCUR_ENTRY[2]) // 32 추후승인여부 , EnterNullRemoval(sOCCUR_ENTRY[3]) // 33 입력3 , EnterNullRemoval(sOCCUR_ENTRY[4]) // 34 적립구분 , EnterNullRemoval(sOCCUR_ENTRY[5]) // 35 할인구분 , EnterNullRemoval(sOCCUR_ENTRY[6]) // 36 skt할인상품코드 , EnterNullRemoval(sOCCUR_ENTRY[7]) // 37 입력8 , EnterNullRemoval(sOCCUR_ENTRY[8]) // 38 입력9 , "1" // 39 사용유무 ); //UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "@@SaleApprLog=" + sQuery); m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }); 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; } /// /// 특수문자 제거 /// /// /// private string EnterNullRemoval(string sStr) { string sRet = sStr; try { sRet = sStr.Replace("\r", "").Replace("\n", "").Replace(null, ""); } catch (Exception) { } return sRet; } #endregion 공통승인로그 #region 중간입금/마감입금 거래 조회 /// /// 중간입금/마감입금 거래 조회 /// /// /// public DataTable SelectADMTList(string sKind) { try { // 조회 string sQuery = ""; sQuery += "SELECT \n"; //if (sKind == ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT) sQuery += " TOP 1 \n"; sQuery += " TSH.TRADE_NO \n"; sQuery += " , TSH.TRADE_DIV \n"; sQuery += " , TSH.PAY_TIME \n"; sQuery += "FROM POSLOG..TR_SALE_HEADER TSH \n"; sQuery += "WHERE \n"; sQuery += " TSH.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += "AND TSH.SALE_DT = '" + m_cPosStatus.Base.SaleDate + "' \n"; sQuery += "AND TSH.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; sQuery += "AND TSH.POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n"; sQuery += "AND TSH.TRADE_DIV = '0' \n"; sQuery += "AND TSH.TRAIN_MODE_YN = '0' \n"; sQuery += "AND TSH.TRADE_KINDPER = '" + sKind + "' \n"; sQuery += "ORDER BY 1 DESC, 3 DESC \n"; 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; } #endregion #region 중간입금/마감입금 내역 조회 /// /// 중간입금/마감입금 내역 조회 /// /// /// public DataTable SelectDPSTList(string sTradeNo) { try { // 조회 string sQuery = ""; sQuery += "SELECT \n"; sQuery += " SDW.DPST_WTHDR_CD \n"; sQuery += " , ISNULL(SDW.DPST_WTHDR_QTY, 0) DPST_WTHDR_QTY \n"; sQuery += " , ISNUll(SDW.DPST_WTHDR_AMT, 0) DPST_WTHDR_AMT \n"; sQuery += " , ISNULL(SDW.DPST_WTHDR_NM, '') DPST_WTHDR_NM \n"; sQuery += "FROM POSLOG..TR_SALE_DPST_WTHDR SDW \n"; sQuery += "WHERE \n"; sQuery += " SDW.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += "AND SDW.SALE_DT = '" + m_cPosStatus.Base.SaleDate + "' \n"; sQuery += "AND SDW.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; sQuery += "AND SDW.POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n"; sQuery += "AND SDW.TRADE_NO = '" + sTradeNo + "' \n"; sQuery += "ORDER BY SDW.SEQ \n"; 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; } #endregion #region 중간입금/마감입금 원거래 취소 조회 /// /// 중간입금/마감입금 원거래 취소 조회 /// /// /// public DataTable SelectDPSTRefund(string sTradeNo) { try { // 조회 string sQuery = ""; sQuery += "SELECT \n"; sQuery += " COUNT(*) QTY \n"; sQuery += "FROM POSLOG..TR_SALE_HEADER TSH \n"; sQuery += "WHERE \n"; sQuery += " TSH.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += "AND TSH.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; sQuery += "AND TSH.ORG_BILLDT = '" + m_cPosStatus.Base.SaleDate + "' \n"; sQuery += "AND TSH.ORG_BILL_POSNO = '" + m_cPosStatus.Base.PosNo + "' \n"; sQuery += "AND TSH.ORG_BILL_NO = '" + sTradeNo + "' \n"; 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; } #endregion #region 서버전송 데이터 저장 /// /// 서버전송 데이터 저장 /// /// /// public void SaveServerRequestTransactionData(string sFuncCode, string[] aParam) { string sSQL = string.Empty; string sRegDt = DateTime.Now.ToString("yyyyMMddHHmmss"); try { if (sFuncCode == PosConst.RE_TRANSACTIONDATA.OWNER_MODE) //점주 알바 { sSQL = " DECLARE @CMP_CD VARCHAR(4) "; sSQL += " DECLARE @STOR_CD VARCHAR(10)"; sSQL += " DECLARE @WORK_DT VARCHAR(8)"; sSQL += " DECLARE @WORK_HOUR VARCHAR(6)"; sSQL += " DECLARE @EMP_DIV VARCHAR(1)"; sSQL += " SET @CMP_CD ='" + m_cPosStatus.Base.CmpCd + "'"; sSQL += " SET @STOR_CD ='" + m_cPosStatus.Base.StoreNo + "'"; sSQL += " SET @WORK_DT ='" + DateTime.Now.ToString("yyyyMMdd") + "'"; sSQL += " SET @WORK_HOUR ='" + DateTime.Now.ToString("HHmmss") + "'"; sSQL += " SET @EMP_DIV ='" + aParam[0] + "'"; sSQL += " IF NOT EXISTS (SELECT * "; sSQL += " FROM POSLOG.dbo.TR_STOR_EMP_WORK"; sSQL += " WHERE CMP_CD = @CMP_CD"; sSQL += " AND STOR_CD = @STOR_CD"; sSQL += " AND WORK_DT = @WORK_DT"; sSQL += " AND WORK_HOUR = @WORK_HOUR"; sSQL += " AND EMP_DIV = @EMP_DIV)"; sSQL += " BEGIN"; sSQL += " INSERT INTO POSLOG.dbo.TR_STOR_EMP_WORK ("; sSQL += " CMP_CD,STOR_CD,WORK_DT,WORK_HOUR,EMP_DIV,POS_NO,SEND_YN,REG_DATE,UPD_DATE "; sSQL += " ) VALUES ( "; sSQL += " @CMP_CD,@STOR_CD,@WORK_DT,@WORK_HOUR,@EMP_DIV,'{0}','{1}','{2}','{2}' ) "; sSQL += " END"; sSQL = string.Format(sSQL , m_cPosStatus.Base.PosNo , "" , sRegDt ); } if (sSQL != "") { m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }); } } 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 기타 공지 처리 프로세스 /// /// 기타 공지 처리 프로세스 /// /// /// /// /// public bool GetEtcNoticeProcess(string sMsgType, ref string[] aOutParam) { string sSQL = string.Empty; bool bRet = false; try { if (sMsgType == "01") { //01 - 점주알바모드 sSQL = " SELECT MAX(MSG_DIV) AS 'MSG_DIV' "; sSQL += " ,ISNULL(MAX(VAL_ENTRY_01),0) AS 'OWNER' "; sSQL += " ,ISNULL(MAX(VAL_ENTRY_02),0) AS 'PART' "; sSQL += " FROM POSLOG.dbo.ETC_NOTICE_MNG "; sSQL += " WHERE CMP_CD = '{0}' "; sSQL += " AND STOR_CD = '{1}' "; sSQL += " AND POS_NO = '{2}' "; sSQL += " AND MSG_DIV IN ('01') "; sSQL += " AND SUBSTRING(REG_DATE,1,8) = (SELECT MAX(SUBSTRING(REG_DATE,1,8)) FROM POSLOG.dbo.ETC_NOTICE_MNG WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND POS_NO = '{2}' AND MSG_DIV IN ('01')) "; sSQL += " AND SUBSTRING(REG_DATE,1,8) BETWEEN CONVERT(VARCHAR,GETDATE() - 31,112) AND CONVERT(VARCHAR,GETDATE(),112) "; //sSQL += " AND SEND_FLAG = '1' "; } else if (sMsgType == "05") { //05 - 기념일 배송 => 건수 필드 수정(2017.07.20) sSQL = " SELECT ISNULL(VAL_ENTRY_01, 0) AS CNT "; sSQL += " FROM POSLOG.dbo.ETC_NOTICE_MNG"; sSQL += " WHERE CMP_CD = '{0}'"; sSQL += " AND STOR_CD = '{1}'"; sSQL += " AND POS_NO = '{2}'"; sSQL += " AND MSG_DIV IN ('05') "; //sSQL += " AND SUBSTRING(REG_DATE,1,8) BETWEEN CONVERT(VARCHAR,GETDATE() - 31,112) AND CONVERT(VARCHAR,GETDATE(),112) "; sSQL += " AND SEND_FLAG = '0' "; //sSQL = " SELECT ISNULL(COUNT(CMP_CD),0) AS CNT "; //sSQL += " FROM POSLOG.dbo.ETC_NOTICE_MNG"; //sSQL += " WHERE CMP_CD = '{0}'"; //sSQL += " AND STOR_CD = '{1}'"; //sSQL += " AND POS_NO = '{2}'"; //sSQL += " AND MSG_DIV IN ('05') "; //sSQL += " AND SUBSTRING(REG_DATE,1,8) BETWEEN CONVERT(VARCHAR,GETDATE() - 31,112) AND CONVERT(VARCHAR,GETDATE(),112) "; //sSQL += " AND SEND_FLAG = '0' "; //sSQL += " ORDER BY SEND_FLAG "; } else { //02 - 유해상품 //03 - 입고등록 확인 //04 - 배송정보 //05 - 기념일 배송 sSQL = " SELECT TOP 1 CMP_CD,STOR_CD,POS_NO,MSG_DIV,SEQ,VAL_ENTRY_01,VAL_ENTRY_02,VAL_ENTRY_03,VAL_ENTRY_04 "; sSQL += " ,VAL_ENTRY_05,VAL_ENTRY_06,VAL_ENTRY_07,VAL_ENTRY_08,VAL_ENTRY_09,VAL_ENTRY_10 "; sSQL += " FROM POSLOG.dbo.ETC_NOTICE_MNG"; sSQL += " WHERE CMP_CD = '{0}'"; sSQL += " AND STOR_CD = '{1}'"; sSQL += " AND POS_NO = '{2}'"; sSQL += " AND MSG_DIV IN ('02','03','04') "; //sSQL += " AND MSG_DIV IN ('02','03','04','05') "; sSQL += " AND SUBSTRING(REG_DATE,1,8) BETWEEN CONVERT(VARCHAR,GETDATE() - 31,112) AND CONVERT(VARCHAR,GETDATE(),112) "; sSQL += " AND SEND_FLAG = '0' "; //sSQL += " ORDER BY SEND_FLAG "; } if (sSQL != "") { sSQL = string.Format(sSQL, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo); DataTable dt = m_cMstService.Select(new string[] { sSQL }); //디비조회 if (!(dt == null || dt.Rows.Count == 0)) { DataRow dr = dt.Rows[0]; if (sMsgType == "01") { aOutParam = new string[] { dr["OWNER"].ToString(), dr["PART"].ToString() }; } else if (sMsgType == "05") { aOutParam = new string[] { dr["CNT"].ToString() }; } else { //팝업처리 string sMsg = string.Empty; //CASE별 분리! if (dr["MSG_DIV"].ToString() == "02") //위해상품이면 { sMsg = string.Format("[{0}]{1}-{2}-{3}\n{4}:{5}\n{6}:{7}", MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0741), dr["VAL_ENTRY_01"], dr["VAL_ENTRY_02"], dr["VAL_ENTRY_03"] , MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0015), dr["VAL_ENTRY_04"], MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0173), dr["VAL_ENTRY_05"]); } if (sMsg != "") { WinManager.ConfirmMessage(sMsg); } UpdateEtcNoticeProcess(dr["MSG_DIV"].ToString(), dr); } } bRet = 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); } return bRet; } /// /// 기타 공지 업데이트 /// /// /// public void UpdateEtcNoticeProcess(string sMsgDiv, DataRow dr) { string sSQL = string.Empty; try { //#20171227 거래데이터 저장 오류 관련 로그추가 start UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) "UpdateEtcNoticeProcess STEP 1 -> " + "sMsgDiv : " + sMsgDiv); //#20171227 거래데이터 저장 오류 관련 로그추가 end //#20180212 기타공지 업데이트 오류 수정 start if (sMsgDiv == "") { return; } //#20180212 기타공지 업데이트 오류 수정 end sSQL = " UPDATE POSLOG.dbo.ETC_NOTICE_MNG SET SEND_FLAG = '1' "; sSQL += " WHERE CMP_CD = '{0}'"; sSQL += " AND STOR_CD = '{1}'"; sSQL += " AND POS_NO = '{2}'"; sSQL += " AND MSG_DIV = '{3}'"; if (sMsgDiv == "01" || sMsgDiv == "05") //점주알바, 기념일 배송 { sSQL = string.Format(sSQL, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo, sMsgDiv); } else if (sMsgDiv == "02") //위해상품 { sSQL += " AND VAL_ENTRY_01 = '{4}'"; sSQL += " AND VAL_ENTRY_02 = '{5}'"; sSQL += " AND VAL_ENTRY_03 = '{6}'"; sSQL = string.Format(sSQL, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo, sMsgDiv, dr["VAL_ENTRY_01"], dr["VAL_ENTRY_02"], dr["VAL_ENTRY_03"]); } else { sSQL += " AND SEQ = '{4}'"; //#20171227 거래데이터 저장 오류 관련 로그추가 start UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) "UpdateEtcNoticeProcess STEP 2 -> " + "sMsgDiv : " + sMsgDiv + ", SEQ : " + dr["SEQ"].ToString()); //#20171227 거래데이터 저장 오류 관련 로그추가 end sSQL = string.Format(sSQL, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.PosNo, sMsgDiv, dr["SEQ"]); } int iRet = m_cMstService.Update(new string[] { sSQL }); } 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 주변장치 상태 관리 /// /// 주변장치 상태 관리 /// public Color GS_DeviceStatus() { string sStatus = ""; string sDeviceName = ""; Color cColor = Color.Green; try { // 주변장치 목록 체크 CmMessage m_cDeviceList = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosDevice); m_cPosStatus = (PosStatus)StateObject.POS; for (int i = 0; i < m_cDeviceList.Count; i++) { sDeviceName = m_cDeviceList.MessageKeyList[i].ToString(); if (m_cDeviceList.GetMessage(sDeviceName).GetMessageValue("UseFlag") != PosConst.DEVICE_USE_FLAG.YES_USE) { } else { switch (sDeviceName) { case "POSPRINTER": sStatus = m_cPosStatus.Base.OlePosPrinterStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; goto Skip_Next; } break; case "SCANNER": sStatus = m_cPosStatus.Base.OlePosScannerStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; goto Skip_Next; } break; case "ICREADER": sStatus = m_cPosStatus.Base.OlePosICReaderStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; goto Skip_Next; } break; case "CATTERMINAL": sStatus = m_cPosStatus.Base.OlePosCATStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; goto Skip_Next; } break; case "CASHDRAWER": //sStatus = m_cPosStatus.Base.OlePosCashDrawerStatus; //if (sStatus != UserCom.RST_OK) //{ // cColor = Color.Crimson; // goto Skip_Next; //} break; case "SCALE": sStatus = m_cPosStatus.Base.OlePosScaleStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; goto Skip_Next; } break; case "SIGNPAD": sStatus = m_cPosStatus.Base.OlePosSignPadStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; goto Skip_Next; } break; case "LABELPRINTER": sStatus = m_cPosStatus.Base.OlePosLabelPrinterStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; goto Skip_Next; } break; case "MSR": sStatus = m_cPosStatus.Base.OlePosMsrStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; goto Skip_Next; } break; case "SCALEPOLEDISP": sStatus = m_cPosStatus.Base.OlePosScalePoleDispStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; goto Skip_Next; } break; case "": break; } } // Network sStatus = m_cPosStatus.Base.OlePosNetworkStatus; if (sStatus.Trim().Length > 0 && sStatus != UserCom.RST_OK) { cColor = Color.Crimson; } } Skip_Next: return cColor; } 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 cColor; } #endregion #region 대기번호 번호 자동 채번 /// /// 대기번호 자동 채번 /// /// public string GetWaitNoForDb() { string sSQL = string.Empty; string sRet = ""; int iRet = 0; DataTable dt = null; try { sSQL = " SELECT ISNULL(MAX(CONVERT(int,case when len(order_no) > 2 then substring(order_no, len('87') + 1, len(order_no)) else order_no end)),0) + 1 AS ORDER_NO "; sSQL += " FROM POSLOG.dbo.TR_SALE_HEADER "; sSQL += " WHERE CMP_CD ='" + m_cPosStatus.Base.CmpCd + "'"; sSQL += " AND SALE_DT ='" + m_cPosStatus.Base.SaleDate + "'"; sSQL += " AND STOR_CD ='" + m_cPosStatus.Base.StoreNo + "'"; //sSQL += " AND POS_NO ='" + m_cPosStatus.Base.PosNo + "'"; // del, 2017.02.02, 후불판매모드 대응 sSQL += " AND ISNUMERIC(ORDER_NO) = 1 "; iRet = m_cSqlDbService.DBSelect(sSQL, out dt); if (iRet == 1) { sRet = m_cPosStatus.Base.PosNo + dt.Rows[0]["ORDER_NO"].ToString(); //sRet = dt.Rows[0]["ORDER_NO"].ToString(); } else { //실패시 거래번호라도 주자! sRet = CmUtil.IntParse(m_cTrnStatus.Head.TradeNo).ToString(); } } 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; } #endregion 대기번호 번호 자동 채번 #region BR 팝업 업무 처리 /// /// BR 팝업 업무 조회 셋팅 /// /// public void SetBrPopUpBizMst() { DataTable dt = null; string sComCd = ""; string sQuery = ""; string sSQL = ""; try { //BRK만 처리! if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR) { string sSaleDt = DateTime.Now.ToString("yyyyMMdd"); sQuery = " SELECT CMP_CD "; sQuery += " ,CMM_GRP_CD "; sQuery += " ,CMM_CD "; sQuery += " ,CHAR_VAL_TITLE_VAL_01 "; sQuery += " ,CHAR_VAL_TITLE_VAL_02 "; sQuery += " FROM POSMST.dbo.MST_CMM A "; sQuery += " WHERE CMP_CD = '{0}' "; sQuery += " AND CMM_GRP_CD IN ({1}) "; sQuery += " AND USE_YN = '1' "; if (m_cPosStatus.Base.BrandCd == PosConst.MST_BRAND_CODE.BR_BR) //베스킨 { sComCd = string.Format("'{0}','{1}'", PosConst.COMMON_CODE_GROUP.Z0015, PosConst.COMMON_CODE_GROUP.Z0016); } else if (m_cPosStatus.Base.BrandCd == PosConst.MST_BRAND_CODE.BR_DD) //던킨 { //토, 일 체크 DateTime dtTime = DateTime.Now; if (dtTime.DayOfWeek == DayOfWeek.Saturday || dtTime.DayOfWeek == DayOfWeek.Sunday) //토,일만 처리 { sComCd = string.Format("'{0}','{1}'", PosConst.COMMON_CODE_GROUP.Z0018, PosConst.COMMON_CODE_GROUP.Z0019); } else { sComCd = string.Format("'{0}'", PosConst.COMMON_CODE_GROUP.Z0018); } } sQuery = string.Format(sQuery, m_cPosStatus.Base.CmpCd, sComCd); int iRet = m_cSqlDbService.DBSelect(sQuery, out dt); if (iRet == 1) { if (dt == null || dt.Rows.Count == 0) { //처리 없음! } else { sSQL = " IF NOT EXISTS (SELECT * "; sSQL += " FROM POSLOG.dbo.ETC_BR_POPUP"; sSQL += " WHERE CMP_CD = '{0}'"; sSQL += " AND BRAND_CD = '{1}'"; sSQL += " AND SALE_DT = '{2}'"; sSQL += " AND STOR_CD = '{3}'"; sSQL += " AND POS_NO = '{4}'"; sSQL += " AND CMM_GRP_CD = '{5}'"; sSQL += " AND CMM_CD = '{6}')"; sSQL += " BEGIN"; sSQL += " INSERT INTO POSLOG.dbo.ETC_BR_POPUP ("; sSQL += " CMP_CD, BRAND_CD, SALE_DT, STOR_CD, POS_NO, CMM_GRP_CD, CMM_CD, START_TM, END_TM, SHOW_MSG1 "; sSQL += " ,SHOW_MSG2, SHOW_MSG3, READ_FLAG, REG_DATE, UPD_DATE "; sSQL += " ) VALUES ( "; sSQL += " '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', '' "; sSQL += " ,'', '','0','{9}','{9}' )"; sSQL += " END "; foreach (DataRow dr in dt.Rows) { sQuery = string.Format(sSQL , m_cPosStatus.Base.CmpCd , m_cPosStatus.Base.BrandCd , sSaleDt , m_cPosStatus.Base.StoreNo , m_cPosStatus.Base.PosNo , dr["CMM_GRP_CD"] , dr["CMM_CD"] , dr["CHAR_VAL_TITLE_VAL_01"] , dr["CHAR_VAL_TITLE_VAL_02"] , DateTime.Now.ToString("yyyyMMddHHmmss")); iRet = m_cSqlDbService.DBExecuteNonQuery(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); } } /// /// BR 팝업 업무 조회 /// public DataTable GetBrPopUpBizMst() { DataTable dt = null; string sSQL = ""; try { //BRK만 처리! if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR) { string sSaleDt = DateTime.Now.ToString("yyyyMMdd"); string sSaleTm = DateTime.Now.ToString("HHmmss"); sSQL = " SELECT * "; sSQL += " FROM POSLOG.dbo.ETC_BR_POPUP"; sSQL += " WHERE CMP_CD = '{0}'"; sSQL += " AND BRAND_CD = '{1}'"; sSQL += " AND SALE_DT = '{2}'"; sSQL += " AND STOR_CD = '{3}'"; sSQL += " AND POS_NO = '{4}'"; sSQL += " AND READ_FLAG = '1'"; sSQL += " AND '{5}' BETWEEN START_TM AND END_TM "; sSQL = string.Format(sSQL , m_cPosStatus.Base.CmpCd , m_cPosStatus.Base.BrandCd , sSaleDt , m_cPosStatus.Base.StoreNo , m_cPosStatus.Base.PosNo , sSaleTm ); int iRet = m_cSqlDbService.DBSelect(sSQL, out dt); if (iRet == 1) return dt; } } 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 bool BrPopupUpdate(DataRow dr) { bool bRet = false; string sSQL = ""; try { sSQL = " UPDATE POSLOG.dbo.ETC_BR_POPUP "; sSQL += " SET READ_FLAG = '2'"; sSQL += " WHERE CMP_CD = '" + dr["CMP_CD"] + "'"; sSQL += " AND BRAND_CD = '" + dr["BRAND_CD"] + "'"; sSQL += " AND SALE_DT = '" + dr["SALE_DT"] + "'"; sSQL += " AND STOR_CD = '" + dr["STOR_CD"] + "'"; sSQL += " AND POS_NO = '" + dr["POS_NO"] + "'"; sSQL += " AND CMM_GRP_CD = '" + dr["CMM_GRP_CD"] + "'"; sSQL += " AND CMM_CD = '" + dr["CMM_CD"] + "'"; m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }); } 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 bRet; } #endregion #region MSR 카드번호 첫자리와 끝자리 체크하여 문자인 경우 스페이스로 치환 /// /// MSR 카드번호 첫자리와 끝자리 체크하여 문자인 경우 스페이스로 치환 /// /// /// /// /// //#20171024 START, PHJ //기존 //public string MSR_CardNoCheck(string sCardNo, string sValidDate, ref string sInputType) //변경 public string MSR_CardNoCheck(string sCardNo, string sValidDate, ref string sInputType, string sPayWayCd = "", string sPayDtlCd = "") //#20171024 END, PHJ { string sRet = ""; string sFirst = CmUtil.MidH(sCardNo, 0, 1); string sLast = CmUtil.MidH(sCardNo, CmUtil.LenH(sCardNo.Trim()) - 1, 1); try { if (sFirst.Contains("^") == true) return ""; else if (sFirst.Contains("%") == true) return ""; sCardNo = sCardNo.Trim(); if (sFirst.Contains(m_cDevStatus.Msr.STX) == true && m_cDevStatus.Msr.STX.Trim() != "") { // 첫자리가 ;, ? 경우 치환 sCardNo = CmUtil.MidH(sCardNo, 1, CmUtil.LenH(sCardNo.Trim())); } else if (CmUtil.IsNumber(sFirst) != true) { // 첫자리가 숫자가 아닌 경우 치환 sCardNo = CmUtil.MidH(sCardNo, 1, CmUtil.LenH(sCardNo.Trim())); } if (sLast.Contains(m_cDevStatus.Msr.ETX) == true && m_cDevStatus.Msr.ETX.Trim() != "") { // 끝자리가 ? 경우 치환 sCardNo = CmUtil.MidH(sCardNo, 0, CmUtil.LenH(sCardNo.Trim()) - 1); } if (sCardNo.IndexOf("=") > 0) { if (sCardNo.Trim().Length >= 37) sCardNo = CmUtil.MidH(sCardNo, 0, 37); if (sInputType != PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF) sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; } else if (sValidDate != null && sValidDate.Trim() != "") { sCardNo = sCardNo + "=" + sValidDate; if (sInputType != PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF) sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; } else { //#20171024 START, PHJ //기존 //if (sInputType != PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF) // sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; //변경 //해피포인트 번호로 현금영수증 시도 할 때 //키인 S로 변경하고, 카드번호의 특수문자 짤라서 리턴해줌. if (sInputType != PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF) { if ((sPayWayCd == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM) && (sPayDtlCd == ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL) && (sCardNo.StartsWith(PosConst.HP_CARD_PRIFIX)) && //(CmUtil.IsNumber(sCardNo.Substring(16, 1))) == false) && (sCardNo.Length >= 16)) { sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP; sCardNo = CmUtil.MidH(sCardNo, 0, 16); } else { sInputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; } } //#20171024 END, PHJ } sRet = sCardNo; } 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; } #endregion #region 거래번호 증가 체크 /// /// 거래번호 증가 체크 /// /// public bool TradeNoAddCheck(string sTranKind) { bool bRet = true; if (sTranKind == "") sTranKind = m_cTrnStatus.Head.TradeKind; try { if (m_cPosStatus.Base.TrainingFlag == "0" && (sTranKind == ItemConst.TRAN_KIND.NORMAL.SALE || sTranKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE || sTranKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_REG || sTranKind == ItemConst.TRAN_KIND.FORIGN.O2O || sTranKind == ItemConst.TRAN_KIND.FORIGN.SHOPPINGMALL || sTranKind == ItemConst.TRAN_KIND.CHARGESALE.GIFT || sTranKind == ItemConst.TRAN_KIND.CHARGESALE.PREPAID || sTranKind == ItemConst.TRAN_KIND.CHARGESALE.REFUND || sTranKind == ItemConst.TRAN_KIND.ETC.LOSS || sTranKind == ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT || //#Rhee, 20180117 미주 픽업 추가 Start // 기존 //sTranKind == ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT)) // 변경 sTranKind == ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT || sTranKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_PICKUP)) { //증가! //17.05.18 dkshin 쇼킹박스 추가 if (m_cTrnStatus.Head.ShockingBoxStat == "0") { //미증가! bRet = false; } else { //증가! } } else { //17.05.18 dkshin 쇼킹박스 추가 //미증가! //bRet = false; if (m_cTrnStatus.Head.ShockingBoxStat == "1") { //증가! } else {//쇼킹박스 전체취소, 쇼킹박스 영수증저장(ETC_SALE_HEADER) //미증가! bRet = false; } } } 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 bRet; } #endregion #region 상품 마스터 조회(선불카드 금액으로 상품 검색) /// /// 상품 마스터 조회(선불카드 금액으로 상품 검색) /// /// /// /// public DataTable SeletItemMst_PrePaidCard_Sale(string sSubStoreNo, double nSaleAmt) { string sQuery = ""; try { // 상품코드로 상품 마스터 조회 sQuery = ""; sQuery += "SELECT TOP 1 * FROM POSMST..MST_ITEM \n"; sQuery += "WHERE \n"; sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += "AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"; sQuery += "AND SUB_STOR_CD = '" + sSubStoreNo + "' \n"; sQuery += "AND '" + m_cPosStatus.Base.SaleDate + "' BETWEEN SALE_START_DT AND SALE_FNSH_DT \n"; sQuery += "AND SALE_PRMT_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; if (PosMstManager.GetPosOption(POS_OPTION.OPT041) == "1") { sQuery += "AND TAKE_OUT_SALE_AMT = " + nSaleAmt + " \n"; } else { sQuery += "AND TAKE_IN_SALE_AMT = " + nSaleAmt + " \n"; } sQuery += "AND ITEM_TYPE = '" + PosConst.ITEM_TYPE.PREPAID + "' \n"; sQuery += "AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'\n"; 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; } #endregion #region 카드사 코드 조회 /// /// 카드사 코드 조회 /// /// /// public DataTable SeletCardCmp(string sCardDiv) { string sQuery = ""; try { // 카드사코드 조회 sQuery += " SELECT \n"; sQuery += " ROW_NUMBER() OVER( ORDER BY CARD_CMP_CD) SEQ \n"; sQuery += " , CMP_CD CMP_CD \n"; sQuery += " , '" + m_cPosStatus.Base.StoreNo + "' STOR_CD \n"; sQuery += " , SALES_ORG_CD BRAND_CD \n"; sQuery += " , ISNULL(CARD_CMP_CD, '') CARD_CMP_CD \n"; sQuery += " , ISNULL(CARD_CMP_NM, '') CARD_CMP_NM \n"; sQuery += " , ISNULL(TERM_DIV, '') TERM_DIV \n"; sQuery += " , ISNULL(GRP_CD, '') GRP_CD \n"; sQuery += " , 'WHITE' BACKGR_COLOR \n"; sQuery += " , '10' FONT_SIZE \n"; sQuery += " , '0' BTN_SIZE \n"; sQuery += " , '' BTN_ITEM_IMG \n"; sQuery += "FROM POSMST..MST_CARD_CMP \n"; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += " AND TERM_DIV = '" + sCardDiv + "' \n"; // 카드사구분 (N:일반, S:샨더, U:은련) sQuery += " AND RTRIM(TERM_RTN_NO) = '' \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; sQuery += " ORDER BY CMP_CD, CARD_CMP_CD \n"; 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; } #endregion //#20170704 중국 단말기 승인 카드사 조회 start #region 카드 매입사 조회 /// /// 카드사 매입사 조회 /// /// /// /// public DataTable SeletCardCmpNm(string sCardDiv, string sBankNo) { string sQuery = ""; try { // 카드사 매입사 조회 sQuery += " SELECT \n"; sQuery += " ROW_NUMBER() OVER( ORDER BY CARD_CMP_CD) SEQ \n"; sQuery += " , CMP_CD CMP_CD \n"; sQuery += " , '" + m_cPosStatus.Base.StoreNo + "' STOR_CD \n"; sQuery += " , SALES_ORG_CD BRAND_CD \n"; sQuery += " , ISNULL(CARD_CMP_CD, '') CARD_CMP_CD \n"; sQuery += " , ISNULL(CARD_CMP_NM, '') CARD_CMP_NM \n"; sQuery += " , ISNULL(TERM_DIV, '') TERM_DIV \n"; sQuery += " , ISNULL(GRP_CD, '') GRP_CD \n"; sQuery += " , 'WHITE' BACKGR_COLOR \n"; sQuery += " , '10' FONT_SIZE \n"; sQuery += " , '0' BTN_SIZE \n"; sQuery += " , '' BTN_ITEM_IMG \n"; sQuery += "FROM POSMST..MST_CARD_CMP \n"; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += " AND TERM_DIV = '" + sCardDiv + "' \n"; // 카드사구분 (N:일반, S:샨더, U:은련) sQuery += " AND TERM_RTN_NO = '" + sBankNo + "' \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; sQuery += " ORDER BY CMP_CD, CARD_CMP_CD \n"; // 쿼리 로그, Rhee //if (m_cPosStatus.Base.CmpCd.ToUpper().Equals("PCCN")) //{ // UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "@@SeletCardCmpNm1=" + sQuery); //} 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; } #endregion //#20170704 중국 단말기 승인 카드사 조회 end //#Rhee,20170830 중국 단말기 승인 카드사 조회2 start #region 카드 매입사 조회2 /// /// 카드사 매입사 조회 /// /// /// /// /// public DataTable SeletCardCmpNm(string sCardDiv, string sBankNo, string sCardType) { string sQuery = ""; try { // 카드사 매입사 조회 sQuery += " SELECT TOP 1 \n"; sQuery += " SEQ, CMP_CD, STOR_CD, BRAND_CD, CARD_CMP_CD, CARD_CMP_NM, TERM_DIV, GRP_CD, BACKGR_COLOR, FONT_SIZE, BTN_SIZE, BTN_ITEM_IMG \n"; sQuery += " FROM ( \n"; sQuery += " SELECT TOP 1 \n"; sQuery += " ROW_NUMBER() OVER( ORDER BY CARD_CMP_CD) SEQ \n"; sQuery += " , CMP_CD CMP_CD \n"; sQuery += " , '" + m_cPosStatus.Base.StoreNo + "' STOR_CD \n"; sQuery += " , SALES_ORG_CD BRAND_CD \n"; sQuery += " , ISNULL(CARD_CMP_CD, '') CARD_CMP_CD \n"; sQuery += " , ISNULL(CARD_CMP_NM, '') CARD_CMP_NM \n"; sQuery += " , ISNULL(TERM_DIV, '') TERM_DIV \n"; sQuery += " , ISNULL(GRP_CD, '') GRP_CD \n"; sQuery += " , 'WHITE' BACKGR_COLOR \n"; sQuery += " , '10' FONT_SIZE \n"; sQuery += " , '0' BTN_SIZE \n"; sQuery += " , '' BTN_ITEM_IMG \n"; sQuery += " , 'A' TMPSORT \n"; sQuery += "FROM POSMST..MST_CARD_CMP WITH(NOLOCK) \n"; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += " AND TERM_DIV = '" + sCardDiv + "' \n"; // 카드사구분 (N:일반, S:샨더, U:은련) sQuery += " AND TERM_RTN_NO = '" + sBankNo + "' \n"; sQuery += " AND TERM_RTN_NO <> '' \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; sQuery += " UNION \n"; sQuery += " SELECT TOP 1 \n"; sQuery += " ROW_NUMBER() OVER( ORDER BY CARD_CMP_CD) SEQ \n"; sQuery += " , CMP_CD CMP_CD \n"; sQuery += " , '" + m_cPosStatus.Base.StoreNo + "' STOR_CD \n"; sQuery += " , SALES_ORG_CD BRAND_CD \n"; sQuery += " , ISNULL(CARD_CMP_CD, '') CARD_CMP_CD \n"; sQuery += " , ISNULL(CARD_CMP_NM, '') CARD_CMP_NM \n"; sQuery += " , ISNULL(TERM_DIV, '') TERM_DIV \n"; sQuery += " , ISNULL(GRP_CD, '') GRP_CD \n"; sQuery += " , 'WHITE' BACKGR_COLOR \n"; sQuery += " , '10' FONT_SIZE \n"; sQuery += " , '0' BTN_SIZE \n"; sQuery += " , '' BTN_ITEM_IMG \n"; sQuery += " , 'B' TMPSORT \n"; sQuery += "FROM POSMST..MST_CARD_CMP WITH(NOLOCK) \n"; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"; sQuery += " AND TERM_DIV = '" + sCardDiv + "' \n"; // 카드사구분 (N:일반, S:샨더, U:은련) sQuery += " AND GRP_CD = '" + sCardType + "' \n"; sQuery += " AND GRP_CD <> '' \n"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"; sQuery += " ) AA ORDER BY TMPSORT, SEQ \n"; // 쿼리 로그, Rhee if (m_cPosStatus.Base.CmpCd.ToUpper().Equals("PCCN")) { UserLog.WriteLogFile(UserCom.LOG_OP, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "@@SeletCardCmpNm2=" + sQuery); } 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; } #endregion //#Rhee,20170830 중국 단말기 승인 카드사 조회2 start //2017-06-02 dkshin 해피앱 추후적립 public string ExecutePosHPAPPIrt(string sMsgType, string sSvrIP, int nSvrPort, int nTimeout, Hashtable htSendData, ref Hashtable htRecvData) { string sRet = UserCom.RST_ERR; try { string sCommHead = ItemColumn.MakeCommHeader(0, sMsgType); // 통신해더 생성 string sSysYmd = DateTime.Now.ToString("yyyyMMdd"); string sSysHms = DateTime.Now.ToString("HHmmss"); //string sCommHeader = this.MakeCommHeader(htSendData.Count, sMsgType, PosConst.ENCRYPT_MODE.ENC_ON, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.BrandCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.SaleDate, m_cPosStatus.Base.PosNo, m_cPosStatus.Base.TradeNo, sSysYmd, sSysHms); //if (bVisibleMode == false) { // 팝업 화면 미표시 m_bIRTComplete = true; m_htRecvData = null; Thread thrSecondDisp = new Thread(() => sRet = OnNetworkIRT(sSvrIP, nSvrPort, nTimeout, sCommHead, htSendData)); thrSecondDisp.Start(); while (m_bIRTComplete == true) { Thread.Sleep(100); } } } 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; } //#2017/08/10 중국 선불카드 MST_ITEM 생성 start #region 선불카드 MST_ITEM 생성 /// /// 선불카드 MST_ITEM 생성 /// /// Rhee, 2017/08/10 public void PrecardSaveToMstItem() { string sSQL = string.Empty; try { sSQL = " DELETE FROM POSMST.dbo.MST_ITEM WHERE 1=1 "; sSQL += " AND CMP_CD ='" + m_cPosStatus.Base.CmpCd + "'"; sSQL += " AND STOR_CD ='" + m_cPosStatus.Base.StoreNo + "'"; sSQL += " AND ITEM_TYPE ='13'"; sSQL += " AND LEN(item_cd) = 2 ;"; sSQL += " UPDATE POSMST.dbo.MST_ITEM SET use_yn = '0' WHERE 1=1"; sSQL += " AND CMP_CD ='" + m_cPosStatus.Base.CmpCd + "'"; sSQL += " AND STOR_CD ='" + m_cPosStatus.Base.StoreNo + "'"; sSQL += " AND ITEM_TYPE ='13'"; sSQL += " AND USE_YN = '1' ;"; sSQL += " INSERT INTO POSMST.dbo.MST_ITEM ( "; sSQL += " CMP_CD"; sSQL += " , STOR_CD"; sSQL += " , SUB_STOR_CD"; sSQL += " , ITEM_CD"; sSQL += " , L_CLSS"; sSQL += " , M_CLSS"; sSQL += " , S_CLSS"; sSQL += " , FLAVOUR_DIV"; sSQL += " , FLAVOUR_QTY"; sSQL += " , FLAVOUR_STOCK"; sSQL += " , SHTCUT_ITEMNM"; sSQL += " , ITEM_NM"; sSQL += " , TAKE_IN_SALE_AMT"; sSQL += " , TAKE_OUT_SALE_AMT"; sSQL += " , IF_MENU1"; sSQL += " , IF_MENU2"; sSQL += " , OPEN_ITEM_DIV"; sSQL += " , DISPO_ITEM_DIV"; sSQL += " , SUB_SET_MNG_TYPE"; sSQL += " , ITEM_TAX_AMT_DIV"; sSQL += " , TAKE_IN_VAT_CD"; sSQL += " , TAKE_OUT_VAT_CD"; sSQL += " , ITEM_COST"; sSQL += " , SALE_PRMT_YN"; sSQL += " , SALE_NOQ"; sSQL += " , FREE_GIFT_YN"; sSQL += " , DC_PRMT_YN"; sSQL += " , ACCUM_PRMT_YN"; sSQL += " , SVC_FEE_TRGT_YN"; sSQL += " , BTN_ITEM_IMG"; sSQL += " , NEW_ITEM_START_DT"; sSQL += " , NEW_ITEM_FNSH_DT"; sSQL += " , ITEM_TYPE"; sSQL += " , TIME_BAR_CD_YN"; sSQL += " , DISTBT_EXPIRE_NOD"; sSQL += " , ALCOHOL_ITEM_TYPE"; sSQL += " , SALE_START_DT"; sSQL += " , SALE_FNSH_DT"; sSQL += " , COOP_CARD_DC_NOADM_YN"; sSQL += " , CAKE_EXCHNG_CPN_USE_POSS_YN"; sSQL += " , ITEM_INFO"; sSQL += " , CALORY_INFO"; sSQL += " , SALE_IMG_FILE_NM"; sSQL += " , FILLER1"; sSQL += " , FILLER2"; sSQL += " , FILLER3"; sSQL += " , FILLER4"; sSQL += " , FILLER5"; sSQL += " , USE_YN"; sSQL += " , UPD_DT"; sSQL += " , REG_DT )"; sSQL += " SELECT "; sSQL += " CMP_CD"; sSQL += " , STOR_CD"; sSQL += " , STOR_CD AS SUB_STOR_CD"; sSQL += " , PRECARD_ID AS ITEM_CD"; sSQL += " , '410000' AS L_CLSS"; sSQL += " , '411800' AS M_CLSS"; sSQL += " , '411801' AS S_CLSS"; sSQL += " , '0' AS FLAVOUR_DIV"; sSQL += " , 0 AS FLAVOUR_QTY"; sSQL += " , 0 AS FLAVOUR_STOCK"; sSQL += " , PRECARD_SHORT_NM AS SHTCUT_ITEMNM"; sSQL += " , PRECARD_SHORT_NM AS ITEM_NM"; sSQL += " , PRECARD_AMT AS TAKE_IN_SALE_AMT"; sSQL += " , PRECARD_AMT AS TAKE_OUT_SALE_AMT"; sSQL += " , '' AS IF_MENU1"; sSQL += " , '' AS IF_MENU2"; sSQL += " , '0' AS OPEN_ITEM_DIV"; sSQL += " , '0' AS DISPO_ITEM_DIV"; sSQL += " , '0' AS SUB_SET_MNG_TYPE"; sSQL += " , '1' AS ITEM_TAX_AMT_DIV"; sSQL += " , 'E' AS TAKE_IN_VAT_CD"; sSQL += " , 'E' AS TAKE_OUT_VAT_CD"; sSQL += " , '0' AS ITEM_COST"; sSQL += " , '1' AS SALE_PRMT_YN"; sSQL += " , '1' AS SALE_NOQ"; sSQL += " , '0' AS FREE_GIFT_YN"; sSQL += " , '0' AS DC_PRMT_YN"; sSQL += " , '1' AS ACCUM_PRMT_YN"; sSQL += " , '0' AS SVC_FEE_TRGT_YN"; sSQL += " , '' AS BTN_ITEM_IMG"; sSQL += " , '' AS NEW_ITEM_START_DT"; sSQL += " , '' AS NEW_ITEM_FNSH_DT"; sSQL += " , '13' AS ITEM_TYPE"; sSQL += " , '0' AS TIME_BAR_CD_YN"; sSQL += " , '0' AS DISTBT_EXPIRE_NOD"; sSQL += " , '0' AS ALCOHOL_ITEM_TYPE"; sSQL += " , '20000101' AS SALE_START_DT"; sSQL += " , '99991231' AS SALE_FNSH_DT"; sSQL += " , '0' AS COOP_CARD_DC_NOADM_YN"; sSQL += " , '0' AS CAKE_EXCHNG_CPN_USE_POSS_YN"; sSQL += " , '' AS ITEM_INFO"; sSQL += " , '' AS CALORY_INFO"; sSQL += " , '' AS SALE_IMG_FILE_NM"; sSQL += " , '' AS FILLER1"; sSQL += " , '' AS FILLER2"; sSQL += " , '' AS FILLER3"; sSQL += " , '' AS FILLER4"; sSQL += " , '' AS FILLER5"; sSQL += " , '1' AS USE_YN"; sSQL += " , CONVERT(CHAR(8), getdate(), 112)+'000000' AS UPD_DT"; sSQL += " , CONVERT(CHAR(8), getdate(), 112)+'000000' REG_DT"; sSQL += " FROM POSMST.dbo.MST_PRECARD WHERE 1=1"; sSQL += " AND CMP_CD ='" + m_cPosStatus.Base.CmpCd + "'"; sSQL += " AND STOR_CD ='" + m_cPosStatus.Base.StoreNo + "'"; sSQL += " AND USE_YN = '1' ;"; if (sSQL != "") { m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }); } } 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 //#2017/08/10 중국 선불카드 MST_ITEM 생성 end //#20170906 T페이 고도화 작업 phj, start #region T페이 프리픽스 체크 /* public DataTable TpayPrefixCheck(string sCardNo) { string sQuery = ""; try { sQuery += "SELECT * "; sQuery += " FROM MST_CARD_PREFIX "; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND SUBSTRING(PRFX_CD,1,3) = '" + sCardNo.Substring(0, 3) + "'"; sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; 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; } */ #endregion //#20170906 T페이 고도화 작업 phj, end //#20171120 유통기한 바코드 인식률 start, phj #region 유통기한 바코드 인식률 public void BarCodeSuccessRate(string sBarcodeNo, string sSuccessYN) { DataTable dtSeqCnt = null; DataRow drSeqCnt = null; string sQuery = ""; string sQry = ""; int iSeq = 0; try { //grayber@20171207 BR N코드에 대하여 유통기한 바코드 인식률 대한 무시 처리 //grayber@20171208 BR N코드에 대하여 조건 추가 start : BR, sBarcodeNo 길이 6 if (sBarcodeNo.Length == 6 && sBarcodeNo.StartsWith("N") == true && m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) == true) { return; } //grayber@20171208 BR N코드에 대하여 조건 추가 end //grayber@20171207 BR N코드에 대하여 유통기한 바코드 인식률 대한 무시 처리 // seq 구하기. sQuery = ""; sQuery += " SELECT ISNULL(MAX(SEQ) + 1,0) AS SEQ "; sQuery += " FROM POSLOG..TR_BAR_SUCESS_RATE"; sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQuery += " AND SALE_DT = '" + m_cPosStatus.Base.SaleDate + "'"; sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.SubShopNo + "'"; sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'"; sQuery += " AND REG_NO = '" + m_cPosStatus.Base.TradeNo + "'"; //dtSeqCnt = m_cSqlDbService.DBSelect(new string[] { sQuery }); m_cSqlDbService.DBSelect(sQuery, out dtSeqCnt); if (dtSeqCnt != null && dtSeqCnt.Rows.Count > 0) { drSeqCnt = dtSeqCnt.Rows[0]; iSeq = Convert.ToInt32(CmUtil.GetDataRowStr(drSeqCnt, "SEQ")); } // update 하기. sQuery = ""; sQuery += " INSERT INTO POSLOG..TR_BAR_SUCESS_RATE(CMP_CD,SALE_DT,STOR_CD,POS_NO,REG_NO,SEQ,BAR_CD,SUCESS_YN, SEND_YN, UPD_DATE, REG_DATE) "; sQuery += " VALUES('{0}'"; sQuery += " ,'{1}'"; sQuery += " ,'{2}'"; sQuery += " ,'{3}'"; sQuery += " ,'{4}'"; sQuery += " , {5}"; sQuery += " ,'{6}'"; sQuery += " ,'{7}'"; sQuery += " ,'{8}'"; sQuery += " ,'{9}'"; sQuery += " ,'{10}')"; sQry = string.Format(sQuery , m_cPosStatus.Base.CmpCd , m_cPosStatus.Base.SaleDate , m_cPosStatus.Base.SubShopNo , m_cPosStatus.Base.PosNo , m_cPosStatus.Base.TradeNo , iSeq.ToString() , sBarcodeNo , sSuccessYN , "0" , "" , DateTime.Now.ToString("yyyyMMddHHmmss")); m_cSqlDbService.DBExecuteNonQuery(new string[] { sQry }); } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "BarCodeSuccessRate Insert Error (" + sBarcodeNo + " / " + sSuccessYN + ")", ex.Message); } } #endregion 유통기한 바코드 인식률 //#20171120 유통기한 바코드 인식률 end, phj //#20171116 온라인 쿠폰 제품군코드,상품코드 존재 시 할인 대상이 변경되도록 추가 start, phj #region 온라인 쿠폰 조회 응답 전문의 제품군 기준 - 제품 리스트 검색 /// /// 온라인 쿠폰 조회 응답 전문의 제품군의 상품 정보를 한다. /// public DataTable CpnItemDCTargetList(string CpnItemDcCode) { try { string sQry = string.Empty; //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 start //기존 //sQry = " SELECT A.CMP_CD, A.ITEM_GRP_CD, B.ITEM_CD "; //변경 sQry = " SELECT A.CMP_CD, A.ITEM_GRP_CD, B.ITEM_CD, A.GUBUN "; //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 end sQry += " FROM POSMST..MST_CPN_ITEM_GRP_MNG A INNER JOIN POSMST..MST_CPN_ITEM_GRP_MNG_DTL B "; sQry += " ON (A.CMP_CD = B.CMP_CD AND A.ITEM_GRP_CD = B.ITEM_GRP_CD AND A.USE_YN = B.USE_YN) "; sQry += " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQry += " AND A.ITEM_GRP_CD = '" + CpnItemDcCode + "'"; sQry += " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; sQry = sQry.Replace("\t", " "); return m_cMstService.Select(new string[] { sQry }); } 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; } #endregion //#20171116 온라인 쿠폰 제품군코드,상품코드 존재 시 할인 대상이 변경되도록 추가 end, phj //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 start #region 불필요 ////#20171116 온라인 쿠폰 제품군코드,상품코드 존재 시 할인 대상이 변경되도록 추가 start, phj //#region 온라인 쿠폰 조회 응답 전문의 코드가 제품군인지 상품코드인지 체크. ///// ///// 온라인 쿠폰 조회 응답 전문의 코드가 제품군인지 상품코드인지 체크. ///// MST_CPN_ITEM_GRP_MNG에 존재 시 제품군 코드이고 아니면 상품코드로 판단한다. ///// MST_ITEM에서 상품코드인지 조회하지 않는 이유는 등록 상품에 존재한다면 당연히 MST_ITEM에도 데이터가 존재하기 때문이다. ///// ////public int CpnItemDCTargetCheck(string CpnItemDcCode, ref DataTable CpnItemDt) //public int CpnItemDCTargetCheck(string CpnItemDcCode) //{ // int iRst = 0; // string sQry = string.Empty; // //string sSubQry = string.Empty; // // DataTable dtItemGroup = null; // //DataTable dtItemCd = null; // // try // { // /* // sQry = " SELECT * "; // sQry += " FROM POSMST..MST_CPN_ITEM_GRP_MNG A INNER JOIN POSMST..MST_CPN_ITEM_GRP_MNG_DTL B "; // sQry += " ON (A.CMP_CD = B.CMP_CD AND A.ITEM_GRP_CD = B.ITEM_GRP_CD AND A.USE_YN = B.USE_YN) "; // sQry += " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; // sQry += " AND A.ITEM_GRP_CD = '" + CpnItemDcCode + "'"; // sQry += " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; // */ // // sQry = " SELECT * "; // sQry += " FROM POSMST..MST_CPN_ITEM_GRP_MNG"; // sQry += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; // sQry += " AND ITEM_GRP_CD = '" + CpnItemDcCode + "'"; // sQry += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; // // m_cSqlDbService.DBSelect(sQry, out dtItemGroup); // // if (dtItemGroup != null && dtItemGroup.Rows.Count > 0) // { // //CpnItemDcCode는 제품군이다. // //CpnItemDt = dtItemGroup; // iRst = 1; // // } // else // { // /* // sSubQry = " SELECT TOP 1 ITEM_CD "; // sSubQry += " FROM MST_ITEM "; // sSubQry += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; // sSubQry += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; // sSubQry += " AND SUB_STOR_CD = '" + m_cPosStatus.Base.SubShopNo + "'"; // sSubQry += " AND ITEM_CD = '" + CpnItemDcCode + "'"; // sSubQry += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; // // m_cSqlDbService.DBSelect(sSubQry, out dtItemCd); // // if (dtItemCd != null && dtItemCd.Rows.Count > 0) // { // //CpnItemDcCode는 상품코드다. // CpnItemDt = dtItemCd; // iRst = 2; // } // */ // // //CpnItemDt = null; // iRst = 2; // } // // UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // "CpnItemDCTargetCheck : " + iRst.ToString()); // // return iRst; // } // catch (Exception ex) // { // WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // "CpnItemDCTargetCheck Error : " + ex.Message); // // //CpnItemDt = null; // return -99; // } //} //#endregion ////#20171116 온라인 쿠폰 제품군코드,상품코드 존재 시 할인 대상이 변경되도록 추가 end, phj #endregion //#20180502 온라인쿠폰 제품군, 상품코드 할인 적용 기능 적용 end //#13341 신용카드 할부 개월 수 제한 기능 적용 start, phj #region 공통코드 조회하기 public string MstCmmSearch(string pGrpCode, string pCode) { string sQry = string.Empty; string sResult = string.Empty; DataTable dtMstCmm = null; try { sQry = " SELECT ENTRY_NM "; sQry += " FROM POSMST..MST_CMM"; sQry += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; if (pGrpCode != "") { sQry += " AND cmm_grp_cd = '" + pGrpCode + "'"; } if (pCode != "") { sQry += " AND cmm_cd = '" + pCode + "'"; } sQry += " AND use_yn = '" + PosConst.MST_USE_YN.YES + "'"; m_cSqlDbService.DBSelect(sQry, out dtMstCmm); if (dtMstCmm != null && dtMstCmm.Rows.Count > 0) { foreach (DataRow dr in dtMstCmm.Rows) { sResult = CmUtil.GetDataRowStr(dr, "ENTRY_NM"); } } return sResult; } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "MstCmmSearch Error : " + ex.Message); return sResult; } } #endregion //#13341 신용카드 할부 개월 수 제한 기능 적용 end, phj //#20180322 휴게소pos매출연동 start,phj #region 도로공사 매출 연동 //public string SaveRoadJson(string sType, string sFilePath, string sData) //{ // string sRet = UserCom.RST_ERR; // //string sPath = string.Empty; // // try // { // // 해당 경로에 해당 하는 폴더가 없으면 만들어 줌 // if (Directory.Exists(sFilePath) == false) // { // //DirectoryInfo di = new DirectoryInfo(sFilePath); // //if (!di.Exists) // //{ // // di.Create(); // //} // Directory.CreateDirectory(sFilePath); // } // // /* // switch (sType) // { // case ItemConst.ROAD_SAVE_TYPE.SALE: // sPath = m_cPosStatus.RestAreaPos.RestAreaPosDir; //m_cPosStatus.Mst.ETC_IF_FTP_PATH; // break; // case ItemConst.ROAD_SAVE_TYPE.CLOSING: // sPath = m_cPosStatus.RestAreaPos.RestAreaPosDir; //m_cPosStatus.Mst.ETC_IF_FTP_PATH; // break; // default: // sPath = m_cPosStatus.RestAreaPos.RestAreaPosDir; //m_cPosStatus.Mst.ETC_IF_FTP_PATH; // break; // } // */ // // if (ItemConst.ROAD_SAVE_TYPE.SALE.Equals(sType) || ItemConst.ROAD_SAVE_TYPE.CLOSING.Equals(sType)) // { // sRet = m_cNetJSONService.SaveJsonFile(sType, sFilePath, sData); // } // } // catch (Exception ex) // { // UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // string.Format("{0}", ex.ToString())); // } // // return sRet; //} public string HashToJsonString(Hashtable htData, ref string sJsonData) { return m_cNetJSONService.HashToJsonString(htData, ref sJsonData); } #endregion //#20180322 휴게소pos매출연동 end,phj //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180528 //쿠폰 발송 횟수 제한 기능 #region 쿠폰 발송 횟수 조회 public string CpnSendCntSearch() { string sQry = string.Empty; string sResult = "0"; DataTable dtCpnSendCnt = null; try { sQry = " SELECT SUM(A.CPN_SEND_CNT) AS CPN_SEND_CNT "; sQry += " FROM ( "; sQry += " SELECT COUNT(*) CPN_SEND_CNT "; sQry += " FROM POSLOG..TR_SALE_ETC "; sQry += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQry += " AND SALE_DT = '" + m_cPosStatus.Base.SaleDate + "'"; sQry += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQry += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'"; sQry += " AND ETC_WAY_CD = '80' "; sQry += " AND ETC_DTL_CD_01 = '09' "; sQry += " AND CANCEL_DIV = '0' "; sQry += " UNION ALL "; sQry += " SELECT COUNT(*) CPN_SEND_CNT "; sQry += " FROM POSLOG..ETC_SALE_ETC "; sQry += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sQry += " AND SALE_DT = '" + m_cPosStatus.Base.SaleDate + "'"; sQry += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'"; sQry += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'"; sQry += " AND ETC_WAY_CD = '80' "; sQry += " AND ETC_DTL_CD_01 = '09' "; sQry += " AND CANCEL_DIV = '0' "; sQry += " ) AS A "; m_cSqlDbService.DBSelect(sQry, out dtCpnSendCnt); if (dtCpnSendCnt != null && dtCpnSendCnt.Rows.Count > 0) { foreach (DataRow dr in dtCpnSendCnt.Rows) { sResult = CmUtil.GetDataRowStr(dr, "CPN_SEND_CNT"); } } return sResult; } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "CpnSendCntSearch Error : " + ex.Message); return sResult; } } #endregion //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180528 //#15897 요청)점포생산제품 바코드 출력기능 수정요청 start #region 바코드 라벨 프린터 관련 수정 private string LabelBarCodeCheck(string bdate) { string sRet = string.Empty; string sumEndstr = string.Empty; int sum, i, sumLen = 0; int[] num = { 1, 3, 9 }; int[] dnum = new int[9]; try { if (bdate == "") return sRet; dnum[0] = int.Parse(CmUtil.MidH(bdate, 0, 1)) * num[0]; dnum[1] = int.Parse(CmUtil.MidH(bdate, 1, 1)) * num[1]; dnum[2] = int.Parse(CmUtil.MidH(bdate, 2, 1)) * num[2]; dnum[3] = int.Parse(CmUtil.MidH(bdate, 3, 1)) * num[0]; dnum[4] = int.Parse(CmUtil.MidH(bdate, 4, 1)) * num[1]; dnum[5] = int.Parse(CmUtil.MidH(bdate, 5, 1)) * num[2]; dnum[6] = int.Parse(CmUtil.MidH(bdate, 6, 1)) * num[0]; dnum[7] = int.Parse(CmUtil.MidH(bdate, 7, 1)) * num[1]; dnum[8] = int.Parse(CmUtil.MidH(bdate, 8, 1)) * num[2]; sum = 0; for (i = 0; i <= 8; i++) { sum = sum + dnum[i]; } sumEndstr = sum.ToString(); sumLen = sumEndstr.Length; sumEndstr = sumEndstr.Substring(sumLen - 1, 1); sRet = sumEndstr; } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "LabelBarCodeCheck Error : " + ex.Message); } return sRet; } #endregion 바코드 라벨 프린터 관련 수정 //#15897 요청)점포생산제품 바코드 출력기능 수정요청 end //#20180821 해피포인트 고객이름 마스킹 start public string NameMasking(string sName) { string sRet = ""; try { if (sName.IndexOf("*") <= 0) { sRet = sName.Substring(0, 1) + "*" + sName.Substring(2, sName.Length - 2); } else { sRet = sName; } } catch (Exception ex) { WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "NameMasking Error [" + sName + "] : " + ex.Message); } return sRet; } //#20180821 해피포인트 고객이름 마스킹 end //#16577 결제창 내부 봉투 추가 기능 도입 start, 20180920 #region 공통코드 봉투상품 조회(T0042) /// /// 공통코드 봉투상품 조회(T0042) /// /// public DataTable ChkAddBagMstCmm() { string sSql = ""; try { sSql = ""; sSql += " SELECT * "; sSql += " FROM POSMST..MST_CMM "; sSql += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'"; sSql += " AND CMM_GRP_CD = 'T0042'"; sSql += " AND SALES_ORG_CD = '" + m_cPosStatus.Base.BrandCd + "'"; sSql += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'"; DataTable dtDataInfo = m_cMstService.Select(new string[] { sSql }); return dtDataInfo; } 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; } #endregion 공통코드 봉투상품 조회(T0042) //#16577 결제창 내부 봉투 추가 기능 도입 end, 20180920 //#20181016 메모리 사용량 로그남기기 start #region PC 메모리 로그 /// /// PC 메모리 로그 /// /// public void MemoryCheckLog() { try { // 프로세스 이름 string sProcessName = System.Diagnostics.Process.GetCurrentProcess().ProcessName; // 총 메모리 양 //#20181016 메모리 사용량 로그남기기 start, 20181029 //가상메모리 제거 //long tot_Virtualmem64 = 0;// 연결된 프로세스에 할당된 가상 메모리의 양 //int tot_Virtualmem32 = 0;// 연결된 프로세스에 할당된 가상 메모리의 양 //#20181016 메모리 사용량 로그남기기 end, 20181029 float tot_real_mem64 = 0;// 연결된 프로세스의 실제 메모리 사용량 float tot_real_mem32 = 0;// 연결된 프로세스의 실제 메모리 사용량 // 판매포스 총 메모리 양 //#20181016 메모리 사용량 로그남기기 start, 20181029 //가상메모리 제거 //long pos_Virtualmem64 = 0;// 연결된 프로세스에 할당된 가상 메모리의 양 //int pos_Virtualmem32 = 0;// 연결된 프로세스에 할당된 가상 메모리의 양 //#20181016 메모리 사용량 로그남기기 end, 20181029 float pos_real_mem64 = 0;// 연결된 프로세스의 실제 메모리 사용량 float pos_real_mem32 = 0;// 연결된 프로세스의 실제 메모리 사용량 System.Diagnostics.Process[] allPro = System.Diagnostics.Process.GetProcesses(); foreach (System.Diagnostics.Process pro in allPro) { // 연결된 프로세스에 할당된 가상 메모리 양 //#20181016 메모리 사용량 로그남기기 start, 20181029 //가상메모리 제거 //tot_Virtualmem64 += pro.VirtualMemorySize64; //tot_Virtualmem32 += pro.VirtualMemorySize; //#20181016 메모리 사용량 로그남기기 end, 20181029 // 연결된 프로세스의 실제 가상 메모리 사용량 tot_real_mem64 += pro.WorkingSet64; tot_real_mem32 += pro.WorkingSet; // 포스에서 사용중인 메모리 if (sProcessName == pro.ProcessName) { // 연결된 프로세스에 할당된 메모리 양 //#20181016 메모리 사용량 로그남기기 start, 20181029 //가상메모리 제거 //pos_Virtualmem64 += pro.VirtualMemorySize64; //pos_Virtualmem32 += pro.VirtualMemorySize; //#20181016 메모리 사용량 로그남기기 end, 20181029 // 연결된 프로세스의 실제 메모리 사용량 pos_real_mem64 += pro.WorkingSet64; pos_real_mem32 += pro.WorkingSet; } } //#20181016 메모리 사용량 로그남기기 start, 20181029 //가상메모리 제거 tot_real_mem64 = ((float)(tot_real_mem64) / (float)(1024)) / (float)(1024); tot_real_mem32 = ((float)(tot_real_mem32) / (float)(1024)) / (float)(1024); pos_real_mem64 = ((float)(pos_real_mem64) / (float)(1024)) / (float)(1024); pos_real_mem32 = ((float)(pos_real_mem32) / (float)(1024)) / (float)(1024); //#20181016 메모리 사용량 로그남기기 end, 20181029 // 사용 가능한 메모리 (MB) // Available MBytes는 컴퓨터에서 실행되는 프로세스에 할당하거나 시스템에서 사용할 수 있는 실제 메모리의 양(메가바이트)입니다. // 이것은 대기 중이거나 비어 있거나 0으로 채워진 페이지 목록에 할당된 메모리의 총계입니다. float Available_mem = 0; System.Diagnostics.PerformanceCounter Memory_Available_MBytes = new System.Diagnostics.PerformanceCounter("Memory", "Available MBytes", null); Available_mem = (float)Memory_Available_MBytes.NextValue(); /// 1024; Memory_Available_MBytes.Close(); Memory_Available_MBytes.Dispose(); // PosMain.vshost 사용 중 메모리 (MB) // Working Set - Private는 다른 프로세서가 공유하거나 공유할 수 있는 작업 집합이 아니라 이 프로세서만 사용하고 있는 작업 집합의 크기(바이트)입니다. float pos_use_mem = 0; // byte System.Diagnostics.Process proc = System.Diagnostics.Process.GetCurrentProcess(); System.Diagnostics.PerformanceCounter PC = new System.Diagnostics.PerformanceCounter(); PC.CategoryName = "Process"; PC.CounterName = "Working Set - Private"; PC.InstanceName = proc.ProcessName; pos_use_mem = ((float)(PC.NextValue()) / (float)(1024)) / (float)(1024); PC.Close(); PC.Dispose(); UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", //#20181016 메모리 사용량 로그남기기 start, 20181029 //가상메모리 제거 //"▷ 연결된 프로세스에 할당된 가상 메모리의 양 (64) :" + tot_Virtualmem64 + " Mbytes" + //"▷ 연결된 프로세스에 할당된 가상 메모리의 양 (32) :" + tot_Virtualmem32 + " Mbytes" + //#20181016 메모리 사용량 로그남기기 end, 20181029 "▷ 연결된 프로세스의 실제 메모리 사용량 (64) :" + tot_real_mem64 + " Mbytes" + "▷ 연결된 프로세스의 실제 메모리 사용량 (32) :" + tot_real_mem32 + " Mbytes"); UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", //#20181016 메모리 사용량 로그남기기 start, 20181029 //가상메모리 제거 //"▷ 판매POS 연결된 프로세스에 할당된 가상 메모리의 양 (64) :" + pos_Virtualmem64 + " Mbytes" + //"▷ 판매POS 연결된 프로세스에 할당된 가상 메모리의 양 (32) :" + pos_Virtualmem32 + " Mbytes" + //#20181016 메모리 사용량 로그남기기 end, 20181029 "▷ 판매POS 연결된 프로세스의 실제 메모리 사용량 (64) :" + pos_real_mem64 + " Mbytes" + "▷ 판매POS 연결된 프로세스의 실제 메모리 사용량 (32) :" + pos_real_mem32 + " Mbytes"); UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "▷ 실제 사용 가능한 메모리 : " + Available_mem + " Mbytes" + "▷ PosMain.vshost 사용 중 메모리 : " + pos_use_mem + " Mbytes"); #region 참고!!! /* PerformanceCounter Memory_Available_MBytes = new PerformanceCounter("Memory", "Available MBytes", null); float iMemory_Available_MBytes = (float)Memory_Available_MBytes.NextValue(); PerformanceCounter Memory_Commit_Limit = new PerformanceCounter("Memory", "Commit Limit", null); float iMemory_Commit_Limit = (float)Memory_Commit_Limit.NextValue(); PerformanceCounter Memory_Committed_Bytes = new PerformanceCounter("Memory", "Committed Bytes", null); float iMemory_Committed_Bytes = (float)Memory_Committed_Bytes.NextValue(); PerformanceCounter Committed_Bytes_In_Use = new PerformanceCounter("Memory", "% Committed Bytes In Use", null); float iCommitted_Bytes_In_Use = (float)Committed_Bytes_In_Use.NextValue(); PerformanceCounter Memory_Pool_Paged_Bytes = new PerformanceCounter("Memory", "Pool Paged Bytes", null); float iMemory_Pool_Paged_Bytes = (float)Memory_Pool_Paged_Bytes.NextValue(); PerformanceCounter Memory_Pool_Nonpaged_Bytes = new PerformanceCounter("Memory", "Pool Nonpaged Bytes", null); float iMemory_Pool_Nonpaged_Bytes = (float)Memory_Pool_Nonpaged_Bytes.NextValue(); PerformanceCounter Memory_Cache_Bytes = new PerformanceCounter("Memory", "Cache Bytes", null); float iMemory_Cache_Bytes = (float)Memory_Cache_Bytes.NextValue(); PerformanceCounter Process_HandleCnt = new PerformanceCounter("Process", "Handle Count", "_Total"); float iProcess_HandleCnt = (float)Process_HandleCnt.NextValue(); PerformanceCounter Process_ThreadCnt = new PerformanceCounter("Process", "Thread Count", "_Total"); float iProcess_ThreadCnt = (float)Process_ThreadCnt.NextValue(); PerformanceCounter Working_Set = new PerformanceCounter("Process", "Working Set", sProcessName); float iWorking_Set = (float)Working_Set.NextValue(); PerformanceCounter Process_ProcessorTime = new PerformanceCounter("Process", "% Processor Time", sProcessName, true); float iProcess_ProcessorTime = (float)Process_ProcessorTime.NextValue(); PerformanceCounter Processor_Processor_Time = new PerformanceCounter("Processor", "% Processor Time", "_Total"); float iProcessor_Processor_Time = (float)Processor_Processor_Time.NextValue(); PerformanceCounter Processor_Privileged_Time = new PerformanceCounter("Processor", "% Privileged Time", "_Total"); float iProcessor_Privileged_Time = (float)Processor_Privileged_Time.NextValue(); PerformanceCounter Processor_Interrupt_Time = new PerformanceCounter("Processor", "% Interrupt Time", "_Total"); float iProcessor_Interrupt_Time = (float)Processor_Interrupt_Time.NextValue(); PerformanceCounter Processor_DPC_Time = new PerformanceCounter("Processor", "% DPC Time", "_Total"); float iProcessor_DPC_Time = (float)Processor_DPC_Time.NextValue(); PerformanceCounter PhysicalDisk_AvgQueueLength = new PerformanceCounter("PhysicalDisk", "Avg. Disk Queue Length", "_Total"); float iPhysicalDisk_AvgQueueLength = (float)PhysicalDisk_AvgQueueLength.NextValue(); PerformanceCounter PhysicalDisk_Disk_Read = new PerformanceCounter("PhysicalDisk", "Disk Read Bytes/sec", "_Total"); float iPhysicalDisk_Disk_Read = (float)PhysicalDisk_Disk_Read.NextValue(); PerformanceCounter PhysicalDisk_Disk_Write = new PerformanceCounter("PhysicalDisk", "Disk Write Bytes/sec", "_Total"); float iPhysicalDisk_Disk_Write = (float)PhysicalDisk_Disk_Write.NextValue(); PerformanceCounter PhysicalDisk_AvgRead_sec = new PerformanceCounter("PhysicalDisk", "Avg. Disk sec/Read", "_Total"); float iPhysicalDisk_AvgRead_sec = (float)PhysicalDisk_AvgRead_sec.NextValue(); PerformanceCounter PhysicalDisk_AvgWrite_sec = new PerformanceCounter("PhysicalDisk", "Avg. Disk sec/Write", "_Total"); float iPhysicalDisk_AvgWrite_sec = (float)PhysicalDisk_AvgWrite_sec.NextValue(); PerformanceCounter PhysicalDisk_DiskTime = new PerformanceCounter("PhysicalDisk", "% Disk Time", "_Total"); float iPhysicalDisk_DiskTime = (float)PhysicalDisk_DiskTime.NextValue(); PerformanceCounter System_Context_Switches = new PerformanceCounter("System", "Context Switches/sec", null); float iSystem_Context_Switches = (float)System_Context_Switches.NextValue(); PerformanceCounter System_System_Call = new PerformanceCounter("System", "System Calls/sec", null); float iSystem_System_Call = (float)System_System_Call.NextValue(); PerformanceCounter System_Processor_Queue_Length = new PerformanceCounter("System", "Processor Queue Length", null); float iSystem_Processor_Queue_Length = (float)System_Processor_Queue_Length.NextValue(); PerformanceCounter Paging_Usage = new PerformanceCounter("Paging File", "% Usage", "_Total"); float iPaging_Usage = (float)Paging_Usage.NextValue(); */ #endregion } 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 공통코드 봉투상품 조회(T0042) //#20181016 메모리 사용량 로그남기기 end #region Kiosk 조회 ========================================================================================= /// /// 2019-03-04 - 1997fx11 : 01.NHS_SCREEN /// /// /// public DataTable Select_NHS_SCREEN(string sScreenCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[SCREEN_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[SCREEN_CD] "); sbQuery.Append(",[A].[LAYOUT_CD] "); sbQuery.Append(",[A].[SCREEN_NM] "); sbQuery.Append(",[A].[SCREEN_DESC] "); sbQuery.Append(",[A].[DISPLAY_YN] "); sbQuery.Append(",[A].[DISPLAY_START_DT] "); sbQuery.Append(",[A].[DISPLAY_END_DT] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_SCREEN AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); sbQuery.Append("AND [A].[DISPLAY_YN] = 1 "); if (!string.IsNullOrEmpty(sScreenCD)) { sbQuery.AppendFormat("AND [A].[SCREEN_CD] = '{0}' ", sScreenCD); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[SCREEN_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 02.NHS_SCREEN_CONTENTS /// /// /// /// /// /// public DataTable Select_NHS_SCREEN_CONTENTS(string sScreenCD, string sFrameCD = null, string sLayerCD = null, string sContentsID = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[LAYER_CD],[A].[CONTENTS_ID]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[LAYER_CD] "); sbQuery.Append(",[A].[CONTENTS_ID] "); sbQuery.Append(",[A].[SCREEN_CD] "); sbQuery.Append(",[A].[FRAME_CD] "); sbQuery.Append(",[A].[DISPLAY_ORDER] "); sbQuery.Append(",[A].[DISPLAY_START_TIME] "); sbQuery.Append(",[A].[DISPLAY_END_TIME] "); sbQuery.Append(",[A].[FILE_FULLPATH] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[FILE_MIME_TYPE] "); sbQuery.Append(",[A].[PLAY_TIME] "); sbQuery.Append(",[A].[LINK_YN] "); sbQuery.Append(",[A].[PRD_CATE_L] "); sbQuery.Append(",[A].[PRD_CATE_M] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_SCREEN_CONTENTS AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); sbQuery.AppendFormat("AND [A].[SCREEN_CD] = '{0}' ", sScreenCD); if (!string.IsNullOrEmpty(sFrameCD)) { sbQuery.AppendFormat("AND [A].[FRAME_CD] = '{0}' ", sFrameCD); } if (!string.IsNullOrEmpty(sLayerCD)) { sbQuery.AppendFormat("AND [A].[LAYER_CD] = '{0}' ", sLayerCD); } if (!string.IsNullOrEmpty(sContentsID)) { sbQuery.AppendFormat("AND [A].[CONTENTS_ID] = '{0}' ", sContentsID); } sbQuery.Append("ORDER BY [A].[DISPLAY_ORDER] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 03.NHS_SCREEN_LAYER /// /// /// /// /// public DataTable Select_NHS_SCREEN_LAYER(string sScreenCD, string sFrameCD = null, string sLayerCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[FRAME_CD],[A].[LAYER_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[FRAME_CD] "); sbQuery.Append(",[A].[LAYER_CD] "); sbQuery.Append(",[A].[SCREEN_CD] "); sbQuery.Append(",[A].[FRAME_VERTICAL_SIZE] "); sbQuery.Append(",[A].[LAYER_DISPLAY_ORDER] "); sbQuery.Append(",[A].[FIX_YN] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_SCREEN_LAYER AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); sbQuery.AppendFormat("AND [A].[SCREEN_CD] = '{0}' ", sScreenCD); if (!string.IsNullOrEmpty(sFrameCD)) { sbQuery.AppendFormat("AND [A].[FRAME_CD] = '{0}' ", sFrameCD); } if (!string.IsNullOrEmpty(sLayerCD)) { sbQuery.AppendFormat("AND [A].[LAYER_CD] = '{0}' ", sLayerCD); } sbQuery.Append("ORDER BY [A].[LAYER_DISPLAY_ORDER] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 03.Select_NHS_SCREEN_LAYER_GROUPBY_FRAMECD /// /// /// /// public DataTable Select_NHS_SCREEN_LAYER_GROUPBY_FRAMECD(string sScreenCD, string sFrameCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[FRAME_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[FRAME_CD] "); sbQuery.Append("FROM POSMST..NHS_SCREEN_LAYER AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); sbQuery.AppendFormat("AND [A].[SCREEN_CD] = '{0}' ", sScreenCD); if (!string.IsNullOrEmpty(sFrameCD)) { sbQuery.AppendFormat("AND [A].[FRAME_CD] = '{0}' ", sFrameCD); } sbQuery.Append("GROUP BY [A].[FRAME_CD] "); sbQuery.Append("ORDER BY [A].[FRAME_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } catch { return null; } } /* /// /// 2019-03-04 - 1997fx11 : 04.NHS_STOR_PRD_CATE /// /// /// /// 2019-03-11 - 1997fx11 : 'Select_NHS_STOR_PRD_CATE' 삭제 /// public DataTable Select_NHS_STOR_PRD_CATE(string sPrdCateUpCD = null, string sPrdCateCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[PRD_CATE_UP_CD],[A].[PRD_CATE_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[PRD_CATE_UP_CD] "); sbQuery.Append(",[A].[PRD_CATE_CD] "); sbQuery.Append(",[A].[FILE_FULLPATH] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[DISPLAY_ORDER] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append(",[A].[HIDE_YN] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_STOR_PRD_CATE AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); if (!string.IsNullOrEmpty(sPrdCateUpCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_UP_CD] = '{0}' ", sPrdCateUpCD); } if (!string.IsNullOrEmpty(sPrdCateCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_CD] = '{0}' ", sPrdCateCD); } sbQuery.Append("AND [A].[USE_YN] = '1' "); sbQuery.Append("AND [A].[HIDE_YN] = '0' "); sbQuery.Append("ORDER BY [A].[DISPLAY_ORDER] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } */ /// /// 2019-03-04 - 1997fx11 : 05.NHS_STOR_PRD_KEY /// 2019-03-08 - 1997fx11 : 'NHS_PRD_CATE' Table 과 Inner Join /// 2019-03-08 - 1997fx11 : 'FILE_NAME' Column 표시 /// /// /// /// /// /// public DataTable Select_NHS_STOR_PRD_KEY(string sItemCD,string sBarcode=null, string sPrdCateCD = null, string sTouchKeyCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT [A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[PRD_CATE_CD] "); sbQuery.Append(",[B].[PRD_CATE_UP_CD] "); sbQuery.Append(",[A].[TOUCH_KEY_CD] "); sbQuery.Append(",[A].[ITEM_CD] "); sbQuery.Append(",[A].[DISPLAY_ORDER] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append(",[A].[SOLDOUT_YN] "); sbQuery.Append(",[A].[RECOMMAND_YN] "); sbQuery.Append(",[A].[NEW_YN] "); sbQuery.Append(",[A].[PRESENT_YN] "); sbQuery.Append(",[A].[SALES_PRC] "); sbQuery.Append(",[A].[OPTN_YN] "); sbQuery.Append(",[A].[TOUCH_KEY_NM] "); sbQuery.Append(",[A].[LAST_UPD_TIME] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[BAR_CD] "); sbQuery.Append(",[A].[ORDER_TYPE] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_STOR_PRD_KEY AS [A] WITH (NOLOCK) "); sbQuery.Append("INNER JOIN POSMST..NHS_PRD_CATE AS [B] WITH (NOLOCK) ON ([A].[CMP_CD] = [B].[CMP_CD] AND [A].[SALES_ORG_CD] = [B].[SALES_ORG_CD] AND [A].[PRD_CATE_CD] = [B].[PRD_CATE_CD]) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.Append("AND [A].[USE_YN] = '1' "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); if (!string.IsNullOrEmpty(sItemCD)) { sbQuery.AppendFormat("AND [A].[ITEM_CD] IN ({0}) ", sItemCD); } if (!string.IsNullOrEmpty(sBarcode)) { sbQuery.AppendFormat("AND [A].[BAR_CD] = '{0}' ", sBarcode); } if (!string.IsNullOrEmpty(sPrdCateCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_CD] = '{0}' ", sPrdCateCD); } if (!string.IsNullOrEmpty(sTouchKeyCD)) { sbQuery.AppendFormat("AND [A].[TOUCH_KEY_CD] = '{0}' ", sTouchKeyCD); } sbQuery.Append("ORDER BY [A].[DISPLAY_ORDER] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 06.NHS_UI_TEMPLATE /// /// /// public DataTable Select_NHS_UI_TEMPLATE(string sTemplCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[TEMPL_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[TEMPL_CD] "); sbQuery.Append(",[A].[TEMPL_NM] "); sbQuery.Append(",[A].[LOGO_FILE_NAME] "); sbQuery.Append(",[A].[LOGO_FILE_FULLPATH] "); sbQuery.Append(",[A].[GNB_BACK_COLOR] "); sbQuery.Append(",[A].[MAIN_BACK_COLOR] "); sbQuery.Append(",[A].[MAIN_FONT_COLOR] "); sbQuery.Append(",[A].[HPC_GNB_BACK_COLOR] "); sbQuery.Append(",[A].[HPC_MAIN_BACK_COLOR] "); sbQuery.Append(",[A].[HPC_MAIN_FONT_COLOR] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_UI_TEMPLATE AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); if (!string.IsNullOrEmpty(sTemplCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_UP_CD] = '{0}' ", sTemplCD); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[TEMPL_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 07.NHS_CPI_CONTENTS /// /// /// public DataTable Select_NHS_CPI_CONTENTS(string sCpiCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[CPI_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[CPI_CD] "); sbQuery.Append(",[A].[FILE_FULLPATH] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_CPI_CONTENTS AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sCpiCD)) { sbQuery.AppendFormat("AND [A].[CPI_CD] = '{0}' ", sCpiCD); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[CPI_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /* /// /// 2019-03-04 - 1997fx11 : 08.NHS_CUST_BUY_HIST /// 2019-03-07 - 1997fx11 : 삭제 /// /// /// /// public DataTable Select_NHS_CUST_BUY_HIST(string sHPCCustCD = null, string sItemCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[HPC_CUST_CD],[A].[ITEM_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[HPC_CUST_CD] "); sbQuery.Append(",[A].[ITEM_CD] "); sbQuery.Append(",[A].[ITEM_NM] "); sbQuery.Append(",[A].[BUY_DT] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_CUST_BUY_HIST AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sHPCCustCD)) { sbQuery.AppendFormat("AND [A].[HPC_CUST_CD] = '{0}' ", sHPCCustCD); } if (!string.IsNullOrEmpty(sItemCD)) { sbQuery.AppendFormat("AND [A].[ITEM_CD] = '{0}' ", sItemCD); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[HPC_CUST_CD],[A].[ITEM_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } */ /// /// 2019-03-04 - 1997fx11 : 09.NHS_LANG_MSG /// 2019-03-07 - 1997fx11 : 'PRD_CATE_CD', 'ITEM_CD' Column 삭제 /// /// /// /// /// public DataTable Select_NHS_LANG_MSG(string sLanguageGubunCD = null, string sLanguageMessageCD = null, string sLanguageCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[LANG_GBN_CD],[A].[LANG_CD],[A].[LANG_MESSAGE_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[LANG_GBN_CD] "); sbQuery.Append(",[A].[LANG_CD] "); sbQuery.Append(",[A].[LANG_MESSAGE_CD] "); sbQuery.Append(",[A].[LANG_MESSAGE] "); //sbQuery.Append(",[A].[PRD_CATE_CD] "); //sbQuery.Append(",[A].[ITEM_CD] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_LANG_MSG AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sLanguageGubunCD)) { sbQuery.AppendFormat("AND [A].[LANG_GBN_CD] = '{0}' ", sLanguageGubunCD); } if (!string.IsNullOrEmpty(sLanguageCD)) { sbQuery.AppendFormat("AND [A].[LANG_CD] = '{0}' ", sLanguageCD); } if (!string.IsNullOrEmpty(sLanguageMessageCD)) { sbQuery.AppendFormat("AND [A].[LANG_MESSAGE_CD] = '{0}' ", sLanguageMessageCD); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[LANG_GBN_CD],[A].[LANG_CD],[A].[LANG_MESSAGE_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 10.NHS_LAYOUT /// /// /// public DataTable Select_NHS_LAYOUT(string sLayoutCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[LAYOUT_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[LAYOUT_CD] "); sbQuery.Append(",[A].[LAYOUT_NM] "); sbQuery.Append(",[A].[LAYOUT_RESOLUTION] "); sbQuery.Append(",[A].[FRAME_COUNT] "); sbQuery.Append(",[A].[RESOLUTION_HORIZEN] "); sbQuery.Append(",[A].[RESOLUTION_VERTICAL] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_LAYOUT AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sLayoutCD)) { sbQuery.AppendFormat("AND [A].[LAYOUT_CD] = '{0}' ", sLayoutCD); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[LAYOUT_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /* /// /// 2019-03-04 - 1997fx11 : 11.NHS_PRD_CATE_L /// /// /// /// 2019-03-11 - 1997fx11 : 'Select_NHS_PRD_CATE_L' 삭제 /// public DataTable Select_NHS_PRD_CATE_L(string sProductCategoryCD = null, string sProductCategoryUpCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[PRD_CATE_CD],[A].[PRD_CATE_UP_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[PRD_CATE_CD] "); sbQuery.Append(",[A].[PRD_CATE_UP_CD] "); sbQuery.Append(",[A].[FILE_FULLPATH] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[DISPLAY_ORDER] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append(",[A].[HIDE_YN] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_PRD_CATE_L AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sProductCategoryCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_CD] = '{0}' ", sProductCategoryCD); } if (!string.IsNullOrEmpty(sProductCategoryUpCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_UP_CD] = '{0}' ", sProductCategoryUpCD); } sbQuery.Append("AND [A].[USE_YN] = '1' "); sbQuery.Append("AND [A].[HIDE_YN] = '0' "); sbQuery.Append("ORDER BY [A].[DISPLAY_ORDER] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } */ /* /// /// 2019-03-04 - 1997fx11 : 12.NHS_PRD_CATE_M /// /// /// /// 2019-03-11 - 1997fx11 : 'Select_NHS_PRD_CATE_M' 삭제 /// public DataTable Select_NHS_PRD_CATE_M(string sProductCategoryCD = null, string sProductCategoryUpCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[PRD_CATE_CD],[A].[PRD_CATE_UP_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[PRD_CATE_CD] "); sbQuery.Append(",[A].[PRD_CATE_UP_CD] "); sbQuery.Append(",[A].[FILE_FULLPATH] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[DISPLAY_ORDER] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append(",[A].[HIDE_YN] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_PRD_CATE_M AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sProductCategoryCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_CD] = '{0}' ", sProductCategoryCD); } if (!string.IsNullOrEmpty(sProductCategoryUpCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_UP_CD] = '{0}' ", sProductCategoryUpCD); } sbQuery.Append("AND [A].[USE_YN] = '1' "); sbQuery.Append("AND [A].[HIDE_YN] = '0' "); sbQuery.Append("ORDER BY [A].[DISPLAY_ORDER] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } */ /// /// 2019-03-04 - 1997fx11 : 13.NHS_PRD_MST /// /// /// /// public DataTable Select_NHS_PRD_MST(string sBarCD = null, string sItemCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT [A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[PRD_CATE_CD] "); sbQuery.Append(",[A].[ITEM_CD] "); sbQuery.Append(",[A].[ITEM_NM] "); sbQuery.Append(",[A].[FILE_FULLPATH] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[ORDER_TYPE] "); sbQuery.Append(",[A].[RECOMMAND_YN] "); sbQuery.Append(",[A].[NEW_YN] "); sbQuery.Append(",[A].[DISPLAY_ORDER] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append(",[A].[PRESENT_YN] "); sbQuery.Append(",[A].[BAR_CD] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append(",[B].[TAKE_OUT_SALE_AMT] "); sbQuery.Append("FROM POSMST..NHS_PRD_MST AS [A] WITH (NOLOCK) "); sbQuery.Append("INNER JOIN [dbo].[MST_ITEM] AS [B] WITH (NOLOCK) ON ([A].[CMP_CD] = [B].[CMP_CD] AND [A].[ITEM_CD] = [B].[ITEM_CD]) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.Append("AND [A].[USE_YN] = '1' "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sBarCD)) { sbQuery.AppendFormat("AND [A].[BAR_CD] = '{0}' ", sBarCD); } if (!string.IsNullOrEmpty(sItemCD)) { sbQuery.AppendFormat("AND [A].[ITEM_CD] = '{0}' ", sItemCD); } sbQuery.Append("ORDER BY [A].[DISPLAY_ORDER] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 14.NHS_OPTN_MST /// /// /// /// public DataTable Select_NHS_OPTN_MST(string sItemOptionGroupCD = null, string sItemOptionCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[ITEM_OPTN_GRP_CD],[A].[ITEM_OPTN_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[ITEM_OPTN_GRP_CD] "); sbQuery.Append(",[A].[ITEM_OPTN_CD] "); sbQuery.Append(",[A].[ITEM_OPTN_NM] "); sbQuery.Append(",[A].[KIND] "); sbQuery.Append(",[A].[OPTN_MTD] "); sbQuery.Append(",[A].[KIND_CODE] "); sbQuery.Append(",[A].[AMT] "); sbQuery.Append(",[A].[MIN_AMT] "); sbQuery.Append(",[A].[MAX_AMT] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_OPTN_MST AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sItemOptionGroupCD)) { sbQuery.AppendFormat("AND [A].[ITEM_OPTN_GRP_CD] = '{0}' ", sItemOptionGroupCD); } if (!string.IsNullOrEmpty(sItemOptionCD)) { sbQuery.AppendFormat("AND [A].[ITEM_OPTN_CD] = '{0}' ", sItemOptionCD); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[ITEM_OPTN_GRP_CD],[A].[ITEM_OPTN_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 15.NHS_PRD_OPTN_GRP /// /// /// public DataTable Select_NHS_PRD_OPTN_GRP(string sItemOptionGroupCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[ITEM_OPTN_GRP_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[ITEM_OPTN_GRP_CD] "); sbQuery.Append(",[A].[OPTN_GRP_NM] "); sbQuery.Append(",[A].[FILE_FULLPATH] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[SEL_MTD] "); sbQuery.Append(",[A].[RQRD_YN] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_PRD_OPTN_GRP AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sItemOptionGroupCD)) { sbQuery.AppendFormat("AND [A].[ITEM_OPTN_GRP_CD] = '{0}' ", sItemOptionGroupCD); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[ITEM_OPTN_GRP_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 16.NHS_PRD_OPTN /// 2019-03-08 'PRD_CATE_CD' Column 삭제 /// /// /// /// public DataTable Select_NHS_PRD_OPTN(string sItemCD = null, string sItemOptionGroupCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[ITEM_CD],[A].[ITEM_OPTN_GRP_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[ITEM_CD] "); sbQuery.Append(",[A].[ITEM_OPTN_GRP_CD] "); sbQuery.Append(",[A].[DISPLAY_ORDER] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_PRD_OPTN AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); if (!string.IsNullOrEmpty(sItemCD)) { sbQuery.AppendFormat("AND [A].[ITEM_CD] = '{0}' ", sItemCD); } if (!string.IsNullOrEmpty(sItemOptionGroupCD)) { sbQuery.AppendFormat("AND [A].[ITEM_OPTN_GRP_CD] = '{0}' ", sItemOptionGroupCD); } sbQuery.Append("ORDER BY [A].[DISPLAY_ORDER] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 17.NHS_PRD_CATE /// /// /// /// public DataTable Select_NHS_PRD_CATE(string sProductCategoryUpCD = null, string sProductCategoryCD = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[PRD_CATE_CD],[A].[PRD_CATE_UP_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[PRD_CATE_CD] "); sbQuery.Append(",[A].[PRD_CATE_UP_CD] "); sbQuery.Append(",[A].[FILE_FULLPATH] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[DISPLAY_ORDER] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append(",[A].[HIDE_YN] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_PRD_CATE AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); if (!string.IsNullOrEmpty(sProductCategoryCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_CD] = '{0}' ", sProductCategoryCD); } if (!string.IsNullOrEmpty(sProductCategoryUpCD)) { sbQuery.AppendFormat("AND [A].[PRD_CATE_UP_CD] = '{0}' ", sProductCategoryUpCD); } sbQuery.Append("AND [A].[USE_YN] = '1' "); sbQuery.Append("AND [A].[HIDE_YN] = '0' "); //sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[PRD_CATE_CD],[A].[PRD_CATE_UP_CD] "); sbQuery.Append("ORDER BY [A].[DISPLAY_ORDER] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// 2019-03-04 - 1997fx11 : 18.NHS_STOR_PRD_TAG /// /// /// /// public DataTable Select_NHS_STOR_PRD_TAG(string sItemCD = null, string sTagKind = null) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[ITEM_CD],[A].[TAG_KIND]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[ITEM_CD] "); sbQuery.Append(",[A].[TAG_KIND] "); sbQuery.Append(",[A].[FILE_NAME] "); sbQuery.Append(",[A].[NEW_START_DT] "); sbQuery.Append(",[A].[NEW_END_DT] "); sbQuery.Append(",[A].[REG_USER_ID] "); sbQuery.Append(",[A].[REG_DATE] "); sbQuery.Append(",[A].[UPD_USER_ID] "); sbQuery.Append(",[A].[UPD_DATE] "); sbQuery.Append("FROM POSMST..NHS_STOR_PRD_TAG AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); if (!string.IsNullOrEmpty(sItemCD)) { sbQuery.AppendFormat("AND [A].[ITEM_CD] = '{0}' ", sItemCD); } if (!string.IsNullOrEmpty(sTagKind)) { sbQuery.AppendFormat("AND [A].[TAG_KIND] = '{0}' ", sTagKind); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[ITEM_CD],[A].[TAG_KIND] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// Kiosk 에서 사용가능한 결재수단 목록을 조회 : 2019-05-17 - 1997fx11 /// /// /// public DataTable Select_NHS_PAY_DC(bool bUseYN = true) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[STOR_CD],[A].[PAY_DC_GRP_TYPE],[A].[PAY_DC_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[PAY_DC_GRP_TYPE] "); sbQuery.Append(",[A].[PAY_DC_CD] "); sbQuery.Append(",[A].[PAY_DC_NM] "); sbQuery.Append(",[A].[PAY_DC_TYPE] "); sbQuery.Append(",[A].[APPR_VEND_CD] "); sbQuery.Append(",[A].[CASH_BILL_ISSUE_YN] "); sbQuery.Append(",[A].[BLNC_AMT_EXCHNG_CPN_PRT_YN] "); sbQuery.Append(",[A].[CNNT_ITEM_CHECK_YN] "); sbQuery.Append(",[A].[COOP_CMP_CNNT_YN] "); sbQuery.Append(",[A].[PRFX_TRGT_YN] "); sbQuery.Append(",[A].[PAY_DC_METHD] "); sbQuery.Append(",[A].[PAY_DC_VAL] "); sbQuery.Append(",[A].[DC_APPLY_TRGT] "); sbQuery.Append(",[A].[HP_BASIC_ACCUM_YN] "); sbQuery.Append(",[A].[DC_TRGT_AMT_TYPE] "); sbQuery.Append(",[A].[CPI_DUP_YN] "); sbQuery.Append(",[A].[DC_TELECOM_DUP_YN] "); sbQuery.Append(",[A].[DC_POINT_DUP_YN] "); sbQuery.Append(",[A].[DC_CPN_DUP_YN] "); sbQuery.Append(",[A].[DC_EMP_DC_DUP_YN] "); sbQuery.Append(",[A].[DC_GNRL_DUP_YN] "); sbQuery.Append(",[A].[PAY_GNRL_DUP_YN] "); sbQuery.Append(",[A].[PAY_MOBILE_DUP_YN] "); sbQuery.Append(",[A].[PAY_POINT_DUP_YN] "); sbQuery.Append(",[A].[SALE_POS_PRT_QUE] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append(",[A].[UPD_DT] "); sbQuery.Append(",[A].[REG_DT] "); sbQuery.Append(",[A].[HP_ADD_ACCUM_DIV] "); sbQuery.Append(",[A].[MOBILE_DC_DIV] "); sbQuery.Append("FROM POSMST..MST_PAY_DC AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); if (bUseYN) { sbQuery.Append("AND [A].[USE_YN] = '1' "); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[STOR_CD],[A].[PAY_DC_GRP_TYPE],[A].[PAY_DC_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } /// /// Kiosk 에서 사용가능한 결재수단 사용여부를 조회 : 2019-06-10 - 1997fx11 /// /// /// public DataTable Select_NHS_FUNC_INFO(bool bUseYN = false) { StringBuilder sbQuery = new StringBuilder(); try { sbQuery.Append("SELECT ROW_NUMBER() OVER(ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[STEP_GRP_CD],[A].[FUNC_GRP_CD],[A].[FUNC_CD]) AS [NOW_NUMBER] "); sbQuery.Append(",[A].[CMP_CD] "); sbQuery.Append(",[A].[SALES_ORG_CD] "); sbQuery.Append(",[A].[STOR_CD] "); sbQuery.Append(",[A].[STEP_GRP_CD] "); sbQuery.Append(",[A].[FUNC_GRP_CD] "); sbQuery.Append(",[A].[FUNC_CD] "); sbQuery.Append(",[A].[STEP_GRP_NM] "); sbQuery.Append(",[A].[FUNC_GRP_NM] "); sbQuery.Append(",[A].[FUNC_NM] "); sbQuery.Append(",[A].[DISPLAY_ORDER] "); sbQuery.Append(",[A].[USE_YN] "); sbQuery.Append("FROM POSMST..NHS_FUNC_INFO AS [A] WITH (NOLOCK) "); sbQuery.Append("WHERE 1 = 1 "); sbQuery.AppendFormat("AND [A].[CMP_CD] = '{0}' ", m_cPosStatus.Base.CmpCd); sbQuery.AppendFormat("AND [A].[SALES_ORG_CD] = '{0}' ", m_cPosStatus.Base.BrandCd); sbQuery.AppendFormat("AND [A].[STOR_CD] = '{0}' ", m_cPosStatus.Base.StoreNo); sbQuery.Append("AND FUNC_CD <> '00000' "); if (bUseYN) { sbQuery.Append("AND [A].[USE_YN] = '1' "); } sbQuery.Append("ORDER BY [A].[CMP_CD],[A].[SALES_ORG_CD],[A].[STOR_CD],[A].[STEP_GRP_CD],[A].[FUNC_GRP_CD],[A].[FUNC_CD] "); return m_cMstService.Select(new string[] { sbQuery.ToString() }); } 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; } //return null; } private Cosmos.Common.INetworkJSON m_cNetworkJson = null; // 2019-03-19 - 1997fx11 : JSON 통신 관련 서비스 private Cosmos.Common.IDatabaseSQL m_cDatabaseSql = null; // 2019-03-20 - 1997fx11 : 데이터베이스 관련 /// /// 2019-03-04 - 1997fx11 : 08.NHS_CUST_BUY_HIST - GetCustBuyHistory /// 2019-03-07 - 1997fx11 : 삭제 /// 2019-03-19 - 1997fx11 : 호출시 실행하는 방법으로 변경 /// /// /// /// /// public string[] Select_NHS_CUST_BUY_HIST(string sUpdateDT, string sHpcCustCd, string sItemCD = null) { string[] aRowDatas = null; string sIrtData = string.Empty; string sRecvData = string.Empty; Hashtable htReqData = null; StringBuilder sbRecvData = null; //string sUpDate = string.Empty; int iReturn = BaseCom.NG; try { m_cNetworkJson = (Cosmos.Common.INetworkJSON)sManager.InitServiceInstance(Cosmos.Common.ServiceLists.AGENT_NETWORK.DLL, Cosmos.Common.ServiceLists.AGENT_NETWORK.NETWORK_JSON); htReqData = new Hashtable(); // 응답코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.ResCd, string.Empty); // 요청코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.ProcCd, "0"); // 변경 일시 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.UpdDt, sUpdateDT); // 고객코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.HpcCustCd, sHpcCustCd); // INQ Type 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.InqType, "01"); iReturn = m_cNetworkJson.CmsIRTSendReceive(m_cPosStatus.Base.CmsSvrIp , (int)m_cPosStatus.Base.KioskPort , 60000 , ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.HPC_CUST_BUY_HIST, m_cPosStatus.Base.BrandCd) , htReqData , ref sbRecvData , ref sUpdateDT); if (iReturn == BaseCom.OK) { // 행구분자(#~)로 구분한 Row Data를 string array에 저장 aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); } else { return null; } return aRowDatas; } catch { return null; } //return null; } /// /// 2019-03-04 - 1997fx11 : 신규 ITEM 수신 /// /// /// /// public int Get_NEW_PRODUCT_BY_IRT(string sUpdateDT = null, string sItemCD = null) { bool bReturn = false; string sQuery = string.Empty; string[] aRowDatas = null; string sIrtData = string.Empty; string sRecvData = string.Empty; Hashtable htReqData = null; StringBuilder sbRecvData = null; //string sUpDate = string.Empty; int iReturn = BaseCom.NG; try { m_cNetworkJson = (Cosmos.Common.INetworkJSON)sManager.InitServiceInstance(Cosmos.Common.ServiceLists.AGENT_NETWORK.DLL, Cosmos.Common.ServiceLists.AGENT_NETWORK.NETWORK_JSON); // Config 파일에서 Last Update Date 를 들고옴. CmMessage m_PosSaleInfo = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo); sUpdateDT = CmUtil.StringNullEmpty(GetConfigInfo(m_PosSaleInfo, "CHECKOVER", "NewProductUpdDate")); htReqData = new Hashtable(); // 응답코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.ResCd, string.Empty); // 요청코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.ProcCd, "0"); // 변경 일시 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.UpdDt, sUpdateDT); // INQ Type 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.InqType, "02"); iReturn = m_cNetworkJson.CmsIRTSendReceive(m_cPosStatus.Base.CmsSvrIp , (int)m_cPosStatus.Base.KioskPort , 60000 , ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.NEW_PRODUCT_BY_IRT, m_cPosStatus.Base.BrandCd) , htReqData , ref sbRecvData , ref sUpdateDT); if (iReturn == BaseCom.OK) { // 행구분자(#~)로 구분한 Row Data를 string array에 저장 aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); // DB에 저장 bReturn = InsertNHS_STOR_PRD_KEY(aRowDatas); // Config 파일에 Last Update Date 저장 m_PosSaleInfo.GetMessage("CHECKOVER").MakeMessageOverWrite("NewProductUpdDate ".Trim(), sUpdateDT); m_PosSaleInfo.MakeFileFromMessage(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo); } else { return -1; } return iReturn; } 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 -1; } //return null; } /// /// 2019-03-04 - 1997fx11 : 신규 ITEM 수신 /// /// /// private bool InsertNHS_STOR_PRD_KEY(string[] aRowDatas) { string sQuery = string.Empty; string sInsQuery = string.Empty; string[] aParams = null; m_cDatabaseSql = (Cosmos.Common.IDatabaseSQL)sManager.InitServiceInstance(Cosmos.Common.ServiceLists.AGENT_DATABASE.DLL, Cosmos.Common.ServiceLists.AGENT_DATABASE.DATABASE_MSSQL); try { sInsQuery = "UPDATE POSMST..NHS_STOR_PRD_KEY \n" + " SET [ITEM_CD] = '{5}' \n" + " ,[DISPLAY_ORDER] = '{6}' \n" + " ,[USE_YN] = '{7}' \n" + " ,[SOLDOUT_YN] = '{8}' \n" + " ,[RECOMMAND_YN] = '{9}' \n" + " ,[NEW_YN] = '{10}' \n" + " ,[PRESENT_YN] = '{11}' \n" + " ,[SALES_PRC] = '{12}' \n" + " ,[OPTN_YN] = '{13}' \n" + " ,[TOUCH_KEY_NM] = '{14}' \n" + " ,[LAST_UPD_TIME] = Convert(datetime,'{15}') \n" + " ,[FILE_NAME] = '{16}' \n" + " ,[UPD_USER_ID] = '{19}' \n" + " ,[UPD_DATE] = Convert(datetime,'{20}') \n" + " WHERE [CMP_CD] = '{0}' \n" + " AND [SALES_ORG_CD] = '{1}' \n" + " AND [STOR_CD] = '{2}' \n" + " AND [PRD_CATE_CD] = '{3}' \n" + " AND [TOUCH_KEY_CD] = '{4}' \n" + "IF @@ROWCOUNT = 0 \n" + "INSERT INTO POSMST..NHS_STOR_PRD_KEY \n" + " ([CMP_CD] \n" + " ,[SALES_ORG_CD] \n" + " ,[STOR_CD] \n" + " ,[PRD_CATE_CD] \n" + " ,[TOUCH_KEY_CD] \n" + " ,[ITEM_CD] \n" + " ,[DISPLAY_ORDER] \n" + " ,[USE_YN] \n" + " ,[SOLDOUT_YN] \n" + " ,[RECOMMAND_YN] \n" + " ,[NEW_YN] \n" + " ,[PRESENT_YN] \n" + " ,[SALES_PRC] \n" + " ,[OPTN_YN] \n" + " ,[TOUCH_KEY_NM] \n" + " ,[LAST_UPD_TIME] \n" + " ,[ORDER_TYPE] \n" + " ,[REG_USER_ID] \n" + " ,[REG_DATE]) \n" + " VALUES ('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}',Convert(datetime,'{15}'),'{16}','{17}',Convert(datetime,'{18}')) \n"; foreach (string sRowData in aRowDatas) { aParams = sRowData.Split('|'); sQuery = string.Format(sInsQuery , aParams[0] , aParams[1] , aParams[2] , aParams[3] , aParams[4] , aParams[5] , aParams[6] , aParams[7] , aParams[8] , aParams[9] , aParams[10] , aParams[11] , aParams[12] , aParams[13] , aParams[14] , aParams[15] , aParams[16] , aParams[17] , aParams[18] , aParams[19] , aParams[20]); if (m_cDatabaseSql.DBExecuteNonQuery(sQuery) != UserCom.OK) { UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) sQuery); } } return true; } catch (Exception ex) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명) System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명)) System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명)) ex.Message); return false; } } /// /// 2019-03-21 - 1997fx11 : 설정 파일 읽기 /// /// /// /// /// /// private string GetConfigInfo(CmMessage cCfgInfo, string sGroup, string sValueName, string sDefault = "") { try { string sValue = cCfgInfo.GetMessage(sGroup).GetMessageValue(sValueName); //if (sValue == null) if (string.IsNullOrWhiteSpace(sValue)) return sDefault; else return sValue; } catch { } return sDefault; } /// /// 2019-03-21 - 1997fx11 : 상품(아이템) 변경 처리 /// /// public int Send_SYSTEM_INFO() { double AvailableFreeSpaceDisk = 0; double TotalSizeDisk = 0; double UseSizeDisk = 0; long TotalPhysicalMemeory = 0; long FreePhysicalMemeory = 0; bool bReturn = false; string sQuery = string.Empty; string[] aRowDatas = null; string sIrtData = string.Empty; string sRecvData = string.Empty; Hashtable htReqData = null; StringBuilder sbRecvData = null; string sUpdateDT = string.Empty; string sLstBootDT = string.Empty; string sLstShotdownDT = string.Empty; int iReturn = BaseCom.NG; try { sUpdateDT = string.Format("{0:yyyyMMddHHmmss}", DateTime.Now); // "DISK" DriveInfo drv = new DriveInfo(CmUtil.MidH(BaseCom.NxDownPath, 0, 1)); AvailableFreeSpaceDisk = ((drv.AvailableFreeSpace) / 1024 / 1024); TotalSizeDisk = ((drv.TotalSize) / 1024 / 1024); UseSizeDisk = TotalSizeDisk - AvailableFreeSpaceDisk; // "MEMORY"; System.Management.ManagementClass cls = new System.Management.ManagementClass("Win32_OperatingSystem"); System.Management.ManagementObjectCollection instances = cls.GetInstances(); foreach (System.Management.ManagementObject info in instances) { long total_physical_memeory = long.Parse(info["TotalVisibleMemorySize"].ToString()) / 1024; long free_physical_memeory = long.Parse(info["FreePhysicalMemory"].ToString()) / 1024; long remmain_physical_memory = total_physical_memeory - free_physical_memeory; TotalPhysicalMemeory = TotalPhysicalMemeory + total_physical_memeory; FreePhysicalMemeory = FreePhysicalMemeory + free_physical_memeory; } // "CPU" PerformanceCounter cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); //PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available MBytes"); //float _cpuage = cpuCounter.NextValue(); float firstValue = cpuCounter.NextValue(); System.Threading.Thread.Sleep(1000); float secondValue = cpuCounter.NextValue(); int cpuPercent = Convert.ToInt32(secondValue); // "LAST_BOOT_TIME" DateTime _dt = new DateTime(); SelectQuery query = new SelectQuery("SELECT LastBootUpTime FROM Win32_OperatingSystem WHERE Primary = 'true'"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); foreach (ManagementObject mo in searcher.Get()) { _dt = ManagementDateTimeConverter.ToDateTime(mo.Properties["LastBootUpTime"].Value.ToString()); } sLstBootDT = string.Format("{0:yyyyMMddHHmmss}", _dt); // "LAST_SHUTDOWN_TIME" string sKey = @"System\CurrentControlSet\Control\Windows"; Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sKey); string sValueName = "ShutdownTime"; byte[] val = (byte[])key.GetValue(sValueName); long valueAsLong = BitConverter.ToInt64(val, 0); _dt = DateTime.FromFileTime(valueAsLong); sLstShotdownDT = string.Format("{0:yyyyMMddHHmmss}", _dt); m_cNetworkJson = (Cosmos.Common.INetworkJSON)sManager.InitServiceInstance(Cosmos.Common.ServiceLists.AGENT_NETWORK.DLL, Cosmos.Common.ServiceLists.AGENT_NETWORK.NETWORK_JSON); htReqData = new Hashtable(); // 응답코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.ResCd, string.Empty); // 요청코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.ProcCd, "0"); // HDD 총용량 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.HddTotal, TotalSizeDisk.ToString()); // HDD 사용량 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.HddUse, UseSizeDisk.ToString()); // Memory 총용량 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.MemoryTotal, TotalPhysicalMemeory.ToString()); // Memory 사용량 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.MemoryUse, FreePhysicalMemeory.ToString()); // CPU 사용 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.CpuUse, cpuPercent.ToString()); //counters.Count.ToString()); // LastBootTime 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.LastBootTime, sLstBootDT); // LastShutdownTime 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.LastShutdownTime, sLstShotdownDT); // 변경 일시 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.UpdDt, sUpdateDT); // INQ Type 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.InqType, "04"); iReturn = m_cNetworkJson.CmsIRTSendReceive(m_cPosStatus.Base.CmsSvrIp , (int)m_cPosStatus.Base.KioskPort , 60000 , ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.SEND_SYSTEM_INFO_BY_IRT, m_cPosStatus.Base.BrandCd) , htReqData , ref sbRecvData , ref sUpdateDT); if (iReturn == BaseCom.OK) { // 행구분자(#~)로 구분한 Row Data를 string array에 저장 aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); } else { return -1; } return iReturn; } 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 -1; } //return null; } /// /// 2019-05-29 - 1997fx11 : 알림톡 전송 /// /// /// /// /// public int Send_NoticeTalk(string sPhoneNo, string korItemName, string itemCount) { int iReturn = BaseCom.NG; Hashtable htReqData = null; StringBuilder sbRecvData = null; string[] aRowDatas = null; string sUpdateDT = string.Empty; string sHeaderInfo = string.Empty; string sPrd_Nm = string.Empty; string sPrd_Count = string.Empty; string sDateFormat = "yyyyMMddHHmmss"; try { m_cNetworkJson = (Cosmos.Common.INetworkJSON)sManager.InitServiceInstance(Cosmos.Common.ServiceLists.AGENT_NETWORK.DLL, Cosmos.Common.ServiceLists.AGENT_NETWORK.NETWORK_JSON); sUpdateDT = string.Format("{0:yyyyMMddHHmmss}", DateTime.Now); string dateTime = ($"{m_cTrnStatus.Head.SaleDate}{m_cTrnStatus.Head.PayHms}"); DateTime dt = DateTime.ParseExact(dateTime, sDateFormat, null); var lastBarcode = m_cPosStatus.Base.LastRcptBarcodeData; var storeName = CmUtil.GetDataRowStr(PosMstManager.GetMstStore(), PosMst.MST_STORE.DATA.STORNM); htReqData = new Hashtable(); // 응답코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.ResCd, string.Empty); // 요청코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.ProcCd, "0"); // Page Id 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.Page_Id, "01"); // Phone No 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.Phone_No, sPhoneNo); // INQ Type 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.InqType, "05"); // 점포명 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.Stor_Nm, storeName); // 거래일시 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.Trade_Date, dt.ToString("yyyy-MM-dd HH:mm:ss")); // 배열 0번째 아이템명 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.Prd_Nm, korItemName); // 배열 길이 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.Prd_Count, itemCount); // 적립대상금액 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.After_Save_Point, m_cTrnStatus.Head.AftSavePoint.ToString()); // 바코드 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.Barcode, lastBarcode); // 변경 일시 설정 htReqData.Add(Column.IQ_KIOSK_REQ.DATA.UpdDt, sUpdateDT); iReturn = m_cNetworkJson.CmsIRTSendReceive(m_cPosStatus.Base.CmsSvrIp , (int)m_cPosStatus.Base.KioskPort , 60000 , ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.SEND_SYSTEM_INFO_BY_IRT, m_cPosStatus.Base.BrandCd) , htReqData , ref sbRecvData , ref sUpdateDT); sHeaderInfo = ItemColumn.MakeCommHeader(0, ItemConst.COMM_MSG_TYPE.SEND_SYSTEM_INFO_BY_IRT, m_cPosStatus.Base.BrandCd); if (iReturn == BaseCom.OK) { // 행구분자(#~)로 구분한 Row Data를 string array에 저장 aRowDatas = (sbRecvData.ToString()).Split(new string[] { "#~" }, StringSplitOptions.RemoveEmptyEntries); } else { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, "DataCommon.Send_NoticeTalk()", sHeaderInfo); return -1; } return iReturn; } 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 -1; } //return null; } #endregion ============================================================================================= private IDataServiceUs m_cSOD = null; private IAccADMT m_cAccADMT = null; private IServiceUs m_cPosConfig = null; // 환경설정 정보 송/수신 /// /// 2019-04-26 - 1997fx11 : 자동 마감/개업 /// public void SetSaleEndOpen() { string sSaleDate = System.DateTime.Now.ToString("yyyyMMdd"); string sOrgDate = m_cPosStatus.Base.SaleDate; if (m_cPosStatus.Base.OpenClose == "1") // 개점처리 되어있음. { if (CmUtil.LongParse(sOrgDate) >= CmUtil.LongParse(sSaleDate)) { // MSG : 이미 개점 처리 되었습니다. return; } else { // Main POS 확인 if (IsMainPOS()) { } else { string sTempDate = GetMainPosSaleOpenDate(); if (sTempDate.Trim().Length == 8) { sSaleDate = m_cPosStatus.Global.DateToCulture(sTempDate); } else { // 메인포스가 아닌데 return값이 없으면 메인포스가 아직 개점하지 않았으므로 Pass!! return; } } // MSG : 전일자 마감처리 되지 않았습니다.전일 마감 후 개점처리 하십시요. // 마감처리 후 개점처리 필요. SetSaleEnd(); // 개점 SetSaleOpen(sSaleDate); } } } /// /// 메인포스일 경우 개점일자 조회 /// /// private string GetMainPosSaleOpenDate() { string MainPosOpenDate = string.Empty; try { var ret = (string)m_cSOD.GetData(new string[] { "CHECK_SUBPOS_OPEN" }); if (ret.StartsWith(UserCom.RST_ERR)) { return string.Empty; } if (ret.StartsWith(UserCom.RST_OK)) { var tmp = ret.Split('|'); if (tmp.Length > 1) { MainPosOpenDate = tmp[1].Trim(); } } //if (MainPosOpenDate.Trim().Length == 8) //{ // sSaleDate = m_cPosStatus.Global.DateToCulture(MainPosOpenDate); //} } 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 string.Empty; } return MainPosOpenDate; } /// /// 메인포스어부 /// /// private bool IsMainPOS() { bool bResult = true; if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && m_cPosStatus.Base.PosCommunicationType == PosConst.MAIN_POS_DIV.SUB_POS) { bResult = false; } return bResult; } /// /// 자동 마감 /// private void SetSaleEnd() { string sRet = UserCom.RST_ERR; //string sSysDate = m_cPosStatus.Global.DateToCulture(System.DateTime.Now.ToString("yyyyMMdd")); string sSysDate = DateTime.Now.ToString("yyyyMMdd"); string m_sTranKind = ItemConst.TRAN_KIND.STATEMENT.ADJUSTMENT; string m_sTradeDiv = ItemConst.TRAN_DIV.NORMAL; try { // 영업일자와 현재일자가 같으면 마감되었다고 판단 후 Pass if (m_cPosStatus.Base.SaleDate == sSysDate) { return; } //// 마감처리 되었음 확인 후 Pass //if (m_sTradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cPosStatus.Base.OpenClose == "1") { return; } // 마감취소 되었음 확인 후 Pass if (m_sTradeDiv == ItemConst.TRAN_DIV.REFUND && m_cPosStatus.Base.OpenClose == "1") { return; } m_cAccADMT = (IAccADMT)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.ACC_ADMT); // 입금저장 DataTable dtData = new DataTable(); dtData.Columns.Add(new DataColumn("DPST_WTHDR_CD", typeof(string))); dtData.Columns.Add(new DataColumn("DPST_WTHDR_QTY", typeof(string))); dtData.Columns.Add(new DataColumn("DPST_WTHDR_AMT", typeof(string))); dtData.Columns.Add(new DataColumn("DPST_WTHDR_NM", typeof(string))); // 영업마감인 경우 차수 99로 설정 m_cPosStatus.Base.MidCloseSeq = "99"; // 마감시재 sRet = m_cAccADMT.SetData(new string[] { ItemConst.TRAN_KIND.STATEMENT.CLOSING_MONEY, m_sTradeDiv }, dtData, "1"); // 정산 sRet = m_cAccADMT.SetData(new string[] { m_sTranKind, m_sTradeDiv }, dtData, "1"); if (sRet == UserCom.RST_OK) { // 마감시간 저장 m_cPosStatus.Base.CloseDateTime = DateTime.Now.ToString("yyyyMMddHHmmss"); m_cPosStatus.Base.OpenClose = "0"; CmMessage m_PosSal = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo); m_PosSal.GetMessage("POSOPEN").MakeMessageOverWrite("OpenClose", m_cPosStatus.Base.OpenClose); m_PosSal.GetMessage("POSOPEN").MakeMessageOverWrite("CloseDateTime", m_cPosStatus.Base.CloseDateTime); m_PosSal.MakeFileFromMessage(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo); sRet = UserCom.RST_OK; } // 개점처리 // DB백업 ?? string sSaleDate = m_cPosStatus.Global.DateToCulture(System.DateTime.Now.ToString("yyyyMMdd")); SetBackupDatabase(); //디비백업! SetConfigToServer(); //환경설정파일백업! } catch (Exception) { } } /// /// 디비백업 /// /// private bool SetBackupDatabase() { bool bRet = false; try { //메인포스만 백업함! if (m_cPosStatus.Base.PosCommunicationType == PosConst.MAIN_POS_DIV.MAIN_POS) { IDatabaseSQL m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL); if (m_cSqlDbService != null) { //쿼리 생성 string sSQL = string.Empty; string sPath = BaseCom.NxBackPath + PosConst.BACKUP_PATH.DB; string sFullPath = ""; CmUtil.CreateDirectory(sPath); sFullPath = string.Format("{0}{1}{2}", sPath, DateTime.Now.ToString("yyyyMMdd"), "_POSMST.BAK"); sSQL += " USE[master] "; sSQL += " BACKUP DATABASE [POSMST] TO DISK = '{0}' WITH INIT; "; sSQL = string.Format(sSQL, sFullPath); m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); int nRows = m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }, false); if (nRows > 0) { UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "DataBase(POSMST) Backup Success!"); } else { UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "DataBase(POSMST) Backup Fail!"); } sFullPath = string.Format("{0}{1}{2}", sPath, DateTime.Now.ToString("yyyyMMdd"), "_POSLOG.BAK"); sSQL = string.Empty; sSQL += " USE[master] "; sSQL += " BACKUP DATABASE [POSLOG] TO DISK = '{0}' WITH INIT; "; sSQL = string.Format(sSQL, sFullPath); m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword); nRows = m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }, false); if (nRows > 0) { UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "DataBase(POSLOG) Backup Success!"); } else { UserLog.WriteLogFile(UserCom.LOG_DEBUG, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "DataBase(POSLOG) Backup Fail!"); } } } } catch (Exception ex) { UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.ToString()); } return bRet; } /// /// 환경설정파일백업 /// private void SetConfigToServer() { try { m_cPosConfig = (IServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_ADMIN.DLL, ServiceLists.BSV_ADMIN.POS_CONFIG); //회사코드, 점포코드, 포스번호, 서버아이피, 서버 포트 유무 체크 if (m_cPosStatus.Base.CmpCd != "" && m_cPosStatus.Base.StoreNo != "" && m_cPosStatus.Base.PosNo != "" && m_cPosStatus.Base.CommSvrIp.Trim() != "" && (int)m_cPosStatus.Base.BizInqPort != 0) { m_cPosConfig.Execute(new string[] { ItemConst.POS_CONFIG_TYPE.SAVE, "" }); } } catch (Exception) { } } /// /// /// /// private void SetSaleOpen(string sSaleDate) { string sRet = UserCom.RST_ERR; try { m_cSOD = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.SALE_OPEN); // 개점 완료 처리 => 영업일자 변경, 거래번호 설정 sRet = m_cSOD.SetData(sSaleDate); // 개점정보 생성 IAccADMT m_cAccADMT = (IAccADMT)sManager.InitServiceInstance(ServiceLists.BSV_OPEN_CLOSE.DLL, ServiceLists.BSV_OPEN_CLOSE.ACC_ADMT); sRet = m_cAccADMT.SetData(new string[] { ItemConst.TRAN_KIND.LOG.POS_OPEN, ItemConst.TRAN_DIV.NORMAL }, null, "0"); } catch (Exception) { } } } }