spc-kiosk-pb/Service/BsvSale/Reservation.cs

679 lines
36 KiB
C#
Raw Permalink Normal View History

2019-06-16 05:12:09 +00:00
using System;
using System.Text;
using System.Collections;
using System.Data;
using Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;
/*-----------------------------------------------------------------------------------------------*/
// 설 명 :
// 작 성 자 :
// 변경 이력 :
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Service
{
class Reservation : SaleTranCallBase, ISaleReserved
{
private ISaleCompleteUs m_cSaleComplete = null; // 거래 완료처리
/// <summary>
/// 생성자
/// </summary>
public Reservation()
{
m_cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
}
//#Rhee, 20180117 픽업 진행 추가 start
/// <summary>
/// 예약거래 픽업
/// </summary>
/// <param name="sCmpCd"></param>
/// <param name="sStorCd"></param>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <param name="sSendYn"></param>
/// <returns></returns>
public string PickupReservedCom(string sCmpCd, string sStorCd, string sSaleDate, string sPosNo, string sTradeNo, string sSendYn)
{
string sRet = UserCom.RST_ERR;
var sQuery = string.Empty;
var sSql = string.Empty;
try
{
sQuery = "UPDATE POSLOG..TR_SALE_HEADER SET SEND_YN = '{0}', TRADE_KINDPER = '11' "
+ "WHERE CMP_CD = '{1}' AND STOR_CD = '{2}' AND POS_NO = '{3}' AND SALE_DT = '{4}' AND TRADE_NO = '{5}' "
+ "UPDATE POSLOG..TR_SALE_JOURNAL SET SEND_YN = '{0}', TRADE_KINDPER = '11' "
+ "WHERE CMP_CD = '{1}' AND STOR_CD = '{2}' AND POS_NO = '{3}' AND SALE_DT = '{4}' AND TRADE_NO = '{5}' ";
sSql = string.Format(sQuery, sSendYn, sCmpCd, sStorCd, sPosNo, sSaleDate, sTradeNo);
if(m_cSqlDbService.DBExecuteNonQuery(sSql) == UserCom.OK)
{
sRet = UserCom.RST_OK;
}
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;
}
//#Rhee, 20180117 픽업 진행 추가 end
/// <summary>
/// 예약거래 조회
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sTradType"></param>
/// <param name="sCondition"></param>
/// <param name="sOnOffLine"></param>
/// <returns></returns>
public DataTable SearchReservedFinshList(string sSaleDate, string sTradType, string sCondition, string sOnOffLine)
{
string sQuery = "";
try
{
sQuery += " DECLARE @CMP_CD AS VARCHAR(4) ";
sQuery += " DECLARE @STOR_CD AS VARCHAR(10) ";
sQuery += " DECLARE @POS_NO AS VARCHAR(2) ";
sQuery += " DECLARE @FNS_FDATE AS VARCHAR(8) ";
sQuery += " SET @CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " SET @STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " SET @POS_NO = '" + m_cPosStatus.Base.PosNo + "'";
sQuery += " SET @FNS_FDATE = '" + sSaleDate + "'";
//#Rhee, 20180103 예약 전액결제, 부분결제 조회 추가 Start
sQuery += " SELECT NO ,RESERV_DT ,REG_RESERV_DT ,CUST_PHN_NO ,AFTER ,BEFORE ";
sQuery += " ,CASE WHEN FNS_FLG = '1' AND BEFORE = '0.00' THEN 'reservation complete' ELSE BILL_STAT END BILL_STAT ";
sQuery += " ,CUSTNM ,RESERV_MEMO ,TOTSALE_AMT ,CMP_CD,SALE_DT,STOR_CD ,POS_NO, TRADE_NO, RESERV_NO, FNS_FLG ,FNS_SALE_DT , FNS_POS_NO ,FNS_TRADE_NO FROM ( ";
//#Rhee, 20180103 예약 전액결제, 부분결제 조회 추가 End
sQuery += " SELECT ROW_NUMBER() OVER( ORDER BY B.TRADE_NO ASC) AS NO ";
sQuery += " , ISNULL(C.RESERV_DT + C.RESERV_TM,'') AS RESERV_DT ";
sQuery += " , ISNULL(C.RESERV_REG_DT + C.RESERV_REG_TM,'') AS REG_RESERV_DT ";
sQuery += " , C.CUST_PHN_NO ";
sQuery += " , CONVERT(VARCHAR,ISNULL(SUM((CASE WHEN P.PAY_WAY_CD + PAY_DTL_CD_01 = '1501' THEN 0 ELSE PAY_AMT END)),0)) AS 'AFTER' ";
//#Rhee, 20180103 예약 조회시 잔금 표기 오류 수정 start
// 기존
//sQuery += " , CONVERT(VARCHAR,ISNULL(SUM((CASE WHEN P.PAY_WAY_CD + PAY_DTL_CD_01 = '1501' THEN PAY_AMT ELSE 0 END)),0)) AS 'BEFORE' ";
// 변경
sQuery += " , CONVERT(VARCHAR,ISNULL(SUM((CASE WHEN P.PAY_WAY_CD + PAY_DTL_CD_01 = '1501' THEN PAY_AMT ELSE (CASE WHEN B.TOTSALE_AMT > P.PAY_AMT THEN B.TOTSALE_AMT - P.PAY_AMT ELSE 0 END) END)),0)) AS 'BEFORE' ";
//#Rhee, 20180103 예약 조회시 잔금 표기 오류 수정 end
sQuery += " , ISNULL(CASE B.FNS_FLG WHEN '0' THEN '" + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0291) + "'";
sQuery += " WHEN '1' THEN '" + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0077) + "'";
//#Rhee, 20180117 미주 예약픽업 추가 Start
//기존
//sQuery += " WHEN '3' THEN '" + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0078) + "'";
sQuery += " WHEN '4' THEN '" + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0078) + "'";
sQuery += " WHEN '3' THEN '" + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1085) + "'";
sQuery += " ELSE '" + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0291) + "'";
//#Rhee, 20180117 미주 예약픽업 추가 End
sQuery += " END,0) AS 'BILL_STAT' ";
sQuery += " , C.CUSTNM , C.RESERV_MEMO ";
sQuery += " , CONVERT(VARCHAR,B.TOTSALE_AMT) AS TOTSALE_AMT ";
sQuery += " , B.CMP_CD, B.SALE_DT, B.STOR_CD, B.POS_NO,B.TRADE_NO, B.RESERV_NO, B.FNS_FLG ";
sQuery += " , MAX(B.FNS_SALE_DT)FNS_SALE_DT, MAX(B.FNS_POS_NO)FNS_POS_NO ,MAX(B.FNS_TRADE_NO)FNS_TRADE_NO ";
sQuery += " FROM ( ";
if (m_cPosStatus.Base.TrainingFlag == "1")
{
sQuery += " SELECT CMP_CD,SALE_DT,STOR_CD,POS_NO,TRADE_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,SUM(FNS_FLG) AS FNS_FLG,MAX(FNS_SALE_DT) AS FNS_SALE_DT,MAX(FNS_POS_NO) AS FNS_POS_NO,MAX(FNS_TRADE_NO) AS FNS_TRADE_NO ";
sQuery += " FROM ( ";
sQuery += " SELECT CMP_CD,SALE_DT,STOR_CD,POS_NO,REG_NO AS TRADE_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,1 AS 'FNS_FLG','' AS 'FNS_SALE_DT','' AS 'FNS_POS_NO','' AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.ETC_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('0') ";
sQuery += " AND TRADE_KINDPER IN ('10') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD,ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,2 AS 'FNS_FLG',SALE_DT AS 'FNS_SALE_DT',POS_NO AS 'FNS_POS_NO',TRADE_NO AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.ETC_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('0') ";
sQuery += " AND TRADE_KINDPER IN ('11') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
//#Rhee, 20180117 미주 예약픽업 추가 Start
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD, ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT, TOTSALE_AMT, RESERV_NO ";
sQuery += " ,3 AS 'FNS_FLG',SALE_DT AS 'FNS_SALE_DT',POS_NO AS 'FNS_POS_NO',TRADE_NO AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('0') ";
sQuery += " AND TRADE_KINDPER IN ('12') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD,ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO, ";
sQuery += " -3 AS 'FNS_FLG','' AS 'FNS_SALE_DT','' AS 'FNS_POS_NO','' AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('1') ";
sQuery += " AND TRADE_KINDPER IN ('12') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
//#Rhee, 20180117 미주 예약픽업 추가 End
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD,ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,-1 AS 'FNS_FLG','' AS 'FNS_SALE_DT','' AS 'FNS_POS_NO','' AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.ETC_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('1') ";
sQuery += " AND TRADE_KINDPER IN ('10') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD,ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,-2 AS 'FNS_FLG','' AS 'FNS_SALE_DT','' AS 'FNS_POS_NO','' AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.ETC_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND REG_NO IN ( ";
sQuery += " SELECT ORG_BILL_NO ";
sQuery += " FROM POSLOG.dbo.ETC_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('1') ";
sQuery += " AND TRADE_KINDPER IN ('11') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " ) ";
sQuery += " AND TRADE_DIV IN ('0') ";
sQuery += " AND TRADE_KINDPER IN ('11') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " ) A ";
sQuery += " GROUP BY CMP_CD,SALE_DT,STOR_CD,POS_NO,TRADE_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ) B ";
sQuery += " LEFT OUTER JOIN POSLOG.DBO.ETC_RESERV_INFO C ";
sQuery += " ON B.CMP_CD = C.CMP_CD ";
sQuery += " AND B.SALE_DT = C.SALE_DT ";
sQuery += " AND B.STOR_CD = C.STOR_CD ";
sQuery += " AND B.POS_NO = C.POS_NO ";
sQuery += " AND B.TRADE_NO = C.REG_NO ";
sQuery += " AND B.RESERV_NO = C.RESERV_NO ";
sQuery += " LEFT OUTER JOIN POSLOG.DBO.ETC_SALE_PAY P ";
sQuery += " ON B.CMP_CD = P.CMP_CD ";
sQuery += " AND B.SALE_DT = P.SALE_DT ";
sQuery += " AND B.STOR_CD = P.STOR_CD ";
sQuery += " AND B.POS_NO = P.POS_NO ";
sQuery += " AND B.TRADE_NO = P.REG_NO ";
sQuery += " AND P.CANCEL_DIV = '" + ItemConst.PAY_CANCEL_DIV.NORMAL + "'";
}
else
{
sQuery += " SELECT CMP_CD,SALE_DT,STOR_CD,POS_NO,TRADE_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,SUM(FNS_FLG) AS FNS_FLG,MAX(FNS_SALE_DT) AS FNS_SALE_DT,MAX(FNS_POS_NO) AS FNS_POS_NO,MAX(FNS_TRADE_NO) AS FNS_TRADE_NO ";
sQuery += " FROM ( ";
sQuery += " SELECT CMP_CD,SALE_DT,STOR_CD,POS_NO,TRADE_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,1 AS 'FNS_FLG','' AS 'FNS_SALE_DT','' AS 'FNS_POS_NO','' AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('0') ";
sQuery += " AND TRADE_KINDPER IN ('10') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD,ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,2 AS 'FNS_FLG',SALE_DT AS 'FNS_SALE_DT',POS_NO AS 'FNS_POS_NO',TRADE_NO AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('0') ";
sQuery += " AND TRADE_KINDPER IN ('11') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
//#Rhee, 20180117 미주 예약픽업 추가 Start
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD, ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT, TOTSALE_AMT, RESERV_NO ";
sQuery += " ,3 AS 'FNS_FLG',SALE_DT AS 'FNS_SALE_DT',POS_NO AS 'FNS_POS_NO',TRADE_NO AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('0') ";
sQuery += " AND TRADE_KINDPER IN ('12') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD,ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO, ";
sQuery += " -3 AS 'FNS_FLG','' AS 'FNS_SALE_DT','' AS 'FNS_POS_NO','' AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('1') ";
sQuery += " AND TRADE_KINDPER IN ('12') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
//#Rhee, 20180117 미주 예약픽업 추가 End
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD,ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,-1 AS 'FNS_FLG','' AS 'FNS_SALE_DT','' AS 'FNS_POS_NO','' AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('1') ";
sQuery += " AND TRADE_KINDPER IN ('10') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " UNION ALL ";
sQuery += " SELECT CMP_CD,ORG_BILLDT,STOR_CD,ORG_BILL_POSNO,ORG_BILL_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ,-2 AS 'FNS_FLG','' AS 'FNS_SALE_DT','' AS 'FNS_POS_NO','' AS 'FNS_TRADE_NO' ";
sQuery += " FROM POSLOG.dbo.TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_NO IN ( ";
sQuery += " SELECT ORG_BILL_NO ";
sQuery += " FROM POSLOG.dbo.TR_SALE_HEADER ";
sQuery += " WHERE CMP_CD = @CMP_CD ";
sQuery += " AND STOR_CD = @STOR_CD ";
sQuery += " AND POS_NO = @POS_NO ";
sQuery += " AND TRADE_DIV IN ('1') ";
sQuery += " AND TRADE_KINDPER IN ('11') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN= '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " ) ";
sQuery += " AND TRADE_DIV IN ('0') ";
sQuery += " AND TRADE_KINDPER IN ('11') ";
sQuery += " AND RESERV_DT = @FNS_FDATE ";
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' ";
sQuery += " ) A ";
sQuery += " GROUP BY CMP_CD,SALE_DT,STOR_CD,POS_NO,TRADE_NO,RESERV_DT,TOTSALE_AMT,RESERV_NO ";
sQuery += " ) B ";
sQuery += " LEFT OUTER JOIN POSLOG.DBO.TR_RESERV_INFO C ";
sQuery += " ON B.CMP_CD = C.CMP_CD ";
sQuery += " AND B.SALE_DT = C.SALE_DT ";
sQuery += " AND B.STOR_CD = C.STOR_CD ";
sQuery += " AND B.POS_NO = C.POS_NO ";
sQuery += " AND B.TRADE_NO = C.TRADE_NO ";
sQuery += " AND B.RESERV_NO = C.RESERV_NO ";
sQuery += " LEFT OUTER JOIN POSLOG.DBO.TR_SALE_PAY P ";
sQuery += " ON B.CMP_CD = P.CMP_CD ";
sQuery += " AND B.SALE_DT = P.SALE_DT ";
sQuery += " AND B.STOR_CD = P.STOR_CD ";
sQuery += " AND B.POS_NO = P.POS_NO ";
sQuery += " AND B.TRADE_NO = P.TRADE_NO ";
sQuery += " AND P.CANCEL_DIV = '" + ItemConst.PAY_CANCEL_DIV.NORMAL + "'";
}
sQuery += " WHERE 1 = 1 ";
sQuery += " AND C.ONOFF_DIV = '" + sOnOffLine + "'";
//#Rhee, 20180119 검색조건 변경 start
//기존
//if (sTradType != "4" && sTradType != "" && sTradType != "5" && sTradType != "6")
//{
// sQuery += " AND B.FNS_FLG = '" + sTradType + "'";
//}
//변경
if ((sTradType == "1" || sTradType == "3" || sTradType == "4") && sTradType != "")
{
sQuery += " AND B.FNS_FLG = '" + sTradType + "'";
}
else if ((sTradType == "2" || sTradType == "0") && sTradType != "")
{
sQuery += " AND B.FNS_FLG IN ('0','2')";
}
//#Rhee, 20180119 검색조건 변경 end
if (sCondition != "")
{
sQuery += " AND C.CUST_PHN_NO LIKE '%" + sCondition + "%'";
}
sQuery += " GROUP BY C.RESERV_DT, C.RESERV_TM, C.RESERV_REG_DT, C.RESERV_REG_TM, B.TOTSALE_AMT ";
sQuery += " ,B.CMP_CD, B.SALE_DT, B.STOR_CD, B.POS_NO,B.TRADE_NO, B.RESERV_NO, B.FNS_FLG ";
sQuery += " ,C.CUSTNM, C.CUST_PHN_NO, C.RESERV_MEMO ";
//#Rhee, 20180119 예약 전액결제, 부분결제 조회 추가 start
// 기존
/*
// 부분결제
if (sTradType == "5" )
{
sQuery += " HAVING SUM((CASE WHEN P.PAY_WAY_CD + PAY_DTL_CD_01 = '1501' THEN PAY_AMT ELSE 0 END)) > 0 ";
}
// 전체 결제
if (sTradType == "6")
{
sQuery += " HAVING SUM((CASE WHEN P.PAY_WAY_CD + PAY_DTL_CD_01 = '1501' THEN PAY_AMT ELSE 0 END)) = 0 ";
}
*/
// 변경
sQuery += " ) AS TMP_RESERV WHERE 1=1 ";
// 부분결제
if (sTradType == "5")
{
sQuery += " AND BEFORE != '0.00' ";
}
// 전체 결제
if (sTradType == "6")
{
sQuery += " AND BEFORE = '0.00' ";
}
//#Rhee, 20180119 예약 전액결제, 부분결제 조회 추가 end
return m_cMstService.Select(new string[] { sQuery });
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
return null;
}
/// <summary>
/// 예약 거래 영수증 조회
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <returns></returns>
public DataTable SearchReservedFinshPrint(string sSaleDate, string sPosNo, string sTradeNo)
{
string sQuery = "";
try
{
if (m_cPosStatus.Base.TrainingFlag == "1")
{
sQuery = " SELECT JOURNAL_DATA ";
sQuery += " FROM POSLOG..ETC_SALE_JOURNAL ";
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND SALE_DT = '" + sSaleDate + "'";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " AND POS_NO = '" + sPosNo + "'";
sQuery += " AND REG_NO = '" + sTradeNo + "'";
}
else
{
sQuery = " SELECT JOURNAL_DATA ";
sQuery += " FROM POSLOG..TR_SALE_JOURNAL ";
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND SALE_DT = '" + sSaleDate + "'";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " AND POS_NO = '" + sPosNo + "'";
sQuery += " AND TRADE_NO = '" + sTradeNo + "'";
}
return m_cMstService.Select(new string[] { sQuery });
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
return null;
}
/// <summary>
/// 예약 영수증 출력
/// </summary>
/// <param name="sPrtData"></param>
/// <returns></returns>
public bool PrintReservedFinsh(string sPrtData)
{
//// 영수증 출력
return m_cSaleComplete.PosSaleRePrint(sPrtData);
}
/// <summary>
/// 예약 거래 로드
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <param name="bRetrun"></param>
/// <returns></returns>
public bool LoadLocalTran(string sSaleDate, string sPosNo, string sTradeNo, bool bRetrun)
{
bool bRet = false;
try
{
m_cDataService.TranComplete();
// 해더정보 로딩
if (LoadLocalTrHeader(sSaleDate, sPosNo, sTradeNo) == false)
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0248);
m_cDataService.TranComplete();
return bRet;
}
// 상품정보 로딩
LoadLocalTrDetail(sSaleDate, sPosNo, sTradeNo);
// 결제정보 로딩
LoadLocalTrPayment(sSaleDate, sPosNo, sTradeNo);
// 기타정보 로딩
LoadLocalTrEtc(sSaleDate, sPosNo, sTradeNo);
// 캠페인정보 로딩
LoadLocalTrCampaign(sSaleDate, sPosNo, sTradeNo);
// 매출객수정보 로딩
LoadLocalTrGuestCnt(sSaleDate, sPosNo, sTradeNo);
// 예약 고객 정보 로딩
LoadLocalTrReservInfo(sSaleDate, sPosNo, sTradeNo);
if (bRetrun == false)
{
// 선수금 체크 결제 수단 재 정의
PayAdvanCheck();
}
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);
m_cDataService.TranComplete();
}
return bRet;
}
/// <summary>
/// 선수금 결제 수단 재 정의
/// </summary>
/// <returns></returns>
public bool PayAdvanCheck()
{
bool bRet = false;
try
{
//예약 결제 재 정의
ArrayList aPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
// 결제 내역 받아 오기
Column.TR_PAYMENT.DATA m_cPayItem = new Column.TR_PAYMENT.DATA();
//기본 저장 변수 만들기
m_cPayItem.PAY_WAY_CD = ItemConst.TR_ITEM_ID.RESERVATION_ITEM; //결제 그룹 코드
m_cPayItem.PAY_DTL_CD_01 = ItemConst.TR_ITEM_ID.RESERVATION.RESERVATION_PAY; //결제 코드
m_cPayItem.OCCUR_ENTRY_20 = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0282); //결제 수단명
m_cPayItem.PAY_AMT = 0; //결제 금액
m_cPayItem.AMT_ENTRY_01 = 0; //받은돈
m_cPayItem.AMT_ENTRY_02 = 0; //거스름
m_cPayItem.PAY_DTL_CD_05 = PosConst.PAY_DC_TYPE.PAY;
m_cPayItem.SEQ = 1;
m_cPayItem.CANCEL_DIV = "";
foreach (Column.TR_PAYMENT.DATA cPayItem in aPayItem)
{
if (!(cPayItem.PAY_WAY_CD == ItemConst.TR_ITEM_ID.RESERVATION_ITEM && cPayItem.PAY_DTL_CD_01 == ItemConst.TR_ITEM_ID.RESERVATION.BALANCE_PAY))
{
//값 입력
if (cPayItem.OCCUR_ENTRY_21 == ItemConst.PAY_CASHBILL_DIV.YES)
{
m_cPayItem.OCCUR_ENTRY_21 = ItemConst.PAY_CASHBILL_DIV.YES;
m_cPayItem.AMT_ENTRY_10 = CmUtil.DoubleAdd(m_cPayItem.AMT_ENTRY_10, cPayItem.PAY_AMT);
}
m_cPayItem.PAY_AMT = CmUtil.DoubleAdd(m_cPayItem.PAY_AMT, cPayItem.PAY_AMT);
m_cPayItem.AMT_ENTRY_01 = m_cPayItem.PAY_AMT;
m_cPayItem.CANCEL_DIV = PosConst.CANCEL_DIV.NORMAL;
}
}
aPayItem.Clear();
if (m_cPayItem.CANCEL_DIV == PosConst.CANCEL_DIV.NORMAL)
{
aPayItem.Add(m_cPayItem);
}
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);
m_cDataService.TranComplete();
}
return bRet;
}
/// <summary>
/// 예약 거래 로드(서버)
/// </summary>
/// <param name="sSaleDate"></param>
/// <param name="sPosNo"></param>
/// <param name="sTradeNo"></param>
/// <param name="bRetrun"></param>
/// <returns></returns>
public string SearchServerTran(string sSaleDate, string sPosNo, string sTradeNo, bool bRetrun)
{
string sStat = UserCom.RST_ERR;
bool bRet = false;
try
{
m_cDataService.TranComplete();
// 거래 데이터 서버 조회
Hashtable htRecvData = new Hashtable();
sStat = ExecServerTranCallIrt(ItemConst.IRT_INQ_TYPE.TRAN_CALL, sSaleDate, sPosNo, sTradeNo, "", ref htRecvData);
if (sStat != UserCom.RST_OK)
{
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0259);
return sStat;
}
if (htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.RES_CD].ToString() != "00")
{
if (htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.RES_CD].ToString() == "09")
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0248); // 해당거래 없음
else
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0259) + "\n\r ERROR CODE => " + htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.RES_CD]);
return UserCom.RST_ERR;
}
// 거래데이터
string sTranData = htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.TRAN_DATA].ToString();
m_cTrnStatus.Head.CmpCd = m_cPosStatus.Base.CmpCd; // CMP_CD
m_cTrnStatus.Head.StoreCd = m_cPosStatus.Base.StoreNo; // STOR_CD
m_cTrnStatus.Head.SaleDate = sSaleDate; // SALE_DT
m_cTrnStatus.Head.PosNo = sPosNo; // POS_NO
m_cTrnStatus.Head.TradeNo = htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.TRADE_NO].ToString(); // TRADE_NO
// 거래 분해 처리
string[] aTranData = sTranData.Split(new string[] { "#~" }, StringSplitOptions.None);
for (int i = 0; i < aTranData.Length; i++)
{
if (aTranData[i].StartsWith(ItemConst.IRT_TRAN_TYPE.TranHeader))
bRet = TranParserToHeader(aTranData[i]);
else if (aTranData[i].StartsWith(ItemConst.IRT_TRAN_TYPE.TranDetail))
bRet = TranParserToDetail(aTranData[i]);
else if (aTranData[i].StartsWith(ItemConst.IRT_TRAN_TYPE.TranPay))
bRet = TranParserToPayment(aTranData[i]);
else if (aTranData[i].StartsWith(ItemConst.IRT_TRAN_TYPE.TranCpiRslt))
bRet = TranParserToCampaign(aTranData[i]);
else if (aTranData[i].StartsWith(ItemConst.IRT_TRAN_TYPE.TranEtc))
bRet = TranParserToEtc(aTranData[i]);
else if (aTranData[i].StartsWith(ItemConst.IRT_TRAN_TYPE.TranGuestCnt))
bRet = TranParserToGuestCnt(aTranData[i]);
else if (aTranData[i].StartsWith(ItemConst.IRT_TRAN_TYPE.TranReservInfo))
bRet = TranParserToTrReservInfo(aTranData[i]);
if (bRet == false)
{
m_cDataService.TranComplete();
return sStat;
}
}
if (bRetrun == false)
{
// 선수금 체크 결제 수단 재 정의
PayAdvanCheck();
}
sStat = 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);
m_cDataService.TranComplete();
}
return sStat;
}
}
}