/*
//#20180413 웰컴카드 신규기능 추가 start,phj
//#20180413 웰컴카드 신규기능 추가 end,phj
*/
using System;
using System.Collections;
using Cosmos.UserFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;
using System.Text;
using System.Runtime.InteropServices;
using System.IO;
using System.Data.OleDb;
using System.Data;
using System.Xml;
using ADODB;
using System.Reflection;
using PosDBApi;
using Cosmos.BaseFrame;
using Newtonsoft.Json;
/*-----------------------------------------------------------------------------------------------*/
// 설 명 : 웰컴카드 발급/할인 함수모음
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Service
{
class WelcomCard : PaymentBase, IPaymentUs, IWelcomeCard
//class WelcomCard : PaymentBase, IWelcomeCard
{
#region 생산자
private IPaymentExpUs m_cHappyPoint = null;
private IDatabaseSQL m_cSqlDbService = null;
///
/// 현재 등록중인 결제 정보
///
public WelcomCard()
{
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
//m_cDevStatus = (DeviceStatus)StateObject.TRAN; // 디바이스 관리
m_cHappyPoint = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT);
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
}
#endregion
#region 결제 등록
///
/// 결제 등록
///
public string SetPayment(string[] aParam)
{
return "";
}
#endregion
#region 결제 조회
///
/// 결제 조회
///
public string SearchPayment(string[] aParam, ref string[] aRet)
{
return "";
}
#endregion
#region 결제 정보 획득
///
/// 결제 정보 획득
///
public object GetPayment(string[] aParam)
{
return "";
}
#endregion
#region 결제 취소
///
/// 결제 취소
///
public string CancelPayment(string[] aParam)
{
string sRet = UserCom.RST_ERR;
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return sRet;
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return sRet;
double sTarget_Amt = 0;
string sInPutData = string.Empty;
string sInPutType = string.Empty;
string sTelecom = string.Empty;
string sCard_No = string.Empty;
string sHP_WccNo = string.Empty;
string sHP_CustNo = string.Empty;
string sCard_type = string.Empty;
string sYYYYMMDD = string.Empty;
string sHHmmss = string.Empty;
string sApprNo = string.Empty;
try
{
int nPayRow = CmUtil.IntParse(aParam[0]); // 취소할 행번호
// 결제 내역 받아 오기
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
m_cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[nPayRow];
sInPutData = m_cPayItem.OCCUR_ENTRY_19; // 입력 데이터
sInPutType = m_cPayItem.OCCUR_ENTRY_05; // 입력구분
sTelecom = ""; //통신사구분
sCard_No = m_cPayItem.OCCUR_ENTRY_01; //카드번호
sHP_WccNo = m_cPayItem.OCCUR_ENTRY_01; //HPC - 웰컴카드번호
sTarget_Amt = m_cPayItem.AMT_ENTRY_10; //대상금액
sHP_CustNo = m_cPayItem.OCCUR_ENTRY_22; //HPC - 회원번호
sCard_type = m_cPayItem.OCCUR_ENTRY_23; //실물카드 또는 해피앱 구분
sYYYYMMDD = m_cPayItem.OCCUR_ENTRY_03; //거래일자(YYYYMMDD)
sHHmmss = m_cPayItem.OCCUR_ENTRY_04; //거래시간(HHMMSS)
sApprNo = m_cPayItem.OCCUR_ENTRY_02; //승인번호
// 전문통신!!!
string[] saRecvdData = null;
sRet = WelcomeCard_SendDataMake(PosConst.CANCEL_DIV.NORMAL,
new string[] {PosConst.WELCOMECARD_TYPE.DC_CANCEL, //웰컴타입
sInPutData, //카드번호
sInPutType, //입력구분
sHP_CustNo, //HPC - 회원번호
sHP_WccNo, //HPC - 웰컴카드번호
sCard_type, //웰컴카드 C:실물카드, A:해피App
sTelecom, //통신사구분
sTarget_Amt.ToString(), //할인대상금액
sYYYYMMDD, //거래일자(YYYYMMDD)
sHHmmss, //거래시간(HHMMSS)
sApprNo}, //승인번호
ref saRecvdData);
if (sRet != UserCom.RST_OK) return sRet;
if (m_cPayItem.PAY_DTL_CD_05 == PosConst.PAY_DC_TYPE.DC)
{
ClearPluDiscountAmount(m_cPayItem.PAY_WAY_CD + m_cPayItem.PAY_DTL_CD_01, ""); // 할인금액 삭제
}
m_cPayItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
m_cDataService.UpdatePluAmount(); // 상품 합계금액 계산(거래해더)
m_cDataService.UpdatePayAmount(); // 결제 금액 재 계산 처리
// 여전법 대응 ///////////////////////////////////////////////////////////////////
CmUtil.ZeroFillClear(ref m_cPayItem.CanFiller1);
//////////////////////////////////////////////////////////////////////////////////
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;
}
return sRet;
}
#endregion
#region 결제 반품(자동반품)
///
/// 결제 반품(자동반품)
///
public string RefundPayment(string[] aParam)
{
string sRet = UserCom.RST_ERR;
double sTarget_Amt = 0;
string sInPutData = string.Empty;
string sInPutType = string.Empty;
string sTelecom = string.Empty;
string sCard_No = string.Empty;
string sHP_WccNo = string.Empty;
string sHP_CustNo = string.Empty;
string sCard_type = string.Empty;
string sYYYYMMDD = string.Empty;
string sHHmmss = string.Empty;
string sApprNo = string.Empty;
try
{
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND) return sRet;
int nPayRow = CmUtil.IntParse(aParam[0]); // 취소할 행번호
// 결제 내역 받아 오기
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
m_cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[nPayRow];
sInPutData = m_cPayItem.OCCUR_ENTRY_19;
sInPutType = m_cPayItem.OCCUR_ENTRY_05; // 입력구분
sTelecom = ""; //통신사구분
sCard_No = m_cPayItem.OCCUR_ENTRY_01; //카드번호
sHP_WccNo = m_cPayItem.OCCUR_ENTRY_01; //HPC - 웰컴카드번호
sTarget_Amt = m_cPayItem.AMT_ENTRY_10; //대상금액
sHP_CustNo = m_cPayItem.OCCUR_ENTRY_22; //HPC - 회원번호
sCard_type = m_cPayItem.OCCUR_ENTRY_23; //실물카드 또는 해피앱 구분
sYYYYMMDD = m_cPayItem.OCCUR_ENTRY_03; //거래일자(YYYYMMDD)
sHHmmss = m_cPayItem.OCCUR_ENTRY_04; //거래시간(HHMMSS)
sApprNo = m_cPayItem.OCCUR_ENTRY_02; //승인번호
// 전문통신!!!
string[] saRecvdData = null;
sRet = WelcomeCard_SendDataMake(PosConst.CANCEL_DIV.CANCEL,
new string[] {PosConst.WELCOMECARD_TYPE.DC_CANCEL, //웰컴타입
sInPutData, //카드번호
sInPutType, //입력구분
sHP_CustNo, //HPC - 회원번호
sHP_WccNo, //HPC - 웰컴카드번호
sCard_type, //웰컴카드 C:실물카드, A:해피App
sTelecom, //통신사구분
sTarget_Amt.ToString(), //할인대상금액
sYYYYMMDD, //거래일자(YYYYMMDD)
sHHmmss, //거래시간(HHMMSS)
sApprNo}, //승인번호
ref saRecvdData);
if (sRet != UserCom.RST_OK) return sRet;
//if (m_cPayItem.PAY_DTL_CD_05 == PosConst.PAY_DC_TYPE.DC)
//{
// ClearPluDiscountAmount(m_cPayItem.PAY_WAY_CD + m_cPayItem.PAY_DTL_CD_01, ""); // 할인금액 삭제
//}
//m_cPayItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
//m_cDataService.UpdatePluAmount(); // 상품 합계금액 계산(거래해더)
//m_cDataService.UpdatePayAmount(); // 결제 금액 재 계산 처리
// 여전법 대응 ///////////////////////////////////////////////////////////////////
CmUtil.ZeroFillClear(ref m_cPayItem.CanFiller1);
//////////////////////////////////////////////////////////////////////////////////
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;
}
return sRet;
}
#endregion
#region 웰컴카드 할인등록
///
/// 웰컴카드 할인등록
///
public string SetWccDCPayment(string[] sParam, ref string[] sRevParam)
{
string sRet = UserCom.RST_ERR;
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return sRet;
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return sRet;
//적용 시 주석해제
//string sVanCD = "";
//sVanCD = GetPayDtlCdToVanCode(ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD);
//if (sVanCD == "")
//{
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0563);
// return UserCom.RST_ERR;
//}
string sWccType = sParam.Length >= 1 ? sParam[0] : ""; //웰컴타입
string sInputCardNo = sParam.Length >= 2 ? sParam[1] : ""; //카드번호
string sInputType = sParam.Length >= 3 ? sParam[2] : ""; //카드입력구분
string sInputHPCustNo = sParam.Length >= 4 ? sParam[3] : ""; //HPC - 회원번호
string sInputHPWccNo = sParam.Length >= 5 ? sParam[4] : ""; //HPC - 웰컴카드번호
string sInputCardtype = sParam.Length >= 6 ? sParam[5] : ""; //웰컴카드 C:실물카드, A:해피App
string sInputTelecom = sParam.Length >= 7 ? sParam[6] : ""; //통신사구분
string sTargetAmt = sParam.Length >= 8 ? sParam[7] : ""; // 할인대상금액
string sYYYYMMDD = sParam.Length >= 9 ? sParam[8] : ""; //거래일자(YYYYMMDD)
string sHHmmss = sParam.Length >= 10 ? sParam[9] : ""; //거래시간(HHMMSS)
string sApprNo = sParam.Length >= 11 ? sParam[10] : ""; //승인번호
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_SendDataMake] " +
" sInputCardNo :" + sInputCardNo + "," +
" sInputType :" + sInputType + "," +
" sInputHPCustNo :" + sInputHPCustNo + "," +
" sInputHPWccNo :" + sInputHPWccNo + "," +
" sInputCardtype :" + sInputCardtype + "," +
" sInputTelecom :" + sInputTelecom + "," +
" sTargetAmt :" + sTargetAmt + "," +
" sYYYYMMDD :" + sYYYYMMDD + "," +
" sHHmmss :" + sHHmmss + "," +
" sApprNo :" + sApprNo
);
m_cPayItem = new Column.TR_PAYMENT.DATA(); // 결과 저장 변수 생성
m_cPayItem.PAY_WAY_CD = GetMenuKeyToPayWayCd(PosKey.MENU_KEY.WELCOMECARD_DC);
m_cPayItem.PAY_DTL_CD_01 = GetMenuKeyToPayDtlCd(PosKey.MENU_KEY.WELCOMECARD_DC);
// 전문통신!!!
sRet = WelcomeCard_SendDataMake(PosConst.CANCEL_DIV.NORMAL,
new string[] { sWccType,
sInputCardNo,
sInputType,
sInputHPCustNo,
sInputHPWccNo,
sInputCardtype,
"",
sTargetAmt,
sYYYYMMDD,
sHHmmss,
sApprNo },
ref sRevParam);
if (sRet != UserCom.RST_OK) { return sRet; }
// 결제 아이템 추가
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); // 결제 내역 받아 오기
m_cPayItem.SEQ = alPayItem.Count + 1;
alPayItem.Add(m_cPayItem);
if (m_cPayItem.PAY_DTL_CD_05 == PosConst.PAY_DC_TYPE.DC)
{
// 상품아이템에 할인금액 설정
SetPluDiscountAmount(-1, m_cPayItem.PAY_WAY_CD + m_cPayItem.PAY_DTL_CD_01, "", m_cPayItem.PAY_AMT);
}
m_cPayItem.CANCEL_DIV = PosConst.CANCEL_DIV.NORMAL;
m_cDataService.UpdatePluAmount(); // 상품 합계금액 계산(거래해더)
m_cDataService.UpdatePayAmount(); // 결제 금액 재 계산 처리
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
return UserCom.RST_ERR;
}
return sRet;
}
#endregion
#region 결제 수기 등록(임의등록)
///
/// 결제 수기 등록(임의등록)
///
public string SetMenualPayment(string[] aParam)
{
return "";
}
#endregion
#region 해피앱 고객등록 대상자인지 체크
public bool ClientRegisterCheck(string sType, string[] aParam, ref string sHP_CustNumer, ref string sHP_WelcomeCard)
{
// 해피포인트 고객유무
bool bRet = false;
try
{
string HP_CustNumer = "";
string HP_WelcomeCard = "";
string[] saRecvdData = null;
// 해피포인트 조회 건 체크.
if (sType == PosConst.WELCOMECARD_MSG.HP_SEARCH_DATA)
{
Column.TR_ETC.DATA cEtcItem = null;
cEtcItem = new Column.TR_ETC.DATA();
cEtcItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { });
if (cEtcItem == null) return false;
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) return false;
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM || cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) return false;
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") return false; //해피앱여부 20180628 체크안하도록수정
if (cEtcItem.OCCUR_ENTRY_10 == "") return false; //HCP회원번호
// HCP고객번호
HP_CustNumer = CmUtil.MidH(cEtcItem.OCCUR_ENTRY_10, 0, 10).Trim();
//// 웰컴카드번호
//int nNowPos = 0;
//string[] 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(cEtcItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp);
//HP_WelcomeCard = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointRESERVED]; //HPC -WELCOME CARD 추후 적립받으면 적용할 것
//if (HP_WelcomeCard != "") { HP_WelcomeCard = CmUtil.MidH(HP_WelcomeCard, 0, 50).Trim(); }
// 웰컴카드번호
HP_WelcomeCard = cEtcItem.OCCUR_ENTRY_19;
bRet = true;
}
// 해피포인트 등록 건 있는지 체크.
else if (sType == PosConst.WELCOMECARD_MSG.HP_REGISTER_DATA)
{
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) continue;
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") continue; //해피앱여부 20180628 체크안하도록수정
if (cEtcItem.OCCUR_ENTRY_10 == "") continue; //HCP회원번호
// HCP고객번호
HP_CustNumer = CmUtil.MidH(cEtcItem.OCCUR_ENTRY_10, 0, 10).Trim();
//// 웰컴카드번호
//int nNowPos = 0;
//string[] 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(cEtcItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp);
//HP_WelcomeCard = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointRESERVED]; //HPC -WELCOME CARD 추후 적립받으면 적용할 것
//if (HP_WelcomeCard != "") { HP_WelcomeCard = CmUtil.MidH(HP_WelcomeCard, 0, 50).Trim(); }
// 웰컴카드번호
HP_WelcomeCard = cEtcItem.OCCUR_ENTRY_19;
bRet = true;
break;
}
}
// 현재 해피포인트 조회 건 있는지 체크.
else if (sType == PosConst.WELCOMECARD_MSG.HP_SEARCH)
{
// 해피포인트 자동 조회
if (aParam == null) return false;
if (aParam.Length <= 0) return false;
string sPutType = aParam.Length >= 1 ? aParam[0] : "";
string sMaskData = aParam.Length >= 2 ? aParam[1] : "";
string sEncData = aParam.Length >= 3 ? aParam[2] : "";
string sMsgYN = aParam.Length >= 4 ? aParam[3] : "";
string sServiceCode = aParam.Length >= 5 ? aParam[4] : "";
string sInPutData = aParam.Length >= 6 ? aParam[5] : "";
//-------------------------------------------------------------------------------------------------------------------------
// 해피포인트 조회전문 날림
//-------------------------------------------------------------------------------------------------------------------------
string sRet = "";
sRet = m_cHappyPoint.SearchPayment(new string[] { sPutType, sMaskData, sEncData, sMsgYN, "", sInPutData }, ref saRecvdData);
if (sRet != UserCom.RST_OK) return false;
//-------------------------------------------------------------------------------------------------------------------------
// 조회 데이터 획득
//-------------------------------------------------------------------------------------------------------------------------
Column.TR_ETC.DATA cEtcItem = null;
cEtcItem = new Column.TR_ETC.DATA();
cEtcItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { });
if (cEtcItem == null) return false;
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) return false;
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM || cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) return false;
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") return false; //해피앱여부
//if (cEtcItem.OCCUR_ENTRY_10 == "") return false; //HCP회원번호
// HCP고객번호
HP_CustNumer = CmUtil.MidH(cEtcItem.OCCUR_ENTRY_10, 0, 10).Trim();
//// 웰컴카드번호
//int nNowPos = 0;
//string[] 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(cEtcItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp);
//HP_WelcomeCard = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointRESERVED]; //HPC -WELCOME CARD 추후 적립받으면 적용할 것
//if (HP_WelcomeCard != "") { HP_WelcomeCard = CmUtil.MidH(HP_WelcomeCard, 0, 50).Trim(); }
// 웰컴카드번호
HP_WelcomeCard = cEtcItem.OCCUR_ENTRY_19;
bRet = true;
}
sHP_CustNumer = HP_CustNumer; //HPC 조회응답 - 회원번호
sHP_WelcomeCard = HP_WelcomeCard; //HPC 조회응답 - 컴카드번호
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
bRet = false;
}
return bRet;
}
#endregion
#region 웰컴카드 빈체크
public string WelcomeCard_PrefixCheck(string pCardNo)
{
string sRet = "";
string sQuery = "";
string sCardNo = "";
string sCardKind = "";
try
{
//#17515 PB 중산마을 - 유플러스 결합카드 통신사 자동선택안되는 현상 start
if (PosMstManager.GetPosOption(POS_OPTION.OPT516) != "1") return sRet;
//#17515 PB 중산마을 - 유플러스 결합카드 통신사 자동선택안되는 현상 end
sCardNo = pCardNo;
if (sCardNo == "") return sRet;
sQuery = " SELECT * ";
sQuery += " FROM POSMST.dbo.MST_CARD_PREFIX WITH(NOLOCK) ";
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND '" + sCardNo.Substring(0, 6) + "' LIKE REPLACE(PRFX_CD, 'X', '') + '%'";
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'";
IMasterUs cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER);
DataTable dtCardInfo = cMstService.Select(new string[] { sQuery });
if (dtCardInfo != null && dtCardInfo.Rows.Count > 0)
{
foreach (DataRow dr in dtCardInfo.Rows)
{
if (CmUtil.GetDataRowStr(dr, PosMst.MST_CARD_PREFIX.DATA.CARD_DIV) == "C") continue;
sCardKind = CmUtil.GetDataRowStr(dr, PosMst.MST_CARD_PREFIX.DATA.CARD_DIV);
break;
}
}
if (sCardKind == "H") sCardKind = "A";
if (sCardKind == "W") sCardKind = "C";
sRet = sCardKind;
return sRet;
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
return sRet;
}
}
#endregion
#region 웰컴카드 전문조립
public string WelcomeCard_SendDataMake(string sTradeDiv, string[] sParam, ref string[] sRevParam)
{
string sRet = UserCom.RST_ERR;
string sWccType = sParam.Length >= 1 ? sParam[0] : ""; //웰컴타입
string sInputCardNo = sParam.Length >= 2 ? sParam[1] : ""; //카드번호
string sInputType = sParam.Length >= 3 ? sParam[2] : ""; //카드입력구분
string sInputHPCustNo = sParam.Length >= 4 ? sParam[3] : ""; //HPC - 회원번호
string sInputHPWccNo = sParam.Length >= 5 ? sParam[4] : ""; //HPC - 웰컴카드번호
string sInputCardtype = sParam.Length >= 6 ? sParam[5] : ""; //웰컴카드 C:실물카드, A:해피App
string sInputTelecom = sParam.Length >= 7 ? sParam[6] : ""; //통신사구분
string sTargetAmt = sParam.Length >= 8 ? sParam[7] : ""; // 할인대상금액
string sYYYYMMDD = sParam.Length >= 9 ? sParam[8] : ""; //거래일자(YYYYMMDD)
string sHHmmss = sParam.Length >= 10 ? sParam[9] : ""; //거래시간(HHMMSS)
string sApprNo = sParam.Length >= 11 ? sParam[10] : ""; //승인번호
string sReadingHPData = sParam.Length >= 12 ? sParam[11] : ""; //
string[] saSendData = null;//보내는
string[] saRecvdData = null;//받은
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_SendDataMake] " +
" sTradeDiv :" + sTradeDiv + "," +
" sWccType :" + sWccType + "," +
" sInputHPCustNo :" + sInputHPCustNo + "," +
" sInputHPWccNo :" + sInputHPWccNo + "," +
" sInputCardtype :" + sInputCardtype + "," +
" sInputTelecom :" + sInputTelecom + "," +
" sTargetAmt :" + sTargetAmt + "," +
" sYYYYMMDD :" + sYYYYMMDD + "," +
" sHHmmss :" + sHHmmss + "," +
" sApprNo :" + sApprNo + "," +
" sReadingHPData :" + sReadingHPData
);
if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH || sWccType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER || sWccType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER_CANCEL)
{
#region 웰컴카드 조회/ 웰컴고객등록
if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH)
{
saRecvdData = new string[Column.WELCOMECARD_SEARCH_RECV.LEN.Length];
saSendData = new string[Column.WELCOMECARD_SEARCH.LEN.Length];
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
saSendData[0] = "0"; //전체 전문길이
saSendData[1] = "MC"; //구분
saSendData[2] = "0100"; //전문유형
saSendData[3] = "10"; //업무구분
saSendData[4] = "V100"; //전문버전
}
else if (sWccType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER)
{
saRecvdData = new string[Column.WELCOMECARD_SERVER_REGISTER_RECV.LEN.Length];
saSendData = new string[Column.WELCOMECARD_SERVER_REGISTER.LEN.Length];
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
saSendData[0] = "0"; //전체 전문길이
saSendData[1] = "MC"; //구분
saSendData[2] = "2300"; //전문유형
saSendData[3] = "40"; //업무구분
saSendData[4] = "V100"; //전문버전
}
else if (sWccType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER_CANCEL)
{
saRecvdData = new string[Column.WELCOMECARD_SERVER_REGISTER_RECV.LEN.Length];
saSendData = new string[Column.WELCOMECARD_SERVER_REGISTER.LEN.Length];
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
saSendData[0] = "0"; //전체 전문길이
saSendData[1] = "MC"; //구분
saSendData[2] = "2400"; //전문유형
saSendData[3] = "40"; //업무구분
saSendData[4] = "V100"; //전문버전
}
saSendData[5] = sYYYYMMDD; //거래일자
saSendData[6] = sHHmmss; //거래시간
saSendData[7] = sApprNo; //승인번호
saSendData[8] = ""; //응답코드
saSendData[9] = sInputCardNo; //welcome카드번호
saSendData[10] = sInputHPCustNo; //HPC고객번호
saSendData[11] = m_cPosStatus.Base.SaleDate; //영업일자
saSendData[12] = m_cPosStatus.Base.StoreNo; //점포코드
saSendData[13] = m_cPosStatus.Base.PosNo; //POS번호
saSendData[14] = m_cPosStatus.Base.TradeNo; //BILL번호
saSendData[15] = ""; //Filler
#endregion
// 전문통신!!!
sRet = WelcomeCard_Approval(sTradeDiv, sWccType, sInputType, saSendData, ref saRecvdData);
}
else if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER || sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
{
#region 발급/ 발급취소
saRecvdData = new string[Column.WELCOMECARD_ISSUE_RECV.LEN.Length];
saSendData = new string[Column.WELCOMECARD_ISSUE.LEN.Length];
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
// 웰컴카드 발급
if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER)
{
saSendData[0] = "0"; //전체 전문길이
saSendData[1] = "MC"; //구분
saSendData[2] = "2100"; //전문유형
saSendData[3] = "50"; //업무구분
saSendData[4] = "V100"; //전문버전
}
// 웰컴카드 발급취소
else if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
{
saSendData[0] = "0"; //전체 전문길이
saSendData[1] = "MC"; //구분
saSendData[2] = "2200"; //전문유형
saSendData[3] = "50"; //업무구분
saSendData[4] = "V100"; //전문버전
}
saSendData[5] = sYYYYMMDD; //거래일자
saSendData[6] = sHHmmss; //거래시간
saSendData[7] = sApprNo; //승인번호
saSendData[8] = ""; //응답코드
saSendData[9] = sInputCardNo; //카드번호
saSendData[10] = sInputHPCustNo; //HPC고객번호
saSendData[11] = m_cPosStatus.Base.SaleDate; //영업일자
saSendData[12] = m_cPosStatus.Base.StoreNo; //점포코드
saSendData[13] = m_cPosStatus.Base.PosNo; //POS번호
saSendData[14] = m_cPosStatus.Base.TradeNo; //BILL번호
saSendData[15] = sInputTelecom; //통신사 구분
saSendData[16] = ""; //Filler
#endregion
// 전문통신!!!
sRet = WelcomeCard_Approval(sTradeDiv, sWccType, sInputType, saSendData, ref saRecvdData);
}
else if (sWccType == PosConst.WELCOMECARD_TYPE.DC_AGREE ||
sWccType == PosConst.WELCOMECARD_TYPE.DC_CANCEL ||
sWccType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE ||
sWccType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
{
#region 할인관련
saRecvdData = new string[Column.WELCOMECARD_DC_RECV.LEN.Length];
saSendData = new string[Column.WELCOMECARD_DC.LEN.Length];
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
//할인
if (sWccType == PosConst.WELCOMECARD_TYPE.DC_AGREE)
{
saSendData[0] = "0"; //전체 전문길이
saSendData[1] = "MC"; //구분
saSendData[2] = "0200"; //전문유형
saSendData[3] = "20"; //업무구분
saSendData[4] = "V100"; //전문버전
}
//할인취소
else if (sWccType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
{
saSendData[0] = "0"; //전체 전문길이
saSendData[1] = "MC"; //구분
saSendData[2] = "0300"; //전문유형
saSendData[3] = "20"; //업무구분
saSendData[4] = "V100"; //전문버전
}
//망상할인취소
else if (sWccType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE)
{
saSendData[0] = "0"; //전체 전문길이
saSendData[1] = "MC"; //구분
saSendData[2] = "0400"; //전문유형
saSendData[3] = "20"; //업무구분
saSendData[4] = "V100"; //전문버전
}
//망상할인
else if (sWccType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
{
saSendData[0] = "0"; //전체 전문길이
saSendData[1] = "MC"; //구분
saSendData[2] = "0500"; //전문유형
saSendData[3] = "20"; //업무구분
saSendData[4] = "V100"; //전문버전
}
saSendData[5] = sYYYYMMDD; //거래일자
saSendData[6] = sHHmmss; //거래시간
saSendData[7] = sApprNo; //승인번호
saSendData[8] = ""; //응답코드
saSendData[9] = sInputCardNo; //카드번호
saSendData[10] = sInputHPCustNo; //HPC고객번호
saSendData[11] = m_cPosStatus.Base.SaleDate; //영업일자
saSendData[12] = m_cPosStatus.Base.StoreNo; //점포코드
saSendData[13] = m_cPosStatus.Base.PosNo; //POS번호
saSendData[14] = m_cPosStatus.Base.TradeNo; //BILL번호
saSendData[15] = sInputCardtype; //입력구분 C:실물카드, A:해피App
saSendData[16] = sTargetAmt; //대상금액
saSendData[17] = ""; //Filler
#endregion
// 전문통신!!!
sRet = WelcomeCard_Approval(sTradeDiv, sWccType, sInputType, saSendData, ref saRecvdData);
}
else if (sWccType == PosConst.WELCOMECARD_TYPE.HPC_CLIENT_REGISTER)
{
#region HPC고객등록
string sReqDivCd = string.Empty;
if (sTradeDiv == PosConst.CANCEL_DIV.NORMAL)
{
sReqDivCd = "40";//등록
}
else
{
sReqDivCd = "41";//해지
}
//sRet = HPAppClientRegister(new string[] { sWccType, sInputType, sReqDivCd, sInputCardNo, sTradeDiv, sReadingHPData });
sRet = HPAppClientRegister(new string[] { sTradeDiv, sWccType, sInputCardNo, sInputType, sReqDivCd, sInputHPWccNo, sReadingHPData });
#endregion
}
sRevParam = saRecvdData;
//#20180605 응답값이 비어있을 경우 에러로 판단. start
if (sWccType != PosConst.WELCOMECARD_TYPE.HPC_CLIENT_REGISTER && saRecvdData == null)
{
sRet = UserCom.RST_ERR;
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_SendDataMake] saRecvdData is null");
}
//#20180605 응답값이 비어있을 경우 에러로 판단. end
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_SendDataMake] sRet :" + 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 UserCom.RST_ERR;
}
return sRet;
}
#endregion
#region 웰컴카드 바디생성
///
/// 월컴카드 발급-조회
///
private string MakeBodyData(string aType, string[] aParam)
{
string sSendData = string.Empty;
try
{
int iLen = 0;
string sBody = string.Empty;
string sBodyLen = string.Empty;
string sBodyData = string.Empty;
string[] aIrtBody = null;
if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH)
{
#region 발급조회
aIrtBody = new string[Column.WELCOMECARD_SEARCH.LEN.Length];
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sLen] = aParam[0]; //전체 전문길이
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sMsgDiv] = aParam[1]; //구분
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sMsgType] = aParam[2]; //전문유형
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sMsgGubun] = aParam[3]; //업무구분
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sMsgVersion] = aParam[4]; //전문버전
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sYYYYMMDD] = aParam[5]; //거래일자
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.shhmmss] = aParam[6]; //거래시간
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sApprNo] = aParam[7]; //승인번호
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sReqCode] = aParam[8]; //응답코드
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sCardNo] = aParam[9]; //카드번호
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sHPCustNo] = aParam[10];//HPC고객번호
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sSaleDate] = aParam[11];//영업일자
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sStoreCode] = aParam[12];//점포코드
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sPosNo] = aParam[13];//POS번호
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sBillNo] = aParam[14];//BILL번호
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sFiller] = aParam[15];//Filler
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.WELCOMECARD_SEARCH.LEN, Column.WELCOMECARD_SEARCH.TYPE);
if (sSendData != "")
{
sBody = sSendData.Substring(Column.WELCOMECARD_SEARCH.LEN[0], sSendData.Length - (Column.WELCOMECARD_SEARCH.LEN[0]));
iLen = sBody.Length + Column.WELCOMECARD_SEARCH.LEN[0];
sBodyData = iLen.ToString().PadLeft(Column.WELCOMECARD_SEARCH.LEN[0], '0') + sBody;
sSendData = sBodyData;
}
#endregion
}
else if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER || aType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
{
#region 발급등록, 발급취소
//#20180704 망상 전문 관련 수정 start
// 웰컴카드 발급
if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER)
{
aParam[0] = "0"; //전체 전문길이
aParam[1] = "MC"; //구분
aParam[2] = "2100"; //전문유형
aParam[3] = "50"; //업무구분
aParam[4] = "V100"; //전문버전
}
// 웰컴카드 발급취소
else if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
{
aParam[0] = "0"; //전체 전문길이
aParam[1] = "MC"; //구분
aParam[2] = "2200"; //전문유형
aParam[3] = "50"; //업무구분
aParam[4] = "V100"; //전문버전
}
//#20180704 망상 전문 관련 수정 end
aIrtBody = new string[Column.WELCOMECARD_ISSUE.LEN.Length];
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sLen] = aParam[0];//전체 전문길이
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sMsgDiv] = aParam[1];//구분
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sMsgType] = aParam[2];//전문유형
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sMsgGubun] = aParam[3];//업무구분
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sMsgVersion] = aParam[4];//전문버전
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sYYYYMMDD] = aParam[5];//거래일자
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.shhmmss] = aParam[6];//거래시간
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sApprNo] = aParam[7];//승인번호
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sReqCode] = aParam[8];//응답코드
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sCardNo] = aParam[9];//카드번호
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sHPCCustNo] = aParam[10];//HPC고객번호
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sSaleDate] = aParam[11];//영업일자
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sStoreCode] = aParam[12];//점포코드
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sPosNo] = aParam[13];//POS번호
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sBillNo] = aParam[14];//BILL번호
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sTelType] = aParam[15];//통신사 구분
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sFiller] = aParam[16];//Filler
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.WELCOMECARD_ISSUE.LEN, Column.WELCOMECARD_ISSUE.TYPE);
if (sSendData != "")
{
sBody = sSendData.Substring(Column.WELCOMECARD_ISSUE.LEN[0], sSendData.Length - (Column.WELCOMECARD_ISSUE.LEN[0]));
iLen = sBody.Length + Column.WELCOMECARD_ISSUE.LEN[0];
sBodyData = iLen.ToString().PadLeft(Column.WELCOMECARD_ISSUE.LEN[0], '0') + sBody;
sSendData = sBodyData;
}
#endregion
}
else if (aType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER)
{
#region POS고객등록
aIrtBody = new string[Column.WELCOMECARD_SERVER_REGISTER.LEN.Length];
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sLen] = aParam[0]; //전체 전문길이
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sMsgDiv] = aParam[1]; //구분
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sMsgType] = aParam[2]; //전문유형
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sMsgGubun] = aParam[3]; //업무구분
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sMsgVersion] = aParam[4]; //전문버전
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sYYYYMMDD] = aParam[5]; //거래일자
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.shhmmss] = aParam[6]; //거래시간
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sApprNo] = aParam[7]; //승인번호
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sReqCode] = aParam[8]; //응답코드
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sCardNo] = aParam[9]; //카드번호
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sHPCCustNo] = aParam[10];//HPC고객번호
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sSaleDate] = aParam[11];//영업일자
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sStoreCode] = aParam[12];//점포코드
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sPosNo] = aParam[13];//POS번호
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sBillNo] = aParam[14];//BILL번호
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sFiller] = aParam[15];//Filler
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.WELCOMECARD_SERVER_REGISTER.LEN, Column.WELCOMECARD_SERVER_REGISTER.TYPE);
if (sSendData != "")
{
sBody = sSendData.Substring(Column.WELCOMECARD_SERVER_REGISTER.LEN[0], sSendData.Length - (Column.WELCOMECARD_SERVER_REGISTER.LEN[0]));
iLen = sBody.Length + Column.WELCOMECARD_SERVER_REGISTER.LEN[0];
sBodyData = iLen.ToString().PadLeft(Column.WELCOMECARD_SERVER_REGISTER.LEN[0], '0') + sBody;
sSendData = sBodyData;
}
#endregion
}
else if (aType == PosConst.WELCOMECARD_TYPE.HPC_CLIENT_REGISTER)
{
#region HPC고객등록
#endregion
}
else if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE || aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL ||
aType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE || aType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
{
#region 웰컴카드 할인
//#20180704 망상 전문 관련 수정 start
//할인
if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE)
{
aParam[0] = "0"; //전체 전문길이
aParam[1] = "MC"; //구분
aParam[2] = "0200"; //전문유형
aParam[3] = "20"; //업무구분
aParam[4] = "V100"; //전문버전
}
//할인취소
else if (aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
{
aParam[0] = "0"; //전체 전문길이
aParam[1] = "MC"; //구분
aParam[2] = "0300"; //전문유형
aParam[3] = "20"; //업무구분
aParam[4] = "V100"; //전문버전
}
//망상할인취소
else if (aType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE)
{
aParam[0] = "0"; //전체 전문길이
aParam[1] = "MC"; //구분
aParam[2] = "0400"; //전문유형
aParam[3] = "20"; //업무구분
aParam[4] = "V100"; //전문버전
}
//망상할인
else if (aType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
{
aParam[0] = "0"; //전체 전문길이
aParam[1] = "MC"; //구분
aParam[2] = "0500"; //전문유형
aParam[3] = "20"; //업무구분
aParam[4] = "V100"; //전문버전
}
//#20180704 망상 전문 관련 수정 end
aIrtBody = new string[Column.WELCOMECARD_DC.LEN.Length];
aIrtBody[Column.WELCOMECARD_DC.SEQ.sLen] = aParam[0]; //전체 전문길이
aIrtBody[Column.WELCOMECARD_DC.SEQ.sMsgDiv] = aParam[1]; //구분
aIrtBody[Column.WELCOMECARD_DC.SEQ.sMsgType] = aParam[2]; //전문유형
aIrtBody[Column.WELCOMECARD_DC.SEQ.sMsgGubun] = aParam[3]; //업무구분
aIrtBody[Column.WELCOMECARD_DC.SEQ.sMsgVersion] = aParam[4]; //전문버전
aIrtBody[Column.WELCOMECARD_DC.SEQ.sYYYYMMDD] = aParam[5]; //거래일자
aIrtBody[Column.WELCOMECARD_DC.SEQ.shhmmss] = aParam[6]; //거래시간
aIrtBody[Column.WELCOMECARD_DC.SEQ.sApprNo] = aParam[7]; //승인번호
aIrtBody[Column.WELCOMECARD_DC.SEQ.sReqCode] = aParam[8]; //응답코드
aIrtBody[Column.WELCOMECARD_DC.SEQ.sCardNo] = aParam[9]; //카드번호
aIrtBody[Column.WELCOMECARD_DC.SEQ.sHPCustNo] = aParam[10];//HPC고객번호
aIrtBody[Column.WELCOMECARD_DC.SEQ.sSaleDate] = aParam[11];//영업일자
aIrtBody[Column.WELCOMECARD_DC.SEQ.sStoreCode] = aParam[12];//점포코드
aIrtBody[Column.WELCOMECARD_DC.SEQ.sPosNo] = aParam[13];//POS번호
aIrtBody[Column.WELCOMECARD_DC.SEQ.sBillNo] = aParam[14];//BILL번호
aIrtBody[Column.WELCOMECARD_DC.SEQ.sCard_type] = aParam[15];//입력구분
aIrtBody[Column.WELCOMECARD_DC.SEQ.sTarget_Amt] = aParam[16];//대상금액
aIrtBody[Column.WELCOMECARD_DC.SEQ.sFiller] = aParam[17];//Filler
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.WELCOMECARD_DC.LEN, Column.WELCOMECARD_DC.TYPE);
if (sSendData != "")
{
sBody = sSendData.Substring(Column.WELCOMECARD_DC.LEN[0], sSendData.Length - (Column.WELCOMECARD_DC.LEN[0]));
iLen = sBody.Length + Column.WELCOMECARD_DC.LEN[0];
sBodyData = iLen.ToString().PadLeft(Column.WELCOMECARD_DC.LEN[0], '0') + sBody;
sSendData = sBodyData;
}
#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);
}
return sSendData;
}
#endregion
#region 웰컴카드 전문승인
public string WelcomeCard_Approval(string aTradeDiv, string aType, string aInputType, string[] aParam, ref string[] aRecvdData)
{
string sRet = UserCom.RST_ERR;
string sSendData = string.Empty;
string sRecvData = string.Empty;
// 받는
Hashtable htRecvData = null;
htRecvData = new Hashtable();
htRecvData.Clear();
// 보내는
Hashtable htReqData = null;
htReqData = new Hashtable();
htReqData.Clear();
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_Approval] Approval Start! (aTradeDiv:" + aTradeDiv + "," + " aType:" + aType + "," + " aInputType:" + aInputType + ")");
sSendData = MakeBodyData(aType, aParam);
htReqData.Add(Column.WELCOMECARD.INQ_TYPE, ItemConst.IRT_INQ_TYPE.WELCOME_INFO_INQ);
htReqData.Add(Column.WELCOMECARD.DATA, sSendData);
htReqData.Add(Column.WELCOMECARD.RES_CD, "");
// 승인업체 코드 조회
string sWccIP = "";
string sWccPort = "";
string sVanCD = "";
sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD);
sWccIP = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP);
sWccPort = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.PORT);
//if (sWccIP == "") { sWccIP = "10.0.40.134";}
//if (sWccPort == "") { sWccPort = "9029"; }
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2,4), "S", aParam[9], htReqData[Column.WELCOMECARD.RES_CD].ToString(), "", "", "", "", "", sSendData, "", "", "", "", "" });
UserLog.WriteLogFile(UserCom.LOG_SOCK,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
"WelcomeCard_Approval()",
"[SEND :" + sWccIP + ":" + sWccPort + "] " + sSendData);
// 전문전송
//sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.WELCOME_INFO, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.PayInqPort, 10000, htReqData, ref htRecvData, false);
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.WELCOME_INFO, sWccIP, int.Parse(sWccPort), 10000, htReqData, ref htRecvData, true);
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_Approval] Approval End! (IP: " + sWccIP + " / PORT:" + sWccPort + " + Result :" + sRet.ToString() + ")");
if (htRecvData == null || htRecvData.Count == 0)
{
UserLog.WriteLogFile(UserCom.LOG_SOCK,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
"WelcomeCard_Approval()",
"[RECV :" + sWccIP + ":" + sWccPort + "] " + "응답 전문이 없습니다.");
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "R", aParam[9], "", "", "", "", "", "", "", "", "", "", "", "" });
}
else
{
UserLog.WriteLogFile(UserCom.LOG_SOCK,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
"WelcomeCard_Approval()",
"[RECV :" + sWccIP + ":" + sWccPort + "] " + htRecvData[Column.WELCOMECARD.DATA].ToString());
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "R", aParam[9], "", "", "", "", CmUtil.MidH(htRecvData[Column.WELCOMECARD.DATA].ToString(), 50, 5), "", htRecvData[Column.WELCOMECARD.DATA].ToString(), "", "", "", "", "" });
}
if (sRet != UserCom.RST_OK || htRecvData == null || htRecvData.Count == 0)
{
#region 망상할인, 망상할인취소
if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE || aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
{
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_Approval] NET_Approval Start! (aType :" + aType + ")");
//#20180605 통신 실패 시 예외처리 start
// 받는
htRecvData = null;
htRecvData = new Hashtable();
htRecvData.Clear();
// 보내는
htReqData = null;
htReqData = new Hashtable();
htReqData.Clear();
//#20180605 통신 실패 시 예외처리 end
//#20180704 망상 전문 관련 수정 start
sSendData = string.Empty;
//#20180704 망상 전문 관련 수정 end
// 할인승인 -> 망상할인취소
if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE)
{
//DC_NETAGREE
sSendData = MakeBodyData(PosConst.WELCOMECARD_TYPE.DC_NETAGREE, aParam);
aType = PosConst.WELCOMECARD_TYPE.DC_NETAGREE;
}
// 할인취소승인 -> 망상할인
else if (aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
{
//DC_NETCANCEL
sSendData = MakeBodyData(PosConst.WELCOMECARD_TYPE.DC_NETCANCEL, aParam);
aType = PosConst.WELCOMECARD_TYPE.DC_NETCANCEL;
}
htReqData.Add(Column.WELCOMECARD.INQ_TYPE, ItemConst.IRT_INQ_TYPE.WELCOME_INFO_INQ);
htReqData.Add(Column.WELCOMECARD.DATA, sSendData);
htReqData.Add(Column.WELCOMECARD.RES_CD, "");
UserLog.WriteLogFile(UserCom.LOG_SOCK,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
"[WelcomeCard_Approval] NET_Approval ",
"[SEND :" + sWccIP + ":" + sWccPort + "] " + sSendData);
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "S", aParam[9], CmUtil.MidH(htReqData[Column.WELCOMECARD.DATA].ToString(), 118, 7), "", "", "", "", "", sSendData, "", "", "", "", "" });
//sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.WELCOME_INFO, "10.0.40.134", 9029, 10000, htReqData, ref htRecvData, false);
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.WELCOME_INFO, sWccIP, int.Parse(sWccPort), 10000, htReqData, ref htRecvData, true);
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_Approval] NET_Approval End! (IP: " + sWccIP + " / PORT:" + sWccPort + " + Result :" + sRet.ToString() + ")");
if (htRecvData == null || htRecvData.Count == 0)
{
UserLog.WriteLogFile(UserCom.LOG_SOCK,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
"[WelcomeCard_Approval] NET_Approval ",
"[RECV :" + sWccIP + ":" + sWccPort + "] " + "응답 전문이 없습니다.");
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "R", aParam[9], "", "", "", "", "", "", "", "", "", "", "", "" });
}
else
{
UserLog.WriteLogFile(UserCom.LOG_SOCK,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
"[WelcomeCard_Approval] NET_Approval ",
"[RECV :" + sWccIP + ":" + sWccPort + "] " + htRecvData[Column.WELCOMECARD.DATA].ToString());
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "R", aParam[9], CmUtil.MidH(htRecvData[Column.WELCOMECARD.DATA].ToString(), 136, 7), "", "", "", CmUtil.MidH(htRecvData[Column.WELCOMECARD.DATA].ToString(), 50, 5), "", htRecvData[Column.WELCOMECARD.DATA].ToString(), "", "", "", "", "" });
}
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_Approval] NET_Approval End! (Result :" + sRet.ToString() + ")");
if (sRet != UserCom.RST_OK)
{
//망취소 실패 시 로컬에 데이터 저장!
Wcc_Net_log_Insert(aType, aParam[9], htReqData, htRecvData);
}
}
#endregion 망상할인, 망상할인취소
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0005));
sRet = UserCom.RST_ERR;
return sRet;
}
// 응답전문 파싱
string[] aReq = null;
string[] aRecv = null;
sRet = WelcomeCard_Parsing(aType, htReqData, htRecvData, ref aReq, ref aRecv);
aRecvdData = aRecv;
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_Approval] WelcomeCard_Parsing! (Result :" + sRet.ToString() + ")");
#region 전문 응답 메세지 - 정리하기
// 발급조회
if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH && aRecv[Column.WELCOMECARD_SEARCH_RECV.SEQ.sReqCode].Trim() != "00000")
{
WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_SEARCH_RECV.SEQ.sMsg1].Trim());
sRet = UserCom.RST_ERR;
return sRet;
}
// 발급요청, 취소
else if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER && aRecv[Column.WELCOMECARD_ISSUE_RECV.SEQ.sReqCode].Trim() != "00000")
{
WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_ISSUE_RECV.SEQ.sMsg1].Trim());
sRet = UserCom.RST_ERR;
return sRet;
}
// POS 고객등록
else if (aType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER && aRecv[Column.WELCOMECARD_SERVER_REGISTER_RECV.SEQ.sReqCode].Trim() != "00000")
{
WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_SERVER_REGISTER_RECV.SEQ.sMsg1].Trim());
sRet = UserCom.RST_ERR;
return sRet;
}
// 할인요청,취소
else if ((aType == PosConst.WELCOMECARD_TYPE.DC_AGREE ||
aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL ||
aType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE ||
aType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL) && aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00000")
{
//#20180705 할인취소 시 응답코드가 00400일 때 정상처리 되도록 변경 start
//기존
//WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sMsg1].Trim());
//sRet = UserCom.RST_ERR;
//return sRet;
//변경
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 start
//기존
//if (aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL && aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00400")
//변경
if ((aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL && (aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00400" && aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00000"))
|| (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE && aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00000"))
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 end
{
WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sMsg1].Trim());
sRet = UserCom.RST_ERR;
return sRet;
}
//#20180705 할인취소 시 응답코드가 00400일 때 정상처리 되도록 변경 end
}
#endregion 전문 응답 메세지 - 정리하기
// 응답전문 적용
//#20180620 반품 시 반품승인번호 표기 start
//기존
//if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE )
//변경
if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE || aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
//#20180620 반품 시 반품승인번호 표기 end
{
sRet = WelcomeCard_Insert(aTradeDiv, aType, aInputType, aReq, aRecv);
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_Approval] WelcomeCard_Insert! (Result :" + sRet.ToString() + ")");
if (sRet != UserCom.RST_OK)
{
WinManager.ErrorMessage(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1153));
sRet = UserCom.RST_ERR;
return sRet;
}
}
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);
sRet = UserCom.RST_ERR;
}
return sRet;
}
#endregion
#region 웰컴카드 전문파싱
public string WelcomeCard_Parsing(string aType, Hashtable htReqData, Hashtable htRecvData, ref string[] aReq, ref string[] aRecv)
{
int nNowPos = 0;
string sRet = UserCom.RST_ERR;
string sSendValue = string.Empty;
string sRecvValue = string.Empty;
string[] asSendValue = null;
string[] asRecvValue = null;
try
{
if (htReqData == null) return sRet;
if (htRecvData == null) return sRet;
// send
foreach (DictionaryEntry entry in htReqData)
{
//Console.WriteLine("{0}, {1}", entry.Key, entry.Value);
if ((string)entry.Key == "DATA")
{
sSendValue = (string)entry.Value;
break;
}
}
// receive
foreach (DictionaryEntry entry in htRecvData)
{
//Console.WriteLine("{0}, {1}", entry.Key, entry.Value);
if ((string)entry.Key == "DATA")
{
sRecvValue = (string)entry.Value;
break;
}
}
if (sSendValue == "") return sRet;
if (sRecvValue == "") return sRet;
if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH)
{
#region 발급조회
asRecvValue = new string[Column.WELCOMECARD_SEARCH_RECV.LEN.Length];
ItemColumn.ParseMessage(Column.WELCOMECARD_SEARCH_RECV.LEN,
Column.WELCOMECARD_SEARCH_RECV.TYPE,
Encoding.Default.GetBytes(sRecvValue),
ref nNowPos,
ref asRecvValue);
nNowPos = 0;
asSendValue = new string[Column.WELCOMECARD_SEARCH.LEN.Length];
ItemColumn.ParseMessage(Column.WELCOMECARD_SEARCH.LEN,
Column.WELCOMECARD_SEARCH.TYPE,
Encoding.Default.GetBytes(sSendValue),
ref nNowPos,
ref asSendValue);
#endregion
}
else if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER || aType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
{
#region 발급, 취소
asRecvValue = new string[Column.WELCOMECARD_ISSUE_RECV.LEN.Length];
ItemColumn.ParseMessage(Column.WELCOMECARD_ISSUE_RECV.LEN,
Column.WELCOMECARD_ISSUE_RECV.TYPE,
Encoding.Default.GetBytes(sRecvValue),
ref nNowPos,
ref asRecvValue);
nNowPos = 0;
asSendValue = new string[Column.WELCOMECARD_ISSUE.LEN.Length];
ItemColumn.ParseMessage(Column.WELCOMECARD_ISSUE.LEN,
Column.WELCOMECARD_ISSUE.TYPE,
Encoding.Default.GetBytes(sSendValue),
ref nNowPos,
ref asSendValue);
#endregion
}
else if (aType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER)
{
#region POS고객등록
asRecvValue = new string[Column.WELCOMECARD_SERVER_REGISTER_RECV.LEN.Length];
ItemColumn.ParseMessage(Column.WELCOMECARD_SERVER_REGISTER_RECV.LEN,
Column.WELCOMECARD_SERVER_REGISTER_RECV.TYPE,
Encoding.Default.GetBytes(sRecvValue),
ref nNowPos,
ref asRecvValue);
nNowPos = 0;
asSendValue = new string[Column.WELCOMECARD_SERVER_REGISTER.LEN.Length];
ItemColumn.ParseMessage(Column.WELCOMECARD_SERVER_REGISTER.LEN,
Column.WELCOMECARD_SERVER_REGISTER.TYPE,
Encoding.Default.GetBytes(sSendValue),
ref nNowPos,
ref asSendValue);
#endregion
}
else if (aType == PosConst.WELCOMECARD_TYPE.HPC_CLIENT_REGISTER)
{
#region HPC고객등록
#endregion
}
else if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE || aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL ||
aType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE || aType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
{
#region 웰컴카드 할인
asRecvValue = new string[Column.WELCOMECARD_DC_RECV.LEN.Length];
ItemColumn.ParseMessage(Column.WELCOMECARD_DC_RECV.LEN,
Column.WELCOMECARD_DC_RECV.TYPE,
Encoding.Default.GetBytes(sRecvValue),
ref nNowPos,
ref asRecvValue);
nNowPos = 0;
asSendValue = new string[Column.WELCOMECARD_DC.LEN.Length];
ItemColumn.ParseMessage(Column.WELCOMECARD_DC.LEN,
Column.WELCOMECARD_DC.TYPE,
Encoding.Default.GetBytes(sSendValue),
ref nNowPos,
ref asSendValue);
#endregion
}
aRecv = asRecvValue; //응답
aReq = asSendValue; //요청
sRet = UserCom.RST_OK;
return sRet;
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
return UserCom.RST_ERR;
}
}
#endregion
#region 웰컴카드 할인 데이터 인서트
public string WelcomeCard_Insert(string aTradeDiv, string aType, string aInputType, string[] aReq, string[] aRecv)
{
string sRet = UserCom.RST_ERR;
if (aReq == null) return sRet; // 요청데이터
if (aRecv == null) return sRet;// 응답데이터
//#20180620 반품 시 반품승인번호 표기 start
//기존
//if (aType != PosConst.WELCOMECARD_TYPE.DC_AGREE) return sRet;
//#20180620 반품 시 반품승인번호 표기 end
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return sRet;
try
{
if (aTradeDiv == PosConst.CANCEL_DIV.NORMAL)
{
// 결제구분 (1:결제, 2:할인)
DataRow dr = PosMstManager.GetMstPayDc(new string[] { m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01 });
m_cPayItem.PAY_AMT = CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sDC_Amt].Trim()); // 사용포인트(할인금액)
m_cPayItem.PAY_AMT = CmUtil.MathRounds(m_cPayItem.PAY_AMT, PosConst.MATH_ROUND.CEILING, -1);
m_cPayItem.PAY_DTL_CD_02 = "";
//if (PosMstManager.GetMstPayDc(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01, PosMst.MST_PAY_DC.DATA.PAY_DC_TYPE) == PosConst.PAY_DC_TYPE.DC)
if (CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.PAY_DC_TYPE) == PosConst.PAY_DC_TYPE.DC)
{
m_cPayItem.PAY_DTL_CD_03 = "1"; // 할인금액아이템적용여부 (0:미적용, 1:적용)
m_cPayItem.PAY_DTL_CD_04 = "";
m_cPayItem.PAY_DTL_CD_05 = CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.PAY_DC_TYPE); // 할인결제구분 (1:결제, 2:할인)
}
else
{
m_cPayItem.PAY_DTL_CD_03 = "0"; //할인금액아이템적용여부 (0:미적용, 1:적용)
m_cPayItem.PAY_DTL_CD_04 = "";
m_cPayItem.PAY_DTL_CD_05 = PosConst.PAY_DC_TYPE.PAY; //할인결제구분 (1:결제, 2:할인)
}
m_cPayItem.AMT_ENTRY_01 = m_cPayItem.PAY_AMT; // 할인금액
m_cPayItem.AMT_ENTRY_02 = 0;
// 총포인트
m_cPayItem.AMT_ENTRY_03 = 0; // CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt]);
// 가용포인트(할인후결제금액)
m_cPayItem.AMT_ENTRY_04 = CmUtil.DoubleParse(aReq[Column.WELCOMECARD_DC.SEQ.sTarget_Amt].Trim()) -
CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sDC_Amt].Trim()); // 대상금액 - 할인금액 제외
// 잔여포인트
m_cPayItem.AMT_ENTRY_05 = 0; // CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt]); //총할인금액
m_cPayItem.AMT_ENTRY_06 = 0;
m_cPayItem.AMT_ENTRY_07 = 0;
m_cPayItem.AMT_ENTRY_08 = 0;
m_cPayItem.AMT_ENTRY_09 = 0;
m_cPayItem.AMT_ENTRY_10 = CmUtil.DoubleParse(aReq[Column.WELCOMECARD_DC.SEQ.sTarget_Amt]); // 대상금액
m_cPayItem.OCCUR_ENTRY_01 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardNo].Trim(); // 카드번호
m_cPayItem.OCCUR_ENTRY_02 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprNo].Trim(); // 승인번호
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 start
//기존
//m_cPayItem.OCCUR_ENTRY_03 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sYYYYMMDD].Trim(); // 승인일자
//m_cPayItem.OCCUR_ENTRY_04 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.shhmmss].Trim(); // 승인시간
//변경
m_cPayItem.OCCUR_ENTRY_03 = CmUtil.MidH(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprDate].Trim(), 0, 8); // 승인일자
m_cPayItem.OCCUR_ENTRY_04 = CmUtil.MidH(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprDate].Trim(), 8, 6); // 승인시간
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 end
m_cPayItem.OCCUR_ENTRY_05 = aInputType; //aReq[Column.WELCOMECARD_DC.SEQ.sCard_type].ToString();// 입력 구분
m_cPayItem.OCCUR_ENTRY_06 = ""; // 원승인번호
m_cPayItem.OCCUR_ENTRY_07 = ""; // 원승인일자
m_cPayItem.OCCUR_ENTRY_08 = ItemConst.PAY_APP_DIV.NORMAL; //승인구분
m_cPayItem.OCCUR_ENTRY_16 = CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD); // VAN 구분
m_cPayItem.OCCUR_ENTRY_18 = ""; // 가맹점번호
m_cPayItem.OCCUR_ENTRY_19 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardNo].Trim(); //웰컴카드번호
m_cPayItem.OCCUR_ENTRY_20 = GetPayDtlCdToPayDtlName(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01); // 결제수단명
m_cPayItem.OCCUR_ENTRY_21 = GetPayDtlCdToCashBillYn(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01); // 현금영수증 발행여부
m_cPayItem.OCCUR_ENTRY_22 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sHPCustNo].Trim(); // hpc 회원번호
m_cPayItem.OCCUR_ENTRY_23 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardDiv].Trim(); // 입력구분(C:실물카드,A: 해피포인트)
m_cPayItem.OCCUR_ENTRY_24 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sRemainCnt].Trim(); // 잔여횟수
m_cPayItem.OCCUR_ENTRY_25 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt].Trim(); // 총할인금액
m_cPayItem.CANCEL_DIV = ItemConst.PAY_CANCEL_DIV.NORMAL;
m_cPayItem.BILLSPR_NO = m_cTrnStatus.Sale.BillSplitNo; // 빌분리 번호
}
else
{
// 전체금액
m_cPayItem.AMT_ENTRY_03 = 0; // CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt].Trim());
// 대상금액 - 할인금액 제외
m_cPayItem.AMT_ENTRY_04 = CmUtil.DoubleParse(aReq[Column.WELCOMECARD_DC.SEQ.sTarget_Amt].Trim()) -
CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sDC_Amt].Trim());
m_cPayItem.AMT_ENTRY_05 = 0; //CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt].Trim());
m_cPayItem.OCCUR_ENTRY_06 = m_cPayItem.OCCUR_ENTRY_02; // 원승인번호
m_cPayItem.OCCUR_ENTRY_07 = m_cPayItem.OCCUR_ENTRY_03; // 원승인일자
m_cPayItem.OCCUR_ENTRY_01 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardNo].Trim(); // 카드번호
m_cPayItem.OCCUR_ENTRY_02 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprNo].Trim(); // 승인번호
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 start
//기존
//m_cPayItem.OCCUR_ENTRY_03 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sYYYYMMDD].Trim(); // 승인일자
//m_cPayItem.OCCUR_ENTRY_04 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.shhmmss].Trim(); // 승인시간
//변경
m_cPayItem.OCCUR_ENTRY_03 = CmUtil.MidH(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprDate].Trim(), 0, 8); // 승인일자
m_cPayItem.OCCUR_ENTRY_04 = CmUtil.MidH(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprDate].Trim(), 8, 6); // 승인시간
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 end
m_cPayItem.OCCUR_ENTRY_05 = aRecv[Column.WELCOMECARD_DC.SEQ.sCard_type].Trim(); // 입력구분
//m_cPayItem.OCCUR_ENTRY_19 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardNo].Trim(); //웰컴카드번호
//m_cPayItem.OCCUR_ENTRY_20 = GetPayDtlCdToPayDtlName(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01); // 결제수단명
//m_cPayItem.OCCUR_ENTRY_21 = GetPayDtlCdToCashBillYn(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01); // 현금영수증 발행여부
//m_cPayItem.OCCUR_ENTRY_22 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sHPCustNo].Trim(); // hpc 회원번호
//m_cPayItem.OCCUR_ENTRY_23 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardDiv].Trim(); // 입력구분(C:실물카드,A: 해피포인트)
//m_cPayItem.OCCUR_ENTRY_24 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sRemainCnt].Trim(); // 잔여횟수
//m_cPayItem.OCCUR_ENTRY_25 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt].Trim(); // 총할인금액
//m_cPayItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
}
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;
}
return sRet;
}
#endregion
#region 해피앱 고객등록 전송
public string HPAppClientRegister(string[] sParam)
{
string sRet = UserCom.RST_ERR;
string sTradeDiv = sParam.Length >= 1 ? sParam[0] : "";
string sWccType = sParam.Length >= 2 ? sParam[1] : "";
string sInputCardNo = sParam.Length >= 3 ? sParam[2] : "";
string sInputType = sParam.Length >= 4 ? sParam[3] : "";
string sReqDivCd = sParam.Length >= 5 ? sParam[4] : "";
string sInputHPWccNo = sParam.Length >= 6 ? sParam[5] : "";
string sReadingHPData = sParam.Length >= 7 ? sParam[6] : "";
string sAppCardNo = "";
string sInEncData = "";
string sInPutData = "";
try
{
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return sRet;
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return sRet;
if (sReadingHPData == "") return sRet;
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[HPAppClientRegister] " +
" sTradeDiv :" + sTradeDiv + "," +
" sWccType :" + sWccType + "," +
" sInputCardNo :" + sInputCardNo + "," +
" sInputType :" + sInputType + "," +
" sReqDivCd :" + sReqDivCd + "," +
" sInputHPWccNo :" + sInputHPWccNo + "," +
" sReadingHPData :" + sReadingHPData
);
//#20180701 웰컴카드 번호 16자리 이상인 경우 16자리만 처리 start
if (sInputCardNo.Length > 16)
{
sInputCardNo = sInputCardNo.Substring(0,16);
}
//#20180701 웰컴카드 번호 16자리 이상인 경우 16자리만 처리 end
// 추가정보 생성
string sAddInfo = "";
sAddInfo += CmUtil.RPadH("", 10); //요청 사용자ID
sAddInfo += CmUtil.RPadH(sReqDivCd, 2); //요청구분코드 40:웰컴카드등록, 41:웰컴카드해지
sAddInfo += CmUtil.RPadH(sInputCardNo, 160); //Filler 웰컴카드번호(20자리)
sAddInfo += CmUtil.RPadH("", 28); //VReserved
if (sReadingHPData == PosConst.WELCOMECARD_MSG.HP_REGISTER_DATA)
{
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) continue;
if (cEtcItem.OCCUR_ENTRY_10 == "") continue; //HCP회원번호
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") continue; //해피앱여부 20180628 체크안하도록수정
sAppCardNo = cEtcItem.OCCUR_ENTRY_14;
}
}
else
{
// 조회 데이터 획득
Column.TR_ETC.DATA cEtcItem = null;
cEtcItem = new Column.TR_ETC.DATA();
cEtcItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { });
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) return UserCom.RST_ERR;
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM || cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) return UserCom.RST_ERR;
if (cEtcItem.OCCUR_ENTRY_10 == "") return UserCom.RST_ERR; //HCP회원번호
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") return UserCom.RST_ERR; //해피앱여부 20180628 체크안하도록수정
//#20180628 start
//기존
/*
//sAppCardNo = cEtcItem.OCCUR_ENTRY_14;
sAppCardNo = cEtcItem.CanFiller3;
*/
//변경
sAppCardNo = cEtcItem.OCCUR_ENTRY_14;
//#20180628 end
}
if (sAppCardNo.EndsWith("=") == false)
{
sAppCardNo = sAppCardNo + "=";
}
// 암호화
EncryptedCardNo(sAppCardNo, ref sInPutData, ref sInEncData);
// 승인업체 코드 조회
string sVanCD = GetPayDtlCdToVanCode(ItemConst.TR_ITEM_ID.ETC_INFO_ITEM, ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT);
if (sVanCD == "")
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0563);
return sRet;
}
// 포인트 조회
string[] saRsp = null;
sRet = ExecutePointIrt(sTradeDiv, ItemConst.TR_ITEM_ID.ETC_INFO_ITEM, ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT, sVanCD, PosConst.POS_VAN_MASTER.TRADE_ID.VAN_POT_QRY_A, "HPY", sInputType, sInPutData, sInEncData, 0, "", "", "", "", "", "", sAddInfo, ref saRsp, "", "", "1");
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[HPAppClientRegister] ExecutePointIrt (Result :" + sRet.ToString() + ")");
if (sRet != UserCom.RST_OK)
{
sRet = UserCom.RST_ERR;
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
sRet = UserCom.RST_ERR;
}
return sRet;
}
#endregion
#region 망취소 데이터 로컬 db 저장
private string Wcc_Net_log_Insert(string aType, string aCardNo, Hashtable SendData, Hashtable RecvData)
{
string sRet = UserCom.RST_ERR;
int iSeq = 0;
string sQry = "";
string sQuery = "";
string sCardNo = "";
string sSendText = "";
string sRecvText = "";
DataTable dtSeqCnt = null;
DataRow drSeqCnt = null;
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[Wcc_Net_log_Insert] Start! (aCardNo :" + aCardNo + ")");
sCardNo = aCardNo;
if (SendData != null && RecvData.Count != 0)
{
sSendText = SendData[Column.WELCOMECARD.DATA].ToString();
}
if (RecvData != null && RecvData.Count != 0)
{
sRecvText = RecvData[Column.WELCOMECARD.DATA].ToString();
}
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[Wcc_Net_log_Insert] sSendText! " + sSendText + "");
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[Wcc_Net_log_Insert] sRecvText! " + sRecvText + "");
sQuery = " SELECT ISNULL(MAX(SEQ) + 1,0) AS SEQ ";
sQuery += " FROM POSLOG..WCC_NET_LOG";
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 + "'";
m_cSqlDbService.DBSelect(sQuery, out dtSeqCnt);
if (dtSeqCnt != null && dtSeqCnt.Rows.Count > 0)
{
drSeqCnt = dtSeqCnt.Rows[0];
iSeq = Convert.ToInt32(CmUtil.GetDataRowStr(drSeqCnt, "SEQ"));
}
sQuery = "";
sQuery += " INSERT INTO POSLOG..WCC_NET_LOG(CMP_CD,SALE_DT,STOR_CD,POS_NO,SEQ,INPUT_TYPE,INPUT_CARD_NO,SEND_TEXT,RESV_TEXT,SEND_YN,INS_DT) ";
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
, iSeq
, aType
, sCardNo
, sSendText
, sRecvText
, "0"
, DateTime.Now.ToString("yyyyMMddHHmmss"));
int iQry = 0;
iQry = m_cSqlDbService.DBExecuteNonQuery(new string[] { sQry });
if (iQry == 1)
{
sRet = UserCom.RST_OK;
}
else
{
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[Wcc_Net_log_Insert] DBExecuteNonQuery Fail! [iQry :" + iQry.ToString() + "]" + sQry);
sRet = UserCom.RST_ERR;
}
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[Wcc_Net_log_Insert] End! (Result :" + 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);
sRet = UserCom.RST_ERR;
}
return sRet;
}
#endregion
}
}