spc-kiosk-pb/Window/WinPayment/frmPntHappyPoint.cs

3222 lines
155 KiB
C#
Raw Permalink Normal View History

2019-06-16 05:12:09 +00:00
using System;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
using System.Collections;
using System.Data;
using Cosmos.Win;
using Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;
/*-----------------------------------------------------------------------------------------------*/
// 설 명 : 해피포인트 조회,적립
// 작 성 자 :
// 변경 이력 :
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Win
{
public partial class frmPntHappyPoint : frm_PayMainBack
{
#region
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 PosOLEDevice.DelegateIcReader delegateReader; // IC리더 콜백
//#20170918 IC 콜백 함수 변경 start
//포인트창에서 해피제휴 신용카드 리딩시 IC 우선 거래로 인해 '카드를 읽혀 주세요' 팝업 나오는 현상 수정.
/*
private PosOLEDevice.CallbackIc delegateReaderCardInfo; // IC리더 콜백(CardInfo)
private bool m_bCardInPut; //카드 입력 중복 방지
private string m_sIcChip; //IC CHIP DATA(EMV)
private string m_InputType = ""; //PosConst.POS_VAN_MASTER.VAN_KEYIN; //입력구분
private string m_sCardNo; //입력 카드 번호
private string m_sFallDiv; //FallBack구분
*/
//#20170918 IC 콜백 함수 변경 end
private IICReaderUs m_cDeviceICReader = null;
private ISignPadUs m_cDeviceSignPad = null;
private IDataProcessUs m_cDataService = null; // 거래데이터 합계금액 계산 및 관리
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
private IPaymentExpUs m_cHappyPoint = null;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start
private ISvr2Tran m_cSvr2Tran = null; // 서버시간 동기화
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end
private bool bNotDoubleClik = false; // 더블 클릭 방지용
//#20180413 웰컴카드 신규기능 추가 start,phj
/// <summary>
/// 0: 일반, 1:웰컴카드에서오픈
/// </summary>
private string m_SetClientSearch;
public string SetClientSearch { set { this.m_SetClientSearch = value; } }
//#20180413 웰컴카드 신규기능 추가 end,phj
private string m_sPosMenuKey;
/// <summary>
/// POS 기능키
/// </summary>
public string SetPosMenuKey { set { this.m_sPosMenuKey = value; } }
private string m_sHappyPointSave;
/// <summary>
/// 해피포인트 카드등록 구분(0:카드등록, 1:적립등록)
/// </summary>
public string SetHappyPointSave { set { this.m_sHappyPointSave = value; } }
/// <summary>
/// 입력구분
/// </summary>
private string m_sInPutType = "";
/// <summary>
/// 입력데이터
/// </summary>
private string m_sInPutData = "";
/// <summary>
/// 마스킹데이터
/// </summary>
private string m_sInMaskData = "";
/// <summary>
/// 카드데이터(암호화)
/// </summary>
private string m_sInEncData = "";
/// <summary>
/// 서비스코드
/// </summary>
private string m_sServiceCode = "";
/// <summary>
/// 승인카드번호
/// </summary>
private string m_sAppCardNo = "";
/// <summary>
/// 대상 금액
/// </summary>
private double m_nDestAmt = 0;
/// <summary>
/// 조회 성공 여부
/// </summary>
private bool m_bSearchSuccess = false;
/// <summary>
/// 쿠폰리스트 데이터
/// </summary>
private DataTable m_dtGridList;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//고객 구매이력 정보 표시 시점에 상단 MOT 표시
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180531
//포인트창 닫히는 시점에 안보이도록 수정 - 불필요해서 소스 주석
//private DateTime BuyHistTime = new DateTime();
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180531
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
#endregion
#region & &
public frmPntHappyPoint()
{
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;
m_cDeviceICReader = (IICReaderUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_ICREADER);
m_cDeviceSignPad = (ISignPadUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_SIGNPAD);
m_cDataService = (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_cHappyPoint = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT);
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start
m_cSvr2Tran = (ISvr2Tran)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SVR2TRAN);
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end
delegatePos = new PosOLEDevice.DelegateOlePos(OnDeviceEvent);
delegateReader = new PosOLEDevice.DelegateIcReader(OnIcReaderCallBack); // IC리더 콜백
//#20170918 IC 콜백 함수 변경 start
//포인트창에서 해피제휴 신용카드 리딩시 IC 우선 거래로 인해 '카드를 읽혀 주세요' 팝업 나오는 현상 수정.
//delegateReaderCardInfo = new PosOLEDevice.CallbackIc(OnIcReaderCallBackCardInfo); // IC리더 콜백(CardInfo)
//#20170918 IC 콜백 함수 변경 end
}
private void frmPointHappyPoint_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();
if (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT && m_sHappyPointSave == "0") // 해피포인트 카드등록 구분(0:카드등록, 1:적립등록)
{
// 고객화면 캠페인 컨텐츠 표시
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
cCampaingMain.CustDisplayCampaign(ItemConst.CPI_CUST_PAY_TYPE.HP_SAVE);
}
if (txtCardNo.ReadOnly == false)
{
tmrIcCard.Tag = "";
tmrIcCard.Enabled = true; // IC리더 콜백 설정
}
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//고객 구매이력 정보 표시 시점에 상단 MOT 표시
// 타이머 호출
//적용시 true
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180531
//포인트창 닫히는 시점에 안보이도록 수정 - 불필요해서 소스 주석
//tmrDateTime.Enabled = true;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180531
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
//*****************************************************************************
// (2017.11.01) 해피포인트 제휴할인 선리딩 처리
//-----------------------------------------------------------------------------
// - 만약 해피포인트 카드 번호가 전역변수에 저장되어 있을 경우
// <- 전역변수 : m_cPosStatus.Sale.strHappyPointCardNo
// 오버로딩된 해피포인트 조회 함수(SearchTxtInPut)를 호출한다.
// - 오버로딩된 해피포인트 조회 함수에서는 해피포인트 카드번호를 표시/조회한다.
//-----------------------------------------------------------------------------
// - 오버로딩 함수 : SearchTxtInPut(Column.TR_ETC.DATA _cEtcItem, string _strHappyPointCardNo, string _strDiv)
//*****************************************************************************
#region
//#20180619 웰컴카드 개선사항 start
//기존
//if (m_cPosStatus.Sale.strHappyPointCardNo != "")
//변경
if (m_cPosStatus.Sale.strHappyPointCardNo != "" && m_SetClientSearch == "0")
//#20180619 웰컴카드 개선사항 end
{
//============================================================================
// 오버로딩된 해피포인트 조회 함수 호출
//----------------------------------------------------------------------------
// - 파라미터 : Column.TR_ETC.DATA, 해피포인트카드번호, 조회까지 실행할지 여부
//============================================================================
#region
//SearchTxtInPut(null, m_cPosStatus.Sale.strHappyPointCardNo, ""); // 카드번호만 표시
//SearchTxtInPut(null, m_cPosStatus.Sale.strHappyPointCardNo, "조회"); // 조회까지 수행
SearchTxtInPut(null, m_cPosStatus.Sale.strHappyPointCardNo, btnEnter); // 등록까지 수행
#endregion
}
#endregion
}
private void frmPointHappyPoint_Activated(object sender, EventArgs e)
{
PosOLEDevice.SetEventHandle(delegatePos);
}
private void frmPointHappyPoint_Deactivate(object sender, EventArgs e)
{
PosOLEDevice.SetEventHandle(null);
}
private void frmPointHappyPoint_FormClosing(object sender, FormClosingEventArgs e)
{
tmrIcCard.Tag = "CLOSE";
//// 마우스(이중클릭방지)
//Point nPoint = System.Windows.Forms.Cursor.Position;
//Cursor.Clip = new System.Drawing.Rectangle(1024, 0, 1, 1);
//this.Update();
UnRegIcCallback(); // IC리더 콜백 해지
InDataToZeroFill();
//#20180413 웰컴카드 신규기능 추가 start,phj
//기존
//if (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT_SCH) FormManager.SetFormAllControlMove(this, 216, 123);
//변경
if (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT_SCH && m_SetClientSearch != "2") FormManager.SetFormAllControlMove(this, 216, 123);
//#20180413 웰컴카드 신규기능 추가 end,phj
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", lblTitle.Text);
//// 마우스(이중클릭방지)
//Cursor.Clip = Screen.PrimaryScreen.Bounds;
//Cursor.Position = nPoint;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//고객 구매이력 정보 표시 시점에 상단 MOT 표시
// 타이머 호출
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180531
//포인트창 닫히는 시점에 안보이도록 수정 - 불필요해서 소스 주석
//tmrDateTime.Enabled = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180531
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180531
//포인트창 닫히는 시점에 안보이도록 수정
//고객 구매이력 화면 미표시
pnlBuyHistMot.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180531
}
/// <summary>
/// 폼 컨트롤 초기화
/// </summary>
private void InitControl()
{
try
{
// 이미지 로딩 처리
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);
btnEnter.BackColor = CmUtil.GetColorToString(m_cPosStatus.ScnMst.ThemeColor);
btnUp.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.NAVIBTN_14X9_UP1_BASIC);
btnUp.ImageAlign = ContentAlignment.MiddleCenter;
btnUp.BorderStyle = BorderStyle.None;
btnDown.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.NAVIBTN_14X9_DOWN1_BASIC);
btnDown.ImageAlign = ContentAlignment.MiddleCenter;
btnDown.BorderStyle = BorderStyle.None;
if (btnUp.Image != null) btnUp.Text = "";
if (btnDown.Image != null) btnDown.Text = "";
btnExit.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_CLOSE);
if (btnExit.Image != null) btnExit.Text = "";
btnCatApp.Visible = false;
//#20180524 구매이력조회 상단 패널 사이즈 조정 start,phj
//적용 시 주석처리하고 아래 것으로 변경
//pnlBuyHistMot.BackColor = Color.FromArgb(70, 86, 98);
//pnlBuyHistMot.ForeColor = Color.White;
//lblBuyHistMot.BackColor = Color.FromArgb(70, 86, 98);
//lblBuyHistMot.ForeColor = Color.White;
//적용 시 주석해제
pnlBuyHistMot.BackColor = Color.FromArgb(255, 255, 128);
pnlBuyHistMot.ForeColor = Color.Black;
lblBuyHistMot.BackColor = Color.FromArgb(255, 255, 128);
lblBuyHistMot.ForeColor = Color.Black;
//#20180524 구매이력조회 상단 패널 사이즈 조정 end,phj
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start
FormManager.SetControlSize(pnlBuyHist, padInPut.Location.X, padInPut.Location.Y, padInPut.Width, padInPut.Height);
pnlBuyHist.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//고객 구매이력 정보 표시 시점에 상단 MOT 표시
pnlBuyHistMot.Visible = false;
FormManager.SetControlSize(pnlBuyHistMot, 20, 21, 983, 96, 16);
FormManager.SetControlSize(lblBuyHistMot, 20, 21, 983, 96, 16);
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end
//#15525 고객구매이력 수정 요청 start
//VIP 여부 안내 표시
pnlBuyHistVip.Visible = false;
FormManager.SetControlSize(pnlBuyHistVip, 311, 123, 402, 400);
//pnlBuyHistVip.Location = new Point(290, 50);
//#15525 고객구매이력 수정 요청 end
//#20180413 웰컴카드 신규기능 추가 start, 20180621
//컴퍼넌트 visible 초기화
lblPayAmt.Visible = true;
lblTotSavePoint.Visible = true;
//lblUsablePoint.Visible = true;
lblBasicPoint.Visible = true;
lblAddPoint.Visible = true;
lblAddPointNm.Visible = true;
lblBox2.Visible = true;
lblBox3.Visible = true;
//lblBox4.Visible = true;
lblBox5.Visible = true;
lblBox6.Visible = true;
////////////////////////////////////////
label8.Visible = true;
////////////////////////////////////////
txtPayAmt.Visible = true;
txtTotSavePoint.Visible = true;
txtUsablePoint.Visible = true;
txtBasicPoint.Visible = true;
txtAddPoint.Visible = true;
////////////////////////////////////////
gridList.Visible = true;
btnUp.Visible = true;
btnDown.Visible = true;
////////////////////////////////////////
btnPrint.Visible = true;
btnPointUse.Visible = true;
btnCatApp.Visible = false;
btnEnter.Visible = true;
lblWelcom.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1160);
//#20180628 멤버십카드 발급 버튼 명칭 메시지 처리 start
btnWccIssue.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1131);
//#20180628 멤버십카드 발급 버튼 명칭 메시지 처리 end
if (PosMstManager.GetPosOption(POS_OPTION.OPT516) == "1" &&
m_SetClientSearch == "0" &&
m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT)
{
lblWelcom.Visible = true;
lblBox7.Visible = true;
txtWccIssue.Visible = true;
txtWccIssue.Text = "";
btnWccIssue.Visible = false;
}
else
{
lblWelcom.Visible = false;
lblBox7.Visible = false;
txtWccIssue.Visible = false;
txtWccIssue.Text = "";
btnWccIssue.Visible = false;
}
lblInfo.Visible = false;
lblInfo.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1158);
lblInfo.Location = new System.Drawing.Point(228, 235);
//#20180413 웰컴카드 신규기능 추가 end, 20180621
if (m_sPosMenuKey != PosKey.MENU_KEY.HAPPY_POINT || m_sHappyPointSave != "1")
{
//#20180413 웰컴카드 신규기능 추가 start,phj
//기존
/*
FormManager.SetControlSize(gridList, 238, 350, 374, 106);
FormManager.SetControlSize(btnUp, 615, 350, 31, 51);
FormManager.SetControlSize(btnDown, 615, 404, 31, 51);
gridList.Visible = true;
btnUp.Visible = true;
btnDown.Visible = true;
lblBasicPoint.Visible = false;
lblAddPoint.Visible = false;
lblAddPointNm.Visible = false;
txtBasicPoint.Visible = false;
txtAddPoint.Visible = false;
//lblLine06.Visible = false;
//lblLine07.Visible = false;
lblBox5.Visible = false;
lblBox6.Visible = false;
*/
//변경
if (m_SetClientSearch != "2")
{
FormManager.SetControlSize(gridList, 238, 350, 374, 106);
FormManager.SetControlSize(btnUp, 615, 350, 31, 51);
FormManager.SetControlSize(btnDown, 615, 404, 31, 51);
gridList.Visible = true;
btnUp.Visible = true;
btnDown.Visible = true;
lblBasicPoint.Visible = false;
lblAddPoint.Visible = false;
lblAddPointNm.Visible = false;
txtBasicPoint.Visible = false;
txtAddPoint.Visible = false;
//lblLine06.Visible = false;
//lblLine07.Visible = false;
lblBox5.Visible = false;
lblBox6.Visible = false;
}
//#20180413 웰컴카드 신규기능 추가 end,phj
}
else
{
gridList.Visible = false;
btnUp.Visible = false;
btnDown.Visible = false;
lblBasicPoint.Visible = true;
lblAddPoint.Visible = true;
lblAddPointNm.Visible = true;
txtBasicPoint.Visible = true;
txtAddPoint.Visible = true;
//lblLine06.Visible = true;
//lblLine07.Visible = true;
lblBox5.Visible = true;
lblBox6.Visible = true;
if (m_cDevStatus.CatTerminal.UseYn == true)
btnCatApp.Visible = true;
}
if (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT_SCH)
{
//#20180413 웰컴카드 신규기능 추가 start,phj
//기존
/*
this.Size = new Size(788, 402);
picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_S);
FormManager.SetFormAllControlMove(this, -216, -123);
FormManager.MovePopUpForm(this, false, m_cPosStatus.Sale.ScreenSizeUser);
// 해피포인트 조회
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0365);
lblPayAmt.Visible = false;
txtPayAmt.Visible = false;
lblBox2.Visible = false;
btnPrint.Visible = true;
btnEnter.Visible = false;
*/
//변경
//m_SetClientSearch 1: 영업메뉴에서오픈, 2:결제화면에서오픈
if (m_SetClientSearch == "2")
{
this.Location = new Point(0, 50);
this.Size = new Size(1024, 525);
picBack.Size = new Size(1024, 525);
//#20181015 결제창 엑박 관련 이미지 미사용 처리 start
//기존
//picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.PAY_MAIN_BACKGROUND);
//#20181015 결제창 엑박 관련 이미지 미사용 처리 end
}
else if (m_SetClientSearch == "1")
{
this.Size = new Size(788, 402);
//#20181015 결제창 엑박 관련 이미지 미사용 처리 start
//기존
//picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_S);
//#20181015 결제창 엑박 관련 이미지 미사용 처리 end
FormManager.SetFormAllControlMove(this, -216, -123);
FormManager.MovePopUpForm(this, false, m_cPosStatus.Sale.ScreenSizeUser);
}
else
{
this.Size = new Size(788, 402);
//#20181015 결제창 엑박 관련 이미지 미사용 처리 start
//기존
//picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_SIZE_S);
//#20181015 결제창 엑박 관련 이미지 미사용 처리 end
FormManager.SetFormAllControlMove(this, -216, -123);
FormManager.MovePopUpForm(this, false, m_cPosStatus.Sale.ScreenSizeUser);
// 해피포인트 조회
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0365);
lblPayAmt.Visible = false;
txtPayAmt.Visible = false;
lblBox2.Visible = false;
btnPrint.Visible = true;
btnEnter.Visible = false;
}
//#20180413 웰컴카드 신규기능 추가 end,phj
}
else
{
this.Location = new Point(0, 50);
this.Size = new Size(1024, 525);
picBack.Size = new Size(1024, 525);
//#20181015 결제창 엑박 관련 이미지 미사용 처리 start
//기존
//picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.PAY_MAIN_BACKGROUND);
//#20181015 결제창 엑박 관련 이미지 미사용 처리 end
if (m_sHappyPointSave == "1") // 해피포인트 카드등록 구분(0:카드등록, 1:적립등록)
{
// 해피포인트 적립
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0108);
btnEnter.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0134);
}
else
{
// 해피포인트 카드등록
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0365);
btnEnter.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0126);
// 고객화면 캠페인 컨텐츠 표시
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
cCampaingMain.CustDisplayCampaign(ItemConst.CPI_CUST_PAY_TYPE.HP_SAVE);
}
lblPayAmt.Visible = true;
txtPayAmt.Visible = true;
lblBox2.Visible = true;
btnPrint.Visible = false;
btnEnter.Visible = true;
}
lblCardNo.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0051);
lblPayAmt.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0098);
//#20180413 웰컴카드 신규기능 추가 start, 20180621
//기존
/*
lblTotSavePoint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0071);
lblUsablePoint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0070);
*/
//변경
lblTotSavePoint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1159);
//#20180413 웰컴카드 신규기능 추가 end, 20180621
lblBasicPoint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0728);
lblAddPoint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0729);
lblAddPointNm.Text = "";
btnIcCard.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0132);
btnRfCard.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0580);
btnPopCard.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0878);
btnPinPad.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0097);
btnPrint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0257);
btnSearch.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0004);
btnCatApp.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0854);
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start
btnCpnSend.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1122);
csmLabel5.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1123);
csmLabel6.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1124);
csmLabel7.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1125);
csmLabel8.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1126);
csmLabel9.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1127);
csmLabel10.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1128);
csmLabel14.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1129);
csmLabel15.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1130);
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end
//#20180119 해피포인트 사용, 오케이 캐쉬백 사용 start,phj
//주석
//btnPointUse.Visible = false;
btnPointUse.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0629);
if ((m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT) || (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT_USE))
{
btnPointUse.Visible = true;
}
else
{
btnPointUse.Visible = false;
}
//#20180119 해피포인트 사용, 오케이 캐쉬백 사용 end,phj
//#20180413 웰컴카드 신규기능 추가 start,phj
//#20180619 웰컴카드 개선사항 start
//기존
//if (m_SetClientSearch != "")
//변경
if (m_SetClientSearch != "0")
//#20180619 웰컴카드 개선사항 end
{
// 해피포인트 고객등록 대상 조회
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1132);
//#20180413 웰컴카드 신규기능 추가 start, 20180621
lblInfo.Visible = true;
lblInfo.BringToFront();
//#20180413 웰컴카드 신규기능 추가 end, 20180621
// 웰컴카드 발급화면에서 열었을 경우 아래 컴포넌트는 visible false 처리
lblPayAmt.Visible = false;
lblTotSavePoint.Visible = false;
//#20180413 웰컴카드 신규기능 추가 start, 20180621
//lblUsablePoint.Visible = false;
//#20180413 웰컴카드 신규기능 추가 end, 20180621
lblBasicPoint.Visible = false;
lblAddPoint.Visible = false;
lblAddPointNm.Visible = false;
lblBox2.Visible = false;
lblBox3.Visible = false;
//#20180413 웰컴카드 신규기능 추가 start, 20180621
//lblBox4.Visible = false;
//#20180413 웰컴카드 신규기능 추가 end, 20180621
lblBox5.Visible = false;
lblBox6.Visible = false;
////////////////////////////////////////
label8.Visible = false;
////////////////////////////////////////
txtPayAmt.Visible = false;
txtTotSavePoint.Visible = false;
txtUsablePoint.Visible = false;
txtBasicPoint.Visible = false;
txtAddPoint.Visible = false;
////////////////////////////////////////
gridList.Visible = false;
btnUp.Visible = false;
btnDown.Visible = false;
////////////////////////////////////////
btnPrint.Visible = false;
btnPointUse.Visible = false;
btnCatApp.Visible = false;
btnEnter.Visible = false;
//#20180619 웰컴카드 개선사항 start
//웰컴카드 해피포인트 조회 시 하단의 '조회'버튼을 '등록'으로 명칭 변경
btnSearch.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0126);
//#20180619 웰컴카드 개선사항 end
}
//#20180413 웰컴카드 신규기능 추가 end,phj
// 기능 버튼 설정 체크
FormManager.SetbtnMenu(txtCardNo, m_cDevStatus.ICReader.UseYn, btnIcCard, btnRfCard, btnPopCard, btnPinPad);
//20171219_적립대상금액 체크 수정 기존_hs start
//m_nDestAmt = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.HAPPY_POINT); // 적립 대상 금액
//txtPayAmt.Text = m_cPosStatus.Global.NumericTOCurrency(m_nDestAmt);
//#20171221 적립대상금액 계산 변경 start, 20171222
//기존
//m_nDestAmt = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.HAPPY_POINT); // 적립 대상 금액
//변경
m_cTrnStatus.Head.AftSavePoint = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.HAPPY_POINT); // 적립 대상 금액
//#20171221 적립대상금액 계산 변경 end, 20171222
// 캠페인(해피포인트 적립) 설정 처리
ICampaignUs cCampaingMainCheck = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
cCampaingMainCheck.ExecuteCampaignHappyPointSave(PosConst.CAMPAIGN_PAY_KEY.HP_SAVE, (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { }));
//#20171221 적립대상금액 계산 변경 start
//기본적립대상 + 추가적립대상 둘다 있는 경우 기본적립대상 금액만 표시되는 증상
//기존
//m_nDestAmt = m_cTrnStatus.Head.AftSavePoint; // 적립대상금액 - 캠페인적립대상금액이 있을 경우 변경
//변경
//#20171221 적립대상금액 계산 변경 start, 20171222
m_nDestAmt = m_cTrnStatus.Head.AftSavePoint;
//#20171221 적립대상금액 계산 변경 end, 20171222
if (m_cTrnStatus.Head.AftSaveAddInfo != "")
{
//#20180312 추가적립 캠페인 대상상품 적립대상금액 2배 표시 되는 증상 수정 start
//기존
/*
string sAddHpAccumeYN = m_cTrnStatus.Head.AftSaveAddInfo.ToString().Substring(25, 1);
double sAddHpAccumeAmt = CmUtil.DoubleParse(m_cTrnStatus.Head.AftSaveAddInfo.ToString().Substring(10, 15));
if (sAddHpAccumeYN == "Y")
{
m_nDestAmt = m_nDestAmt + sAddHpAccumeAmt; // 적립대상금액 - 캠페인적립대상금액이 있을 경우 변경
}
*/
//변경
string sAddHpCpiCd = m_cTrnStatus.Head.AftSaveAddInfo.ToString().Substring(0, 10).Trim();
string sAddHpAccumeYN = m_cTrnStatus.Head.AftSaveAddInfo.ToString().Substring(25, 1).Trim();
double sAddHpAccumeAmt = CmUtil.DoubleParse(m_cTrnStatus.Head.AftSaveAddInfo.ToString().Substring(10, 15).Trim());
if (sAddHpAccumeYN == "Y" && sAddHpCpiCd == "")
{
m_nDestAmt = m_nDestAmt + sAddHpAccumeAmt; // 적립대상금액 - 캠페인적립대상금액이 있을 경우 변경
}
//#20180312 추가적립 캠페인 대상상품 적립대상금액 2배 표시 되는 증상 수정 end
}
//#20171221 적립대상금액 계산 변경 end
txtPayAmt.Text = m_cPosStatus.Global.NumericTOCurrency(m_nDestAmt);
//20171219_적립대상금액 체크 수정 기존_hs end
InitializeGrid();
InitPayMainBack(m_cPosStatus, m_cDataCommon, m_sPosMenuKey, PosConst.MOT_MSG_TYPE.PAY_STEP_1, "");
ClearCardInfo(); // 카드 입력 정보 클리어
txtUsablePoint.ForeColor = Color.Red;
bNotDoubleClik = false;
// 무결성 실패후 진행시 오류 메시지 표시
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
{
//#20171208, RF버튼 선택 시에만 서명패드 무결성 체크하도록 수정 Start
/*(if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true && m_cDevStatus.ICReader.Integrity_SignPad_Status != true && m_cDevStatus.SignPad.UseYn == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0388);
else
{
if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0384);
if (m_cDevStatus.ICReader.Integrity_SignPad_Status != true && m_cDevStatus.SignPad.UseYn == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0385);
}*/
if (m_cDevStatus.ICReader.Integrity_IC_Status != true && m_cDevStatus.ICReader.UseYn == true) WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0384);
//#20171208, RF버튼 선택 시에만 서명패드 무결성 체크하도록 수정 End
}
// 해피포인트 카드 등록 여부 체크
ArrayList alTrEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
foreach (Column.TR_ETC.DATA cEtcItem in alTrEtc)
{
if (cEtcItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
{
//m_sInPutType = cEtcItem.OCCUR_ENTRY_05; // 입력구분
//m_sInMaskData = cEtcItem.OCCUR_ENTRY_01; // 마스킹
//m_sInEncData = cEtcItem.CanFiller1; // 카드데이터
//m_sInPutData = cEtcItem.CanFiller3; // 입력데이터
//m_sAppCardNo = cEtcItem.OCCUR_ENTRY_14; // 승인카드번호
m_sInPutType = cEtcItem.OCCUR_ENTRY_05; // 입력구분
//#12326 PC 서울역SW_해피포인트 마그네틱 포인트 적립시에 에러 발생 start, 20171109 phj
//기존
//m_sInPutData = cEtcItem.OCCUR_ENTRY_14; // 입력데이터
//변경
m_sInPutData = cEtcItem.CanFiller3; // 입력데이터
//#12326 PC 서울역SW_해피포인트 마그네틱 포인트 적립시에 에러 발생 end, 20171109 phj
m_sInMaskData = cEtcItem.OCCUR_ENTRY_01; // 마스킹
m_sInEncData = cEtcItem.CanFiller1; // 카드데이터
m_sAppCardNo = cEtcItem.OCCUR_ENTRY_14; // 승인카드번호
txtCardNo.Value = m_sInPutData;
SearchTxtInPut(cEtcItem);
break;
}
}
txtCardNo.Value = m_sInPutData;
if (m_sInPutData == "")
{
btnSearch.Enabled = true;
btnIcCard.Enabled = true;
btnRfCard.Enabled = true;
btnPinPad.Enabled = true;
txtCardNo.ReadOnly = false;
// 스마일페이 등록 여부 체크
ArrayList alTrPay = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
foreach (Column.TR_PAYMENT.DATA cPayItem in alTrPay)
{
if (cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
//#20170731, 해피기프트카드(코나머니) 개발 Start, srlee
/*if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.PAY_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAY.SMILE_PAY)
{
txtCardNo.Value = cPayItem.CanFiller2.Trim();
break;
}*/
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.PAY_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PAY.SMILE_PAY)
{
txtCardNo.Value = cPayItem.CanFiller2.Trim();
break;
}
//#20171018, 해피기프트(코나머니) 결제코드(신용->선불) 변경 Start, srlee
else if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.PPCARD_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.PPCARD.HPGIFT_CARD && cPayItem.CanFiller2 != "")
//#20171018, 해피기프트(코나머니) 결제코드(신용->선불) 변경 End, srlee
{
txtCardNo.Value = cPayItem.CanFiller2.Trim();
}
//#20170731, 해피기프트카드(코나머니) 개발 End, srlee
}
}
else
{
btnSearch.Enabled = false;
btnIcCard.Enabled = false;
btnRfCard.Enabled = false;
btnPinPad.Enabled = false;
txtCardNo.ReadOnly = true;
}
if (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT && m_sHappyPointSave == "1") // 해피포인트 카드등록 구분(0:카드등록, 1:적립등록)
{
if (m_sInPutData == "")
txtCardNo.Select();
else
txtPayAmt.Select();
}
else
{
txtCardNo.Select();
}
txtPayAmt.ReadOnly = 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>
private void InitializeGrid()
{
try
{
gridList.CsmGridColumnHeadersFont = new Font(m_cPosStatus.Base.FONT, 11, gridList.CsmGridColumnHeadersFont.Style);
//DataGridView 자체의 컬럼 헤더 Visible 여부
gridList.CsmGridColumnHeadersVisible = true;
//DataGridView 자체의 컬럼 헤더 높이
gridList.CsmGridColumnHeadersHeight = 34;
gridList.CsmGridRowsHeight = 35;
//그리드의 컬럼 수
gridList.CsmGridColumnCount = 4;
//그리드의 한 화면에 보이는 로우수
gridList.CsmGridShowPageRowsCount = 2;
gridList.CsmGridSetHeaderBackColor(236, 238, 239); //그리드 헤더 배경색
gridList.CsmGridDefaultRowBackColor = Color.FromArgb(255, 255, 255); //그리드 홀수(Default)행의 배경색 지정
gridList.CsmGridAlternateRowBackColor = Color.FromArgb(251, 253, 255); //그리드 짝수(Alternate)행의 배경색 지정
gridList.CsmGridBackGroundColor = Color.FromArgb(251, 253, 255); //기본 백그라운드 컬러
gridList.CsmGridHighlightColor = Color.FromArgb(255, 251, 211); //그리드 선택 백 컬러
gridList.CsmGridHighlightTextColor = Color.Black; //그리드 선택 글자 컬러
//각 컬럼별 이름 지정
gridList.CsmGridColumnName(0, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0139));
gridList.CsmGridColumnName(1, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0140));
gridList.CsmGridColumnName(2, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0141));
gridList.CsmGridColumnName(3, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0142));
//컬럼넓이 지정
gridList.CsmGridSetColumnWidth(new int[] { 0, 184, 95, 95 });
//gridList.CsmGridSetColumnWidth(new int[] { 100, 160, 76, 76 });
//컬럼 정렬 0:왼쪽, 1:가운데, 2:오른쪽
gridList.CsmGridAlignment(new int[] { 0, 0, 0, 0 });
m_dtGridList = new DataTable("GRID_LIST");
m_dtGridList.Columns.Add(new DataColumn("COUPON_CD", typeof(string)));
m_dtGridList.Columns.Add(new DataColumn("COUPON_NM", typeof(string)));
m_dtGridList.Columns.Add(new DataColumn("START_DT", typeof(string)));
m_dtGridList.Columns.Add(new DataColumn("END_DT", typeof(string)));
m_dtGridList.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 ClearCardInfo()
{
try
{
m_sInPutType = ""; // 입력구분
m_sInPutData = ""; // 입력데이터
m_sInMaskData = ""; // 마스킹
m_sInEncData = ""; // 카드데이터
m_sServiceCode = ""; // 서비스코드
m_sAppCardNo = ""; // 승인카드번호
txtUsablePoint.Text = "";
txtTotSavePoint.Text = "";
txtBasicPoint.Text = "";
txtAddPoint.Text = "";
m_bSearchSuccess = false;
m_dtGridList.Clear();
gridList.CsmGridDataSource = m_dtGridList;
txtPayAmt.ReadOnly = 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);
}
}
#endregion
//#20180119 해피포인트 사용, 오케이 캐쉬백 사용 start,phj
/// <summary>
/// 해피포인트 사용화면 오픈
/// </summary>
private void HappyPointUseForm()
{
try
{
frmPntHappyPointUse fForm = (frmPntHappyPointUse)FormManager.GetForm(FormManager.FORM_PAY_POINT_HAPPY_POINT_USE);
if (fForm == null)
{
fForm = new frmPntHappyPointUse();
FormManager.AddForm(FormManager.FORM_PAY_POINT_HAPPY_POINT_USE, fForm);
}
fForm.SetPosMenuKey = PosKey.MENU_KEY.HAPPY_POINT_USE; //00078;
fForm.ShowDialog();
this.DialogResult = DialogResult.OK;
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);
}
}
//#20180119 해피포인트 사용, 오케이 캐쉬백 사용 end,phj
#region
/// <summary>
/// 버튼 입력 처리
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnProc_Click(object sender, EventArgs e)
{
try
{
if (bNotDoubleClik) return;
bNotDoubleClik = true;
if (((Cosmos.UI.CsmButton)sender) == btnIcCard) // 카드입력
{
if (GetIcCardData(e != null ? true : false) == true)
{
bNotDoubleClik = false;
txtEditBox_EditBoxKeyDownEvent(txtCardNo, PosKey.MENU_KEY.ENTER);
}
}
else if (((Cosmos.UI.CsmButton)sender) == btnRfCard) // RF카드
{
UnRegIcCallback(); // IC리더 콜백 해지
if (GetRfCardData() == true)
{
bNotDoubleClik = false;
txtEditBox_EditBoxKeyDownEvent(txtCardNo, PosKey.MENU_KEY.ENTER);
}
if (txtCardNo.Value == "") tmrIcCard.Enabled = true;
}
else if (((Cosmos.UI.CsmButton)sender) == btnPopCard) // POP카드
{
UnRegIcCallback(); // IC리더 콜백 해지
if (GetPopCardData() == true)
{
bNotDoubleClik = false;
txtEditBox_EditBoxKeyDownEvent(txtCardNo, PosKey.MENU_KEY.ENTER);
}
if (txtCardNo.Value == "") tmrIcCard.Enabled = true;
}
else if (((Cosmos.UI.CsmButton)sender) == btnPinPad) // 핀패드
{
UnRegIcCallback(); // IC리더 콜백 해지
if (GetPinPadData() == true)
{
bNotDoubleClik = false;
txtEditBox_EditBoxKeyDownEvent(txtCardNo, PosKey.MENU_KEY.ENTER);
}
if (txtCardNo.Value == "") tmrIcCard.Enabled = true;
}
//#20180119 해피포인트 사용, 오케이 캐쉬백 사용 start,phj
//주석
else if (((Cosmos.UI.CsmButton)sender) == btnPointUse) // 사용
{
//#20180219 통신사할인 후 포인트 사용할 수 없도록 수정 start,phj
if (m_cDataCommon.PayDcDuplicationCheck(ItemConst.TR_ITEM_ID.POINT_ITEM, ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT, true) == false) return;
//#20180219 통신사할인 후 포인트 사용할 수 없도록 수정 end,phj
//자동등록 후 [사용] 화면 열리도록 함.
if (txtCardNo.Value != "")
{
CompleteTxtInPut(2);
}
else
{
HappyPointUseForm();
}
}
//#20180119 해피포인트 사용, 오케이 캐쉬백 사용 end,phj
else if (((Cosmos.UI.CsmButton)sender) == btnSearch) // 조회
{
//#20180413 웰컴카드 신규기능 추가 start, 20180621
//기존
//SearchTxtInPut(null); // 조회
//변경
bool bSch = SearchTxtInPut(null); // 조회
//#20180413 웰컴카드 신규기능 추가 end, 20180621
//#20180413 웰컴카드 신규기능 추가 start,phj
//#20180619 웰컴카드 개선사항 start
//기존
//if (m_SetClientSearch != "")
//변경
//#20180413 웰컴카드 신규기능 추가 start, 20180621
//기존
//if (m_SetClientSearch != "0")
//변경
if (m_SetClientSearch != "0" && bSch == true)
//#20180413 웰컴카드 신규기능 추가 end, 20180621
//#20180619 웰컴카드 개선사항 end
{
bNotDoubleClik = false;
this.DialogResult = DialogResult.OK;
this.Close();
return;
}
//#20180413 웰컴카드 신규기능 추가 end,phj
}
else if (((Cosmos.UI.CsmButton)sender) == btnEnter) // 승인
{
CompleteTxtInPut(0);
}
else if (((Cosmos.UI.CsmButton)sender) == btnCatApp) // Cat단말기 승인
{
CompleteTxtInPut(1);
}
//#20180413 웰컴카드 신규기능 추가 start, 20180621
else if (((Cosmos.UI.CsmButton)sender) == btnWccIssue) // 웰컴카드 발급
{
WelcomeCard_Issue();
}
//#20180413 웰컴카드 신규기능 추가 end, 20180621
else if (((Cosmos.UI.CsmButton)sender) == btnPrint) // 출력
{
PrintTxtInPut();
}
else if (((Cosmos.UI.CsmButton)sender) == btnUp)
{
gridList.CsmGridScroll("UP");
}
else if (((Cosmos.UI.CsmButton)sender) == btnDown)
{
gridList.CsmGridScroll("DOWN");
}
else if (((Cosmos.UI.CsmButton)sender) == btnExit)
{
ArrayList alTrEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
foreach (Column.TR_ETC.DATA cEtcItem in alTrEtc)
{
if (cEtcItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
{
cEtcItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
if (m_sHappyPointSave != "1") // 해피포인트 카드등록 구분(0:카드등록, 1:적립등록))
{
// 캠페인 취소 처리
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
cCampaingMain.ExecuteCampaignPluHappyPoint("", false, "", "", "", ""); // 상품 캠페인 계산
}
}
}
bNotDoubleClik = false;
this.DialogResult = DialogResult.Cancel;
this.Close();
return;
}
padInPut.SetActiveFocus();
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
bNotDoubleClik = false;
}
bNotDoubleClik = false;
}
#endregion
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start
#region
/// <summary>
/// 고객 구매이력 정보 버튼 입력 처리
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnBuyList_Click(object sender, EventArgs e)
{
try
{
if (((Cosmos.UI.CsmButton)sender) == btnBuyListCls)
{
pnlBuyHist.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//고객 구매이력 정보 표시 시점에 상단 MOT 표시
pnlBuyHistMot.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
}
else if (((Cosmos.UI.CsmButton)sender) == btnCpnSend)
{
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180508
//[쿠폰발송] 버튼 클릭시 '쿠폰발송 기능은 추후 오픈 예정입니다.' 팝업 출력
//#20180605 해피쿠폰 발송 해당 옵션 체크 기능 제외 start
/*
if (PosMstManager.GetPosOption(POS_OPTION.OPT513) != "1")
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0785);
return;
}
*/
//#20180605 해피쿠폰 발송 해당 옵션 체크 기능 제외 end
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180508
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//적용시 주석 해제
if (m_cPosStatus.Mst.HpyCokStorYn != "1")
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0786);
return;
}
if (m_cPosStatus.Mst.CpnSendYn != "1")
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0787);
return;
}
if (m_cPosStatus.Sale.sRegularYN != "Y")
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0788);
return;
}
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180502
//기능키 추가 후 권한 체크 기능 적용
if (WinBasic.CheckMenuKeyAuth(PosKey.MENU_KEY.HPYCPN_SEND) == false) return; // 기능키 판매원 권한 체크
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180502
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180528
//쿠폰 발송 횟수 제한 기능
//저장된 쿠폰 발송 횟수 가져오기
string sCpnSendCnt = m_cDataCommon.CpnSendCntSearch();
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180531
//저장되지 않은 쿠폰 발송 횟수 가져오기
int iCpnSendCnt = 0;
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); // 기타 내역 받아 오기
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
{
if (cEtcItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
//해피쿠폰 발송
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.HAPPYCPN_SEND)
{
iCpnSendCnt = iCpnSendCnt + 1;
}
}
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180531
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180531
//기존
//if (CmUtil.IntParse(m_cPosStatus.Mst.CpnSendLimitCnt) <= CmUtil.IntParse(sCpnSendCnt))
//변경
if (CmUtil.IntParse(m_cPosStatus.Mst.CpnSendLimitCnt) <= CmUtil.IntParse(sCpnSendCnt) + iCpnSendCnt)
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180531
{
WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0789), m_cPosStatus.Mst.CpnSendLimitCnt));
//WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0789);
return;
}
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180528
WinPay.ShowForm(new string[] { FormManager.FORM_CPN_SEND, m_sInPutType, m_sInMaskData, m_sInEncData, m_sServiceCode, m_sAppCardNo });
}
else if (((Cosmos.UI.CsmButton)sender) == btnHpCok)
{
pnlBuyHist.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//고객 구매이력 정보 표시 시점에 상단 MOT 표시
pnlBuyHistMot.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
#endregion
#region
/// <summary>
/// 고객 구매이력 정보 버튼 입력 처리
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void lblBuyList_Click(object sender, EventArgs e)
{
try
{
pnlBuyHist.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//고객 구매이력 정보 표시 시점에 상단 MOT 표시
pnlBuyHistMot.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
}
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
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end
#region
/// <summary>
/// 텍스트박스 키 입력 이벤트 처리
/// </summary>
/// <param name="sender"></param>
/// <param name="sFuncValue"></param>
private void txtEditBox_EditBoxKeyDownEvent(object sender, string sFuncValue)
{
try
{
if (bNotDoubleClik) return;
bNotDoubleClik = true;
try
{
if (sFuncValue == PosKey.MENU_KEY.ENTER)
{
if (((Cosmos.UI.CsmPosEditBox)sender) == txtCardNo)
{
if (txtCardNo.Text == "")
{
if (GetIcCardData(true) == false)
{
bNotDoubleClik = false;
return;
}
}
if (CheckTxtInPut(sender) == false)
{
bNotDoubleClik = false;
return;
}
if (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT)
{
if (txtTotSavePoint.Text == "")
SearchTxtInPut(null); // 조회
else
{
if (m_sHappyPointSave == "1") // 해피포인트 카드등록 구분(0:카드등록, 1:적립등록)
txtPayAmt.Focus();
else
CompleteTxtInPut(0); // 적립
}
}
else
{
//#20180413 웰컴카드 신규기능 추가 start, 20180621
//기존
//SearchTxtInPut(null); // 조회
//변경
bool bSch = SearchTxtInPut(null); // 조회
//#20180413 웰컴카드 신규기능 추가 end, 20180621
//#20180413 웰컴카드 신규기능 추가 start,phj
//#20180619 웰컴카드 개선사항 start
//기존
//if (m_SetClientSearch != "")
//변경
//#20180413 웰컴카드 신규기능 추가 start, 20180621
//기존
//if (m_SetClientSearch != "0")
//변경
if (m_SetClientSearch != "0" && bSch == true)
//#20180413 웰컴카드 신규기능 추가 end, 20180621
//#20180619 웰컴카드 개선사항 end
{
bNotDoubleClik = false;
this.DialogResult = DialogResult.OK;
this.Close();
}
//#20180413 웰컴카드 신규기능 추가 end,phj
}
}
else if (((Cosmos.UI.CsmPosEditBox)sender) == txtPayAmt)
{
if (txtCardNo.Text == "")
{
bNotDoubleClik = false;
return;
}
if (CheckTxtInPut(sender) == false)
{
bNotDoubleClik = false;
return;
}
CompleteTxtInPut(0); // 적립
}
}
else if (sFuncValue == PosKey.MENU_KEY.CLEAR)
{
if (((Cosmos.UI.CsmPosEditBox)sender).ReadOnly == false)
{
if (((Cosmos.UI.CsmPosEditBox)sender) == txtCardNo)
{
ClearCardInfo(); // 카드 입력 정보 클리어
tmrIcCard.Enabled = true;
}
((Cosmos.UI.CsmPosEditBox)sender).Text = "";
}
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
bNotDoubleClik = false;
}
/// <summary>
/// 텍스트박스 활성화 처리
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txtEditBox_EnterEvent(object sender, EventArgs e)
{
try
{
padInPut.SetActiveControl = (Control)sender;
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
#endregion
#region
/// <summary>
/// 텍스트박스 입력 유효성 체크
/// </summary>
/// <param name="sender"></param>
/// <returns></returns>
private bool CheckTxtInPut(object sender)
{
try
{
// 특정 문자값 제거
try
{
if (m_cDevStatus.Msr.STX != "" && txtCardNo.Value.StartsWith(m_cDevStatus.Msr.STX)) txtCardNo.Value = txtCardNo.Value.Substring(1);
int iLastEtx = txtCardNo.Value.LastIndexOf(m_cDevStatus.Msr.ETX);
if (m_cDevStatus.Msr.ETX != "" && iLastEtx > 0) txtCardNo.Value = CmUtil.MidH(txtCardNo.Value, 0, iLastEtx);
}
catch { }
// 카드번호 길이 체크
if (sender == null || ((Cosmos.UI.CsmPosEditBox)sender) == txtCardNo)
{
if (txtCardNo.Value.Length < 10)
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0037);
txtCardNo.Focus();
return false;
}
// 입력된 카드번호 변경 체크
//#20170913 현금영수증, 포인트카드 마스킹 미적용 start
//카드번호를 비교시 16자리까지만 비교 하도록 수정
//기존
/*
if (txtCardNo.Value != m_sInPutData)
{
ClearCardInfo(); // 카드 입력 정보 클리어
}
*/
//변경
string sCardTemp = "";
string sInputTemp = "";
if (txtCardNo.Value.Length > 16)
{
sCardTemp = txtCardNo.Value.Substring(0, 16);
}
else
{
sCardTemp = txtCardNo.Value.Substring(0, txtCardNo.Value.Length);
}
if (m_sInPutData.Length > 16)
{
sInputTemp = m_sInPutData.Substring(0, 16);
}
else
{
sInputTemp = m_sInPutData.Substring(0, m_sInPutData.Length);
}
if (sCardTemp != sInputTemp)
{
ClearCardInfo(); // 카드 입력 정보 클리어
}
//#20170913 현금영수증, 포인트카드 마스킹 미적용 end
if (m_sInEncData == "")
{
if (m_sInPutData == "")
{
m_sInPutData = txtCardNo.Value;
if (m_sInPutData.Length > 16 && CmUtil.IsNumber(m_sInPutData.Substring(16, 1)) == false)
{
if (CmUtil.CheckHappyMobileCard(m_sInPutData) == false)
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0037);
ClearCardInfo(); // 카드 입력 정보 클리어
txtCardNo.Focus();
txtCardNo.SelectText();
return false;
}
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_MOBILE_SWIP;
txtCardNo.Value = m_sInPutData; // .Substring(0, 16);
if (m_sInPutData.Length.Equals(17) && CmUtil.IsNumber(m_sInPutData.Substring(16, 1)) == false) m_sInPutData = m_sInPutData.Substring(0, 16) + "="; //Moon SeokWoo 20171023
}
else
{
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN;
}
//2017.10.26 MoonSeokWoo 17자리가 아닐시 입력모드 변경하도록 수정.
if (m_sInPutData.Contains("=") == true && !m_sInPutData.Length.Equals(17)) m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP;
}
if (EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData) == false) return false;
m_sAppCardNo = m_sInPutData; // 승인카드번호
}
}
if (sender == null || ((Cosmos.UI.CsmPosEditBox)sender) == txtPayAmt)
{
if (CmUtil.DoubleParse(txtPayAmt.Value) > m_nDestAmt)
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0597);
txtPayAmt.Focus();
return false;
}
}
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;
}
#endregion
#region
/// <summary>
/// 해피포인트 카드 등록 처리
/// </summary>
/// <param name="nFlowMode"></param>
/// <returns></returns>
private bool CompleteTxtInPut(int nFlowMode)
{
string sRet = UserCom.RST_ERR;
try
{
if (nFlowMode == 1)
{
if (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT && m_sHappyPointSave == "1") // 해피포인트 카드등록 구분(0:카드등록, 1:적립등록)
{
//InParam
// 0.전문구분,1.거래유형, 2.할부개월, 3.승인금액 , 4.봉사료, 5.세금, 6.원승인번호, 7.원거래일자, 8.포인트거래구분, 9.상품코드,
//10.전표인쇄여부, 11.추가항목, 12.제휴할인코드, 13.제휴할인금액, 14.예비1, 15.예비2
string sAppType = PosConst.POS_CAT_MASTER.TRADE_ID.CAT_HAPPY_SAVE;
string sItemCode = ""; // 상품 코드 설정
//적립 포인트는 클래스에서 셋팅함!
//승인처리 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
sRet = m_cHappyPoint.CompletePayment(new string[] { PosConst.POS_CAT_MASTER.TRAN_TYPE, sAppType, "00", txtPayAmt.Value, "0", "0", "", "", "04", sItemCode, "", "", m_sPosMenuKey, "", "", "" });
if (sRet != UserCom.RST_OK)
{
//WinManager.ErrorMessage(sRet);
txtCardNo.SelectText();
return false;
}
}
}
else
{
if (CheckTxtInPut(null) == false) return false;
if (m_bSearchSuccess == false)
{
if (SearchTxtInPut(null) == false) return false; // 조회
}
// 해피포인트 카드 등록 처리
sRet = m_cHappyPoint.SetPayment(new string[] { m_sInPutType, m_sInMaskData, m_sInEncData, "1", m_sServiceCode, m_sAppCardNo });
if (sRet != UserCom.RST_OK)
{
txtCardNo.SelectText();
return false;
}
if (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT && m_sHappyPointSave == "1") // 해피포인트 카드등록 구분(0:카드등록, 1:적립등록)
{
// 해피포인트 적립 완료 처리
sRet = m_cHappyPoint.CompletePayment(new string[] { txtPayAmt.Value });
if (sRet != UserCom.RST_OK)
{
txtCardNo.SelectText();
return false;
}
}
}
//#20180119 해피포인트 사용, 오케이 캐쉬백 사용 start,phj
//기존
/*
this.DialogResult = DialogResult.OK;
this.Close();
*/
//변경
if (nFlowMode == 2)
{
HappyPointUseForm();
}
else
{
//#20180619 웰컴카드 개선사항 start
//#20180619 웰컴카드 개선사항 end
this.DialogResult = DialogResult.OK;
this.Close();
}
//#20180119 해피포인트 사용, 오케이 캐쉬백 사용 end,phj
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>
/// <returns></returns>
private bool SearchTxtInPut(Column.TR_ETC.DATA cEtcItem)
{
string sRet = UserCom.RST_ERR;
try
{
if (CheckTxtInPut(null) == false) return false;
txtUsablePoint.Text = "";
txtTotSavePoint.Text = "";
lblAddPointNm.Text = "";
m_bSearchSuccess = false;
if (m_sHappyPointSave == "1") // 해피포인트 카드등록 구분(0:카드등록, 1:적립등록)
{
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0108);
}
else
{
//#20180619 웰컴카드 개선사항 start
//기존
//lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0365);
//변경
//#20180619 웰컴카드 개선사항 start
//기존
//if (m_SetClientSearch != "")
//변경
if (m_SetClientSearch != "0")
//#20180619 웰컴카드 개선사항 end
{
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1132);
}
else
{
lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0365);
}
//#20180619 웰컴카드 개선사항 end
}
//m_cTrnStatus.Sale.HappyBuzzMemNo = "";
m_dtGridList.Clear();
gridList.CsmGridDataSource = m_dtGridList;
if (cEtcItem == null)
{
// 해피 포인트 조회
string[] saRecvdData = null;
sRet = m_cHappyPoint.SearchPayment(new string[] { m_sInPutType, m_sInMaskData, m_sInEncData, "1", m_sServiceCode, m_sAppCardNo }, ref saRecvdData);
if (sRet != UserCom.RST_OK)
{
InDataToZeroFill();
txtCardNo.Focus();
return false;
}
//#20170913 현금영수증, 포인트카드 마스킹 미적용 start
//조회 성공시 카드번호 16자리까지만 표기
if (txtCardNo.Value.Length > 16)
{
txtCardNo.Value = txtCardNo.Value.Substring(0, 16);
}
else
{
txtCardNo.Value = txtCardNo.Value.Substring(0, txtCardNo.Value.Length);
}
//#20170913 현금영수증, 포인트카드 마스킹 미적용 end
// 조회 데이터 획득
cEtcItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { });
//#13753 POS MOT음성 기능 추가 개발요청 start,phj
//#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정 start,phj
// 기존
/*
if ((m_cTrnStatus.Head.CmpCd == "PCKR" && m_cPosStatus.Mst.DrtFrcsDiv == "10") && // PCKR 이고 직영점일 때
m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT && m_sHappyPointSave == "0" &&
(m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE ||
CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT309), "1") == "2"))
*/
// 변경
if (m_cTrnStatus.Head.CmpCd == "PCKR" &&
//#13753 POS MOT음성 기능 추가 개발요청 - 20180222 음성MOT 옵션처리 start,phj
PosMstManager.GetPosOption(POS_OPTION.OPT331) == "1" &&
//#13753 POS MOT음성 기능 추가 개발요청 - 20180222 음성MOT 옵션처리 end,phj
m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT && m_sHappyPointSave == "0" &&
(m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE && CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT309), "1") == "2"))
//#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정 end,phj
{
// 가용포인트 1000점 이상일 때 플레이.
if (cEtcItem.AMT_ENTRY_04 >= 1000 &&
//#20180219 keyin 이나 휴대폰 번호는 사용할 수 없도록 수정 start,phj
(m_sInPutType == PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP ||
m_sInPutType == PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_MOBILE_SWIP))
//#20180219 keyin 이나 휴대폰 번호는 사용할 수 없도록 수정 end,phj
{
SetPlayMotMsg(PosConst.MOT_MSG_TYPE.DSP_SCN_MSG, PosKey.MENU_KEY.HPP_USE_INPUT, "");
}
}
//#13753 POS MOT음성 기능 추가 개발요청 end,phj
if (m_sInPutData.StartsWith(PosConst.HP_CARD_PRIFIX) == false && cEtcItem.HP_ADD_INFO_SCH.Trim() != "") // 제휴카드 조회
{
int nNowPos = 0;
string[] aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length];
ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(cEtcItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp);
// 고객정보 중에서 첫번째 카드 선택
string sMemInfo = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointMEMINFO].Trim();
if (sMemInfo.Length >= 17 && CmUtil.LongParse(sMemInfo.Substring(0, 1)) > 0)
{
string sInPutData = sMemInfo.Substring(1, 16).Trim(); // 카드번호
string sInMaskData = "";
if (EncryptedCardNo(sInPutData, ref sInMaskData, ref m_sInEncData) == false) return false;
// 핸드폰 번호로 해피포인트 조회 시 응답전문의 포인트카드번호로 조회하지 않고 핸드폰 번호로 조회 하도록 수정(2017.09.06)
//cEtcItem.CanFiller1 = m_sInEncData;
if (IsCellularPhoneNumber(m_sInPutData) == false)
{
cEtcItem.CanFiller1 = m_sInEncData;
}
cEtcItem.OCCUR_ENTRY_14 = m_sAppCardNo = sInPutData; // 승인카드번호
}
}
if (cEtcItem.OCCUR_ENTRY_12 == "Y")
{
m_cTrnStatus.Sale.HappyBuzzMemNo = m_sInPutData;
}
cEtcItem.CanFiller3 = m_sInPutData;
//#20180413 웰컴카드 신규기능 추가 start,phj
string m_HPCustNo = "";
string HP_WelcomeCard = "";
// 회원번호
m_HPCustNo = CmUtil.MidH(cEtcItem.OCCUR_ENTRY_10, 0, 10).Trim();
cEtcItem.OCCUR_ENTRY_22 = m_HPCustNo; //HP회원번호
// 웰컴카드번호
//int iNowPos = 0;
//string[] HPPAddInfo = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length];
//ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(cEtcItem.HP_ADD_INFO_SCH), ref iNowPos, ref HPPAddInfo);
//m_HPWccCard = HPPAddInfo[Column.POINT_ADD_INFO_SEARCH.SEQ.pointRESERVED].Trim();
//if (m_HPWccCard != "")
//{
// m_HPWccCard = CmUtil.MidH(m_HPWccCard, 0, 20).Trim();
//};
//cEtcItem.OCCUR_ENTRY_19 = m_HPWccCard; //웰컴카드번호
int t_nNowPos = 0;
string[] t_aIrtRsp = null;
t_aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length];
byte[] t_bytes = Encoding.Default.GetBytes(cEtcItem.HP_ADD_INFO_SCH);
ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, t_bytes, ref t_nNowPos, ref t_aIrtRsp);
HP_WelcomeCard = t_aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointRESERVED].Trim();
HP_WelcomeCard = CmUtil.MidH(HP_WelcomeCard, 0, 20).Trim();
cEtcItem.OCCUR_ENTRY_19 = HP_WelcomeCard; // 웰컴카드번호
//#20180413 웰컴카드 신규기능 추가 start, 20180621
if (PosMstManager.GetPosOption(POS_OPTION.OPT516) == "1" &&
m_SetClientSearch == "0" &&
m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT &&
cEtcItem.OCCUR_ENTRY_19.Trim() == "")
{
btnWccIssue.Visible = true;
btnWccIssue.BringToFront();
txtWccIssue.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0918);
}
else
{
btnWccIssue.Visible = false;
txtWccIssue.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0126);
}
//#20180413 웰컴카드 신규기능 추가 end, 20180621
//#20180413 웰컴카드 신규기능 추가 end,phj
//#12500 해피포인트 실효정책 변경에 따른 프로그램 수정 start, phj
//기존
/*
// 소멸예정포인트 안내 메지시(2017.05.31)
if (cEtcItem.HP_EXT_POINT > 0 && CmUtil.LongParse(DateTime.Now.ToString("MM")) == 6)
{
WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0696)
, DateTime.Now.ToString("yyyy"), m_cPosStatus.Global.NumericTOCurrency(cEtcItem.HP_EXT_POINT)));
}
*/
//변경
// 소멸예정포인트 안내 메지시(2017.05.31)
if (cEtcItem.HP_EXT_POINT > 0)
{
WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0740)
, DateTime.Now.ToString("yyyy"), m_cPosStatus.Global.NumericTOCurrency(cEtcItem.HP_EXT_POINT)));
}
//#12500 해피포인트 실효정책 변경에 따른 프로그램 수정 end, phj
}
txtUsablePoint.Text = m_cPosStatus.Global.NumericTOCurrency(cEtcItem.AMT_ENTRY_04); // 가용포인트
txtTotSavePoint.Text = m_cPosStatus.Global.NumericTOCurrency(cEtcItem.AMT_ENTRY_03); // 누적포인트
// 적립등록 중 적립예정 포인트 표시
if (m_sPosMenuKey == PosKey.MENU_KEY.HAPPY_POINT && m_sHappyPointSave == "1") // 해피포인트 카드등록 구분(0:카드등록, 1:적립등록)
{
// 해피포인트 기본적립 대상 금액 획득
m_cTrnStatus.Head.AftSavePoint = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.HAPPY_POINT);
// 캠페인(해피포인트 적립) 설정 처리
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
cCampaingMain.ExecuteCampaignHappyPointSave(PosConst.CAMPAIGN_PAY_KEY.HP_SAVE, cEtcItem);
m_nDestAmt = m_cTrnStatus.Head.AftSavePoint; // 적립대상금액
txtPayAmt.Text = m_cPosStatus.Global.NumericTOCurrency(m_nDestAmt);
// 적립예정포인트
double nSavePoint = (long)CmUtil.MathRounds(CmUtil.MathAmtPercent(m_cTrnStatus.Head.AftSavePoint, m_cPosStatus.Mst.HpyPntAccumRate), PosConst.MATH_ROUND.CEILING, 0);
//double nSavePoint = m_cDataCommon.ExecTermCoopCmpPayDc(cEtcItem.ETC_WAY_CD, cEtcItem.ETC_DTL_CD_01, "", m_cTrnStatus.Head.AftSavePoint); // 적립예정 포인트
txtBasicPoint.Text = m_cPosStatus.Global.NumericTOCurrency(nSavePoint);
// 추가적립 정보[캠페인코드(10)+대상상품금액(15)+추가적립여부(1)+추가적립상세코드(2)+본사부담금(7)+매장부담금(7)]
double nAddSavePnt = 0;
if (m_cTrnStatus.Head.AftSaveAddInfo != "")
{
if (m_cTrnStatus.Head.AftSaveAddInfo.Substring(25).StartsWith("N") == true) txtBasicPoint.Text = "0";
nAddSavePnt = m_cDataService.DoubleParse(m_cTrnStatus.Head.AftSaveAddInfo.Substring(28, 7));
lblAddPointNm.Text = cCampaingMain.GetCampaignName(m_cTrnStatus.Head.AftSaveAddInfo.Substring(0, 10).Trim(), 0);
}
txtAddPoint.Text = m_cPosStatus.Global.NumericTOCurrency(nAddSavePnt);
if (m_cTrnStatus.Head.AftSavePoint < 1000 && m_cTrnStatus.Head.AftSaveAddInfo == "") // 적립 대상금액 없음
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0448);
txtCardNo.SelectText();
return false;
}
txtPayAmt.ReadOnly = false;
txtPayAmt.Focus();
}
else
{
// 카드등록 모드일때 인카드 쿠폰 조회
if (cEtcItem.HP_ADD_INFO_SCH.Trim() != "")
{
// 인카드 쿠폰 보유 여부 확인
int nNowPos = 0;
string[] aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length];
ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(cEtcItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp);
if (CmUtil.LongParse(aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointCOUPONCNT]) > 0)
{
// 인카드 쿠폰 리스트 조회
IPaymentUs cHappyCoupon = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYCOUPON);
string[] saRecvdDataCpn = null;
sRet = cHappyCoupon.SearchPayment(new string[] { m_sInPutType, m_sInMaskData, m_sInEncData, "1" }, ref saRecvdDataCpn);
if (sRet == UserCom.RST_OK)
{
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)cHappyCoupon.GetPayment(new string[] { });
foreach (string[] sInfo in cPayItem.HP_CPN_INFO)
{
DataRow drNewRow = m_dtGridList.NewRow();
drNewRow["COUPON_CD"] = sInfo[0];
//#20171116 온라인 쿠폰 제품군코드,상품코드 존재 시 할인 대상이 변경되도록 추가 start, phj
//기존
//drNewRow["COUPON_NM"] = sInfo[1];
//변경
drNewRow["COUPON_NM"] = CmUtil.MidH(sInfo[1], 0, 40);
//#20171116 온라인 쿠폰 제품군코드,상품코드 존재 시 할인 대상이 변경되도록 추가 end, phj
drNewRow["START_DT"] = m_cPosStatus.Global.DateToCulture(sInfo[2]);
drNewRow["END_DT"] = m_cPosStatus.Global.DateToCulture(sInfo[3]);
m_dtGridList.Rows.Add(drNewRow);
}
gridList.CsmGridDataSource = m_dtGridList;
gridList.CsmGridSelectRow(0);
cEtcItem.HP_CPN_INFO = cPayItem.HP_CPN_INFO;
}
}
}
}
//#20180821 해피포인트 고객이름 마스킹 start
if (cEtcItem.HP_CUST_NAME != "") { cEtcItem.HP_CUST_NAME = m_cDataCommon.NameMasking(cEtcItem.HP_CUST_NAME); }
//#20180821 해피포인트 고객이름 마스킹 end
// 고객명 표시
lblTitle.Text += " [ " + cEtcItem.HP_CUST_NAME + " ]";
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start
//고객 구매이력 화면 미표시
pnlBuyHist.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//고객 구매이력 정보 표시 시점에 상단 MOT 표시
pnlBuyHistMot.Visible = false;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180531
//포인트창 닫히는 시점에 안보이도록 수정 - 불필요해서 소스 주석
//BuyHistTime = DateTime.Now;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180531
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
//#15525 고객구매이력 수정 요청 start
//VIP 여부 안내 표시
pnlBuyHistVip.Visible = false;
//#15525 고객구매이력 수정 요청 end
// TEST START
//m_cPosStatus.Mst.BuyHistShowYn = "1";
// TEST END
//해피쿠폰 발송 사용여부 사용이고 해피포인트 고객번호가 있는 경우 POS서버로 구매이력정보 수신
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//해당 옵션 사용하지 않고 STR_SEND_CPN_MST 테이블의 사용여부로 판단
//기존
//if (PosMstManager.GetPosOption(POS_OPTION.OPT514) == "1" && cEtcItem.OCCUR_ENTRY_10.Trim().Length > 0)
//변경
if (m_cPosStatus.Mst.BuyHistShowYn == "1" && cEtcItem.OCCUR_ENTRY_10.Trim().Length > 0)
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
{
string sBuyHistRet = UserCom.RST_ERR;
string sGetData = "";
//초기화
//m_cPosStatus.Sale.strBuyHist = new string[7];
for (int i = 0; i < m_cPosStatus.Sale.strBuyHist.Length; i++) { m_cPosStatus.Sale.strBuyHist[i] = ""; }
//해피포인트 고객번호
string sHppMembNo = "";
//단골여부 Y/N
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//단골고객여부 전역변수로 변경
//기존
//string sRegularYN = "";
//변경
m_cPosStatus.Sale.sRegularYN = "";
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
//해피전문 반영 안되있으면 11자리만 내려옴. (고객번호(10) + 전자영수증 수신여부(1))
if (cEtcItem.OCCUR_ENTRY_10.Length > 11)
{
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//단골고객여부 전역변수로 변경
//기존
//sRegularYN = cEtcItem.OCCUR_ENTRY_10.Substring(11, 1);
//변경
m_cPosStatus.Sale.sRegularYN = cEtcItem.OCCUR_ENTRY_10.Substring(11, 1);
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
sHppMembNo = cEtcItem.OCCUR_ENTRY_10.Substring(0, 10);
}
else
{
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//단골고객여부 전역변수로 변경
//기존
//sRegularYN = "";
//변경
m_cPosStatus.Sale.sRegularYN = "";
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
}
//#20180524 구매이력조회 단골여부 전문추가 start,phj
//기존
//POS 서버 조회
//sBuyHistRet = m_cSvr2Tran.ServerBuyHist(sHppMembNo, ref sGetData);
//변경
//POS 서버 조회
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180528
//쿠폰 발송 횟수 제한 기능
//기존
//sBuyHistRet = m_cSvr2Tran.ServerBuyHist(sHppMembNo, m_cPosStatus.Sale.sRegularYN, ref sGetData);
//변경
//쿠폰 발송 횟수 조회
//구현
string sCpnSendCnt = m_cDataCommon.CpnSendCntSearch();
//#15525 고객구매이력 수정 요청 start
//TEST
//1위: 1006024148, 2위: 1008346700, 31위: 1002325773, 32위: 1005674140, 33099위: 1000616629
//sHppMembNo = "1002325773";
//#15525 고객구매이력 수정 요청 end
//구매이력 조회
sBuyHistRet = m_cSvr2Tran.ServerBuyHist(sHppMembNo, m_cPosStatus.Sale.sRegularYN, sCpnSendCnt, ref sGetData);
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180528
//#20180524 구매이력조회 단골여부 전문추가 end,phj
if (sBuyHistRet == UserCom.RST_OK)
{
//고객 구매이력 데이터 파싱
// 단골여부 | 최근1개월 | 전월 | 객단가 | 선호제품유형 | 최근구매일 | 최근 케익 구매일
//#15525 고객구매이력 수정 요청 start
//VIP 여부 안내 표시
// 단골여부 | 최근1개월 | 전월 | 객단가 | 선호제품유형 | 최근구매일 | 최근 케익 구매일 |코드|문구1 | 문구2| VIP여부|
// Y | 0(0) | 0 | 0 | 완제생크림 , 버터 | 21일전 (05/03)| 21일전 (05/03) |01 |어제 | 케익 | Y |
//테스트 start
//sGetData = "Y|0(0)|0|0|완제생크림 , 버터|21일전 (05/03)|21일전 (05/03)|01|어제|케익|Y";
//#15525 고객구매이력 수정 요청 end
m_cPosStatus.Sale.strBuyHist = sGetData.Split('|');
string sStrBuyHist3_0 = m_cPosStatus.Sale.strBuyHist[1];
string sStrBuyHist3_1 = "";
string sStrBuyHist3_2 = "";
string sStrBuyHist3_3 = "";
int iStrBuyHistPosUp = 0;
int iStrBuyHistPosDwn = 0;
int iStrBuyHistPosNon = 0;
iStrBuyHistPosUp = sStrBuyHist3_0.LastIndexOf("▲");
iStrBuyHistPosDwn = sStrBuyHist3_0.LastIndexOf("▼");
iStrBuyHistPosNon = sStrBuyHist3_0.LastIndexOf("(");
if (iStrBuyHistPosUp > 0)
{
sStrBuyHist3_1 = sStrBuyHist3_0.Substring(0, iStrBuyHistPosUp);
sStrBuyHist3_2 = sStrBuyHist3_0.Substring(iStrBuyHistPosUp, 1);
sStrBuyHist3_3 = sStrBuyHist3_0.Substring(iStrBuyHistPosUp + 1, sStrBuyHist3_0.Length - iStrBuyHistPosUp - 1);
lblBuyHist8.ForeColor = Color.Blue;
}
else if (iStrBuyHistPosDwn > 0)
{
sStrBuyHist3_1 = sStrBuyHist3_0.Substring(0, iStrBuyHistPosDwn);
sStrBuyHist3_2 = sStrBuyHist3_0.Substring(iStrBuyHistPosDwn, 1);
sStrBuyHist3_3 = sStrBuyHist3_0.Substring(iStrBuyHistPosDwn + 1, sStrBuyHist3_0.Length - iStrBuyHistPosDwn - 1);
lblBuyHist8.ForeColor = Color.Red;
}
else if (iStrBuyHistPosNon > 0)
{
sStrBuyHist3_1 = sStrBuyHist3_0.Substring(0, iStrBuyHistPosNon + 1);
sStrBuyHist3_2 = " ";
sStrBuyHist3_3 = sStrBuyHist3_0.Substring(iStrBuyHistPosNon + 1, sStrBuyHist3_0.Length - iStrBuyHistPosNon - 1);
lblBuyHist8.ForeColor = Color.FromArgb(51, 51, 51);
}
//고객 구매이력 데이터 표시
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//단골고객여부 전역변수로 변경
//기존
//lblBuyHist1.Text = sRegularYN;
//변경
lblBuyHist1.Text = m_cPosStatus.Sale.sRegularYN;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
lblBuyHist2.Text = sStrBuyHist3_1;
lblBuyHist3.Text = m_cPosStatus.Sale.strBuyHist[2];
lblBuyHist4.Text = m_cPosStatus.Sale.strBuyHist[3];
lblBuyHist5.Text = m_cPosStatus.Sale.strBuyHist[4];
lblBuyHist6.Text = m_cPosStatus.Sale.strBuyHist[5];
lblBuyHist7.Text = m_cPosStatus.Sale.strBuyHist[6];
lblBuyHist8.Text = sStrBuyHist3_2;
lblBuyHist9.Text = sStrBuyHist3_3;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180508
//[쿠폰발송] 버튼 클릭시 '쿠폰발송 기능은 추후 오픈 예정입니다.' 팝업 출력
//기존
/*
//단골고객만 쿠폰 발송 버튼 활성화
if (sRegularYN == "Y" && PosMstManager.GetPosOption(POS_OPTION.OPT513) == "1")
{
btnCpnSend.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1122);
btnCpnSend.Enabled = true;
}
else
{
btnCpnSend.Text = "";
btnCpnSend.Enabled = false;
}
*/
//변경
btnCpnSend.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1122);
btnCpnSend.Enabled = true;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180508
//고객 구매이력 화면 표시
pnlBuyHist.Visible = true;
//#20180524 구매이력조회 단골여부 전문추가 start,phj
//기존
////#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
////고객 구매이력 정보 표시 시점에 상단 MOT 표시
//string sMsgCode = "";
//
////#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180521
////기존
///*
//if (m_cPosStatus.Sale.strBuyHist.Length > 7)
//{
// sMsgCode = m_cPosStatus.Sale.strBuyHist[7];
//}
//else
//{
// sMsgCode = "00";
//}
//DataTable dt = m_cDataCommon.SeletCommonCode("T0038", sMsgCode);
//if (!(dt == null || dt.Rows.Count == 0))
//{
// DataRow dr = dt.Rows[0];
// lblBuyHistMot.Text = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CD_NM);
//}
////적용시 true
//pnlBuyHistMot.Visible = true;
//*/
//
////변경
//if (m_cPosStatus.Sale.strBuyHist.Length > 7)
//{
// sMsgCode = m_cPosStatus.Sale.strBuyHist[7];
//}
//
//// TEST START
////sMsgCode = "요즘 방문이 뜸하셨는데, 다시 찾아주셔서 감사드려요";
////sMsgCode = "요즘 방문이 뜸하셨는데, 다시 찾아주셔서 감사드려요@$다음 방문시 사용 하실 수 있는 XX쿠폰 발송해 드릴께요";
//// TEST END
//
//if (sMsgCode != "")
//{
// lblBuyHistMot.Text = sMsgCode.Replace("@", "\r").Replace("$", "\n").ToString();
// pnlBuyHistMot.Visible = true;
//}
//else
//{
// pnlBuyHistMot.Visible = false;
//}
//
////#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180521
//BuyHistTime = DateTime.Now;
////#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
//변경
string sMsgCode = "";
string sMsg1 = "";
string sMsg2 = "";
if (m_cPosStatus.Sale.strBuyHist.Length > 7)
{
sMsgCode = m_cPosStatus.Sale.strBuyHist[7];
sMsg1 = m_cPosStatus.Sale.strBuyHist[8];
sMsg2 = m_cPosStatus.Sale.strBuyHist[9];
}
else
{
//#20180528 구매이력조회 상단 MOT 미표시 start,phj
//기존
//sMsgCode = "00";
//변경
sMsgCode = "99";
//#20180528 구매이력조회 상단 MOT 미표시 end,phj
}
//#20180528 구매이력조회 상단 MOT 미표시 start,phj
//기존
/*
string sCmmMsg1 = "";
string sCmmMsg2 = "";
DataTable dt = m_cDataCommon.SeletCommonCode("T0038", sMsgCode);
if (!(dt == null || dt.Rows.Count == 0))
{
DataRow dr = dt.Rows[0];
sCmmMsg1 = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01);
sCmmMsg2 = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_02);
}
sCmmMsg1 = string.Format(sCmmMsg1, sMsg1, sMsg2);
sCmmMsg2 = string.Format(sCmmMsg2, sMsg1, sMsg2);
if (sCmmMsg1 != "" || sCmmMsg2 != "")
{
lblBuyHistMot.Text = sCmmMsg1 + "\r" + sCmmMsg2;
pnlBuyHistMot.Visible = true;
}
else
{
lblBuyHistMot.Text = "";
pnlBuyHistMot.Visible = false;
}
*/
//변경
if (sMsgCode == "99")
{
lblBuyHistMot.Text = "";
pnlBuyHistMot.Visible = false;
}
else
{
string sCmmMsg1 = "";
string sCmmMsg2 = "";
DataTable dt = m_cDataCommon.SeletCommonCode("T0038", sMsgCode);
if (!(dt == null || dt.Rows.Count == 0))
{
DataRow dr = dt.Rows[0];
sCmmMsg1 = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01);
sCmmMsg2 = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_02);
}
sCmmMsg1 = string.Format(sCmmMsg1, sMsg1, sMsg2);
sCmmMsg2 = string.Format(sCmmMsg2, sMsg1, sMsg2);
if (sCmmMsg1 != "" || sCmmMsg2 != "")
{
lblBuyHistMot.Text = sCmmMsg1 + "\r" + sCmmMsg2;
pnlBuyHistMot.Visible = true;
}
else
{
lblBuyHistMot.Text = "";
pnlBuyHistMot.Visible = false;
}
}
//#20180528 구매이력조회 상단 MOT 미표시 end,phj
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180531
//포인트창 닫히는 시점에 안보이도록 수정 - 불필요해서 소스 주석
//BuyHistTime = DateTime.Now;
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180531
//#20180524 구매이력조회 단골여부 전문추가 end,phj
//#15525 고객구매이력 수정 요청 start
//VIP 여부 안내 표시
string sVipYN = "N";
if (m_cPosStatus.Sale.strBuyHist.Length > 10)
{
sVipYN = m_cPosStatus.Sale.strBuyHist[10];
}
if (sVipYN == "Y")
{
//#15525 고객구매이력 수정 요청 start, 20180704
//기존
/*
pnlBuyHistVip.Visible = true;
pnlBuyHistVip.BringToFront();
*/
//변경
WinBasic.ShowForm(new string[] { FormManager.FORM_VIP });
//#15525 고객구매이력 수정 요청 end, 20180704
}
else
{
pnlBuyHistVip.Visible = false;
}
//#15525 고객구매이력 수정 요청 end
}
else
{
//고객 구매이력 데이터 초기화
//for (int i = 0; i < m_cPosStatus.Sale.strBuyHist.Length; i++) { m_cPosStatus.Sale.strBuyHist[i] = ""; }
//고객 구매이력 화면 미표시
pnlBuyHist.Visible = false;
}
}
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end
txtCardNo.SelectText();
m_bSearchSuccess = true;
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;
}
#region public bool SearchTxtInPut(Column.TR_ETC.DATA _cEtcItem, string _strHappyPointCardNo, string _strDiv)
public bool SearchTxtInPut(Column.TR_ETC.DATA _cEtcItem, string _strHappyPointCardNo, object _strDiv)
{
// 리턴 변수 선언 -----
bool _blnResult = false;
//==================================================================
// (2017.11.01) 해피포인트 제휴할인 선리딩 처리를 위한 함수 오버로딩
//==================================================================
#region
#region (_strDiv) ''() .
if (_strDiv == null)
{
// 해피포인트 카드 번호 표시 -----
txtCardNo.Text = _strHappyPointCardNo;
}
#endregion
#region (_strDiv) '' .
else if (((Cosmos.UI.CsmButton)_strDiv) == btnSearch)
{
// 해피포인트 카드 번호 설정 -----
txtCardNo.Value = _strHappyPointCardNo;
// 해피포인트 조회 함수 호출 -----
_blnResult = SearchTxtInPut(null);
}
#endregion
#region (_strDiv) '' .
else if (((Cosmos.UI.CsmButton)_strDiv) == btnEnter)
{
// 해피포인트 카드 번호 설정 -----
txtCardNo.Value = _strHappyPointCardNo;
// 해피포인트 등록 버튼 클릭 이벤트 호출 -----
btnProc_Click(btnEnter, null);
}
#endregion
#endregion
// 리턴값 설정 -----
return _blnResult;
}
#endregion
/// <summary>
/// 해피포인트 정보 출력 처리
/// </summary>
/// <param name="nFlowMode"></param>
/// <returns></returns>
private bool PrintTxtInPut()
{
try
{
if (txtUsablePoint.Text == "") return false;
Column.TR_ETC.DATA cEtcItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { });
// 해피포인트 정보 출력
ISaleCompleteUs cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
cSaleComplete.ExecuteInCardCpnReceipt(cEtcItem, m_dtGridList);
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;
}
#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
{
if (bNotDoubleClik) return;
bNotDoubleClik = true;
switch (sDevice)
{
case PosConst.OPOS_DEVICE.MSR:
this.Invoke(new EventHandler(OnMSREvent));
break;
case PosConst.OPOS_DEVICE.SCANNER:
this.Invoke(new EventHandler(OnScannerEvent));
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);
bNotDoubleClik = false;
}
bNotDoubleClik = false;
}
/// <summary>
/// MSR Event
/// </summary>
/// <param name="source"></param>
/// <param name="e"></param>
private void OnMSREvent(object source, EventArgs e)
{
try
{
string sMsrData = m_cDevStatus.Msr.Track2Data;
if (sMsrData.Length > 0)
{
m_sInEncData = "";
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP;
m_sInPutData = sMsrData;
txtCardNo.Value = m_sInPutData.Length > 16 ? m_sInPutData.Substring(0, 16) : m_sInPutData;
txtEditBox_EditBoxKeyDownEvent(txtCardNo, PosKey.MENU_KEY.ENTER);
}
}
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="source"></param>
/// <param name="e"></param>
private void OnScannerEvent(object source, EventArgs e)
{
try
{
string sScanData = m_cDevStatus.Scanner.DataLabel;
if (sScanData.Length > 0)
{
m_sInEncData = "";
m_sInPutData = sScanData;
if (m_sInPutData.Length > 16 && CmUtil.IsNumber(m_sInPutData.Substring(16, 1)) == false)
{
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_MOBILE_SWIP;
txtCardNo.Value = m_sInPutData.Substring(0, 16);
}
else
{
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_KEYIN;
txtCardNo.Value = m_sInPutData;
}
txtEditBox_EditBoxKeyDownEvent(txtCardNo, PosKey.MENU_KEY.ENTER);
}
}
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 bool IsCellularPhoneNumber(string sInputData)
{
bool bRet = false;
try
{
if (sInputData.Length == 10 || sInputData.Length == 11)
{
if (sInputData.StartsWith("010") == true || sInputData.StartsWith("011") == true || sInputData.StartsWith("017") == true ||
sInputData.StartsWith("016") == true || sInputData.StartsWith("018") == true || sInputData.StartsWith("019") == true)
{
bRet = true;
}
}
}
catch(Exception ex)
{
bRet = false;
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
return bRet;
}
/// <summary>
/// 카드 번호 암호화
/// </summary>
/// <param name="sInData"></param>
/// <param name="sInMaskData"></param>
/// <param name="sInEncData"></param>
/// <returns></returns>
private bool EncryptedCardNo(string sInData, ref string sInMaskData, ref string sInEncData)
{
string sEncData = sInData;
bool bRet = false;
try
{
UnRegIcCallback(); // IC리더 콜백 해지
//#20170913 현금영수증, 포인트카드 마스킹 미적용 start
// "0"인 경우 마스킹 미처리
//기존
//sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData).Trim();
//변경
sEncData = m_cDeviceICReader.GetEncryptedCardNo(sInData, "0").Trim();
//#20170913 현금영수증, 포인트카드 마스킹 미적용 end
if (CmUtil.MidH(sEncData, 0, 2) == "00")
{
sInEncData = CmUtil.MidH(sEncData, 2, 512).Trim(); // 암호화 데이터
sInMaskData = CmUtil.MidH(sEncData, 514, sEncData.Length - 514).Trim(); // 마스킹 데이터
//#20170913 현금영수증, 포인트카드 마스킹 미적용 start
sInMaskData = CmUtil.MidH(sInMaskData, 0, 6) + "********";
//#20170913 현금영수증, 포인트카드 마스킹 미적용 end
bRet = true;
}
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);
}
if (txtCardNo.ReadOnly == false)
{
if (txtCardNo.Value == "") tmrIcCard.Enabled = true; // IC리더 콜백 설정
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
return bRet;
}
/// <summary>
/// IC 카드 정보 입력 처리
/// </summary>
/// <returns></returns>
private bool GetIcCardData(bool bCancelCallBack)
{
string sRsvStr = "";
try
{
tmrIcCard.Enabled = false;
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");
if (bCancelCallBack == true) UnRegIcCallback(); // IC리더 콜백 해지
txtCardNo.Value = "";
ClearCardInfo(); // 카드 입력 정보 클리어
if (m_cDeviceICReader.GetCardInfo_ICReader(PosConst.IC_READER_TRAN_TYPE.POINT, (int)m_cTrnStatus.Head.NetSaleAmt, ref sRsvStr) == true)
{
if (CmUtil.MidH(sRsvStr, 0, 2) == "00")
{
m_sInEncData = CmUtil.MidH(sRsvStr, 6, 512).Trim();
m_sInMaskData = CmUtil.MidH(sRsvStr, 1030, 37).Trim();
m_sServiceCode = CmUtil.MidH(sRsvStr, 1067, 5).Trim();
m_sInPutData = m_sInMaskData;
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP;
txtCardNo.Value = m_sInPutData.Length > 16 ? m_sInPutData.Substring(0, 16) : m_sInPutData;
//tmrIcCard.Enabled = true; // IC리더 콜백 설정
return true;
}
}
if (txtCardNo.Value == "") tmrIcCard.Enabled = true; // IC리더 콜백 설정
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0321);
}
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 sRsvStr);
//////////////////////////////////////////////////////////////////////////////////
}
return false;
}
/// <summary>
/// RF 카드 정보 입력 처리
/// </summary>
/// <returns></returns>
private bool GetRfCardData()
{
string sRsvStr = "";
try
{
txtCardNo.Value = "";
ClearCardInfo(); // 카드 입력 정보 클리어
//카드 정보 입력
if (m_cDeviceICReader.GetRfCreditCardInfo("1", m_cTrnStatus.Head.NetSaleAmt.ToString(), "", "", "", ref sRsvStr) == false)
{
if (sRsvStr != "") WinManager.ErrorMessage(sRsvStr);
return false;
}
m_sInEncData = CmUtil.MidH(sRsvStr, 2, 512).Trim();
m_sInMaskData = CmUtil.MidH(sRsvStr, 514, 40).Trim();
m_sServiceCode = CmUtil.MidH(sRsvStr, 554, 5).Trim();
m_sInPutData = m_sInMaskData;
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF;
txtCardNo.Value = m_sInPutData.Length > 16 ? CmUtil.MidH(m_sInPutData, 0, 16) : m_sInPutData;
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);
}
finally
{
// 여전법 대응////////////////////////////////////////////////////////////////////
CmUtil.ZeroFillClear(ref sRsvStr);
//////////////////////////////////////////////////////////////////////////////////
}
return false;
}
/// <summary>
/// POP 카드 정보 입력 처리
/// </summary>
/// <returns></returns>
private bool GetPopCardData()
{
string sRsvStr = "";
try
{
txtCardNo.Value = "";
ClearCardInfo(); // 카드 입력 정보 클리어
if ( m_cDeviceICReader.RfPrepaidCardInfo(ref sRsvStr) == false)
{
if (sRsvStr != "") WinManager.ErrorMessage(sRsvStr);
return false;
}
if (sRsvStr.StartsWith("T") == true)
{
m_sInPutData = sRsvStr.Substring(7, 16).Trim();
}
else if (sRsvStr.StartsWith("E") == true)
{
m_sInPutData = sRsvStr.Substring(1, 20).Trim();
}
else
{
return false;
}
bool bRet = EncryptedCardNo(m_sInPutData, ref m_sInMaskData, ref m_sInEncData);
if (bRet == true)
{
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF;
txtCardNo.Text = m_sInPutData;
}
return bRet;
//UnRegIcCallback(); // IC리더 콜백 해지
//string sEncData = m_cDeviceICReader.GetEncryptedCardNo(m_sInPutData).Trim();
//if (CmUtil.MidH(sEncData, 0, 2) == "00")
//{
// m_sInEncData = CmUtil.MidH(sEncData, 2, 512).Trim(); // 암호화 데이터
// m_sInMaskData = CmUtil.MidH(sEncData, 514, sEncData.Length - 514).Trim(); // 마스킹 데이터
// m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_RF;
// txtCardNo.Text = m_sInPutData;
// return true;
//}
//else
//{
// //암호화 처리 실패!
// UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
// System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "Fail =>" + m_sInPutData);
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0280);
//}
//if (txtCardNo.ReadOnly == false) tmrIcCard.Enabled = true; // IC리더 콜백 설정
}
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 sRsvStr);
//////////////////////////////////////////////////////////////////////////////////
}
return false;
}
/// <summary>
/// 전화번호 입력 처리
/// </summary>
/// <returns></returns>
private bool GetPinPadData()
{
try
{
txtCardNo.Value = "";
ClearCardInfo(); // 카드 입력 정보 클리어
string sRsvStr = "";
if (m_cDeviceSignPad.GetMsg_SignPad(false, MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0324), ref sRsvStr) == false)
{
//WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0321);
return false;
}
txtCardNo.Value = sRsvStr;
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;
}
#endregion
private void gridList_Enter(object sender, EventArgs e)
{
padInPut.SetActiveFocus();
}
private void lblCardNo_MouseDown(object sender, MouseEventArgs e)
{
//if (e.Button == System.Windows.Forms.MouseButtons.Right)
//{
// m_cDevStatus.Scanner.DataLabel = "8231124183433925%";
// OnScannerEvent(null, null);
//}
}
//#13753 POS MOT음성 기능 추가 개발요청 start,phj
public bool SetPlayMotMsg(string sMsgTp, string sMsgFlag, string sSeqNo)
{
try
{
DataTable dtHead = m_cDataCommon.SelectMOT(PosMst.MST_MOT_MSG.TABLE_NAME, sMsgTp, sMsgFlag, sSeqNo);
if (dtHead != null && dtHead.Rows.Count > 0)
{
// 음성 사용 유무(0:미사용, 1:사용)
if (PosMstManager.GetPosOption(POS_OPTION.OPT309) == "2")
{
DataRow dr = dtHead.Rows[0];
if (CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SOUND_FILE_DIV) == "01") // 00(없음), 01(WAVE), 02(TTS)
{
string sFilePath = BaseCom.NxCDPPath + PosConst.MST_IMG_PATH.CDP_COM + CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SOUND_FILE_NM);
CmUtil.PlaySound(sFilePath);
}
else if (CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.SOUND_FILE_DIV) == "02") // 00(없음), 01(WAVE), 02(TTS)
{
CmUtil.SpeakByTTSEngine(m_cPosStatus.Base.Country, CmUtil.GetDataRowStr(dr, PosMst.MST_MOT_MSG.DATA.TTS_DSCRP), 150);
}
}
}
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;
}
}
//#13753 POS MOT음성 기능 추가 개발요청 end,phj
//#20180413 웰컴카드 신규기능 추가 start, 20180621
#region
/// <summary>
/// 웰컴카드 발급 버튼
/// </summary>
private bool WelcomeCard_Issue(string sCardNo = "")
{
string sRet = UserCom.RST_ERR;
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return false;
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return false;
if (PosMstManager.GetPosOption(POS_OPTION.OPT516) != "1")
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0790);
return false;
}
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[WelcomeCard_Issue] WELCOMECARD_ISSUE Open! ");
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_WELCOMECARD_ISSUE, PosKey.MENU_KEY.WELCOMECARD_ISSUE, "2", "", "false" });
if (sRet != UserCom.RST_OK)
{
return false;
}
else
{
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;
}
}
#endregion
//#20180413 웰컴카드 신규기능 추가 end, 20180621
#region
/// <summary>
/// ZeroFill 초기화
/// </summary>
private void InDataToZeroFill()
{
try
{
//여전법 대응!
//////////////////////////////////////////////////////////////////////////////////
CmUtil.ZeroFillClear(ref m_sInPutData);
CmUtil.ZeroFillClear(ref m_sInEncData);
CmUtil.ZeroFillClear(ref m_sInMaskData);
//////////////////////////////////////////////////////////////////////////////////
txtCardNo.Value = string.Empty;
}
catch (Exception) { }
}
#endregion
#region IC리더
/// <summary>
/// IC리더 콜백 설정
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tmrIcCard_Tick(object sender, EventArgs e)
{
try
{
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", tmrIcCard.Tag.ToString());
if (m_cDevStatus.ICReader.UseYn != true) // 여전법 인증여부(0:MSR, 1:IC)
{
tmrIcCard.Enabled = false;
return;
}
if (tmrIcCard.Tag == null || tmrIcCard.Tag.ToString() == "")
{
// IC리더 콜백 설정
if (bNotDoubleClik) return;
tmrIcCard.Enabled = false;
//#20170918 IC 콜백 함수 변경 start
//포인트창에서 해피제휴 신용카드 리딩시 IC 우선 거래로 인해 '카드를 읽혀 주세요' 팝업 나오는 현상 수정.
//기존
m_cDeviceICReader.RegIcCallback(delegateReader);
//변경
//string sApprID = PosMstManager.GetMstVan(ItemConst.TR_ITEM_ID.CREDITCARD_ITEM, ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD, PosMst.MST_VAN.DATA.APPR_ID);
//m_cDeviceICReader.RegIcCallbackCardInfo(sApprID, m_cDataService.IntParse(txtPayAmt.Text), delegateReaderCardInfo);
//#20170918 IC 콜백 함수 변경 end
}
else if (tmrIcCard.Tag.ToString() == "MSR" )
{
// MSR 카드 읽기
tmrIcCard.Enabled = false;
tmrIcCard.Tag = "";
tmrIcCard.Interval = 500;
bNotDoubleClik = false;
txtEditBox_EditBoxKeyDownEvent(txtCardNo, PosKey.MENU_KEY.ENTER);
tmrIcCard.Enabled = true;
}
else if (tmrIcCard.Tag.ToString() == "IC")
{
// IC리더 카드 읽기
tmrIcCard.Enabled = false;
tmrIcCard.Tag = "";
tmrIcCard.Interval = 500;
bNotDoubleClik = false;
btnProc_Click(btnIcCard, null);
}
//#20170918 IC 콜백 함수 변경 start
/*
//포인트창에서 해피제휴 신용카드 리딩시 IC 우선 거래로 인해 '카드를 읽혀 주세요' 팝업 나오는 현상 수정.
else if (tmrIcCard.Tag.ToString() == "ICREADER")
{
// IC리더 카드 읽기(CardInfo)
tmrIcCard.Enabled = false;
tmrIcCard.Tag = "";
tmrIcCard.Interval = 500;
bNotDoubleClik = false;
}
*/
//#20170918 IC 콜백 함수 변경 end
else
tmrIcCard.Enabled = false;
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
delegate void DelegateIcReaderCallBack(int rc, StringBuilder str);
/// <summary>
/// IC리더 콜백 함수
/// </summary>
/// <param name="num"></param>
/// <param name="str"></param>
public void OnIcReaderCallBack(int num, StringBuilder str)
{
try
{
if (txtCardNo.InvokeRequired)
{
DelegateIcReaderCallBack d = new DelegateIcReaderCallBack(OnIcReaderCallBack);
this.Invoke(d, new object[] { num, str });
}
else
{
if (bNotDoubleClik) return;
bNotDoubleClik = true;
if (num == 1)
{
// IC 카드
tmrIcCard.Tag = "IC";
tmrIcCard.Interval = 100;
}
else
{
// MSR 카드
if (str.ToString().StartsWith("EN") == true)
{
ClearCardInfo(); // 카드 입력 정보 클리어
m_sInEncData = CmUtil.MidH(str.ToString(), 0, 512).Trim();
m_sInMaskData = CmUtil.MidH(str.ToString(), 512, 40).Trim();
m_sInPutData = m_sInMaskData;
m_sInPutType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP;
txtCardNo.Value = m_sInPutData;
tmrIcCard.Tag = "MSR";
tmrIcCard.Interval = 100;
}
else
{
tmrIcCard.Interval = 500;
}
}
tmrIcCard.Enabled = true;
bNotDoubleClik = false;
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
bNotDoubleClik = false;
}
}
/// <summary>
/// IC리더 콜백 해지
/// </summary>
private void UnRegIcCallback()
{
try
{
if (m_cDevStatus.ICReader.UseYn == true) // 여신전문금융업법 적용여부 체크
{
tmrIcCard.Enabled = false;
//#20170918 IC 콜백 함수 변경 start
//포인트창에서 해피제휴 신용카드 리딩시 IC 우선 거래로 인해 '카드를 읽혀 주세요' 팝업 나오는 현상 수정.
//기존
m_cDeviceICReader.UnRegIcCallback();
//변경
//m_cDeviceICReader.UnRegIcCallbackCardInfo();
//#20170918 IC 콜백 함수 변경 end
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
private void tmrDateTime_Tick(object sender, EventArgs e)
{
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
//고객 구매이력 정보 표시 시점에 상단 MOT 표시
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180531
//포인트창 닫히는 시점에 안보이도록 수정 - 불필요해서 소스 주석
/*
if (pnlBuyHistMot.Visible == true)
{
TimeSpan Ti = DateTime.Now - BuyHistTime;
if (Ti.Seconds > 3)
{
pnlBuyHistMot.Visible = false;
BuyHistTime = new DateTime();
}
}
*/
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180531
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
}
//#15525 고객구매이력 수정 요청 start
//VIP 여부 안내 표시
#region VIP
private void picVip_Click(object sender, EventArgs e)
{
pnlBuyHistVip.Visible = false;
}
#endregion VIP
//#15525 고객구매이력 수정 요청 end
//#20170918 IC 콜백 함수 변경 start
//포인트창에서 해피제휴 신용카드 리딩시 IC 우선 거래로 인해 '카드를 읽혀 주세요' 팝업 나오는 현상 수정.
/*
delegate void DelegateWriteLog(int returnValue, StringBuilder returnData);
/// <summary>
/// IC리더 콜백 함수(CardInfo)
/// </summary>
/// <param name="returnValue"></param>
/// <param name="returnData"></param>
public void OnIcReaderCallBackCardInfo(int returnValue, StringBuilder returnData)
{
if (txtCardNo.InvokeRequired)
{
DelegateWriteLog d = new DelegateWriteLog(OnIcReaderCallBackCardInfo);
this.Invoke(d, new object[] { returnValue, returnData });
}
else
{
if (m_bCardInPut) return;
m_bCardInPut = true;
if (returnValue > 0)
{
string sRsvStr = returnData.ToString();
if (CmUtil.MidH(sRsvStr, 0, 2) == "00")
{
m_sCardNo = CmUtil.MidH(sRsvStr, 6, 512).Trim();
txtCardNo.Value = CmUtil.MidH(sRsvStr, 1030, 37).Trim();
m_sIcChip = CmUtil.MidH(sRsvStr, 518, 512).Trim();
if (CmUtil.MidH(sRsvStr, 4, 2).Trim() == "02")
{
m_InputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_SWIP;
}
else
{
m_InputType = PosConst.POS_VAN_MASTER.INPUT_TYPE.VAN_IC;
}
m_sServiceCode = CmUtil.MidH(sRsvStr, 1067, 5).Trim();
m_sFallDiv = CmUtil.MidH(sRsvStr, 3, 1); // == "3" ? "0" : "1";
// IC 카드(CardInfo)
tmrIcCard.Tag = "ICREADER";
tmrIcCard.Interval = 100;
tmrIcCard.Enabled = true;
m_bCardInPut = false;
}
}
}
}
*/
//#20170918 IC 콜백 함수 변경 end
#endregion
}
}