1637 lines
87 KiB
C#
1637 lines
87 KiB
C#
using System;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using System.Collections;
|
|
using System.Data;
|
|
|
|
using Cosmos.BaseFrame;
|
|
using Cosmos.UserFrame;
|
|
using Cosmos.ServiceProvider;
|
|
using Cosmos.Common;
|
|
using Cosmos.CommonManager;
|
|
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
// 설 명 : 영수증 반품 결제수단(승인결제)별 완료 처리
|
|
// 작 성 자 :
|
|
// 변경 이력 :
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
namespace Cosmos.Win
|
|
{
|
|
public partial class frmRefundPay : Form
|
|
{
|
|
#region Variable
|
|
|
|
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 PosOLEDevice.DelegateOlePos delegatePos;
|
|
|
|
private IDataProcessUs m_cDataSrv = null;
|
|
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
|
|
private ISaleReceipt m_cTradeDeal = null;
|
|
private ISaleRefundUs m_cSaleRefund = null; // 반품처리
|
|
private IICReaderUs m_cICReader = null; // IC리더기
|
|
private IPaymentUs m_cPayCancel = null; // 결제 취소 공통
|
|
|
|
//#20171227 인천공항 포스연동 start, phj
|
|
private IAirPortTran m_cAirPortTran = null;
|
|
//#20171227 인천공항 포스연동 end, phj
|
|
|
|
/// <summary>
|
|
/// 영수증 리스트
|
|
/// </summary>
|
|
private DataTable m_dtSearchList;
|
|
#endregion
|
|
|
|
#region 생성자 & 소멸자
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public frmRefundPay()
|
|
{
|
|
InitializeComponent();
|
|
|
|
base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
|
|
//this.UpdateStyles();
|
|
|
|
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
|
|
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
|
|
m_cDevStatus = (DeviceStatus)StateObject.DEVICE;
|
|
delegatePos = new PosOLEDevice.DelegateOlePos(OnDeviceEvent);
|
|
|
|
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);
|
|
|
|
m_cTradeDeal = (ISaleReceipt)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.SALE_RECEIPT);
|
|
m_cSaleRefund = (ISaleRefundUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_REFUND);
|
|
m_cPayCancel = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.PAYMENTCANCEL);
|
|
m_cICReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER);
|
|
|
|
//#20171227 인천공항 포스연동 start, phj
|
|
m_cAirPortTran = (IAirPortTran)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.AIRPORT_TRAN);
|
|
//#20171227 인천공항 포스연동 end, phj
|
|
}
|
|
/// <summary>
|
|
/// 폼로드
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void frmRefundPay_Load(object sender, EventArgs e)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
|
|
|
|
InitControl();
|
|
DisplayGrid();
|
|
this.TopMost = true;
|
|
this.Tag = "START";
|
|
}
|
|
/// <summary>
|
|
/// 폼클로즈
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void frmRefundPay_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", lblTitle.Text);
|
|
}
|
|
/// <summary>
|
|
/// 폼엑티브
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void frmRefundPay_Activated(object sender, EventArgs e)
|
|
{
|
|
PosOLEDevice.SetEventHandle(delegatePos);
|
|
|
|
if (!string.IsNullOrEmpty((string)this.Tag) && this.Tag.ToString() == "START")
|
|
{
|
|
this.Tag = "";
|
|
RefundComplete();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 폼디엑티브
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void frmRefundPay_Deactivate(object sender, EventArgs e)
|
|
{
|
|
PosOLEDevice.SetEventHandle(null);
|
|
}
|
|
#endregion 생성자 & 소멸자
|
|
|
|
#region 폼 컨트롤 초기화
|
|
/// <summary>
|
|
/// 폼 컨트롤 초기화
|
|
/// </summary>
|
|
private void InitControl()
|
|
{
|
|
try
|
|
{
|
|
// 이미지 로딩 처리
|
|
picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_800X600);
|
|
|
|
//FormManager.MovePopUpForm(this, false, m_cPosStatus.Sale.ScreenSizeUser);
|
|
FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT);
|
|
FormManager.SetTextBoxGlobalInfo(this, m_cPosStatus.Global.m_stCultureMaster.nGroupingDigits, m_cPosStatus.Global.m_stCultureMaster.strGroupingSymbol
|
|
, m_cPosStatus.Global.m_stCultureMaster.nDecimalDigits, m_cPosStatus.Global.m_stCultureMaster.strDecimalSymbol);
|
|
|
|
btnExit.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_CLOSE);
|
|
if (btnExit.Image != null) btnExit.Text = "";
|
|
|
|
btnUp2.Image = CmUtil.LoadImage(BaseCom.NxImgPath + ImageManager.NAVIBTN_14X9_UP2_BASIC);
|
|
btnUp.Image = CmUtil.LoadImage(BaseCom.NxImgPath + ImageManager.NAVIBTN_14X9_UP1_BASIC);
|
|
btnDw.Image = CmUtil.LoadImage(BaseCom.NxImgPath + ImageManager.NAVIBTN_14X9_DOWN1_BASIC);
|
|
btnDw2.Image = CmUtil.LoadImage(BaseCom.NxImgPath + ImageManager.NAVIBTN_14X9_DOWN2_BASIC);
|
|
|
|
if (btnUp2.Image != null) btnUp2.Text = "";
|
|
if (btnUp.Image != null) btnUp.Text = "";
|
|
if (btnDw.Image != null) btnDw.Text = "";
|
|
if (btnDw2.Image != null) btnDw2.Text = "";
|
|
|
|
//테마색상 적용!
|
|
btnEnter.BackColor = CmUtil.GetColorToString(m_cPosStatus.ScnMst.ThemeColor);
|
|
|
|
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0379);
|
|
lblSaleDate.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0242);
|
|
lblPosNo.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0370);
|
|
lblTradeNo.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0346);
|
|
|
|
btnEnter.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0394);
|
|
btnMenual.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0395);
|
|
|
|
lblComplete.Text = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0339);
|
|
|
|
txtSaleDate.Text = m_cPosStatus.Global.DateToCulture(m_cTrnStatus.Head.OrgSaleDate);
|
|
txtPosNo.Text = m_cTrnStatus.Head.OrgPosNo;
|
|
txtTradeNo.Text = m_cTrnStatus.Head.OrgTradeNo;
|
|
|
|
//lblComplete.SetBounds(10, 120, 780, 470);
|
|
lblComplete.BringToFront();
|
|
lblComplete.Visible = false;
|
|
InitializeGrid();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 그리드 초기화
|
|
/// </summary>
|
|
private void InitializeGrid()
|
|
{
|
|
try
|
|
{
|
|
grdSearchList.CsmGridColumnHeadersVisible = true; //DataGridView 자체의 컬럼 헤더 Visible 여부
|
|
|
|
grdSearchList.CsmGridColumnHeadersFont = new Font(m_cPosStatus.Base.FONT, 11);
|
|
|
|
grdSearchList.CsmGridColumnHeadersHeight = 38; //DataGridView 자체의 컬럼 헤더 높이
|
|
grdSearchList.CsmGridRowsHeight = 40;
|
|
grdSearchList.CsmGridColumnCount = 17; //그리드의 컬럼수
|
|
grdSearchList.CsmGridShowPageRowsCount = 9; //그리드의 한 화면에 보이는 로우수
|
|
grdSearchList.CsmGridSetHeaderBackColor(236, 238, 239); //그리드 헤더 배경색
|
|
grdSearchList.CsmGridDefaultRowBackColor = Color.FromArgb(255, 255, 255); //그리드 홀수(Default)행의 배경색 지정
|
|
grdSearchList.CsmGridAlternateRowBackColor = Color.FromArgb(251, 253, 255); //그리드 짝수(Alternate)행의 배경색 지정
|
|
grdSearchList.CsmGridBackGroundColor = Color.FromArgb(251, 253, 255); //기본 백그라운드 컬러
|
|
grdSearchList.CsmGridHighlightColor = Color.FromArgb(255, 251, 211); //그리드 선택 백 컬러
|
|
grdSearchList.CsmGridHighlightTextColor = Color.Black; //그리드 선택 글자 컬러
|
|
grdSearchList.CsmGridSetColumnWidth(new int[] { 35, 110, 100, 100, 75, 140, 89, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0 }); //컬럼넓이 지정
|
|
grdSearchList.CsmGridAlignment(new int[] { 1, 0, 2, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); //컬럼 정렬 0:왼쪽, 1:가운데, 2:오른쪽
|
|
|
|
//각 컬럼별 이름 지정(NO, 결제내역, 승인금액, 원승인번호, 원승인시간, 카드번호, 승인구분, 완료여부, 결제코드, 상세코드, 행번호, 승인구분코드, 완료여부코드, 카드재입력구분, 입력구분, T폐이거래일련번호)
|
|
grdSearchList.CsmGridColumnName(0, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0014));
|
|
grdSearchList.CsmGridColumnName(1, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0384));
|
|
grdSearchList.CsmGridColumnName(2, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0396));
|
|
grdSearchList.CsmGridColumnName(3, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0053));
|
|
grdSearchList.CsmGridColumnName(4, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0446));
|
|
grdSearchList.CsmGridColumnName(5, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0051));
|
|
grdSearchList.CsmGridColumnName(6, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0385));
|
|
grdSearchList.CsmGridColumnName(7, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0247));
|
|
grdSearchList.CsmGridColumnName(8, "PAY_WAY_CD");
|
|
grdSearchList.CsmGridColumnName(9, "PAY_DTL_CD");
|
|
grdSearchList.CsmGridColumnName(10, "SEQ_NO");
|
|
grdSearchList.CsmGridColumnName(11, "APP_DIV");
|
|
grdSearchList.CsmGridColumnName(12, "APP_END");
|
|
grdSearchList.CsmGridColumnName(13, "INCARD_YN");
|
|
grdSearchList.CsmGridColumnName(14, "INPUT_TYPE");
|
|
grdSearchList.CsmGridColumnName(15, "TPAY_TRADE_SEQ");
|
|
grdSearchList.CsmGridColumnName(16, "PASSWORD_YN");
|
|
|
|
//그리드 초기화 테이블
|
|
m_dtSearchList = new DataTable("INIT");
|
|
m_dtSearchList.Columns.Add(new DataColumn("NO", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("PAY_NAME", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("PAY_AMT", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("ORG_APP_NO", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("ORG_APP_TM", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("PAY_CARD", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("APP_DIV_NM", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("APP_END_NM", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("PAY_WAY_CD", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("PAY_DTL_CD", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("SEQ_NO", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("APP_DIV", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("APP_END", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("INCARD_YN", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("INPUT_TYPE", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("TPAY_TRADE_SEQ", typeof(string)));
|
|
m_dtSearchList.Columns.Add(new DataColumn("PASSWORD_YN", typeof(string)));
|
|
m_dtSearchList.Clear();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 그리드 표시
|
|
/// </summary>
|
|
private void DisplayGrid()
|
|
{
|
|
try
|
|
{
|
|
m_dtSearchList.Clear();
|
|
|
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|
|
|
for (int nRow = 0; nRow < alPayItem.Count; nRow++)
|
|
{
|
|
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[nRow];
|
|
|
|
if (cPayItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|
|
|
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.CASH_ITEM // 현금
|
|
|| cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.GIFT_ITEM // 상품권
|
|
|| (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.PAYETC_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAYETC.BALANCE_VOUCHER) // 잔액교환권
|
|
|| (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.PAYETC_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAYETC.MEAL_TIKET) // 식권
|
|
|| cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.FOREIGNEX_ITEM // 외화
|
|
|
|
//#20180202 인천공항 VIP 라운지 기능미사용으로 주석처리 start,phj
|
|
/*
|
|
// grayber@20180115 인천공항 VIP 라운지 start - 반품 결제코드 추가
|
|
|| cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.PAYETC_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAYETC.VIP_LOUNGE // 인천공항 VIP 라운지
|
|
// grayber@20180115 인천공항 VIP 라운지 end
|
|
*/
|
|
//#20180202 인천공항 VIP 라운지 기능미사용으로 주석처리 end,phj
|
|
|
|
//grayber@20180208 코레일 마일리지 입력 start - 반품 분기 코드 추가
|
|
|| (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.POINT_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.POINT_USE.KORAIL_MILEAGE) // 코레일 마일리지
|
|
//grayber@20180208 코레일 마일리지 입력 end
|
|
|
|
)
|
|
{
|
|
// 거스름
|
|
if (cPayItem.AMT_ENTRY_02 > 0)
|
|
{
|
|
m_cPosStatus.Sale.ChangeCashAmt = cPayItem.AMT_ENTRY_02;
|
|
}
|
|
}
|
|
|
|
bool bADD = false;
|
|
string sInCardDiv = "0"; // 카드재입력구분 => 0:안함, 1:재입력, 2:기존번호 암호화, 3:현금영수증자진발급
|
|
string addName = string.Empty;
|
|
string sPassWordYn = "N";
|
|
switch (cPayItem.PAY_WAY_CD)
|
|
{
|
|
case ItemConst.TR_ITEM_ID.CREDITCARD_ITEM: // 신용 카드
|
|
case ItemConst.TR_ITEM_ID.MOBILE_COM_POINT: // 제휴 통신사
|
|
case ItemConst.TR_ITEM_ID.POINT_ITEM: // 포인트 사용
|
|
bADD = true;
|
|
|
|
//#20171227 인천공항 포스연동 start, phj
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1" &&
|
|
(cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.CREDITCARD_ITEM &&
|
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD))
|
|
{
|
|
bADD = false;
|
|
sInCardDiv = "0";
|
|
}
|
|
//grayber@20180208 코레일 마일리지 입력 start - 반품 분기 코드 추가
|
|
else if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.POINT_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.POINT_USE.KORAIL_MILEAGE)
|
|
{
|
|
bADD = false;
|
|
sInCardDiv = "0";
|
|
}
|
|
//grayber@20180208 코레일 마일리지 입력 end
|
|
else
|
|
{
|
|
//#20171227 인천공항 포스연동 end, phj
|
|
if (cPayItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.CAT_TERMINAL || cPayItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.X_CHARGE)
|
|
{
|
|
sInCardDiv = "2";
|
|
}
|
|
else
|
|
{
|
|
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.POINT_ITEM
|
|
&& (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT_USE_CHINA))
|
|
{
|
|
sInCardDiv = "2";
|
|
//sInCardDiv = "1";
|
|
//sPassWordYn = cPayItem.OCCUR_ENTRY_13; // 해피포인트사용시 비밀번호 사용여부
|
|
//if (cPayItem.OCCUR_ENTRY_14.Trim() != "" && sPassWordYn == "N") sInCardDiv = "2";
|
|
|
|
//#20170830 IC리더기에서 해피포인트 실물카드 사용 후 반품시 재리딩 하도록 수정 start
|
|
if (cPayItem.OCCUR_ENTRY_14.Trim() == "") sInCardDiv = "1";
|
|
//#20170830 IC리더기에서 해피포인트 실물카드 사용 후 반품시 재리딩 하도록 수정 end
|
|
}
|
|
//#20170906 T페이 고도화 작업 phj, start
|
|
else if ((cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT) &&
|
|
(cPayItem.OCCUR_ENTRY_01.IndexOf("*") < 0))
|
|
{
|
|
sInCardDiv = "2";
|
|
}
|
|
//#20170906 T페이 고도화 작업 phj, end
|
|
|
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|
else if ((cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT &&
|
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD)
|
|
&& (cPayItem.OCCUR_ENTRY_01.IndexOf("*") < 0))
|
|
{
|
|
sInCardDiv = "0";
|
|
}
|
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|
else
|
|
{
|
|
sInCardDiv = "1";
|
|
}
|
|
}
|
|
//#20171227 인천공항 포스연동 start, phj
|
|
}
|
|
//#20171227 인천공항 포스연동 end, phj
|
|
break;
|
|
case ItemConst.TR_ITEM_ID.EMP_PAY_ITEM: // 임직원 결제
|
|
bADD = true;
|
|
sInCardDiv = "1";
|
|
break;
|
|
case ItemConst.TR_ITEM_ID.PAY_ITEM: // 페이
|
|
if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAY.ALIPAY_PAY)
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "2";
|
|
}
|
|
else if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAY.SMILE_PAY)
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "1";
|
|
}
|
|
else if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAY.T_PAY)
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "1";
|
|
|
|
// T폐이 거래일련번호 (통합결제 시 SKT 할인 매칭키)
|
|
if (string.IsNullOrWhiteSpace(cPayItem.OCCUR_ENTRY_15) == false)
|
|
{
|
|
addName = "(" + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0866) + ")";
|
|
}
|
|
sPassWordYn = "Y";
|
|
}
|
|
else if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAY.WECHAT_PAY)
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "2";
|
|
}
|
|
// #Rhee, 20170922 중국 은련페이 추가 start
|
|
else if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAY.UNION_PAY)
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "2";
|
|
}
|
|
// #Rhee, 20170922 중국 은련페이 추가 end
|
|
//#2017.09.11.001;위쳇페이 바이롱 추가 start ;girak.kim
|
|
else if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAY.WECHAT_BIORONG_PAY
|
|
|| cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAY.XIAO_GIFTCARD_PAY)
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "2";
|
|
}
|
|
//#2017.09.11.001;위쳇페이 바이롱 추가 end ;girak.kim
|
|
|
|
break;
|
|
case ItemConst.TR_ITEM_ID.COUPON_ITEM: // 쿠폰
|
|
if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.COUPON.INCARD)
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "2";
|
|
}
|
|
else if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.COUPON.ONLINE)
|
|
{
|
|
bADD = true;
|
|
}
|
|
break;
|
|
//#20171122 티머니 승인취소창에 표기되도록 수정 start
|
|
case ItemConst.TR_ITEM_ID.MOBILECASH_ITEM: // 티머니, 캐시비
|
|
bADD = true;
|
|
sInCardDiv = "2";
|
|
break;
|
|
//#20171122 티머니 승인취소창에 표기되도록 수정 end
|
|
case ItemConst.TR_ITEM_ID.MOBILECON_ITEM: // 모바일쿠폰
|
|
bADD = true;
|
|
sInCardDiv = "0";
|
|
break;
|
|
case ItemConst.TR_ITEM_ID.PPCARD_ITEM: // 선불카드
|
|
//#20171018, 해피기프트(코나머니) 결제코드(신용->선불) 변경 Start, srlee
|
|
// 기존
|
|
//if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PPCARD.HP_GIFT) //해피기프트
|
|
if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PPCARD.HP_GIFT || cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PPCARD.HPGIFT_CARD) //해피기프트
|
|
//#20171018, 해피기프트(코나머니) 결제코드(신용->선불) 변경 End, srlee
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "1";
|
|
}
|
|
else
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "0";
|
|
}
|
|
break;
|
|
case ItemConst.TR_ITEM_ID.EMP_DC_ITEM: // 직원 할인
|
|
if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.EMP_DC.SPC) //SPC할인
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "2";
|
|
}
|
|
else if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.EMP_DC.SPC_PAY) //SPC할인
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "2";
|
|
}
|
|
else if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.EMP_DC.SPC_CHINA) //SPC할인(중국)
|
|
{
|
|
bADD = true;
|
|
sInCardDiv = "2";
|
|
}
|
|
if (cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.EMP_DC.SAMSUNGCARD) // 삼성 SFC
|
|
{
|
|
|
|
}
|
|
break;
|
|
}
|
|
if (bADD == true)
|
|
{
|
|
|
|
string sAppTypeNm = "";
|
|
|
|
if (cPayItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.NORMAL || cPayItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.X_CHARGE)
|
|
{
|
|
sAppTypeNm = "";
|
|
}
|
|
else if (cPayItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.CAT_TERMINAL)
|
|
{
|
|
sAppTypeNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0854);
|
|
}
|
|
else
|
|
{
|
|
sAppTypeNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0364);
|
|
}
|
|
|
|
DataRow drNewRow = m_dtSearchList.NewRow();
|
|
drNewRow["NO"] = (m_dtSearchList.Rows.Count + 1).ToString();
|
|
//drNewRow["PAY_NAME"] = cPayItem.OCCUR_ENTRY_20;
|
|
drNewRow["PAY_NAME"] = cPayItem.OCCUR_ENTRY_20 + addName;
|
|
drNewRow["PAY_AMT"] = m_cPosStatus.Global.NumericTOCurrency(cPayItem.PAY_AMT);
|
|
drNewRow["ORG_APP_NO"] = cPayItem.OCCUR_ENTRY_02;
|
|
drNewRow["ORG_APP_TM"] = CmUtil.StrToTime(cPayItem.OCCUR_ENTRY_04);
|
|
drNewRow["PAY_CARD"] = cPayItem.OCCUR_ENTRY_01;
|
|
drNewRow["APP_DIV_NM"] = sAppTypeNm; // cPayItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.NORMAL ? "" : MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0364);
|
|
drNewRow["APP_END_NM"] = "";
|
|
drNewRow["PAY_WAY_CD"] = cPayItem.PAY_WAY_CD;
|
|
drNewRow["PAY_DTL_CD"] = cPayItem.PAY_DTL_CD_01;
|
|
drNewRow["SEQ_NO"] = nRow.ToString();
|
|
drNewRow["APP_DIV"] = cPayItem.OCCUR_ENTRY_08;
|
|
drNewRow["APP_END"] = "";
|
|
drNewRow["INCARD_YN"] = sInCardDiv;
|
|
drNewRow["INPUT_TYPE"] = cPayItem.OCCUR_ENTRY_05;
|
|
drNewRow["TPAY_TRADE_SEQ"] = cPayItem.OCCUR_ENTRY_15;
|
|
drNewRow["PASSWORD_YN"] = sPassWordYn;
|
|
m_dtSearchList.Rows.Add(drNewRow);
|
|
}
|
|
}
|
|
|
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|
|
|
for (int nRow = 0; nRow < alEtcItem.Count; nRow++)
|
|
{
|
|
Column.TR_ETC.DATA cEtcItem = (Column.TR_ETC.DATA)alEtcItem[nRow];
|
|
|
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|
|
|
bool bADD = false;
|
|
string sInCardDiv = "0"; // 카드재입력구분 => 0:안함, 1:재입력, 2:기존번호 암호화, 3:현금영수증자진발급
|
|
switch (cEtcItem.ETC_WAY_CD)
|
|
{
|
|
#region
|
|
case ItemConst.TR_ITEM_ID.ETC_INFO_ITEM: // 기타수단
|
|
if (cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|
{
|
|
|
|
bADD = true;
|
|
|
|
if (cEtcItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.CAT_TERMINAL)
|
|
{
|
|
sInCardDiv = "2";
|
|
}
|
|
else
|
|
{
|
|
sInCardDiv = "1";
|
|
if (cEtcItem.OCCUR_ENTRY_14.Trim() != "") sInCardDiv = "2";
|
|
}
|
|
}
|
|
else if (cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.OCB_SAVE)
|
|
{
|
|
bADD = true;
|
|
if (cEtcItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.CAT_TERMINAL)
|
|
{
|
|
sInCardDiv = "2";
|
|
}
|
|
else
|
|
{
|
|
sInCardDiv = "1";
|
|
}
|
|
|
|
}
|
|
else if (cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL)
|
|
{
|
|
bADD = true;
|
|
if (cEtcItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.CAT_TERMINAL)
|
|
{
|
|
sInCardDiv = "2";
|
|
}
|
|
else
|
|
{
|
|
if (cEtcItem.OCCUR_ENTRY_10 == "1")
|
|
sInCardDiv = "3";
|
|
else
|
|
sInCardDiv = "1";
|
|
}
|
|
|
|
|
|
//#20171227 인천공항 포스연동 start, phj
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
|
|
{
|
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM &&
|
|
cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL)
|
|
{
|
|
sInCardDiv = "0";
|
|
bADD = false;
|
|
}
|
|
}
|
|
//#20171227 인천공항 포스연동 end, phj
|
|
}
|
|
else if (cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.ONLINE_CPN)
|
|
{
|
|
bADD = true;
|
|
}
|
|
else if (cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA)
|
|
{
|
|
sInCardDiv = "2";
|
|
bADD = true;
|
|
}
|
|
break;
|
|
#endregion
|
|
}
|
|
if (bADD == true)
|
|
{
|
|
|
|
string sAppTypeNm = "";
|
|
|
|
if (cEtcItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.NORMAL)
|
|
{
|
|
sAppTypeNm = "";
|
|
}
|
|
else if (cEtcItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.CAT_TERMINAL)
|
|
{
|
|
sAppTypeNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0854);
|
|
}
|
|
else
|
|
{
|
|
sAppTypeNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0364);
|
|
}
|
|
|
|
|
|
DataRow drNewRow = m_dtSearchList.NewRow();
|
|
drNewRow["NO"] = (m_dtSearchList.Rows.Count + 1).ToString();
|
|
drNewRow["PAY_NAME"] = cEtcItem.OCCUR_ENTRY_20;
|
|
drNewRow["PAY_AMT"] = m_cPosStatus.Global.NumericTOCurrency(cEtcItem.ETC_AMT);
|
|
drNewRow["ORG_APP_NO"] = cEtcItem.OCCUR_ENTRY_02;
|
|
drNewRow["ORG_APP_TM"] = CmUtil.StrToTime(cEtcItem.OCCUR_ENTRY_04);
|
|
drNewRow["PAY_CARD"] = cEtcItem.OCCUR_ENTRY_01;
|
|
drNewRow["APP_DIV_NM"] = sAppTypeNm; // cEtcItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.NORMAL ? "" : MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0364);
|
|
drNewRow["APP_END_NM"] = "";
|
|
drNewRow["PAY_WAY_CD"] = cEtcItem.ETC_WAY_CD;
|
|
drNewRow["PAY_DTL_CD"] = cEtcItem.ETC_DTL_CD_01;
|
|
drNewRow["SEQ_NO"] = nRow.ToString();
|
|
drNewRow["APP_DIV"] = cEtcItem.OCCUR_ENTRY_08;
|
|
drNewRow["APP_END"] = "";
|
|
drNewRow["INCARD_YN"] = sInCardDiv;
|
|
drNewRow["INPUT_TYPE"] = cEtcItem.OCCUR_ENTRY_05;
|
|
drNewRow["TPAY_TRADE_SEQ"] = "";
|
|
drNewRow["PASSWORD_YN"] = "N";
|
|
|
|
m_dtSearchList.Rows.Add(drNewRow);
|
|
}
|
|
}
|
|
|
|
// 그리드 적용
|
|
grdSearchList.CsmGridDataSource = m_dtSearchList;
|
|
grdSearchList.CsmGridSelectRow(0);
|
|
grdSearchItem_GridClickEvent(null, null);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Control Event
|
|
|
|
#region 버튼 입력 처리
|
|
/// <summary>
|
|
/// 버튼 입력 처리
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btnProc_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if (((Cosmos.UI.CsmButton)sender) == btnEnter) // 반품승인
|
|
{
|
|
RefundPayment(ItemConst.PAY_APP_DIV.NORMAL);
|
|
}
|
|
if (((Cosmos.UI.CsmButton)sender) == btnMenual) // 수기승인
|
|
{
|
|
RefundPayment(ItemConst.PAY_APP_DIV.PHON_CANCEL);
|
|
}
|
|
if (((Cosmos.UI.CsmButton)sender) == btnExit) // 닫기
|
|
{
|
|
foreach (DataRow dr in m_dtSearchList.Rows)
|
|
{
|
|
// 반품승인된 결제수단이 있느지 체크
|
|
if (dr["APP_END"].ToString() == "0")
|
|
{
|
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0264);
|
|
return;
|
|
}
|
|
}
|
|
|
|
this.DialogResult = DialogResult.Cancel;
|
|
this.Close();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 조회 그리드 업/다운 클릭 이벤트
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btnSelProc_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
if ((UI.CsmButton)sender == btnUp2)
|
|
{
|
|
grdSearchList.CsmGridScroll("PAGE UP");
|
|
}
|
|
else if ((UI.CsmButton)sender == btnUp)
|
|
{
|
|
grdSearchList.CsmGridScroll("UP");
|
|
}
|
|
else if ((UI.CsmButton)sender == btnDw)
|
|
{
|
|
grdSearchList.CsmGridScroll("DOWN");
|
|
}
|
|
else if ((UI.CsmButton)sender == btnDw2)
|
|
{
|
|
grdSearchList.CsmGridScroll("PAGE DOWN");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
}
|
|
|
|
private void btnExit_Click(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
foreach (DataRow dr in m_dtSearchList.Rows)
|
|
{
|
|
// 반품승인된 결제수단이 있느지 체크
|
|
if (dr["APP_END"].ToString() == "0")
|
|
{
|
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0264);
|
|
return;
|
|
}
|
|
}
|
|
|
|
this.DialogResult = DialogResult.Cancel;
|
|
this.Close();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 그리드 클릭 이벤트
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="rowIndex"></param>
|
|
private void grdSearchItem_GridClickEvent(object sender, string rowIndex)
|
|
{
|
|
try
|
|
{
|
|
btnMenual.Visible = false;
|
|
btnEnter.Visible = false;
|
|
|
|
if (grdSearchList.CsmGridRowsCount == 0) return;
|
|
|
|
int nRow = grdSearchList.CsmGridSelectedRowIndex;
|
|
if (nRow < 0) return;
|
|
|
|
// NO, 결제내역, 승인금액, 원승인번호, 원승인시간, 카드번호, 승인구분, 완료여부, 결제코드, 상세코드, 행번호, 승인구분코드, 완료여부코드, 카드재입력구분, 입력구분, T폐이거래일련번호 string sPayName = grdSearchList.CsmGridGetCell(nRow, 1);
|
|
string sPayDtlCD = grdSearchList.CsmGridGetCell(nRow, 9);
|
|
string sAppDiv = grdSearchList.CsmGridGetCell(nRow, 11);
|
|
string sAppEnd = grdSearchList.CsmGridGetCell(nRow, 12);
|
|
|
|
// 반품 승인
|
|
if (sAppEnd == "")
|
|
{
|
|
btnEnter.Visible = true;
|
|
btnMenual.Visible = true;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 컨트롤 이벤트
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void Control_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region User Method
|
|
|
|
/// <summary>
|
|
/// 반품처리
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool RefundPayment(string sMenualKind)
|
|
{
|
|
//#20171020 log 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"반품승인 종류 : " + sMenualKind);
|
|
|
|
|
|
string sRet = "";
|
|
string sCardInfo = "";
|
|
try
|
|
{
|
|
if (grdSearchList.CsmGridRowsCount == 0) return false;
|
|
|
|
int nRow = grdSearchList.CsmGridSelectedRowIndex;
|
|
if (nRow < 0) return false;
|
|
|
|
int tpayRow = -1;
|
|
int sktRow = -1;
|
|
if (string.IsNullOrWhiteSpace(grdSearchList.CsmGridGetCell(nRow, 15)) == false)
|
|
{
|
|
if (grdSearchList.CsmGridGetCell(nRow, 9) == ItemConst.TR_ITEM_ID.PAY.T_PAY)
|
|
{
|
|
#region // T페이 통합결제인 경우
|
|
|
|
tpayRow = nRow;
|
|
|
|
// SKT 할인 찾기
|
|
for (var i = 0; i < grdSearchList.CsmGridRowsCount; i++)
|
|
{
|
|
if (grdSearchList.CsmGridGetCell(i, 8) != ItemConst.TR_ITEM_ID.MOBILE_COM_POINT) continue;
|
|
if (grdSearchList.CsmGridGetCell(i, 9) != ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT) continue;
|
|
if (grdSearchList.CsmGridGetCell(i, 15) != grdSearchList.CsmGridGetCell(nRow, 15)) continue;
|
|
|
|
sktRow = i;
|
|
break;
|
|
}
|
|
#endregion
|
|
}
|
|
else if (grdSearchList.CsmGridGetCell(nRow, 9) == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT)
|
|
{
|
|
#region // T페이 통합결제된 SKT할인인 경우
|
|
|
|
sktRow = nRow;
|
|
|
|
// T페이 통합결제 찾기
|
|
for (var i = 0; i < grdSearchList.CsmGridRowsCount; i++)
|
|
{
|
|
if (grdSearchList.CsmGridGetCell(i, 8) != ItemConst.TR_ITEM_ID.PAY_ITEM) continue;
|
|
if (grdSearchList.CsmGridGetCell(i, 9) != ItemConst.TR_ITEM_ID.PAY.T_PAY) continue;
|
|
if (grdSearchList.CsmGridGetCell(i, 15) != grdSearchList.CsmGridGetCell(nRow, 15)) continue;
|
|
|
|
tpayRow = i;
|
|
nRow = tpayRow;
|
|
break;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
|
|
// NO, 결제내역, 승인금액, 원승인번호, 원승인시간, 카드번호, 승인구분, 완료여부, 결제코드, 상세코드, 행번호, 승인구분코드, 완료여부코드, 카드재입력구분, 입력구분, T폐이거래일련번호 string sPayName = grdSearchList.CsmGridGetCell(nRow, 1);
|
|
string sPayName = grdSearchList.CsmGridGetCell(nRow, 1);
|
|
string sPayAmt = grdSearchList.CsmGridGetCell(nRow, 2);
|
|
string sCardNo = grdSearchList.CsmGridGetCell(nRow, 5);
|
|
string sPayWayCD = grdSearchList.CsmGridGetCell(nRow, 8);
|
|
string sPayDtlCD = grdSearchList.CsmGridGetCell(nRow, 9);
|
|
string sSeqNo = grdSearchList.CsmGridGetCell(nRow, 10);
|
|
string sAppDiv = grdSearchList.CsmGridGetCell(nRow, 11); // 승인구분(0:정상 그외:수기)
|
|
string sAppEnd = grdSearchList.CsmGridGetCell(nRow, 12);
|
|
string sInCardYn = grdSearchList.CsmGridGetCell(nRow, 13); // 카드재입력구분 => 0:안함, 1:재입력, 2:기존번호 암호화, 3:현금영수증자진발급
|
|
string sInputType = grdSearchList.CsmGridGetCell(nRow, 14); // 신용카드 관련 입력 구분
|
|
string sTPayTradeSeq = grdSearchList.CsmGridGetCell(nRow, 15); // T폐이거래일련번호
|
|
string sPasswordYn = grdSearchList.CsmGridGetCell(nRow, 16); // 비밀번호 입력 여부
|
|
|
|
|
|
//#20171020 log 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"승인취소 할 건 선택 -> 결제이름 : " + sPayName + "," +
|
|
"결제코드 : " + sPayWayCD + "," +
|
|
"상세코드 : " + sPayDtlCD + "," +
|
|
"승인구분 (0:정상 그외:수기) : " + sAppDiv + "," +
|
|
"승인완료여부 : " + sAppEnd + "," +
|
|
"카드재입력구분 : " + sInCardYn + "," +
|
|
"신용카드 관련 입력 구분 : " + sInputType + "," +
|
|
"거래구분 : " + m_cTrnStatus.Head.TradeDiv);
|
|
|
|
if (sAppEnd == "0") return false; // 이미 반품 승인됨
|
|
|
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|
|
|
string sPassWord = "";
|
|
// 카드번호 입력 받기
|
|
if (sMenualKind == ItemConst.PAY_APP_DIV.NORMAL && sAppDiv == ItemConst.PAY_APP_DIV.NORMAL && sInCardYn == "1")
|
|
{
|
|
// Rhee, 2017/10/12 중국 해피포인트 결제 반품시 카드 번호 없이 반품 승인 -- START
|
|
// 기존
|
|
//// 카드번호 입력 받기
|
|
//sCardInfo = m_cPayCancel.SetPayment(new string[] { sPayWayCD, sCardNo, sPayAmt, sPayName, sInputType, sPayDtlCD, sPasswordYn });
|
|
//if (sCardInfo == "") return false;
|
|
|
|
//grayber@20180208 코레일 마일리지 입력 start - 반품 분기 코드 추가
|
|
// 기존
|
|
//if ((sPayWayCD == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCD == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT_USE_CHINA) && (sCardNo != ""))
|
|
|
|
// 변경
|
|
if (sPayWayCD == ItemConst.TR_ITEM_ID.POINT_ITEM &&
|
|
(
|
|
(sPayDtlCD == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT_USE_CHINA) && (sCardNo != "")
|
|
|| (sPayDtlCD == ItemConst.TR_ITEM_ID.POINT_USE.KORAIL_MILEAGE) // 코레일
|
|
)
|
|
)
|
|
//grayber@20180208 코레일 마일리지 입력 end
|
|
{
|
|
// 카드 번호 입력 없이 반품 승인
|
|
sCardInfo = " ";
|
|
sCardInfo += "K" + sCardNo;
|
|
}
|
|
else
|
|
{
|
|
// 카드번호 입력 받기
|
|
sCardInfo = m_cPayCancel.SetPayment(new string[] { sPayWayCD, sCardNo, sPayAmt, sPayName, sInputType, sPayDtlCD, sPasswordYn });
|
|
if (sCardInfo == "") return false;
|
|
}
|
|
// Rhee, 2017/10/12 중국 해피포인트 결제 반품시 카드 번호 없이 반품 승인 -- END
|
|
|
|
sPassWord = sCardInfo.Substring(0, 20).Trim();
|
|
sCardInfo = sCardInfo.Substring(20);
|
|
}
|
|
|
|
// 카드번호(암호화된 카드 데이터) 설정
|
|
if (sPayWayCD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM)
|
|
{
|
|
#region
|
|
//ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|
Column.TR_ETC.DATA cEtcItem = (Column.TR_ETC.DATA)alEtcItem[CmUtil.IntParse(sSeqNo)];
|
|
|
|
if (sPayDtlCD == ItemConst.TR_ITEM_ID.ETC_INFO.ONLINE_CPN)
|
|
{
|
|
// 온라인쿠폰 발행
|
|
}
|
|
// 승인요청구분
|
|
else if ((sAppDiv != ItemConst.PAY_APP_DIV.NORMAL && sAppDiv != ItemConst.PAY_APP_DIV.CAT_TERMINAL) || sMenualKind == ItemConst.PAY_APP_DIV.COMPULSION || sMenualKind == ItemConst.PAY_APP_DIV.PHON_CANCEL)
|
|
{
|
|
// 전화취소 => 전화취소승인은 카드번호 입력 없이 반품
|
|
if (sMenualKind == ItemConst.PAY_APP_DIV.PHON_CANCEL)
|
|
{
|
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0247) == false) return false;
|
|
cEtcItem.OCCUR_ENTRY_08 = sMenualKind;
|
|
}
|
|
else
|
|
{
|
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0240));
|
|
}
|
|
}
|
|
else if (sInCardYn == "2")
|
|
{
|
|
if (sAppDiv != ItemConst.PAY_APP_DIV.CAT_TERMINAL)
|
|
{
|
|
// 카드 입력 없이 암호화 후 반품 승인
|
|
if (sPayDtlCD == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) // 해피 적립
|
|
{
|
|
cEtcItem.CanFiller1 = EncryptedCardNo(cEtcItem.OCCUR_ENTRY_14);
|
|
}
|
|
else
|
|
{
|
|
cEtcItem.CanFiller1 = EncryptedCardNo(cEtcItem.OCCUR_ENTRY_01);
|
|
}
|
|
}
|
|
}
|
|
else if (sInCardYn == "3")
|
|
{
|
|
if (sAppDiv != ItemConst.PAY_APP_DIV.CAT_TERMINAL)
|
|
{
|
|
// 현금영수증 자진발급 암호화 후 반품 승인
|
|
cEtcItem.CanFiller1 = EncryptedCardNo("0100001234");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 카드 번호 입력 후 반품 승인
|
|
cEtcItem.OCCUR_ENTRY_05 = sCardInfo.Substring(0, 1);
|
|
cEtcItem.CanFiller1 = sCardInfo.Substring(1);
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
#region
|
|
//ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[CmUtil.IntParse(sSeqNo)];
|
|
|
|
// 승인요청구분
|
|
if ((sAppDiv != ItemConst.PAY_APP_DIV.NORMAL &&
|
|
sAppDiv != ItemConst.PAY_APP_DIV.CAT_TERMINAL &&
|
|
sAppDiv != ItemConst.PAY_APP_DIV.X_CHARGE) ||
|
|
sMenualKind == ItemConst.PAY_APP_DIV.COMPULSION ||
|
|
sMenualKind == ItemConst.PAY_APP_DIV.PHON_CANCEL)
|
|
{
|
|
// 전화취소 => 전화취소승인은 카드번호 입력 없이 반품
|
|
if (sMenualKind == ItemConst.PAY_APP_DIV.PHON_CANCEL)
|
|
{
|
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0247) == false) return false;
|
|
cPayItem.OCCUR_ENTRY_08 = sMenualKind;
|
|
}
|
|
else
|
|
{
|
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0240));
|
|
}
|
|
}
|
|
else if (sInCardYn == "2")
|
|
{
|
|
if (sAppDiv != ItemConst.PAY_APP_DIV.CAT_TERMINAL && sAppDiv != ItemConst.PAY_APP_DIV.X_CHARGE)
|
|
{
|
|
// 카드 입력 없이 암호화 후 반품 승인
|
|
if (sPayWayCD == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCD == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT) // 해피포인트 사용
|
|
{
|
|
cPayItem.CanFiller1 = EncryptedCardNo(cPayItem.OCCUR_ENTRY_14);
|
|
}
|
|
else
|
|
{
|
|
cPayItem.CanFiller1 = EncryptedCardNo(cPayItem.OCCUR_ENTRY_01);
|
|
}
|
|
}
|
|
}
|
|
else if (sPayWayCD == ItemConst.TR_ITEM_ID.CREDITCARD_ITEM) // 신용카드
|
|
{
|
|
//if (m_cDevStatus.ICReader.UseYn == true) // 여전법 인증여부(0:MSR, 1:IC)
|
|
//{
|
|
cPayItem.CanFiller1 = sCardInfo;
|
|
//}
|
|
//else
|
|
//{
|
|
|
|
|
|
//if (sInputType == PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF)
|
|
//{
|
|
// cPayItem.CanFiller1 = sCardInfo;
|
|
//}
|
|
//else
|
|
//{
|
|
// //MSR
|
|
// cPayItem.OCCUR_ENTRY_05 = CmUtil.MidH(sCardInfo, 2, 1);
|
|
// //cPayItem.CanFiller1 = CmUtil.MidH(sCardInfo, 1, CmUtil.LenH(sCardInfo));
|
|
// cPayItem.CanFiller1 = sCardInfo;
|
|
//}
|
|
//}
|
|
}
|
|
else if (sPayWayCD == ItemConst.TR_ITEM_ID.MOBILECON_ITEM)
|
|
{
|
|
// 모바일콘
|
|
}
|
|
else if (sPayWayCD == ItemConst.TR_ITEM_ID.PAY_ITEM && sPayDtlCD == ItemConst.TR_ITEM_ID.PAY.T_PAY)
|
|
{
|
|
// T페이
|
|
cPayItem.CanFiller2 = sPassWord; // 비밀번호
|
|
cPayItem.OCCUR_ENTRY_05 = sCardInfo.Substring(0, 1); // 입력구분
|
|
cPayItem.CanFiller1 = sCardInfo.Substring(1); // 카드번호
|
|
}
|
|
else if (sPayWayCD == ItemConst.TR_ITEM_ID.POINT_ITEM && sPayDtlCD == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT)
|
|
{
|
|
cPayItem.CanFiller2 = sPassWord; // 비밀번호
|
|
cPayItem.OCCUR_ENTRY_05 = sCardInfo.Substring(0, 1); // 입력구분
|
|
cPayItem.CanFiller1 = sCardInfo.Substring(1); // 카드번호
|
|
}
|
|
else if (sPayWayCD == ItemConst.TR_ITEM_ID.COUPON_ITEM && sPayDtlCD == ItemConst.TR_ITEM_ID.COUPON.ONLINE)
|
|
{
|
|
// 온라인 쿠폰
|
|
}
|
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|
else if (sPayWayCD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT && sPayWayCD == ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD)
|
|
{
|
|
// 웰컴카드
|
|
//cPayItem.CanFiller1 = OCCUR_ENTRY_19;
|
|
}
|
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|
|
|
//#20171018, 해피기프트(코나머니) 결제코드(신용->선불) 변경 Start, srlee
|
|
else if (sPayWayCD == ItemConst.TR_ITEM_ID.PPCARD_ITEM && sPayDtlCD == ItemConst.TR_ITEM_ID.PPCARD.HPGIFT_CARD)
|
|
{
|
|
cPayItem.CanFiller1 = sCardInfo;
|
|
}
|
|
//#20171018, 해피기프트(코나머니) 결제코드(신용->선불) 변경 End, srlee
|
|
else
|
|
{
|
|
// 카드 번호 입력 후 반품 승인
|
|
cPayItem.OCCUR_ENTRY_05 = CmUtil.MidH(sCardInfo, 0, 1);
|
|
cPayItem.CanFiller1 = CmUtil.MidH(sCardInfo, 1, CmUtil.LenH(sCardInfo));
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
|
|
//#20171020 log 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"취소 승인 전 거래구분 : " + m_cTrnStatus.Head.TradeDiv);
|
|
|
|
// 반품 승인 요청
|
|
sRet = m_cPayCancel.RefundPayment(new string[] { sPayWayCD, sPayDtlCD, sSeqNo });
|
|
if (sRet != UserCom.RST_OK)
|
|
{
|
|
btnMenual.Visible = true;
|
|
return false;
|
|
}
|
|
|
|
|
|
//#20171020 log 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"취소 승인 후 거래구분 : " + m_cTrnStatus.Head.TradeDiv);
|
|
|
|
DataRow dr = m_dtSearchList.Rows[nRow];
|
|
dr["APP_END_NM"] = sMenualKind == "0" ? MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0394)
|
|
: MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0395);
|
|
dr["APP_END"] = sMenualKind;
|
|
|
|
// T페이 통합결제 완료처리
|
|
if (tpayRow >= 0 && sktRow >= 0)
|
|
{
|
|
int chkRow = -1;
|
|
if (nRow == tpayRow) chkRow = sktRow;
|
|
if (nRow == sktRow) chkRow = tpayRow;
|
|
if (chkRow >= 0)
|
|
{
|
|
DataRow drTmp = m_dtSearchList.Rows[chkRow];
|
|
drTmp["APP_END_NM"] = dr["APP_END_NM"].ToString();
|
|
drTmp["APP_END"] = dr["APP_END"].ToString();
|
|
}
|
|
}
|
|
|
|
// 해피콘 취소시 연결된 쿠폰 전체 취소
|
|
if (sPayWayCD == ItemConst.TR_ITEM_ID.MOBILECON_ITEM && sPayDtlCD == ItemConst.TR_ITEM_ID.MOBILECON.HPCON)
|
|
{
|
|
#region
|
|
for (int iLoop = 0; iLoop < alPayItem.Count; iLoop++)
|
|
{
|
|
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[iLoop];
|
|
if (cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|
|
|
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILECON_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILECON.HPCON)
|
|
{
|
|
if (cPayItem.OCCUR_ENTRY_06.Trim() != "")
|
|
{
|
|
foreach (DataRow dr2 in m_dtSearchList.Rows)
|
|
{
|
|
if (CmUtil.GetDataRowStr(dr2, "PAY_CARD").Trim() == cPayItem.OCCUR_ENTRY_01 && CmUtil.GetDataRowStr(dr2, "ORG_APP_NO").Trim() == cPayItem.OCCUR_ENTRY_06)
|
|
{
|
|
dr2["APP_END_NM"] = sMenualKind == "0" ? MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0394)
|
|
: MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0395);
|
|
dr2["APP_END"] = sMenualKind;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
btnMenual.Visible = false;
|
|
btnEnter.Visible = false;
|
|
|
|
// 그리드 적용
|
|
grdSearchList.CsmGridDataSource = m_dtSearchList;
|
|
|
|
if (RefundComplete() == false)
|
|
{
|
|
//nRow++;
|
|
//if (nRow < grdSearchList.CsmGridRowsCount) grdSearchList.CsmGridSelectRow(nRow);
|
|
|
|
|
|
//#20171020 log 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"반품완료 False! (" + m_cTrnStatus.Head.TradeDiv + ")");
|
|
}
|
|
|
|
//#20171020 log 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"반품완료 true! (" + m_cTrnStatus.Head.TradeDiv + ")");
|
|
|
|
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
return false;
|
|
}
|
|
finally
|
|
{
|
|
//여전법 대응!
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
CmUtil.ZeroFillClear(ref sCardInfo);
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 반품 완료 처리
|
|
/// </summary>
|
|
private bool RefundComplete()
|
|
{
|
|
string sRet = "";
|
|
|
|
try
|
|
{
|
|
foreach (DataRow dr in m_dtSearchList.Rows)
|
|
{
|
|
// 반품 승인 안된 결제수단이 있느지 체크
|
|
if (dr["APP_END"].ToString() == "") return false;
|
|
}
|
|
|
|
lblComplete.Visible = true;
|
|
this.Update();
|
|
|
|
#region 결제수단 중 승인 비대상 반품 처리
|
|
|
|
//#20171020 log 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"반품 완료 처리");
|
|
|
|
// 결제수단 중 승인 비대상 반품 처리
|
|
|
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|
for (int nRow = 0; nRow < alPayItem.Count; nRow++)
|
|
{
|
|
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[nRow];
|
|
|
|
if (cPayItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|
|
|
bool bExist = false;
|
|
foreach (DataRow dr in m_dtSearchList.Rows)
|
|
{
|
|
if (dr["PAY_WAY_CD"].ToString() == cPayItem.PAY_WAY_CD && dr["PAY_DTL_CD"].ToString() == cPayItem.PAY_DTL_CD_01)
|
|
{
|
|
bExist = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (bExist == false)
|
|
{
|
|
//#20180410 인천공항 반품 시 원승인번호,원거래일자 저장 start,phj
|
|
//기존
|
|
sRet = m_cPayCancel.RefundPayment(new string[] { cPayItem.PAY_WAY_CD, cPayItem.PAY_DTL_CD_01, nRow.ToString() });
|
|
//sRet = ExecRefundPayment(cPayItem.PAY_WAY_CD, cPayItem.PAY_DTL_CD_01, nRow.ToString());
|
|
|
|
|
|
//변경
|
|
//if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1" &&
|
|
// cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.CREDITCARD_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD)
|
|
//{
|
|
// cPayItem.OCCUR_ENTRY_06 = cPayItem.OCCUR_ENTRY_02;
|
|
// cPayItem.OCCUR_ENTRY_07 = cPayItem.OCCUR_ENTRY_03;
|
|
//
|
|
// sRet = UserCom.RST_OK;
|
|
//}
|
|
//else
|
|
//{
|
|
// sRet = m_cPayCancel.RefundPayment(new string[] { cPayItem.PAY_WAY_CD, cPayItem.PAY_DTL_CD_01, nRow.ToString() });
|
|
//}
|
|
//#20180410 인천공항 반품 시 원승인번호,원거래일자 저장 end,phj
|
|
|
|
|
|
//#20171020 log 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"1 결제수단 중 반품완료처리(Trade_div) : " + "(" + m_cTrnStatus.Head.TradeDiv + ")");
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
#region 기타수단 중 승인 비대상 반품 처리
|
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|
for (int nRow = 0; nRow < alEtcItem.Count; nRow++)
|
|
{
|
|
Column.TR_ETC.DATA cEtcItem = (Column.TR_ETC.DATA)alEtcItem[nRow];
|
|
|
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|
|
|
bool bExist = false;
|
|
foreach (DataRow dr in m_dtSearchList.Rows)
|
|
{
|
|
if (dr["PAY_WAY_CD"].ToString() == cEtcItem.ETC_WAY_CD && dr["PAY_DTL_CD"].ToString() == cEtcItem.ETC_DTL_CD_01)
|
|
{
|
|
bExist = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (bExist == false)
|
|
{
|
|
|
|
//#20180410 인천공항 반품 시 원승인번호,원거래일자 저장 start,phj
|
|
//기존
|
|
|
|
sRet = m_cPayCancel.RefundPayment(new string[] { cEtcItem.ETC_WAY_CD, cEtcItem.ETC_DTL_CD_01, nRow.ToString() });
|
|
//sRet = ExecRefundPayment(cEtcItem.ETC_WAY_CD, cEtcItem.ETC_DTL_CD_01, nRow.ToString());
|
|
|
|
|
|
//변경
|
|
//if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1" &&
|
|
// cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL)
|
|
//{
|
|
// cEtcItem.OCCUR_ENTRY_06 = cEtcItem.OCCUR_ENTRY_02;
|
|
// cEtcItem.OCCUR_ENTRY_07 = cEtcItem.OCCUR_ENTRY_03;
|
|
//
|
|
// sRet = UserCom.RST_OK;
|
|
//}
|
|
//else
|
|
//{
|
|
// sRet = m_cPayCancel.RefundPayment(new string[] { cEtcItem.ETC_WAY_CD, cEtcItem.ETC_DTL_CD_01, nRow.ToString() });
|
|
//}
|
|
//#20180410 인천공항 반품 시 원승인번호,원거래일자 저장 end,phj
|
|
|
|
|
|
|
|
//#20171020 log 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"2 기타수단 중 반품완료처리(Trade_div) : " + "(" + m_cTrnStatus.Head.TradeDiv + ")");
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
//// 선불카드 판매 - 중국
|
|
//// 반품시 선불카드 취소 요청
|
|
//if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.PREPAID && PosMstManager.GetPosOption(POS_OPTION.OPT046) == "1")
|
|
//{
|
|
// IPaymentUs m_cSalePreCard = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALEPRECARD);
|
|
// ArrayList alTrPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); // 상품 아이템
|
|
// foreach (Column.TR_PLU.DATA cPluItem in alTrPluItem)
|
|
// {
|
|
// if (cPluItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue;
|
|
|
|
// if (cPluItem.CANCEL_DIV == "1" || cPluItem.CANCEL_DIV_MAIN == "1") continue;
|
|
|
|
// if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.PREPAID)
|
|
// {
|
|
// // 취소 요청
|
|
// sRet = m_cSalePreCard.CancelPayment(new string[] { "1", cPluItem.SALE_GIFT_NO, "0" });
|
|
|
|
// if (sRet != UserCom.RST_OK)
|
|
// {
|
|
// return false;
|
|
// }
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
|
|
this.DialogResult = DialogResult.OK;
|
|
this.Close();
|
|
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
///// <summary>
|
|
///// 결제 수단별 반품 처리
|
|
///// </summary>
|
|
///// <param name="sWayCd"></param>
|
|
///// <param name="sDtlCd"></param>
|
|
///// <param name="sSeqNo"></param>
|
|
//private string ExecRefundPayment(string sWayCd, string sDtlCd, string sSeqNo)
|
|
//{
|
|
// string sRet = UserCom.RST_ERR;
|
|
|
|
// try
|
|
// {
|
|
// // 결제 수단 코드
|
|
// switch (sWayCd)
|
|
// {
|
|
// case ItemConst.TR_ITEM_ID.CREDITCARD_ITEM: // 신용카드
|
|
// {
|
|
// IPaymentUs m_cPayCard = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.CREDITCARD);
|
|
// sRet = m_cPayCard.RefundPayment(new string[] { sSeqNo});
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.MOBILE_COM_POINT: // 제휴 통신사 할인
|
|
// {
|
|
// if (sDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT || sDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF || sDtlCd == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT)
|
|
// {
|
|
// IPaymentUs cMobileComPoint = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTMOBILECOM);
|
|
// sRet = cMobileComPoint.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// else
|
|
// {
|
|
// IPaymentUs cMemberPointUse = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTMEMBERUSE);
|
|
// sRet = cMemberPointUse.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.CASH_ITEM: // 현금
|
|
// {
|
|
// IPaymentUs m_cPayCash = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.CASH);
|
|
// sRet = m_cPayCash.RefundPayment(new string[] { sSeqNo });
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.COUPON_ITEM:
|
|
// {
|
|
// if (sDtlCd == ItemConst.TR_ITEM_ID.COUPON.INCARD)
|
|
// {
|
|
// IPaymentUs cMobileComPoint = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYCOUPON);
|
|
// sRet = cMobileComPoint.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// else
|
|
// {
|
|
// IPaymentUs m_cCouponDC = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.COUPONDC);
|
|
// sRet = m_cCouponDC.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.MOBILECON_ITEM:
|
|
// {
|
|
// IPaymentUs m_cMobileCoupon = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.MOBILECOUPON);
|
|
// sRet = m_cMobileCoupon.RefundPayment(new string[] { sSeqNo });
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.EMP_DC_ITEM:
|
|
// {
|
|
// if (sDtlCd == ItemConst.TR_ITEM_ID.EMP_DC.SEVERANCE)
|
|
// {
|
|
// IPaymentUs m_cSeveranceDC = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.SEVERANCEDC);
|
|
// sRet = m_cSeveranceDC.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// else if (sDtlCd == ItemConst.TR_ITEM_ID.EMP_DC.SPC)
|
|
// {
|
|
// IPaymentUs m_cSPCEmployeeDC = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.SPCEMPLOYEEDC);
|
|
// sRet = m_cSPCEmployeeDC.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// else if (sDtlCd == ItemConst.TR_ITEM_ID.EMP_DC.SAMSUNGCARD)
|
|
// {
|
|
// sRet = UserCom.RST_OK;
|
|
// }
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.POINT_ITEM:
|
|
// {
|
|
// if (sDtlCd == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT)
|
|
// {
|
|
// IPaymentUs cHappyPointUse = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINTUSE);
|
|
// sRet = cHappyPointUse.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.USER_DC_ITEM:
|
|
// {
|
|
// if (sDtlCd == ItemConst.TR_ITEM_ID.USER_DC.IN_EMP_DC)
|
|
// {
|
|
// // 입점건물직원할인 취소
|
|
// IPaymentUs ciNStorDC = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.iNStorDC);
|
|
// sRet = ciNStorDC.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.PAYETC_ITEM:
|
|
// {
|
|
// if (sDtlCd == ItemConst.TR_ITEM_ID.PAYETC.MEAL_TIKET)
|
|
// {
|
|
// // 식권취소
|
|
// IPaymentUs cMealTicket = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.MEALTICKET);
|
|
// sRet = cMealTicket.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// else if (sDtlCd == ItemConst.TR_ITEM_ID.PAYETC.BALANCE_VOUCHER)
|
|
// {
|
|
// // 잔액교환권 취소
|
|
// IPaymentUs cExchangeTicket = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.EXCHANGETICKET);
|
|
// sRet = cExchangeTicket.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.GIFT_ITEM:
|
|
// {
|
|
// // 상품권 취소
|
|
// IPaymentUs cGift = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.GIFT);
|
|
// sRet = cGift.RefundPayment(new string[] { sSeqNo });
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.CREDIT_ITEM:
|
|
// {
|
|
// // 외상 취소
|
|
// IPaymentUs cSaleOnCustomer = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.SALEONCUSTOMER);
|
|
// sRet = cSaleOnCustomer.RefundPayment(new string[] { sSeqNo });
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.FOREIGNEX_ITEM:
|
|
// {
|
|
// // 외화 취소
|
|
// IPaymentUs cForeign = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.FOREIGN);
|
|
// sRet = cForeign.RefundPayment(new string[] { sSeqNo });
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.PPCARD_ITEM:
|
|
// {
|
|
// if (sDtlCd == ItemConst.TR_ITEM_ID.PPCARD.PP_CARD)
|
|
// {
|
|
// // 선불카드 취소
|
|
// IPaymentUs cPrepaidCard = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.PREPAIDCARD);
|
|
// sRet = cPrepaidCard.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// else if (sDtlCd == ItemConst.TR_ITEM_ID.PPCARD.HP_GIFT)
|
|
// {
|
|
// // 해피 기프트 사용 취소
|
|
// IPaymentUs cHappyGiftUse = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.HAPPYGIFTUSE);
|
|
// sRet = cHappyGiftUse.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// break;
|
|
// }
|
|
// case ItemConst.TR_ITEM_ID.ETC_INFO_ITEM:
|
|
// {
|
|
// if (sDtlCd == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|
// {
|
|
// // 해피포인트 적립 취소
|
|
// IPaymentUs cHappyPoint = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT);
|
|
// sRet = cHappyPoint.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// else if (sDtlCd == ItemConst.TR_ITEM_ID.ETC_INFO.CASHBILL )
|
|
// {
|
|
// // 현금영수증 취소
|
|
// IPaymentUs cCashBill = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.CASHBILL);
|
|
// sRet = cCashBill.RefundPayment(new string[] { sSeqNo });
|
|
// }
|
|
// break;
|
|
// }
|
|
// default:
|
|
// sRet = UserCom.RST_OK;
|
|
// break;
|
|
// }
|
|
// }
|
|
// catch (Exception ex)
|
|
// {
|
|
// WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
// System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
// }
|
|
// return sRet;
|
|
//}
|
|
|
|
|
|
#endregion
|
|
|
|
#region DeviceEvent 관련
|
|
/// <summary>
|
|
/// DeviceEvent 관련
|
|
/// </summary>
|
|
/// <param name="sDevice"></param>
|
|
/// <param name="sData1"></param>
|
|
/// <param name="sData2"></param>
|
|
/// <param name="sData3"></param>
|
|
public void OnDeviceEvent(string sDevice, string sData1, string sData2, string sData3)
|
|
{
|
|
try
|
|
{
|
|
switch (sDevice)
|
|
{
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 카드 번호 암호화
|
|
/// </summary>
|
|
/// <param name="sInData"></param>
|
|
/// <returns></returns>
|
|
private string EncryptedCardNo(string sInData)
|
|
{
|
|
string tmpEnc = "";
|
|
|
|
try
|
|
{
|
|
tmpEnc = m_cICReader.GetEncryptedCardNo(sInData).Trim();
|
|
if (CmUtil.MidH(tmpEnc, 0, 2) == "00")
|
|
{
|
|
tmpEnc = CmUtil.MidH(tmpEnc, 2, 512).Trim();
|
|
}
|
|
else
|
|
{
|
|
// 암호화 처리 실패!
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail =>" + sInData);
|
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0280);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
return tmpEnc;
|
|
}
|
|
#endregion DeviceEvent 관련
|
|
|
|
}
|
|
}
|