9688 lines
478 KiB
C#
9688 lines
478 KiB
C#
|
//#20180329 프린터 간헐적 미출력 증상 수정 start
|
|||
|
//출력 할때 마다 open, close 하는 부분 한번만 하도록 수정
|
|||
|
//#define PRT_OPENCLOSE //적용시 주석 해제
|
|||
|
//#20180329 프린터 간헐적 미출력 증상 수정 end
|
|||
|
|
|||
|
using System;
|
|||
|
using System.Text;
|
|||
|
using System.Collections;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Data;
|
|||
|
|
|||
|
using Cosmos.BaseFrame;
|
|||
|
using Cosmos.UserFrame;
|
|||
|
using Cosmos.ServiceProvider;
|
|||
|
using Cosmos.Common;
|
|||
|
using Cosmos.CommonManager;
|
|||
|
using System.Windows.Forms;
|
|||
|
|
|||
|
using Newtonsoft.Json;
|
|||
|
|
|||
|
namespace Cosmos.Win
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 판매화면(상품등록) 모듈 클래스
|
|||
|
/// </summary>
|
|||
|
public class SaleMainProcess
|
|||
|
{
|
|||
|
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 IDatabaseSQL m_cSqlDbService = null; // 데이터베이스 관리
|
|||
|
private IDataProcessUs m_cDataService = null; // 거래데이터 합계금액 계산 및 관리
|
|||
|
private ISalePluItemUs m_cPluService = null; // 판매 등록 관리
|
|||
|
private IMasterUs m_cMstService = null; // 마스터 인터페이스
|
|||
|
private ICustDisplayUs m_cCustDisplay = null; // 고객디스플레이 관리
|
|||
|
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
|
|||
|
private ISaleCompleteUs m_cSaleComplete = null; // 거래 완료처리
|
|||
|
private IMasterUs m_cMstPayDcService = null; // 결제,할인 마스터
|
|||
|
private ITableUs m_cTableSvr = null; // 테이블 서비스 관리
|
|||
|
private IServiceUs m_cOrderSheetSvr = null; // 주방 주문서
|
|||
|
|
|||
|
private INetworkHttp m_cNetworkHttp = null;
|
|||
|
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
private IAirPortTran m_cAirPortTran = null;
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 세트상품 그룹 마스터
|
|||
|
/// </summary>
|
|||
|
public DataTable m_dtSetMenuGroup = new DataTable();
|
|||
|
/// <summary>
|
|||
|
/// 세트상품 상세 마스터
|
|||
|
/// </summary>
|
|||
|
public DataTable m_dtSetMenuDetail = new DataTable();
|
|||
|
|
|||
|
///// <summary>
|
|||
|
///// 강제 부가메뉴 그룹 마스터
|
|||
|
///// </summary>
|
|||
|
//public DataTable m_dtForceSubMenuGroup = new DataTable();
|
|||
|
///// <summary>
|
|||
|
///// 강제 부가메뉴 상세 마스터
|
|||
|
///// </summary>
|
|||
|
//public DataTable m_dtForceSubMenuDetail = new DataTable();
|
|||
|
|
|||
|
private ICashdrawerUs m_cCashDrawer = null;//170811 dkshin 돈통 열리는 시점 변경(현금영수증 전)
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 생성자
|
|||
|
/// </summary>
|
|||
|
public SaleMainProcess()
|
|||
|
{
|
|||
|
m_cPosStatus = (PosStatus)StateObject.POS;
|
|||
|
m_cTrnStatus = (TranStatus)StateObject.TRAN;
|
|||
|
m_cDevStatus = (DeviceStatus)StateObject.DEVICE;
|
|||
|
|
|||
|
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
|
|||
|
m_cDataService = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE);
|
|||
|
m_cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM);
|
|||
|
m_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER);
|
|||
|
m_cCustDisplay = (ICustDisplayUs)sManager.InitServiceInstance(ServiceLists.ASV_CUSTDISPLAY.DLL, ServiceLists.ASV_CUSTDISPLAY.CUST_DISPLAY);
|
|||
|
m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
|
|||
|
m_cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
|
|||
|
m_cMstPayDcService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.PAY_DC_MASTER);
|
|||
|
m_cTableSvr = (ITableUs)sManager.InitServiceInstance(ServiceLists.BSV_TABLE.DLL, ServiceLists.BSV_TABLE.TABLE_SERVICE);
|
|||
|
m_cOrderSheetSvr = (IServiceUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.POS_RECEIPT_ORDERSHEET);
|
|||
|
m_cCashDrawer = (ICashdrawerUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_CASHDRAWER);
|
|||
|
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
m_cAirPortTran = (IAirPortTran)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.AIRPORT_TRAN);
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
m_cNetworkHttp = (INetworkHttp)sManager.InitServiceInstance(ServiceLists.AGENT_NETWORK.DLL, ServiceLists.AGENT_NETWORK.NETWORK_HTTP);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 판매 기능키 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey">기능키</param>
|
|||
|
/// <param name="sInPutData">입력데이터</param>
|
|||
|
/// <param name="sSelRow">선택그리드행</param>
|
|||
|
/// <param name="sEtcData">기타</param>
|
|||
|
/// <returns></returns>
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 start
|
|||
|
//기존
|
|||
|
//public bool ExecuteSaleMainProcess(string sMenuKey, string sInPutData, string sSelRow, string sEtcData)
|
|||
|
//변경
|
|||
|
public bool ExecuteSaleMainProcess(string sMenuKey, string sInPutData, string sSelRow, string sEtcData, bool sMenuKeyAuth = false)
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 end
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.ScreenSaverTime = ""; //화면보호기 대기시간 설정
|
|||
|
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 start
|
|||
|
//기존
|
|||
|
//if (WinBasic.CheckMenuKeyAuth(sMenuKey) == false) return false; // 기능키 판매원 권한 체크
|
|||
|
//변경
|
|||
|
|
|||
|
if (sMenuKeyAuth == false)
|
|||
|
{
|
|||
|
if (WinBasic.CheckMenuKeyAuth(sMenuKey) == false) return false; // 기능키 판매원 권한 체크
|
|||
|
}
|
|||
|
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 end
|
|||
|
|
|||
|
//string sMngAuth = PosMstManager.GetMstPicAuth(m_cPosStatus.Base.CashierNo + sMenuKey);
|
|||
|
|
|||
|
//switch (sMngAuth)
|
|||
|
//{
|
|||
|
// case PosConst.MNG_AUTH_DIV.NON_PERMISSION:
|
|||
|
// WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0308), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0505), false);
|
|||
|
// return false;
|
|||
|
// case PosConst.MNG_AUTH_DIV.PERMISSION:
|
|||
|
// break;
|
|||
|
// case PosConst.MNG_AUTH_DIV.SUPERVISOR:
|
|||
|
// if (WinBasic.ShowForm(new string[] { FormManager.FORM_LOG_ON, PosKey.MENU_KEY.REGISTER_ADMIN }) == UserCom.RST_ERR) return false;
|
|||
|
// //string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_CASHIER_INPUT, "Supervisor" });
|
|||
|
// //if (sRet != UserCom.RST_OK)
|
|||
|
// //{
|
|||
|
// // return false;
|
|||
|
// //}
|
|||
|
// break;
|
|||
|
//}
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_WAIT) // 판매대기 모드
|
|||
|
{
|
|||
|
if (WaitSaleDataCheck(sMenuKey) == false)
|
|||
|
return false;
|
|||
|
|
|||
|
switch (sMenuKey)
|
|||
|
{
|
|||
|
case PosKey.MENU_KEY.REGISTER_PLU_ITEM: // 상품등록
|
|||
|
bRet = RegisterPluItem(sSelRow, sEtcData, sInPutData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.GIFT_SALE:
|
|||
|
case PosKey.MENU_KEY.PREPAID_CARD:
|
|||
|
RegisterSellGift(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.RETURN_ITEM:
|
|||
|
RegisterReturnItem();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.TRADE_STOP: //거래중지
|
|||
|
bRet = TradeStop();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SALE_LOSS: //판매로스
|
|||
|
bRet = RegSaleLosss(sSelRow);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ORDER_COMPLETED: //주문완료
|
|||
|
bRet = OrderCompleted();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SEARCH: //상품 조회
|
|||
|
bRet = ItemSearch();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HOLD_DEAL: //보류
|
|||
|
bRet = HoldDeal();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CASH_APPROVAL_LATER: //사후 현금영수증
|
|||
|
{
|
|||
|
PayCashbill(sMenuKey);
|
|||
|
break;
|
|||
|
}
|
|||
|
case PosKey.MENU_KEY.LAST_DEAL_PRINT: //직전영수증 출력
|
|||
|
bRet = LastDealPrint();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.RESERVATIONS_REGISTER: //예약등록
|
|||
|
{
|
|||
|
RegSaleReservations();
|
|||
|
break;
|
|||
|
}
|
|||
|
case PosKey.MENU_KEY.RESERVATION_COMPLETED: //예약완료
|
|||
|
{
|
|||
|
RegSaleReservedFinish();
|
|||
|
break;
|
|||
|
}
|
|||
|
case PosKey.MENU_KEY.RECEIPT_REPRINT: //영수증 재발행
|
|||
|
{
|
|||
|
SaleReReceiptRePrint();
|
|||
|
break;
|
|||
|
}
|
|||
|
case PosKey.MENU_KEY.HP_GIFT_CHARGED: //해피 기프트 충전
|
|||
|
{
|
|||
|
PayHappyGift(PosKey.MENU_KEY.HP_GIFT_CHARGED);
|
|||
|
break;
|
|||
|
}
|
|||
|
case PosKey.MENU_KEY.RETURN_RECEIPT: //영수증 반품
|
|||
|
SaleRefundReceipt();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HPP_APPROVAL_LATER: // 추후적립
|
|||
|
HappyPointAfterSave();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HAPPY_ORDERS: // 해피오더
|
|||
|
HappyOrder();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HP_REGULAR_CUST: // 단골매장등록
|
|||
|
HappyPointRegularCust();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.EXCHANGE: // 환전
|
|||
|
OpenManualCashdrawer();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HAPPY_BUZ_SEARCH: // 해피버즈 현황 조회
|
|||
|
HappyBuzzSearch();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CHECK_SEARCH: // 수표조회
|
|||
|
PayCheck(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.GIFT_CARD_SCH: // 상품권조회
|
|||
|
PayGiftSearch(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.MOBILE_COUPON_SCH: // 모바일쿠폰조회
|
|||
|
PayMobileCouponSearch(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ONLINE_COUPONS_SCH: // 온라인쿠폰조회(중국)
|
|||
|
PayOnLineCoupon(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.BRITHDAY_CANDLE: // 생일초계산
|
|||
|
BrithDayCandle(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ORDER_EXIT: // 주문종료
|
|||
|
bRet = OrderCancelExit();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.EDIT_CUST_CNT: // 고객수 수정
|
|||
|
bRet = EditCustCnt();
|
|||
|
break;
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
|
|||
|
//기존
|
|||
|
/*
|
|||
|
//17.05.18 dkshin 쇼킹박스 추가
|
|||
|
case PosKey.MENU_KEY.SHOCKING_BOX: // 쇼킹박스 상품 불러오기
|
|||
|
bRet = ShockingBox(sEtcData);
|
|||
|
break;
|
|||
|
*/
|
|||
|
|
|||
|
//변경
|
|||
|
case PosKey.MENU_KEY.SHOCKING_BOX:
|
|||
|
case PosKey.MENU_KEY.ITEMINFO_PRINT:
|
|||
|
bRet = ShockingBox(sMenuKey, sEtcData);
|
|||
|
break;
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
|
|||
|
//20171013 dkshin 해피기프트(신) IC/RF 충전 및 승인
|
|||
|
case PosKey.MENU_KEY.HAPPY_GIFTCARD_CHARGE: // 해피기프트(신) 충전
|
|||
|
//HappyGiftCardRecharge(sMenuKey);
|
|||
|
HappyGiftNewRecharge(sMenuKey);
|
|||
|
break;
|
|||
|
// 지움 버튼 클릭 시 오류POP-UP 수정(2017.07.10)
|
|||
|
case PosKey.MENU_KEY.CLEAR: // 지움
|
|||
|
// 키보드 화살표 키 클릭 시 오류POP-UP 수정(2017.07.14)
|
|||
|
case PosKey.MENU_KEY.SCANKEY_UP_ARROW:
|
|||
|
case PosKey.MENU_KEY.SCANKEY_DOWN_ARROW:
|
|||
|
bRet = true;
|
|||
|
break;
|
|||
|
//#20171227, 예약증 양식 출력 Start
|
|||
|
case PosKey.MENU_KEY.RESERVATION_FORM_PRINT: // 예약증 양식 출력
|
|||
|
bRet = ReservationFormPrint();
|
|||
|
break;
|
|||
|
//#20171227, 예약증 양식 출력 End
|
|||
|
|
|||
|
//#14341 PB서대문행복-판매화면 [관리]-조회에서 교통카드 조회 기능 사용불가 start
|
|||
|
case PosKey.MENU_KEY.TMONEY_SEARCH: //교통카드 잔액조회
|
|||
|
PayTMoneyCashBee(new string[] { FormManager.FORM_PAY_TMONEY, PosKey.MENU_KEY.T_MONEY, "", "S" });
|
|||
|
break;
|
|||
|
//#14341 PB서대문행복-판매화면 [관리]-조회에서 교통카드 조회 기능 사용불가 end
|
|||
|
|
|||
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|||
|
case PosKey.MENU_KEY.WELCOMECARD_ISSUE: // 웰컴카드 발급화면
|
|||
|
bRet = WelcomeCard_Issue(sMenuKey, "1");
|
|||
|
break;
|
|||
|
|
|||
|
case PosKey.MENU_KEY.WELCOMECARD_HPAPP_REGISTER: // 해피앱 고객등록
|
|||
|
bRet = WelcomeCard_Issue(sMenuKey, "1");
|
|||
|
break;
|
|||
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|||
|
|
|||
|
//*********************************************************************
|
|||
|
// (2017.11.01) 해피포인트 제휴할인 선리딩 처리를 위한 기능키 클릭 처리
|
|||
|
//---------------------------------------------------------------------
|
|||
|
// - 만약 해피포인트 및 제휴할인 카드가 등록되어 있을 경우
|
|||
|
// 등록된 역순으로 취소 처리한다.
|
|||
|
//*********************************************************************
|
|||
|
#region 해피포인트 제휴할인 선리딩 처리를 위한 기능키 클릭 처리
|
|||
|
case PosKey.MENU_KEY.COOPERATION_CARD_CANCEL:
|
|||
|
//*** MoonSeokWoo 2017.12.12 Add
|
|||
|
//폼 획득
|
|||
|
frmSaleMain fSalMain = (frmSaleMain)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//*** MoonSeokWoo 2017.12.12 End
|
|||
|
|
|||
|
// 만약 해피포인트 카드 번호 및 제휴할인 카드 번호가 존재할 경우 -----
|
|||
|
if (m_cPosStatus.Sale.strHappyPointCardNo != "" || m_cPosStatus.Sale.strMobileUnityCardNo != "")
|
|||
|
{
|
|||
|
if (m_cPosStatus.Sale.strPriorReading_Title[1] != null && m_cPosStatus.Sale.strPriorReading_Title[1] != "")
|
|||
|
{
|
|||
|
// 만약 리딩 타이틀 배열 변수에 1번째 리딩 항목이 존재할 경우 -----
|
|||
|
if (m_cPosStatus.Sale.strPriorReading_Title[1] == "HPC")
|
|||
|
{
|
|||
|
// 해피포인트 카드 변수 클리어 -----
|
|||
|
m_cPosStatus.Sale.strHappyPointCardNo = "";
|
|||
|
|
|||
|
//#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 start
|
|||
|
m_cPosStatus.Sale.strEmpInfo = "";
|
|||
|
//#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 end
|
|||
|
}
|
|||
|
else { m_cPosStatus.Sale.strMobileUnityCardNo = ""; }
|
|||
|
|
|||
|
fSalMain.AllianceCardInit(false
|
|||
|
, m_cPosStatus.Sale.strPriorReading_Title[1] == "HPC" ? MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0789) : m_cPosStatus.Sale.strPriorReading_Title[1]
|
|||
|
, m_cPosStatus.Sale.strPriorReading_Title[1] == "HPC" ? true : false);
|
|||
|
m_cPosStatus.Sale.strPriorReading_Title[1] = "";
|
|||
|
}
|
|||
|
else if (m_cPosStatus.Sale.strPriorReading_Title[0] != null && m_cPosStatus.Sale.strPriorReading_Title[0] != "")
|
|||
|
{
|
|||
|
// 만약 리딩 타이틀 배열 변수에 0번째 리딩 항목이 존재할 경우 -----
|
|||
|
if (m_cPosStatus.Sale.strPriorReading_Title[0] == "HPC")
|
|||
|
{
|
|||
|
// 해피포인트 카드 변수 클리어 -----
|
|||
|
m_cPosStatus.Sale.strHappyPointCardNo = "";
|
|||
|
|
|||
|
//#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 start
|
|||
|
m_cPosStatus.Sale.strEmpInfo = "";
|
|||
|
//#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 end
|
|||
|
}
|
|||
|
else { m_cPosStatus.Sale.strMobileUnityCardNo = ""; }
|
|||
|
fSalMain.AllianceCardInit(false
|
|||
|
, m_cPosStatus.Sale.strPriorReading_Title[0] == "HPC" ? MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0789) : m_cPosStatus.Sale.strPriorReading_Title[0]
|
|||
|
, m_cPosStatus.Sale.strPriorReading_Title[0] == "HPC" ? true : false);
|
|||
|
|
|||
|
m_cPosStatus.Sale.strPriorReading_Title[0] = "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
#endregion
|
|||
|
default:
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 start
|
|||
|
//기존
|
|||
|
/*
|
|||
|
if (WinSale.ExecuteBinessRun(sMenuKey) == UserCom.RST_IGNORE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0020); // 판매 대기중에 처리 할수 없는 기능 입니다.
|
|||
|
}
|
|||
|
*/
|
|||
|
//변경
|
|||
|
|
|||
|
if (WinSale.ExecuteBinessRun(sMenuKey, sMenuKeyAuth) == UserCom.RST_IGNORE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0020); // 판매 대기중에 처리 할수 없는 기능 입니다.
|
|||
|
}
|
|||
|
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 end
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING) // 상품등록 중 모드
|
|||
|
{
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
|
|||
|
if (m_cTrnStatus.Head.ShockingBoxStat == "1" && m_cTrnStatus.Head.ShockingBoxTradeKind == ItemConst.TRAN_KIND.HPO_LOG.LANDOM_BOX
|
|||
|
&& sMenuKey != PosKey.MENU_KEY.TRADE_STOP)
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0054));
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
|
|||
|
|
|||
|
switch (sMenuKey)
|
|||
|
{
|
|||
|
case PosKey.MENU_KEY.REGISTER_PLU_ITEM: // 상품등록
|
|||
|
bRet = RegisterPluItem(sSelRow, sEtcData, sInPutData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CANCEL_ITEM: // 지정취소
|
|||
|
bRet = CancelPluItem(sSelRow);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.QUANTITY: // 수량변경
|
|||
|
case PosKey.MENU_KEY.QTY_PLUS:
|
|||
|
case PosKey.MENU_KEY.QTY_MINUS:
|
|||
|
bRet = QtyChangePluItem(sMenuKey, sSelRow, sInPutData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ADD_MENU: // 부가메뉴
|
|||
|
bRet = RegisterChoiceSubMenu(sSelRow);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.FLAVOR: // 플레이버
|
|||
|
bRet = RegisterFlavourMenu("");
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.PAYMENTS: // 결제
|
|||
|
bRet = RegisterPayment("", "");
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CASH: // 현금
|
|||
|
case PosKey.MENU_KEY.CREDIT_CARD: // 신용카드
|
|||
|
case PosKey.MENU_KEY.WECHATPAY: //위챗페이
|
|||
|
case PosKey.MENU_KEY.WECHATPAY_BAIRONG: //샤오청쉬 위챗페이-바이롱;girak.kim;2017.09.11.001
|
|||
|
case PosKey.MENU_KEY.XIAOCHENGXU_GIFTCARD: //샤오청쉬 기프트카드;girak.kim;2017.09.11.001
|
|||
|
bRet = RegisterPayment(sMenuKey, sInPutData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ITEM_DC_AMT: //단품 금액 할인
|
|||
|
case PosKey.MENU_KEY.ITEM_DC_RATE: //단품 율 할인
|
|||
|
case PosKey.MENU_KEY.FREE_DC: //서비스(무료)
|
|||
|
case PosKey.MENU_KEY.ELOVE_DC: //환경사랑DC
|
|||
|
case PosKey.MENU_KEY.ITEM_CHAGE_CPN: //제품교환권
|
|||
|
case PosKey.MENU_KEY.IN_EMP_DC: //입점매장직원할인(단품)
|
|||
|
bRet = RegisterItemDc(sMenuKey, sSelRow, sInPutData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.TRADE_STOP: //거래중지
|
|||
|
bRet = TradeStop();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.NOTAX: //NO TAX
|
|||
|
bRet = ItemNoTax(sSelRow);
|
|||
|
break;
|
|||
|
//#Rhee, 20180212 ALL NO TAX 기능 추가 Start
|
|||
|
case PosKey.MENU_KEY.ALL_NOTAX: //ALL NO TAX
|
|||
|
bRet = ItemAllNoTax();
|
|||
|
break;
|
|||
|
//#Rhee, 20180212 ALL NO TAX 기능 추가 End
|
|||
|
case PosKey.MENU_KEY.ORDER_COMPLETED: //주문완료
|
|||
|
bRet = OrderCompleted();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ITEM_MEMO: //상품메모
|
|||
|
bRet = ItemMmeo(false);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SEARCH: //상품 조회
|
|||
|
bRet = ItemSearch();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HOLD_DEAL: //보류
|
|||
|
bRet = HoldDeal();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.TAKE_IN_OUT: //TAKE_IN_OUT
|
|||
|
bRet = SetTakeInOut();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.BUNDLE_ITEM: //묶음상품/쇼킹박스
|
|||
|
bRet = BundleiTem(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.DUTCH_PAY: //더치페이
|
|||
|
bRet = DutchPay(sMenuKey, "0");
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.DUTCH_PAY_AMT: //더치페이(금액)
|
|||
|
bRet = DutchPayAmt(sMenuKey, "0");
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SET_MENU_CHANGE: // 세트메뉴 상품 변경
|
|||
|
bRet = SetMenuItemChange(sSelRow);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.FIRE_KEY: // FIRE KEY
|
|||
|
bRet = ItemMmeo(true);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.EXCHANGE: // 환전
|
|||
|
OpenManualCashdrawer();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HAPPY_BUZ_SEARCH: // 해피버즈 현황 조회
|
|||
|
HappyBuzzSearch();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CHECK_SEARCH: // 수표조회
|
|||
|
PayCheck(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.GIFT_CARD_SCH: // 상품권조회
|
|||
|
PayGiftSearch(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.MOBILE_COUPON_SCH: // 모바일쿠폰조회
|
|||
|
PayMobileCouponSearch(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ONLINE_COUPONS_SCH: //온라인쿠폰조회(중국)
|
|||
|
PayOnLineCoupon(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ORDER_PRINT: // 주문내역서 출력
|
|||
|
bRet = OrderBillPrint();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CUSTOMER_CLAIMS_LIST: // 고객 불만 등록
|
|||
|
case PosKey.MENU_KEY.REG_PVC: // PVC상자재고
|
|||
|
case PosKey.MENU_KEY.POS_ETC_RECEIPT: // 간이영수증
|
|||
|
case PosKey.MENU_KEY.RECEIPT_REPRINT: // 영수증 재발행
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0021); // 상품 등록중에 처리 할수 없는 기능 입니다
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.BRITHDAY_CANDLE: // 생일초계산
|
|||
|
BrithDayCandle(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ORDER_EXIT: // 주문종료
|
|||
|
bRet = OrderCancelExit();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.MULTI_DCITEM: // 선택 아이템 할인
|
|||
|
MultiItemDc(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.EDIT_CUST_CNT: // 고객수 수정
|
|||
|
bRet = EditCustCnt();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SALE_LOSS: //판매로스
|
|||
|
bRet = RegSaleLosss(sSelRow);
|
|||
|
break;
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
|
|||
|
//기존
|
|||
|
/*
|
|||
|
//17.05.18 dkshin 쇼킹박스 추가
|
|||
|
case PosKey.MENU_KEY.SHOCKING_BOX:
|
|||
|
bRet = ShockingBox(sEtcData);
|
|||
|
break;
|
|||
|
*/
|
|||
|
|
|||
|
//변경
|
|||
|
case PosKey.MENU_KEY.SHOCKING_BOX:
|
|||
|
case PosKey.MENU_KEY.ITEMINFO_PRINT:
|
|||
|
bRet = ShockingBox(sMenuKey, sEtcData);
|
|||
|
break;
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
|
|||
|
|
|||
|
// 지움 버튼 클릭 시 오류POP-UP 수정(2017.07.10)
|
|||
|
case PosKey.MENU_KEY.CLEAR: // 지움
|
|||
|
// 화살표 키 클릭 시 오류POP-UP 수정(2017.07.14)
|
|||
|
case PosKey.MENU_KEY.SCANKEY_UP_ARROW:
|
|||
|
case PosKey.MENU_KEY.SCANKEY_DOWN_ARROW:
|
|||
|
bRet = true;
|
|||
|
break;
|
|||
|
//#20171227, 예약증 양식 출력 Start
|
|||
|
case PosKey.MENU_KEY.RESERVATION_FORM_PRINT: // 예약증 양식 출력
|
|||
|
bRet = ReservationFormPrint();
|
|||
|
break;
|
|||
|
//#20171227, 예약증 양식 출력 End
|
|||
|
|
|||
|
//#14341 PB서대문행복-판매화면 [관리]-조회에서 교통카드 조회 기능 사용불가 start
|
|||
|
case PosKey.MENU_KEY.TMONEY_SEARCH: //교통카드 잔액조회
|
|||
|
PayTMoneyCashBee(new string[] { FormManager.FORM_PAY_TMONEY, PosKey.MENU_KEY.T_MONEY, "", "S" });
|
|||
|
break;
|
|||
|
//#14341 PB서대문행복-판매화면 [관리]-조회에서 교통카드 조회 기능 사용불가 end
|
|||
|
|
|||
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|||
|
case PosKey.MENU_KEY.WELCOMECARD_ISSUE: // 웰컴카드 발급
|
|||
|
bRet = WelcomeCard_Issue(sMenuKey, "1");
|
|||
|
break;
|
|||
|
|
|||
|
case PosKey.MENU_KEY.WELCOMECARD_HPAPP_REGISTER: // 웰컴카드 해피앱 고객등록
|
|||
|
bRet = WelcomeCard_Issue(sMenuKey, "1");
|
|||
|
break;
|
|||
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|||
|
|
|||
|
//*********************************************************************
|
|||
|
// (2017.11.01) 해피포인트 제휴할인 선리딩 처리를 위한 기능키 클릭 처리
|
|||
|
//---------------------------------------------------------------------
|
|||
|
// - 만약 해피포인트 및 제휴할인 카드가 등록되어 있을 경우
|
|||
|
// 등록된 역순으로 취소 처리한다.
|
|||
|
//*********************************************************************
|
|||
|
#region 해피포인트 제휴할인 선리딩 처리를 위한 기능키 클릭 처리
|
|||
|
case PosKey.MENU_KEY.COOPERATION_CARD_CANCEL:
|
|||
|
|
|||
|
// 만약 해피포인트 카드 번호 및 제휴할인 카드 번호가 존재할 경우 -----
|
|||
|
if (m_cPosStatus.Sale.strHappyPointCardNo != "" || m_cPosStatus.Sale.strMobileUnityCardNo != "")
|
|||
|
{
|
|||
|
if (m_cPosStatus.Sale.strPriorReading_Title[1] != null && m_cPosStatus.Sale.strPriorReading_Title[1] != "")
|
|||
|
{
|
|||
|
// 만약 리딩 타이틀 배열 변수에 1번째 리딩 항목이 존재할 경우 -----
|
|||
|
if (m_cPosStatus.Sale.strPriorReading_Title[1] == "HPC")
|
|||
|
{
|
|||
|
// 해피포인트 카드 변수 클리어 -----
|
|||
|
m_cPosStatus.Sale.strHappyPointCardNo = "";
|
|||
|
|
|||
|
//#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 start
|
|||
|
m_cPosStatus.Sale.strEmpInfo = "";
|
|||
|
//#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 end
|
|||
|
}
|
|||
|
else { m_cPosStatus.Sale.strMobileUnityCardNo = ""; }
|
|||
|
m_cPosStatus.Sale.strPriorReading_Title[1] = "";
|
|||
|
}
|
|||
|
else if (m_cPosStatus.Sale.strPriorReading_Title[0] != null && m_cPosStatus.Sale.strPriorReading_Title[0] != "")
|
|||
|
{
|
|||
|
// 만약 리딩 타이틀 배열 변수에 0번째 리딩 항목이 존재할 경우 -----
|
|||
|
if (m_cPosStatus.Sale.strPriorReading_Title[0] == "HPC")
|
|||
|
{
|
|||
|
// 해피포인트 카드 변수 클리어 -----
|
|||
|
m_cPosStatus.Sale.strHappyPointCardNo = "";
|
|||
|
|
|||
|
//#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 start
|
|||
|
m_cPosStatus.Sale.strEmpInfo = "";
|
|||
|
//#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 end
|
|||
|
}
|
|||
|
else { m_cPosStatus.Sale.strMobileUnityCardNo = ""; }
|
|||
|
m_cPosStatus.Sale.strPriorReading_Title[0] = "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
break;
|
|||
|
#endregion
|
|||
|
//#Rhee, 20180130 단품 할인 전체 취소 추가 Start
|
|||
|
case PosKey.MENU_KEY.DISCOUNT_CANCEL: //단품 금액 할인 전체 취소
|
|||
|
bRet = RegisterItemDcCancel(sMenuKey, ItemConst.PLU_DC_DIV.POS_DC, ItemConst.PLU_DC_TYPE.DC_ITEM);
|
|||
|
break;
|
|||
|
//#Rhee, 20180130 단품 할인 전체 취소 추가 End
|
|||
|
default:
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 start
|
|||
|
//기존
|
|||
|
/*
|
|||
|
if (WinSale.ExecuteBinessRun(sMenuKey) == UserCom.RST_IGNORE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0021); // 상품 등록중에 처리 할수 없는 기능 입니다
|
|||
|
}
|
|||
|
*/
|
|||
|
//변경
|
|||
|
|
|||
|
if (WinSale.ExecuteBinessRun(sMenuKey, sMenuKeyAuth) == UserCom.RST_IGNORE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0021); // 상품 등록중에 처리 할수 없는 기능 입니다
|
|||
|
}
|
|||
|
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 end
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_SET) // 세트메뉴 등록 중 모드
|
|||
|
{
|
|||
|
switch (sMenuKey)
|
|||
|
{
|
|||
|
case PosKey.MENU_KEY.REGISTER_PLU_ITEM: // 상품등록
|
|||
|
bRet = RegisterPluItem(sSelRow, sEtcData, sInPutData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.EXCHANGE: // 환전
|
|||
|
OpenManualCashdrawer();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.TRADE_STOP: // 거래중지
|
|||
|
bRet = TradeStop();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ORDER_EXIT: // 주문종료
|
|||
|
bRet = OrderCancelExit();
|
|||
|
break;
|
|||
|
// 지움 버튼 클릭 시 오류POP-UP 수정(2017.07.10)
|
|||
|
case PosKey.MENU_KEY.CLEAR: // 지움
|
|||
|
bRet = true;
|
|||
|
break;
|
|||
|
default:
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0023); // 세트메뉴 등록중에 처리 할수 없는 기능 입니다
|
|||
|
//if (WinSale.ExecuteBinessRun(sMenuKey) == UserCom.RST_IGNORE)
|
|||
|
//{
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0023); // 세트메뉴 등록중에 처리 할수 없는 기능 입니다
|
|||
|
//}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_OPT || m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_SET_OPT) // 부가메뉴 등록 중 모드
|
|||
|
{
|
|||
|
switch (sMenuKey)
|
|||
|
{
|
|||
|
//#2017122 #13238 LG 은평_은평_부가메뉴 입력 안되는 증상 start, phj
|
|||
|
//기존
|
|||
|
/*
|
|||
|
#if false //grayber@20171213 부가메뉴 등록중 일때 동작 개선 start
|
|||
|
//case PosKey.MENU_KEY.REGISTER_PLU_ITEM: // 상품등록
|
|||
|
// bRet = RegisterPluItem(sSelRow, sEtcData, sInPutData);
|
|||
|
// break;
|
|||
|
#endif //grayber@20171213 부가메뉴 등록중 일때 동작 개선 end
|
|||
|
*/
|
|||
|
//변경
|
|||
|
case PosKey.MENU_KEY.REGISTER_PLU_ITEM: // 상품등록
|
|||
|
bRet = RegisterPluItem(sSelRow, sEtcData, sInPutData);
|
|||
|
break;
|
|||
|
//#2017122 #13238 LG 은평_은평_부가메뉴 입력 안되는 증상 end, phj
|
|||
|
|
|||
|
case PosKey.MENU_KEY.CANCEL_ITEM: // 지정취소
|
|||
|
bRet = CancelPluItem(sSelRow);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.QUANTITY: // 수량변경
|
|||
|
case PosKey.MENU_KEY.QTY_PLUS:
|
|||
|
case PosKey.MENU_KEY.QTY_MINUS:
|
|||
|
bRet = QtyChangePluItem(sMenuKey, sSelRow, sInPutData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.EXCHANGE: // 환전
|
|||
|
OpenManualCashdrawer();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.TRADE_STOP: // 거래중지
|
|||
|
bRet = TradeStop();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ORDER_COMPLETED: // 주문완료
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_OPT)
|
|||
|
{
|
|||
|
bRet = OrderCompleted();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0022); // 부가메뉴 등록 중 처리 할 수 없는 기능 입니다.
|
|||
|
}
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ORDER_EXIT: // 주문종료
|
|||
|
bRet = OrderCancelExit();
|
|||
|
break;
|
|||
|
// 지움 버튼 클릭 시 오류POP-UP 수정(2017.07.10)
|
|||
|
case PosKey.MENU_KEY.CLEAR: // 지움
|
|||
|
bRet = true;
|
|||
|
break;
|
|||
|
default:
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0022); // 부가메뉴 등록 중 처리 할 수 없는 기능 입니다.
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//else if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_FLAVOUR) // 플레이버 등록 중 모드
|
|||
|
//{
|
|||
|
// switch (sMenuKey)
|
|||
|
// {
|
|||
|
// case PosKey.MENU_KEY.REGISTER_PLU_ITEM: // 상품등록
|
|||
|
// bRet = RegisterPluItem(sSelRow, sEtcData, sInPutData);
|
|||
|
// break;
|
|||
|
// case PosKey.MENU_KEY.CANCEL_ITEM: // 지정취소
|
|||
|
// bRet = CancelPluItem(sSelRow);
|
|||
|
// break;
|
|||
|
// case PosKey.MENU_KEY.QUANTITY: // 수량변경
|
|||
|
// case PosKey.MENU_KEY.QTY_PLUS:
|
|||
|
// case PosKey.MENU_KEY.QTY_MINUS:
|
|||
|
// bRet = QtyChangePluItem(sMenuKey, sSelRow, sInPutData);
|
|||
|
// break;
|
|||
|
// default:
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0033); // 플레이버 등록 중 처리 할 수 없는 기능 입니다.
|
|||
|
// break;
|
|||
|
// }
|
|||
|
//}
|
|||
|
else if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.PAY_WAIT) // 결제대기 중 모드
|
|||
|
{
|
|||
|
if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY)
|
|||
|
{
|
|||
|
switch (sMenuKey)
|
|||
|
{
|
|||
|
case PosKey.MENU_KEY.CASH: // 현금
|
|||
|
case PosKey.MENU_KEY.CREDIT_CARD: // 신용카드
|
|||
|
case PosKey.MENU_KEY.WECHATPAY: //위챗페이
|
|||
|
bRet = RegisterPayment(sMenuKey, sInPutData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.PAYMENTS: // 결제
|
|||
|
bRet = RegisterPayment("", "");
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.EXCHANGE: // 환전
|
|||
|
OpenManualCashdrawer();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HAPPY_BUZ_SEARCH: // 해피버즈 현황 조회
|
|||
|
HappyBuzzSearch();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CHECK_SEARCH: // 수표조회
|
|||
|
PayCheck(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.DUTCH_PAY: // 더치페이
|
|||
|
bRet = DutchPay(sMenuKey, "0");
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.DUTCH_PAY_AMT: // 더치페이(금액)
|
|||
|
bRet = DutchPayAmt(sMenuKey, "0");
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.BRITHDAY_CANDLE: // 생일초계산
|
|||
|
BrithDayCandle(sMenuKey);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ITEM_DC_AMT: // 단품 금액 할인
|
|||
|
case PosKey.MENU_KEY.ITEM_DC_RATE: // 단품 율 할인
|
|||
|
case PosKey.MENU_KEY.FREE_DC: // 서비스(무료)
|
|||
|
case PosKey.MENU_KEY.ELOVE_DC: // 환경사랑DC
|
|||
|
case PosKey.MENU_KEY.ITEM_CHAGE_CPN: // 제품교환권
|
|||
|
case PosKey.MENU_KEY.IN_EMP_DC: // 입점매장직원할인(단품)
|
|||
|
bRet = RegisterItemDc(sMenuKey, sSelRow, sInPutData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ORDER_EXIT: // 주문종료
|
|||
|
bRet = OrderCancelExit();
|
|||
|
break;
|
|||
|
|
|||
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|||
|
case PosKey.MENU_KEY.WELCOMECARD_ISSUE: // 웰컴카드 발급화면
|
|||
|
bRet = WelcomeCard_Issue(sMenuKey, "2");
|
|||
|
break;
|
|||
|
|
|||
|
case PosKey.MENU_KEY.WELCOMECARD_HPAPP_REGISTER:// 웰컴카드 해피앱 고객등록
|
|||
|
bRet = WelcomeCard_Issue(sMenuKey, "2");
|
|||
|
break;
|
|||
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|||
|
|
|||
|
//#20180202 인천공항 VIP 라운지 기능미사용으로 주석처리 start,phj
|
|||
|
/*
|
|||
|
// grayber@20180115 인천공항 VIP 라운지 start - 결제 대기중 메뉴키 기능 추가
|
|||
|
case PosKey.MENU_KEY.AIRPORT_VIP_LOUNGE:
|
|||
|
bRet = RegisterPayment("", "");
|
|||
|
break;
|
|||
|
// grayber@20180115 인천공항 VIP 라운지 end
|
|||
|
*/
|
|||
|
//#20180202 인천공항 VIP 라운지 기능미사용으로 주석처리 end,phj
|
|||
|
|
|||
|
//grayber@20180208 코레일 마일리지 입력 start - 메뉴키 기능 추가
|
|||
|
case PosKey.MENU_KEY.KORAIL_MILEAGE:
|
|||
|
bRet = RegisterPayment("", "");
|
|||
|
break;
|
|||
|
//grayber@20180208 코레일 마일리지 입력 end
|
|||
|
|
|||
|
default:
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 start
|
|||
|
//기존
|
|||
|
/*
|
|||
|
if (WinSale.ExecuteBinessRun(sMenuKey) == UserCom.RST_IGNORE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0112);
|
|||
|
}
|
|||
|
*/
|
|||
|
//변경
|
|||
|
|
|||
|
if (WinSale.ExecuteBinessRun(sMenuKey, sMenuKeyAuth) == UserCom.RST_IGNORE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0112);
|
|||
|
}
|
|||
|
|
|||
|
//#20171117 통제, 슈퍼바이저 로그인창 여러번 표시 되는 현상 수정 end
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.PAY_DOING) // 결제 중 모드
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
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
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.ScreenSaverTime = DateTime.Now.ToString("yyyyMMddHHmmss"); //화면보호기 대기시간 설정
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품 등록 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow">선택행</param>
|
|||
|
/// <param name="sInPutTypeCode">(0:수입력, 1:메뉴, 2:스켄) + (메뉴코드,스캔코드)</param>
|
|||
|
/// <param name="sInPutData">입력데이터</param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool RegisterPluItem(string sSelRow, string sInPutTypeCode, string sInPutData)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
//17.05.18 dkshin 쇼킹박스 추가
|
|||
|
//if( m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.LOG.SHOCKING_BOX )
|
|||
|
if (m_cTrnStatus.Head.ShockingBoxStat == "1")
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0698));
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
// 판매화면
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
if (sInPutTypeCode != "")
|
|||
|
{
|
|||
|
|
|||
|
if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
|
|||
|
{
|
|||
|
// grayber@20180108 [BR] 바코드 18자리 인식 추가 start
|
|||
|
//기존
|
|||
|
//BR, DD
|
|||
|
//if (sInPutTypeCode.Length == 17 && CmUtil.RightH(sInPutTypeCode, 6) == "N9999X")
|
|||
|
//{
|
|||
|
// //WEB 호출!
|
|||
|
// WinBasic.ShowWebPos(PosKey.MENU_KEY.ORDER_REG, sInPutTypeCode.Substring(1));
|
|||
|
// return true;
|
|||
|
//}
|
|||
|
|
|||
|
// 변경
|
|||
|
if ((sInPutTypeCode.Length == (1 + 16)
|
|||
|
|| sInPutTypeCode.Length == (1 + 18))
|
|||
|
&& CmUtil.RightH(sInPutTypeCode, 6) == "N9999X"
|
|||
|
)
|
|||
|
{
|
|||
|
//WEB 호출!
|
|||
|
WinBasic.ShowWebPos(PosKey.MENU_KEY.ORDER_REG, sInPutTypeCode.Substring(1));
|
|||
|
return true;
|
|||
|
}
|
|||
|
// grayber@20180108 [BR] 바코드 18자리 인식 추가 end
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
// 상품등록 처리
|
|||
|
string nStat = m_cPluService.SetItemCode(sSelRow, sInPutTypeCode, sInPutData);
|
|||
|
if (nStat != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_WAIT)
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
//cFormSaleMain.DisplayInit(false, true);
|
|||
|
|
|||
|
//#20180110 첫번째 제품 선택시 POS MOT에 등록한 TTL or WAV 재생 start
|
|||
|
//#13753 POS MOT음성 기능 추가 개발요청 start,phj
|
|||
|
//기존
|
|||
|
//if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT309), "1") == "2")
|
|||
|
//변경
|
|||
|
|
|||
|
//#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정 start,phj
|
|||
|
//기존
|
|||
|
/*
|
|||
|
if ((m_cTrnStatus.Head.CmpCd == "PCKR" && m_cPosStatus.Mst.DrtFrcsDiv == "10") && //PCKR이고 직영일 때!
|
|||
|
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_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE && CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT309), "1") == "2"))
|
|||
|
////#20180214 마스터 수신 시 포스에서 설정한 MOT 값 변경안되도록 수정 end,phj
|
|||
|
|
|||
|
////#13753 POS MOT음성 기능 추가 개발요청 end,phj
|
|||
|
//{
|
|||
|
// frmSaleMain fSalMain = (frmSaleMain)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// fSalMain.SetPlayMotMsg(PosConst.MOT_MSG_TYPE.DSP_SCN_MSG, PosKey.MENU_KEY.FIRSTPLU_INPUT, "");
|
|||
|
//}
|
|||
|
//#20180110 첫번째 제품 선택시 POS MOT에 등록한 TTL or WAV 재생 end
|
|||
|
|
|||
|
//#20181016 메모리 사용량 로그남기기 start
|
|||
|
//20181108 주석처리
|
|||
|
//m_cDataCommon.MemoryCheckLog();
|
|||
|
//#20181016 메모리 사용량 로그남기기 end
|
|||
|
}
|
|||
|
//#20170926 포스 화면 구성 A안 사용시 후불 매장인 경우 제품 추가하면 기능키가 변경 안됨 start
|
|||
|
//else if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING)
|
|||
|
//{
|
|||
|
// cFormSaleMain.DisplayInit(false, true);
|
|||
|
//}
|
|||
|
//#20170926 포스 화면 구성 A안 사용시 후불 매장인 경우 제품 추가하면 기능키가 변경 안됨 end
|
|||
|
|
|||
|
//// 상품 아이템
|
|||
|
//ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
//Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[alPluItem.Count - 1];
|
|||
|
|
|||
|
////if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE && cPluItem.CANCEL_DIV != "1" && cPluItem.CANCEL_DIV_MAIN != "1")
|
|||
|
//if ((m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.PREPAID
|
|||
|
// || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.GIFT || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS)
|
|||
|
// && cPluItem.CANCEL_DIV != "1" && cPluItem.CANCEL_DIV_MAIN != "1")
|
|||
|
//{
|
|||
|
// if ((cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.NORMAL || cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_MAIN ||
|
|||
|
// cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.GIFT || cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.PREPAID )
|
|||
|
// && cPluItem.OPEN_ITEM_DIV == "1" && (cPluItem.SALE_PRC == 1 || cPluItem.SALE_PRC == 0)) //2017-03-27 안차장요청으로 추가 0원
|
|||
|
// {
|
|||
|
// while (true)
|
|||
|
// {
|
|||
|
// // 상품단가 입력 처리
|
|||
|
// string sPrice = WinBasic.ShowForm(new string[] { FormManager.FORM_USER_INPUT_DATA, PosConst.FRM_INPUT_DATA.PRICE });
|
|||
|
// if (sPrice != UserCom.RST_ERR)
|
|||
|
// {
|
|||
|
// double nPrice = CmUtil.MathRounds(m_cDataService.DoubleParse(sPrice), m_cPosStatus.Mst.DcRudDwLocMethd, CmUtil.IntParse(m_cPosStatus.Mst.DcRudDwLoc));
|
|||
|
|
|||
|
// if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS)
|
|||
|
// {
|
|||
|
// // 상품 단가 적용
|
|||
|
// cPluItem.SALE_PRC = m_cDataService.DoubleParse(sPrice);
|
|||
|
// m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
// // 상품 판매가 계산
|
|||
|
// m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// if (nPrice > 0 && nPrice == CmUtil.DoubleParse(sPrice))
|
|||
|
// {
|
|||
|
// // 상품 단가 적용
|
|||
|
// cPluItem.SALE_PRC = nPrice;
|
|||
|
// m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
// // 상품 판매가 계산
|
|||
|
// m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0538);
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
//// 강제 부가메뉴 등록 처리 사용안함 해피스테이션
|
|||
|
//RegisterForceSubMenu();
|
|||
|
}
|
|||
|
|
|||
|
// 세트상품 체크 및 등록 처리
|
|||
|
//RegisterSetMenu();
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시((0:LastItem, 1::OldFocus)) -사용안함 해피스테이션
|
|||
|
//if (sInPutTypeCode.StartsWith(PosConst.SALE_PLU_INPUT_TYPE.FLAVOUR))
|
|||
|
// cFormSaleMain.DisplayItem(1, false);
|
|||
|
//else
|
|||
|
//{
|
|||
|
// RegisterFlavourMenu("FLAVOUR"); // 플레이버 화면 표시
|
|||
|
// cFormSaleMain.DisplayItem(0, 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 bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 강제 부가메뉴 등록 처리
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public bool RegisterForceSubMenu()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.NORMAL.SALE && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.ETC.LOSS) return false;
|
|||
|
if (m_cTrnStatus.Sale.SubMenuPopUpYn != "1") return false;
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING || m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_SET)
|
|||
|
{
|
|||
|
// 상품 아이템
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
// 상품 정보
|
|||
|
int nSelRow = alPluItem.Count - 1;
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[nSelRow];
|
|||
|
|
|||
|
if ((cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.NORMAL || cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_DETL)) // 부가메뉴 포함 여부
|
|||
|
{
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 강제 부가메뉴 화면 표시
|
|||
|
if (cFormSaleMain.LoadSubMenuDisplay(cPluItem.SUB_SHOP_CD, cPluItem.M_CLSS) == true)
|
|||
|
{
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_SET)
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING_SET_OPT;
|
|||
|
else
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING_OPT;
|
|||
|
|
|||
|
//20160911 SBSEO 추가 부가 메뉴일때도 부모코드 입력!
|
|||
|
m_cTrnStatus.Sale.SubMenuMainCode = cPluItem.ITEM_PLU_CD;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
//else if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_SET_OPT)
|
|||
|
//{
|
|||
|
// m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING_SET;
|
|||
|
//}
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 세트메뉴 등록 처리
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public bool RegisterSetMenu()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING)
|
|||
|
{
|
|||
|
// 상품 아이템
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
// 상품 정보
|
|||
|
int nSelRow = alPluItem.Count - 1;
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[nSelRow];
|
|||
|
|
|||
|
if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
{
|
|||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 세트메뉴 그룹 로딩
|
|||
|
m_dtSetMenuGroup = m_cPluService.SearchMenuMaster(PosMst.MST_ITEM_SET.TABLE_NAME, cPluItem.SUB_SHOP_CD, cPluItem.ITEM_PLU_CD);
|
|||
|
if (m_dtSetMenuGroup == null || m_dtSetMenuGroup.Rows.Count <= 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0028); // 세트 상품 마스터가 없습니다
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
// 세트메뉴 그룹 상세 로딩
|
|||
|
m_dtSetMenuDetail = m_cPluService.SearchMenuMaster(PosMst.MST_ITEM_SET_GRP.TABLE_NAME, cPluItem.SUB_SHOP_CD, cPluItem.ITEM_PLU_CD);
|
|||
|
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING_SET;
|
|||
|
m_cTrnStatus.Sale.SetPluGroupPos = 0;
|
|||
|
m_cTrnStatus.Sale.SetPluGroupCnt = 0;
|
|||
|
m_cTrnStatus.Sale.SetPluSetMainCode = cPluItem.ITEM_PLU_CD;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 세트 상품 등록 처리
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_SET)
|
|||
|
{
|
|||
|
for (int z = 0; z < 100; z++) // 마스터 이상으로 인한 무한루프 방지
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Sale.SetPluGroupPos >= m_dtSetMenuGroup.Rows.Count)
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
m_cTrnStatus.Sale.SetPluGroupPos = 0;
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
DataRow dr = m_dtSetMenuGroup.Rows[(int)m_cTrnStatus.Sale.SetPluGroupPos];
|
|||
|
|
|||
|
m_cTrnStatus.Sale.SetPluGroupCnt = m_cTrnStatus.Sale.SetPluGroupCnt + 1;
|
|||
|
if (m_cTrnStatus.Sale.SetPluGroupCnt >= CmUtil.GetDataRowLong(dr, PosMst.MST_ITEM_SET.DATA.SET_ITEM_QTY))
|
|||
|
{
|
|||
|
m_cTrnStatus.Sale.SetPluGroupPos = m_cTrnStatus.Sale.SetPluGroupPos + 1;
|
|||
|
m_cTrnStatus.Sale.SetPluGroupCnt = 0;
|
|||
|
}
|
|||
|
// 자식상품구분 ==> 0:상품, 1:부가상품그룹코드, 2:상품+그룹
|
|||
|
if (CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SET_ITEM_DIV) == "0")
|
|||
|
{
|
|||
|
m_cTrnStatus.Sale.SetPluUpSalePrc = 0;
|
|||
|
m_cTrnStatus.Sale.SetPluSetGroupCode = "";
|
|||
|
// 상품 등록 처리
|
|||
|
RegisterPluItem("", PosConst.SALE_PLU_INPUT_TYPE.MENUKEY + CmUtil.RPadH(CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SUB_STOR_CD), 10) + CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SET_ITEM_CD), "");
|
|||
|
}
|
|||
|
else if (CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SET_ITEM_DIV) == "1")
|
|||
|
{
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
// 세트메뉴 화면 표시
|
|||
|
if (cFormSaleMain.LoadSetMenuDisplay(
|
|||
|
CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SET_ITEM_CD), CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SET_GRPNM)) == false)
|
|||
|
{
|
|||
|
continue;
|
|||
|
}
|
|||
|
m_cTrnStatus.Sale.SetPluSetGroupCode = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SET_ITEM_CD);
|
|||
|
}
|
|||
|
else if (CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SET_ITEM_DIV) == "2")
|
|||
|
{
|
|||
|
m_cTrnStatus.Sale.SetPluUpSalePrc = 0;
|
|||
|
m_cTrnStatus.Sale.SetPluSetGroupCode = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SET_ITEM_GRP_CD);
|
|||
|
// 상품 등록 처리
|
|||
|
RegisterPluItem("", PosConst.SALE_PLU_INPUT_TYPE.MENUKEY + CmUtil.RPadH(CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SUB_STOR_CD), 10) + CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM_SET.DATA.SET_ITEM_CD), "");
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
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);
|
|||
|
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
m_cTrnStatus.Sale.SetPluGroupPos = 0;
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 선택 부가메뉴 등록 처리
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public bool RegisterChoiceSubMenu(string sSelRow)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.NORMAL.SALE && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.ETC.LOSS
|
|||
|
&& m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_REG) return true;
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_DOING) return false;
|
|||
|
|
|||
|
// 상품 아이템
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[CmUtil.IntParse(sSelRow)];
|
|||
|
|
|||
|
if (cPluItem.CANCEL_DIV == "1" || cPluItem.CANCEL_DIV_MAIN == "1")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017); // 취소한 상품 입니다
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.ORDER_OK_FLAG != PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0027); // 주문완료 후 변경 할 수 없습니다
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
if ((cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.NORMAL && cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.SET_DETL))
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0026); // 부가메뉴를 등록 할 수 없는 상품입니다
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 부가메뉴 화면 표시
|
|||
|
bRet = cFormSaleMain.LoadSubMenuDisplay(cPluItem.SUB_SHOP_CD, cPluItem.M_CLSS);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 플레이버 등록 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow">선택행</param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool RegisterFlavourMenu(string sSelRow)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.NORMAL.SALE && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.ETC.LOSS) return false;
|
|||
|
|
|||
|
if (sSelRow != "")
|
|||
|
{
|
|||
|
// 상품 아이템
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[alPluItem.Count - 1];
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING && cPluItem.FLAVOUR_DIV == ItemConst.PLU_FLAVOUR_DIV.FLAVOUR_OWN)
|
|||
|
{
|
|||
|
if (cPluItem.FLAVOUR_QTY <= 2)
|
|||
|
{
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
// 플레이버 화면 표시
|
|||
|
cFormSaleMain.LoadFlavourMaster(m_cTrnStatus.Sale.SubStoreCode);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.LoadFlavourMaster("");
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
// 플레이버 화면 표시
|
|||
|
cFormSaleMain.LoadFlavourMaster(m_cTrnStatus.Sale.SubStoreCode);
|
|||
|
}
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 지정 취소 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow">선택행</param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool CancelPluItem(string sSelRow)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
//17.05.18 dkshin 쇼킹박스 추가
|
|||
|
//if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.LOG.SHOCKING_BOX)
|
|||
|
//if (m_cTrnStatus.Head.ShockingBoxStat == "1")
|
|||
|
//{
|
|||
|
// WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0698));
|
|||
|
// return bRet;
|
|||
|
//}
|
|||
|
//// 판매화면
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 지정취소 처리
|
|||
|
string nStat = m_cPluService.SetCancelItem(sSelRow);
|
|||
|
if (nStat != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
if (alPluItem.Count <= 0)
|
|||
|
{
|
|||
|
//#20170828 해피포인트 적립 제외 버튼 추가 phj, start
|
|||
|
//선택된 상품이 모두 취소 되었을 때 0으로 초기화
|
|||
|
m_cTrnStatus.Head.HP_EXCLUDE_YN = "0";
|
|||
|
//#20170828 해피포인트 적립 제외 버튼 추가 phj, end
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;
|
|||
|
//cFormSaleMain.DisplayInit(false, true);
|
|||
|
}
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
//cFormSaleMain.DisplayItem(1, 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 bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 수량변경 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow">선택행</param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool QtyChangePluItem(string sMenuKey, string sSelRow, string sNewQty)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
// 판매 화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 상품 아이템
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
// 상품 정보
|
|||
|
int nSelRow = CmUtil.IntParse(sSelRow);
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[nSelRow];
|
|||
|
|
|||
|
switch (sMenuKey)
|
|||
|
{
|
|||
|
case PosKey.MENU_KEY.QTY_PLUS:
|
|||
|
sNewQty = (cPluItem.SALE_QTY + 1).ToString();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.QTY_MINUS:
|
|||
|
sNewQty = (cPluItem.SALE_QTY - 1).ToString();
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
// 수량변경 처리
|
|||
|
string nStat = m_cPluService.SetQtyChangeItem(sSelRow, sNewQty);
|
|||
|
if (nStat != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(1, 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 bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 결제 등록 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
/// <param name="sInPutData"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool RegisterPayment(string sMenuKey, string sInPutData)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
//#20181016 메모리 사용량 로그남기기 start
|
|||
|
//20181108 주석처리
|
|||
|
//m_cDataCommon.MemoryCheckLog();
|
|||
|
//#20181016 메모리 사용량 로그남기기 end
|
|||
|
|
|||
|
m_cPosStatus.Sale.ScreenSaverTime = ""; //화면보호기 대기시간 설정
|
|||
|
|
|||
|
//if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_DOING) return false;
|
|||
|
if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_DOING && m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.PAY_WAIT) return false;
|
|||
|
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
|
|||
|
if (m_cTrnStatus.Head.ShockingBoxStat == "1" && m_cTrnStatus.Head.ShockingBoxTradeKind == ItemConst.TRAN_KIND.HPO_LOG.LANDOM_BOX)
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0054));
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
|
|||
|
|
|||
|
// 선불 판매 일때 고객 이름 체크 하기! (중국인 경우 제외)
|
|||
|
if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.PREPAID && PosMstManager.GetPosOption(POS_OPTION.OPT046) != "1")
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.PpCardCustNm == "")
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_SAL_PREPAID_CUST });
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 상품 등록 여부 체크
|
|||
|
bool bSaleItemExist = false;
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in aSaleItem)
|
|||
|
{
|
|||
|
if (cPluItem.CANCEL_DIV != PosConst.CANCEL_DIV.CANCEL && cPluItem.CANCEL_DIV_MAIN != PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
bSaleItemExist = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (bSaleItemExist == false)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0396);
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
// 영업일자 체크
|
|||
|
if (CmUtil.LongParse(m_cPosStatus.Base.SaleDate) < CmUtil.LongParse(System.DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
{
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HH")) > 5)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 예약 완료 거래시에는 적용 하지 말자!
|
|||
|
if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE)
|
|||
|
{
|
|||
|
// 상품 할인 및 사은품 캠페인 처리
|
|||
|
ICampaignUs cCampaignMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
cCampaignMain.ExecuteCampaignPluHappyPoint("", true, PosConst.SALE_PLU_INPUT_TYPE.FREEGIFT, "", "", ""); // 상품 캠페인 계산
|
|||
|
}
|
|||
|
m_cTrnStatus.Sale.SubTotalCancelDiv = true; //결제 전후 취소 처리 체크 플래그
|
|||
|
|
|||
|
//결제 고객 등록 체크
|
|||
|
SetPayGuest("1");
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.PAY_WAIT;
|
|||
|
|
|||
|
|
|||
|
//낱개 반품 이나 판매 로스 일경우 결제 버튼 클릭시 현금 자동 결제 2016-12-05 문성진대리 요청 사항!
|
|||
|
if ((m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE) ||
|
|||
|
(m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS))
|
|||
|
{
|
|||
|
#region
|
|||
|
//현금 처리!
|
|||
|
IPaymentUs m_cPaymentUs = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.CASH);
|
|||
|
|
|||
|
string sRet = "";
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE)
|
|||
|
{
|
|||
|
//낱개반품
|
|||
|
sRet = m_cPaymentUs.SetPayment(new string[] { m_cTrnStatus.Sale.RemainPayAmt.ToString(), "0" });
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//LOSS
|
|||
|
sRet = m_cPaymentUs.SetPayment(new string[] { "0", "0" });
|
|||
|
}
|
|||
|
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
CheckSaleComplete();
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_WAIT)
|
|||
|
{
|
|||
|
// 결제 내역 받아 오기
|
|||
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
m_cPaymentUs.CancelPayment(new string[] { (alPayItem.Count - 1).ToString() });
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
return false;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
//중국일때 Take In/Out 선택!
|
|||
|
if (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.CN && CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT304), "1") == "1")
|
|||
|
{
|
|||
|
SetChinaTakeInOut();
|
|||
|
}
|
|||
|
//2018.01.25.002;미국 서부(남가주, 북가주) 일 경우 Take In/Out 사용 처리;girak.kim;Start
|
|||
|
else if( m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)
|
|||
|
&& CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT304), "1") == "1"
|
|||
|
&& CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT330), "1") == "1"
|
|||
|
//&& (m_cPosStatus.Base.BrandCd.ToUpper().Equals(PosConst.MST_BRAND_CODE.PC_UC) || m_cPosStatus.Base.BrandCd.ToUpper().Equals(PosConst.MST_BRAND_CODE.PC_US))
|
|||
|
)
|
|||
|
{
|
|||
|
SetUSTakeInOut();//Take In/Out 결과 상관 없이 무조건 결제창은 띄움
|
|||
|
}
|
|||
|
//2018.01.25.002;미국 서부(남가주, 북가주) 일 경우 Take In/Out 사용 처리;girak.kim;End
|
|||
|
|
|||
|
//KDS 부가 정보 사용 여부 [고객명/VIP 구분](0:사용안함, 1:사용함) - 쒝쒝버거용
|
|||
|
if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT027), "0") == "1")
|
|||
|
{
|
|||
|
SetKdsData();
|
|||
|
}
|
|||
|
|
|||
|
//#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 start
|
|||
|
#region 제조음료 Take In/Out 설정 기능
|
|||
|
//정상 판매인 경우에만 동작
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE)
|
|||
|
{
|
|||
|
//제조음료 포함 여부 체크
|
|||
|
bool bProdTakeInOutItemYN = false;
|
|||
|
bProdTakeInOutItemYN = ChkProdItemTakeInOutYN();
|
|||
|
|
|||
|
//제조음료 Take In/Out 사용여부 체크(ini에 설정이 안된 경우 공통코드 체크)
|
|||
|
bool bProdTakeInOutUse = false;
|
|||
|
bProdTakeInOutUse = ChkProdItemTakeInUse();
|
|||
|
|
|||
|
//제조음료 Take In/Out 선택 창 표시
|
|||
|
if (bProdTakeInOutItemYN == true && bProdTakeInOutUse == true)
|
|||
|
{
|
|||
|
SetProdTakeInOut();
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion 제조음료 Take In/Out 설정 기능
|
|||
|
//#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 end
|
|||
|
|
|||
|
// 판매화면(상품등록=>결제대기)
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.ChangeSalePayMode(false);
|
|||
|
cFormSaleMain.ChangeShowPayBtn(false);
|
|||
|
|
|||
|
if (sMenuKey != "") PayMainProc(sMenuKey, sInPutData);
|
|||
|
|
|||
|
cFormSaleMain.SetTopMot(PosKey.MENU_KEY.PAY_MAIN_MENU);
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_WAIT) cFormSaleMain.ChangeShowPayBtn(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);
|
|||
|
}
|
|||
|
finally
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.ScreenSaverTime = DateTime.Now.ToString("yyyyMMddHHmmss"); //화면보호기 대기시간 설정
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 중국 Take In/Out 일괄 설정(중국)
|
|||
|
/// </summary>
|
|||
|
private void SetChinaTakeInOut()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_ETC_SELECT_BTN, PosKey.MENU_KEY.TAKE_IN_OUT, "" });
|
|||
|
|
|||
|
if (sRet == "1") //TAKE IN
|
|||
|
{
|
|||
|
SetItemTakeInOutAll("0");
|
|||
|
}
|
|||
|
else if (sRet == "2") //TAKE OUT
|
|||
|
{
|
|||
|
SetItemTakeInOutAll("1");
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
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 SetUSTakeInOut()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
bRet = SetTakeInOut();
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// Take In/Out 메세지 상품 일괄 적용(중국)
|
|||
|
/// </summary>
|
|||
|
/// <param name="sTakeInOut"></param>
|
|||
|
private void SetItemTakeInOutAll(string sTakeInOut)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
// 상품정보
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
for (int iRow = 0; iRow < aSaleItem.Count; iRow++)
|
|||
|
{
|
|||
|
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow];
|
|||
|
|
|||
|
if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cSaleItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
continue; // 지정취소
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 상품 마스터 조회
|
|||
|
DataTable dtDataInfo = m_cDataCommon.SearchItemCode(cSaleItem.SUB_SHOP_CD, cSaleItem.ITEM_PLU_CD, "");
|
|||
|
if (dtDataInfo == null || dtDataInfo.Rows.Count == 0)
|
|||
|
{
|
|||
|
//스킵!!
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cSaleItem.TAKE_IN_OUT_DIV = sTakeInOut;
|
|||
|
|
|||
|
DataRow drPlu = dtDataInfo.Rows[0];
|
|||
|
|
|||
|
if (cSaleItem.TAKE_IN_OUT_DIV == PosConst.TAKE_IN_OUT_DIV.TAKE_IN)
|
|||
|
{
|
|||
|
cSaleItem.SALE_PRC = CmUtil.GetDataRowDouble(drPlu, PosMst.MST_ITEM.DATA.TAKE_IN_SALE_AMT);
|
|||
|
|
|||
|
//#20171113 Take IN/OUT 선택시 세율코드 변경 안되는 현상 수정 start
|
|||
|
//cSaleItem.TAXRATE_CD = cSaleItem.ITEM_TAKE_IN_VAT_CD;
|
|||
|
//#20171113 Take IN/OUT 선택시 세율코드 변경 안되는 현상 수정 end
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cSaleItem.SALE_PRC = CmUtil.GetDataRowDouble(drPlu, PosMst.MST_ITEM.DATA.TAKE_OUT_SALE_AMT);
|
|||
|
|
|||
|
//#20171113 Take IN/OUT 선택시 세율코드 변경 안되는 현상 수정 start
|
|||
|
//cSaleItem.TAXRATE_CD = cSaleItem.ITEM_TAKE_OUT_VAT_CD;
|
|||
|
//#20171113 Take IN/OUT 선택시 세율코드 변경 안되는 현상 수정 end
|
|||
|
}
|
|||
|
|
|||
|
cSaleItem.SALE_AMT = CmUtil.DoubleMultiplication(cSaleItem.SALE_PRC, cSaleItem.SALE_QTY);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
cFormSaleMain.DisplayItem(1, 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);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// KDS 부가 정보 사용 - 쒝쒝버거용
|
|||
|
/// </summary>
|
|||
|
private void SetKdsData()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sMsg = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0652), m_cPosStatus.Global.NumericTOCurrency(m_cTrnStatus.Sale.RemainPayAmt) + m_cPosStatus.Global.m_stCultureMaster.strCurrencyName);
|
|||
|
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_ETC_SELECT_BTN, PosKey.MENU_KEY.SET_KDS_DATA, sMsg });
|
|||
|
|
|||
|
string[] aRecvData = sRet.Split(new string[] { "|" }, StringSplitOptions.None);
|
|||
|
|
|||
|
m_cTrnStatus.Head.PackTradeDiv = aRecvData[0];
|
|||
|
m_cTrnStatus.Head.VipTy = aRecvData[1];
|
|||
|
|
|||
|
//#20171113 Take IN/OUT 선택시 세율코드 변경 안되는 현상 수정 start
|
|||
|
/*
|
|||
|
if (m_cTrnStatus.Head.PackTradeDiv == "1")
|
|||
|
{
|
|||
|
SetItemTakeInOutAll("0");
|
|||
|
}
|
|||
|
else if (m_cTrnStatus.Head.PackTradeDiv == "2")
|
|||
|
{
|
|||
|
SetItemTakeInOutAll("1");
|
|||
|
}
|
|||
|
*/
|
|||
|
//#20171113 Take IN/OUT 선택시 세율코드 변경 안되는 현상 수정 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);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 결제 고객 등록
|
|||
|
/// </summary>
|
|||
|
public void SetPayGuest(string sChkFalg)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT004) == sChkFalg)
|
|||
|
{
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT033) == "1") //결제 고객
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_SAL_AGE, "PAY" });
|
|||
|
if (sRet != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.PayGndrDiv = CmUtil.MidH(sRet, 0, 1);
|
|||
|
m_cTrnStatus.Head.PayAge = CmUtil.LongParse(CmUtil.MidH(sRet, 1, 2));
|
|||
|
}
|
|||
|
}
|
|||
|
else if (PosMstManager.GetPosOption(POS_OPTION.OPT033) == "2") //고객수
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_SAL_AGE, "" });
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//미사용
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
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="sFuncKey"></param>
|
|||
|
/// <param name="InputData"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool RegisterItemDc(string sFuncKey, string sSelRow, string InData)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
|
|||
|
if (m_cTrnStatus.Head.ShockingBoxStat == "1" && m_cTrnStatus.Head.ShockingBoxTradeKind == ItemConst.TRAN_KIND.HPO_LOG.LANDOM_BOX)
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0054));
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
|
|||
|
|
|||
|
// 판매 화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
string sDcType = string.Empty;
|
|||
|
string sDcCode = string.Empty;
|
|||
|
|
|||
|
if (sFuncKey == PosKey.MENU_KEY.ELOVE_DC)
|
|||
|
{
|
|||
|
//환경사랑DC만 단독 처리로 분리
|
|||
|
if (EnvironmentLoveCheck(sSelRow) == false)
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 중복 불가 체크!
|
|||
|
//if (m_cDataCommon.PayDcDuplicationCheck(sFuncKey) == false) return false;
|
|||
|
|
|||
|
switch (sFuncKey)
|
|||
|
{
|
|||
|
case PosKey.MENU_KEY.ITEM_DC_AMT: //임의 할인 금액
|
|||
|
sDcType = PosConst.ITEM_DC_DIV_POS_DC.AMT;
|
|||
|
sDcCode = ItemConst.PLU_DC_DIV.POS_DC; // ItemConst.TR_ITEM_ID.USER_DC.RANDOMLY;
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ITEM_DC_RATE: //임의 할인 율
|
|||
|
sDcType = PosConst.ITEM_DC_DIV_POS_DC.RATE;
|
|||
|
sDcCode = ItemConst.PLU_DC_DIV.POS_DC; //ItemConst.TR_ITEM_ID.USER_DC.RANDOMLY;
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.FREE_DC: //서비스
|
|||
|
sDcType = PosConst.ITEM_DC_DIV_POS_DC.FREE;
|
|||
|
sDcCode = ItemConst.PLU_DC_DIV.FREE; //ItemConst.TR_ITEM_ID.USER_DC.SERVICE;
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.IN_EMP_DC: //입점 건물 직원 할인
|
|||
|
// 화면 호출
|
|||
|
//입력 값 확인 - 없으면 RETURN
|
|||
|
sDcType = PosConst.ITEM_DC_DIV_POS_DC.RATE;
|
|||
|
sDcCode = ItemConst.PLU_DC_DIV.IN_EMP_DC; // ItemConst.TR_ITEM_ID.USER_DC.IN_EMP_DC;
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ITEM_CHAGE_CPN: //제품교환권
|
|||
|
sDcType = PosConst.ITEM_DC_DIV_POS_DC.FREE;
|
|||
|
sDcCode = ItemConst.PLU_DC_DIV.ITEM_CHAGE_CPN_DC; //ItemConst.TR_ITEM_ID.USER_DC.ITEM_CHAGE_CPN;
|
|||
|
break;
|
|||
|
//case PosKey.MENU_KEY.ELOVE_DC: //환경사랑DC
|
|||
|
|
|||
|
// if (EnvironmentLoveCheck(ref sSelRow, ref InData) == false)
|
|||
|
// return false;
|
|||
|
// else
|
|||
|
// return true;
|
|||
|
|
|||
|
////sDcType = PosConst.ITEM_DC_DIV_POS_DC.AMT;
|
|||
|
////sDcCode = ItemConst.TR_ITEM_ID.USER_DC.ELOVE;
|
|||
|
////break;
|
|||
|
}
|
|||
|
|
|||
|
// 상품할인 처리
|
|||
|
string nStat = m_cPluService.SetDcItem(sSelRow, sDcType, sDcCode, InData);
|
|||
|
if (nStat != UserCom.RST_OK) return false;
|
|||
|
}
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(1, 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 bRet;
|
|||
|
}
|
|||
|
|
|||
|
//#Rhee, 20180130 단품 할인 전체 취소 추가 Start
|
|||
|
/// <summary>
|
|||
|
/// 단품 아이템 할인 적용 전체 취소
|
|||
|
/// </summary>
|
|||
|
/// <param name="sFuncKey"></param>
|
|||
|
/// <param name="sDcDiv"></param>
|
|||
|
/// <param name="sDcType"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool RegisterItemDcCancel(string sFuncKey, string sDcDiv, string sDcType)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
// 판매 화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 상품할인 처리
|
|||
|
string nStat = m_cPluService.SetDcCancelItem(sDcDiv, sDcType);
|
|||
|
if (nStat != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(1, 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 bRet;
|
|||
|
}
|
|||
|
//#Rhee, 20180130 단품 할인 전체 취소 추가 End
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 환경사랑DC 체크
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow"></param>
|
|||
|
/// <param name="sDcAmt"></param>
|
|||
|
/// <returns></returns>
|
|||
|
private bool EnvironmentLoveCheck(string sSelRow)
|
|||
|
{
|
|||
|
|
|||
|
bool bRet = false, bAlready = false;
|
|||
|
double dDcAmt = 0;
|
|||
|
//string m_DC_ELOVE = ItemConst.TR_ITEM_ID.USER_DC_ITEM + ItemConst.TR_ITEM_ID.USER_DC.ELOVE;
|
|||
|
|
|||
|
Column.TR_PLU.DATA cPluItem = null;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
long lInPutQty = 0;
|
|||
|
//int nSelRow = 0;
|
|||
|
|
|||
|
//// Step 1.마지막 아이템 체크
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
//for (int iRow = 0; iRow < alPluItem.Count; iRow++)
|
|||
|
//{
|
|||
|
// cPluItem = (Column.TR_PLU.DATA)alPluItem[iRow];
|
|||
|
|
|||
|
// if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.EXCEP_DC_DIV == m_DC_ELOVE)
|
|||
|
// {
|
|||
|
// bAlready = true;
|
|||
|
// break;
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
// 동일 할인 체크
|
|||
|
cPluItem = (Column.TR_PLU.DATA)alPluItem[CmUtil.IntParse(sSelRow)];
|
|||
|
if (cPluItem.EXCEP_DC_DIV == ItemConst.PLU_DC_DIV.ELOVE_DC) bAlready = true;
|
|||
|
|
|||
|
if (bAlready == true)
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0053) == false) // 등록된 할인을 취소 하시겠습니까?
|
|||
|
return bRet;
|
|||
|
|
|||
|
dDcAmt = 0;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//마지막 강제 셋팅 - 오페이션이 바끼면(마지막처리아니면) 주석으로 처리해야함!
|
|||
|
//nSelRow = alPluItem.Count - 1;
|
|||
|
//sSelRow = nSelRow.ToString();
|
|||
|
//cPluItem = (Column.TR_PLU.DATA)alPluItem[nSelRow];
|
|||
|
|
|||
|
// 취소 상품은 할인 불가
|
|||
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017); // 취소한 상품 입니다
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
//// 세트 자식은 할인 불가
|
|||
|
//if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.NORMAL && cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|||
|
//{
|
|||
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0050); // 할인 적용 불가능한 상품 입니다.
|
|||
|
// return bRet;
|
|||
|
//}
|
|||
|
|
|||
|
// 할인 허용 여부
|
|||
|
if (cPluItem.DC_PRMT_YN == "1" || cPluItem.FREE_GIFT_YN == "1" || cPluItem.SALE_PRC == 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0050); // 할인 적용 불가능한 상품 입니다.
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
// 할인 등록 여부 체크
|
|||
|
if (m_cDataService.GetPluDiscountAmount(false, false, false, false, false, false, false, false, true, CmUtil.IntParse(sSelRow)) > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0063); // 기존 할인 취소 후 등록 하세요.
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// Step 3.수량 체크 -> 1 이상이면 입력 받는 화면 호출
|
|||
|
if (cPluItem.SALE_QTY > 1)
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_USER_INPUT_DATA, "ELOVE" });
|
|||
|
if (sRet == UserCom.RST_ERR)
|
|||
|
{
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
lInPutQty = CmUtil.LongParse(sRet);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
lInPutQty = cPluItem.SALE_QTY;
|
|||
|
}
|
|||
|
|
|||
|
// Step 4.입력수량과 현재 등록 수량 체크 크면 에러
|
|||
|
if (cPluItem.SALE_QTY < lInPutQty || lInPutQty == 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0075);
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
//적용 대상 금액 체크
|
|||
|
if (cPluItem.BILL_AMT == 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0601); //할인 적용 대상 금액이 없습니다.
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// Step 5.할인 금액 가져오기
|
|||
|
DataTable dt = m_cMstPayDcService.Select(new string[] { PosMst.MST_PAY_DC.TABLE_NAME, ItemConst.TR_ITEM_ID.USER_DC_ITEM, ItemConst.TR_ITEM_ID.USER_DC.ELOVE });
|
|||
|
|
|||
|
if (dt == null || dt.Rows.Count <= 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0377); // 할인 정보 마스터가 없습니다. 관리자에 문의 하세요.
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
foreach (DataRow dr in dt.Rows)
|
|||
|
{
|
|||
|
|
|||
|
//할인 방법 DC_APPLY_TRGT
|
|||
|
//적용 대상 PAY_DC_METHD 1:율, 2:금액
|
|||
|
//적용 금액 PAY_DC_VAL
|
|||
|
|
|||
|
string sAppyTrgt = CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.DC_APPLY_TRGT);
|
|||
|
string sDcMethd = CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.PAY_DC_METHD);
|
|||
|
double dPayDcVal = CmUtil.GetDataRowDouble(dr, PosMst.MST_PAY_DC.DATA.PAY_DC_VAL);
|
|||
|
|
|||
|
if (sDcMethd == "1")
|
|||
|
{
|
|||
|
double dtmp = CmUtil.MathRounds(CmUtil.MathAmtPercent(cPluItem.SALE_AMT, dPayDcVal), m_cPosStatus.Mst.DcRudDwLocMethd, CmUtil.IntParse(m_cPosStatus.Mst.DcRudDwLoc));
|
|||
|
|
|||
|
dDcAmt = CmUtil.DoubleMultiplication(dtmp, lInPutQty);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
dDcAmt = CmUtil.DoubleMultiplication(dPayDcVal, lInPutQty);
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.BILL_AMT < dDcAmt)
|
|||
|
{
|
|||
|
string sMsg = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0602), cPluItem.BILL_AMT, dDcAmt);
|
|||
|
WinManager.ErrorMessage(sMsg); //할인 적용 대상 금액이 없습니다.
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
cPluItem.EXCEP_DC_AMT = dDcAmt;
|
|||
|
cPluItem.EXCEP_DC_DIV = dDcAmt > 0 ? ItemConst.PLU_DC_DIV.ELOVE_DC : "0000";
|
|||
|
|
|||
|
m_cDataService.UpdatePluItemAmount(cPluItem);
|
|||
|
|
|||
|
// 상품 판매가 계산
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
bRet = true;
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품권 판매
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public bool RegisterSellGift(string sFuncKey)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
// 상품권, 선불 카드 셋팅
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_WAIT)
|
|||
|
{
|
|||
|
|
|||
|
string sTableName = string.Empty;
|
|||
|
string sItemType = string.Empty;
|
|||
|
string sItemName = string.Empty;
|
|||
|
|
|||
|
if (sFuncKey == PosKey.MENU_KEY.GIFT_SALE)
|
|||
|
{
|
|||
|
sTableName = PosMst.MST_GIFT_PREPAID.TABLE_NAME_GIFT;
|
|||
|
sItemType = PosConst.ITEM_TYPE.GIFT;
|
|||
|
sItemName = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0083);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sTableName = PosMst.MST_GIFT_PREPAID.TABLE_NAME_PREPAID;
|
|||
|
sItemType = PosConst.ITEM_TYPE.PREPAID;
|
|||
|
sItemName = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0095);
|
|||
|
}
|
|||
|
|
|||
|
m_dtSetMenuDetail = null;
|
|||
|
|
|||
|
// 선불카드 판매 - 중국 (별도 입력 처리)
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT046) == "1")
|
|||
|
{
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//대상 조회
|
|||
|
m_dtSetMenuDetail = m_cPluService.SearchMenuMaster(sTableName, "", sItemType);
|
|||
|
|
|||
|
if (m_dtSetMenuDetail == null || m_dtSetMenuDetail.Rows.Count == 0)
|
|||
|
{
|
|||
|
// 등록 할 수 있는 상품권/선불카드가 없습니다.
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0304);
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
}
|
|||
|
//m_cTrnStatus.Sale.SetPluGroupPos = 0;
|
|||
|
|
|||
|
//메뉴 화면 표시
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.LoadSetMenuDisplay(sFuncKey, sItemName, true);
|
|||
|
|
|||
|
//현재 상태 변경, 거래모드 변경
|
|||
|
if (sItemType == PosConst.ITEM_TYPE.GIFT)
|
|||
|
{
|
|||
|
//m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_GIFT;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.CHARGESALE.GIFT;
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_PREPAID;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.CHARGESALE.PREPAID;
|
|||
|
}
|
|||
|
|
|||
|
//선불카드 판매일경우 카드 번호 입력 로직 필요!
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT046) == "1")
|
|||
|
{
|
|||
|
// 선불카드 판매 - 중국
|
|||
|
frmSalePreCard_China fForm = (frmSalePreCard_China)FormManager.GetForm(FormManager.FORM_SALE_PRECARD);
|
|||
|
if (fForm == null)
|
|||
|
{
|
|||
|
fForm = new frmSalePreCard_China();
|
|||
|
FormManager.AddForm(FormManager.FORM_SALE_PRECARD, fForm);
|
|||
|
}
|
|||
|
|
|||
|
if (fForm.ShowDialog() != DialogResult.OK)
|
|||
|
{
|
|||
|
TradeStop();
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
DataTable dtPreCard = fForm.GetPripadItem;
|
|||
|
|
|||
|
if (dtPreCard != null && dtPreCard.Rows.Count > 0)
|
|||
|
{
|
|||
|
foreach (DataRow dr in dtPreCard.Rows)
|
|||
|
{
|
|||
|
// 상품 등록 처리
|
|||
|
if (RegisterPluItem("", PosConst.SALE_PLU_INPUT_TYPE.MENUKEY + CmUtil.RPadH(m_cPosStatus.Base.StoreNo, 10) + CmUtil.GetDataRowStr(dr, "iTemCD"), CmUtil.GetDataRowStr(dr, "CardNo")) == true)
|
|||
|
{
|
|||
|
// 선불카드권종 추가(2017.06.27)
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[alPluItem.Count - 1];
|
|||
|
cPluItem.SLACK_FIELD = CmUtil.GetDataRowStr(dr, "PreKind");
|
|||
|
}
|
|||
|
//RegisterPluItem("", PosConst.SALE_PLU_INPUT_TYPE.MENUKEY + CmUtil.RPadH(m_cPosStatus.Base.StoreNo, 10) + CmUtil.GetDataRowStr(dr, "iTemCD"), CmUtil.GetDataRowStr(dr, "CardNo"));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 거래 취소
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool TradeStop()
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
//// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_WAIT)
|
|||
|
{
|
|||
|
|
|||
|
// 거래 취소 확인 메세지!
|
|||
|
if (WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0261)) == true)
|
|||
|
{
|
|||
|
// 선불카드 판매 - 중국인 경우
|
|||
|
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 alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in alPluItem)
|
|||
|
{
|
|||
|
if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.PREPAID)
|
|||
|
{
|
|||
|
if (cPluItem.CANCEL_DIV != "1")
|
|||
|
{
|
|||
|
// 취소 요청
|
|||
|
sRet = m_cSalePreCard.CancelPayment(new string[] { "1", cPluItem.SALE_GIFT_NO, "0" });
|
|||
|
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (cPluItem.CANCEL_DIV != "1")
|
|||
|
{
|
|||
|
cPluItem.CANCEL_DIV = "1";
|
|||
|
cPluItem.CANCEL_DATE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// 원거래 종류 백업
|
|||
|
m_cTrnStatus.Head.OrgTradeKind = m_cTrnStatus.Head.TradeKind;
|
|||
|
|
|||
|
//상품권 or 선불카드 승인 내역 확인 및 취소 처리 로직 필요!
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.LOG.STOP;
|
|||
|
|
|||
|
// 보류 후 거래 중지라면 로그 남기기!
|
|||
|
if (m_cTrnStatus.Head.HoldStat != "")
|
|||
|
m_cTrnStatus.Head.HoldStat = ItemConst.HOLD_STAT_CD.CANCEL;
|
|||
|
|
|||
|
//17.05.18 dkshin 쇼킹박스 추가
|
|||
|
//쇼킹상품 취소 처리 로직 필요!
|
|||
|
if (m_cTrnStatus.Head.ShockingBoxStat == "1")
|
|||
|
{
|
|||
|
IHoldDeal m_cHoldDeal = (IHoldDeal)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HOLD_DEAL);
|
|||
|
//m_cHoldDeal.UpdateHoldDeal(m_cTrnStatus.Head.SaleDate, m_cTrnStatus.Head.PosNo, m_cTrnStatus.Head.RegNo, "0", 0, 0);
|
|||
|
m_cHoldDeal.UpdateShockingBOX();
|
|||
|
m_cTrnStatus.Head.ShockingBoxStat = "0";
|
|||
|
}
|
|||
|
|
|||
|
// 테이블 거래 완료 처리
|
|||
|
sRet = m_cTableSvr.CompleteSaleOrder();
|
|||
|
|
|||
|
// 거래 완료 처리
|
|||
|
sRet = m_cSaleComplete.PosSaleExecute(new string[] { });
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 판매상태 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
//// 거래 완료 후 초기화 처리
|
|||
|
cFormSaleMain.DisplayInit(true, true);
|
|||
|
//// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, true);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL || m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.NORMAL.SALE)
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.NORMAL.SALE;
|
|||
|
m_cTrnStatus.Head.NonSaleRsnCd = "0";
|
|||
|
|
|||
|
//// 거래 완료 후 초기화 처리
|
|||
|
cFormSaleMain.DisplayInit(true, true);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT)
|
|||
|
{
|
|||
|
cFormSaleMain.SaleMainExit();
|
|||
|
}
|
|||
|
}
|
|||
|
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 true;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 거래 보류
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool HoldDeal()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
//정상 거래 인지 체크
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL
|
|||
|
&& (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS))
|
|||
|
{
|
|||
|
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
if (aSaleItem.Count > 0)
|
|||
|
{
|
|||
|
// 영업일자 체크
|
|||
|
if (CmUtil.LongParse(m_cPosStatus.Base.SaleDate) < CmUtil.LongParse(System.DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
{
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HH")) > 5)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
int iMaxCnt = CmUtil.IntParse(PosMstManager.GetPosOption(POS_OPTION.OPT017));
|
|||
|
|
|||
|
if (iMaxCnt > 0)
|
|||
|
{
|
|||
|
//거래 건수 체크
|
|||
|
IHoldDeal m_cHoldDeal = (IHoldDeal)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HOLD_DEAL);
|
|||
|
DataTable dt = m_cHoldDeal.SearchHoldDealList(m_cPosStatus.Base.SaleDate);
|
|||
|
|
|||
|
if (dt == null || dt.Rows.Count == 0)
|
|||
|
{
|
|||
|
//처리 없음
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (iMaxCnt < dt.Rows.Count)
|
|||
|
{
|
|||
|
// 보류로 가능 횟수가 초과 되었습니다.
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0637));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 보류로 저장 하시겠습니까?
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0527) == true)
|
|||
|
{
|
|||
|
|
|||
|
//ICampaignUs cCampaignMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
////캠페인 초기화
|
|||
|
//cCampaignMain.ClearCampaignAmt();
|
|||
|
//m_cDataService.UpdatePluAmount();
|
|||
|
|
|||
|
//#20170920 보류 처리시 임의할인 내역 유지 되도록 수정 start
|
|||
|
//기존
|
|||
|
//m_cPluService.ItemDcAllClear(true);
|
|||
|
//변경
|
|||
|
m_cPluService.ItemDcAllClear(true, false, false);
|
|||
|
//#20170920 보류 처리시 임의할인 내역 유지 되도록 수정 end
|
|||
|
|
|||
|
//보류 저장
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.LOG.HOLD_DEAL;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.HoldStat == ItemConst.HOLD_STAT_CD.LOAD)
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.HoldStat = ItemConst.HOLD_STAT_CD.REHOLD;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.HoldStat = ItemConst.HOLD_STAT_CD.HOLD;
|
|||
|
}
|
|||
|
|
|||
|
// 테이블 거래 완료 처리
|
|||
|
string sRet = m_cTableSvr.CompleteSaleOrder();
|
|||
|
|
|||
|
// 거래 완료 처리
|
|||
|
sRet = m_cSaleComplete.PosSaleExecute(new string[] { });
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 판매상태 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 거래 완료 후 초기화 처리
|
|||
|
cFormSaleMain.DisplayInit(true, true);
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, true);
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 보류 불러오기
|
|||
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
//거래 건수 체크
|
|||
|
IHoldDeal m_cHoldDeal = (IHoldDeal)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HOLD_DEAL);
|
|||
|
DataTable dt = m_cHoldDeal.SearchHoldDealList(m_cPosStatus.Base.SaleDate);
|
|||
|
if (dt == null || dt.Rows.Count == 0)
|
|||
|
{
|
|||
|
// 거래내역이 존재하지 않습니다.
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0269));
|
|||
|
return false;
|
|||
|
}
|
|||
|
else if (dt.Rows.Count == 1)
|
|||
|
{
|
|||
|
// 내역 불러오기를 하시겠습니까?
|
|||
|
if (WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0254)) == true)
|
|||
|
{
|
|||
|
DataRow dr = dt.Rows[0];
|
|||
|
|
|||
|
m_cHoldDeal.LoadLocalTranPlu(dr["SALE_DT"].ToString(), dr["POS_NO"].ToString(), dr["REG_NO"].ToString());
|
|||
|
m_cHoldDeal.UpdateHoldDeal(dr["SALE_DT"].ToString(), dr["POS_NO"].ToString(), dr["REG_NO"].ToString(), "1", 0, 0);
|
|||
|
|
|||
|
m_cTrnStatus.Head.HoldOrgRegNo = dr["REG_NO"].ToString();
|
|||
|
m_cTrnStatus.Head.HoldStat = ItemConst.HOLD_STAT_CD.LOAD;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_SAL_HOLD });
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
// 상품 내역 불러오기
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
if (alPluItem.Count > 0)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[0];
|
|||
|
if (CmUtil.LongParse(cPluItem.NONSALES_RSN_CD) != 0) // 로스거래 이면(비매출사유코드가 있으면)
|
|||
|
{
|
|||
|
// 비매출 사유명 설정
|
|||
|
DataTable dtNoSaleRsnCd = m_cDataCommon.SeletCommonCode(PosConst.COMMON_CODE_GROUP.S0001, "");
|
|||
|
foreach (Column.TR_PLU.DATA cLossPluItem in alPluItem)
|
|||
|
{
|
|||
|
if (dtNoSaleRsnCd != null && dtNoSaleRsnCd.Rows.Count > 0)
|
|||
|
{
|
|||
|
foreach (DataRow dr in dtNoSaleRsnCd.Rows)
|
|||
|
{
|
|||
|
if (cLossPluItem.NONSALES_RSN_CD == CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CMM_CD))
|
|||
|
{
|
|||
|
cLossPluItem.NONSALES_RSN_NM = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CD_NM);
|
|||
|
|
|||
|
m_cTrnStatus.Head.NonSaleRsnCd = cPluItem.NONSALES_RSN_CD;
|
|||
|
m_cTrnStatus.Head.LossTitle = cPluItem.NONSALES_RSN_NM;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.ETC.LOSS;
|
|||
|
}
|
|||
|
|
|||
|
// 상품 판매가 재계산
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, false);
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//판매 거래에서만 가능합니다.
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
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 true;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 낱개 반품 셋팅
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool RegisterReturnItem()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
// 낱개 반품 셋팅
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_WAIT)
|
|||
|
{
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND) //상품 등록되어 있지 않고 낱개 반품 다시 눌렀을때! 원복
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.RtnReasonCd = ""; // 선택된 사유코드
|
|||
|
m_cTrnStatus.Head.RtnReasonMemo = ""; // 선택된 사유명
|
|||
|
|
|||
|
m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.NORMAL.SALE;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 반품 사유코드 등록
|
|||
|
frmSelReasonCode fForm = (frmSelReasonCode)FormManager.GetForm(FormManager.FORM_REASON_CODE);
|
|||
|
if (fForm == null)
|
|||
|
{
|
|||
|
fForm = new frmSelReasonCode();
|
|||
|
FormManager.AddForm(FormManager.FORM_REASON_CODE, fForm);
|
|||
|
}
|
|||
|
|
|||
|
fForm.ReasonGroup = PosConst.COMMON_CODE_GROUP.Z0008; // 사유 그룹코드
|
|||
|
if (fForm.ShowDialog() != DialogResult.OK)
|
|||
|
{
|
|||
|
return false;
|
|||
|
}
|
|||
|
m_cTrnStatus.Head.RtnReasonCd = fForm.ReasonCode; // 선택된 사유코드
|
|||
|
m_cTrnStatus.Head.RtnReasonMemo = fForm.ReasonName; // 선택된 사유명
|
|||
|
|
|||
|
m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.REFUND;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.NORMAL.SALE;
|
|||
|
}
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 상품 No Tax
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow"></param>
|
|||
|
/// <returns></returns>
|
|||
|
private bool ItemNoTax(string sSelRow)
|
|||
|
{
|
|||
|
|
|||
|
bool bRet = false;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 판매 화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 상품할인 처리
|
|||
|
string nStat = m_cPluService.SetNoTaxItem(sSelRow);
|
|||
|
if (nStat != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(1, false);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
//#Rhee, 20180212 전체상품 No Tax 추가 Start
|
|||
|
/// <summary>
|
|||
|
/// 상품 No Tax
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool ItemAllNoTax()
|
|||
|
{
|
|||
|
|
|||
|
bool bRet = false;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 판매 화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
string nStat = string.Empty;
|
|||
|
|
|||
|
// 상품할인 처리
|
|||
|
nStat = m_cPluService.SetAllNoTaxItem();
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(1, false);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
|
|||
|
}
|
|||
|
//#Rhee, 20180212 전체상품 No Tax 추가 End
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 판매로스 셋팅
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool RegSaleLosss(string sSelRow)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
// 판매LOSS 셋팅
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_WAIT)
|
|||
|
{
|
|||
|
string sLossCode = string.Empty;
|
|||
|
sLossCode = WinBasic.ShowForm(new string[] { FormManager.FORM_MENU_SUB, PosKey.MENU_KEY.SALE_LOSS });
|
|||
|
//코드 받아 오기
|
|||
|
|
|||
|
if (sLossCode != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
|
|||
|
string[] saRuleSplit = sLossCode.Split(new string[] { "~^(" }, StringSplitOptions.None);
|
|||
|
|
|||
|
m_cTrnStatus.Head.NonSaleRsnCd = saRuleSplit[0];
|
|||
|
|
|||
|
if (CmUtil.LenH(saRuleSplit[1]) > 8)
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.LossTitle = CmUtil.MidH(saRuleSplit[1], 0, 8).Trim();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.LossTitle = saRuleSplit[1].Trim();
|
|||
|
}
|
|||
|
|
|||
|
m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.ETC.LOSS;
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING)
|
|||
|
{
|
|||
|
|
|||
|
//1. 로스거래인지 체크
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS)
|
|||
|
{
|
|||
|
//2. 선택한 상품 체크
|
|||
|
int nSelRow = CmUtil.IntParse(sSelRow);
|
|||
|
|
|||
|
// 상품 내역 불러오기
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
if (alPluItem.Count > 0)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cItem = (Column.TR_PLU.DATA)alPluItem[nSelRow];
|
|||
|
|
|||
|
if (cItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
//취소 건은 처리 없음!
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
|
|||
|
//3. 폼을 호출 해서 코드 받고
|
|||
|
|
|||
|
string sLossCode = string.Empty;
|
|||
|
sLossCode = WinBasic.ShowForm(new string[] { FormManager.FORM_MENU_SUB, PosKey.MENU_KEY.SALE_LOSS });
|
|||
|
//코드 받아 오기
|
|||
|
|
|||
|
if (sLossCode != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
//4. 아이템에 저장 하고
|
|||
|
|
|||
|
string[] saRuleSplit = sLossCode.Split(new string[] { "~^(" }, StringSplitOptions.None);
|
|||
|
|
|||
|
cItem.NONSALES_RSN_CD = saRuleSplit[0];
|
|||
|
|
|||
|
if (CmUtil.LenH(saRuleSplit[1]) > 8)
|
|||
|
{
|
|||
|
cItem.NONSALES_RSN_NM = CmUtil.MidH(saRuleSplit[1], 0, 8).Trim();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cItem.NONSALES_RSN_NM = saRuleSplit[1].Trim();
|
|||
|
}
|
|||
|
|
|||
|
m_cTrnStatus.Head.NonSaleRsnCd = cItem.NONSALES_RSN_CD;
|
|||
|
m_cTrnStatus.Head.LossTitle = cItem.NONSALES_RSN_NM;
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
cFormSaleMain.DisplayItem(1, false);
|
|||
|
|
|||
|
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
//5. 완료
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//등록된 상품이 없어 처리 할께 없다.
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 로스거래가 아니므로 무시한다.
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 처리 가능한 상태가 아님!
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
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;
|
|||
|
}
|
|||
|
|
|||
|
private bool OrderCompleted()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT)
|
|||
|
{
|
|||
|
|
|||
|
// 영업일자 체크
|
|||
|
if (CmUtil.LongParse(m_cPosStatus.Base.SaleDate) < CmUtil.LongParse(System.DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
{
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HH")) > 5)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 테이블 판매모드
|
|||
|
if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.NO_ORDER_SALE)
|
|||
|
{
|
|||
|
if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_WAIT)
|
|||
|
{
|
|||
|
// 후불테이블의 일반판매모드 일때는 주문을 완료 할 수 없습니다.
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0054);
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
// 모든 거래 데이터 삭제
|
|||
|
m_cDataService.DeleteTranItem();
|
|||
|
// 거래정보 초기화
|
|||
|
m_cTrnStatus.ClearAll();
|
|||
|
// 판매화면 종료
|
|||
|
cFormSaleMain.SaleMainExit();
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_WAIT || m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING
|
|||
|
|| m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_DOING_OPT)
|
|||
|
{
|
|||
|
bool bSaleAble = false;
|
|||
|
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in alPluItem)
|
|||
|
{
|
|||
|
if (cPluItem.ORDER_OK_FLAG != PosConst.PLU_ORDER_OK_FLAG.ORDER_ING || cPluItem.CANCEL_DIV != PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
bSaleAble = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (bSaleAble == false)
|
|||
|
{
|
|||
|
// 모든 거래 데이터 삭제
|
|||
|
m_cDataService.DeleteTranItem();
|
|||
|
// 거래정보 초기화
|
|||
|
m_cTrnStatus.ClearAll();
|
|||
|
// 판매화면 종료
|
|||
|
cFormSaleMain.SaleMainExit();
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
// 일괄취소 확인
|
|||
|
var isTradeStop = true;
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in alPluItem)
|
|||
|
{
|
|||
|
if (cPluItem.CANCEL_DIV != PosConst.CANCEL_DIV.CANCEL && cPluItem.CANCEL_DIV_MAIN != PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
isTradeStop = false;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (isTradeStop)
|
|||
|
{
|
|||
|
return this.TradeStop();
|
|||
|
}
|
|||
|
|
|||
|
if ((m_cTrnStatus.Head.TradeKind).Substring(0, 1) != ItemConst.TRAN_KIND.NORMAL.DELIMITER)
|
|||
|
{
|
|||
|
// 거래 완료 처리
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return false;
|
|||
|
|
|||
|
m_cTrnStatus.Sale.MenualOrderValue = string.Empty;
|
|||
|
|
|||
|
SetPayGuest("4");
|
|||
|
|
|||
|
// Add, 2017.01.18
|
|||
|
// 주방프린터 수동출력 처리 0:자동 1:수동(프린터선택) 2:수동(상품선택)
|
|||
|
MenualOrderKtchProcess();
|
|||
|
|
|||
|
// 주문내역 완료 처리
|
|||
|
string sReturn = m_cTableSvr.CompleteMenuOrder();
|
|||
|
if (sReturn != UserCom.RST_OK)
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0088)) == false)
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
// 모든 거래 데이터 삭제
|
|||
|
m_cDataService.DeleteTranItem();
|
|||
|
// 거래정보 초기화
|
|||
|
m_cTrnStatus.ClearAll();
|
|||
|
// 판매화면 종료
|
|||
|
cFormSaleMain.SaleMainExit();
|
|||
|
}
|
|||
|
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 주문 종료(거래 저장없이 주문완료)
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool OrderCancelExit()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cPosStatus.Base.PosType != PosConst.POS_TYPE.DEFERRED_PAYMENT) return false;
|
|||
|
|
|||
|
// 영업일자 체크
|
|||
|
if (CmUtil.LongParse(m_cPosStatus.Base.SaleDate) < CmUtil.LongParse(System.DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
{
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HH")) > 5)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in alPluItem)
|
|||
|
{
|
|||
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING || cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD)
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0675) == false) return false;
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 모든 거래 데이터 삭제
|
|||
|
m_cDataService.DeleteTranItem();
|
|||
|
// 거래정보 초기화
|
|||
|
m_cTrnStatus.ClearAll();
|
|||
|
// 판매화면 종료
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.SaleMainExit();
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
private bool HappyOrderWeb()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_WEB_HAPPY_ORDER, PosKey.MENU_KEY.WEB_HP_ORD });
|
|||
|
if (sRet == UserCom.RST_OK)
|
|||
|
{
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
private bool HappyOrder()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD, "01" });
|
|||
|
if (sRet == UserCom.RST_OK)
|
|||
|
{
|
|||
|
// 거래 초기화
|
|||
|
m_cDataService.InitTranHeader();
|
|||
|
|
|||
|
// 판매중 모드 설정
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
|
|||
|
m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.FORIGN.O2O;
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.DisplayInit(true, false);
|
|||
|
// 상품등록 내역 표시
|
|||
|
cFormSaleMain.DisplayItem(0, false);
|
|||
|
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
private bool ItemMmeo(bool bIsFireKey)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
// 후불에서만 사용 가능
|
|||
|
if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.PRE_PAYMENT)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0631);
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
// 주방프린트 사용(0 : 미사용, 1 : 사용)
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT506) != "1")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0414);
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
int iSelectedRow = cFormSaleMain.GetSelectedIndexOnSaleItemGrid();
|
|||
|
|
|||
|
ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alSaleItem[iSelectedRow];
|
|||
|
|
|||
|
// 취소상품 메모 불가
|
|||
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017);
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
// 부가메뉴는 메모 불가
|
|||
|
if (cPluItem.SUBPRC_MENU_KEY_DIV != "0")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0665);
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
// 출력대상 상품 확인
|
|||
|
var cnt = m_cTableSvr.GetKtchDiveceCount(cPluItem.ORDER_OK_FLAG, m_cPosStatus.Sale.SelectFloorCd, m_cPosStatus.Sale.SelectTableNo, cPluItem.SUB_SHOP_CD + cPluItem.ITEM_PLU_CD);
|
|||
|
if (cnt <= 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0666);
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
// FIRE KEY는 한번에 하나씩만..
|
|||
|
if (bIsFireKey)
|
|||
|
{
|
|||
|
if (cPluItem.ITEM_MEMO_1 == "FIRE KEY") return true;
|
|||
|
}
|
|||
|
|
|||
|
//string sRet = WinTable.ShowForm(new string[] { FormManager.FORM_ETC_TABLE_MEMO, (bIsFireKey == false ? "1" : "9"), iSelectedRow.ToString() });
|
|||
|
string msgId = bIsFireKey == false ? PosConst.KPS_ORD_MSG_ID.ITEM_MEMO : PosConst.KPS_ORD_MSG_ID.FIRE_KEY;
|
|||
|
string sRet = WinTable.ShowForm(new string[] { FormManager.FORM_ETC_TABLE_MEMO, msgId, iSelectedRow.ToString() });
|
|||
|
if (sRet == UserCom.RST_OK)
|
|||
|
{
|
|||
|
bRet = true;
|
|||
|
|
|||
|
if (bIsFireKey)
|
|||
|
{
|
|||
|
//ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)alSaleItem[iSelectedRow];
|
|||
|
cSaleItem.FIRE_KEY = true;
|
|||
|
}
|
|||
|
|
|||
|
cFormSaleMain.DisplayItem(1, false);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 세트메뉴 상품 변경 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sSelRow">선택행</param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool SetMenuItemChange(string sSelRow)
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
// 상품 아이템
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
// 상품 정보
|
|||
|
int nSelRow = CmUtil.IntParse(sSelRow);
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[nSelRow];
|
|||
|
|
|||
|
// 취소 상품은 변경 불가
|
|||
|
if (cPluItem.CANCEL_DIV == "1" || cPluItem.CANCEL_DIV_MAIN == "1")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0017);
|
|||
|
return false;
|
|||
|
}
|
|||
|
if (cPluItem.ORDER_OK_FLAG != PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0027);
|
|||
|
return false;
|
|||
|
}
|
|||
|
if (cPluItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.SET_DETL)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0307);
|
|||
|
return false;
|
|||
|
}
|
|||
|
if (cPluItem.SET_PLU_SET_GROUP_CODE == "")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0307);
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
// 세트메뉴 상품 변경 등록
|
|||
|
frmSetMenuChg fForm = (frmSetMenuChg)FormManager.GetForm(FormManager.FORM_SET_MENU_CHANGE);
|
|||
|
if (fForm == null)
|
|||
|
{
|
|||
|
fForm = new frmSetMenuChg();
|
|||
|
FormManager.AddForm(FormManager.FORM_SET_MENU_CHANGE, fForm);
|
|||
|
}
|
|||
|
|
|||
|
fForm.SetSelectRow = sSelRow;
|
|||
|
if (fForm.ShowDialog() == DialogResult.OK)
|
|||
|
{
|
|||
|
// 판매 화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(1, 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 bRet;
|
|||
|
}
|
|||
|
|
|||
|
#region 주석
|
|||
|
///// <summary>
|
|||
|
/////
|
|||
|
///// </summary>
|
|||
|
///// <returns></returns>
|
|||
|
//public bool PayDcDuplicationCheck(string sPayGrpCode, string sPayCode)
|
|||
|
//{
|
|||
|
// bool bRet = true;
|
|||
|
|
|||
|
// try
|
|||
|
// {
|
|||
|
// int iCpn = 1; //할인(캠페인)
|
|||
|
// int iDcTelecom = 1; //할인(통신사)
|
|||
|
// int iDcPnt = 1; //할인(포인트)
|
|||
|
// int iDcCpn = 1; //할인(쿠폰)
|
|||
|
// int iDcEmp = 1; //할인(직원)
|
|||
|
// int iDcUser = 1; //할인(임의)
|
|||
|
|
|||
|
// int iPayNrl = 1; //결제(일반)
|
|||
|
// int iPayMobile = 1; //결제(모바일)
|
|||
|
// int iPayPnt = 1; //결제(포인트)
|
|||
|
|
|||
|
|
|||
|
// int[,] aCheckPoint = new int[9, 2];
|
|||
|
|
|||
|
// for (int iRow = 0; iRow < aCheckPoint.GetLength(0) ; iRow++)
|
|||
|
// {
|
|||
|
// aCheckPoint[iRow, 0] = 1;
|
|||
|
// aCheckPoint[iRow, 1] = 0;
|
|||
|
// }
|
|||
|
|
|||
|
|
|||
|
// /////////////////////////////////////
|
|||
|
// // 할인
|
|||
|
// /////////////////////////////////////
|
|||
|
// //캠페인
|
|||
|
|
|||
|
// ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
// for (int iRow = 0; iRow < alPluItem.Count; iRow++)
|
|||
|
// {
|
|||
|
// Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[iRow];
|
|||
|
|
|||
|
// if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.NORMAL)
|
|||
|
// {
|
|||
|
// if (cPluItem.CPN_DC_AMT > 0)
|
|||
|
// {
|
|||
|
// //aCheckPoint[0, 0] = 0;
|
|||
|
// aCheckPoint[0, 1] = 1; //있음!
|
|||
|
// }
|
|||
|
// if (cPluItem.ITEM_DC_AMT > 0)
|
|||
|
// {
|
|||
|
// if(sPayGrpCode == ItemConst.TR_ITEM_ID.USER_DC_ITEM)
|
|||
|
// {
|
|||
|
// //같은 그룹에 결제/할인 수단이 등록되어 있어 처리 할 수 없습니다.
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
|
|||
|
// aCheckPoint[1, 0] = 0;
|
|||
|
// aCheckPoint[1, 1] = 1; //있음!
|
|||
|
// }
|
|||
|
|
|||
|
// }
|
|||
|
|
|||
|
// }
|
|||
|
|
|||
|
|
|||
|
// //할인 체크
|
|||
|
// ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
|
|||
|
// StringBuilder sbSQL = new StringBuilder();
|
|||
|
// sbSQL.Length=0;
|
|||
|
|
|||
|
// for (int iRow = 0; alPayItem.Count > iRow; iRow++)
|
|||
|
// {
|
|||
|
|
|||
|
// Column.TR_PAYMENT.DATA clPayItem = (Column.TR_PAYMENT.DATA)alPayItem[iRow];
|
|||
|
|
|||
|
// if(clPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.NORMAL)
|
|||
|
// {
|
|||
|
// if(clPayItem.PAY_WAY_CD == sPayGrpCode)
|
|||
|
// {
|
|||
|
// //같은 그룹에 결제/할인 수단이 등록되어 있어 처리 할 수 없습니다.
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// if(sbSQL.Length == 0 )
|
|||
|
// {
|
|||
|
// sbSQL.Append("'");
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// sbSQL.Append(",'");
|
|||
|
|
|||
|
// }
|
|||
|
// sbSQL.Append(clPayItem.PAY_WAY_CD);
|
|||
|
// sbSQL.Append(clPayItem.PAY_DTL_CD_01);
|
|||
|
// sbSQL.Append("'");
|
|||
|
|
|||
|
// //등록 된 자기 자신 등록 유무 넣기
|
|||
|
|
|||
|
// switch (sPayGrpCode)
|
|||
|
// {
|
|||
|
// case ItemConst.TR_ITEM_ID.PAY_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.CASH_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.CHECK_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.CREDIT_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.CREDITCARD_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.EMP_PAY_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.FOREIGNEX_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.GIFT_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.MOBILECASH_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.MOBILECON_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.PAYETC_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.POINT_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.PPCARD_ITEM:
|
|||
|
// case ItemConst.TR_ITEM_ID.RESERVATION_ITEM:
|
|||
|
// {
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// case ItemConst.TR_ITEM_ID.COUPON_ITEM:
|
|||
|
// {
|
|||
|
// aCheckPoint[4, 1] = 1; //있음!
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// case ItemConst.TR_ITEM_ID.MOBILE_COM_POINT:
|
|||
|
// {
|
|||
|
// aCheckPoint[2, 1] = 1; //있음!
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// case ItemConst.TR_ITEM_ID.EMP_DC_ITEM:
|
|||
|
// {
|
|||
|
// aCheckPoint[5, 1] = 1; //있음!
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// }
|
|||
|
|
|||
|
// }
|
|||
|
|
|||
|
// }
|
|||
|
|
|||
|
// }
|
|||
|
|
|||
|
// DataTable dt = m_cMstPayDcService.Select(new string[] { PosMst.MST_PAY_DC.TABLE_NAME_GROUPBY, sbSQL.ToString(), PosConst.PAY_DC_TYPE.DC });
|
|||
|
|
|||
|
// if(dt == null || dt.Rows.Count <= 0)
|
|||
|
// {
|
|||
|
// //내역 없음!
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// foreach (DataRow dr in dt.Rows)
|
|||
|
// {
|
|||
|
// //할인
|
|||
|
|
|||
|
// aCheckPoint[0, 0] = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.CPI_DUP_YN);
|
|||
|
// aCheckPoint[1, 0] = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.DC_GNRL_DUP_YN);
|
|||
|
// aCheckPoint[2, 0] = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.DC_TELECOM_DUP_YN);
|
|||
|
// aCheckPoint[3, 0] = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.DC_POINT_DUP_YN);
|
|||
|
// aCheckPoint[4, 0] = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.DC_CPN_DUP_YN);
|
|||
|
// aCheckPoint[5, 0] = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.DC_EMP_DC_DUP_YN);
|
|||
|
|
|||
|
// //결제
|
|||
|
// aCheckPoint[6, 0] = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.PAY_GNRL_DUP_YN);
|
|||
|
// aCheckPoint[7, 0] = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.PAY_MOBILE_DUP_YN);
|
|||
|
// aCheckPoint[8, 0] = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.PAY_POINT_DUP_YN);
|
|||
|
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// }
|
|||
|
|
|||
|
// if (sPayGrpCode == "" && sPayCode == "")
|
|||
|
// {
|
|||
|
// //두개 코드가 공백이면 캠페인 경우이고 캠페인 중복 가능 여부만 체크 하면됨!
|
|||
|
// if (aCheckPoint[0, 0] != 1)
|
|||
|
// bRet = false;
|
|||
|
// else
|
|||
|
// bRet = true;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
|
|||
|
// //캠페인 외 중복 체크
|
|||
|
|
|||
|
// dt = m_cMstPayDcService.Select(new string[] { PosMst.MST_PAY_DC.TABLE_NAME_GROUPBY, sPayGrpCode, sPayCode });
|
|||
|
|
|||
|
// //현재 등록 결제 수단과 등록된 결제 중복 체크 로직!
|
|||
|
|
|||
|
// if (dt == null || dt.Rows.Count <= 0)
|
|||
|
// {
|
|||
|
// //등록 정보 없음
|
|||
|
// return false;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// foreach (DataRow dr in dt.Rows)
|
|||
|
// {
|
|||
|
// //할인
|
|||
|
|
|||
|
// if (CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.DC_TELECOM_DUP_YN) == 1 && aCheckPoint[2, 0] == 1)
|
|||
|
// {
|
|||
|
// //통신사 중복!!
|
|||
|
|
|||
|
// }
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// iDcPnt = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.DC_POINT_DUP_YN);
|
|||
|
// iDcCpn = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.DC_CPN_DUP_YN);
|
|||
|
// iDcEmp = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.DC_EMP_DC_DUP_YN);
|
|||
|
|
|||
|
// //결제
|
|||
|
// iPayNrl = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.PAY_GNRL_DUP_YN);
|
|||
|
// iPayMobile = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.PAY_MOBILE_DUP_YN);
|
|||
|
// iPayPnt = CmUtil.GetDataRowInt(dr, PosMst.MST_PAY_DC.DATA.PAY_POINT_DUP_YN);
|
|||
|
|
|||
|
// 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 bRet;
|
|||
|
|
|||
|
//}
|
|||
|
#endregion
|
|||
|
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
#region 인천공항 데이터 전송!!!!
|
|||
|
private void IncheonAireport(string sMenuKey)
|
|||
|
{
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) != "1")
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0765);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|||
|
"IncheonAirport Button Click Start ");
|
|||
|
|
|||
|
//#20171227 인천공항 포스연동 start, phj - #20180313
|
|||
|
//기존
|
|||
|
//if (m_cAirPortTran.IncheonAireportClose(sMenuKey, "Y") == UserCom.RST_OK)
|
|||
|
|
|||
|
//변경
|
|||
|
sRet = m_cAirPortTran.IncheonAireportClose(sMenuKey, "Y");
|
|||
|
if (sRet == UserCom.RST_OK)
|
|||
|
//#20171227 인천공항 포스연동 end, phj - #20180313
|
|||
|
{
|
|||
|
//#20180119 로직변경 start,phj
|
|||
|
//기존
|
|||
|
/*
|
|||
|
// 팝업
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_INCHEONAIRPORT, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) { return; }
|
|||
|
*/
|
|||
|
//#20180119 로직변경 end,phj
|
|||
|
|
|||
|
m_cDataService.UpdatePluAmount(); // 상품 합계금액 계산(거래해더)
|
|||
|
m_cDataService.UpdatePayAmount(); // 결제 금액 재 계산 처리
|
|||
|
|
|||
|
// 결제체크
|
|||
|
CheckSaleComplete();
|
|||
|
}
|
|||
|
|
|||
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|||
|
"IncheonAirport Button Click End [" + sRet.ToString() + "]");
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
#region 인천공항 결제완료처리
|
|||
|
private string IncheonAireportPayClose(string sMenuKey)
|
|||
|
{
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) != "1")
|
|||
|
{
|
|||
|
//WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0765);
|
|||
|
//인천공항이 아닌데, 혹시 이 함수 탔을 경우 대비.
|
|||
|
return UserCom.RST_OK;
|
|||
|
}
|
|||
|
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
//#20171227 인천공항 포스연동 start, phj - #20180313
|
|||
|
//위치이동
|
|||
|
//기존
|
|||
|
/*
|
|||
|
//#20180119 로직변경 start,phj
|
|||
|
bool bCashPayCheck = false;
|
|||
|
|
|||
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
for (int iRow = 0; iRow < alPayItem.Count; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[iRow];
|
|||
|
|
|||
|
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.CASH_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.CASH.CASH_PAY)
|
|||
|
{
|
|||
|
//#20171227 인천공항 포스연동 start, phj - #20180313
|
|||
|
if (cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|||
|
//#20171227 인천공항 포스연동 end, phj - #20180313
|
|||
|
bCashPayCheck = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (bCashPayCheck == true)
|
|||
|
{
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
//#20180119 로직변경 start,phj
|
|||
|
*/
|
|||
|
//#20171227 인천공항 포스연동 end, phj - #20180313
|
|||
|
|
|||
|
|
|||
|
|
|||
|
string sCloseRet = m_cAirPortTran.IncheonAireportClose(sMenuKey, "N");
|
|||
|
|
|||
|
//if (sCloseRet == UserCom.RST_ERR)
|
|||
|
if (sCloseRet == UserCom.RST_OK)
|
|||
|
{
|
|||
|
//#20180119 로직변경 start,phj
|
|||
|
//기존
|
|||
|
/*
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_INCHEONAIRPORT, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
//WinManager.ConfirmMessage("통합POS에서 결제내역을 가져오는데 실패하였습니다.");
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
*/
|
|||
|
//#20180119 로직변경 end,phj
|
|||
|
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
|
|||
|
m_cDataService.UpdatePluAmount(); // 상품 합계금액 계산(거래해더)
|
|||
|
m_cDataService.UpdatePayAmount(); // 결제 금액 재 계산 처리
|
|||
|
}
|
|||
|
|
|||
|
//#20180119 로직변경 start,phj
|
|||
|
//기존
|
|||
|
/*
|
|||
|
else if (sCloseRet == UserCom.RST_IGNORE)
|
|||
|
{
|
|||
|
// 예를들어)
|
|||
|
// spc 결제완료 -> 통합포스 일괄취소 -> 인천공항포스 버튼 클릭 -> y 루틴 타고, 결제완료되는 시점에 n 루틴타면 두번 등록되는 현상 방지
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
*/
|
|||
|
//#20180119 로직변경 end,phj
|
|||
|
|
|||
|
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
//#20170828 해피포인트 적립 제외 버튼 추가 phj, start
|
|||
|
private void HappyPoint_SaveExclude(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
//#20180103 해피포인트 적립 제외 버튼 선택 취소 기능 start
|
|||
|
//기존
|
|||
|
//m_cTrnStatus.Head.HP_EXCLUDE_YN = "1";
|
|||
|
//변경
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.HP_EXCLUDE_YN == "1")
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.HP_EXCLUDE_YN = "0";
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.HP_EXCLUDE_YN = "1";
|
|||
|
}
|
|||
|
|
|||
|
//#20180103 해피포인트 적립 제외 버튼 선택 취소 기능 end
|
|||
|
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.DisplayPayment(); // 결제등록정보 화면표시
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
//#20170828 해피포인트 적립 제외 버튼 추가 phj, end
|
|||
|
|
|||
|
|
|||
|
#region PayMainProc 결제 메인 기능 처리
|
|||
|
/// <summary>
|
|||
|
/// 결제 메인 기능 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sFuncCode"></param>
|
|||
|
public void PayMainProc(string sFuncCode, string sInputData)
|
|||
|
{
|
|||
|
string sRet;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (WinBasic.CheckMenuKeyAuth(sFuncCode) == false) return; // 기능키 판매원 권한 체크
|
|||
|
//string sMngAuth = PosMstManager.GetMstPicAuth(m_cPosStatus.Base.CashierNo + sFuncCode);
|
|||
|
|
|||
|
//switch (sMngAuth)
|
|||
|
//{
|
|||
|
// case PosConst.MNG_AUTH_DIV.NON_PERMISSION:
|
|||
|
// WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0308), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0505), false);
|
|||
|
// return;
|
|||
|
// case PosConst.MNG_AUTH_DIV.PERMISSION:
|
|||
|
// break;
|
|||
|
// case PosConst.MNG_AUTH_DIV.SUPERVISOR:
|
|||
|
// if (WinBasic.ShowForm(new string[] { FormManager.FORM_LOG_ON, PosKey.MENU_KEY.REGISTER_ADMIN }) == UserCom.RST_ERR) return;
|
|||
|
// //sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_CASHIER_INPUT, "Supervisor" });
|
|||
|
// //if (sRet != UserCom.RST_OK)
|
|||
|
// //{
|
|||
|
// // return;
|
|||
|
// //}
|
|||
|
// break;
|
|||
|
//}
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.PAY_WAIT || m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.PAY_DOING) // 결제 모드
|
|||
|
{
|
|||
|
//키유효성 체크
|
|||
|
if (m_cDataCommon.FunctionKeyValidity(sFuncCode) == false)
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0054));
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// 결제할인 마스터의 결제할인 중복 가능 여부 체크
|
|||
|
if (m_cDataCommon.PayDcDuplicationCheck(sFuncCode) == false) return;
|
|||
|
|
|||
|
SetPayMainTopMot(sFuncCode); //MOT 변경!
|
|||
|
|
|||
|
SerialMsrToEmul(); // MSR변환프로그램 체크
|
|||
|
|
|||
|
switch (sFuncCode)
|
|||
|
{
|
|||
|
//#20170828 해피포인트 적립 제외 버튼 추가 phj, start
|
|||
|
case PosKey.MENU_KEY.HAPPY_SAVE_EXCLUDE:
|
|||
|
HappyPoint_SaveExclude(sFuncCode);
|
|||
|
break;
|
|||
|
//#20170828 해피포인트 적립 제외 버튼 추가 phj, end
|
|||
|
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
case PosKey.MENU_KEY.INCHEON_AIRPORT:
|
|||
|
IncheonAireport(sFuncCode);
|
|||
|
break;
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|||
|
case PosKey.MENU_KEY.WELCOMECARD_ISSUE:// 웰컴카드 발급
|
|||
|
WelcomeCard_Issue(sFuncCode, "2");
|
|||
|
break;
|
|||
|
|
|||
|
case PosKey.MENU_KEY.WELCOMECARD_HPAPP_REGISTER:// 웰컴카드 해피앱 고객등록
|
|||
|
WelcomeCard_Issue(sFuncCode, "2");
|
|||
|
break;
|
|||
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|||
|
|
|||
|
case PosKey.MENU_KEY.HAPPY_POINT: //해피포인트 적립
|
|||
|
case PosKey.MENU_KEY.HAPPY_POINT_SAVE_CHINA: //해피포인트 적립-중국
|
|||
|
PayHappyPoint(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.OKCASHBACK_SAVE: //OCB포인트 적립
|
|||
|
PayOkCashbackSave(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SKT: // SKT
|
|||
|
case PosKey.MENU_KEY.KT: // KT
|
|||
|
case PosKey.MENU_KEY.KT_VIP: // KT_VIP
|
|||
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|||
|
case PosKey.MENU_KEY.WELCOMECARD_DC:
|
|||
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|||
|
case PosKey.MENU_KEY.LGT: // LGT
|
|||
|
PayPointMobileCom(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.PAY_OTHER_DC: //기타할인
|
|||
|
sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_MENU_SUB, sFuncCode });
|
|||
|
if (sRet != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
PayMainProc(sRet, sInputData); // 선택된 업무 실행
|
|||
|
}
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HAPPY_DC_COUPON: //해피쿠폰할인
|
|||
|
PayHappyPointCouopn(sFuncCode, "0");
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SPC_EMPLOYEE_DC: //SPC임직원할인
|
|||
|
case PosKey.MENU_KEY.SPC_EMPLOYEE_DC_PAY: //SPC임직원할인(결제)
|
|||
|
SPCEmployeeDC(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SPC_EMPLOYEE_DC_CHINA: //SPC임직원할인-중국
|
|||
|
SPCEmployeeDC_China(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SEVERANCE_DC: //세브란스할인
|
|||
|
SeveranceDC(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.DC_COUPONS: //쿠폰할인
|
|||
|
CouponDC(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.PAY_INSTOR_DC: //입점매장직원할인
|
|||
|
case PosKey.MENU_KEY.PAY_INSTOR_DC_5:
|
|||
|
iNStorDC(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.PAY_INSTOR_PAY: // 기타결제
|
|||
|
iNStorDC(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.TOTAL_DC_AMT: // 전체금액할인
|
|||
|
case PosKey.MENU_KEY.TOTAL_DC_RATE: // 전체%할인
|
|||
|
case PosKey.MENU_KEY.TOTAL_ADDDC_AMT: // 추가금액할인
|
|||
|
TotalDC(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.KAIST_DC: // 카이스트할인(2017.05.15)
|
|||
|
case PosKey.MENU_KEY.HPORDER_REVDC: // 해피오더사전예약할인(2017.05.15)
|
|||
|
PayDcMstToDc(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CAKE_VOUCHERS: //케익교환권
|
|||
|
CakeChange(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CASH: //현금
|
|||
|
PayCash(sFuncCode, sInputData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CREDIT_CARD: //신용카드
|
|||
|
PayCreditCard(sFuncCode, sInputData);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.OTHER_PAYMENTS: //기타결제
|
|||
|
sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_MENU_SUB, sFuncCode });
|
|||
|
if (sRet != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
// 세브란스 직원식 상품 체크
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
string sMenuKey = sRet;
|
|||
|
sRet = SeveranceiTemCheck(sMenuKey);
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
PayMainProc(sMenuKey, sInputData); // 선택된 업무 실행
|
|||
|
}
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.MOBILE_COUPON: //모바일 쿠폰
|
|||
|
PayMobileCoupon(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CHECK_CASH: //수표
|
|||
|
case PosKey.MENU_KEY.CHECK_SEARCH: //수표 조회
|
|||
|
PayCheck(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.GIFT_CARD: //상품권
|
|||
|
PayGift(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.MEAL_TICKET: //식권
|
|||
|
PayMealTicket(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.STORE_COUPON: //매장쿠폰
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HAPPY_POINT_USE: //해피포인트 사용
|
|||
|
case PosKey.MENU_KEY.HAPPY_POINT_USE_CHINA: //해피포인트 사용 -중국
|
|||
|
case PosKey.MENU_KEY.OLIBANK: //OLIBANK
|
|||
|
case PosKey.MENU_KEY.OKCASHBACK: //OCB
|
|||
|
case PosKey.MENU_KEY.BLUE_MEMBERS: //블루 멤버스
|
|||
|
case PosKey.MENU_KEY.RED_MEMBERS: //레드 멤버스
|
|||
|
PayPointMemberUse(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SAMSUNG_POINTS: //삼성포인트
|
|||
|
PaySamSungPoint(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.WOORIMORE_POINTS: //우리모아포인트
|
|||
|
PaySamSungPoint(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HYUNDAI_M_POINTS: //현대M포인트
|
|||
|
PaySamSungPoint(sFuncCode);
|
|||
|
break;
|
|||
|
//*** MoonSeokWoo 2017.12.12 Add
|
|||
|
case PosKey.MENU_KEY.SHINHANCARD_POINT: //신한포인트
|
|||
|
PaySamSungPoint(sFuncCode);
|
|||
|
break;
|
|||
|
//*** MoonSeokWoo 2017.12.12 End
|
|||
|
case PosKey.MENU_KEY.BALANCE_VOUCHER: //잔액교환권
|
|||
|
PayExchangeTicket(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.FOREIGN_CURRENCY: //외화
|
|||
|
PayForeign(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ALIPAY: //알리페이
|
|||
|
PayAliPay(PosKey.MENU_KEY.ALIPAY);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.WECHATPAY: //위챗페이
|
|||
|
WeChatPay(PosKey.MENU_KEY.WECHATPAY);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.WECHATPAY_BAIRONG: //샤오청쉬 위챗페이-바이롱;girak.kim;2017.09.11.001
|
|||
|
WeChatPay_BaiRong(PosKey.MENU_KEY.WECHATPAY_BAIRONG);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.XIAOCHENGXU_GIFTCARD: //샤오청쉬 기프트카드;girak.kim;2017.09.11.001
|
|||
|
XiaoChengxu_GiftCard(PosKey.MENU_KEY.XIAOCHENGXU_GIFTCARD);
|
|||
|
break;
|
|||
|
|
|||
|
case PosKey.MENU_KEY.SMILE_PAY: //스마일페이
|
|||
|
SmilePay(PosKey.MENU_KEY.SMILE_PAY);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.T_PAY: // T페이
|
|||
|
PayTPay();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SEVERANCE_PAYMENTS: //세브란스결제
|
|||
|
SeveranceDC(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SPC_EMPLOYEES_PAY: //SPC임직원결제
|
|||
|
SPCEmployeeDC(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.T_MONEY: //T-MONEY
|
|||
|
PayTMoneyCashBee(new string[] { FormManager.FORM_PAY_TMONEY, sFuncCode, "", "" });
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CASHBEE: //캐시비
|
|||
|
PayTMoneyCashBee(new string[] { FormManager.FORM_PAY_TMONEY, sFuncCode, "", "" });
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.TMONEY_SEARCH: //교통카드 잔액조회
|
|||
|
PayTMoneyCashBee(new string[] { FormManager.FORM_PAY_TMONEY, PosKey.MENU_KEY.T_MONEY, "", "S" });
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.PREPAID_CARDS_HPJOY: //선불카드(해피조이)
|
|||
|
PayPrepaidCard_China(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HP_GIFT_CHARGED: //선불카드(해피조이) 충전
|
|||
|
PayHappyGift(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.CREDIT_CUSTOMER: //외상
|
|||
|
PaySaleOnCustomer(sFuncCode);
|
|||
|
break;
|
|||
|
// Rhee, 2017/09/22 딜리버리 외매(선매) 추가 -- START
|
|||
|
case PosKey.MENU_KEY.CREDIT_DELIVERY: //외상 - 딜리버리(외매)
|
|||
|
PaySaleOnCustomer(sFuncCode);
|
|||
|
break;
|
|||
|
// Rhee, 2017/09/22 딜리버리 외매(선매) 추가 -- END
|
|||
|
case PosKey.MENU_KEY.ONLINE_COUPONS: //온라인 쿠폰(중국)
|
|||
|
PayOnLineCoupon(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.PREPAID_CARDS: //선불카드
|
|||
|
PayPrepaidCard(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.HAPPY_GIFTCARD: //해피기프트 사용
|
|||
|
PayHappyGift(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.RESERVATION: //예약
|
|||
|
RegPayReservations();
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SERVICE_CHARGE: //Service Charge
|
|||
|
RegServiceChrge(sFuncCode);
|
|||
|
break;
|
|||
|
//case PosKey.MENU_KEY.PAYMENT_CANCELED: //결제 취소
|
|||
|
// break;
|
|||
|
//case PosKey.MENU_KEY.ADDITIONAL_ORDERS: //추가주문
|
|||
|
// break;
|
|||
|
case PosKey.MENU_KEY.ESC_PREVIOUS: //이전
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.SAMSUNG_SFC: //삼성카드 제휴할인 SFC
|
|||
|
PaySamsungFamilyCard(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.BUNDLE_ITEM: //묶음상품/쇼킹박스
|
|||
|
BundleiTem(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.OURHOME: //아워홈
|
|||
|
PayOurHome(PosKey.MENU_KEY.OURHOME);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.ORDER_CALLCENTER: // 배달(콜센터)
|
|||
|
case PosKey.MENU_KEY.ORDER_BAEMIN: // 배달(배달의민족)
|
|||
|
case PosKey.MENU_KEY.ORDER_YOGIYO: // 배달(요기요)(2017.05.15)
|
|||
|
PayOrderDelivery(sFuncCode);
|
|||
|
break;
|
|||
|
case PosKey.MENU_KEY.VIP_POINT: // 베트남 신용카드(VIP POINT) - 프리픽스 캠페인 적용
|
|||
|
PayVipPoint(sFuncCode);
|
|||
|
break;
|
|||
|
//#20170731, 해피기프트카드(코나머니) 개발 Start, srlee
|
|||
|
case PosKey.MENU_KEY.HPGIFTCARD: // 해피기프트카드(코나머니)
|
|||
|
PayHappyGiftCard(sFuncCode);
|
|||
|
break;
|
|||
|
//#20170731, 해피기프트카드(코나머니) 개발 End, srlee
|
|||
|
// 제휴카드(통합) 할인 처리(2017.08.29) -- START
|
|||
|
case PosKey.MENU_KEY.MOBILE_UNITY:
|
|||
|
PayPointMobileUnity(sFuncCode);
|
|||
|
break;
|
|||
|
// 제휴카드(통합) 할인 처리(2017.08.29) -- END
|
|||
|
//#20180202 인천공항 VIP 라운지 기능미사용으로 주석처리 start,phj
|
|||
|
/*
|
|||
|
case PosKey.MENU_KEY.AIRPORT_VIP_LOUNGE:
|
|||
|
PayInCheonVipLounge(sFuncCode, sInputData);
|
|||
|
break;
|
|||
|
*/
|
|||
|
//#20180202 인천공항 VIP 라운지 기능미사용으로 주석처리 end,phj
|
|||
|
|
|||
|
//grayber@20180208 코레일 마일리지 입력 start - 메뉴키 기능 추가
|
|||
|
case PosKey.MENU_KEY.KORAIL_MILEAGE:
|
|||
|
PayKorailMileage(sFuncCode, sInputData);
|
|||
|
break;
|
|||
|
//grayber@20180208 코레일 마일리지 입력 end
|
|||
|
|
|||
|
default:
|
|||
|
if (WinSale.ExecuteBinessRun(sFuncCode) == UserCom.RST_IGNORE)
|
|||
|
{
|
|||
|
//
|
|||
|
}
|
|||
|
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);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region PayHappyPoint 해피포인트 적립 카드 등록
|
|||
|
/// <summary>
|
|||
|
/// 해피포인트 적립 카드 등록
|
|||
|
/// </summary>
|
|||
|
private void PayHappyPoint(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// 포인트카드 등록 여부 체크(포인트 카드는 한장만 등록 가능)
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.POINT_SAVE_CHINA) return;
|
|||
|
// 해피포인트 - 한국
|
|||
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) return;
|
|||
|
// OKCASHBACK
|
|||
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.OCB_SAVE) return;
|
|||
|
}
|
|||
|
|
|||
|
if (m_cTrnStatus.Sale.RecvedPayAmt > 0)
|
|||
|
{
|
|||
|
// 모바일쿠폰 등록 후 해피포인트 등록 처리(2017.08.28) -- START
|
|||
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
foreach (Column.TR_PAYMENT.DATA cPayItem in alPayItem)
|
|||
|
{
|
|||
|
if (cPayItem.CANCEL_DIV != PosConst.CANCEL_DIV.NORMAL) continue;
|
|||
|
if (cPayItem.PAY_DTL_CD_05 != PosConst.PAY_DC_TYPE.PAY) continue; // 할인결제구분 (1:결제, 2:할인)
|
|||
|
|
|||
|
if (cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.MOBILECON_ITEM)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0392);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// OLD
|
|||
|
//WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0392);
|
|||
|
//return;
|
|||
|
// 모바일쿠폰 등록 후 해피포인트 등록 처리(2017.08.28) -- END
|
|||
|
}
|
|||
|
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT316) == "0") // 해피포인트 업무 사용 여부(0:사용안함, 1:사용함(한국), 2:사용함(중국))
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0364);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// 해피포인트 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_HAPPY_POINT, sMenuKey, "0" });
|
|||
|
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|||
|
//-----------------------------------------------------------------
|
|||
|
// 해피앱 고객이고 HP회원번호 존재하고 HP웰컴카드 번호가 존재 시
|
|||
|
// 웰컴카드 할인적용 할 것인지 안내팝업 오픈!!
|
|||
|
//-----------------------------------------------------------------
|
|||
|
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT516) == "1")
|
|||
|
{
|
|||
|
string m_HPWccCard = "";
|
|||
|
string m_HPCustNo = "";
|
|||
|
bool bWccInfoCheck = false;
|
|||
|
bool bMobileDcCheck = false;
|
|||
|
|
|||
|
#region 웰컴카드 할인조건이 되는지 체크!
|
|||
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|||
|
{
|
|||
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) continue;
|
|||
|
|
|||
|
//#20180607 해피 조회 응답에 웰컴카드 번호만 내려오면 무조건 제휴할인 적용 start
|
|||
|
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") continue; //해피앱여부
|
|||
|
//if (cEtcItem.OCCUR_ENTRY_10 == "") continue; //HP회원번호
|
|||
|
//#20180607 해피 조회 응답에 웰컴카드 번호만 내려오면 무조건 제휴할인 적용 end
|
|||
|
|
|||
|
//HP회원번호
|
|||
|
m_HPCustNo = CmUtil.MidH(cEtcItem.OCCUR_ENTRY_10, 0, 10).Trim();
|
|||
|
//HP웰컴카드
|
|||
|
m_HPWccCard = cEtcItem.OCCUR_ENTRY_19;
|
|||
|
|
|||
|
//#20180607 해피 조회 응답에 웰컴카드 번호만 내려오면 무조건 제휴할인 적용 start
|
|||
|
//기존
|
|||
|
//if (m_HPCustNo != "" && m_HPWccCard != "") { bWccInfoCheck = true; }
|
|||
|
//변경
|
|||
|
if (m_HPWccCard != "") { bWccInfoCheck = true; }
|
|||
|
//#20180607 해피 조회 응답에 웰컴카드 번호만 내려오면 무조건 제휴할인 적용 end
|
|||
|
|
|||
|
break;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 제휴할인 적용된 건이 있는지 체크!
|
|||
|
if (bWccInfoCheck == true)
|
|||
|
{
|
|||
|
ArrayList alPays = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
for (int iRow = 0; iRow < alPays.Count; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPays[iRow];
|
|||
|
if (cPayItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT)
|
|||
|
{
|
|||
|
bMobileDcCheck = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 웰컴카드 할인적용!
|
|||
|
if (bWccInfoCheck == true && bMobileDcCheck == false)
|
|||
|
{
|
|||
|
//if (WinManager.QuestionMessage("웰컴할인 적용 하시겠습니까?") == true)
|
|||
|
//if (WinManager.QuestionMessage(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1139)) == true)
|
|||
|
if (WinManager.QuestionMessage(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1139), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1138)) == true)
|
|||
|
{
|
|||
|
frmPntMobileUnity frmPntMobileUnity = new frmPntMobileUnity("Initial");
|
|||
|
string _strCardDiv = frmPntMobileUnity.SelectMobileUnityKind(m_HPWccCard);
|
|||
|
|
|||
|
m_cPosStatus.Sale.strMobileUnityCardNo = m_HPWccCard; // 웰컴카드번호!
|
|||
|
m_cPosStatus.Sale.strHappyPointCardNo_Title = _strCardDiv; // 웰컴카드구분자!
|
|||
|
|
|||
|
//--------------------------------------
|
|||
|
// 제휴카드 상태바 표시을 위한 배열 설정
|
|||
|
//--------------------------------------
|
|||
|
#region 제휴카드 상태바 표시를 위한 배열 설정
|
|||
|
if (m_cPosStatus.Sale.strPriorReading_Title[0] == null || m_cPosStatus.Sale.strPriorReading_Title[0] == "")
|
|||
|
{
|
|||
|
//--------------------------------------------------------
|
|||
|
// 만약 첫번째로 리딩된 해피포인트 및 제휴카드가 없을 경우
|
|||
|
// -> 그대로 입력한다.
|
|||
|
//--------------------------------------------------------
|
|||
|
m_cPosStatus.Sale.strPriorReading_Title[0] = m_cPosStatus.Sale.strHappyPointCardNo_Title;
|
|||
|
}
|
|||
|
else if (m_cPosStatus.Sale.strPriorReading_Title[1] == null || m_cPosStatus.Sale.strPriorReading_Title[1] == "")
|
|||
|
{
|
|||
|
//-------------------------------------------------------------------
|
|||
|
// 만약 두번째로 리딩된 해피포인트 및 제휴카드가 없을 경우
|
|||
|
// -> 두번째에 해피포인트를 입력한다.
|
|||
|
// 단, 첫번째로 리딩된 제휴카드가 있을 경우 이전 제휴카드를 치환한다.
|
|||
|
//-------------------------------------------------------------------
|
|||
|
if (m_cPosStatus.Sale.strPriorReading_Title[0] != "HPC")
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.strPriorReading_Title[0] = m_cPosStatus.Sale.strHappyPointCardNo_Title;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.strPriorReading_Title[1] = m_cPosStatus.Sale.strHappyPointCardNo_Title;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//----------------------------------------------------------------
|
|||
|
// 만약 첫번째, 두번째로 리딩한 해피포인트 및 제휴카드가 있을 경우
|
|||
|
// 이전 제휴카드를 치환한다.
|
|||
|
//----------------------------------------------------------------
|
|||
|
if (m_cPosStatus.Sale.strPriorReading_Title[0] != "HPC")
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.strPriorReading_Title[0] = m_cPosStatus.Sale.strHappyPointCardNo_Title;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.strPriorReading_Title[1] = m_cPosStatus.Sale.strHappyPointCardNo_Title;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
//if (pnlPayMainBack.Visible == true)
|
|||
|
//{
|
|||
|
// #region '해피포인트' 및 '제휴할인 카드' 화면을 표시한다.
|
|||
|
// #region 만약 제휴할인 카드 값이 설정되어 있을 경우 제휴할인 카드 화면을 표시한다.
|
|||
|
// if (m_cPosStatus.Sale.strMobileUnityCardNo != "")
|
|||
|
// {
|
|||
|
// // 제휴할인 카드(00292) 화면 표시 -----
|
|||
|
// fSalMain.PayComFuncion(PosKey.MENU_KEY.MOBILE_UNITY, "2");
|
|||
|
// }
|
|||
|
// #endregion
|
|||
|
// #endregion
|
|||
|
//}
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.strMobileUnityCardNo != "")
|
|||
|
{
|
|||
|
if ((m_cTrnStatus.Sale.RemainPayAmt == 0 && PosMstManager.GetPosOption(POS_OPTION.OPT322) == "1") ||
|
|||
|
(m_cTrnStatus.Sale.RemainPayAmt == 0 && m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.PAY_DOING))
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0569);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//키유효성 체크
|
|||
|
if (m_cDataCommon.FunctionKeyValidity(PosKey.MENU_KEY.MOBILE_UNITY) == false)
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage("(" + PosKey.MENU_KEY.MOBILE_UNITY + ") " + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0054));
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// 제휴할인 카드(00292) 화면 표시 -----
|
|||
|
PayMainProc(PosKey.MENU_KEY.MOBILE_UNITY, "2");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|||
|
|
|||
|
// 디지털메뉴보드 I/F
|
|||
|
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
|
|||
|
//기존
|
|||
|
//if (m_cPosStatus.Base.DmbIf == "1")
|
|||
|
//변경
|
|||
|
//if (m_cPosStatus.Base.DmbIf == "1" &&
|
|||
|
// PosMstManager.GetPosOption(POS_OPTION.OPT554) != "1")
|
|||
|
////#16569 파스쿠찌 드라이브 스루 기능 개발 요청 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)
|
|||
|
// {
|
|||
|
// //#20180821 해피포인트 고객이름 마스킹 start
|
|||
|
// if (cEtcItem.HP_CUST_NAME != "") { cEtcItem.HP_CUST_NAME = m_cDataCommon.NameMasking(cEtcItem.HP_CUST_NAME); }
|
|||
|
// //#20180821 해피포인트 고객이름 마스킹 end
|
|||
|
|
|||
|
// // 디지털메뉴보드 I/F
|
|||
|
// IDataServiceUs cDigitalMenuBoard = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.DMB_IF);
|
|||
|
|
|||
|
// // 포인트조회
|
|||
|
// cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.POINT_INFO // 전문 구분
|
|||
|
// , "HPC" // POINT_DIV
|
|||
|
// , cEtcItem.OCCUR_ENTRY_12 // APP_DIV (Y:HPC APP, N:그 외)
|
|||
|
// , "1" // DIV(1:조회, 2:적립, 3:할인, 4:사용 ...)
|
|||
|
// , "" // AMOUNT(포인트사용금액)
|
|||
|
// , "" // POINT(적립,할인,사용포인트)
|
|||
|
// , "" // R_POINT(잔여포인트)
|
|||
|
// , "" //
|
|||
|
// , cEtcItem.OCCUR_ENTRY_01 // CARD_NO(마스킹 된 카드 번호)
|
|||
|
// , cEtcItem.HP_CUST_NAME // CUST_NAME(고객명)
|
|||
|
// , "" }); // CAMPAIGN_INFO
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//cFormSaleMain.DisplayItem(0, false);
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayOkCashbackSave OKCASHBACK 적립 카드 등록
|
|||
|
/// <summary>
|
|||
|
/// OKCASHBACK 적립 카드 등록
|
|||
|
/// </summary>
|
|||
|
private void PayOkCashbackSave(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// 포인트카드 등록 여부 체크(포인트 카드는 한장만 등록 가능)
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.POINT_SAVE_CHINA) return;
|
|||
|
// 해피포인트 - 한국
|
|||
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) return;
|
|||
|
// OKCASHBACK
|
|||
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.OCB_SAVE) return;
|
|||
|
}
|
|||
|
|
|||
|
if (m_cTrnStatus.Sale.RecvedPayAmt > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0392);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// OCB 적립 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_OCB_SAVE, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//cFormSaleMain.DisplayItem(0, false);
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayPointMobileCom 통신사 할인 처리
|
|||
|
/// <summary>
|
|||
|
/// 통신사 할인 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void PayPointMobileCom(string sMenuKey)
|
|||
|
{
|
|||
|
double nDestAmt = 0;
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
|
|||
|
{
|
|||
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
foreach (Column.TR_PAYMENT.DATA cPayItem in alPayItem)
|
|||
|
{
|
|||
|
if (cPayItem.CANCEL_DIV != PosConst.CANCEL_DIV.NORMAL) continue;
|
|||
|
|
|||
|
//#20171012 해피포인트 사용 후 통신사 할인 중복 가능 start
|
|||
|
//기존
|
|||
|
//if (cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.MOBILECON_ITEM) // 통신사할인 모바일쿠폰과 중복 가능
|
|||
|
//변경
|
|||
|
if ((cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.MOBILECON_ITEM) &&
|
|||
|
((cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.POINT_ITEM) || (cPayItem.PAY_DTL_CD_01 != ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT)))
|
|||
|
//#20171012 해피포인트 사용 후 통신사 할인 중복 가능 end
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0392);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Sale.RecvedPayAmt > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0392);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.KT_VIP)
|
|||
|
{
|
|||
|
// KTVIP는 BR만 사용 가능
|
|||
|
if (m_cPosStatus.Mst.CorpDiv != ItemConst.CORP_DIV.BR)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0364);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// 브랜드 코드 체크
|
|||
|
if (m_cPosStatus.Base.BrandCd != PosConst.MST_BRAND_CODE.BR_BR && m_cPosStatus.Base.BrandCd != PosConst.MST_BRAND_CODE.BR_DD)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0364);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// 통신사 VIP 증정 대상 금액 획득
|
|||
|
nDestAmt = m_cDataCommon.SrarchTermCoopCmpDcItem(ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP, "");
|
|||
|
if (nDestAmt <= 0)
|
|||
|
{
|
|||
|
//#11155_[DD] KT 더블할인 프로모션 개발 요청_hs
|
|||
|
//if (m_cPosStatus.Base.BrandCd == PosConst.MST_BRAND_CODE.BR_BR)
|
|||
|
//{
|
|||
|
// KT멤버십 더블할인 체크
|
|||
|
nDestAmt = m_cDataCommon.SrarchTermCoopCmpDcItem(ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_DOUBLE, "");
|
|||
|
sMenuKey = PosKey.MENU_KEY.KT_DOUBLE;
|
|||
|
//}
|
|||
|
if (nDestAmt <= 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0154);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 통신사 할인 대상 상품 체크
|
|||
|
nDestAmt = m_cDataService.GetPluTagetAmount(sMenuKey);
|
|||
|
if (nDestAmt < 0)
|
|||
|
{
|
|||
|
// 캠페인 중복 불가(캠페인과 통신사 할인 중 선택)
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
double nCampAmt = 0;
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in aSaleItem)
|
|||
|
{
|
|||
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소
|
|||
|
if (cPluItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue; // 빌분리번호
|
|||
|
|
|||
|
nCampAmt = CmUtil.DoubleAdd(nCampAmt, cPluItem.CPI_DC_AMT);
|
|||
|
}
|
|||
|
string sMessage = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0370), m_cPosStatus.Global.NumericTOCurrency(nCampAmt));
|
|||
|
if (WinManager.QuestionMessage(sMessage) == false) return;
|
|||
|
|
|||
|
// 캠페인 취소 처리
|
|||
|
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
cCampaingMain.ClearCampaignAmt();
|
|||
|
|
|||
|
// 상품 합계금액 계산(거래해더)
|
|||
|
m_cDataService.UpdatePluAmount();
|
|||
|
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.DisplayItem(1, false);
|
|||
|
cFormSaleMain.DisplayPayment(); // 결제등록정보 화면표시
|
|||
|
}
|
|||
|
else if (nDestAmt == 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0134);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 통신사 할인 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_MOBILE_COM, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 SPCEmployeeDC SPC 임직원 할인 처리
|
|||
|
/// <summary>
|
|||
|
/// SPC 임직원 할인 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void SPCEmployeeDC(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//// SPC 임직원 할인 등록 여부 체크
|
|||
|
//ArrayList alPayment = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
//foreach (Column.TR_PAYMENT.DATA cPayItem in alPayment)
|
|||
|
//{
|
|||
|
// if (cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
// // SPC 임직원 할인
|
|||
|
// if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.EMP_DC_ITEM) return;
|
|||
|
//}
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.SPC_EMPLOYEES_PAY)
|
|||
|
{
|
|||
|
// SPC 임직원 결제화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_EMP, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// SPC 임직원 할인 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_DC_EMP, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//cFormSaleMain.DisplayItem(0, false);
|
|||
|
}
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 SPCEmployeeDC SPC 임직원 할인 - 중국 처리
|
|||
|
/// <summary>
|
|||
|
/// SPC 임직원 할인 - 중국 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void SPCEmployeeDC_China(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// SPC 임직원 할인 - 중국 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_DC_EMP_CHINA, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 TotalDC 전체 할인 처리
|
|||
|
/// <summary>
|
|||
|
/// 전체 할인 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void TotalDC(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// 전체 금액/% 할인
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.TOTAL_DC_RATE || sMenuKey == PosKey.MENU_KEY.TOTAL_DC_AMT)
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Sale.RecvedPayAmt > 0)
|
|||
|
{
|
|||
|
// 임의 할인 중복 등록 체크(받은금액이 있으면 결제할인 안됨)
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0112);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 임의 할인 중복 등록 불가 체크
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
for (int iRow = 0; iRow < aSaleItem.Count; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow];
|
|||
|
if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cSaleItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue;// 지정취소
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.TOTAL_DC_AMT || sMenuKey == PosKey.MENU_KEY.TOTAL_DC_RATE)
|
|||
|
{
|
|||
|
if (cSaleItem.ITEM_DC_AMT > 0)
|
|||
|
{
|
|||
|
if (cSaleItem.DC_DIV != ItemConst.PLU_DC_DIV.NORMAL
|
|||
|
&& cSaleItem.DC_DIV != ItemConst.PLU_DC_DIV.IN_DC_TOTAMT && cSaleItem.DC_DIV != ItemConst.PLU_DC_DIV.IN_DC_TOTRATE)
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0113); // 기존 할인을 취소후 시도하여 주시기 바랍니다.
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.TOTAL_ADDDC_AMT)
|
|||
|
{
|
|||
|
if (cSaleItem.ETC_DC_AMT > 0)
|
|||
|
{
|
|||
|
if (cSaleItem.ETC_DC_DIV != ItemConst.PLU_DC_DIV.NORMAL && cSaleItem.ETC_DC_DIV != ItemConst.PLU_DC_DIV.IN_DC_ADDAMT)
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0113); // 기존 할인을 취소후 시도하여 주시기 바랍니다.
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 전체 할인 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_DC_TOTAL, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//cFormSaleMain.DisplayItem(0, false);
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayDcMstToDc 결제할인 마스터 참조 할인 처리
|
|||
|
/// <summary>
|
|||
|
/// 결제할인 마스터 참조 할인 처리(카이스트할인, 해피오더사전예약할인)(2017.05.15)
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void PayDcMstToDc(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.KAIST_DC) // 카이스트 할인
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Sale.RecvedPayAmt > 0)
|
|||
|
{
|
|||
|
// 임의 할인 중복 등록 체크(받은금액이 있으면 결제할인 안됨)
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0112);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 임의 할인 중복 등록 불가 체크
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
for (int iRow = 0; iRow < aSaleItem.Count; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow];
|
|||
|
if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cSaleItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue;// 지정취소
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.KAIST_DC) //카이스트 할인
|
|||
|
{
|
|||
|
if (cSaleItem.ITEM_DC_AMT > 0)
|
|||
|
{
|
|||
|
if (cSaleItem.DC_DIV != ItemConst.PLU_DC_DIV.KAIST_DC) // 카이스트 할인
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0113); // 기존 할인을 취소후 시도하여 주시기 바랍니다.
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.HPORDER_REVDC) // 해피오더사전예약할인
|
|||
|
{
|
|||
|
if (cSaleItem.ETC_DC_AMT > 0)
|
|||
|
{
|
|||
|
if (cSaleItem.ETC_DC_DIV != ItemConst.PLU_DC_DIV.HPORDER_REVDC) // 해피오더사전예약할인
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0113); // 기존 할인을 취소후 시도하여 주시기 바랍니다.
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 카이스트 할인, 해피오더사전예약할인(2017.05.15)
|
|||
|
IPaymentUs cPaySvr = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.PAYDCMST_TO_DC);
|
|||
|
|
|||
|
sRet = cPaySvr.SetPayment(new string[] { sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 CouponDC 쿠폰할인 처리
|
|||
|
/// <summary>
|
|||
|
/// 쿠폰할인 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void CouponDC(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.DC_COUPONS)
|
|||
|
{
|
|||
|
// 쿠폰할인 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_DC_COUPON, sMenuKey });
|
|||
|
}
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.PAY_INSTOR_DC)
|
|||
|
{
|
|||
|
// 입점매장직원할인 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_INSTOR_DC, sMenuKey });
|
|||
|
}
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.PAY_INSTOR_PAY)
|
|||
|
{
|
|||
|
// 기타결제 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_INSTOR_PAY, sMenuKey });
|
|||
|
}
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 iNStorDC 입점매장직원할인 처리
|
|||
|
/// <summary>
|
|||
|
/// 입점매장직원할인 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void iNStorDC(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.PAY_INSTOR_DC || sMenuKey == PosKey.MENU_KEY.PAY_INSTOR_DC_5)
|
|||
|
{
|
|||
|
// 입점매장직원할인 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_INSTOR_DC, sMenuKey });
|
|||
|
}
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.PAY_INSTOR_PAY)
|
|||
|
{
|
|||
|
// 기타결제
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_INSTOR_PAY, sMenuKey });
|
|||
|
}
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 CakeChange 케익교환권 할인 처리
|
|||
|
/// <summary>
|
|||
|
/// 케익교환권 할인 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void CakeChange(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// 케익교환권 할인 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_DC_CAKE_VOUCHERS, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 SeveranceDC 세브란스병원 임직원 할인 처리
|
|||
|
/// <summary>
|
|||
|
/// 세브란스병원 임직원 할인 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void SeveranceDC(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.SEVERANCE_PAYMENTS)
|
|||
|
{
|
|||
|
// 세브란스병원 임직원 결제 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_SEVERANCE, sMenuKey });
|
|||
|
}
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.SEVERANCE_DC)
|
|||
|
{
|
|||
|
// 세브란스병원 임직원 할인 화면
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_SEVERANCE_DC, sMenuKey });
|
|||
|
}
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayPointMemberUse OK CashBack/ OIL BANK/ BLUE / RED 포인트 사용
|
|||
|
/// <summary>
|
|||
|
/// OK CashBack/ OIL BANK/ BLUE / RED 포인트 사용
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
/// <param name="sAppType"></param>
|
|||
|
/// <param name="iPaycnt"></param>
|
|||
|
private void PayPointMemberUse(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
if (!sMenuKey.Equals(PosKey.MENU_KEY.OKCASHBACK))
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.HAPPY_POINT_USE || sMenuKey == PosKey.MENU_KEY.HAPPY_POINT_USE_CHINA)
|
|||
|
{
|
|||
|
// 해피포인트 사용
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_HAPPY_POINT_USE, sMenuKey });
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 제휴 포인트 사용
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_MEMBERS_USE, sMenuKey });
|
|||
|
}
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
// 디지털메뉴보드 I/F
|
|||
|
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
|
|||
|
//기존
|
|||
|
//if (m_cPosStatus.Base.DmbIf == "1")
|
|||
|
//변경
|
|||
|
//if (m_cPosStatus.Base.DmbIf == "1" &&
|
|||
|
// PosMstManager.GetPosOption(POS_OPTION.OPT554) != "1")
|
|||
|
////#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end
|
|||
|
//{
|
|||
|
// ArrayList alTrPay = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
// Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alTrPay[alTrPay.Count - 1];
|
|||
|
|
|||
|
// if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.POINT_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT)
|
|||
|
// {
|
|||
|
// // 디지털메뉴보드 I/F
|
|||
|
// IDataServiceUs cDigitalMenuBoard = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.DMB_IF);
|
|||
|
// // 포인트조회
|
|||
|
// cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.POINT_INFO // 전문 구분
|
|||
|
// , "HPC" // POINT_DIV
|
|||
|
// , cPayItem.OCCUR_ENTRY_12 // APP_DIV (Y:HPC APP, N:그 외)
|
|||
|
// , "4" // DIV(1:조회, 2:적립, 3:할인, 4:사용 ...)
|
|||
|
// , cPayItem.PAY_AMT.ToString() // AMOUNT(포인트사용금액)
|
|||
|
// , cPayItem.AMT_ENTRY_01.ToString() // POINT(적립,할인,사용포인트)
|
|||
|
// , cPayItem.AMT_ENTRY_05.ToString() // R_POINT(잔여포인트)
|
|||
|
// , "" //
|
|||
|
// , cPayItem.OCCUR_ENTRY_01 // CARD_NO(마스킹 된 카드 번호)
|
|||
|
// , "" // CUST_NAME(고객명)
|
|||
|
// , "" }); // CAMPAIGN_INFO
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayAliPay 알리페이
|
|||
|
/// <summary>
|
|||
|
/// 알리페이
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
/// <param name="sAppType"></param>
|
|||
|
/// <param name="iPaycnt"></param>
|
|||
|
private void PayAliPay(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
|
|||
|
// 알리페이
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_ALIPAY, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 WeChatPay 위챗페이
|
|||
|
/// <summary>
|
|||
|
/// 위챗페이
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
/// <param name="sAppType"></param>
|
|||
|
/// <param name="iPaycnt"></param>
|
|||
|
private void WeChatPay(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
|
|||
|
// 위챗페이
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_WECHATPAY, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 #20170911.001, 중국 위쳇 페이 바이롱과 연동 개발 Start, girak.kim
|
|||
|
/// <summary>
|
|||
|
/// 위챗페이 - 바이롱
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
/// <param name="sAppType"></param>
|
|||
|
/// <param name="iPaycnt"></param>
|
|||
|
// girak.kim; 2017.09.11.001
|
|||
|
private void WeChatPay_BaiRong(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
|
|||
|
// 위챗페이
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_WECHATPAY_BAIRONG, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 #20170911.001, 중국 샤오청쉬 기프트카드 바이롱과 연동 개발 Start, girak.kim
|
|||
|
/// <summary>
|
|||
|
/// 중국 샤오청쉬 기프트카드 - 바이롱
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
/// <param name="sAppType"></param>
|
|||
|
/// <param name="iPaycnt"></param>
|
|||
|
// girak.kim; 2017.09.11.001
|
|||
|
private void XiaoChengxu_GiftCard(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
|
|||
|
// 위챗페이
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_XIAOCHENGXU_GIFTCARD, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 SmilePay 스마일페이
|
|||
|
/// <summary>
|
|||
|
/// 스마일페이
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
/// <param name="sAppType"></param>
|
|||
|
/// <param name="iPaycnt"></param>
|
|||
|
private void SmilePay(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
|
|||
|
// 스마일페이
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_SMILEPAY, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayHappyPointCouopn 해피포인트 쿠폰
|
|||
|
/// <summary>
|
|||
|
/// 해피포인트 쿠폰
|
|||
|
/// </summary>
|
|||
|
private void PayHappyPointCouopn(string sMenukey, string sSelRow)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 해피포인트 쿠폰 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_HPCOUPON, sMenukey, sSelRow });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN); // 판매화면
|
|||
|
//cFormSaleMain.DisplayItem(1, false); // 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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>
|
|||
|
/// T 페이
|
|||
|
/// </summary>
|
|||
|
private void PayTPay()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
#region 통신사(SKT) 할인 가능여부 체크
|
|||
|
|
|||
|
// 통신사(SKT) 할인 대상금액
|
|||
|
var destAmt = 0.0;
|
|||
|
|
|||
|
// 받은금액이 있으면 통신사(SKT) 할인불가(통합결제 불가)
|
|||
|
if (m_cTrnStatus.Sale.RecvedPayAmt > 0) destAmt = -1;
|
|||
|
|
|||
|
// 결제할인 마스터의 결제할인 중복 가능 여부 체크, 중복이 불가능 하면, 할인불가 (통합결제 불가)
|
|||
|
var payWayCd = m_cDataCommon.GetMenuKeyToPayWayCd(PosKey.MENU_KEY.SKT);
|
|||
|
var payDtlCd = m_cDataCommon.GetMenuKeyToPayDtlCd(PosKey.MENU_KEY.SKT);
|
|||
|
if (m_cDataCommon.PayDcDuplicationCheck(payWayCd, payDtlCd, false) == false) destAmt = -1;
|
|||
|
|
|||
|
// SKT 할인 미사용 매장이면(기능키 확인), 할인불가(통합결제 불가)
|
|||
|
//DataTable dt = m_cDataCommon.SeletFuncKeyGroup(PosKey.MENU_KEY.PAY_DC_MENU);
|
|||
|
DataTable dt = m_cDataCommon.SeletFuncKeyGroup("");
|
|||
|
if (dt == null || dt.Rows.Count == 0)
|
|||
|
{
|
|||
|
destAmt = -1;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
DataRow[] dr = dt.Select("FUNC_ID = '" + PosKey.MENU_KEY.SKT + "'");
|
|||
|
destAmt = (dr == null || dr.Length == 0) ? -1 : 0;
|
|||
|
}
|
|||
|
|
|||
|
// 통신사 할인 대상 상품 체크
|
|||
|
if (destAmt == 0)
|
|||
|
{
|
|||
|
// 할인대상금액 조회
|
|||
|
destAmt = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.SKT);
|
|||
|
if (destAmt < 0)
|
|||
|
{
|
|||
|
// 캠페인 중복 불가(캠페인과 통신사 할인 중 선택)
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
double nCampAmt = 0;
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in aSaleItem)
|
|||
|
{
|
|||
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소
|
|||
|
if (cPluItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue; // 빌분리번호
|
|||
|
|
|||
|
nCampAmt = CmUtil.DoubleAdd(nCampAmt, cPluItem.CPI_DC_AMT);
|
|||
|
}
|
|||
|
string sMessage = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0370), m_cPosStatus.Global.NumericTOCurrency(nCampAmt));
|
|||
|
if (WinManager.QuestionMessage(sMessage) == false) return;
|
|||
|
|
|||
|
// 캠페인 취소 처리
|
|||
|
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
cCampaingMain.ClearCampaignAmt();
|
|||
|
|
|||
|
// 상품 합계금액 계산(거래해더)
|
|||
|
m_cDataService.UpdatePluAmount();
|
|||
|
|
|||
|
// 결제등록정보 화면표시
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.DisplayPayment();
|
|||
|
|
|||
|
// 할인대상금액 재 조회
|
|||
|
destAmt = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.SKT);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// OCB 적립 후 SKT 할인 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
destAmt = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
// T 페이
|
|||
|
string sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_TPAY, PosKey.MENU_KEY.T_PAY, destAmt.ToString() });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayCash(string sMenuKey, string sInputData)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
|
|||
|
{
|
|||
|
//WinManager.ConfirmMessage("인천공항 연동POS 입니다. 사용할 수 없습니다.");
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0745);
|
|||
|
return;
|
|||
|
}
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
// 세브란스 직원식 상품 체크
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
sRet = SeveranceiTemCheck(sMenuKey);
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
//기존소스
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) start
|
|||
|
// 돈통 오픈 처리
|
|||
|
//m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) end
|
|||
|
|
|||
|
//#2018.01.25.001;미국과 그 외 국가의 경우 현금 결제 시 돈통 열리는 시점이 다르게 처리;girak.kim
|
|||
|
if (!m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
// 현금 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_CASH, sMenuKey, sInputData });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//#2018.01.25.001;미국의 경우 현금 결제 시 돈통 열리는 시점이 현금 결제 후 돈통 열리게 처리;girak.kim
|
|||
|
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//170811 dkshin 돈통 오픈 처리 시점 변경(현금영수증 전)
|
|||
|
#region 거래 완료 돈통 열림 체크
|
|||
|
/// <summary>
|
|||
|
/// 거래 완료 돈통 열림 체크
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool FinishTradeOpenDrawer()
|
|||
|
{
|
|||
|
return FinishTradeOpenDrawer(false);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 거래 완료 돈통 열림 체크
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool FinishTradeOpenDrawer(bool bDutchPay)
|
|||
|
{
|
|||
|
|
|||
|
bool bOpenDrawer = false;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cPosStatus.Base.TrainingFlag != "1") //연습모드가 아니면...
|
|||
|
{
|
|||
|
// 판매완료시 돈통열림 설정(0:안열림, 1:현금성거래만, 2:전체열림)
|
|||
|
string sOpt = CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT021), "1");
|
|||
|
|
|||
|
//UserLog.WriteLogFile(UserCom.LOG_DEBUG, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
// System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "sOpt : " + sOpt);
|
|||
|
|
|||
|
|
|||
|
if (sOpt == "1") //현금성 거래만
|
|||
|
{
|
|||
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
foreach (Column.TR_PAYMENT.DATA cPayItem in alPayItem)
|
|||
|
{
|
|||
|
if (cPayItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
if (bDutchPay == true) //더치페이 체크
|
|||
|
{
|
|||
|
if (cPayItem.DutchPayPrtDiv == "1") continue;
|
|||
|
}
|
|||
|
|
|||
|
switch (cPayItem.PAY_WAY_CD)
|
|||
|
{
|
|||
|
case ItemConst.TR_ITEM_ID.CASH_ITEM: //현금
|
|||
|
case ItemConst.TR_ITEM_ID.GIFT_ITEM: //상품권
|
|||
|
case ItemConst.TR_ITEM_ID.CHECK_ITEM: //수표
|
|||
|
case ItemConst.TR_ITEM_ID.FOREIGNEX_ITEM: //외환
|
|||
|
case ItemConst.TR_ITEM_ID.PAYETC_ITEM: //기타(잔액교환권, 식권)
|
|||
|
bOpenDrawer = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
if (bOpenDrawer == true) break;
|
|||
|
}
|
|||
|
}
|
|||
|
else if (sOpt == "2") //전체열림
|
|||
|
{
|
|||
|
bOpenDrawer = 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 bOpenDrawer;
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
/// <summary>
|
|||
|
/// 묶음상품/쇼킹박스
|
|||
|
/// </summary>
|
|||
|
private bool BundleiTem(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_SAL_BUNDLE_ITEM, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
//// 판매모드 변경
|
|||
|
//m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
//cFormSaleMain.DisplayInit(false, true);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, false);
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 더치페이
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public bool DutchPay(string sMenuKey, string ReFlag)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
// 영업일자 체크
|
|||
|
if (CmUtil.LongParse(m_cPosStatus.Base.SaleDate) < CmUtil.LongParse(System.DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
{
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HH")) > 5)
|
|||
|
{
|
|||
|
DutchItemClear();
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
ICampaignUs cCampaignMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
//캠페인 초기화
|
|||
|
cCampaignMain.ClearCampaignAmt();
|
|||
|
m_cDataService.UpdatePluAmount();
|
|||
|
|
|||
|
sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_DUTCH_PAY, sMenuKey, ReFlag });
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
DutchItemClear();
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.DutchPayFlg = "1";
|
|||
|
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
|
|||
|
RegisterPayment("", "");
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
//m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.PAY_WAIT;
|
|||
|
|
|||
|
//// 판매화면
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//cFormSaleMain.ChangeSalePayMode(false);
|
|||
|
|
|||
|
//화면 초기화
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 더치페이중 중지 상품 처리
|
|||
|
/// </summary>
|
|||
|
private void DutchItemClear()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
// 상품 내역 불러오기
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
if (alPluItem.Count > 0)
|
|||
|
{
|
|||
|
|
|||
|
ICampaignUs cCampaignMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
|
|||
|
//상품 캠페인 재적용
|
|||
|
ICampaignUs m_cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
cCampaignMain.ExecuteCampaignPluHappyPoint("", true, "", "", "", ""); // 상품 캠페인 계산
|
|||
|
m_cDataService.UpdatePluAmount();
|
|||
|
|
|||
|
// 상품 판매가 재계산
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
cFormSaleMain.DisplayInit(true, true);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, false);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
m_cPosStatus.Sale.DutchPayFlg = "";
|
|||
|
}
|
|||
|
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="sMenuKey"></param>
|
|||
|
/// <returns></returns>
|
|||
|
private bool DutchPayAmt(string sMenuKey, string ReFlag)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.DutchPayFlg == "2")
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0295)) == true)
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.DutchPayFlg = "";
|
|||
|
m_cTrnStatus.Head.AmtDutchPayYn = "";
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
m_cTrnStatus.Head.AmtDutchPayYn = "1";
|
|||
|
|
|||
|
m_cPosStatus.Sale.DutchPayFlg = "2";
|
|||
|
|
|||
|
RegisterPayment("", "");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
//if (ReFlag == "0")
|
|||
|
//{
|
|||
|
// m_cTrnStatus.Sale.DutchPayTotAmt = m_cTrnStatus.Head.NetSaleAmt;
|
|||
|
//}
|
|||
|
|
|||
|
|
|||
|
//sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_DUTCH_PAY_AMT, sMenuKey, ReFlag });
|
|||
|
//if (sRet == UserCom.ERROR) return false;
|
|||
|
|
|||
|
//m_cPosStatus.Sale.DutchPayFlg = "2";
|
|||
|
|
|||
|
//m_cTrnStatus.Sale.BillSplitNo = m_cTrnStatus.Sale.BillSplitNo + 1; //빌분리번호
|
|||
|
|
|||
|
//// 총수량, 총매출액
|
|||
|
//m_cTrnStatus.Head.TotSaleAmt=m_cDataService.DoubleParse(sRet);
|
|||
|
//// 총 할인 금액
|
|||
|
//m_cTrnStatus.Head.TotDcAmt=0;
|
|||
|
//// 받은금액 표시
|
|||
|
//m_cTrnStatus.Sale.RecvedPayAmt=0;
|
|||
|
//// 순매출액 표시 처리
|
|||
|
//m_cTrnStatus.Sale.RemainPayAmt = m_cDataService.DoubleParse(sRet);
|
|||
|
//// 넷 세일
|
|||
|
//m_cTrnStatus.Head.NetSaleAmt = m_cDataService.DoubleParse(sRet);
|
|||
|
|
|||
|
//// 판매모드 변경
|
|||
|
//m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.PAY_WAIT;
|
|||
|
|
|||
|
//// 판매화면
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//cFormSaleMain.ChangeSalePayMode(false);
|
|||
|
|
|||
|
////화면 초기화
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 수표 조회/결제 처리
|
|||
|
/// </summary>
|
|||
|
private void PayCheck(string sMenuKey)
|
|||
|
{
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
|
|||
|
{
|
|||
|
//WinManager.ConfirmMessage("인천공항 연동POS 입니다. 사용할 수 없습니다.");
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0745);
|
|||
|
return;
|
|||
|
}
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
// 수표 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_CHECK, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayGiftSearch(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
// 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_GIFT_SCH, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayMobileCouponSearch(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
// 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_MOBILE_COUPON_SCH, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//#20170926 일반할인 존재하고 모바일 쿠폰 사용 시 팝업 오픈 start
|
|||
|
private bool DC_Check(ref bool pPopup)
|
|||
|
{
|
|||
|
bool bValue = false;
|
|||
|
pPopup = false;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
for (int iRow = 0; iRow < aSaleItem.Count; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow];
|
|||
|
|
|||
|
if (cSaleItem.CANCEL_DIV != "0") continue;
|
|||
|
|
|||
|
//if (cSaleItem.DC_DIV != ItemConst.PLU_DC_DIV.NORMAL) continue;// POS 할인 구분
|
|||
|
//if (cSaleItem.DC_TYPE != ItemConst.PLU_DC_TYPE.NORMAL) continue;// 할인 유형(0:없음, 1:소계, 2:상품)
|
|||
|
//if (cSaleItem.DC_RATE != ItemConst.PLU_DC_DIV.NORMAL) continue;// POS 할인 율
|
|||
|
//if (cSaleItem.ITEM_DC_AMT != ItemConst.PLU_DC_DIV.NORMAL) continue;// POS 단품 할인 금액
|
|||
|
|
|||
|
/*
|
|||
|
if ((cSaleItem.DC_RATE > 0) || (cSaleItem.ITEM_DC_AMT > 0) || (cSaleItem.SUM_DC_AMT >= 0))
|
|||
|
{
|
|||
|
pPopup = true;
|
|||
|
}
|
|||
|
|
|||
|
if (cSaleItem.DC_DIV == ItemConst.PLU_DC_DIV.NORMAL) continue;// POS 할인 구분
|
|||
|
if (cSaleItem.DC_DIV == ItemConst.PLU_DC_DIV.POS_DC) continue;// 임의할인
|
|||
|
if (cSaleItem.DC_DIV == ItemConst.PLU_DC_DIV.IN_DC_TOTAMT) continue; // 전체금액할인
|
|||
|
if (cSaleItem.DC_DIV == ItemConst.PLU_DC_DIV.IN_DC_TOTRATE) continue;// 전체%할인
|
|||
|
*/
|
|||
|
|
|||
|
if ((cSaleItem.DC_DIV == ItemConst.PLU_DC_DIV.NORMAL) || (cSaleItem.DC_DIV == ItemConst.PLU_DC_DIV.POS_DC) ||
|
|||
|
(cSaleItem.DC_DIV == ItemConst.PLU_DC_DIV.IN_DC_TOTAMT) || (cSaleItem.DC_DIV == ItemConst.PLU_DC_DIV.IN_DC_TOTRATE))
|
|||
|
{
|
|||
|
|
|||
|
if ((cSaleItem.DC_RATE > 0) || (cSaleItem.ITEM_DC_AMT > 0) || (cSaleItem.SUM_DC_AMT > 0))
|
|||
|
{
|
|||
|
pPopup = true;
|
|||
|
}
|
|||
|
|
|||
|
continue;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
bValue = 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);
|
|||
|
|
|||
|
bValue = false;
|
|||
|
}
|
|||
|
|
|||
|
return bValue;
|
|||
|
}
|
|||
|
//#20170926 일반할인 존재하고 모바일 쿠폰 사용 시 팝업 오픈 end
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 모바일쿠폰/결제 처리
|
|||
|
/// </summary>
|
|||
|
private void PayMobileCoupon(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
//#20170926 일반할인 존재하고 모바일 쿠폰 사용 시 팝업 오픈 start
|
|||
|
|
|||
|
//할인 존재 시 모바일 쿠폰 사용 못함. (일반할인제외)
|
|||
|
bool bPopup = false;
|
|||
|
if (DC_Check(ref bPopup) == true) return;
|
|||
|
|
|||
|
//일반할인 (%할인, 금액 할인) 존재 시 아래 팝업 오픈.
|
|||
|
if (bPopup == true)
|
|||
|
{
|
|||
|
if (WinManager.QuestionMessage(POS_MESSAGE.ERROR.MSG_0737) != true) return;
|
|||
|
}
|
|||
|
|
|||
|
//#20170926 일반할인 존재하고 모바일 쿠폰 사용 시 팝업 오픈 end
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_MOBILE_COUPON, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayOurHome(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_OURHOME, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayHappyGift(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.HP_GIFT_CHARGED)
|
|||
|
// 충전
|
|||
|
{
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_SAL_HP_GIFT_CHARGED, sMenuKey, "" });
|
|||
|
|
|||
|
}
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.HAPPY_GIFTCARD)
|
|||
|
{
|
|||
|
// 사용
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_HAPPY_GIFTCARD, sMenuKey, "" });
|
|||
|
}
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayExchangeTicket(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
//기존 소스
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) start
|
|||
|
// 돈통 오픈 처리
|
|||
|
//m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) end
|
|||
|
|
|||
|
//#2018.01.25.001;미국과 그 외 국가의 경우 현금 결제 시 돈통 열리는 시점이 다르게 처리;girak.kim
|
|||
|
if (!m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_BALANCE_VOUCHER, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//#2018.01.25.001;미국의 경우 현금 결제 시 돈통 열리는 시점이 현금 결제 후 돈통 열리게 처리;girak.kim
|
|||
|
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PaySaleOnCustomer(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
//#20171016 스퀘어 점포일 때 실점포 코드로 넘기기 start, phj
|
|||
|
|
|||
|
//판매 제품이 서로 다른 브랜드 일 때, 선불결제 못함.
|
|||
|
if (m_cPosStatus.Mst.ComplexShopType == "2") // 0:단독매장,1:복합매장구성점포,2:복합매장점포
|
|||
|
{
|
|||
|
if (OtherItem_DuplicateCheck() == false) return;
|
|||
|
}
|
|||
|
|
|||
|
//#20171016 스퀘어 점포일 때 실점포 코드로 넘기기 end, phj
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_CREDIT_CUSTOMER, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayForeign(string sMenuKey)
|
|||
|
{
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
|
|||
|
{
|
|||
|
//WinManager.ConfirmMessage("인천공항 연동POS 입니다. 사용할 수 없습니다.");
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0745);
|
|||
|
return;
|
|||
|
}
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// 사용여부 체크!
|
|||
|
if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT305), "0") == "0")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(string.Format("{0}({1})", MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0414), POS_OPTION.OPT305));
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//기존소스
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) start
|
|||
|
// 돈통 오픈 처리
|
|||
|
//m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) end
|
|||
|
|
|||
|
//#2018.01.25.001;미국과 그 외 국가의 경우 현금 결제 시 돈통 열리는 시점이 다르게 처리;girak.kim
|
|||
|
if (!m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_FOREIGN_CURRENCY, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//#2018.01.25.001;미국의 경우 현금 결제 시 돈통 열리는 시점이 현금 결제 후 돈통 열리게 처리;girak.kim
|
|||
|
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayTMoneyCashBee(string[] aPara)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(aPara);
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayPrepaidCard(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
//#20171016 스퀘어 점포일 때 실점포 코드로 넘기기 start, phj
|
|||
|
|
|||
|
//판매 제품이 서로 다른 브랜드 일 때, 선불결제 못함.
|
|||
|
if (m_cPosStatus.Mst.ComplexShopType == "2") // 0:단독매장,1:복합매장구성점포,2:복합매장점포
|
|||
|
{
|
|||
|
if (OtherItem_DuplicateCheck() == false) return;
|
|||
|
}
|
|||
|
|
|||
|
//#20171016 스퀘어 점포일 때 실점포 코드로 넘기기 end, phj
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_PREPAID_CARDS, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayPrepaidCard_China(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_HPJOY, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PaySamSungPoint(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// 캠페인 중복 불가(2017.06.05) => 캠페인 적용시 제휴포인트 사용 업무 불가 처리 요청
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
foreach (Column.TR_PLU.DATA cPluItem in aSaleItem)
|
|||
|
{
|
|||
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소
|
|||
|
if (cPluItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue; // 빌분리번호
|
|||
|
|
|||
|
if (cPluItem.CPI_DC_AMT > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0192);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//#16745 신용카드 포인트 결제 시 해피포인트 취소되는 현상 확인요청 start
|
|||
|
//신한포인트는 통신사 할인과 중복 가능 하도록 수정
|
|||
|
//기존
|
|||
|
#region 기존
|
|||
|
/*
|
|||
|
// 통신사 제휴 할인 불가(2017.08.28)
|
|||
|
ArrayList aPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
foreach (Column.TR_PAYMENT.DATA cPayItem in aPayItem)
|
|||
|
{
|
|||
|
if (cPayItem.CANCEL_DIV != PosConst.CANCEL_DIV.NORMAL) continue;
|
|||
|
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT &&
|
|||
|
(cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT ||
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF ||
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT ||
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_DOUBLE ||
|
|||
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD ||
|
|||
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP))
|
|||
|
{
|
|||
|
|
|||
|
// 이미할인이 등록되어 있습니다.
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0669);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
*/
|
|||
|
#endregion 기존
|
|||
|
//변경
|
|||
|
#region 변경
|
|||
|
// 통신사 제휴 할인 불가(2017.08.28)
|
|||
|
if (sMenuKey != PosKey.MENU_KEY.SHINHANCARD_POINT)
|
|||
|
{
|
|||
|
ArrayList aPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
foreach (Column.TR_PAYMENT.DATA cPayItem in aPayItem)
|
|||
|
{
|
|||
|
if (cPayItem.CANCEL_DIV != PosConst.CANCEL_DIV.NORMAL) continue;
|
|||
|
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.MOBILE_COM_POINT &&
|
|||
|
(cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_SKT ||
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KTF ||
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_LGT ||
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_DOUBLE ||
|
|||
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD ||
|
|||
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|||
|
cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.MOBILE_COM.MOBILE_KT_VIP))
|
|||
|
{
|
|||
|
|
|||
|
// 이미할인이 등록되어 있습니다.
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0669);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion 변경
|
|||
|
//#16745 신용카드 포인트 결제 시 해피포인트 취소되는 현상 확인요청 end
|
|||
|
|
|||
|
//#14505 PB 신월곰달래 - 해피포인트 등록 후 현대M포인트 진입안되도록 수정요청 start,phj
|
|||
|
//카드 포인트 사용창 진입시 해피포인트 등록이 된 상태이면 안내 메세지 팝업 (예, 아니오)
|
|||
|
bool bHPCheck = false;
|
|||
|
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.SAVEPOINT)
|
|||
|
{
|
|||
|
bHPCheck = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//#16745 신용카드 포인트 결제 시 해피포인트 취소되는 현상 확인요청 start
|
|||
|
//신한포인트는 해피포인트 적립과 중복 가능 하도록 수정
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.SHINHANCARD_POINT)
|
|||
|
{
|
|||
|
bHPCheck = false;
|
|||
|
}
|
|||
|
//#16745 신용카드 포인트 결제 시 해피포인트 취소되는 현상 확인요청 end
|
|||
|
|
|||
|
if (bHPCheck == true)
|
|||
|
{
|
|||
|
//#20180410 메세지 오류 수정 start,phj
|
|||
|
//기존
|
|||
|
//if (WinManager.QuestionMessage(POS_MESSAGE.GUIDE.MSG_0014) == false)
|
|||
|
//변경
|
|||
|
if (WinManager.QuestionMessage(MessageManager.GetGuideMessage(POS_MESSAGE.GUIDE.MSG_0014)) == false)
|
|||
|
//#20180410 메세지 오류 수정 end,phj
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
//#14505 PB 신월곰달래 - 해피포인트 등록 후 현대M포인트 진입안되도록 수정요청 end,phj
|
|||
|
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.SAMSUNG_POINTS)
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_SAMSUNG_POINT, sMenuKey });
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.WOORIMORE_POINTS)
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_WOORIMORE_POINT, sMenuKey });
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.HYUNDAI_M_POINTS)
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_HYUNDAI_M_POINT, sMenuKey });
|
|||
|
//*** MoonSeokWoo 2017.12.12 Add
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.SHINHANCARD_POINT)
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_SINHANCARD_POINT, sMenuKey });
|
|||
|
//*** MoonSeokWoo 2017.12.12 End
|
|||
|
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayCreditCard(string sMenuKey, string sInputData)
|
|||
|
{
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
|
|||
|
{
|
|||
|
//WinManager.ConfirmMessage("인천공항 연동POS 입니다. 사용할 수 없습니다.");
|
|||
|
WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0745);
|
|||
|
return;
|
|||
|
}
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
// 세브란스 직원식 상품 체크
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
sRet = SeveranceiTemCheck(sMenuKey);
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
|
|||
|
// 신용카드 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_CREDITCARD, sMenuKey, "", "", sInputData });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 bool PayCashbill(string sMenukey)
|
|||
|
{
|
|||
|
double dCashBillAmt = 0;
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
|
|||
|
{
|
|||
|
//WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0745);
|
|||
|
return true;
|
|||
|
}
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cPosStatus.Mst.CntryDiv != ItemConst.CNTRY_DIV.KR) return true; // 한국에서만 가능(2017.05.26)
|
|||
|
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT315) == "0") return true; // 현금영수증 업무 사용 여부(0:사용안함, 1:사용함)
|
|||
|
|
|||
|
if (sMenukey == PosKey.MENU_KEY.CASH_APPROVAL)
|
|||
|
{
|
|||
|
//반품일경우
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND) return true;
|
|||
|
|
|||
|
////일반판매, 예약완료가 아닐 경우
|
|||
|
//if ((m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE) != true) return;
|
|||
|
|
|||
|
dCashBillAmt = m_cDataService.GetCashAmt();
|
|||
|
|
|||
|
if (dCashBillAmt > 0)
|
|||
|
{
|
|||
|
//부가세 계산
|
|||
|
double dTax = m_cDataService.GetPaymentAmtVAT(dCashBillAmt);
|
|||
|
|
|||
|
// 현금 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_CASH_APPROVAL, sMenukey, dCashBillAmt.ToString(), dTax.ToString() });
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 수동 승인(거래후 현금수증)
|
|||
|
// 거래구분 설정 => 거래후
|
|||
|
m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.AFTER.CASH_RECEIPT;
|
|||
|
|
|||
|
// 원거래 정보 설정
|
|||
|
m_cTrnStatus.Head.OrgSaleDate = "";
|
|||
|
m_cTrnStatus.Head.OrgPosNo = "";
|
|||
|
m_cTrnStatus.Head.OrgTradeNo = "";
|
|||
|
|
|||
|
// 현금 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_CASH_APPROVAL, sMenukey, "0", "0" });
|
|||
|
if (sRet == UserCom.RST_OK)
|
|||
|
{
|
|||
|
// 거래 완료 처리
|
|||
|
sRet = m_cSaleComplete.PosSaleExecute(new string[] { });
|
|||
|
}
|
|||
|
|
|||
|
////사용변수 초기화
|
|||
|
m_cDataService.TranComplete();
|
|||
|
|
|||
|
m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.NORMAL.SALE;
|
|||
|
|
|||
|
}
|
|||
|
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>
|
|||
|
private void PaySamsungFamilyCard(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
ArrayList aPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
|
|||
|
foreach (Column.TR_PAYMENT.DATA cPayItem in aPayItem)
|
|||
|
{
|
|||
|
|
|||
|
if (cPayItem.CANCEL_DIV != PosConst.CANCEL_DIV.NORMAL) continue;
|
|||
|
|
|||
|
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.EMP_DC_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.EMP_DC.SAMSUNGCARD)
|
|||
|
{
|
|||
|
|
|||
|
// 이미할인이 등록되어 있습니다.
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0669);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (m_cDataCommon.PayDcDuplicationCheck(ItemConst.TR_ITEM_ID.EMP_DC_ITEM, ItemConst.TR_ITEM_ID.EMP_DC.SAMSUNGCARD, true) == false) return;
|
|||
|
|
|||
|
// 신용카드 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_SAMSUNG_SFC, sMenuKey });
|
|||
|
if (sRet == UserCom.ERROR) return;
|
|||
|
|
|||
|
//승인 요청 처리
|
|||
|
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayMealTicket(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
//기존 소스
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) start
|
|||
|
// 돈통 오픈 처리
|
|||
|
//m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) end
|
|||
|
|
|||
|
//#2018.01.25.001;미국과 그 외 국가의 경우 현금 결제 시 돈통 열리는 시점이 다르게 처리;girak.kim
|
|||
|
if (!m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_MEAL_TICKET, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//#2018.01.25.001;미국의 경우 현금 결제 시 돈통 열리는 시점이 현금 결제 후 돈통 열리게 처리;girak.kim
|
|||
|
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayGift(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
//기존소스
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) start
|
|||
|
// 돈통 오픈 처리
|
|||
|
//m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) end
|
|||
|
|
|||
|
//#2018.01.25.001;미국과 그 외 국가의 경우 현금 결제 시 돈통 열리는 시점이 다르게 처리;girak.kim
|
|||
|
if (!m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_GIFT, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//#2018.01.25.001;미국의 경우 현금 결제 시 돈통 열리는 시점이 현금 결제 후 돈통 열리게 처리;girak.kim
|
|||
|
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS)) m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//#20180202 인천공항 VIP 라운지 기능미사용으로 주석처리 start,phj
|
|||
|
/*
|
|||
|
// grayber@20180115 인천공항 VIP 라운지 start - VIP 라운지 폼 실행
|
|||
|
/// <summary>
|
|||
|
/// 인천공항 VIP 라인지 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
/// <param name="sInputData"></param>
|
|||
|
/// <returns></returns>
|
|||
|
private string PayInCheonVipLounge(string sMenuKey, string sInputData)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
// grayber@20180116 VIP 라운지 옵션 처리 부분 제거 및 돈통 오픈 주석 처리 start
|
|||
|
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) start
|
|||
|
// 돈통 오픈 처리
|
|||
|
//m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) end
|
|||
|
|
|||
|
// grayber@20180116 VIP 라운지 옵션 처리 부분 제거 및 돈통 오픈 주석 처리 end
|
|||
|
|
|||
|
// 현금 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_AIRPORT_VIP_LOUNGE, sMenuKey, sInputData });
|
|||
|
if (sRet != UserCom.RST_OK) return UserCom.RST_ERR;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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;
|
|||
|
}
|
|||
|
// grayber@20180115 인천공항 VIP 라운지 end
|
|||
|
*/
|
|||
|
//#20180202 인천공항 VIP 라운지 기능미사용으로 주석처리 end,phj
|
|||
|
|
|||
|
//grayber@20180208 코레일 마일리지 입력 start - 폼 실행 추가
|
|||
|
private string PayKorailMileage(string sMenuKey, string sInputData)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
// 코레일 마일리지 입력 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_KORAIL_MILEAGE, sMenuKey, sInputData });
|
|||
|
if (sRet != UserCom.RST_OK) return UserCom.RST_ERR;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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;
|
|||
|
}
|
|||
|
//grayber@20180208 코레일 마일리지 입력 end
|
|||
|
|
|||
|
// <summary>
|
|||
|
/// 결제 완료 체크
|
|||
|
/// </summary>
|
|||
|
public string CheckSaleComplete()
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
// 적립 예정 포인트 계산
|
|||
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|||
|
{
|
|||
|
#region
|
|||
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|||
|
{
|
|||
|
// 해피포인트 기본적립 대상 금액 획득
|
|||
|
m_cTrnStatus.Head.AftSavePoint = cEtcItem.AMT_ENTRY_08 = 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, null);
|
|||
|
|
|||
|
// 적립예정포인트
|
|||
|
cEtcItem.ETC_AMT = (long)CmUtil.MathRounds(CmUtil.MathAmtPercent(cEtcItem.AMT_ENTRY_08, m_cPosStatus.Mst.HpyPntAccumRate), PosConst.MATH_ROUND.CEILING, 0);
|
|||
|
//cEtcItem.ETC_AMT = m_cDataCommon.ExecTermCoopCmpPayDc(cEtcItem.ETC_WAY_CD, cEtcItem.ETC_DTL_CD_01, "", cEtcItem.AMT_ENTRY_08); // 적립예정 포인트
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddInfo != "")
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddInfo.Substring(25).StartsWith("N") == true) cEtcItem.ETC_AMT = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
// 해피포인트 예상적립 포인트 계산 중국 추가(2017.06.23)
|
|||
|
else if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA)
|
|||
|
{
|
|||
|
// 해피포인트 기본적립 대상 금액 획득
|
|||
|
m_cTrnStatus.Head.AftSavePoint = cEtcItem.AMT_ENTRY_08 = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.HAPPY_POINT_SAVE_CHINA);
|
|||
|
// 캠페인(해피포인트 적립) 설정 처리
|
|||
|
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
cCampaingMain.ExecuteCampaignHappyPointSave(PosConst.CAMPAIGN_PAY_KEY.HP_SAVE, null);
|
|||
|
|
|||
|
// 적립예정포인트
|
|||
|
cEtcItem.ETC_AMT = CmUtil.MathRounds(CmUtil.MathAmtPercent(cEtcItem.AMT_ENTRY_08, m_cPosStatus.Mst.HpyPntAccumRate), PosConst.MATH_ROUND.CEILING, 2);
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddInfo != "")
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddInfo.Substring(25).StartsWith("N") == true) cEtcItem.ETC_AMT = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.DisplayItem(1, false); // 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayPayment(); // 결제등록정보 화면표시
|
|||
|
|
|||
|
//더치페이 금액 체크!
|
|||
|
if (m_cPosStatus.Sale.DutchPayFlg == "2")
|
|||
|
{
|
|||
|
// 결제 금액 계산 처리
|
|||
|
ArrayList alPayment = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
|
|||
|
if (alPayment.Count > 0)
|
|||
|
{
|
|||
|
int iRow = alPayment.Count - 1;
|
|||
|
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayment[iRow];
|
|||
|
if (cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.NORMAL && cPayItem.PAY_DTL_CD_05 == PosConst.PAY_DC_TYPE.PAY)
|
|||
|
m_cSaleComplete.DutchPayReceiptPrint(new string[] { "" }); //금액 더치페이 영수증 출력! - 결제일 경우!
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
// 결제 완료 체크
|
|||
|
//#Rhee, 20171222 결제금액이 0원이고 미국 예약등록이면 0원으로도 결제가능하게 추가 start
|
|||
|
// 기존
|
|||
|
//if (m_cTrnStatus.Sale.RemainPayAmt == 0)
|
|||
|
// 변경
|
|||
|
if ((m_cTrnStatus.Sale.RemainPayAmt == 0) || ((m_cTrnStatus.Sale.RemainPayAmt > 0) &&
|
|||
|
(m_cPosStatus.Base.CmpCd.Equals("PCUS") && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_REG)))
|
|||
|
//#Rhee, 20171222 결제금액이 0원이고 미국 예약등록이면 0원으로도 결제가능하게 추가 end
|
|||
|
{
|
|||
|
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
|
|||
|
{
|
|||
|
sRet = IncheonAireportPayClose(PosKey.MENU_KEY.INCHEON_AIRPORT);
|
|||
|
if (sRet == UserCom.RST_ERR) return sRet;
|
|||
|
}
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
//#Rhee, 20180212 거스름돈 안내 팝업 start
|
|||
|
if( (m_cPosStatus.Base.CmpCd.Equals("PCUS") && (m_cPosStatus.Sale.ChangeCashAmt > 0)))
|
|||
|
{
|
|||
|
string sMsg = string.Format(MessageManager.GetGuideMessage(POS_MESSAGE.GUIDE.MSG_0013), Convert.ToString(m_cPosStatus.Sale.PayRecvedAmt), Convert.ToString(m_cPosStatus.Sale.ChangeCashAmt));
|
|||
|
WinManager.ConfirmMessage(sMsg, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0212));
|
|||
|
}
|
|||
|
//#Rhee, 20180212 거스름돈 안내 팝업 start
|
|||
|
|
|||
|
//낱개 반품 이나 판매 로스 일경우 결제 버튼 클릭시 현금 자동 결제 2016-12-05 문성진대리 요청 사항!
|
|||
|
if ((m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE) ||
|
|||
|
(m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS))
|
|||
|
{
|
|||
|
// 결제완료 처리
|
|||
|
sRet = ExecuteSaleComplete();
|
|||
|
}
|
|||
|
else if (PosMstManager.GetPosOption(POS_OPTION.OPT322) != "1")
|
|||
|
{
|
|||
|
// 결제완료 처리
|
|||
|
sRet = ExecuteSaleComplete();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
//결제완료 체크(키오스크 사용) (해피스테이션)
|
|||
|
public string CheckSaleComplete(bool kiosk)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
// 적립 예정 포인트 계산
|
|||
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|||
|
{
|
|||
|
#region
|
|||
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|||
|
{
|
|||
|
// 해피포인트 기본적립 대상 금액 획득
|
|||
|
m_cTrnStatus.Head.AftSavePoint = cEtcItem.AMT_ENTRY_08 = 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, null);
|
|||
|
|
|||
|
// 적립예정포인트
|
|||
|
cEtcItem.ETC_AMT = (long)CmUtil.MathRounds(CmUtil.MathAmtPercent(cEtcItem.AMT_ENTRY_08, m_cPosStatus.Mst.HpyPntAccumRate), PosConst.MATH_ROUND.CEILING, 0);
|
|||
|
//cEtcItem.ETC_AMT = m_cDataCommon.ExecTermCoopCmpPayDc(cEtcItem.ETC_WAY_CD, cEtcItem.ETC_DTL_CD_01, "", cEtcItem.AMT_ENTRY_08); // 적립예정 포인트
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddInfo != "")
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddInfo.Substring(25).StartsWith("N") == true) cEtcItem.ETC_AMT = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
// 해피포인트 예상적립 포인트 계산 중국 추가(2017.06.23)
|
|||
|
else if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA)
|
|||
|
{
|
|||
|
// 해피포인트 기본적립 대상 금액 획득
|
|||
|
m_cTrnStatus.Head.AftSavePoint = cEtcItem.AMT_ENTRY_08 = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.HAPPY_POINT_SAVE_CHINA);
|
|||
|
// 캠페인(해피포인트 적립) 설정 처리
|
|||
|
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
cCampaingMain.ExecuteCampaignHappyPointSave(PosConst.CAMPAIGN_PAY_KEY.HP_SAVE, null);
|
|||
|
|
|||
|
// 적립예정포인트
|
|||
|
cEtcItem.ETC_AMT = CmUtil.MathRounds(CmUtil.MathAmtPercent(cEtcItem.AMT_ENTRY_08, m_cPosStatus.Mst.HpyPntAccumRate), PosConst.MATH_ROUND.CEILING, 2);
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddInfo != "")
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddInfo.Substring(25).StartsWith("N") == true) cEtcItem.ETC_AMT = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
// 판매화면 사용안함(해피스테이션)
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//cFormSaleMain.DisplayItem(1, false); // 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
//cFormSaleMain.DisplayPayment(); // 결제등록정보 화면표시
|
|||
|
|
|||
|
//더치페이 금액 체크! 사용안함(해피스테이션)
|
|||
|
//if (m_cPosStatus.Sale.DutchPayFlg == "2")
|
|||
|
//{
|
|||
|
// // 결제 금액 계산 처리
|
|||
|
// ArrayList alPayment = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
|
|||
|
// if (alPayment.Count > 0)
|
|||
|
// {
|
|||
|
// int iRow = alPayment.Count - 1;
|
|||
|
// Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayment[iRow];
|
|||
|
// if (cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.NORMAL && cPayItem.PAY_DTL_CD_05 == PosConst.PAY_DC_TYPE.PAY)
|
|||
|
// m_cSaleComplete.DutchPayReceiptPrint(new string[] { "" }); //금액 더치페이 영수증 출력! - 결제일 경우!
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
// 결제 완료 체크
|
|||
|
//#Rhee, 20171222 결제금액이 0원이고 미국 예약등록이면 0원으로도 결제가능하게 추가 start
|
|||
|
// 기존
|
|||
|
//if (m_cTrnStatus.Sale.RemainPayAmt == 0)
|
|||
|
// 변경
|
|||
|
if ((m_cTrnStatus.Sale.RemainPayAmt == 0) || ((m_cTrnStatus.Sale.RemainPayAmt > 0) &&
|
|||
|
(m_cPosStatus.Base.CmpCd.Equals("PCUS") && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_REG)))
|
|||
|
//#Rhee, 20171222 결제금액이 0원이고 미국 예약등록이면 0원으로도 결제가능하게 추가 end
|
|||
|
{
|
|||
|
|
|||
|
//#20171227 인천공항 포스연동 start, phj
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
|
|||
|
{
|
|||
|
sRet = IncheonAireportPayClose(PosKey.MENU_KEY.INCHEON_AIRPORT);
|
|||
|
if (sRet == UserCom.RST_ERR) return sRet;
|
|||
|
}
|
|||
|
//#20171227 인천공항 포스연동 end, phj
|
|||
|
|
|||
|
//#Rhee, 20180212 거스름돈 안내 팝업 start
|
|||
|
if ((m_cPosStatus.Base.CmpCd.Equals("PCUS") && (m_cPosStatus.Sale.ChangeCashAmt > 0)))
|
|||
|
{
|
|||
|
string sMsg = string.Format(MessageManager.GetGuideMessage(POS_MESSAGE.GUIDE.MSG_0013), Convert.ToString(m_cPosStatus.Sale.PayRecvedAmt), Convert.ToString(m_cPosStatus.Sale.ChangeCashAmt));
|
|||
|
WinManager.ConfirmMessage(sMsg, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0212));
|
|||
|
}
|
|||
|
//#Rhee, 20180212 거스름돈 안내 팝업 start
|
|||
|
|
|||
|
//낱개 반품 이나 판매 로스 일경우 결제 버튼 클릭시 현금 자동 결제 2016-12-05 문성진대리 요청 사항!
|
|||
|
if ((m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE) ||
|
|||
|
(m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS))
|
|||
|
{
|
|||
|
// 결제완료 처리
|
|||
|
sRet = ExecuteSaleComplete(true);
|
|||
|
}
|
|||
|
else if (PosMstManager.GetPosOption(POS_OPTION.OPT322) != "1")
|
|||
|
{
|
|||
|
// 결제완료 처리
|
|||
|
sRet = ExecuteSaleComplete(true);
|
|||
|
}
|
|||
|
}
|
|||
|
else // 거래금액과 상품금액 차이로(RemainAmt에 금액존재) 거래완료가 안된 경우 리턴 ERR로..2019.04.17
|
|||
|
{
|
|||
|
return UserCom.ERROR;
|
|||
|
}
|
|||
|
|
|||
|
//if (kiosk)
|
|||
|
//{
|
|||
|
// // 결제완료 처리
|
|||
|
// //sRet = ExecuteSaleComplete(true);
|
|||
|
// m_cTrnStatus.Head.OrderNo = m_cTableSvr.GetOrderNoForDb();
|
|||
|
//}
|
|||
|
|
|||
|
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
// <summary>
|
|||
|
/// 결제 완료 처리
|
|||
|
/// </summary>
|
|||
|
public string ExecuteSaleComplete()
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
string sDucthFloor = ""; //더치페이 후불용 층 백업
|
|||
|
string sDucthTableNo = ""; //더치페이 후불용 테이블 번호 백업
|
|||
|
string sHpSaveCompleteMsg = "";
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cPosStatus.Sale.DutchPayFlg == "2") m_cPosStatus.Sale.DutchPayFlg = "";
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_END)
|
|||
|
{
|
|||
|
// 판매상태 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_END;
|
|||
|
|
|||
|
// 주문번호(대기번호) 등록
|
|||
|
if (SetOrderNo() == false)
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.PAY_DOING;
|
|||
|
cFormSaleMain.DisplayPayment(); // 결제등록정보 화면표시
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
//일반판매, 예약완료가 아닐 경우
|
|||
|
if ((m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE) != true)
|
|||
|
{
|
|||
|
//적립, 현금 영수증 안함!
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
#region
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) start
|
|||
|
//170811 dkshin 돈통 오픈 처리 시점 변경(현금영수증 전)
|
|||
|
// 돈통 오픈 처리
|
|||
|
/*
|
|||
|
if (FinishTradeOpenDrawer() == true)
|
|||
|
{
|
|||
|
UserLog.WriteLogFile(UserCom.LOG_IOS, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "OpenCashDrawer");
|
|||
|
|
|||
|
m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
|
|||
|
}
|
|||
|
*/
|
|||
|
//#20170830 해당 기능키 선택시 돈통 오픈 (현금, 상품권, 수표, 식권, 잔액교환권) end
|
|||
|
|
|||
|
// 현금 영수증 발행
|
|||
|
if (PayCashbill(PosKey.MENU_KEY.CASH_APPROVAL) == false)
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.PAY_DOING;
|
|||
|
m_cTrnStatus.Head.OrderNo = "";
|
|||
|
cFormSaleMain.DisplayPayment(); // 결제등록정보 화면표시
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
// 해피포인트 적립 완료 처리
|
|||
|
CompleteHappyPointSave();
|
|||
|
|
|||
|
//// 현금 영수증 발행
|
|||
|
//PayCashbill(PosKey.MENU_KEY.CASH_APPROVAL);
|
|||
|
|
|||
|
// 결제 고객 등록 체크
|
|||
|
SetPayGuest("2");
|
|||
|
|
|||
|
cFormSaleMain.DisplayPayment(); // 결제등록정보 화면표시
|
|||
|
|
|||
|
//#13173 PB 부산수안_해피쿠폰 할인 후 대상금액 '0'원으로 표시되는 증상 start, phj
|
|||
|
/*
|
|||
|
// 추후적립 초기화
|
|||
|
Column.TR_ETC.DATA cEtcItemHP = null;
|
|||
|
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.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA))
|
|||
|
{
|
|||
|
// 해피포인트 적립 완료시 추후적립 정보 초기화
|
|||
|
m_cTrnStatus.Head.AftSavePoint = 0;
|
|||
|
m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
// 추가적립의 추후적립 불가시 초기화
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddDiv != "1") m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
// 1000원 이하 추후적립 안함.
|
|||
|
if (m_cTrnStatus.Head.AftSavePoint < 1000 && m_cTrnStatus.Head.AftSaveAddInfo == "")
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.AftSavePoint = 0;
|
|||
|
m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
}
|
|||
|
*/
|
|||
|
//#13173 PB 부산수안_해피쿠폰 할인 후 대상금액 '0'원으로 표시되는 증상 end, phj
|
|||
|
|
|||
|
|
|||
|
// 해피포인트 적립 완료 안내 메시지 추출
|
|||
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|||
|
{
|
|||
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
if ((cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|||
|
|| (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA))
|
|||
|
{
|
|||
|
//#20180821 해피포인트 고객이름 마스킹 start
|
|||
|
if (cEtcItem.HP_CUST_NAME != "") { cEtcItem.HP_CUST_NAME = m_cDataCommon.NameMasking(cEtcItem.HP_CUST_NAME); }
|
|||
|
//#20180821 해피포인트 고객이름 마스킹 end
|
|||
|
|
|||
|
sHpSaveCompleteMsg = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0690),
|
|||
|
cEtcItem.HP_CUST_NAME,
|
|||
|
m_cPosStatus.Global.NumericTOCurrency(cEtcItem.ETC_AMT));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// #20170616, 해피앱 스탬프 Start
|
|||
|
//20171025 dkshin 전문 영수증번호 전거래의 영수증번호로 중복등록되는 문제 수정-> 거래 완료(PosSaleExecute) 후 처리
|
|||
|
/*IHappyAppStamp m_cHappyAppStamp = (IHappyAppStamp)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HPAPP_STAMP);
|
|||
|
m_cTrnStatus.Sale.HappyAppMemNo = m_cHappyAppStamp.CheckHappyAppStamp();
|
|||
|
if (m_cPosStatus.Base.TrainingFlag == "0" && // 운영모드
|
|||
|
PosMstManager.GetPosOption(POS_OPTION.OPT327) == "1" && // 해피앱 스탬프 사용
|
|||
|
m_cTrnStatus.Sale.HappyAppMemNo != "") // 해피앱 회원번호 존재(해피앱 고객)
|
|||
|
{
|
|||
|
// 해피앱 스탬프 등록
|
|||
|
m_cHappyAppStamp.SetHappyAppStamp();
|
|||
|
}
|
|||
|
*/
|
|||
|
// #20170616, 해피앱 스탬프 End
|
|||
|
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
//상품권 판매 or 선불카드 판매 경우!
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND
|
|||
|
&& m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.CHARGESALE.PREPAID && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.CHARGESALE.GIFT)
|
|||
|
{
|
|||
|
#region
|
|||
|
// 영수 캠페인 실행
|
|||
|
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
cCampaingMain.ExecuteCampaignPrint(new string[] { });
|
|||
|
|
|||
|
if (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.CN)
|
|||
|
{
|
|||
|
// 온라인쿠폰 발행(중국) 실행
|
|||
|
IPaymentUs cOnLineCpn = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.ONLINE_COUPON_PRT);
|
|||
|
cOnLineCpn.SetPayment(new string[] { });
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
//// 주문번호 등록
|
|||
|
//SetOrderNo();
|
|||
|
|
|||
|
// Add, 2017.01.24
|
|||
|
// 주방프린터 수동출력 처리 0:자동 1:수동(프린터선택) 2:수동(상품선택)
|
|||
|
//주방프린터는 자동으로 처리함 (해피스테이션)
|
|||
|
//MenualOrderKtchProcess();
|
|||
|
|
|||
|
// 테이블 거래 완료 처리
|
|||
|
sRet = m_cTableSvr.CompleteSaleOrder();
|
|||
|
}
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 더치페이면....
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
ArrayList ctmpSaleItem = new ArrayList();
|
|||
|
if (m_cPosStatus.Sale.DutchPayFlg == "1")
|
|||
|
{
|
|||
|
#region
|
|||
|
//1.상품백업
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
for (int iRow = 0; iRow < aSaleItem.Count; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow];
|
|||
|
|
|||
|
cSaleItem.ORG_ITEM_SEQ = iRow;
|
|||
|
|
|||
|
ctmpSaleItem.Add(cSaleItem.Clone());
|
|||
|
}
|
|||
|
|
|||
|
sDucthFloor = m_cTrnStatus.Head.FloorCd;
|
|||
|
sDucthTableNo = m_cTrnStatus.Head.TableNo;
|
|||
|
m_cPosStatus.Sale.PayingDutchFlag = "1";
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
//결제완료 시점에 현금영수증 승인버튼 누르면 음성 플레이 되는 기능 --> 무조건 결제완료 시점에 플레이 되도록 수정! - #20180212 start,phj
|
|||
|
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_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE && CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT309), "1") == "2"))
|
|||
|
{
|
|||
|
frmSaleMain fMain = (frmSaleMain)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
fMain.SetPlayMotMsg(PosConst.MOT_MSG_TYPE.DSP_SCN_MSG, PosKey.MENU_KEY.PHRASE_RECEIPT_INPUT, "");
|
|||
|
}
|
|||
|
//결제완료 시점에 현금영수증 승인버튼 누르면 음성 플레이 되는 기능 --> 무조건 결제완료 시점에 플레이 되도록 수정! - #20180212 end,phj
|
|||
|
|
|||
|
((Form)cFormSaleMain).Refresh();
|
|||
|
// ##########거래 완료 처리########## //
|
|||
|
sRet = m_cSaleComplete.PosSaleExecute(new string[] { });
|
|||
|
if (sRet != UserCom.RST_OK) return sRet;
|
|||
|
|
|||
|
// 판매상태 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;
|
|||
|
|
|||
|
// 거래 완료 후 초기화 처리
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
//cFormSaleMain.DisplayInit(true, true);
|
|||
|
frmSaleMain fSalMain = (frmSaleMain)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
fSalMain.SubPriorReadingVarClear(true);
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, true);
|
|||
|
// 상품등록 화면 표시
|
|||
|
cFormSaleMain.ChangeSalePayMode(true);
|
|||
|
|
|||
|
// 거래완료 로그 출력
|
|||
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()"
|
|||
|
, "SaleDate : " + m_cPosStatus.Base.SaleDate + ", StoreNo : " + m_cPosStatus.Base.StoreNo + ", PosNo : " + m_cPosStatus.Base.PosNo + ", TranNo : " + m_cPosStatus.Base.TradeNo);
|
|||
|
|
|||
|
// 해피포인트 적립 완료 안내메시지 표시
|
|||
|
if (sHpSaveCompleteMsg != "") WinSale.ShowForm(new string[] { FormManager.FORM_HP_SAVE_COMPLETE_MSG, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0108), sHpSaveCompleteMsg });
|
|||
|
|
|||
|
//현금 알림 체크
|
|||
|
if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT310), "0") != "0")
|
|||
|
{
|
|||
|
if (m_cPosStatus.Mst.CashAlarmAmt > m_cDataService.DoubleParse(PosMstManager.GetPosOption(POS_OPTION.OPT310)))
|
|||
|
{
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0325));
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//#20180605 해피오더 개선 start - 20180618
|
|||
|
m_cPosStatus.Sale.bPayCompleteYN = true;
|
|||
|
//#20180605 해피오더 개선 end - 20180618
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 더치페이면....
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
if (m_cPosStatus.Sale.DutchPayFlg == "1")
|
|||
|
{
|
|||
|
#region
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
for (int iRow = 0; iRow < ctmpSaleItem.Count; iRow++)
|
|||
|
{
|
|||
|
#region
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)ctmpSaleItem[iRow];
|
|||
|
|
|||
|
cSaleItem.CANCEL_DIV = cSaleItem.DUTCH_PAY_CAN_DIV;
|
|||
|
cSaleItem.CANCEL_DIV_MAIN = cSaleItem.DUTCH_PAY_MAIN_CAN_DIV;
|
|||
|
cSaleItem.DUTCH_PAY_CAN_DIV = "";
|
|||
|
cSaleItem.DUTCH_PAY_MAIN_CAN_DIV = "";
|
|||
|
|
|||
|
if (cSaleItem.DUTCH_PAY_SELQTY == cSaleItem.DUTCH_PAY_TOTQTY)
|
|||
|
{
|
|||
|
cSaleItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|||
|
cSaleItem.CANCEL_DIV_MAIN = PosConst.CANCEL_DIV.CANCEL;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cSaleItem.SALE_QTY = cSaleItem.DUTCH_PAY_TOTQTY - cSaleItem.DUTCH_PAY_SELQTY;
|
|||
|
}
|
|||
|
|
|||
|
if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.NORMAL)
|
|||
|
{
|
|||
|
aSaleItem.Add(cSaleItem.Clone());
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
if (aSaleItem.Count > 0)
|
|||
|
{
|
|||
|
|
|||
|
m_cTrnStatus.Head.FloorCd = sDucthFloor;
|
|||
|
m_cTrnStatus.Head.TableNo = sDucthTableNo;
|
|||
|
|
|||
|
m_cPluService.ItemDcAllClear(true);
|
|||
|
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
//더치페이 호출!
|
|||
|
DutchPay("", "1");
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.DutchPayFlg = "";
|
|||
|
m_cPosStatus.Sale.PayingDutchFlag = "";
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && m_cPosStatus.Sale.DutchPayFlg == "")
|
|||
|
{
|
|||
|
//테이블 서비스 이면 판매화면 종료 처리
|
|||
|
cFormSaleMain.SaleMainExit();
|
|||
|
}
|
|||
|
|
|||
|
//#20181016 메모리 사용량 로그남기기 start
|
|||
|
//20181108 주석처리
|
|||
|
//m_cDataCommon.MemoryCheckLog();
|
|||
|
//#20181016 메모리 사용량 로그남기기 end
|
|||
|
|
|||
|
//if (m_cPosStatus.Base.DmbIf == "1")
|
|||
|
//{
|
|||
|
// // 디지털메뉴보드 I/F
|
|||
|
// IDataServiceUs cDigitalMenuBoard = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.DMB_IF);
|
|||
|
|
|||
|
// // 판매완료
|
|||
|
// //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
|
|||
|
// //기존
|
|||
|
// //cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.SALE_END });
|
|||
|
// //변경
|
|||
|
|
|||
|
// if (PosMstManager.GetPosOption(POS_OPTION.OPT554) != "1")
|
|||
|
// {
|
|||
|
// cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.SALE_END });
|
|||
|
// }
|
|||
|
|
|||
|
// cDigitalMenuBoard = null;
|
|||
|
// //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end
|
|||
|
//}
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|||
|
ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
//kiosk용 거래완료처리 2019.04.17(해피스테이션)
|
|||
|
public string ExecuteSaleComplete(bool kiosk)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
string sHpSaveCompleteMsg = "";
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cPosStatus.Sale.DutchPayFlg == "2") m_cPosStatus.Sale.DutchPayFlg = "";
|
|||
|
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.SaleFlow != PosConst.SALE_FLOW.SALE_END)
|
|||
|
{
|
|||
|
// 판매상태 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_END;
|
|||
|
|
|||
|
// 주문번호(대기번호) 등록
|
|||
|
|
|||
|
if (string.IsNullOrEmpty(m_cTrnStatus.Head.OrderNo))
|
|||
|
{
|
|||
|
if (SetOrderNo() == false)
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.PAY_DOING;
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//일반판매, 예약완료가 아닐 경우
|
|||
|
if ((m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE) != true)
|
|||
|
{
|
|||
|
//적립, 현금 영수증 안함!
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
#region
|
|||
|
|
|||
|
// 현금 영수증 발행
|
|||
|
//해피스테이션에서는 중복 처리됨 2019.05.10
|
|||
|
//if (PayCashbill(PosKey.MENU_KEY.CASH_APPROVAL) == false)
|
|||
|
//{
|
|||
|
// m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.PAY_DOING;
|
|||
|
// m_cTrnStatus.Head.OrderNo = "";
|
|||
|
// return sRet;
|
|||
|
//}
|
|||
|
|
|||
|
// 해피포인트 적립 완료 처리
|
|||
|
CompleteHappyPointSave();
|
|||
|
|
|||
|
//// 현금 영수증 발행
|
|||
|
//PayCashbill(PosKey.MENU_KEY.CASH_APPROVAL);
|
|||
|
|
|||
|
// 결제 고객 등록 체크
|
|||
|
//SetPayGuest("2");
|
|||
|
|
|||
|
|
|||
|
// 해피포인트 적립 완료 안내 메시지 추출 --필요없음(해피스테이션)
|
|||
|
//ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
//foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|||
|
//{
|
|||
|
// if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
// if ((cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|||
|
// || (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA))
|
|||
|
// {
|
|||
|
// //#20180821 해피포인트 고객이름 마스킹 start
|
|||
|
// if (cEtcItem.HP_CUST_NAME != "") { cEtcItem.HP_CUST_NAME = m_cDataCommon.NameMasking(cEtcItem.HP_CUST_NAME); }
|
|||
|
// //#20180821 해피포인트 고객이름 마스킹 end
|
|||
|
|
|||
|
// sHpSaveCompleteMsg = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0690),
|
|||
|
// cEtcItem.HP_CUST_NAME,
|
|||
|
// m_cPosStatus.Global.NumericTOCurrency(cEtcItem.ETC_AMT));
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
#endregion
|
|||
|
}
|
|||
|
|
|||
|
//상품권 판매 or 선불카드 판매 경우!(상품권 /선불 카드 없음 (해피스테이션)
|
|||
|
//if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND
|
|||
|
// && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.CHARGESALE.PREPAID && m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.CHARGESALE.GIFT)
|
|||
|
//{
|
|||
|
// #region
|
|||
|
// // 영수 캠페인 실행
|
|||
|
// ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
// cCampaingMain.ExecuteCampaignPrint(new string[] { });
|
|||
|
|
|||
|
// if (m_cPosStatus.Mst.CntryDiv == ItemConst.CNTRY_DIV.CN)
|
|||
|
// {
|
|||
|
// // 온라인쿠폰 발행(중국) 실행
|
|||
|
// IPaymentUs cOnLineCpn = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.ONLINE_COUPON_PRT);
|
|||
|
// cOnLineCpn.SetPayment(new string[] { });
|
|||
|
// }
|
|||
|
// #endregion
|
|||
|
//}
|
|||
|
|
|||
|
// KtchOrderSheetToBillPrint();
|
|||
|
|
|||
|
|
|||
|
// 테이블 거래 완료 처리
|
|||
|
sRet = m_cTableSvr.CompleteSaleOrder();
|
|||
|
}
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 더치페이면....없음(해피스테이션
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
//ArrayList ctmpSaleItem = new ArrayList();
|
|||
|
//if (m_cPosStatus.Sale.DutchPayFlg == "1")
|
|||
|
//{
|
|||
|
// #region
|
|||
|
// //1.상품백업
|
|||
|
// ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
// for (int iRow = 0; iRow < aSaleItem.Count; iRow++)
|
|||
|
// {
|
|||
|
// Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow];
|
|||
|
|
|||
|
// cSaleItem.ORG_ITEM_SEQ = iRow;
|
|||
|
|
|||
|
// ctmpSaleItem.Add(cSaleItem.Clone());
|
|||
|
// }
|
|||
|
|
|||
|
// sDucthFloor = m_cTrnStatus.Head.FloorCd;
|
|||
|
// sDucthTableNo = m_cTrnStatus.Head.TableNo;
|
|||
|
// m_cPosStatus.Sale.PayingDutchFlag = "1";
|
|||
|
// #endregion
|
|||
|
//}
|
|||
|
|
|||
|
|
|||
|
//폼호출 안함..(해피스테이션)
|
|||
|
//결제완료 시점에 현금영수증 승인버튼 누르면 음성 플레이 되는 기능 --> 무조건 결제완료 시점에 플레이 되도록 수정! - #20180212 start,phj
|
|||
|
//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_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE && CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT309), "1") == "2"))
|
|||
|
//{
|
|||
|
// frmSaleMain fMain = (frmSaleMain)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
// fMain.SetPlayMotMsg(PosConst.MOT_MSG_TYPE.DSP_SCN_MSG, PosKey.MENU_KEY.PHRASE_RECEIPT_INPUT, "");
|
|||
|
//}
|
|||
|
|
|||
|
|
|||
|
#region 비회원 적립예상포인트 구하기 2019.05.16
|
|||
|
|
|||
|
//비회원 적립예상포인트 구하기 2019.05.16
|
|||
|
// 해피포인트 기본적립 대상 금액 획득
|
|||
|
|
|||
|
//var chkHappy = false;
|
|||
|
//ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
//foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|||
|
//{
|
|||
|
// if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
// if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|||
|
// {
|
|||
|
// if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|||
|
// {
|
|||
|
// chkHappy = true;
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
//if (!chkHappy)
|
|||
|
//{
|
|||
|
// var AfterSavePoint = 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, null);
|
|||
|
|
|||
|
// // 적립예정포인트
|
|||
|
// m_cTrnStatus.Head.SavingHpPoint = (long)CmUtil.MathRounds(CmUtil.MathAmtPercent(AfterSavePoint, m_cPosStatus.Mst.HpyPntAccumRate), PosConst.MATH_ROUND.CEILING, 0);
|
|||
|
//}
|
|||
|
#endregion
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// ##########거래 완료 처리########## //
|
|||
|
sRet = m_cSaleComplete.PosSaleExecute(new string[] { });
|
|||
|
if (sRet != UserCom.RST_OK) return sRet;
|
|||
|
|
|||
|
// 판매상태 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;
|
|||
|
|
|||
|
|
|||
|
// 거래완료 로그 출력
|
|||
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()"
|
|||
|
, "SaleDate : " + m_cPosStatus.Base.SaleDate + ", StoreNo : " + m_cPosStatus.Base.StoreNo + ", PosNo : " + m_cPosStatus.Base.PosNo + ", TranNo : " + m_cPosStatus.Base.TradeNo);
|
|||
|
|
|||
|
// 해피포인트 적립 완료 안내메시지 표시(해피스테이션에서 막음 2019.04.22)
|
|||
|
//if (sHpSaveCompleteMsg != "") WinSale.ShowForm(new string[] { FormManager.FORM_HP_SAVE_COMPLETE_MSG, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0108), sHpSaveCompleteMsg });
|
|||
|
|
|||
|
//현금 알림 체크(현금 사용안함 (해피스테이션)
|
|||
|
//if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT310), "0") != "0")
|
|||
|
//{
|
|||
|
// if (m_cPosStatus.Mst.CashAlarmAmt > m_cDataService.DoubleParse(PosMstManager.GetPosOption(POS_OPTION.OPT310)))
|
|||
|
// {
|
|||
|
// WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0325));
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
//#20180605 해피오더 개선 start - 20180618
|
|||
|
m_cPosStatus.Sale.bPayCompleteYN = true;
|
|||
|
//#20180605 해피오더 개선 end - 20180618
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 더치페이면....더치페이 없음(해피스테이션)
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
//if (m_cPosStatus.Sale.DutchPayFlg == "1")
|
|||
|
//{
|
|||
|
// #region
|
|||
|
// ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
// for (int iRow = 0; iRow < ctmpSaleItem.Count; iRow++)
|
|||
|
// {
|
|||
|
// #region
|
|||
|
// Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)ctmpSaleItem[iRow];
|
|||
|
|
|||
|
// cSaleItem.CANCEL_DIV = cSaleItem.DUTCH_PAY_CAN_DIV;
|
|||
|
// cSaleItem.CANCEL_DIV_MAIN = cSaleItem.DUTCH_PAY_MAIN_CAN_DIV;
|
|||
|
// cSaleItem.DUTCH_PAY_CAN_DIV = "";
|
|||
|
// cSaleItem.DUTCH_PAY_MAIN_CAN_DIV = "";
|
|||
|
|
|||
|
// if (cSaleItem.DUTCH_PAY_SELQTY == cSaleItem.DUTCH_PAY_TOTQTY)
|
|||
|
// {
|
|||
|
// cSaleItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|||
|
// cSaleItem.CANCEL_DIV_MAIN = PosConst.CANCEL_DIV.CANCEL;
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// cSaleItem.SALE_QTY = cSaleItem.DUTCH_PAY_TOTQTY - cSaleItem.DUTCH_PAY_SELQTY;
|
|||
|
// }
|
|||
|
|
|||
|
// if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.NORMAL)
|
|||
|
// {
|
|||
|
// aSaleItem.Add(cSaleItem.Clone());
|
|||
|
// }
|
|||
|
// #endregion
|
|||
|
// }
|
|||
|
|
|||
|
// if (aSaleItem.Count > 0)
|
|||
|
// {
|
|||
|
|
|||
|
// m_cTrnStatus.Head.FloorCd = sDucthFloor;
|
|||
|
// m_cTrnStatus.Head.TableNo = sDucthTableNo;
|
|||
|
|
|||
|
// m_cPluService.ItemDcAllClear(true);
|
|||
|
|
|||
|
// m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
// //더치페이 호출!
|
|||
|
// DutchPay("", "1");
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// m_cPosStatus.Sale.DutchPayFlg = "";
|
|||
|
// m_cPosStatus.Sale.PayingDutchFlag = "";
|
|||
|
// }
|
|||
|
// #endregion
|
|||
|
//}
|
|||
|
|
|||
|
//테이블 서비스 없음(해피스테이션)
|
|||
|
//if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && m_cPosStatus.Sale.DutchPayFlg == "")
|
|||
|
//{
|
|||
|
// //테이블 서비스 이면 판매화면 종료 처리
|
|||
|
// cFormSaleMain.SaleMainExit();
|
|||
|
//}
|
|||
|
|
|||
|
//#20181016 메모리 사용량 로그남기기 start
|
|||
|
//20181108 주석처리
|
|||
|
//m_cDataCommon.MemoryCheckLog();
|
|||
|
//#20181016 메모리 사용량 로그남기기 end
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
if (m_cPosStatus.Base.DmbIf == "1")
|
|||
|
{
|
|||
|
//// 디지털메뉴보드 I/F
|
|||
|
//IDataServiceUs cDigitalMenuBoard = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.DMB_IF);
|
|||
|
|
|||
|
//if (PosMstManager.GetPosOption(POS_OPTION.OPT554) != "1")
|
|||
|
//{
|
|||
|
// cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.SALE_END });
|
|||
|
//}
|
|||
|
|
|||
|
//cDigitalMenuBoard = null;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
var sUrl = m_cPosStatus.Base.DmbSvrIp;
|
|||
|
var sWorkType = "/api/ods";
|
|||
|
Hashtable htRequest = new Hashtable();
|
|||
|
Hashtable htDummy = new Hashtable();
|
|||
|
|
|||
|
|
|||
|
string nowDate = DateTime.Now.ToString("yyyymmdd");
|
|||
|
string nowTime = DateTime.Now.ToString("HHmmss");
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
htRequest.Add("cmpCode", m_cPosStatus.Base.CmpCd);
|
|||
|
htRequest.Add("brandCode",m_cPosStatus.Base.BrandCd);
|
|||
|
htRequest.Add("storeCode", m_cPosStatus.Base.StoreNo);
|
|||
|
htRequest.Add("deviceCode", "");
|
|||
|
htRequest.Add("saleDiv", "");
|
|||
|
htRequest.Add("saleDt", nowDate);
|
|||
|
htRequest.Add("saleTm", nowTime);
|
|||
|
htRequest.Add("soldDt", "");
|
|||
|
htRequest.Add("soldTm", "");
|
|||
|
htRequest.Add("saleResult", "");
|
|||
|
htRequest.Add("posNo", "");
|
|||
|
htRequest.Add("billNo", "");
|
|||
|
htRequest.Add("beforeBillNo", "");
|
|||
|
|
|||
|
htRequest.Add("takeDiv", "");
|
|||
|
htRequest.Add("waitNo", m_cTrnStatus.Head.OrderNo);
|
|||
|
htRequest.Add("totalPrice", "");
|
|||
|
htRequest.Add("totalSalePrice", "");
|
|||
|
htRequest.Add("totalService", "");
|
|||
|
htRequest.Add("totalVat", "");
|
|||
|
htRequest.Add("totalEnr", "");
|
|||
|
htRequest.Add("itemName", "");
|
|||
|
htRequest.Add("itemCount", "");
|
|||
|
htRequest.Add("payType", "");
|
|||
|
|
|||
|
htRequest.Add("payAmount", "");
|
|||
|
htRequest.Add("payPointUse", "");
|
|||
|
htRequest.Add("payPointSave", "");
|
|||
|
htRequest.Add("saleItemList", htDummy);
|
|||
|
htRequest.Add("salePayList", htDummy);
|
|||
|
|
|||
|
Hashtable htResponse = null;
|
|||
|
Hashtable[] htReturn = null;
|
|||
|
int iRet = 0;
|
|||
|
|
|||
|
string sResp = string.Empty;
|
|||
|
if ((iRet = m_cNetworkHttp.HttpJsonPOST_SendReceive(sUrl, sWorkType, htRequest, ref htResponse, ref sResp)) == BaseCom.OK)
|
|||
|
{
|
|||
|
htReturn = JsonConvert.DeserializeObject<Hashtable[]>(sResp);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|||
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
|
|||
|
ex.Message);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|||
|
ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 금액 더치페이 남은 금액 체크
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool GetDutchPayRemain()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
double dAvancePay = 0;
|
|||
|
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 결제 금액 계산 처리
|
|||
|
ArrayList alPayment = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
for (int iRow = 0; iRow < alPayment.Count; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PAYMENT.DATA cPayItem = (Column.TR_PAYMENT.DATA)alPayment[iRow];
|
|||
|
|
|||
|
if (cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|||
|
if (cPayItem.PAY_DTL_CD_05 != "" && cPayItem.PAY_DTL_CD_05 != "1") continue;
|
|||
|
|
|||
|
// 받은금액 계산 처리
|
|||
|
dAvancePay += cPayItem.PAY_AMT;
|
|||
|
}
|
|||
|
|
|||
|
// 받을금액
|
|||
|
if (m_cTrnStatus.Sale.DutchPayTotAmt > dAvancePay)
|
|||
|
{
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 주문번호등록
|
|||
|
/// </summary>
|
|||
|
/// 2019-04-17 - 1997fx11 : 대기번호 출력 참조.
|
|||
|
public bool SetOrderNo()
|
|||
|
{
|
|||
|
// grayber@20180110 전자영수증 주문(대기)번호표 출력 start - string 선언 이동
|
|||
|
// 선언 이동
|
|||
|
string sRet = ""; // grayber@20180110 string 선언 이동
|
|||
|
// grayber@20180110 전자영수증 주문(대기)번호표 출력 end
|
|||
|
try
|
|||
|
{
|
|||
|
//정상 && 일반 거래 일때만 처리! => 로스거래 주방출력 함(2017.05.25)
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL
|
|||
|
&& (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS))
|
|||
|
{
|
|||
|
// Add, 2017.04.11, 후불-판매모드는 주문번호 자동채번 처리 (점별일련번호)
|
|||
|
if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT)
|
|||
|
{
|
|||
|
if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.NO_ORDER_SALE || string.IsNullOrWhiteSpace(m_cTrnStatus.Head.OrderNo))
|
|||
|
m_cTrnStatus.Head.OrderNo = m_cTableSvr.GetOrderNoForDb();
|
|||
|
|
|||
|
// 후불일 경우에도 판매모드에서는 대기번호 자동체번 안함(2017.05.24)
|
|||
|
if (m_cPosStatus.Sale.EtcOperateMode != PosConst.ETC_OPERATION_MODE.NO_ORDER_SALE)
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT008) == "1") //대기번호 사용여부
|
|||
|
{
|
|||
|
// 자동채번일 경우!
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT042) == "1")
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.OrderNo = m_cDataCommon.GetWaitNoForDb();
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//sCardNo = GetHappyAppNo();
|
|||
|
|
|||
|
// Add, 2017.04.25, KPS => 주방출력 대상 상품이 존재 할 때만 대기번호 입력
|
|||
|
// KDS => 무조건 대기번호 입력
|
|||
|
var isGetOrderNo = false;
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT027) == "1" || PosMstManager.GetPosOption(POS_OPTION.OPT507) == "1")
|
|||
|
{
|
|||
|
// KDS => 무조건 대기번호 입력
|
|||
|
isGetOrderNo = true;
|
|||
|
}
|
|||
|
//#20181024 대기(주문)번호표 출력 start
|
|||
|
/*
|
|||
|
else if (PosMstManager.GetPosOption(POS_OPTION.OPT432) == "1")
|
|||
|
{
|
|||
|
// 대기(주문)번호표 출력여부 => 무조건 대기번호 입력
|
|||
|
isGetOrderNo = true;
|
|||
|
}
|
|||
|
*/
|
|||
|
//#20181024 대기(주문)번호표 출력 end
|
|||
|
else
|
|||
|
{
|
|||
|
// KPS => 주방출력 대상 상품이 존재 할 때만 대기번호 입력
|
|||
|
isGetOrderNo = IsExistKtchItem();
|
|||
|
}
|
|||
|
|
|||
|
//isGetOrderNo = true; //지우자!!!!
|
|||
|
|
|||
|
// Mod, 2017.04.25, KPS => 주방출력 대상 상품이 존재 할 때만 대기번호 입력
|
|||
|
if (isGetOrderNo)
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Sale.HappyBuzzMemNo != "" && m_cPosStatus.Mst.HappyBuzzUseYn == "1")
|
|||
|
{
|
|||
|
//해피버즈 처리!
|
|||
|
sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_HAPPY_BUZZ, PosKey.MENU_KEY.HAPPY_BUZ_REG, m_cTrnStatus.Sale.HappyBuzzMemNo });
|
|||
|
if (sRet != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.OrderNo = sRet;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//실패시 일반 받기!
|
|||
|
sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_USER_INPUT_DATA, PosConst.FRM_INPUT_DATA.ORDERNO });
|
|||
|
if (sRet != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
//m_cTrnStatus.Head.OrderNo = sRet;
|
|||
|
var tmp = sRet.Split('|');
|
|||
|
if (tmp.Length > 0) m_cTrnStatus.Head.OrderNo = tmp[0];
|
|||
|
if (tmp.Length > 1) m_cTrnStatus.Sale.MenualOrderMemo = tmp[1];
|
|||
|
}
|
|||
|
else
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_USER_INPUT_DATA, PosConst.FRM_INPUT_DATA.ORDERNO });
|
|||
|
if (sRet != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
//m_cTrnStatus.Head.OrderNo = sRet;
|
|||
|
var tmp = sRet.Split('|');
|
|||
|
if (tmp.Length > 0) m_cTrnStatus.Head.OrderNo = tmp[0];
|
|||
|
if (tmp.Length > 1) m_cTrnStatus.Sale.MenualOrderMemo = tmp[1];
|
|||
|
}
|
|||
|
else
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
// grayber@20180110 전자영수증 주문(대기)번호표 출력 start - 주문(대기번호) 입력 창 처리
|
|||
|
// 추가
|
|||
|
|
|||
|
// grayber@20180122 전자영수증 주문(대기)번호표 출력 start - 브랜드구분을 회사구분으로 변경, if -> else if 변경
|
|||
|
//if (m_cPosStatus.Base.BrandDiv.Equals(ItemConst.CORP_DIV.BR) == true ) // 기존
|
|||
|
else if (m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) == true ) // 변경
|
|||
|
// grayber@20180122 전자영수증 주문(대기)번호표 출력 start
|
|||
|
{
|
|||
|
sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_USER_INPUT_DATA, PosConst.FRM_INPUT_DATA.ORDERNO });
|
|||
|
if (sRet != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
//m_cTrnStatus.Head.OrderNo = sRet;
|
|||
|
var tmp = sRet.Split('|');
|
|||
|
if (tmp.Length > 0) m_cTrnStatus.Head.OrderNo = tmp[0];
|
|||
|
if (tmp.Length > 1) m_cTrnStatus.Sale.MenualOrderMemo = tmp[1];
|
|||
|
}
|
|||
|
else
|
|||
|
return false;
|
|||
|
}
|
|||
|
// grayber@20180110 전자영수증 주문(대기)번호표 출력 end
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//else if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.NO_ORDER_SALE)
|
|||
|
//{
|
|||
|
// // 후불-판매모드 일때
|
|||
|
// //m_cTrnStatus.Head.OrderNo = m_cDataCommon.GetWaitNoForDb();
|
|||
|
// m_cTrnStatus.Head.OrderNo = m_cTrnStatus.Head.TradeNo;
|
|||
|
//}
|
|||
|
}
|
|||
|
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>
|
|||
|
/// 주방출력(KPS) 대상 상품 존재여부
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool IsExistKtchItem()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
// 일반주문 일때
|
|||
|
var lstktchItems = new List<string>();
|
|||
|
var pluItems = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
foreach (Column.TR_PLU.DATA item in pluItems)
|
|||
|
{
|
|||
|
if (item.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_OK) continue;
|
|||
|
|
|||
|
if (string.IsNullOrWhiteSpace(m_cTrnStatus.Head.FloorCd) == false)
|
|||
|
lstktchItems.Add(string.Format("'{0}{1}{2}'", m_cTrnStatus.Head.FloorCd, item.SUB_SHOP_CD, item.ITEM_PLU_CD));
|
|||
|
lstktchItems.Add(string.Format("'{0}{1}{2}'", "999", item.SUB_SHOP_CD, item.ITEM_PLU_CD));
|
|||
|
}
|
|||
|
if (lstktchItems.Count == 0) return false;
|
|||
|
|
|||
|
var fmt = "SELECT A.SUB_STOR_CD, A.ITEM_CD, COUNT(B.KTCH_SYS_CD) KTCH_CNT \n"
|
|||
|
+ " FROM MST_KTCH_DEVICE_ITEM A WITH(NOLOCK) \n"
|
|||
|
+ " , MST_KTCH_DEVICE B WITH(NOLOCK) \n"
|
|||
|
+ " WHERE A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD \n"
|
|||
|
+ " AND CASE WHEN A.KTCH_SYS_CD = '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|||
|
+ " = CASE WHEN A.KTCH_SYS_CD = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n"
|
|||
|
+ " AND A.CMP_CD = '{0}' \n"
|
|||
|
+ " AND A.STOR_CD = '{1}' \n"
|
|||
|
+ " AND A.FLOOR_CD + A.SUB_STOR_CD + A.ITEM_CD IN ({2}) \n"
|
|||
|
+ " AND A.USE_YN = '{3}' \n"
|
|||
|
+ " AND B.USE_YN = '{3}' \n"
|
|||
|
+ " AND B.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n"
|
|||
|
+ " AND B.KTCH_SYS_CD <> '99' \n"
|
|||
|
+ " GROUP BY A.SUB_STOR_CD, A.ITEM_CD "
|
|||
|
;
|
|||
|
var sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|||
|
, m_cPosStatus.Base.StoreNo
|
|||
|
, string.Join(",", lstktchItems.ToArray())
|
|||
|
, PosConst.MST_USE_YN.YES);
|
|||
|
DataTable dt = m_cMstService.Select(new string[] { sql });
|
|||
|
if (dt == null || dt.Rows.Count == 0) 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;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private string GetHappyAppNo()
|
|||
|
{
|
|||
|
|
|||
|
string sCardNo = "";
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|||
|
{
|
|||
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
if (cEtcItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue;
|
|||
|
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM || cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) continue;
|
|||
|
if (cEtcItem.OCCUR_ENTRY_12 == "Y")
|
|||
|
{
|
|||
|
sCardNo = cEtcItem.CanFiller3;
|
|||
|
}
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
if (sCardNo == "")
|
|||
|
{
|
|||
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
foreach (Column.TR_PAYMENT.DATA cPayItem in alPayItem)
|
|||
|
{
|
|||
|
if (cPayItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
if (cPayItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue;
|
|||
|
if (cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.POINT_ITEM || cPayItem.PAY_DTL_CD_01 != ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT) continue;
|
|||
|
if (cPayItem.OCCUR_ENTRY_12 == "Y")
|
|||
|
{
|
|||
|
sCardNo = cPayItem.CanFiller3;
|
|||
|
}
|
|||
|
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 sCardNo;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 해피포인트/OCB 적립 완료 처리
|
|||
|
/// </summary>
|
|||
|
public void CompleteHappyPointSave()
|
|||
|
{
|
|||
|
string sRet;
|
|||
|
try
|
|||
|
{
|
|||
|
// 반품모드
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND) return;
|
|||
|
// 상품권 판매 or 선불카드 판매
|
|||
|
if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.PREPAID || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.GIFT) return;
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// OKCASHBACK 포인트 적립 처리
|
|||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
if (cEtcItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
// OKCASHBACK 적립
|
|||
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.OCB_SAVE)
|
|||
|
{
|
|||
|
|
|||
|
if (cEtcItem.OCCUR_ENTRY_08 == ItemConst.PAY_APP_DIV.CAT_TERMINAL)
|
|||
|
{
|
|||
|
// OCB 적립 완료시 추후적립 정보 초기화
|
|||
|
m_cTrnStatus.Head.AftSavePoint = 0;
|
|||
|
m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// OCB 포인트 적립 완료 처리
|
|||
|
IPaymentExpUs cOcbPntSave = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.PNT_OCB_SAVE);
|
|||
|
sRet = cOcbPntSave.CompletePayment(new string[] { });
|
|||
|
if (sRet == UserCom.RST_OK)
|
|||
|
{
|
|||
|
// OCB 적립 완료시 추후적립 정보 초기화
|
|||
|
m_cTrnStatus.Head.AftSavePoint = 0;
|
|||
|
m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 해피 포인트 적립 처리
|
|||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT316) == "0") return; // 해피포인트 업무 사용 여부(0:사용안함, 1:사용함(한국), 2:사용함(중국))
|
|||
|
|
|||
|
// 해피포인트 카드 등록 여부 체크
|
|||
|
Column.TR_ETC.DATA cEtcItemHP = null;
|
|||
|
|
|||
|
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.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA))
|
|||
|
{
|
|||
|
cEtcItemHP = cEtcItem;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 해피포인트 적립 금액 계산
|
|||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 해피포인트 기본적립 대상 금액 획득
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT316) == "2") // 해피포인트 업무 사용 여부(0:사용안함, 1:사용함(한국), 2:사용함(중국))
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.AftSavePoint = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.HAPPY_POINT_SAVE_CHINA);
|
|||
|
|
|||
|
// 캠페인(해피포인트 적립) 설정 처리
|
|||
|
//ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
//cCampaingMain.ExecuteCampaignHappyPointSave(PosConst.CAMPAIGN_PAY_KEY.HP_SAVE, null);
|
|||
|
if (m_cTrnStatus.Head.AftSavePoint < 1 && m_cTrnStatus.Head.AftSaveAddInfo == "")
|
|||
|
{
|
|||
|
if (cEtcItemHP != null) cEtcItemHP.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
IPaymentUs cHappyPoint = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT_SAVE_CHINA);
|
|||
|
|
|||
|
if (cEtcItemHP != null && PosMstManager.GetPosOption(POS_OPTION.OPT030) == "1") // HP 자동적립 처리(0:사용안함, 1:사용함)
|
|||
|
{
|
|||
|
// 해피포인트 적립 완료 처리
|
|||
|
sRet = cHappyPoint.SetPayment(new string[] { PosKey.MENU_KEY.HAPPY_POINT_SAVE_CHINA, cEtcItemHP.OCCUR_ENTRY_05, cEtcItemHP.OCCUR_ENTRY_01, m_cTrnStatus.Head.AftSavePoint.ToString(), "1" });
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); // 기타 내역 받아 오기
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|||
|
{
|
|||
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|||
|
{
|
|||
|
cEtcItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 거래완료시 HP미등록 적립화면 사용여부(0:사용안함, 1:사용함)(2017.06.05)
|
|||
|
//해피스테이션 삭제 2019.04.22
|
|||
|
//if (cEtcItemHP != null || PosMstManager.GetPosOption(POS_OPTION.OPT047) != "0")
|
|||
|
//{
|
|||
|
// // 해피포인트 카드 등록 화면 진행
|
|||
|
// sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_HAPPY_POINT, PosKey.MENU_KEY.HAPPY_POINT, "1" });
|
|||
|
//}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 적립 완료 후 처리
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
//// 스템프 캠페인 미적용 정보 삭제
|
|||
|
//cCampaingMain.SetCampaignHappyStampInfo("", "", "");
|
|||
|
|
|||
|
// 적립 완료 시 추후 적립 정보 삭제
|
|||
|
cEtcItemHP = null;
|
|||
|
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.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA))
|
|||
|
{
|
|||
|
// 해피포인트 적립 완료시 추후적립 정보 초기화
|
|||
|
m_cTrnStatus.Head.AftSavePoint = 0;
|
|||
|
m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
|
|||
|
cEtcItemHP = cEtcItem;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
// 추가적립의 추후적립 불가시 초기화
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddDiv != "1") m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
// 1원 이하 추후적립 안함.
|
|||
|
if (m_cTrnStatus.Head.AftSavePoint < 1 && m_cTrnStatus.Head.AftSaveAddInfo == "")
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.AftSavePoint = 0;
|
|||
|
m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
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, null);
|
|||
|
|
|||
|
// 적립 대상금액 없음
|
|||
|
if (m_cTrnStatus.Head.AftSavePoint < 1000 && m_cTrnStatus.Head.AftSaveAddInfo == "")
|
|||
|
{
|
|||
|
if (cEtcItemHP != null) cEtcItemHP.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
IPaymentExpUs cHappyPoint = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT);
|
|||
|
//MoonSeokWoo 2017.11.15 Edit
|
|||
|
//자동적립이고 HP 추가 적립 화면 사용을 하는 경우 HP 등록이 되어 있으면 추가 적립화면 체크가 되어 있어도 자동적립 ,
|
|||
|
//자동적립이고 HP 추가 적립 화면 사용을 하는 경우 HP 등록이 되어 있지 않으면 추가 적립 화면 활성화
|
|||
|
//if (cEtcItemHP != null && PosMstManager.GetPosOption(POS_OPTION.OPT030) == "1") // HP 자동적립 처리(0:사용안함, 1:사용함)
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT030) == "1") // HP 자동적립 처리(0:사용안함, 1:사용함)
|
|||
|
{
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT047) != "0" && cEtcItemHP == null)
|
|||
|
{
|
|||
|
//sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_HAPPY_POINT, PosKey.MENU_KEY.HAPPY_POINT, "1" });
|
|||
|
}
|
|||
|
//MoonSeokWoo 2017.11.15 Edit
|
|||
|
//else if (cEtcItemHP != null && PosMstManager.GetPosOption(POS_OPTION.OPT047) == "0")
|
|||
|
else if (cEtcItemHP != null)
|
|||
|
{
|
|||
|
// 해피포인트 적립 완료 처리
|
|||
|
sRet = cHappyPoint.CompletePayment(new string[] { });
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM); // 기타 내역 받아 오기
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|||
|
{
|
|||
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
if (cEtcItem.ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
|
|||
|
{
|
|||
|
cEtcItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 거래완료시 HP미등록 적립화면 사용여부(0:사용안함, 1:사용함)(2017.06.05)
|
|||
|
//해피스테이션 삭제 2019.04.22
|
|||
|
//if (PosMstManager.GetPosOption(POS_OPTION.OPT047) != "0")
|
|||
|
//{
|
|||
|
// // 해피포인트 카드 등록 화면 진행
|
|||
|
// sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_HAPPY_POINT, PosKey.MENU_KEY.HAPPY_POINT, "1" });
|
|||
|
//}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 적립 완료 후 처리
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 스템프 캠페인 미적용 정보 삭제
|
|||
|
cCampaingMain.SetCampaignHappyStampInfo("", "", "");
|
|||
|
|
|||
|
// 적립 완료 시 추후 적립 정보 삭제
|
|||
|
cEtcItemHP = null;
|
|||
|
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.ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.POINT_SAVE_CHINA))
|
|||
|
{
|
|||
|
// 해피포인트 적립 완료시 추후적립 정보 초기화
|
|||
|
m_cTrnStatus.Head.AftSavePoint = 0;
|
|||
|
m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
|
|||
|
cEtcItemHP = cEtcItem;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
// 추가적립의 추후적립 불가시 초기화
|
|||
|
if (m_cTrnStatus.Head.AftSaveAddDiv != "1") m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
// 1000원 이하 추후적립 안함.
|
|||
|
if (m_cTrnStatus.Head.AftSavePoint < 1000 && m_cTrnStatus.Head.AftSaveAddInfo == "")
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.AftSavePoint = 0;
|
|||
|
m_cTrnStatus.Head.AftSaveAddInfo = "";
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 디지털메뉴보드 I/F
|
|||
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
|
|||
|
//기존
|
|||
|
//if (m_cPosStatus.Base.DmbIf == "1")
|
|||
|
//변경
|
|||
|
//if (m_cPosStatus.Base.DmbIf == "1" &&
|
|||
|
// PosMstManager.GetPosOption(POS_OPTION.OPT554) != "1")
|
|||
|
////#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end
|
|||
|
//{
|
|||
|
// if (cEtcItemHP != null)
|
|||
|
// {
|
|||
|
// // 디지털메뉴보드 I/F
|
|||
|
// IDataServiceUs cDigitalMenuBoard = (IDataServiceUs)sManager.InitServiceInstance(ServiceLists.BSV_BASIC.DLL, ServiceLists.BSV_BASIC.DMB_IF);
|
|||
|
// // 포인트적립
|
|||
|
// cDigitalMenuBoard.Execute(new string[] { ItemConst.DMB_IRT_ID.POINT_INFO // 전문 구분
|
|||
|
// , "HPC" // POINT_DIV
|
|||
|
// , cEtcItemHP.OCCUR_ENTRY_12 // APP_DIV (Y:HPC APP, N:그 외)
|
|||
|
// , "2" // DIV(1:조회, 2:적립, 3:할인, 4:사용 ...)
|
|||
|
// , "" // AMOUNT(포인트사용금액)
|
|||
|
// , cEtcItemHP.AMT_ENTRY_01.ToString() // POINT(적립,할인,사용포인트)
|
|||
|
// , cEtcItemHP.AMT_ENTRY_05.ToString() // R_POINT(잔여포인트)
|
|||
|
// , "" //
|
|||
|
// , cEtcItemHP.OCCUR_ENTRY_01 // CARD_NO(마스킹 된 카드 번호)
|
|||
|
// , "" // CUST_NAME(고객명)
|
|||
|
// , "" }); // CAMPAIGN_INFO
|
|||
|
// }
|
|||
|
//}
|
|||
|
}
|
|||
|
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>
|
|||
|
//public void CompleteHappyPointSave()
|
|||
|
//{
|
|||
|
// string sRet;
|
|||
|
// try
|
|||
|
// {
|
|||
|
// if (PosMstManager.GetPosOption(POS_OPTION.OPT316) == "0") return; // 해피포인트 업무 사용 여부(0:사용안함, 1:사용함)
|
|||
|
|
|||
|
// if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND) return;
|
|||
|
|
|||
|
// // 상품권 판매 or 선불카드 판매 경우!
|
|||
|
// if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.PREPAID || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.CHARGESALE.GIFT) return;
|
|||
|
|
|||
|
// IPaymentExpUs cHappyPoint = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT);
|
|||
|
|
|||
|
// // 해피포인트 카드 등록 여부 체크
|
|||
|
// Column.TR_ETC.DATA cEtcItemHP = null;
|
|||
|
// 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)
|
|||
|
// {
|
|||
|
// cEtcItemHP = cEtcItem;
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// }
|
|||
|
|
|||
|
// if (cEtcItemHP == null)
|
|||
|
// {
|
|||
|
// // 해피포인트 사용 해피포포인트 적립 처리
|
|||
|
// ArrayList alPayment = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
// foreach (Column.TR_PAYMENT.DATA cPayItem in alPayment)
|
|||
|
// {
|
|||
|
// if (cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|||
|
// if (cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.POINT_ITEM || cPayItem.PAY_DTL_CD_01 != ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT) continue;
|
|||
|
|
|||
|
// // 해피포인트 조회
|
|||
|
// string[] saRecvdData = null;
|
|||
|
// sRet = cHappyPoint.SearchPayment(new string[] { cPayItem.OCCUR_ENTRY_05, cPayItem.OCCUR_ENTRY_01, cPayItem.CanFiller1, "0" }, ref saRecvdData);
|
|||
|
// if (sRet == UserCom.RST_OK)
|
|||
|
// {
|
|||
|
// // 해피포인트 카드 등록 처리
|
|||
|
// sRet = cHappyPoint.SetPayment(new string[] { cPayItem.OCCUR_ENTRY_05, cPayItem.OCCUR_ENTRY_01, cPayItem.CanFiller1, "0", cPayItem.OCCUR_ENTRY_23 });
|
|||
|
// if (sRet == UserCom.RST_OK)
|
|||
|
// {
|
|||
|
// cEtcItemHP = (Column.TR_ETC.DATA)cHappyPoint.GetPayment(new string[] { });
|
|||
|
// break;
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
|
|||
|
// // 해피포인트 카드가 등록되어 있지 않다면 제휴 카드 체크
|
|||
|
// bool bCoopCardExist = false;
|
|||
|
// if (cEtcItemHP == null)
|
|||
|
// {
|
|||
|
// // 제휴카드 해피포포인트 적립 처리
|
|||
|
// ArrayList alPayment = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
// foreach (Column.TR_PAYMENT.DATA cPayItem in alPayment)
|
|||
|
// {
|
|||
|
// if (cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|||
|
// if (cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.CREDITCARD_ITEM || cPayItem.PAY_DTL_CD_01 != ItemConst.TR_ITEM_ID.CREDITCARD.CREDIT_CARD) continue;
|
|||
|
|
|||
|
// // 제휴카드 체크
|
|||
|
// if (cPayItem.PAY_DTL_CD_03 != "M")
|
|||
|
// {
|
|||
|
// // 해피포인트 제휴카드 체크
|
|||
|
// DataTable dtCardInfo = m_cMstPayDcService.Select(new string[] { PosMst.MST_CARD_PREFIX.TABLE_NAME, cPayItem.OCCUR_ENTRY_01.Substring(0, 6), "H" });
|
|||
|
// if (dtCardInfo != null && dtCardInfo.Rows.Count > 0)
|
|||
|
// {
|
|||
|
// foreach (DataRow dr in dtCardInfo.Rows)
|
|||
|
// {
|
|||
|
// int nLoc = CmUtil.GetDataRowInt(dr, PosMst.MST_CARD_PREFIX.DATA.LOC);
|
|||
|
// string sCheckValue = CmUtil.GetDataRowStr(dr, PosMst.MST_CARD_PREFIX.DATA.CHECK_VAL).Trim();
|
|||
|
// if (nLoc >= 33 && sCheckValue != "")
|
|||
|
// {
|
|||
|
// if (cPayItem.OCCUR_ENTRY_23 != "" && cPayItem.OCCUR_ENTRY_23.Substring(33 - nLoc).StartsWith(sCheckValue) == true)
|
|||
|
// {
|
|||
|
// bCoopCardExist = true;
|
|||
|
// }
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// bCoopCardExist = true;
|
|||
|
// }
|
|||
|
// if ( bCoopCardExist == true ) break;
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
|
|||
|
// // 마이원카드 이거나 제휴카드 이면
|
|||
|
// if (cPayItem.PAY_DTL_CD_03 == "M" || bCoopCardExist == true)
|
|||
|
// {
|
|||
|
// // 해피포인트 조회
|
|||
|
// string[] saRecvdData = null;
|
|||
|
// sRet = cHappyPoint.SearchPayment(new string[] { cPayItem.OCCUR_ENTRY_05, cPayItem.OCCUR_ENTRY_01, cPayItem.CanFiller1, "0" }, ref saRecvdData);
|
|||
|
// if (sRet == UserCom.RST_OK)
|
|||
|
// {
|
|||
|
// // 해피포인트 카드 등록 처리
|
|||
|
// sRet = cHappyPoint.SetPayment(new string[] { cPayItem.OCCUR_ENTRY_05, cPayItem.OCCUR_ENTRY_01, cPayItem.CanFiller1, "0", cPayItem.OCCUR_ENTRY_23 });
|
|||
|
// if (sRet == UserCom.RST_OK) cEtcItemHP = (Column.TR_ETC.DATA)cHappyPoint.GetPayment(new string[] { });
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
|
|||
|
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// // 해피포인트 적립 금액 계산
|
|||
|
// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// // 해피포인트 기본적립 대상 금액 획득
|
|||
|
// m_cTrnStatus.Head.AftSavePoint = m_cDataService.GetPluTagetAmount(PosKey.MENU_KEY.HAPPY_POINT);
|
|||
|
|
|||
|
// if (cEtcItemHP == null)
|
|||
|
// {
|
|||
|
// //if (m_cTrnStatus.Head.AftSavePoint == 0 && m_cTrnStatus.Head.AftSaveAddInfo == "") return; // 적립 대상금액 없음
|
|||
|
|
|||
|
// if (PosMstManager.GetPosOption(POS_OPTION.OPT029) != "0") // HP 적립확인 처리(0:사용안함, 1:사용함)
|
|||
|
// {
|
|||
|
// // 해피포인트 카드 등록 화면 진행
|
|||
|
// sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_HAPPY_POINT, PosKey.MENU_KEY.HAPPY_POINT, "1" });
|
|||
|
// }
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// // 캠페인(해피포인트 적립) 설정 처리
|
|||
|
// ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
|
|||
|
// cCampaingMain.ExecuteCampaignHappyPointSave(PosConst.CAMPAIGN_PAY_KEY.HP_SAVE, null);
|
|||
|
|
|||
|
// if (m_cTrnStatus.Head.AftSavePoint == 0 && cEtcItemHP.HP_ADD_ACCUME == "") // 적립 대상금액 없음
|
|||
|
// {
|
|||
|
// cEtcItemHP.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|||
|
// return;
|
|||
|
// }
|
|||
|
|
|||
|
// if (PosMstManager.GetPosOption(POS_OPTION.OPT030) != "1") // HP 자동적립 처리(0:사용안함, 1:사용함)
|
|||
|
// {
|
|||
|
// // 해피포인트 카드 등록 화면 진행
|
|||
|
// sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_HAPPY_POINT, PosKey.MENU_KEY.HAPPY_POINT, "1" });
|
|||
|
// }
|
|||
|
// else
|
|||
|
// {
|
|||
|
// // 해피포인트 적립 완료 처리
|
|||
|
// sRet = cHappyPoint.CompletePayment(new string[] { });
|
|||
|
// }
|
|||
|
// }
|
|||
|
// }
|
|||
|
// 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 ItemSearch()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
//충전, 판매 거래 경우 아닌 경우 만 사용 가능!
|
|||
|
if (m_cTrnStatus.Head.TradeKind.StartsWith(ItemConst.TRAN_KIND.CHARGESALE.DELIMITER) == true)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0364);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
string sLossCode = string.Empty;
|
|||
|
sLossCode = WinBasic.ShowForm(new string[] { FormManager.FORM_SAL_ITEM_SEARCH });
|
|||
|
//코드 받아 오기
|
|||
|
|
|||
|
if (sLossCode != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
|
|||
|
string[] aParam = sLossCode.Split(new string[] { "^" }, StringSplitOptions.None);
|
|||
|
if (aParam.Length > 0)
|
|||
|
{
|
|||
|
for (int iRow = 0; iRow < aParam.Length; iRow++)
|
|||
|
{
|
|||
|
if (string.IsNullOrEmpty(aParam[iRow]) == false)
|
|||
|
RegisterPluItem("", PosConst.SALE_PLU_INPUT_TYPE.MENUKEY + aParam[iRow], "");
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 직전 영수증 발행
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool LastDealPrint()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = m_cSaleComplete.PosSaleLastRePrint(new string[] { });
|
|||
|
if (sRet == UserCom.RST_OK)
|
|||
|
{
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0003);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
/// <summary>
|
|||
|
/// 예약 등록
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool RegSaleReservations()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
// 판매LOSS 셋팅
|
|||
|
if (m_cPosStatus.Sale.SaleFlow == PosConst.SALE_FLOW.SALE_WAIT)
|
|||
|
{
|
|||
|
string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_RESERVATION_REG });
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
ArrayList alReservedCustInfo = (ArrayList)StateObject.GetItemObject(Column.TR_RESERV_INFO.ITEM);
|
|||
|
|
|||
|
if (alReservedCustInfo.Count == 0)
|
|||
|
{
|
|||
|
//에러
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Column.TR_RESERV_INFO.DATA clReservedCustInfo = (Column.TR_RESERV_INFO.DATA)alReservedCustInfo[0];
|
|||
|
|
|||
|
m_cTrnStatus.Head.ReserveNo = clReservedCustInfo.RESERV_NO;
|
|||
|
m_cTrnStatus.Head.ReserveYmd = clReservedCustInfo.RESERV_DT;
|
|||
|
}
|
|||
|
|
|||
|
m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_REG;
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 예약 결제 등록
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private void RegPayReservations()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
//예약 완료일때는 등록 할 수 없음
|
|||
|
if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE)
|
|||
|
{
|
|||
|
//예약 완료 거래에서는 등록 할 수 없습니다
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0639);
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
IPaymentUs m_ReservedPay = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.RESERVED_PAY);
|
|||
|
|
|||
|
sRet = m_ReservedPay.SetPayment(new string[] { m_cTrnStatus.Sale.RemainPayAmt.ToString() });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
|
|||
|
}
|
|||
|
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>
|
|||
|
/// <returns></returns>
|
|||
|
private bool RegSaleReservedFinish()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
try
|
|||
|
{
|
|||
|
//정상 거래 인지 체크
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE)
|
|||
|
{
|
|||
|
string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_RESERVATION_FNS });
|
|||
|
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
// 판매모드 변경
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
// 상품 내역 불러오기
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
if (alPluItem.Count > 0)
|
|||
|
{
|
|||
|
// 상품 판매가 재계산
|
|||
|
m_cPluService.ItemAmountExeccute(false, false);
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, false);
|
|||
|
|
|||
|
m_cTrnStatus.Head.TradeDiv = ItemConst.TRAN_DIV.NORMAL;
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.UNDECIDED.RESERVATION_COMPLETE;
|
|||
|
|
|||
|
m_cDataService.UpdatePayAmount();
|
|||
|
|
|||
|
ExecuteSaleMainProcess(PosKey.MENU_KEY.PAYMENTS, "", "", "");
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//판매 거래에서만 가능합니다.
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
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>
|
|||
|
/// TakeInOut
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool SetTakeInOut()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT304), "1") == "0")
|
|||
|
{
|
|||
|
//해당 기능은 POS 옵션에서 미사용으로 되어 있습니다.
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0414);
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
//Take In/Out
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_SAL_TAKE_IN_OUT });
|
|||
|
if (sRet.Equals(UserCom.RST_OK))
|
|||
|
{
|
|||
|
ISalePluItemUs m_cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM);
|
|||
|
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
//m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
|
|||
|
//cFormSaleMain.DisplayInit(false, true);
|
|||
|
|
|||
|
cFormSaleMain.DisplayItem(1, false);
|
|||
|
|
|||
|
|
|||
|
//cFormSaleMain.DisplayItem(0, false);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 영수증 재발행
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool SaleReReceiptRePrint()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
// 영수증 재발행 시 프린터 데몬 Stop / Start(2017.09.04)
|
|||
|
|
|||
|
//#20180329 프린터 간헐적 미출력 증상 수정 start
|
|||
|
//출력 할때 마다 open, close 하는 부분 한번만 하도록 수정
|
|||
|
//기존
|
|||
|
/*
|
|||
|
if (m_cPosStatus.Base.OlePosPrinterController == PosConst.POS_DEVICE_CONTROLLER.RS232)
|
|||
|
{
|
|||
|
IPosPrinterUs cPrinterDaemon = (IPosPrinterUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_POSPRINTER);
|
|||
|
cPrinterDaemon.StopPrinterDaemon();
|
|||
|
System.Threading.Thread.Sleep(300);
|
|||
|
cPrinterDaemon.StartPrinterDaemon();
|
|||
|
}
|
|||
|
*/
|
|||
|
//변경
|
|||
|
#if(PRT_OPENCLOSE) //프린터 포트 동작 변경시
|
|||
|
#else
|
|||
|
//#20180530 영수증 재발행시 프린터 데몬 stop 기능 주석 start
|
|||
|
/*
|
|||
|
if (m_cPosStatus.Base.OlePosPrinterController == PosConst.POS_DEVICE_CONTROLLER.RS232)
|
|||
|
{
|
|||
|
IPosPrinterUs cPrinterDaemon = (IPosPrinterUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_POSPRINTER);
|
|||
|
cPrinterDaemon.StopPrinterDaemon();
|
|||
|
System.Threading.Thread.Sleep(300);
|
|||
|
cPrinterDaemon.StartPrinterDaemon();
|
|||
|
}
|
|||
|
*/
|
|||
|
//#20180530 영수증 재발행시 프린터 데몬 stop 기능 주석 end
|
|||
|
#endif
|
|||
|
//#20180329 프린터 간헐적 미출력 증상 수정 end
|
|||
|
|
|||
|
// string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_RECEIPT_REPRINT, "SALE" });
|
|||
|
var arg = m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.MENU_EXECUTE ? "" : "SALE";
|
|||
|
string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_RECEIPT_REPRINT, arg });
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.MENU_EXECUTE) return true;
|
|||
|
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
// 판매모드 변경
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
// 상품 내역 불러오기
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
if (alPluItem.Count > 0)
|
|||
|
{
|
|||
|
// 상품 판매가 재계산
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, 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 true;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 교통카드 조회
|
|||
|
/// </summary>
|
|||
|
private void SchTMoney(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
// 신용카드 화면 진행
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_TMONEY_SEARCH, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//승인 요청 처리
|
|||
|
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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>
|
|||
|
/// <returns></returns>
|
|||
|
private bool SaleRefundReceipt()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_RETURN_RECEIPT });
|
|||
|
|
|||
|
if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.MENU_EXECUTE) return true;
|
|||
|
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
// 판매모드 변경
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
// 상품 내역 불러오기
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
if (alPluItem.Count > 0)
|
|||
|
{
|
|||
|
// 상품 판매가 재계산
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, 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;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 수정 고객수
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool EditCustCnt()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 고객수 입력
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT004) == "0")
|
|||
|
{
|
|||
|
//옵션 미사용
|
|||
|
WinManager.ErrorMessage(string.Format("{0}({1})", MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0414), POS_OPTION.OPT004));
|
|||
|
}
|
|||
|
else if (PosMstManager.GetPosOption(POS_OPTION.OPT033) != "2" && PosMstManager.GetPosOption(POS_OPTION.OPT033) != "3")
|
|||
|
{
|
|||
|
//옵션 미사용
|
|||
|
WinManager.ErrorMessage(string.Format("{0}({1})", MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0414), POS_OPTION.OPT033));
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT033) == "2") //상세고객수
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_SAL_AGE, "" });
|
|||
|
}
|
|||
|
else if (PosMstManager.GetPosOption(POS_OPTION.OPT033) == "3") //고객수
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_USER_INPUT_DATA, PosConst.FRM_INPUT_DATA.GUEST_CNT });
|
|||
|
|
|||
|
if (sRet != UserCom.RST_ERR)
|
|||
|
{
|
|||
|
m_cTrnStatus.Head.CustCnt = CmUtil.IntParse(sRet);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
bRet = true;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#region 세브란스 직원식 상품 등록 체크
|
|||
|
/// <summary>
|
|||
|
/// 세브란스 직원식 상품 등록 체크
|
|||
|
/// </summary>
|
|||
|
/// <param name="sFuncCode"></param>
|
|||
|
/// <returns></returns>
|
|||
|
public string SeveranceiTemCheck(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
// -------------------------------------------------------------------------------------------
|
|||
|
if (sMenuKey != PosKey.MENU_KEY.SEVERANCE_PAYMENTS && sMenuKey != PosKey.MENU_KEY.OTHER_PAYMENTS)
|
|||
|
{
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT034) == "1") //세브란스 일 경우
|
|||
|
{
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
m_cTrnStatus.Sale.SetSeveranceiTemUse = false;
|
|||
|
for (int iLoop = 0; iLoop < aSaleItem.Count; iLoop++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iLoop];
|
|||
|
|
|||
|
if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cSaleItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL) continue; // 지정취소
|
|||
|
|
|||
|
if (cSaleItem.SEVERANCE_MENU_DIV == "1" && cSaleItem.NONSALES_RSN_CD == "0")
|
|||
|
{
|
|||
|
// 세브란스 직원식 상품 존재 여부
|
|||
|
m_cTrnStatus.Sale.SetSeveranceiTemUse = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (m_cTrnStatus.Sale.SetSeveranceiTemUse == true && m_cTrnStatus.Sale.SetSeveranceNormalPay != true)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0265);
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 해피포인트 추후 적립
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool HappyPointAfterSave()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPP_APPROVAL_LATER });
|
|||
|
if (sRet != UserCom.RST_OK) 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;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 단골매장등록
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool HappyPointRegularCust()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = WinPay.ShowForm(new string[] { FormManager.FORM_HPP_REGULAR_CUST });
|
|||
|
if (sRet != UserCom.RST_OK) 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;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 배달(콜센터, 배달의민족) 등록 처리
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private void PayOrderDelivery(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.NORMAL.SALE) return;
|
|||
|
|
|||
|
IPaymentUs cPaySvr = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.SALEDELIVERY);
|
|||
|
|
|||
|
sRet = cPaySvr.SetPayment(new string[] { sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//cFormSaleMain.DisplayItem(1, false);
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 OpenManualCashdrawer()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cPosStatus.Base.TrainingFlag == "1") //연습모드이면...
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0491);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
m_cSaleComplete.OpenManualCashdrawer();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
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 HappyBuzzSearch()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
WinBasic.ShowForm(new string[] { FormManager.FORM_HAPPY_BUZZ, PosKey.MENU_KEY.HAPPY_BUZ_SEARCH, "" });
|
|||
|
}
|
|||
|
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 PayOnLineCoupon(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.ONLINE_COUPONS)
|
|||
|
{
|
|||
|
// 온라인쿠폰 등록
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_ONLINE_COUPON, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
//// 판매화면
|
|||
|
//IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
//cFormSaleMain.DisplayItem(1, false); // 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
// 온라인쿠폰 조회
|
|||
|
sRet = WinSale.ShowForm(new string[] { FormManager.FORM_PAY_ONLINE_COUPON_SCH, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
}
|
|||
|
}
|
|||
|
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>
|
|||
|
/// <remarks>
|
|||
|
/// 주방프린터 수동출력 처리 0:자동 1:수동(프린터선택) 2:수동(상품선택)
|
|||
|
/// </remarks>
|
|||
|
public void MenualOrderKtchProcess()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//#20171020 log 추가
|
|||
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|||
|
"주방프린트사용여부 : " + PosMstManager.GetPosOption(POS_OPTION.OPT506));
|
|||
|
|
|||
|
// 주방프린트 사용(0 : 미사용, 1 : 사용)
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT506) != "1") return;
|
|||
|
|
|||
|
string arg = string.Empty;
|
|||
|
switch (PosMstManager.GetPosOption(POS_OPTION.OPT425))
|
|||
|
{
|
|||
|
case "1": arg = FormManager.FORM_MENUAL_ORDER_KPS; break;
|
|||
|
case "2": arg = FormManager.FORM_MENUAL_ORDER_ITEM; break;
|
|||
|
default: return;
|
|||
|
}
|
|||
|
WinBasic.ShowForm(new string[] { arg });
|
|||
|
}
|
|||
|
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>
|
|||
|
/// <returns></returns>
|
|||
|
private bool OrderBillPrint()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
if (alPluItem.Count == 0) return false;
|
|||
|
|
|||
|
// 주문 내역서 출력 처리
|
|||
|
ISaleCompleteUs cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
|
|||
|
string sReturn = cSaleComplete.ExecuteOrderBillReceipt();
|
|||
|
|
|||
|
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>
|
|||
|
/// ServiceCharge 등록
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool RegServiceChrge(string sFuncCode)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
|
|||
|
if (m_cPosStatus.Mst.SeriveFreeApplyDiv != ItemConst.SERVICE_CHARGE_APPLY_DIV.NONE)
|
|||
|
{
|
|||
|
//점포 마스터에 봉사료 적용대상 구분이 적용 안함으로 되어 있어야 사용 가능합니다.
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0629);
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
string sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_SERVICE_CHARGE, sFuncCode });
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
m_cDataService.UpdatePluAmount(true);
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.DisplayPayment(); // 결제등록정보 화면표시
|
|||
|
|
|||
|
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>
|
|||
|
public void KtchOrderSheetToBillPrint()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
// 주방장치 출력여부 확인
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT506) != "1") return;
|
|||
|
|
|||
|
// 영수증프린터 사용여부 확인
|
|||
|
if (m_cDevStatus.Printer.UseYn == false) return;
|
|||
|
|
|||
|
// Mod, 2017.04.10,
|
|||
|
// KPS 데몬실행여부 확인
|
|||
|
//if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT &&
|
|||
|
// m_cPosStatus.Base.PosCommunicationType != PosConst.MAIN_POS_DIV.MAIN_POS) return;
|
|||
|
|
|||
|
// 주방프린터 오류코드 취득 및 초기화
|
|||
|
//잠시주석 2019.04.25
|
|||
|
string ktchErrorCode = m_cPosStatus.Sale.KtchPrintErrorCode;
|
|||
|
//if (string.IsNullOrWhiteSpace(ktchErrorCode)) return;
|
|||
|
m_cPosStatus.Sale.KtchPrintErrorCode = string.Empty;
|
|||
|
|
|||
|
string ret = UserCom.RST_ERR;
|
|||
|
|
|||
|
// 주방프린터와 영수증프린터가 동일장치의 경우 주문서 출력
|
|||
|
ret = m_cOrderSheetSvr.Execute(new string[] { "ORDER_SHEET" });
|
|||
|
if (ktchErrorCode.StartsWith("XXXX"))
|
|||
|
{
|
|||
|
if (ret != UserCom.RST_OK) m_cPosStatus.Sale.KtchPrintErrorCode = ktchErrorCode;
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
// 주방프린터 오류 시 영수증프린터에 주문서 출력
|
|||
|
var msg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0642);
|
|||
|
var tmp = ktchErrorCode.Split('|');
|
|||
|
if (tmp.Length >= 3)
|
|||
|
{
|
|||
|
var err = string.Empty;
|
|||
|
//switch (tmp[0])
|
|||
|
//{
|
|||
|
// case "0001": err = "(Printer open failed)"; break;
|
|||
|
// case "0002": err = "(Printer open failed)"; break;
|
|||
|
// case "0003": err = "(Printer power off)"; break;
|
|||
|
// case "0004": err = "(No paper)"; break;
|
|||
|
// case "0005": err = "(Printer cover open)"; break;
|
|||
|
//}
|
|||
|
msg += string.Format("\n#Kitchen Printer No. [{0}] {1} {2})", tmp[1], tmp[2], err);
|
|||
|
}
|
|||
|
// 주방프린터 에러 시 팝업 띄우지 않고 메인에서 무조건 출력(20170520)
|
|||
|
//if (WinManager.QuestionMessage(msg) == false)
|
|||
|
//{
|
|||
|
// WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0643);
|
|||
|
// m_cOrderSheetSvr.Execute(new string[] { "CANCEL_BILLPRT" });
|
|||
|
// return;
|
|||
|
//}
|
|||
|
ret = m_cOrderSheetSvr.Execute(new string[] { "ORDER_REPRINT" });
|
|||
|
if (ret != UserCom.RST_OK)
|
|||
|
{
|
|||
|
m_cPosStatus.Sale.KtchPrintErrorCode = ktchErrorCode;
|
|||
|
}
|
|||
|
}
|
|||
|
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>
|
|||
|
/// 베트남 신용카드(VIP POINT) - 프리픽스 캠페인 적용
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool PayVipPoint(string sFuncCode)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_VIP_POINT, sFuncCode });
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
|
|||
|
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 MultiItemDc(string sFuncCode)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = WinPay.ShowForm(new string[] { FormManager.FORM_MULTI_DCITEM, sFuncCode });
|
|||
|
//if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 상품 판매가 재계산
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, 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;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 판매 대기중 기능키 판매일자 체크
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool WaitSaleDataCheck(string sMenuKey)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
bool bTradeCheck = false;
|
|||
|
|
|||
|
switch (sMenuKey)
|
|||
|
{
|
|||
|
//체크
|
|||
|
case PosKey.MENU_KEY.GIFT_SALE: // 상품권판매
|
|||
|
case PosKey.MENU_KEY.PREPAID_CARD: // 선불카드판매
|
|||
|
case PosKey.MENU_KEY.RETURN_ITEM: // 낱개반품
|
|||
|
case PosKey.MENU_KEY.SALE_LOSS: // 판매로스
|
|||
|
case PosKey.MENU_KEY.CASH_APPROVAL_LATER: // 사후 현금영수증
|
|||
|
case PosKey.MENU_KEY.LAST_DEAL_PRINT: // 직전영수증 출력
|
|||
|
case PosKey.MENU_KEY.RESERVATIONS_REGISTER: // 예약등록
|
|||
|
case PosKey.MENU_KEY.RESERVATION_COMPLETED: // 예약완료
|
|||
|
case PosKey.MENU_KEY.HP_GIFT_CHARGED: // 해피 기프트 충전
|
|||
|
case PosKey.MENU_KEY.RETURN_RECEIPT: // 영수증 반품
|
|||
|
case PosKey.MENU_KEY.HPP_APPROVAL_LATER: // 추후적립
|
|||
|
case PosKey.MENU_KEY.HAPPY_ORDERS: // 해피오더
|
|||
|
case PosKey.MENU_KEY.HP_REGULAR_CUST: // 단골매장등록
|
|||
|
case PosKey.MENU_KEY.ORDER_COMPLETED: // 주문완료
|
|||
|
bTradeCheck = true;
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
if (bTradeCheck == true)
|
|||
|
{
|
|||
|
// 영업일자 체크
|
|||
|
if (CmUtil.LongParse(m_cPosStatus.Base.SaleDate) < CmUtil.LongParse(System.DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
{
|
|||
|
//#13342 개점/마감시간 허용 시간 제한 start, phj
|
|||
|
//기존
|
|||
|
/*
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HH")) > 5)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
*/
|
|||
|
|
|||
|
//변경
|
|||
|
IDataCommonUs m_cMstCmm = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
|
|||
|
string sOpenTime = string.Empty;
|
|||
|
sOpenTime = m_cMstCmm.MstCmmSearch("T0032", "1"); //POS 개점 필수시간
|
|||
|
|
|||
|
if (sOpenTime != "")
|
|||
|
{
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HHMM")) > CmUtil.LongParse(sOpenTime))
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HH")) > 5)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
//#13342 개점/마감시간 허용 시간 제한 end, phj
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 생일초 계산
|
|||
|
/// </summary>
|
|||
|
/// <param name="sFuncCode"></param>
|
|||
|
/// <returns></returns>
|
|||
|
private bool BrithDayCandle(string sFuncCode)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_BRITHDAY_CANDLE, sFuncCode });
|
|||
|
if (sRet != UserCom.RST_OK) 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;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 결제 상단 MOT 변경
|
|||
|
/// </summary>
|
|||
|
/// <param name="sFuncCode"></param>
|
|||
|
private void SetPayMainTopMot(string sFuncCode)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
cFormSaleMain.SetTopMot(sFuncCode);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#region 시리얼 변환 프로그램 체크
|
|||
|
/// <summary>
|
|||
|
/// 시리얼 변환 프로그램 체크
|
|||
|
/// </summary>
|
|||
|
private void SerialMsrToEmul()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//#20171019 IC리더기 사용시 O2MSR 실행 안하도록 수정 start
|
|||
|
//기존
|
|||
|
//if (m_cDevStatus.Msr.UseYn == true && m_cPosStatus.Base.OlePosMsrController == "2")
|
|||
|
//변경
|
|||
|
if (m_cDevStatus.Msr.UseYn == true && m_cPosStatus.Base.OlePosMsrController == "2" && m_cDevStatus.ICReader.UseYn == false)
|
|||
|
//#20171019 IC리더기 사용시 O2MSR 실행 안하도록 수정 end
|
|||
|
{
|
|||
|
System.Diagnostics.Process[] p = System.Diagnostics.Process.GetProcessesByName(PosConst.MSR_SERIAL_EMULATOR.APP_PROCESS);
|
|||
|
if (p.GetLength(0) > 0) return;
|
|||
|
|
|||
|
string strappname = BaseCom.NxBinPath + PosConst.MSR_SERIAL_EMULATOR.APP_FILE;
|
|||
|
System.Diagnostics.Process.Start(strappname);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
UserLog.WriteLogFile(UserCom.LOG_ERROR, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
|
|||
|
//기존
|
|||
|
/*
|
|||
|
//17.05.18 dkshin 쇼킹박스 추가
|
|||
|
/// <summary>
|
|||
|
/// 쇼킹박스 - 영수증 출력
|
|||
|
/// </summary>
|
|||
|
//private ISaleReceipt m_cTradeDeal = null;
|
|||
|
private bool ShockingBox(string sInPutData)
|
|||
|
*/
|
|||
|
//변경
|
|||
|
private bool ShockingBox(string sMenuKey, string sInPutData)
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
|
|||
|
|
|||
|
#region 기존
|
|||
|
/*
|
|||
|
|
|||
|
//쇼킹박스 영수증 출력
|
|||
|
//m_cTradeDeal.PrintReceipt("test");
|
|||
|
//sPrtData = string.Format("{0:#,##0}", m_cTrnStatus.Sale.RemainPayAmt);
|
|||
|
|
|||
|
if (sInPutData != string.Empty)
|
|||
|
{//쇼킹박스 상품 불러오기
|
|||
|
|
|||
|
IHoldDeal m_cHoldDeal = (IHoldDeal)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HOLD_DEAL);
|
|||
|
DataTable dt = m_cHoldDeal.SearchShockingBoxDealList(sInPutData);
|
|||
|
if (dt == null || dt.Rows.Count == 0)
|
|||
|
{
|
|||
|
// 거래내역이 존재하지 않습니다.
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0269));
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
DataRow dr = dt.Rows[0];
|
|||
|
|
|||
|
//m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.LOG.SHOCKING_BOX;
|
|||
|
m_cHoldDeal.LoadLocalTranPlu(dr["SALE_DT"].ToString(), dr["POS_NO"].ToString(), dr["REG_NO"].ToString());
|
|||
|
m_cHoldDeal.UpdateHoldDeal(dr["SALE_DT"].ToString(), dr["POS_NO"].ToString(), dr["REG_NO"].ToString(), "1", 0, 0);
|
|||
|
|
|||
|
// 상품 판매가 재계산
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
|
|||
|
|
|||
|
// 쇼킹박스건 결제인지 체크하기 위해 설정
|
|||
|
//m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.LOG.SHOCKING_BOX;
|
|||
|
m_cTrnStatus.Head.ShockingBoxStat = "1";//0:쇼킹박스 완성 1:쇼킹방스불러오기
|
|||
|
m_cTrnStatus.Head.ShockingBoxBarcodeData = dr["SALE_DT"].ToString() + dr["REG_NO"].ToString();
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, false);
|
|||
|
}
|
|||
|
}
|
|||
|
else// 쇼킹박스 처리
|
|||
|
{
|
|||
|
//정상 거래 인지 체크
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL
|
|||
|
&& (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS))
|
|||
|
{
|
|||
|
// 영업일자 체크
|
|||
|
if (CmUtil.LongParse(m_cPosStatus.Base.SaleDate) < CmUtil.LongParse(System.DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
{
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HH")) > 5)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.LOG.SHOCKING_BOX;
|
|||
|
m_cTrnStatus.Head.ShockingBoxStat = "0";
|
|||
|
|
|||
|
// 쇼킹박스 처리
|
|||
|
string sRet = m_cSaleComplete.PosShockingBoxExecute();
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 판매상태 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 거래 완료 후 초기화 처리
|
|||
|
cFormSaleMain.DisplayInit(true, true);
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, true);
|
|||
|
}
|
|||
|
}
|
|||
|
*/
|
|||
|
#endregion 기존
|
|||
|
|
|||
|
#region 변경
|
|||
|
string sTradeKind = "";
|
|||
|
string sTrade_Stat = "";
|
|||
|
string sSale_dt = "";
|
|||
|
string sPos_no = "";
|
|||
|
string sReg_no = "";
|
|||
|
string sOrg_Bill_PosNo = "";
|
|||
|
string sOrg_Bill_Dt = "";
|
|||
|
string sOrg_Bill_No = "";
|
|||
|
string sShockingBoxBarcodeData = "";
|
|||
|
string sShockingBoxTradeKind = "";
|
|||
|
|
|||
|
if (sMenuKey == PosKey.MENU_KEY.ITEMINFO_PRINT)
|
|||
|
{
|
|||
|
// 상품정보출력(해피오더 랜덤박스)
|
|||
|
sTradeKind = ItemConst.TRAN_KIND.HPO_LOG.LANDOM_BOX;
|
|||
|
}
|
|||
|
else if (sMenuKey == PosKey.MENU_KEY.SHOCKING_BOX)
|
|||
|
{
|
|||
|
// 쇼킹박스
|
|||
|
sTradeKind = ItemConst.TRAN_KIND.LOG.SHOCKING_BOX;
|
|||
|
}
|
|||
|
|
|||
|
IHoldDeal m_cHoldDeal = (IHoldDeal)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HOLD_DEAL);
|
|||
|
|
|||
|
if (sInPutData != string.Empty)
|
|||
|
{
|
|||
|
DataTable dt = m_cHoldDeal.SearchShockingBoxDealList(sInPutData, sTradeKind, "0");
|
|||
|
if (dt == null || dt.Rows.Count == 0)
|
|||
|
{
|
|||
|
// 거래내역이 존재하지 않습니다.
|
|||
|
WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0269));
|
|||
|
return false;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
DataRow dr = dt.Rows[0];
|
|||
|
|
|||
|
sTrade_Stat = dr["TRADE_STAT"].ToString();
|
|||
|
sSale_dt = dr["SALE_DT"].ToString();
|
|||
|
sPos_no = dr["POS_NO"].ToString();
|
|||
|
sReg_no = dr["REG_NO"].ToString();
|
|||
|
|
|||
|
m_cHoldDeal.LoadLocalTranPlu(sSale_dt, sPos_no, sReg_no);
|
|||
|
m_cHoldDeal.UpdateHoldDeal(sSale_dt, sPos_no, sReg_no, "1", 0, 0);
|
|||
|
|
|||
|
// 상품 판매가 재계산
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
// 쇼킹박스건 결제인지 체크하기 위해 설정
|
|||
|
m_cTrnStatus.Head.ShockingBoxStat = "1";//0:쇼킹박스 완성 1:쇼킹방스불러오기
|
|||
|
m_cTrnStatus.Head.ShockingBoxBarcodeData = sSale_dt + sReg_no;
|
|||
|
m_cTrnStatus.Head.ShockingBoxTradeKind = sTradeKind;
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 판매모드 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|||
|
cFormSaleMain.DisplayInit(false, true);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, false);
|
|||
|
}
|
|||
|
}
|
|||
|
else// 쇼킹박스 처리
|
|||
|
{
|
|||
|
//정상 거래 인지 체크
|
|||
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL
|
|||
|
&& (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.ETC.LOSS))
|
|||
|
{
|
|||
|
// 영업일자 체크
|
|||
|
if (CmUtil.LongParse(m_cPosStatus.Base.SaleDate) < CmUtil.LongParse(System.DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
{
|
|||
|
if (CmUtil.LongParse(System.DateTime.Now.ToString("HH")) > 5)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0184));
|
|||
|
return false;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
sShockingBoxBarcodeData = m_cTrnStatus.Head.ShockingBoxBarcodeData; // 리딩한 바코드번호
|
|||
|
sShockingBoxTradeKind = m_cTrnStatus.Head.ShockingBoxTradeKind; // 리딩한 거래종별
|
|||
|
|
|||
|
m_cTrnStatus.Head.TradeKind = sTradeKind; // 거래종별
|
|||
|
m_cTrnStatus.Head.ShockingBoxStat = "0"; //상태
|
|||
|
|
|||
|
// 쇼킹박스 처리
|
|||
|
string sRet = m_cSaleComplete.PosShockingBoxExecute();
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
// 판매상태 변경
|
|||
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;
|
|||
|
|
|||
|
// 판매화면
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
// 거래 완료 후 초기화 처리
|
|||
|
cFormSaleMain.DisplayInit(true, true);
|
|||
|
|
|||
|
// 상품등록 내역 화면 표시(0:LastItem, 1::OldFocus)
|
|||
|
cFormSaleMain.DisplayItem(0, true);
|
|||
|
|
|||
|
//
|
|||
|
DataTable dt = m_cHoldDeal.SearchShockingBoxDealList(sShockingBoxBarcodeData, sShockingBoxTradeKind, "1");
|
|||
|
if (dt != null && dt.Rows.Count > 0)
|
|||
|
{
|
|||
|
DataRow dr = dt.Rows[0];
|
|||
|
sTrade_Stat = dr["TRADE_STAT"].ToString();
|
|||
|
sSale_dt = dr["SALE_DT"].ToString();
|
|||
|
sPos_no = dr["POS_NO"].ToString();
|
|||
|
sReg_no = dr["REG_NO"].ToString();
|
|||
|
sOrg_Bill_PosNo = dr["ORG_BILL_POSNO"].ToString();
|
|||
|
sOrg_Bill_Dt = dr["ORG_BILLDT"].ToString();
|
|||
|
sOrg_Bill_No = dr["ORG_BILL_NO"].ToString();
|
|||
|
|
|||
|
// 쇼킹박스 불러오면 trade_stat 1로 변경 -> 쇼킹박스 기능키 클릭하면
|
|||
|
// 이 전에 읽어왔던 쇼킹박스건이 trade_stat 0으로 업데이트 안되고 1로 남아있기 때문에
|
|||
|
// 다시 바코드 리딩 했을 때 읽어올 수 가 없었음.
|
|||
|
// 그렇기 때문에 이 전에 리딩했던번호 trade_stat 0으로 업데이트.
|
|||
|
// (trade_stat 1 이고 매출처리가 안된 것)
|
|||
|
if (sTrade_Stat == "1" && (sOrg_Bill_PosNo == "" && sOrg_Bill_Dt == "" && sOrg_Bill_No == ""))
|
|||
|
{
|
|||
|
m_cHoldDeal.UpdateHoldDeal(sSale_dt, sPos_no, sReg_no, "0", 0, 0);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion 변경
|
|||
|
|
|||
|
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 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);
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
//#20170731, 해피기프트카드(코나머니) 개발 Start, srlee
|
|||
|
#region 해피기프트카드(코나머니)
|
|||
|
/// <summary>
|
|||
|
/// 해피기프트카드(코나머니)
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void PayHappyGiftCard(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// 해피기프트카드(코나머니)
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_HPGIFTCARD, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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
|
|||
|
//#20170731, 해피기프트카드(코나머니) 개발 End, srlee
|
|||
|
|
|||
|
//20171013 dkshin 해피기프트(신) IC/RF 충전 및 승인
|
|||
|
#region 해피기프트(신) 충전
|
|||
|
/// <summary>
|
|||
|
/// 해피기프트(신) 충전
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
//private void HappyGiftCardRecharge(string sMenuKey)
|
|||
|
private void HappyGiftNewRecharge(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
// 해피기프트(신) 충전
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_SAL_HP_GIFT_NEW_CHARGED, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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 PayPointMobileUnity 제휴카드(통합) 할인 처리(2017.08.29) -- START
|
|||
|
/// <summary>
|
|||
|
/// 제휴카드(통합) 할인 처리
|
|||
|
/// </summary>
|
|||
|
/// <param name="sMenuKey"></param>
|
|||
|
private void PayPointMobileUnity(string sMenuKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return;
|
|||
|
|
|||
|
if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
|
|||
|
{
|
|||
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|||
|
foreach (Column.TR_PAYMENT.DATA cPayItem in alPayItem)
|
|||
|
{
|
|||
|
if (cPayItem.CANCEL_DIV != PosConst.CANCEL_DIV.NORMAL) continue;
|
|||
|
|
|||
|
//#20171012 해피포인트 사용 후 통신사 할인 중복 가능 start
|
|||
|
//기존
|
|||
|
//if (cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.MOBILECON_ITEM) // 통신사할인 모바일쿠폰과 중복 가능
|
|||
|
//변경
|
|||
|
if ((cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.MOBILECON_ITEM) &&
|
|||
|
((cPayItem.PAY_WAY_CD != ItemConst.TR_ITEM_ID.POINT_ITEM) || (cPayItem.PAY_DTL_CD_01 != ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT)))
|
|||
|
//#20171012 해피포인트 사용 후 통신사 할인 중복 가능 end
|
|||
|
{
|
|||
|
///////////////////////////////////////
|
|||
|
//#20180618_웰컴카드 수정_grayber
|
|||
|
// 기존
|
|||
|
//WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0392);
|
|||
|
// 변경
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0792);
|
|||
|
///////////////////////////////////////
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Sale.RecvedPayAmt > 0)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0392);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// OCB 적립 후 불가
|
|||
|
ArrayList alEtc = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|||
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtc)
|
|||
|
{
|
|||
|
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.OCB_SAVE)
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0555);
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 제휴카드(통합) 할인 처리
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_POINT_MOBILE_UNITY, sMenuKey });
|
|||
|
if (sRet != UserCom.RST_OK) return;
|
|||
|
|
|||
|
CheckSaleComplete(); // 결제완료 체크
|
|||
|
}
|
|||
|
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
|
|||
|
|
|||
|
//#20171016 스퀘어 점포일 때 실점포 코드로 넘기기 start, phj
|
|||
|
#region (복합매장)에서 외상, 선불카드 일 때 여러 점포의 제품을 찍었다면 사용하지 못하도록 팝업 오픈.
|
|||
|
|
|||
|
private bool OtherItem_DuplicateCheck()
|
|||
|
{
|
|||
|
bool bResult = true;
|
|||
|
string sFrtShopCD = string.Empty;
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
for (int iRow = 0; aSaleItem.Count > iRow; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)aSaleItem[iRow];
|
|||
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|||
|
|
|||
|
if (sFrtShopCD == string.Empty)
|
|||
|
{
|
|||
|
sFrtShopCD = cPluItem.SUB_SHOP_CD;
|
|||
|
}
|
|||
|
|
|||
|
if (sFrtShopCD != cPluItem.SUB_SHOP_CD)
|
|||
|
{
|
|||
|
bResult = false;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (bResult == false)
|
|||
|
{
|
|||
|
//한 종류의 브랜드 제품만 선택 시 사용할 수 있습니다.
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0738);
|
|||
|
}
|
|||
|
|
|||
|
return bResult;
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
//#20171016 스퀘어 점포일 때 실점포 코드로 넘기기 end, phj
|
|||
|
|
|||
|
//#20171227, 예약증 양식 출력 Start
|
|||
|
/// <summary>
|
|||
|
/// 예약증 양식 출력
|
|||
|
/// </summary>
|
|||
|
/// <param name="sFuncCode"></param>
|
|||
|
/// <returns></returns>
|
|||
|
private bool ReservationFormPrint()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
string sRet = m_cSaleComplete.ExecuteReservationForm();
|
|||
|
if (sRet != UserCom.RST_OK) 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;
|
|||
|
}
|
|||
|
//#20171227, 예약증 양식 출력 End
|
|||
|
|
|||
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|||
|
private bool WelcomeCard_Issue(string sMenuKey, string sOpenKey)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT516) != "1")
|
|||
|
{
|
|||
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0790);
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return false;
|
|||
|
sRet = WinPay.ShowForm(new string[] { FormManager.FORM_WELCOMECARD_ISSUE, sMenuKey, sOpenKey }); //sOpenKey 1: 영업메뉴, 2: 결제화면
|
|||
|
if (sRet != UserCom.RST_OK) return false;
|
|||
|
|
|||
|
//CheckSaleComplete(); // 결제완료 체크
|
|||
|
|
|||
|
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;
|
|||
|
}
|
|||
|
}
|
|||
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|||
|
|
|||
|
//#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 start
|
|||
|
private void HappyOrder_AddInventory_Menu(string sFuncCode)
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
WinBasic.ShowWebPos(sFuncCode);
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|||
|
ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
//#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 end
|
|||
|
|
|||
|
//#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 start
|
|||
|
#region 제조음료 포함 여부 체크
|
|||
|
/// <summary>
|
|||
|
/// 제조음료 포함 여부 체크
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public bool ChkProdItemTakeInOutYN()
|
|||
|
{
|
|||
|
bool bRet = false;
|
|||
|
string sQuery = "";
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 상품정보
|
|||
|
ArrayList xSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
for (int iRow = 0; iRow < xSaleItem.Count; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)xSaleItem[iRow];
|
|||
|
|
|||
|
//Take In/Out 부가상품으로 추가된 상품들 일괄 삭제 처리
|
|||
|
if (cSaleItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.OPT_MENU &&
|
|||
|
(cSaleItem.ITEM_PLU_CD == "9901" || cSaleItem.ITEM_PLU_CD == "9902"))
|
|||
|
{
|
|||
|
xSaleItem.RemoveAt(iRow);
|
|||
|
//삭제된 경우 for문에서 나가지 않도록 row '-' 처리
|
|||
|
iRow--;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 상품정보
|
|||
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|||
|
|
|||
|
for (int iRow = 0; iRow < aSaleItem.Count; iRow++)
|
|||
|
{
|
|||
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iRow];
|
|||
|
|
|||
|
//결제창 진입 전 설정된 Take In/Out 관련 설정값 초기화
|
|||
|
//cSaleItem.PROD_TAKEINOUT_YN = "0";
|
|||
|
//cSaleItem.PROD_TAKEINOUT_DIV = "";
|
|||
|
|
|||
|
if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cSaleItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL)
|
|||
|
{
|
|||
|
continue; // 지정취소
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//공통코드에서 해당 상품이 TakeIn/Out 선택이 필요한 상품인지 대분류 + 중분류로 체크
|
|||
|
sQuery = "SELECT * FROM POSMST..MST_CMM \n";
|
|||
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n";
|
|||
|
sQuery += " AND CMM_GRP_CD = 'S0110' \n";
|
|||
|
sQuery += " AND SALES_ORG_CD = '" + m_cPosStatus.Base.BrandCd + "' \n";
|
|||
|
sQuery += " AND '" + cSaleItem.M_CLSS + "' LIKE (CHAR_VAL_TITLE_VAL_01 + CHAR_VAL_TITLE_VAL_02) + '%' \n";
|
|||
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'\n";
|
|||
|
|
|||
|
DataTable dtTakeInOutInfo = m_cMstService.Select(new string[] { sQuery });
|
|||
|
|
|||
|
if (dtTakeInOutInfo != null && dtTakeInOutInfo.Rows.Count > 0)
|
|||
|
{
|
|||
|
cSaleItem.PROD_TAKEINOUT_YN = "1";
|
|||
|
bRet = true;
|
|||
|
//break;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
cSaleItem.PROD_TAKEINOUT_YN = "0";
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
cFormSaleMain.DisplayItem(1, false);
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
|
|||
|
return bRet;
|
|||
|
}
|
|||
|
#endregion 제조음료 포함 여부 체크
|
|||
|
|
|||
|
#region 제조음료 Take In/Out 사용여부 체크
|
|||
|
/// <summary>
|
|||
|
/// 제조음료 Take In/Out 사용여부 체크
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public bool ChkProdItemTakeInUse()
|
|||
|
{
|
|||
|
bool sRet = false;
|
|||
|
string sQuery = "";
|
|||
|
string sCmmTakeInOutUse = "";
|
|||
|
string sCmmTakeInOutDiv = "";
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
//환경설정 정보가 없으면 공통코드의 기본값으로 설정
|
|||
|
if (m_cPosStatus.Base.ProdTakeInOutUse.Trim() == "" || m_cPosStatus.Base.ProdTakeInOutDiv.Trim() == "")
|
|||
|
{
|
|||
|
//공통코드의 해당 영업조직 기본값 가져오기
|
|||
|
sQuery += "SELECT TOP 1 * FROM POSMST..MST_CMM \n";
|
|||
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n";
|
|||
|
sQuery += " AND CMM_GRP_CD = 'T0040' \n";
|
|||
|
sQuery += " AND SALES_ORG_CD = '" + m_cPosStatus.Base.BrandCd + "' \n";
|
|||
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'\n";
|
|||
|
|
|||
|
DataTable dtTakeInOutInfo = m_cMstService.Select(new string[] { sQuery });
|
|||
|
|
|||
|
if (dtTakeInOutInfo != null && dtTakeInOutInfo.Rows.Count > 0)
|
|||
|
{
|
|||
|
DataRow drData = dtTakeInOutInfo.Rows[0];
|
|||
|
|
|||
|
sCmmTakeInOutUse = CmUtil.GetDataRowStr(drData, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01);
|
|||
|
sCmmTakeInOutDiv = CmUtil.GetDataRowStr(drData, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_02);
|
|||
|
}
|
|||
|
|
|||
|
//Take In/Out 사용여부
|
|||
|
if (m_cPosStatus.Base.ProdTakeInOutUse.Trim() == "")
|
|||
|
{
|
|||
|
m_cPosStatus.Base.ProdTakeInOutUse = sCmmTakeInOutUse;
|
|||
|
}
|
|||
|
//Take In/Out 기본값
|
|||
|
if (m_cPosStatus.Base.ProdTakeInOutDiv.Trim() == "")
|
|||
|
{
|
|||
|
m_cPosStatus.Base.ProdTakeInOutDiv = sCmmTakeInOutDiv;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
if (m_cPosStatus.Base.ProdTakeInOutUse == "1")
|
|||
|
{
|
|||
|
sRet = true;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
sRet = false;
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
#endregion 제조음료 Take In/Out 사용여부 체크
|
|||
|
|
|||
|
#region 제조음료 Take In/Out 창 표시
|
|||
|
/// <summary>
|
|||
|
/// 제조음료 Take In/Out 창 표시
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private bool SetProdTakeInOut()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//Take In/Out
|
|||
|
string sRet = WinBasic.ShowForm(new string[] { FormManager.FORM_SAL_TAKE_IN_OUT_PROD });
|
|||
|
if (sRet.Equals(UserCom.RST_OK))
|
|||
|
{
|
|||
|
ISalePluItemUs m_cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM);
|
|||
|
|
|||
|
m_cPluService.ItemAmountExeccute(true, true);
|
|||
|
|
|||
|
IFormSaleMainUs cFormSaleMain = (IFormSaleMainUs)FormManager.GetForm(FormManager.FORM_SAL_MAIN);
|
|||
|
|
|||
|
cFormSaleMain.DisplayItem(1, false);
|
|||
|
}
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
#endregion 제조음료 Take In/Out 창 표시
|
|||
|
//#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 end
|
|||
|
|
|||
|
}
|
|||
|
}
|