spc-kiosk-pb/Service/AsvDataProcess/DataCommon.cs
2019-07-05 13:15:37 +09:00

7666 lines
394 KiB
C#

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
/// <summary>
/// 상품 마스터 조회
/// </summary>
/// <param name="sSubStoreNo"></param>
/// <param name="sItemCode"></param>
/// <param name="sScanCode"></param>
/// <returns></returns>
//기존
//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;
}
/// <summary>
/// 2019-05-08 - 1997fx11 : NHS 부가옵션을 조회
/// </summary>
/// <param name="sSubStoreNo"></param>
/// <param name="sSubItemCode"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 상품 마스터 조회(상품코드로 조회)
/// </summary>
/// <param name="sSubStoreNo">서브점포</param>
/// <param name="sItemCode">상품코드</param>
/// <returns></returns>
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
/// <summary>
/// 해피오더자동출하상품체크
/// </summary>
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
/// <summary>
/// 상품 마스터 조회(스캔코드로 조회)
/// </summary>
/// <param name="sSubStoreNo">서브점포</param>
/// <param name="sScanCode">스캔코드</param>
/// <returns></returns>
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
/// <summary>
/// 스캔 바코드 상품 조회
/// </summary>
/// <param name="sScanCode">스캔코드</param>
/// <returns></returns>
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
/// <summary>
/// 바코드스캔 코드 체크
/// </summary>
/// <param name="sScanCode"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 유통기간 문자열 날짜 변환
/// </summary>
/// <param name="sScanCode"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 유통기간 일자 및 체크
/// </summary>
/// <param name="sExpireDt"></param>
/// <returns></returns>
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
/// <summary>
/// 기능키 그룹 조회
/// </summary>
/// <param name="sFuncGroupID">기능그룹ID</param>
/// <returns></returns>
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;
}
/// <summary>
/// 기능키 조회
/// </summary>
/// <param name="sFuncID"></param>
/// <returns></returns>
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
/// <summary>
/// 기능키 배치 여부 조회
/// </summary>
/// <param name="sFuncID"></param>
/// <returns></returns>
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
/// <summary>
/// 공통코드 조회
/// </summary>
/// <param name="sCommCodeGroup">공통코드그룹(PosCont.COMMON_CODE_GROUP)</param>
/// <param name="sCommCode">공통코드</param>
/// <returns></returns>
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;
}
/// <summary>
/// 상품부가세율 구하기
/// </summary>
/// <param name="sTaxRateCode"></param>
/// <returns></returns>
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;
}
/// <summary>
/// MOT 마스터 조회
/// </summary>
/// <param name="sTableName"></param>
/// <param name="sMsgType"></param>
/// <param name="sCnntID"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 서브 매장 마스터 조회
/// </summary>
/// <param name="sTableName"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 입출금 계정 디테일 마스터
/// </summary>
/// <param name="sDpstWthdrType">입출금유형</param>
/// <param name="sAccCd">계정코드</param>
/// <returns></returns>
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;
}
/// <summary>
/// WEB_LINK 마스터 조회
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// 기능키 그룹 조회
/// </summary>
/// <param name="sFuncGroupID">기능그룹ID</param>
/// <returns></returns>
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 )
/// <summary>
/// 카드 승인 헤더 IRT 전문 생성(카드,OCB포인트,콘 공용사용)
/// </summary>
/// <param name="sMsgID"></param>
/// <param name="nIRTBodyLen"></param>
/// <param name="sCmpApprID">업체정보</param>
/// <param name="sApprID">단말기번호</param>
/// <returns></returns>
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 /
/// <summary>
/// SPC VAN 공통 전문 송/수신
/// </summary>
/// <param name="sSendItem"></param>
/// <param name="sRecvItem"></param>
/// <param name="bShowMsg"></param>
/// <returns></returns>
//#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
/// <summary>
/// 기능키 유효성 검사
/// </summary>
/// <param name="sFuncKey"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 기능키 서브 메뉴 처리
/// </summary>
/// <param name="sFuncKey"></param>
/// <returns></returns>
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
/// <summary>
/// 쿠폰할인 기능키 조회
/// </summary>
/// <param name="sFuncID"></param>
/// <returns></returns>
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
/// <summary>
/// 환율 조회
/// </summary>
/// <param name="sFuncID"></param>
/// <returns></returns>
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
/// <summary>
/// 환율 단위 조회
/// </summary>
/// <param name="sSaleDate"></param>
/// <returns></returns>
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
/// <summary>
/// 환율등록
/// </summary>
/// <param name="sFuncID"></param>
/// <returns></returns>
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
/// <summary>
/// 환율 차수 조회
/// </summary>
/// <param name="sSaleDate"></param>
/// <returns></returns>
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
/// <summary>
/// 식권 기능키 조회
/// </summary>
/// <param name="sFuncID"></param>
/// <returns></returns>
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
/// <summary>
/// 선불카드 판매 기능키 조회
/// </summary>
/// <param name="sFuncID"></param>
/// <returns></returns>
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
/// <summary>
/// 상품권 기능키 조회
/// </summary>
/// <param name="sFuncID"></param>
/// <returns></returns>
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
/// <summary>
/// 상품권 권종 조회
/// </summary>
/// <param name="sGiftCd"></param>
/// <returns></returns>
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
/// <summary>
/// Prefix에 의한 사용 VAN 정보 조회
/// </summary>
/// <param name="sPrefixNo"></param>
/// <returns></returns>
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로
/// <summary>
/// 프로덕트 ID로 상품 조회
/// </summary>
/// <param name="sFuncID"></param>
/// <returns></returns>
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 ,
/// <summary>
/// 마스터 기간제휴사 결제할인, 할인상품 마스터 조회
/// </summary>
/// <param name="sPayDcGrpType"></param>
/// <param name="sPayDcCd"></param>
/// <param name="sCmpGradeCd"></param>
/// <returns></returns>
//#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;
}
/// <summary>
/// 마스터 기간제휴사 할인상품 마스터 조회
/// </summary>
/// <param name="sPayDcGrpType"></param>
/// <param name="sPayDcCd"></param>
/// <param name="sCmpGradeCd"></param>
/// <returns></returns>
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
/// <summary>
/// 제휴사 결제 할인 금액 계산
/// </summary>
/// <param name="sPAY_WAY_CD"></param>
/// <param name="sPAY_DTL_CD_01"></param>
/// <param name="sCmpGradeCd"></param>
/// <param name="nSaleAmt"></param>
/// <returns></returns>
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 /
/// <summary>
/// POS IRT 전문 송/수신(점포서버 송수신: 제이슨 이용)
/// </summary>
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
/// <summary>
/// POS IRT 전문 송/수신 - 외부 VAN
/// </summary>
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
/// <summary>
/// POS IRT 전문 송/수신 - 외부 Van (전문 길이 위치 지정)
/// </summary>
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);
}
/// <summary>
/// POS IRT 전문 송/수신 - 외부 Van (헤더 길이 + 전문 길이 위치 지정)
/// </summary>
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 )
/// <summary>
/// POS IRT 전문 송/수신 - 외부 VAN (Byte 통신)
/// </summary>
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 )
/// <summary>
/// POS TCP 전문 송/수신 기타 (Byte 통신)
/// </summary>
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
/// <summary>
/// 결제수단코드 획득
/// </summary>
/// <param name="sPosMenuKey"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 결제세부코드 획득
/// </summary>
/// <param name="sPosMenuKey"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 기능키로 결제코드 획득
/// </summary>
/// <param name="sPosMenuKey"></param>
/// <param name="sPayWayCd"></param>
/// <param name="sPayDtlCd"></param>
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메뉴키
/// <summary>
/// 결제수단코드로 POS메뉴키 획득
/// </summary>
/// <param name="sPayWayCd"></param>
/// <param name="sPayDtlCd"></param>
/// <returns></returns>
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
/// <summary>
/// 결제할인 마스터에서 결제할인 중복 가능여부 체크
/// </summary>
/// <param name="sPosMenuKey"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 결제할인 마스터에서 결제할인 중복 가능여부 체크
/// </summary>
/// <returns></returns>
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증정
/// <summary>
/// 제휴사(통신사) VIP증정 대상 상품 체크
/// </summary>
/// <param name="sPAY_WAY_CD"></param>
/// <param name="sPAY_DTL_CD_01"></param>
/// <param name="sCmpGradeCd"></param>
/// <returns></returns>
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
/// <summary>
/// 공통 승인 로그 DB 저장
/// </summary>
/// <param name="결제정보"></param>
/// <param name="([0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드, [16]고객번호)"></param>
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;
}
/// <summary>
/// 특수문자 제거
/// </summary>
/// <param name="sStr"></param>
/// <returns></returns>
private string EnterNullRemoval(string sStr)
{
string sRet = sStr;
try
{
sRet = sStr.Replace("\r", "").Replace("\n", "").Replace(null, "");
}
catch (Exception) { }
return sRet;
}
#endregion
#region /
/// <summary>
/// 중간입금/마감입금 거래 조회
/// </summary>
/// <param name="sKind"></param>
/// <returns></returns>
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 /
/// <summary>
/// 중간입금/마감입금 내역 조회
/// </summary>
/// <param name="sTradeNo"></param>
/// <returns></returns>
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 /
/// <summary>
/// 중간입금/마감입금 원거래 취소 조회
/// </summary>
/// <param name="sTradeNo"></param>
/// <returns></returns>
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
/// <summary>
/// 서버전송 데이터 저장
/// </summary>
/// <param name="sFuncCode"></param>
/// <param name="aParam"></param>
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
/// <summary>
/// 기타 공지 처리 프로세스
/// </summary>
/// <param name="sMsgType"></param>
/// <param name="aInParam"></param>
/// <param name="aOutParam"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 기타 공지 업데이트
/// </summary>
/// <param name="sMsgDiv"></param>
/// <param name="sSeq"></param>
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
/// <summary>
/// 주변장치 상태 관리
/// </summary>
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
/// <summary>
/// 대기번호 자동 채번
/// </summary>
/// <returns></returns>
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
/// <summary>
/// BR 팝업 업무 조회 셋팅
/// </summary>
/// <returns></returns>
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);
}
}
/// <summary>
/// BR 팝업 업무 조회
/// </summary>
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;
}
/// <summary>
/// 디비 업데이트
/// </summary>
/// <param name="dr"></param>
/// <returns></returns>
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
/// <summary>
/// MSR 카드번호 첫자리와 끝자리 체크하여 문자인 경우 스페이스로 치환
/// </summary>
/// <param name="sCardNo"></param>
/// <param name="sValidDate"></param>
/// <param name="sInputType"></param>
/// <returns></returns>
//#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
/// <summary>
/// 거래번호 증가 체크
/// </summary>
/// <returns></returns>
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 ( )
/// <summary>
/// 상품 마스터 조회(선불카드 금액으로 상품 검색)
/// </summary>
/// <param name="sSubStoreNo"></param>
/// <param name="nSaleAmt"></param>
/// <returns></returns>
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
/// <summary>
/// 카드사 코드 조회
/// </summary>
/// <param name="sCardDiv"></param>
/// <returns></returns>
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
/// <summary>
/// 카드사 매입사 조회
/// </summary>
/// <param name="sCardDiv"></param>
/// <param name="sBankNo"></param>
/// <returns></returns>
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
/// <summary>
/// 카드사 매입사 조회
/// </summary>
/// <param name="sCardDiv"></param>
/// <param name="sBankNo"></param>
/// <param name="sCardType"></param>
/// <returns></returns>
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
/// <summary>
/// 선불카드 MST_ITEM 생성
/// </summary>
/// 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 -
/// <summary>
/// 온라인 쿠폰 조회 응답 전문의 제품군의 상품 정보를 한다.
/// </summary>
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 온라인 쿠폰 조회 응답 전문의 코드가 제품군인지 상품코드인지 체크.
///// <summary>
///// 온라인 쿠폰 조회 응답 전문의 코드가 제품군인지 상품코드인지 체크.
///// MST_CPN_ITEM_GRP_MNG에 존재 시 제품군 코드이고 아니면 상품코드로 판단한다.
///// MST_ITEM에서 상품코드인지 조회하지 않는 이유는 등록 상품에 존재한다면 당연히 MST_ITEM에도 데이터가 존재하기 때문이다.
///// </summary>
////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)
/// <summary>
/// 공통코드 봉투상품 조회(T0042)
/// </summary>
/// <returns></returns>
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
/// <summary>
/// PC 메모리 로그
/// </summary>
/// <returns></returns>
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 =========================================================================================
/// <summary>
/// 2019-03-04 - 1997fx11 : 01.NHS_SCREEN
/// </summary>
/// <param name="sScreenCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 02.NHS_SCREEN_CONTENTS
/// </summary>
/// <param name="sScreenCD"></param>
/// <param name="sFrameCD"></param>
/// <param name="sLayerCD"></param>
/// <param name="sContentsID"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 03.NHS_SCREEN_LAYER
/// </summary>
/// <param name="sScreenCD"></param>
/// <param name="sFrameCD"></param>
/// <param name="sLayerCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 03.Select_NHS_SCREEN_LAYER_GROUPBY_FRAMECD
/// </summary>
/// <param name="sScreenCD"></param>
/// <param name="sFrameCD"></param>
/// <returns></returns>
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;
}
}
/*
/// <summary>
/// 2019-03-04 - 1997fx11 : 04.NHS_STOR_PRD_CATE
/// </summary>
/// <param name="sPrdCateUpCD"></param>
/// <param name="sPrdCateCD"></param>
/// 2019-03-11 - 1997fx11 : 'Select_NHS_STOR_PRD_CATE' 삭제
/// <returns></returns>
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;
}
*/
/// <summary>
/// 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 표시
/// </summary>
/// <param name="sPrdCateCD"></param>
/// <param name="sTouchKeyCD"></param>
/// <param name="sItemCD"></param>
/// <param name="sBarcode"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 06.NHS_UI_TEMPLATE
/// </summary>
/// <param name="sTemplCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 07.NHS_CPI_CONTENTS
/// </summary>
/// <param name="sCpiCD"></param>
/// <returns></returns>
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;
}
/*
/// <summary>
/// 2019-03-04 - 1997fx11 : 08.NHS_CUST_BUY_HIST
/// 2019-03-07 - 1997fx11 : 삭제
/// </summary>
/// <param name="sHPCCustCD"></param>
/// <param name="sItemCD"></param>
/// <returns></returns>
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;
}
*/
/// <summary>
/// 2019-03-04 - 1997fx11 : 09.NHS_LANG_MSG
/// 2019-03-07 - 1997fx11 : 'PRD_CATE_CD', 'ITEM_CD' Column 삭제
/// </summary>
/// <param name="sLanguageGubunCD"></param>
/// <param name="sLanguageCD"></param>
/// <param name="sLanguageMessageCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 10.NHS_LAYOUT
/// </summary>
/// <param name="sLayoutCD"></param>
/// <returns></returns>
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;
}
/*
/// <summary>
/// 2019-03-04 - 1997fx11 : 11.NHS_PRD_CATE_L
/// </summary>
/// <param name="sProductCategoryCD"></param>
/// <param name="sProductCategoryUpCD"></param>
/// 2019-03-11 - 1997fx11 : 'Select_NHS_PRD_CATE_L' 삭제
/// <returns></returns>
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;
}
*/
/*
/// <summary>
/// 2019-03-04 - 1997fx11 : 12.NHS_PRD_CATE_M
/// </summary>
/// <param name="sProductCategoryCD"></param>
/// <param name="sProductCategoryUpCD"></param>
/// 2019-03-11 - 1997fx11 : 'Select_NHS_PRD_CATE_M' 삭제
/// <returns></returns>
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;
}
*/
/// <summary>
/// 2019-03-04 - 1997fx11 : 13.NHS_PRD_MST
/// </summary>
/// <param name="sBarCD"></param>
/// <param name="sItemCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 14.NHS_OPTN_MST
/// </summary>
/// <param name="sItemOptionGroupCD"></param>
/// <param name="sItemOptionCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 15.NHS_PRD_OPTN_GRP
/// </summary>
/// <param name="sItemOptionGroupCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 16.NHS_PRD_OPTN
/// 2019-03-08 'PRD_CATE_CD' Column 삭제
/// </summary>
/// <param name="sItemCD"></param>
/// <param name="sItemOptionGroupCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 17.NHS_PRD_CATE
/// </summary>
/// <param name="sProductCategoryCD"></param>
/// <param name="sProductCategoryUpCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 18.NHS_STOR_PRD_TAG
/// </summary>
/// <param name="sItemCD"></param>
/// <param name="sTagKind"></param>
/// <returns></returns>
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;
}
/// <summary>
/// Kiosk 에서 사용가능한 결재수단 목록을 조회 : 2019-05-17 - 1997fx11
/// </summary>
/// <param name="bUseYN"></param>
/// <returns></returns>
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;
}
/// <summary>
/// Kiosk 에서 사용가능한 결재수단 사용여부를 조회 : 2019-06-10 - 1997fx11
/// </summary>
/// <param name="bUseYN"></param>
/// <returns></returns>
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 : 데이터베이스 관련
/// <summary>
/// 2019-03-04 - 1997fx11 : 08.NHS_CUST_BUY_HIST - GetCustBuyHistory
/// 2019-03-07 - 1997fx11 : 삭제
/// 2019-03-19 - 1997fx11 : 호출시 실행하는 방법으로 변경
/// </summary>
/// <param name="sUpdateDT"></param>
/// <param name="sHpcCustCd"></param>
/// <param name="sItemCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 신규 ITEM 수신
/// </summary>
/// <param name="sUpdateDT"></param>
/// <param name="sItemCD"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-04 - 1997fx11 : 신규 ITEM 수신
/// </summary>
/// <param name="aRowDatas"></param>
/// <returns></returns>
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;
}
}
/// <summary>
/// 2019-03-21 - 1997fx11 : 설정 파일 읽기
/// </summary>
/// <param name="cCfgInfo"></param>
/// <param name="sGroup"></param>
/// <param name="sValueName"></param>
/// <param name="sDefault"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-03-21 - 1997fx11 : 상품(아이템) 변경 처리
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// 2019-05-29 - 1997fx11 : 알림톡 전송
/// </summary>
/// <param name="sPhoneNo"></param>
/// <param name="korItemName"></param>
/// <param name="itemCount"></param>
/// <returns></returns>
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; // 환경설정 정보 송/수신
/// <summary>
/// 2019-04-26 - 1997fx11 : 자동 마감/개업
/// </summary>
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);
}
}
}
/// <summary>
/// 메인포스일 경우 개점일자 조회
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// 메인포스어부
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// 자동 마감
/// </summary>
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) { }
}
/// <summary>
/// 디비백업
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// 환경설정파일백업
/// </summary>
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) { }
}
/// <summary>
///
/// </summary>
/// <param name="sSaleDate"></param>
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) { }
}
}
}