2019-06-16 05:12:09 +00:00
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 " ) ;
2019-07-05 04:15:37 +00:00
sbQuery . Append ( "AND [A].[USE_YN] = '1' " ) ;
2019-06-16 05:12:09 +00:00
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 ) { }
}
}
}