892 lines
45 KiB
C#
892 lines
45 KiB
C#
using System;
|
|
using System.Collections;
|
|
//using System.Windows.Forms;
|
|
|
|
using Cosmos.UserFrame;
|
|
using Cosmos.ServiceProvider;
|
|
using Cosmos.Common;
|
|
using Cosmos.CommonManager;
|
|
using System.Text;
|
|
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
// 설 명 : 현금영수증
|
|
// 작 성 자 :
|
|
// 변경 이력 :
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
namespace Cosmos.Service
|
|
{
|
|
class CashBill : PaymentBase, IPaymentUs
|
|
{
|
|
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(); // 디바이스 관리
|
|
|
|
private IDataProcessUs m_cDataSrv = null; // 거래데이터 합계금액 계산 및 관리
|
|
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
|
|
|
|
/// <summary>
|
|
/// 현재 등록중인 결제 정보
|
|
/// </summary>
|
|
private Column.TR_ETC.DATA m_cEtcItem = new Column.TR_ETC.DATA();
|
|
|
|
public CashBill()
|
|
{
|
|
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
|
|
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
|
|
m_cDevStatus = (DeviceStatus)StateObject.DEVICE;
|
|
|
|
m_cDataSrv = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE);
|
|
m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
|
|
}
|
|
|
|
#region 결제 조회
|
|
/// <summary>
|
|
/// 결제 조회
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <param name="aRet"></param>
|
|
/// <returns></returns>
|
|
public string SearchPayment(string[] aParam, ref string[] aRet)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 정보 획득
|
|
/// <summary>
|
|
/// 결제 정보 획득
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <returns></returns>
|
|
public object GetPayment(string[] aParam)
|
|
{
|
|
try
|
|
{
|
|
return m_cEtcItem;
|
|
}
|
|
catch (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="aParam">현금 결제금액(0), 현금,수표구분(1)</param>
|
|
/// <returns></returns>
|
|
public string SetPayment(string[] aParam)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
try
|
|
{
|
|
|
|
m_cEtcItem = new Column.TR_ETC.DATA(); // 결과 저장 변수 생성
|
|
|
|
m_cEtcItem.ETC_WAY_CD = ItemConst.TR_ITEM_ID.ETC_INFO_ITEM;
|
|
m_cEtcItem.ETC_DTL_CD_01 = ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL;
|
|
|
|
|
|
if (aParam.Length > 0 && aParam[0] == PosConst.POS_CAT_MASTER.TRAN_TYPE) //단말기승인
|
|
{
|
|
// 0.전문구분,1.거래유형, 2.할부개월, 3.승인금액 , 4.봉사료, 5.세금, 6.원승인번호, 7.원거래일자, 8.포인트거래구분, 9.상품코드,
|
|
//10.전표인쇄여부, 11.추가항목, 12.제휴할인코드, 13.제휴할인금액, 14.예비1, 15.예비2
|
|
sRet = CatExecuteIrt(aParam[1], aParam);
|
|
}
|
|
else
|
|
{
|
|
sRet = ExecuteIrt(PosConst.POS_VAN_MASTER.TRADE_ID.VAN_CASH_AGREE, aParam);
|
|
}
|
|
|
|
|
|
if (sRet != UserCom.RST_OK) return sRet;
|
|
|
|
// 결제 아이템 추가
|
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); // 결제 내역 받아 오기
|
|
m_cEtcItem.SEQ = alEtcItem.Count + 1;
|
|
alEtcItem.Add(m_cEtcItem);
|
|
|
|
|
|
}
|
|
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
|
|
{
|
|
//여전법 대응!
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
CmUtil.ZeroFillClear(ref aParam);
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
}
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 취소
|
|
/// <summary>
|
|
/// 결제 취소
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <returns></returns>
|
|
public string CancelPayment(string[] aParam)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 반품
|
|
/// <summary>
|
|
/// 결제 반품
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <returns></returns>
|
|
public string RefundPayment(string[] aParam)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
string sRecvdData = "";
|
|
string sSendData = string.Empty;
|
|
|
|
try
|
|
{
|
|
//#20180410 인천공항 반품 시 원승인번호,원거래일자 저장 start,phj
|
|
//기존
|
|
//#20171227 인천공항 포스연동 start, phj
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
|
|
{
|
|
sRet = UserCom.RST_OK;
|
|
return sRet;
|
|
}
|
|
//#20171227 인천공항 포스연동 end, phj
|
|
//#20180410 인천공항 반품 시 원승인번호,원거래일자 저장 end,phj
|
|
|
|
|
|
// 취소할 행번호
|
|
int nPayRow = CmUtil.IntParse(aParam[0]);
|
|
|
|
//결제 내역 받아 오기
|
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|
m_cEtcItem = (Column.TR_ETC.DATA)alEtcItem[nPayRow];
|
|
|
|
|
|
string[] m_aParam = new string[17];
|
|
|
|
if (m_cEtcItem.OCCUR_ENTRY_08.ToString() == ItemConst.PAY_APP_DIV.CAT_TERMINAL)
|
|
{
|
|
//InParam
|
|
// 0.전문구분,1.거래유형, 2.할부개월, 3.승인금액 , 4.봉사료, 5.세금, 6.원승인번호, 7.원거래일자, 8.포인트거래구분, 9.상품코드,
|
|
//10.전표인쇄여부, 11.추가항목, 12.제휴할인코드, 13.제휴할인금액, 14.예비1, 15.예비2
|
|
|
|
string aAppType = "";
|
|
if (m_cEtcItem.OCCUR_ENTRY_10 == "1")
|
|
{
|
|
aAppType = "02";
|
|
}
|
|
else
|
|
{
|
|
aAppType = m_cEtcItem.OCCUR_ENTRY_11.PadLeft(2, '0');
|
|
}
|
|
|
|
m_aParam[0] = PosConst.POS_CAT_MASTER.TRAN_TYPE;
|
|
m_aParam[1] = PosConst.POS_CAT_MASTER.TRADE_ID.CAT_CASH_CANCEL;
|
|
m_aParam[2] = aAppType;
|
|
m_aParam[3] = m_cEtcItem.ETC_AMT.ToString();
|
|
m_aParam[4] = m_cEtcItem.AMT_ENTRY_04.ToString(); //봉사료
|
|
m_aParam[5] = m_cEtcItem.AMT_ENTRY_03.ToString(); //세금
|
|
m_aParam[6] = m_cEtcItem.OCCUR_ENTRY_02;
|
|
m_aParam[7] = m_cEtcItem.OCCUR_ENTRY_03;
|
|
m_aParam[8] = "";
|
|
m_aParam[9] = "";
|
|
m_aParam[10] = "";
|
|
m_aParam[11] = "";
|
|
m_aParam[12] = "";
|
|
m_aParam[13] = "";
|
|
m_aParam[14] = "";
|
|
m_aParam[15] = "";
|
|
|
|
sRet = CatExecuteIrt(PosConst.POS_CAT_MASTER.TRADE_ID.CAT_CASH_CANCEL, m_aParam);
|
|
|
|
if (sRet != UserCom.RST_OK) return sRet;
|
|
}
|
|
else
|
|
{
|
|
//강제 승인일 경우!
|
|
if (m_cEtcItem.OCCUR_ENTRY_08 != ItemConst.PAY_APP_DIV.NORMAL) return UserCom.RST_OK;
|
|
|
|
string sEncData = m_cEtcItem.CanFiller1;
|
|
|
|
//if (m_cDevStatus.ICReader.UseYn != true) // 여전법 인증여부(0:MSR, 1:IC)
|
|
//{
|
|
// // MSR
|
|
// m_cEtcItem.OCCUR_ENTRY_05 = CmUtil.MidH(m_cEtcItem.CanFiller1, 1, 1).Trim();
|
|
// sEncData = CmUtil.MidH(m_cEtcItem.CanFiller1, 2, 512).Trim();
|
|
//}
|
|
//if (cEtcItem.OCCUR_ENTRY_05 == "K")
|
|
//{
|
|
// m_aParam[1] = sEncData;
|
|
//}
|
|
//else
|
|
//{
|
|
// m_aParam[1] = CmUtil.MidH(sEncData, 6, 512).Trim();
|
|
//}
|
|
|
|
m_aParam[0] = m_cEtcItem.OCCUR_ENTRY_05.ToString();
|
|
m_aParam[1] = sEncData;
|
|
m_aParam[2] = m_cEtcItem.AMT_ENTRY_02.ToString();
|
|
m_aParam[3] = m_cEtcItem.AMT_ENTRY_03.ToString();
|
|
m_aParam[4] = m_cEtcItem.AMT_ENTRY_04.ToString();
|
|
m_aParam[5] = m_cEtcItem.AMT_ENTRY_01.ToString();
|
|
m_aParam[6] = m_cEtcItem.OCCUR_ENTRY_11.ToString();
|
|
m_aParam[7] = m_cEtcItem.OCCUR_ENTRY_09.ToString();
|
|
m_aParam[8] = "";
|
|
m_aParam[9] = "";
|
|
m_aParam[10] = "";
|
|
m_aParam[11] = "";
|
|
m_aParam[12] = "";
|
|
m_aParam[13] = "";
|
|
m_aParam[14] = m_cEtcItem.OCCUR_ENTRY_02.ToString();
|
|
m_aParam[15] = "";
|
|
m_aParam[16] = m_cEtcItem.OCCUR_ENTRY_03.ToString();
|
|
|
|
sRet = ExecuteIrt(PosConst.POS_VAN_MASTER.TRADE_ID.VAN_CASH_CANCEL, m_aParam);
|
|
if (sRet != UserCom.RST_OK)
|
|
{
|
|
WinManager.ErrorMessage(sRet);
|
|
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);
|
|
}
|
|
finally
|
|
{
|
|
//여전법 대응!
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
CmUtil.ZeroFillClear(ref aParam);
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
}
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 수기 등록(임의등록)
|
|
/// <summary>
|
|
/// 결제 수기 등록(임의등록)
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <returns></returns>
|
|
public string SetMenualPayment(string[] aParam)
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
#endregion 결제 수기 등록(임의등록)
|
|
|
|
#region 전문 바디 생성
|
|
/// <summary>
|
|
/// 전문 바디 생성
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <returns></returns>
|
|
private string MakeCashBillBody(string sAppType, string[] aParam)
|
|
{
|
|
string sSendData = string.Empty;
|
|
|
|
try
|
|
{
|
|
|
|
if (sAppType == PosConst.POS_VAN_MASTER.TRADE_ID.VAN_CASH_AGREE)
|
|
{
|
|
string[] aIrtBody = new string[Column.POS_REQ_CASHBILL.LEN.Length];
|
|
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.DocVer] = PosConst.POS_VAN_MASTER.IRT_VERSION_02;
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.TrandKind] = PosConst.POS_VAN_MASTER.CASHBILL_DIV_ONLY;
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.EntryMode] = aParam[0];
|
|
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.CustmerInfo] = aParam[1];
|
|
else
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.CustmerInfo] = CmUtil.MidH(aParam[1], 0, 37);
|
|
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.CustmerInfoFs] = PosConst.VAN_HEXA.FS;
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.NetSaleAmt] = aParam[2];
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.Vat] = aParam[3];
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.ServiceAmt] = aParam[4];
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.TotAmt] = aParam[5];
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.TradDiv] = aParam[6];
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.PointEntryMode] = aParam[8];
|
|
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.PointTrackII] = aParam[9];
|
|
else
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.PointTrackII] = CmUtil.MidH(aParam[9], 0, 37);
|
|
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.PointTrackIIFS] = PosConst.VAN_HEXA.FS;
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.ItemCode] = aParam[10];
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.StoreUserID] = aParam[11];
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.StoreUseFild] = aParam[12];
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.Filler] = aParam[13];
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.ETX] = PosConst.VAN_HEXA.ETX;
|
|
aIrtBody[Column.POS_REQ_CASHBILL.SEQ.CR] = PosConst.VAN_HEXA.CR;
|
|
|
|
|
|
// 수표 조회 요청 전문 생성
|
|
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.POS_REQ_CASHBILL.LEN, Column.POS_REQ_CASHBILL.TYPE);
|
|
}
|
|
else
|
|
{
|
|
string[] aIrtBody = new string[Column.POS_REQ_CASHBILL_CANCEL.LEN.Length];
|
|
|
|
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.DocVer] = PosConst.POS_VAN_MASTER.IRT_VERSION_02;
|
|
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.TrandKind] = PosConst.POS_VAN_MASTER.CASHBILL_DIV_ONLY;
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.EntryMode] = aParam[0];
|
|
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.CustmerInfo] = aParam[1];
|
|
else
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.CustmerInfo] = CmUtil.MidH(aParam[1], 0, 37);
|
|
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.CustmerInfoFs] = PosConst.VAN_HEXA.FS;
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.NetSaleAmt] = aParam[2];
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.Vat] = aParam[3];
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.ServiceAmt] = aParam[4];
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.TotAmt] = aParam[5];
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.TradDiv] = aParam[6];
|
|
|
|
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.OrgAppNo] = aParam[14];
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.OrgAppNoPoint] = aParam[15];
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.OrgAppDate] = aParam[16];
|
|
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.PointEntryMode] = aParam[8];
|
|
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.PointTrackII] = aParam[9];
|
|
else
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.PointTrackII] = CmUtil.MidH(aParam[9], 0, 37);
|
|
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.PointTrackIIFS] = PosConst.VAN_HEXA.FS;
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.ItemCode] = aParam[10];
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.StoreUserID] = aParam[11];
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.StoreUseFild] = aParam[12];
|
|
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.CancelReasonCode] = "1";
|
|
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.Filler] = aParam[13];
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.ETX] = PosConst.VAN_HEXA.ETX;
|
|
aIrtBody[Column.POS_REQ_CASHBILL_CANCEL.SEQ.CR] = PosConst.VAN_HEXA.CR;
|
|
|
|
|
|
// 수표 조회 요청 전문 생성
|
|
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.POS_REQ_CASHBILL_CANCEL.LEN, Column.POS_REQ_CASHBILL_CANCEL.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
|
|
|
|
#region 승인 처리
|
|
/// <summary>
|
|
/// 조회 실행
|
|
/// </summary>
|
|
/// <param name="sAppType"></param>
|
|
/// <param name="aParam"></param>
|
|
/// <returns></returns>
|
|
public string ExecuteIrt(string sAppType, string[] aParam)
|
|
{
|
|
|
|
string sRet = UserCom.RST_ERR;
|
|
string[] aIrtDTLRsp = null;
|
|
|
|
try
|
|
{
|
|
// 연습모드이면 연습 데이터 설정
|
|
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return SetTrainingData(sAppType, aParam);
|
|
|
|
|
|
string sRecvData = "";
|
|
|
|
string sSendData = string.Empty;
|
|
|
|
sSendData = MakeCashBillBody(sAppType, aParam);
|
|
|
|
// 가맹점 정보 획득(회사승인ID,점포승인ID)
|
|
string sCmpApprID = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.ETC_INFO_ITEM, ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL, PosMst.MST_VAN.DATA.CMP_APPR_ID);
|
|
string sApprID = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.ETC_INFO_ITEM, ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL, PosMst.MST_VAN.DATA.APPR_ID);
|
|
|
|
|
|
// 승인 전문 헤더 생성
|
|
sSendData = m_cDataCommon.MakeCreditCardHeader(sAppType, sSendData.Length, sCmpApprID, sApprID) + sSendData;
|
|
|
|
string sVanCD = GetPayDtlCdToVanCode(m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01); // 승인업체 코드 조회
|
|
if (sVanCD == "")
|
|
{
|
|
//WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0563);
|
|
//return sRet;
|
|
return POS_MESSAGE.ERROR.MSG_0563;
|
|
}
|
|
|
|
// 승인데이터 중 카드번호 마스킹 처리(2017.05.25)
|
|
string sWriteSendData = CmUtil.MakeLogDataToMask(m_cDevStatus.ICReader.UseYn, aParam[1], sSendData);
|
|
UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[SEND:" + sWriteSendData);
|
|
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문)
|
|
m_cDataCommon.SetSaleApprLog("0", new string[] { m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01, sAppType, "S", aParam[14], CmUtil.DoubleParse(aParam[4]).ToString(), "", "", "", "", "", sWriteSendData });
|
|
|
|
//전문전송
|
|
string sIrtRet = m_cDataCommon.ExecuteCardIrt(sAppType, sSendData, ref sRecvData, true, "");
|
|
if (sIrtRet != UserCom.RST_OK)
|
|
{
|
|
return sRet + sIrtRet.ToString();
|
|
}
|
|
|
|
byte[] bytes = Encoding.Default.GetBytes(sRecvData);
|
|
int nNowPos = 0;
|
|
string sRetCD = "";
|
|
|
|
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
|
|
{
|
|
aIrtDTLRsp = new string[Column.POS_RES_CASHBILL.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.POS_RES_CASHBILL.LEN, Column.POS_RES_CASHBILL.TYPE, bytes, ref nNowPos, ref aIrtDTLRsp);
|
|
|
|
sRetCD = aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.Status];
|
|
|
|
// 승인데이터 중 카드번호 마스킹 처리(2017.05.25)
|
|
string sWriteRecvData = CmUtil.MakeLogDataToMask(m_cDevStatus.ICReader.UseYn, aParam[1], sRecvData);
|
|
UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[RECV:" + sWriteRecvData);
|
|
// 응답 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문)
|
|
m_cDataCommon.SetSaleApprLog("0", new string[] { m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01, sAppType, "R"
|
|
, aParam[14], CmUtil.DoubleParse(aParam[4]).ToString()
|
|
, aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.CashAppNo], CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.AppDatatime], 0, 6), CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.AppDatatime], 6, 4)
|
|
, aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.Status].Trim()
|
|
, aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.Message1].Trim() + aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.Message2].Trim()
|
|
, sWriteRecvData });
|
|
}
|
|
else
|
|
{
|
|
aIrtDTLRsp = new string[Column.POS_RES_CASHBILL_MSR.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.POS_RES_CASHBILL_MSR.LEN, Column.POS_RES_CASHBILL_MSR.TYPE, bytes, ref nNowPos, ref aIrtDTLRsp);
|
|
|
|
sRetCD = aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.Status];
|
|
|
|
// 승인데이터 중 카드번호 마스킹 처리(2017.05.25)
|
|
string sWriteRecvData = CmUtil.MakeLogDataToMask(m_cDevStatus.ICReader.UseYn, aParam[1], sRecvData);
|
|
UserLog.WriteLogFile(UserCom.LOG_SOCK, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[RECV:" + sWriteRecvData);
|
|
// 응답 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문)
|
|
m_cDataCommon.SetSaleApprLog("0", new string[] { m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01, sAppType, "R"
|
|
, aParam[14], CmUtil.DoubleParse(aParam[4]).ToString()
|
|
, aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.CashAppNo], CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.AppDatatime], 0, 6), CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.AppDatatime], 6, 4)
|
|
, aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.Status].Trim()
|
|
, aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.Message1].Trim() + aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.Message2].Trim()
|
|
, sWriteRecvData });
|
|
}
|
|
|
|
|
|
if (sRetCD == "O")
|
|
{
|
|
//#20180426 현금영수증 마스킹 변경 및 영수증 문구 변경 start
|
|
string sMaskCardNo = aParam[14];
|
|
//소득공제
|
|
if (aParam[6] == "0")
|
|
{
|
|
//실물카드(1544 2020 **** 123456 (앞 8자리 이후 4개))
|
|
if (sMaskCardNo.Length == 19)
|
|
{
|
|
sMaskCardNo = sMaskCardNo.Substring( 0,18);
|
|
sMaskCardNo = CmUtil.LeftH(sMaskCardNo, 8) + "****" + CmUtil.RightH(sMaskCardNo, 6);
|
|
}
|
|
//휴대폰번호 10자리(011***1234 (앞 3자리 이후 3개)
|
|
else if (sMaskCardNo.Length == 10)
|
|
{
|
|
sMaskCardNo = CmUtil.LeftH(sMaskCardNo, 3) + "***" + CmUtil.RightH(sMaskCardNo, 4);
|
|
}
|
|
//휴대폰번호 11자리010****4567 (앞 3자리 이후 4개)
|
|
else if (sMaskCardNo.Length == 11)
|
|
{
|
|
sMaskCardNo = CmUtil.LeftH(sMaskCardNo, 3) + "****" + CmUtil.RightH(sMaskCardNo, 4);
|
|
}
|
|
//이외(710011******* (앞 6자리 이후))
|
|
else
|
|
{
|
|
sMaskCardNo = CmUtil.MidH(sMaskCardNo, 0, 6) + new string('*', sMaskCardNo.Length - 6);
|
|
}
|
|
}
|
|
//지출증빙
|
|
else if (aParam[6] == "1")
|
|
{
|
|
//사업자등록번호(12****1234 (앞 2자리 이후 4개))
|
|
if (sMaskCardNo.Length == 10)
|
|
{
|
|
sMaskCardNo = CmUtil.LeftH(sMaskCardNo, 2) + "****" + CmUtil.RightH(sMaskCardNo, 4);
|
|
}
|
|
//이외(710011******* (앞 6자리 이후))
|
|
else
|
|
{
|
|
sMaskCardNo = CmUtil.MidH(sMaskCardNo, 0, 6) + new string('*', sMaskCardNo.Length - 6);
|
|
}
|
|
}
|
|
//#20180426 현금영수증 마스킹 변경 및 영수증 문구 변경 end
|
|
|
|
//ArrayList aEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|
|
|
//m_cEtcItem.ETC_WAY_CD = ItemConst.TR_ITEM_ID.ETC_INFO_ITEM;
|
|
//m_cEtcItem.ETC_DTL_CD_01 = ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL;
|
|
|
|
m_cEtcItem.ETC_AMT = CmUtil.DoubleParse(aParam[5]);
|
|
|
|
m_cEtcItem.QTY_ENTRY_01 = 0;
|
|
m_cEtcItem.QTY_ENTRY_02 = 0;
|
|
m_cEtcItem.QTY_ENTRY_03 = 0;
|
|
m_cEtcItem.QTY_ENTRY_04 = 0;
|
|
m_cEtcItem.QTY_ENTRY_05 = 0;
|
|
|
|
m_cEtcItem.AMT_ENTRY_01 = CmUtil.DoubleParse(aParam[5]); //TOT AMT
|
|
m_cEtcItem.AMT_ENTRY_02 = CmUtil.DoubleParse(aParam[2]); //NET SALE
|
|
m_cEtcItem.AMT_ENTRY_03 = CmUtil.DoubleParse(aParam[3]); //VAT
|
|
m_cEtcItem.AMT_ENTRY_04 = CmUtil.DoubleParse(aParam[4]); //SERVICE
|
|
m_cEtcItem.AMT_ENTRY_05 = 0;
|
|
m_cEtcItem.AMT_ENTRY_06 = 0;
|
|
m_cEtcItem.AMT_ENTRY_07 = 0;
|
|
m_cEtcItem.AMT_ENTRY_08 = 0;
|
|
m_cEtcItem.AMT_ENTRY_09 = 0;
|
|
m_cEtcItem.AMT_ENTRY_10 = 0;
|
|
|
|
|
|
if (sAppType == PosConst.POS_VAN_MASTER.TRADE_ID.VAN_CASH_AGREE)
|
|
{
|
|
//#20180426 현금영수증 마스킹 변경 및 영수증 문구 변경 start
|
|
//기존
|
|
//m_cEtcItem.OCCUR_ENTRY_01 = aParam[14]; //사용자정보
|
|
//변경
|
|
m_cEtcItem.OCCUR_ENTRY_01 = sMaskCardNo; //사용자정보
|
|
//#20180426 현금영수증 마스킹 변경 및 영수증 문구 변경 end
|
|
m_cEtcItem.OCCUR_ENTRY_06 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_07 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_10 = aParam[15]; //자진발급구분(0:일반, 1:자진발금)
|
|
}
|
|
else
|
|
{
|
|
m_cEtcItem.OCCUR_ENTRY_06 = m_cEtcItem.OCCUR_ENTRY_02; // 원승인번호
|
|
m_cEtcItem.OCCUR_ENTRY_07 = m_cEtcItem.OCCUR_ENTRY_03; // 원승인일자
|
|
}
|
|
|
|
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
|
|
{
|
|
m_cEtcItem.OCCUR_ENTRY_02 = aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.CashAppNo];
|
|
m_cEtcItem.OCCUR_ENTRY_03 = CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.AppDatatime], 0, 6);
|
|
m_cEtcItem.OCCUR_ENTRY_04 = CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.AppDatatime], 6, 4);
|
|
}
|
|
else
|
|
{
|
|
m_cEtcItem.OCCUR_ENTRY_02 = aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.CashAppNo];
|
|
m_cEtcItem.OCCUR_ENTRY_03 = CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.AppDatatime], 0, 6);
|
|
m_cEtcItem.OCCUR_ENTRY_04 = CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.AppDatatime], 6, 4);
|
|
}
|
|
m_cEtcItem.OCCUR_ENTRY_05 = aParam[0]; //입력구분
|
|
|
|
m_cEtcItem.OCCUR_ENTRY_08 = ItemConst.PAY_APP_DIV.NORMAL; //승인구분 0:정상,1:임의승인
|
|
m_cEtcItem.OCCUR_ENTRY_09 = aParam[7]; //사후거래 구분(0:일반, 1:사후)
|
|
|
|
m_cEtcItem.OCCUR_ENTRY_11 = aParam[6]; //거래자 구분 - "0" : 개인이 사용한 경우- "1" : 사업자가 사용한 경우
|
|
m_cEtcItem.OCCUR_ENTRY_12 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_13 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_14 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_15 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_16 = sVanCD; //VAN 구분
|
|
m_cEtcItem.OCCUR_ENTRY_17 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_18 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_19 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_20 = GetPayDtlCdToPayDtlName(m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01); //결제 수단명
|
|
m_cEtcItem.OCCUR_ENTRY_21 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_22 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_23 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_24 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_25 = "";
|
|
|
|
m_cEtcItem.BILLSPR_NO = m_cTrnStatus.Sale.BillSplitNo; // 빌분리 번호
|
|
m_cEtcItem.CANCEL_DIV = PosConst.CANCEL_DIV.NORMAL;
|
|
}
|
|
else
|
|
{
|
|
|
|
//WinManager.ErrorMessage(aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.Message1] + aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.Message2]);
|
|
|
|
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
|
|
{
|
|
return sRet + aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.Message1] + aIrtDTLRsp[Column.POS_RES_CASHBILL.SEQ.Message2];
|
|
}
|
|
else
|
|
{
|
|
return sRet + aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.Message1] + aIrtDTLRsp[Column.POS_RES_CASHBILL_MSR.SEQ.Message2];
|
|
}
|
|
}
|
|
|
|
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 Cat단말기 승인 처리
|
|
/// <summary>
|
|
/// 조회 실행
|
|
/// </summary>
|
|
/// <param name="sAppType"></param>
|
|
/// <param name="aParam"></param>
|
|
/// <returns></returns>
|
|
public string CatExecuteIrt(string sAppType, string[] aParam)
|
|
{
|
|
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
try
|
|
{
|
|
// 연습모드이면 연습 데이터 설정
|
|
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return SetTrainingData(sAppType, aParam);
|
|
|
|
string sRecvdData = "";
|
|
string sAppLogDiv = "";
|
|
string sInputType = "";
|
|
|
|
if (sAppType == PosConst.POS_CAT_MASTER.TRADE_ID.CAT_CASH_AGREE)
|
|
{
|
|
sAppLogDiv = PosConst.CANCEL_DIV.NORMAL;
|
|
}
|
|
else
|
|
{
|
|
sAppLogDiv = PosConst.CANCEL_DIV.CANCEL;
|
|
}
|
|
|
|
string[] aIrtDTLRsp = new string[Column.POS_RES_SPCN_CAT.LEN.Length];
|
|
|
|
//전문 송/수신
|
|
if (CatTerminalExecuteIrtCom(sAppType, sAppLogDiv, aParam, m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01, ref aIrtDTLRsp, ref sRecvdData, ref sInputType) == false)
|
|
{
|
|
return sRet;
|
|
}
|
|
|
|
m_cEtcItem.ETC_AMT = CmUtil.DoubleParse(aParam[3]);
|
|
|
|
m_cEtcItem.QTY_ENTRY_01 = 0;
|
|
m_cEtcItem.QTY_ENTRY_02 = 0;
|
|
m_cEtcItem.QTY_ENTRY_03 = 0;
|
|
m_cEtcItem.QTY_ENTRY_04 = 0;
|
|
m_cEtcItem.QTY_ENTRY_05 = 0;
|
|
|
|
m_cEtcItem.AMT_ENTRY_01 = CmUtil.DoubleParse(aParam[3]); //TOT AMT
|
|
m_cEtcItem.AMT_ENTRY_02 = CmUtil.DoubleSubtraction(CmUtil.DoubleParse(aParam[3]), CmUtil.DoubleParse(aParam[5])); //NET SALE
|
|
m_cEtcItem.AMT_ENTRY_03 = CmUtil.DoubleParse(aParam[5]); //VAT
|
|
m_cEtcItem.AMT_ENTRY_04 = CmUtil.DoubleParse(aParam[4]); //SERVICE
|
|
m_cEtcItem.AMT_ENTRY_05 = 0;
|
|
m_cEtcItem.AMT_ENTRY_06 = 0;
|
|
m_cEtcItem.AMT_ENTRY_07 = 0;
|
|
m_cEtcItem.AMT_ENTRY_08 = 0;
|
|
m_cEtcItem.AMT_ENTRY_09 = 0;
|
|
m_cEtcItem.AMT_ENTRY_10 = 0;
|
|
|
|
|
|
if (sAppType == PosConst.POS_CAT_MASTER.TRADE_ID.CAT_CASH_AGREE)
|
|
{
|
|
m_cEtcItem.OCCUR_ENTRY_01 = aIrtDTLRsp[Column.POS_RES_SPCN_CAT.SEQ.CardBinData].Trim().Length == 6 ? aIrtDTLRsp[Column.POS_RES_SPCN_CAT.SEQ.CardBinData].Trim() + "*********" : aIrtDTLRsp[Column.POS_RES_SPCN_CAT.SEQ.CardBinData].Trim(); //사용자정보
|
|
m_cEtcItem.OCCUR_ENTRY_06 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_07 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_10 = aParam[2] == "02" ? "1" : "0"; //자진발급구분(0:일반, 1:자진발금)
|
|
}
|
|
else
|
|
{
|
|
m_cEtcItem.OCCUR_ENTRY_06 = m_cEtcItem.OCCUR_ENTRY_02; // 원승인번호
|
|
m_cEtcItem.OCCUR_ENTRY_07 = m_cEtcItem.OCCUR_ENTRY_03; // 원승인일자
|
|
}
|
|
|
|
|
|
m_cEtcItem.OCCUR_ENTRY_02 = aIrtDTLRsp[Column.POS_RES_SPCN_CAT.SEQ.AppNo].Trim();
|
|
m_cEtcItem.OCCUR_ENTRY_03 = CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_SPCN_CAT.SEQ.AppDatatime], 0, 6);
|
|
m_cEtcItem.OCCUR_ENTRY_04 = CmUtil.MidH(aIrtDTLRsp[Column.POS_RES_SPCN_CAT.SEQ.AppDatatime], 6, 4);
|
|
|
|
m_cEtcItem.OCCUR_ENTRY_05 = sInputType; //입력구분
|
|
|
|
m_cEtcItem.OCCUR_ENTRY_08 = ItemConst.PAY_APP_DIV.CAT_TERMINAL; //승인구분 0:정상,1:임의승인
|
|
m_cEtcItem.OCCUR_ENTRY_09 = aParam[12]; //사후거래 구분(0:일반, 1:사후)
|
|
|
|
m_cEtcItem.OCCUR_ENTRY_11 = aIrtDTLRsp[Column.POS_RES_SPCN_CAT.SEQ.DivMonth].Trim() == "02" || aIrtDTLRsp[Column.POS_RES_SPCN_CAT.SEQ.DivMonth].Trim() == "00" ? "0" : "1"; //거래자 구분 - "0" : 개인이 사용한 경우- "1" : 사업자가 사용한 경우
|
|
m_cEtcItem.OCCUR_ENTRY_12 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_13 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_14 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_15 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_16 = GetPayDtlCdToVanCode(m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01); // 승인업체 코드 조회
|
|
m_cEtcItem.OCCUR_ENTRY_17 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_18 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_19 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_20 = GetPayDtlCdToPayDtlName(m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01); //결제 수단명
|
|
m_cEtcItem.OCCUR_ENTRY_21 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_22 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_23 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_24 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_25 = "";
|
|
|
|
m_cEtcItem.BILLSPR_NO = m_cTrnStatus.Sale.BillSplitNo; // 빌분리 번호
|
|
m_cEtcItem.CANCEL_DIV = PosConst.CANCEL_DIV.NORMAL;
|
|
|
|
|
|
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
|
|
|
|
/// <summary>
|
|
/// 연습 데이터 설정
|
|
/// </summary>
|
|
public string SetTrainingData(string sAppType, string[] aParam)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
try
|
|
{
|
|
// 연습모드이면 연습 데이터 설정
|
|
//string sVanCD = GetPayDtlCdToVanCode(m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01); // 승인업체 코드 조회
|
|
//if (sVanCD == "")
|
|
//{
|
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0563);
|
|
// return sRet;
|
|
//}
|
|
|
|
double dPayAmt = 0;
|
|
double dNetSale = 0;
|
|
double dVat = 0;
|
|
string sCardNo = "";
|
|
string sPersonal = "";
|
|
|
|
|
|
if (aParam.Length > 0 && aParam[0] == PosConst.POS_CAT_MASTER.TRAN_TYPE) //단말기승인
|
|
{
|
|
|
|
// 0.전문구분,1.거래유형, 2.할부개월, 3.승인금액 , 4.봉사료, 5.세금, 6.원승인번호, 7.원거래일자, 8.포인트거래구분, 9.상품코드,
|
|
//10.전표인쇄여부,11.추가항목,12.제휴할인코드,13.제휴할인금액,14.예비1
|
|
|
|
dPayAmt = CmUtil.DoubleParse(aParam[3]);
|
|
dNetSale = CmUtil.DoubleSubtraction(CmUtil.DoubleParse(aParam[3]), CmUtil.DoubleParse(aParam[5]));
|
|
dVat = CmUtil.DoubleParse(aParam[5]);
|
|
sCardNo = "01000*****";
|
|
sPersonal = aParam[2] == "02" || aParam[2] == "00" ? "1" : "0";
|
|
|
|
}
|
|
else
|
|
{
|
|
dPayAmt = CmUtil.DoubleParse(aParam[5]);
|
|
dNetSale = CmUtil.DoubleParse(aParam[2]);
|
|
dVat = CmUtil.DoubleParse(aParam[3]);
|
|
sCardNo = aParam[14];
|
|
sPersonal = aParam[6];
|
|
}
|
|
|
|
m_cEtcItem.ETC_AMT = dPayAmt;
|
|
|
|
m_cEtcItem.QTY_ENTRY_01 = 0;
|
|
m_cEtcItem.QTY_ENTRY_02 = 0;
|
|
m_cEtcItem.QTY_ENTRY_03 = 0;
|
|
m_cEtcItem.QTY_ENTRY_04 = 0;
|
|
m_cEtcItem.QTY_ENTRY_05 = 0;
|
|
|
|
m_cEtcItem.AMT_ENTRY_01 = dPayAmt; //TOT AMT
|
|
m_cEtcItem.AMT_ENTRY_02 = dNetSale; //NET SALE
|
|
m_cEtcItem.AMT_ENTRY_03 = dVat; //VAT
|
|
m_cEtcItem.AMT_ENTRY_04 = 0; //SERVICE
|
|
m_cEtcItem.AMT_ENTRY_05 = 0;
|
|
m_cEtcItem.AMT_ENTRY_06 = 0;
|
|
m_cEtcItem.AMT_ENTRY_07 = 0;
|
|
m_cEtcItem.AMT_ENTRY_08 = 0;
|
|
m_cEtcItem.AMT_ENTRY_09 = 0;
|
|
m_cEtcItem.AMT_ENTRY_10 = 0;
|
|
|
|
m_cEtcItem.OCCUR_ENTRY_01 = sCardNo; //사용자정보
|
|
|
|
|
|
if (sAppType == PosConst.POS_VAN_MASTER.TRADE_ID.VAN_CASH_AGREE || sAppType == PosConst.POS_CAT_MASTER.TRADE_ID.CAT_CASH_AGREE)
|
|
{
|
|
m_cEtcItem.OCCUR_ENTRY_06 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_07 = "";
|
|
}
|
|
else
|
|
{
|
|
m_cEtcItem.OCCUR_ENTRY_06 = m_cEtcItem.OCCUR_ENTRY_02; // 원승인번호
|
|
m_cEtcItem.OCCUR_ENTRY_07 = m_cEtcItem.OCCUR_ENTRY_03; // 원승인일자
|
|
}
|
|
|
|
|
|
m_cEtcItem.OCCUR_ENTRY_02 = "99999999"; // 승인번호
|
|
m_cEtcItem.OCCUR_ENTRY_03 = DateTime.Now.ToString("yyMMdd"); // 승인일자
|
|
m_cEtcItem.OCCUR_ENTRY_04 = DateTime.Now.ToString("HHmmss"); // 승인시간
|
|
m_cEtcItem.OCCUR_ENTRY_05 = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN; //입력구분
|
|
|
|
|
|
m_cEtcItem.OCCUR_ENTRY_08 = ItemConst.PAY_APP_DIV.COMPULSION;
|
|
m_cEtcItem.OCCUR_ENTRY_09 = "0"; //사후거래 구분(0:일반, 1:사후)
|
|
m_cEtcItem.OCCUR_ENTRY_10 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_11 = sPersonal; //거래자 구분 - "0" : 개인이 사용한 경우- "1" : 사업자가 사용한 경우
|
|
m_cEtcItem.OCCUR_ENTRY_12 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_13 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_14 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_15 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_16 = ""; //VAN 구분
|
|
m_cEtcItem.OCCUR_ENTRY_17 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_18 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_19 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_20 = GetPayDtlCdToPayDtlName(m_cEtcItem.ETC_WAY_CD, m_cEtcItem.ETC_DTL_CD_01); //결제 수단명
|
|
m_cEtcItem.OCCUR_ENTRY_21 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_22 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_23 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_24 = "";
|
|
m_cEtcItem.OCCUR_ENTRY_25 = "";
|
|
|
|
m_cEtcItem.BILLSPR_NO = m_cTrnStatus.Sale.BillSplitNo; // 빌분리 번호
|
|
m_cEtcItem.CANCEL_DIV = PosConst.CANCEL_DIV.NORMAL;
|
|
|
|
|
|
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;
|
|
}
|
|
|
|
}
|
|
}
|