spc-kiosk-pb/Service/AsvDataProcess/SaleComplete.cs
2019-06-16 14:12:09 +09:00

1742 lines
86 KiB
C#

using System;
using System.Collections;
using System.Data;
using Cosmos.UserFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;
/*-----------------------------------------------------------------------------------------------*/
// 설 명 : 거래 완료 처리
// 작 성 자 :
// 변경 이력 :
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Service
{
public class SaleComplete : ISaleCompleteUs
{
private SManager sManager = new SManager(); //0 객체를 통해 업무 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 DataService m_cDataService = null;
private MakeTranLog m_cTranService = null;
private PosSaleExact m_cExactService = null;
private IDatabaseSQL m_cSqlDbService = null;
private ICashdrawerUs m_cCashDrawer = null;
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
private PosReceipt m_cRecService = null;
private PosReceiptOpenClose m_cRecOpenClose = null;
private PosReceiptOrderSheet m_cRecOrderSheet = null; // Add, 2017.02.13, 주문서-영수증프린터 출력
//#20180202 결제영수증 발행 안해도 직전영수증 발행시 해당 영수증 출력 start
private PosReceiptBase m_cPosRecBase = null;
//#20180202 결제영수증 발행 안해도 직전영수증 발행시 해당 영수증 출력 end
/// <summary>
/// 생성자
/// </summary>
public SaleComplete()
{
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
m_cDevStatus = (DeviceStatus)StateObject.DEVICE;
m_cDataService = (DataService)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE);
m_cTranService = (MakeTranLog)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.MAKE_TRANLOG);
m_cExactService = (PosSaleExact)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.POS_SALE_EXACT);
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
m_cRecService = (PosReceipt)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.POS_RECEIPT);
m_cRecOpenClose = (PosReceiptOpenClose)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.POS_RECEIPTOPENCLOSE);
m_cRecOrderSheet = (PosReceiptOrderSheet)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.POS_RECEIPT_ORDERSHEET); // Add, 2017.02.13
m_cCashDrawer = (ICashdrawerUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_CASHDRAWER);
m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
//#20180202 결제영수증 발행 안해도 직전영수증 발행시 해당 영수증 출력 start
m_cPosRecBase = (PosReceiptBase)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.POS_RECEIPT_BASE);
//#20180202 결제영수증 발행 안해도 직전영수증 발행시 해당 영수증 출력 end
}
/// <summary>
/// 거래완료 처리()
/// </summary>
/// <returns></returns>
public string Execute(string[] aParam)
{
string sRet = UserCom.RST_ERR;
try
{
m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정
//영수증 데이터 생성
//거래데이터 저장
//영수증 출력 처리
//저널 데이터 저장
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>
public string OpenCloseExecute(string[] aParam)
{
string sRet = UserCom.RST_ERR;
string sPrintFlag = "1";
try
{
m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정
// 2019-04-24 - 1997fx11 : 마감시 정산지 출력여부 수정요망
if (aParam.Length > 0)
{
sPrintFlag = aParam[0];
}
if (sPrintFlag != "0")
{
// 영수증 출력 데이터 생성
sRet = m_cRecOpenClose.MakeOpenClose(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakePrt.", sRet);
}
}
// 거래데이터 저장
sRet = m_cTranService.SaveTranExecute(new string[] { "0" });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveTran.", sRet);
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0004);
return sRet;
}
if (sPrintFlag != "0")
{
// 영수증 출력
sRet = m_cRecOpenClose.ExecutePrint( aParam );
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
}
// 저널데이터 저장
sRet = m_cRecOpenClose.SaveJnlExecute(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveJnl.", 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;
}
/// <summary>
/// 거래완료 처리(판매)
/// </summary>
/// <param name="aParam"></param>
/// <returns></returns>
public string PosSaleExecute(string[] aParam)
{
string sRet = UserCom.RST_ERR;
try
{
m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정
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,
"MakePosSaleReceipt" + " - TradeDiv : " + m_cTrnStatus.Head.TradeDiv + " ,TradeNo : " + m_cTrnStatus.Head.TradeNo);
// 영수증 출력 데이터 생성
sRet = m_cRecService.MakePosSaleReceipt(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
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, "SaveTranExecute" + " - TradeDiv : " + m_cTrnStatus.Head.TradeDiv + " ,TradeNo : " + m_cTrnStatus.Head.TradeNo);
// 거래데이터 저장
sRet = m_cTranService.SaveTranExecute(new string[] { "0" });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveTran.", sRet);
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0004);
return sRet;
}
// 돈통 오픈 처리
//bool bOpenDrawer = false;
//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;
// 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:
// bOpenDrawer = true;
// break;
// }
// if (bOpenDrawer == true) break;
//}
//if (bOpenDrawer == true)
//{
// if (m_cPosStatus.Base.TrainingFlag != "1") //연습모드가 아니면!
// m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
//}
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, "SaveJnlExecute" + " - TradeDiv : " + m_cTrnStatus.Head.TradeDiv + " ,TradeNo : " + m_cTrnStatus.Head.TradeNo);
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start
// 추가
Hashtable htHPC_APPR_INFO = new Hashtable();
TrHpcInfoSave(ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT, ref htHPC_APPR_INFO);//적립
TrHpcInfoSave(ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT, ref htHPC_APPR_INFO);//사용
// 저널데이터 저장
// 기존
//sRet = m_cRecService.SaveJnlExecute(new string[] { });
// 변경
sRet = m_cRecService.SaveJnlExecute(new string[] { htHPC_APPR_INFO["HPC_SAVE_APPR_DT"].ToString()
,htHPC_APPR_INFO["HPC_SAVE_APPR_NO"].ToString()
,htHPC_APPR_INFO["HPC_USE_APPR_DT"].ToString()
,htHPC_APPR_INFO["HPC_USE_APPR_NO"].ToString()});
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveJnl.", sRet);
}
//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 처리
}*/
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, "bExecBillPrint");
bool bExecBillPrint = true;
if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.LOG.HOLD_DEAL || m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.LOG.STOP)
{
//보류 및 거래 중지(취소) 아니면 처리 요청사항!
bExecBillPrint = false;
}
else if (BillPrintRequiredCheck() == true)
{
// 필수출력(캠페인할인, 영수증 이벤트)
}
//17.08.22 dkshin SS 해피오더 - 매출 처리 영수증 출력 하지 않음.
else if (m_cTrnStatus.Sale.SSHappyOrderSalePrint)
{
bExecBillPrint = false;
}
else
{
//#20171017 전자영수증 발행 start, phj
//기존
/*
if (PosMstManager.GetPosOption(POS_OPTION.OPT416) == "2") // 영수증 발행 유무(0 : 미 출력, 1 : 출력, 2: 확인)
{
bExecBillPrint = WinManager.CountDownQuestionMessage(POS_MESSAGE.ERROR.MSG_0369);
}
else if (PosMstManager.GetPosOption(POS_OPTION.OPT416) == "0") // 영수증 발행 유무(0 : 미 출력, 1 : 출력, 2: 확인)
{
double nBillAmt = CmUtil.DoubleParse(PosMstManager.GetPosOption(POS_OPTION.OPT417));
if (m_cTrnStatus.Head.NetSaleAmt <= nBillAmt) bExecBillPrint = false;
}
*/
//변경
//(HP고객)해피앱 조회 전문 결과에 따른 영수증 발행/미발행 처리
//(HP 비고객) 결제 완료 시 판매사원에 의한 영수증 발행/미발행 처리
//전자영수증발행여부체크
string ElectronicReceiptYN = CheckElectronic_Receipt().ToString();
if ((PosMstManager.GetPosOption(POS_OPTION.OPT429) == "1") &&//전자영수증발행여부체크
(m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND) &&//일반
(ElectronicReceiptYN == "1"))// 1 : 전자영수증설정 (판매영수증미발행) , 0 : 미설정 (판매영수증발행)
{
//#20180226 영수증 미출력시 기타영수증 출력 되도록 수정 start
//소스 위치 변경
/*
// grayber@20180110 전자영수증 주문(대기)번호표 출력 start - 주문 대기표 출력
// 추가
// grayber@20180112 전자영수증 주문(대기)번호표 출력 start - 인터페이스 처리
//sRet = m_cRecService.ExcuteElectroBillOrderNoReceipt(); // 인터페이스에 추가하여 수정
sRet = ExcuteElectroBillOrderNoReceipt();
// grayber@20180112 전자영수증 주문(대기)번호표 출력 end
if (sRet.Equals(UserCom.RST_OK) != true)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExcuteElectroBillOrderNoReceipt.", sRet);
}
// grayber@20180110 전자영수증 주문(대기)번호표 출력 end
*/
//#20180226 영수증 미출력시 기타영수증 출력 되도록 수정 end
bExecBillPrint = false;
//#14941 스마트영수증 대상고객 안내기능 도입 start
WinManager.CountDownConfirmMessage(POS_MESSAGE.ERROR.MSG_0806);
//#14941 스마트영수증 대상고객 안내기능 도입 end
}
else
{
if (PosMstManager.GetPosOption(POS_OPTION.OPT416) == "2") // 영수증 발행 유무(0 : 미 출력, 1 : 출력, 2: 확인)
{
bExecBillPrint = WinManager.CountDownQuestionMessage(POS_MESSAGE.ERROR.MSG_0369);
}
else if (PosMstManager.GetPosOption(POS_OPTION.OPT416) == "0") // 영수증 발행 유무(0 : 미 출력, 1 : 출력, 2: 확인)
{
double nBillAmt = CmUtil.DoubleParse(PosMstManager.GetPosOption(POS_OPTION.OPT417));
if (m_cTrnStatus.Head.NetSaleAmt <= nBillAmt) bExecBillPrint = false;
}
}
//#20171017 전자영수증 발행 end, phj
}
if (bExecBillPrint == 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, "ExecutePrint" + " - TradeDiv : " + m_cTrnStatus.Head.TradeDiv + " ,TradeNo : " + m_cTrnStatus.Head.TradeNo);
// 영수증 출력
sRet = m_cRecService.ExecutePrint(new string[] { "SALE" });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
}
//#20181024 대기(주문)번호표 출력 start
/*
if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE)
{
if (PosMstManager.GetPosOption(POS_OPTION.OPT432).Equals("1") == true)
{
System.Threading.Thread.Sleep(3000);
//대기번호 영수증 데이터 생성
sRet = ExcuteElectroBillOrderNoReceipt(true);
if (sRet.Equals(UserCom.RST_OK) != 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, "ExcuteElectroBillOrderNoReceipt : " + sRet);
}
// 영수증 출력 RecPrtNo인 경우 m_aEtcPrintBuf만 출력
sRet = m_cRecService.ExecutePrint(new string[] { "SALE", "RecPrtNo" });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
}
}
}
*/
//#20181024 대기(주문)번호표 출력 end
}
//#20180202 결제영수증 발행 안해도 직전영수증 발행시 해당 영수증 출력 start
else
{
//#20180226 영수증 미출력시 기타영수증 출력 되도록 수정 start
//ex) 스탬프캠페인, 명판캠페인, 대기번호 등
//기존
//m_cPosRecBase.SaveReceiptFile();
//변경
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, "ExecutePrint : false" + " - TradeDiv : " + m_cTrnStatus.Head.TradeDiv + " ,TradeNo : " + m_cTrnStatus.Head.TradeNo);
//#20180228 매출거래인 경우만 영수증 미출력인 경우 기타영수증 출력 start
//해피포인트 추후적립이나 현금영수증 추후발행도 기타영수증에 포함되어 미출력인 경우 출력됨
if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE)
{
//#20180228 매출거래인 경우만 영수증 미출력인 경우 기타영수증 출력 end
//grayber@20180227 대기번호표 출력 옵션 추가 start
if (PosMstManager.GetPosOption(POS_OPTION.OPT432).Equals("1") == true)
{
//대기번호 영수증 데이터 생성
//grayber@20180226 대기번호표 조건 변경 start - 파라매터 추가
// 기존
//sRet = ExcuteElectroBillOrderNoReceipt();
// 변경
sRet = ExcuteElectroBillOrderNoReceipt(true);
//grayber@20180226 대기번호표 조건 변경 end
if (sRet.Equals(UserCom.RST_OK) != 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, "ExcuteElectroBillOrderNoReceipt : " + sRet);
}
}
//grayber@20180227 대기번호표 출력 옵션 추가 end
// 영수증 출력 RecPrtNo인 경우 m_aEtcPrintBuf만 출력
sRet = m_cRecService.ExecutePrint(new string[] { "SALE", "RecPrtNo" });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
}
//#20180226 영수증 미출력시 기타영수증 출력 되도록 수정 end
//#20180228 매출거래인 경우만 영수증 미출력인 경우 기타영수증 출력 start
}
//#20180228 매출거래인 경우만 영수증 미출력인 경우 기타영수증 출력 end
}
//#20180202 결제영수증 발행 안해도 직전영수증 발행시 해당 영수증 출력 end
//// 저널데이터 저장
//sRet = m_cRecService.SaveJnlExecute(new string[] { });
//if (sRet != UserCom.RST_OK)
//{
// UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
// System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveJnl.", sRet);
//}
#region
// 결제완료로 설정
m_cPosStatus.Base.PaymentCompleteFlag = "1";
#endregion
//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();
//20171107 dkshin 정상,반품거래일때만 해피앱 스탬프 등록 가능하게 start
/*if (m_cPosStatus.Base.TrainingFlag == "0" && // 운영모드
PosMstManager.GetPosOption(POS_OPTION.OPT327) == "1" && // 해피앱 스탬프 사용
m_cTrnStatus.Sale.HappyAppMemNo != "") // 해피앱 회원번호 존재(해피앱 고객)
*/
if (m_cPosStatus.Base.TrainingFlag == "0" && // 운영모드
PosMstManager.GetPosOption(POS_OPTION.OPT327) == "1" && // 해피앱 스탬프 사용
m_cTrnStatus.Sale.HappyAppMemNo != "" && // 해피앱 회원번호 존재(해피앱 고객)
m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.NORMAL.SALE)
{
// 해피앱 스탬프 등록
m_cHappyAppStamp.SetHappyAppStamp();
}
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, "TranComplete" + " - TradeDiv : " + m_cTrnStatus.Head.TradeDiv + " ,TradeNo : " + m_cTrnStatus.Head.TradeNo);
// 거래데이터 완료 후 데이터 초기화 처리
bool bIncTradeNo = m_cDataCommon.TradeNoAddCheck("");
//bool bIncTradeNo = m_cTranService.TradeNoAddCheck();
m_cDataService.TranComplete();
m_cDataService.SetMsgNoInc(true, !bIncTradeNo, bIncTradeNo); // 거래번호 증가
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, "RecOrderSheet");
// Add, 2017.02.13, 주방프린터와 영수증프린터가 동일 장비일때, 로컬영수증프린터에 주문서 출력
//m_cRecOrderSheet.Execute(null);
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;
}
#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
#region
/// <summary>
/// 영수증 필수 출력 여부 체크
/// </summary>
/// <returns></returns>
private bool BillPrintRequiredCheck()
{
bool bRet = false;
try
{
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.REFUND) return bRet;
//캠페인 할인 체크
ArrayList alTrPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM); // 상품 아이템
foreach (Column.TR_PLU.DATA cPluItem in alTrPluItem)
{
if (cPluItem.BILLSPR_NO != m_cTrnStatus.Sale.BillSplitNo) continue;
if (cPluItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.NORMAL && cPluItem.CPI_DC_AMT > 0)
{
bRet = true;
break;
}
}
//추가 출력 데이터 체크
if (bRet == false)
{
// 영수 캠페인 출력 데이터 설정
ICampaignUs cCampaingMain = (ICampaignUs)sManager.InitServiceInstance(ServiceLists.ASV_CAMPAIGN.DLL, ServiceLists.ASV_CAMPAIGN.CAMPAIGN_MAIN);
// 복권 명판 캠페인 출력 데이터 설정
ArrayList alTrSaleCpi = (ArrayList)StateObject.GetItemObject(Column.TR_SALE_CPI_RSLT.ITEM); // 캠페인트란 아이템
foreach (Column.TR_SALE_CPI_RSLT.DATA cTrSaleCpi in alTrSaleCpi)
{
if (cTrSaleCpi.CANCEL_DIV == "1") continue;
if (cTrSaleCpi.CPI_CUST_BNFT_TYPE == ItemConst.CPI_CUST_BNFT.LOTTERY || cTrSaleCpi.CPI_CUST_BNFT_TYPE == ItemConst.CPI_CUST_BNFT.LOTT_REC
|| cTrSaleCpi.CPI_CUST_BNFT_TYPE == ItemConst.CPI_CUST_BNFT.ENTRY || cTrSaleCpi.CPI_CUST_BNFT_TYPE == ItemConst.CPI_CUST_BNFT.ENTR_REC)
{
if (cTrSaleCpi.LTTR_NMPLAT_NO.Trim() == "") continue;
bRet = true;
break;
}
else if (cTrSaleCpi.CPI_CUST_BNFT_TYPE == ItemConst.CPI_CUST_BNFT.HP_STAMP)
{
if (cTrSaleCpi.HP_STAMP_COUPON.Trim() == "") continue;
// 캠페인별 구분자 파싱
string[] saCouponNo = cTrSaleCpi.HP_STAMP_COUPON.Split(new string[] { "," }, StringSplitOptions.None);
for (int i = 0; i < saCouponNo.Length; i++)
{
if (saCouponNo[i].Trim() == "") continue;
bRet = true;
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
/// <summary>
/// 간이영수증 완료 처리
/// </summary>
/// <returns></returns>
public string PosEtcReceiptExecute(object oParam)
{
string sRet = UserCom.RST_ERR;
try
{
DataTable pEtcReceipt = (DataTable)oParam;
//m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정
// 영수증 출력 데이터 생성
sRet = m_cRecOpenClose.MakePosEtcReceipt(pEtcReceipt);
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
// 영수증 출력
sRet = m_cRecOpenClose.ExecutePrint(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
} // 거래데이터 완료 후 데이터 초기화 처리
m_cDataService.TranComplete();
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>
public string PosClaimReceiptExecute()
{
string sRet = UserCom.RST_ERR;
try
{
// 영수증 출력 데이터 생성
sRet = m_cRecOpenClose.MakePosClaimReceipt();
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
// 영수증 출력
sRet = m_cRecOpenClose.ExecutePrint(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
} // 거래데이터 완료 후 데이터 초기화 처리
m_cDataService.TranComplete();
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>
/// <param name="aParam"></param>
/// <returns></returns>
public string PosSaleLastRePrint(string[] aParam)
{
string sRet = UserCom.RST_ERR;
try
{
// 직전영수증 재출력
sRet = m_cRecService.ExecuteRePrint(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sRet);
}
//거래번호 구하기
string sTradeNo = "";
if (m_cTrnStatus.Head.TradeNo == "00001")
{
sTradeNo = "99999";
}
else
{
int iTradeNo = CmUtil.IntParse(m_cTrnStatus.Head.TradeNo);
iTradeNo--;
sTradeNo = iTradeNo.ToString().PadLeft(5, '0');
}
//기타 헤더 저장!
EtcLogTrSave(ItemConst.TRAN_KIND.LOG.RE_PRINT, false, m_cTrnStatus.Head.SaleDate, m_cTrnStatus.Head.PosNo, sTradeNo);
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>
/// <param name="sPrtData"></param>
/// <param name="bTitle"></param>
/// <returns></returns>
public bool PosSaleRePrint(string sPrtData, bool bTitle)
{
return m_cRecService.PosSaleRePrint(sPrtData, bTitle);
}
/// <summary>
/// 영수증 재 출력
/// </summary>
/// <param name="aParam"></param>
/// <returns></returns>
public bool PosSaleRePrint(string sPrtData)
{
return m_cRecService.PosSaleRePrint(sPrtData);
}
/// <summary>
/// 기념일 배송 출력
/// </summary>
/// <param name="aParam"></param>
/// <returns></returns>
public bool PosRembOrderPrint(string sPrtData)
{
return m_cRecService.PosRembOrderPrint(sPrtData);
}
/// <summary>
/// 해피오더 주문서 출력
/// </summary>
/// <param name="aPrtData"></param>
/// <param name="bHPOAutoPrintYN"></param>
/// <param name="sPrtGubun"> M : 당월 , D : 당일</param>
/// <returns></returns>
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
//기존
/*
public bool PosPrint(string[] aPrtData)
{
return m_cRecService.PosPrint(aPrtData);
}
*/
//변경
public bool PosPrint(string[] aPrtData, bool bHPOAutoPrintYN, string sPrtGubun)
{
return m_cRecService.PosPrint(aPrtData, bHPOAutoPrintYN, sPrtGubun);
}
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 end
//17.08.22 dkshin SS 해피오더
/// <summary>
/// 해피오더 KDS 전송 실패 시 출력
/// </summary>
/// <param name="aPrtData"></param>
/// <returns></returns>
public bool HappyOrderKDSPrint(ArrayList aPrtData)
{
return m_cRecService.HappyOrderKDSPrint(aPrtData);
}
/// <summary>
/// 해피포인트(인카드쿠폰) 내역 출력
/// </summary>
/// <returns></returns>
public string ExecuteInCardCpnReceipt(object oEctItem, object oParam)
{
string sRet = UserCom.RST_ERR;
try
{
Column.TR_ETC.DATA cEtcItem = (Column.TR_ETC.DATA)oEctItem;
DataTable dtCpnList = (DataTable)oParam;
// 영수증 출력 데이터 생성
sRet = m_cRecOpenClose.MakeInCardCpnReceipt(cEtcItem, dtCpnList);
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
// 영수증 출력
sRet = m_cRecOpenClose.ExecutePrint(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", 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;
}
/// <summary>
/// 행사 주문 취합 내역 조회 출력
/// </summary>
/// <returns></returns>
public string PosSearchEventExecute(string sPrintData)
{
string sRet = UserCom.RST_ERR;
try
{
//DataTable pEtcReceipt = (DataTable)oParam;
//m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정
// 영수증 출력 데이터 생성
sRet = m_cRecOpenClose.MakePosSearchEvent(sPrintData);
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
//// 출력이 아니라면 여기서 값을 리턴해 줌
//if (sFlag == "0")
//{
// return sRet;
//}
// 영수증 출력
sRet = m_cRecOpenClose.ExecutePrint(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
} // 거래데이터 완료 후 데이터 초기화 처리
//m_cDataService.TranComplete();
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>
public string TranDataRestore(string[] aParam)
{
string sRet = UserCom.RST_ERR;
try
{
// 거래데이터 저장
sRet = m_cTranService.SaveTranExecute(new string[] { "1" });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveTran.", sRet);
}
// 저널데이터 저장
sRet = m_cRecOpenClose.SaveJnlDataExecute(aParam);
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveJnl.", 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;
}
/// <summary>
/// 더치페이 영수증 건출력
/// </summary>
/// <returns></returns>
public string DutchPayReceiptPrint(string[] aParam)
{
string sRet = UserCom.RST_ERR;
try
{
m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정
// 돈통 오픈 처리
if (FinishTradeOpenDrawer(true) == true)
m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
// 영수증 출력 데이터 생성
sRet = m_cRecService.MakePosSaleReceipt(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
// 영수증 출력
sRet = m_cRecService.ExecutePrint(new string[] { "SALE" });//더치페이
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", 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;
}
/// <summary>
/// 지정취소 데이터 저장 처리
/// </summary>
/// <returns></returns>
public string ItemCancelExecute(string[] aParam)
{
string sRet = UserCom.RST_ERR;
try
{
m_cDataService.SetTranBaseToHead(); // 트란 헤더 정보 재설정
// 지정취소 거래데이터 저장
sRet = m_cTranService.ItemCancelSaveData();
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveTran.", sRet);
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0004);
return sRet;
}
m_cDataService.SetMsgNoInc(true, true, false); // 거래번호 증가
m_cTrnStatus.Head.RegNo = m_cPosStatus.Base.RegNo; // REG_NO
}
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>
/// <param name="aParam"></param>
/// <returns></returns>
public string ExecuteADMTReceipt(string[] aParam)
{
string sRet = UserCom.RST_ERR;
try
{
m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정
// 영수증 출력 데이터 생성
//sRet = m_cRecOpenClose.MakeOpenClose(new string[] { });
//if (sRet != UserCom.RST_OK)
//{
// UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
// System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakePrt.", sRet);
//}
// 영수증 출력
m_cRecOpenClose.PrintBufClear(); // 영수증 출력버퍼 초기화
sRet = m_cRecOpenClose.ExecutePrint(new string[] { "SALE", aParam[0] });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", 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;
}
/// <summary>
/// 기타입출금 조회 내역 출력 처리
/// </summary>
/// <returns></returns>
public string AccEtcListReceipt(string sFromDate, string sToDate)
{
string sRet = UserCom.RST_ERR;
try
{
// 영수증 출력 데이터 생성
sRet = m_cRecOpenClose.AccEtcReceipt(sFromDate, sToDate);
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
// 영수증 출력
sRet = m_cRecOpenClose.ExecutePrint(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
} // 거래데이터 완료 후 데이터 초기화 처리
m_cDataService.TranComplete();
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>
public string AccRemoneyListReceipt(DataTable dtData, string sFromDate)
{
string sRet = UserCom.RST_ERR;
try
{
// 영수증 출력 데이터 생성
sRet = m_cRecOpenClose.AccRemoneyListReceipt(dtData, sFromDate);
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
// 영수증 출력
sRet = m_cRecOpenClose.ExecutePrint(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
} // 거래데이터 완료 후 데이터 초기화 처리
m_cDataService.TranComplete();
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>
public string PrepStoreReceipt(DataTable dtData)
{
string sRet = UserCom.RST_ERR;
try
{
//DataTable pEtcReceipt = (DataTable)oParam;
//m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정
m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.NORMAL.DELIMITER;
// 영수증 출력 데이터 생성
sRet = m_cRecOpenClose.PrepStorNoticeReceipt(dtData);
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
// 영수증 출력
sRet = m_cRecOpenClose.ExecutePrint(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
} // 거래데이터 완료 후 데이터 초기화 처리
m_cDataService.TranComplete();
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>
public string OpenManualCashdrawer()
{
string sRet = UserCom.RST_ERR;
try
{
////디비 저장
//m_cDataService.SetTranBaseToHead(); // 트란 헤더 정보 재설정
//// 지정취소 돈통 오픈
//sRet = m_cTranService.EtcHeaderSaveData(ItemConst.TRAN_DIV.NORMAL, ItemConst.TRAN_KIND.LOG.OPEN_CASH_DRAWER, new string[] { "" });
//if (sRet != UserCom.RST_OK)
//{
// UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
// System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveTran.", sRet);
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0004);
// return sRet;
//}
//m_cDataService.SetMsgNoInc(true, true, false); // 거래번호 증가
//m_cTrnStatus.Head.RegNo = m_cPosStatus.Base.RegNo; // REG_NO
EtcLogTrSave(ItemConst.TRAN_KIND.LOG.OPEN_CASH_DRAWER, false, "", "", "");
//돈통오픈
m_cCashDrawer.OpenCashDrawer();
}
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>
public string EtcLogTrSave(string sTradeKind, bool bErrShow, string sOrgSaleDt, string sOrgPosNo, string sOrgTradeNo)
{
string sRet = UserCom.RST_ERR;
try
{
//디비 저장
//m_cDataService.SetTranBaseToHead(); // 트란 헤더 정보 재설정
//m_cTrnStatus.Head.OrgSaleDate = sOrgSaleDt;
//m_cTrnStatus.Head.OrgPosNo = sOrgPosNo;
//m_cTrnStatus.Head.OrgTradeNo = sOrgTradeNo;
// 지정취소 돈통 오픈
sRet = m_cTranService.EtcHeaderSaveData(ItemConst.TRAN_DIV.NORMAL, sTradeKind, new string[] { sOrgSaleDt, sOrgPosNo, sOrgTradeNo });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveTran.", sRet);
if (bErrShow == true)
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0004);
return sRet;
}
//m_cDataService.SetTranBaseToHead();
m_cDataService.SetMsgNoInc(true, true, false); // 거래번호 증가
m_cTrnStatus.Head.RegNo = m_cPosStatus.Base.RegNo; // REG_NO
}
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>
/// 원거래에 해피포인트 추후적립 내역 출력정보 ADD
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <returns></returns>
public string AddHappyPointAfterSave(string sSaleDate, string sPosNo, string sTradeNo)
{
try
{
return m_cRecService.AddHappyPointAfterSave(sSaleDate, sPosNo, sTradeNo);
}
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 "";
}
//#해피앱 추후적립 start, sskim
/// <summary>
/// 원거래에 해피포인트 추후적립 내역 출력정보 ADD
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <returns></returns>
public string AddHappyPointHpAppAfterSave(string sSaleDate, string sPosNo, string sTradeNo)
{
try
{
return m_cRecService.AddHappyPointHpAppAfterSave(sSaleDate, sPosNo, sTradeNo);
}
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 "";
}
//#해피앱 추후적립 end, sskim
/// <summary>
/// 화면에 표시된는 영수증 출력 데이터 생성
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <returns></returns>
public string GetDisplayPrintData(string sSaleDate, string sPosNo, string sTradeNo)
{
try
{
return m_cRecService.GetDisplayPrintData(sSaleDate, sPosNo, sTradeNo);
}
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 "";
}
/// <summary>
/// 보류 거래 저장
/// </summary>
/// <param name="sHoldStat"></param>
/// <param name="sRegNo"></param>
/// <param name="sOrgRegNo"></param>
/// <param name="dQty"></param>
/// <param name="dSaleAmt"></param>
public void EtcHoldLogSvae(string sHoldStat, string sOrgRegNo, double dQty, double dSaleAmt)
{
try
{
m_cTranService.SaveHoldLog(sHoldStat, sOrgRegNo, dQty, dSaleAmt);
}
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>
public string ExecuteOrderBillReceipt()
{
return m_cRecService.ExecuteOrderBillReceipt();
}
//17.05.18 dkshin 쇼킹박스 추가
/// <summary>
/// 쇼킹박스처리
/// </summary>
/// <param name="aParam"></param>
/// <returns></returns>
public string PosShockingBoxExecute()
{
string sRet = UserCom.RST_ERR;
try
{
m_cDataService.SetTranBaseToHead(); //트란 헤더 정보 재설정
// 영수증 출력 데이터 생성
sRet = m_cRecService.MakePosSaleReceipt(new string[] { });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() MakeRec.", sRet);
}
// 거래데이터 저장
sRet = m_cTranService.SaveTranExecute(new string[] { "0" });
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveTran.", sRet);
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0004);
return sRet;
}
// 돈통 오픈 처리
//if (FinishTradeOpenDrawer() == true)
// m_cCashDrawer.OpenCashDrawer(); // 돈통 OPEN 처리
// 영수증 출력
sRet = m_cRecService.ExecutePrint(new string[] { "SALE" });//쇼킹박스
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() ExecPrt.", sRet);
}
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
#region
/*
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start
// 추가
Hashtable htHPC_APPR_INFO = new Hashtable();
TrHpcInfoSave(ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT, ref htHPC_APPR_INFO);//적립
TrHpcInfoSave(ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT, ref htHPC_APPR_INFO);//사용
// 저널데이타 저장
// 기존
//sRet = m_cRecService.SaveJnlExecute(new string[] { });
// 변경
sRet = m_cRecService.SaveJnlExecute(new string[] { htHPC_APPR_INFO["HPC_SAVE_APPR_DT"].ToString()
,htHPC_APPR_INFO["HPC_SAVE_APPR_NO"].ToString()
,htHPC_APPR_INFO["HPC_USE_APPR_DT"].ToString()
,htHPC_APPR_INFO["HPC_USE_APPR_NO"].ToString()
});
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() SaveJnl.", sRet);
}
*/
#endregion
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
// 거래데이터 완료 후 데이터 초기화 처리
bool bIncTradeNo = m_cDataCommon.TradeNoAddCheck("");
//bool bIncTradeNo = m_cTranService.TradeNoAddCheck();
m_cDataService.TranComplete();
m_cDataService.SetMsgNoInc(true, !bIncTradeNo, bIncTradeNo); // 거래번호 증가
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;
}
//17.05.18 dkshin 쇼킹박스 추가
/// <summary>
/// 쇼킹박스처리
/// </summary>
/// <param name="aParam"></param>
/// <returns></returns>
public string PosShockingBoxSearch(string sInPutData)
{
string sRet = UserCom.RST_ERR;
try
{
sRet = m_cTranService.PosShockingBoxSerch(sInPutData);
//#20180309 바코드 스캔마다 쇼킹박스 로그 생성되서 제거 start
/*
if (sRet != UserCom.RST_OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR, UserCom.WARNING_LEVEL, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "() PosShockingBoxSearch.", sRet);
//WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0004);
return sRet;
}
*/
//#20180309 바코드 스캔마다 쇼킹박스 로그 생성되서 제거 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 sRet;
}
// Add, 2017.09.04, 근무시간 확인서 출력
/// <summary>
/// 근무시간 확인서 출력
/// </summary>
/// <param name="empNo">직원코드</param>
/// <param name="empNm">직원성명</param>
/// <param name="strTime">출근일시 (yyyy.MM.dd HH:mm:ss)</param>
/// <param name="endTime">퇴근일시 (yyyy.MM.dd HH:mm:ss)</param>
/// <returns></returns>
public string ExecuteWorkTimeReceipt(string empNo, string empNm, string strTime, string endTime)
{
var ret = UserCom.RST_ERR;
try
{
ret = m_cRecService.ExecuteWorkTimeReceipt(empNo, empNm, strTime, endTime);
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
ret = UserCom.RST_ERR;
}
return ret;
}
//#20170918 기념일 배송 출력 start
public string ExecuteAnniversary(string aParam)
{
return m_cRecService.ExecuteAnniversary(aParam);
}
//#20170918 기념일 배송 출력 end
//#17142 [해피오더]POS로그인 시 영수증프린터로 장부재고 자동 출력 start
public string BookInventoryPrint(string aParam)
{
return m_cRecService.BookInventoryPrint(aParam);
}
//#17142 [해피오더]POS로그인 시 영수증프린터로 장부재고 자동 출력 end
//#20171017 전자영수증 발행 start, phj
public int CheckElectronic_Receipt()
{
int Electronic_Receipt = -1;
string Electronic_ReceiptYN = string.Empty;
try
{
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
{
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.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
if (cEtcItem.OCCUR_ENTRY_12 == "Y")
{
//해피앱 전자발행설정유무 값
if (cEtcItem.OCCUR_ENTRY_23 == "Y")
{
Electronic_Receipt = 1;
}
else
{
Electronic_Receipt = 0;
}
break;
}
}
}
if (Electronic_Receipt == 1) return Electronic_Receipt;
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
foreach (Column.TR_PAYMENT.DATA cPayItem in alPayItem)
{
if (cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.POINT_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT)
{
if (cPayItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
if (cPayItem.OCCUR_ENTRY_12 == "Y")
{
if (cPayItem.OCCUR_ENTRY_23 == "Y")
{
Electronic_Receipt = 1;
}
else
{
Electronic_Receipt = 0;
}
break;
}
}
}
return Electronic_Receipt;
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "Electronic_Receipt : " + Electronic_Receipt.ToString() + "", ex.Message);
return Electronic_Receipt;
}
}
//#20171017 전자영수증 발행 end, phj
//#20171227, 예약증 양식 출력 Start
/// <summary>
/// 예약증 양식 출력
/// </summary>
/// <returns></returns>
public string ExecuteReservationForm()
{
var ret = UserCom.RST_ERR;
try
{
ret = m_cRecService.ExecuteReservationForm();
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
ret = UserCom.RST_ERR;
}
return ret;
}
//#20171227, 예약증 양식 출력 End
// grayber@20180112 전자영수증 주문(대기)번호표 출력 start - 인터페이스 처리
/// <summary>
/// 대기번호표 출력
/// </summary>
/// <returns></returns>
public string ExcuteElectroBillOrderNoReceipt(bool bForce = false)
{
var ret = UserCom.RST_ERR;
try
{
//grayber@20180226 대기번호표 개선 start- 반품 시 출력 안하도록 처리
//기존
//ret = m_cRecService.ExcuteElectroBillOrderNoReceipt();
//개선 - 반품 시 출력 제거
if(m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND)
{
ret = m_cRecService.ExcuteElectroBillOrderNoReceipt(bForce);
}
//grayber@20180226 대기번호표 개선 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);
ret = UserCom.RST_ERR;
}
return ret;
}
// grayber@20180112 전자영수증 주문(대기)번호표 출력 end
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 start
// 추가
private string TrHpcInfoSave(string sHpcType, ref Hashtable htHPCApprInfo )
{
string sRet = UserCom.RST_ERR;
var alItem = new ArrayList();
//#20180302 해피포인트 적립내역, 사용내역 조회시 try catch 적용 start
try
{
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, "TrHpcInfoSave" + " - sHpcType : " + sHpcType);
//#20180302 해피포인트 적립내역, 사용내역 조회시 try catch 적용 end
if (sHpcType.Equals(ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) == true)
{
alItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
htHPCApprInfo.Add("HPC_SAVE_APPR_NO", string.Empty);
htHPCApprInfo.Add("HPC_SAVE_APPR_DT", string.Empty);
}
else
{
alItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
htHPCApprInfo.Add("HPC_USE_APPR_NO", string.Empty);
htHPCApprInfo.Add("HPC_USE_APPR_DT", string.Empty);
}
foreach (var cItem in alItem)
{
if (sHpcType.Equals(ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) == true) // 적립
{
if (((Column.TR_ETC.DATA)cItem).CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
if (((Column.TR_ETC.DATA)cItem).ETC_WAY_CD == ItemConst.TR_ITEM_ID.ETC_INFO_ITEM
&& ((Column.TR_ETC.DATA)cItem).ETC_DTL_CD_01 == ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT)
{
htHPCApprInfo["HPC_SAVE_APPR_NO"] = ((Column.TR_ETC.DATA)cItem).OCCUR_ENTRY_02;
htHPCApprInfo["HPC_SAVE_APPR_DT"] = ((Column.TR_ETC.DATA)cItem).OCCUR_ENTRY_03;
sRet = UserCom.RST_OK;
break;
}
}
else if (sHpcType.Equals(ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT) == true) // 사용
{
if (((Column.TR_PAYMENT.DATA)cItem).CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
if (((Column.TR_PAYMENT.DATA)cItem).PAY_WAY_CD == ItemConst.TR_ITEM_ID.POINT_ITEM
&& ((Column.TR_PAYMENT.DATA)cItem).PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.POINT_USE.HAPPY_POINT)
{
htHPCApprInfo["HPC_USE_APPR_NO"] = ((Column.TR_PAYMENT.DATA)cItem).OCCUR_ENTRY_02;
htHPCApprInfo["HPC_USE_APPR_DT"] = ((Column.TR_PAYMENT.DATA)cItem).OCCUR_ENTRY_03;
sRet = UserCom.RST_OK;
break;
}
}
}
//#20180302 해피포인트 적립내역, 사용내역 조회시 try catch 적용 start
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
//#20180302 해피포인트 적립내역, 사용내역 조회시 try catch 적용 end
return sRet;
}
//grayber@20180212 해피포인트 전자영수증 I/F 개선 #13924 end
}
}