1125 lines
61 KiB
C#
1125 lines
61 KiB
C#
using System;
|
|
using System.Text;
|
|
using System.Collections;
|
|
using System.Data;
|
|
|
|
using Cosmos.UserFrame;
|
|
using Cosmos.ServiceProvider;
|
|
using Cosmos.Common;
|
|
using Cosmos.CommonManager;
|
|
using Cosmos.BaseFrame;
|
|
|
|
//#20180605 해피오더 개선 start
|
|
|
|
using Newtonsoft.Json;
|
|
using System.Net;
|
|
using System.IO;
|
|
|
|
//#20180605 해피오더 개선 end
|
|
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
// 설 명 : 영수증 반품 / 서버 시간 조회 처리
|
|
// 작 성 자 :
|
|
// 변경 이력 :
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
namespace Cosmos.Service
|
|
{
|
|
class Svr2Tran : SaleTranCallBase, ISvr2Tran
|
|
{
|
|
#region 변수 선언 및 생성자
|
|
private ISaleCompleteUs m_cTranService = null;
|
|
private ISignPadUs m_cDeviceSignPad = null; // 서명패드
|
|
|
|
/// <summary>
|
|
/// 생성자
|
|
/// </summary>
|
|
public Svr2Tran()
|
|
{
|
|
m_cTranService = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
|
|
m_cDeviceSignPad = (ISignPadUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_SIGNPAD);
|
|
}
|
|
#endregion
|
|
|
|
#region 최종 거래번호, 등록번호 조회
|
|
/// <summary>
|
|
/// 최종 거래번호, 등록번호 조회
|
|
/// </summary>
|
|
/// <param name="sSaleDate"></param>
|
|
/// <param name="sPosNo"></param>
|
|
/// <param name="sLastTradeNo"></param>
|
|
/// <param name="sLastRegNo"></param>
|
|
/// <returns></returns>
|
|
public string SearchLastTranNo(string sSaleDate, string sPosNo, ref string sLastTradeNo, ref string sLastRegNo)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
Hashtable htRecvData = new Hashtable();
|
|
Hashtable htSendData = new Hashtable();
|
|
|
|
try
|
|
{
|
|
// 거래 데이터 서버 조회
|
|
htSendData.Add(Column.IQ_TRAN_LASTNO_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.LAST_TRANNO_INQ);
|
|
htSendData.Add(Column.IQ_TRAN_LASTNO_REQ.DATA.SALE_DT, sSaleDate);
|
|
htSendData.Add(Column.IQ_TRAN_LASTNO_REQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo);
|
|
htSendData.Add(Column.IQ_TRAN_LASTNO_REQ.DATA.POS_NO, sPosNo);
|
|
htSendData.Add(Column.IQ_TRAN_LASTNO_REQ.DATA.TRADE_NO, "");
|
|
htSendData.Add(Column.IQ_TRAN_LASTNO_REQ.DATA.REG_NO, "");
|
|
htSendData.Add(Column.IQ_TRAN_LASTNO_REQ.DATA.RES_CD, "");
|
|
|
|
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.BizInqPort, 10000, htSendData, ref htRecvData, false);
|
|
if (sRet != UserCom.RST_OK)
|
|
{
|
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0259);
|
|
return sRet;
|
|
}
|
|
|
|
if (htRecvData[Column.IQ_TRAN_LASTNO_REQ.DATA.RES_CD].ToString() != "00")
|
|
{
|
|
//WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0259) + "\n\r ERROR CODE => " + htRecvData[Column.IQ_TRAN_LASTNO_REQ.DATA.RES_CD]);
|
|
sRet = UserCom.RST_ERR;
|
|
}
|
|
else
|
|
{
|
|
sLastTradeNo = htRecvData[Column.IQ_TRAN_LASTNO_REQ.DATA.TRADE_NO].ToString();
|
|
sLastRegNo = htRecvData[Column.IQ_TRAN_LASTNO_REQ.DATA.REG_NO].ToString();
|
|
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
|
|
|
|
#region 영수증 반품 대상 거래 데이터 서버 조회
|
|
/// <summary>
|
|
/// 영수증 반품 대상 거래 데이터 서버 조회
|
|
/// </summary>
|
|
/// <param name="sSaleDate"></param>
|
|
/// <param name="sPosNo"></param>
|
|
/// <param name="sTradeNo"></param>
|
|
/// <param name="SaleTime"></param>
|
|
/// <returns></returns>
|
|
public string SearchServerTran(string sSaleDate, string sPosNo, string sTradeNo, string SaleTime)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
bool bRet = false;
|
|
string sJuurnal = "";
|
|
|
|
try
|
|
{
|
|
// --------------------------------------------------------------------------------------------------------------------------------
|
|
// 거래 데이터 서버 조회
|
|
// --------------------------------------------------------------------------------------------------------------------------------
|
|
Hashtable htRecvData = new Hashtable();
|
|
|
|
sRet = ExecServerTranCallIrt(ItemConst.IRT_INQ_TYPE.TRAN_CALL, sSaleDate, sPosNo, sTradeNo, SaleTime, ref htRecvData, false);
|
|
if (sRet != UserCom.RST_OK)
|
|
{
|
|
return sRet;
|
|
}
|
|
|
|
if (htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.RES_CD].ToString() != "00" && htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.RES_CD].ToString() != "01")
|
|
{
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// 거래데이터
|
|
string sTranData = htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.TRAN_DATA].ToString();
|
|
m_cDataService.TranComplete();
|
|
|
|
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.TranDpst))
|
|
bRet = TranParserToDpst(aTranData[i]);
|
|
else if (aTranData[i].StartsWith(ItemConst.IRT_TRAN_TYPE.TranAdmt))
|
|
bRet = TranParserToAdmt(aTranData[i]);
|
|
else if (aTranData[i].StartsWith(ItemConst.IRT_TRAN_TYPE.TranGuestCnt))
|
|
bRet = TranParserToGuestCnt(aTranData[i]);
|
|
|
|
if (bRet == false)
|
|
{
|
|
m_cDataService.TranComplete();
|
|
return sRet;
|
|
}
|
|
}
|
|
// --------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
// --------------------------------------------------------------------------------------------------------------------------------
|
|
// 저널 데이터 서버 조회
|
|
// --------------------------------------------------------------------------------------------------------------------------------
|
|
htRecvData = new Hashtable();
|
|
|
|
sRet = ExecServerTranCallIrt(ItemConst.IRT_INQ_TYPE.JOURNAL_CALL, sSaleDate, sPosNo, sTradeNo, "", ref htRecvData, false);
|
|
if (sRet == UserCom.RST_OK)
|
|
{
|
|
if (htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.RES_CD].ToString() == "00")
|
|
{
|
|
sJuurnal = htRecvData[Column.IQ_TRAN_CALL_REQ.DATA.TRAN_DATA].ToString();
|
|
}
|
|
}
|
|
// --------------------------------------------------------------------------------------------------------------------------------
|
|
|
|
// --------------------------------------------------------------------------------------------------------------------------------
|
|
// 거래 저장
|
|
// --------------------------------------------------------------------------------------------------------------------------------
|
|
sRet = m_cTranService.TranDataRestore(new string[] { sJuurnal });
|
|
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);
|
|
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);
|
|
m_cDataService.TranComplete();
|
|
}
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 서버 시간 조회
|
|
/// <summary>
|
|
/// 서버 시간 조회
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string ServerSysDateTime()
|
|
{
|
|
Hashtable htRecvData = new Hashtable();
|
|
Hashtable htSendData = new Hashtable();
|
|
|
|
string sRet = UserCom.RST_ERR;
|
|
string sGetDate = "";
|
|
|
|
try
|
|
{
|
|
// 서버 조회
|
|
htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.SYSDATETIME);
|
|
htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.RES_CD, "");
|
|
htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.POS_HOUR, "");
|
|
htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.REG_NO, "");
|
|
htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.TRADE_NO, "");
|
|
htSendData.Add(Column.IQ_SYSDATE_REQ.DATA.SYS_YMDHMS, "");
|
|
|
|
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 5000, htSendData, ref htRecvData, false);
|
|
if (sRet == UserCom.RST_OK)
|
|
{
|
|
if (htRecvData[Column.IQ_SYSDATE_REQ.DATA.RES_CD].ToString() == "00")
|
|
{
|
|
sGetDate = htRecvData[Column.IQ_SYSDATE_REQ.DATA.SYS_YMDHMS].ToString();
|
|
|
|
// 서버시간 동기화 로그 추가(2017.07.12)
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Synchronizing local DateTime with serverside datetime(" + sGetDate + ") ... " );
|
|
|
|
if (sGetDate.Trim().Length == 14) BsUtil.SetSystemDateTime(sGetDate);
|
|
|
|
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
|
|
|
|
#region 프로그램 업데이트 목록 조회
|
|
/// <summary>
|
|
/// 프로그램 업데이트 목록 조회
|
|
/// </summary>
|
|
/// <param name="sKind"></param>
|
|
/// <param name="sDownDiv"></param>
|
|
/// <param name="aRecvData"></param>
|
|
/// <param name="htRecvData"></param>
|
|
/// <returns></returns>
|
|
public string PGMUpdate(string sKind, string sDownDiv, ref string[] aRecvData, ref Hashtable htRecvData)
|
|
{
|
|
Hashtable htSendData = new Hashtable();
|
|
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
try
|
|
{
|
|
// 서버 조회
|
|
htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.PGMUPDATE);
|
|
htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.FILE_GROUP, CmUtil.MidH(sKind, 0, 2));
|
|
htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.FILE_KIND, CmUtil.MidH(sKind, 2, 2));
|
|
htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.FILE_APP_TY, "0");
|
|
htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.FILE_YMDHMS, DateTime.Now.ToString("yyyyMMdd") + DateTime.Now.ToString("HHmmss"));
|
|
htSendData.Add(Column.IQ_PGMUPDATE_REQ.DATA.DOWN_DIV, sDownDiv);
|
|
|
|
//sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 10000, htSendData, ref htRecvData, false);
|
|
|
|
//sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CmsSvrIp, (int)m_cPosStatus.Base.KioskPort, 10000, htSendData, ref htRecvData, false);
|
|
|
|
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CmsSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 10000, htSendData, ref htRecvData, false);
|
|
|
|
/* 테스트용
|
|
htRecvData["VALUE"] = @"10|11|0|20190514|/data/Nftp_nhs/dev/CMBO/CDP/ITEM/|PCKR_002_ITEM_2019051400001.zip|2019051400001|1|20190514|0818|0000|20190514"
|
|
+@"#~10|12|0|20190502|/data/Nftp_nhs/dev/CMBO/CDP/OPTN/|PCKR_002_OPTN_2019050200001.zip|2019050200001|1|20190502|0818|0000|20190502"
|
|
+ @"#~10|14|0|20190401|/data/Nftp_nhs/dev/CMBO/CDP/CATE/|PCKR_002_CATE_2019040100001.zip|2019040100001|1|20190401|0818|0000|20190401";
|
|
*/
|
|
|
|
if (sRet == UserCom.RST_OK)
|
|
{
|
|
if (htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.RES_CD].ToString() == "00")
|
|
{
|
|
aRecvData = htRecvData[Column.IQ_PGMUPDATE_RSP.DATA.VALUE].ToString().Split(new string[] { "#~" }, StringSplitOptions.None);
|
|
|
|
sRet = UserCom.RST_OK;
|
|
}
|
|
else
|
|
{
|
|
sRet = UserCom.RST_ERR;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
}
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 파일 변경 완료 요청
|
|
/// <summary>
|
|
/// 파일 변경 완료 요청
|
|
/// </summary>
|
|
/// <param name="sKind"></param>
|
|
/// <param name="sAppType"></param>
|
|
/// <param name="sFileName"></param>
|
|
/// <param name="sFileSeq"></param>
|
|
/// <param name="sFileVer"></param>
|
|
/// <param name="sDownDiv"></param>
|
|
/// <param name="sDeployDate"></param>
|
|
/// <param name="sDeployDT"></param>
|
|
/// <returns></returns>
|
|
/// 2019-03-29 - 1997fx11 : FTP에서 다운받은 내용의 수신상태를 전송 (참조)
|
|
public string PGMUpdate_Complete(string sKind, string sAppType, string sFileName, string sFileSeq, string sFileVer, string sDownDiv, string sDeployDate, string sDeployDT)
|
|
{
|
|
Hashtable htSendData = new Hashtable();
|
|
Hashtable htRecvData = new Hashtable();
|
|
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
try
|
|
{
|
|
if (sFileVer.Trim() == "") return sRet;
|
|
|
|
// 서버 조회
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.PGMUPDATECOMPLTE);
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_GROUP, CmUtil.MidH(sKind, 0, 2));
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_KIND, CmUtil.MidH(sKind, 2, 2));
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_APP_TY, sAppType);
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_NM, sFileName);
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_VER, sFileVer);
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.FILE_SEQ, sFileSeq);
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.RES_CD, "");
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.DOWN_DIV, sDownDiv);
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.DEPLOY_DT, sDeployDate);
|
|
htSendData.Add(Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.REG_DT, sDeployDT);
|
|
|
|
// 2019-05-15 - 1997fx11 : IP, Port 변경.
|
|
//sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 10000, htSendData, ref htRecvData, false);
|
|
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CmsSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 10000, htSendData, ref htRecvData, false);
|
|
if (sRet == UserCom.RST_OK)
|
|
{
|
|
if (htRecvData[Column.IQ_PGMUPDATE_COMPLETE_REQ.DATA.RES_CD].ToString() == "00")
|
|
{
|
|
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
|
|
|
|
#region 프로그램 적용 및 이력 관리
|
|
/// <summary>
|
|
/// 프로그램 이력 관리
|
|
/// </summary>
|
|
/// <param name="sKind"></param>
|
|
/// <param name="sFileSeq"></param>
|
|
/// <param name="sFileVer"></param>
|
|
/// <param name="sFileNm"></param>
|
|
/// <param name="sApplyDate"></param>
|
|
/// <param name="sApplyTime"></param>
|
|
/// <param name="sApplyType"></param>
|
|
/// <param name="sDeployDate"></param>
|
|
/// <param name="sDeployTime"></param>
|
|
/// <param name="sFTP_IP"></param>
|
|
/// <param name="sFTP_Port"></param>
|
|
/// <param name="sFTP_ID"></param>
|
|
/// <param name="sFTP_Pwd"></param>
|
|
/// <param name="sFTP_FILEPATH"></param>
|
|
/// <param name="sDOWN_DIV"></param>
|
|
/// <param name="sDeployDT"></param>
|
|
/// <param name="sUseYn"></param>
|
|
/// <returns></returns>
|
|
/// 2019-03-28 - 1997fx11 : FTP 에서 Down받은 내용의 이력을 저장 (참조)
|
|
public string PGMUpdate_History_Isert(string sKind, string sFileSeq, string sFileVer, string sFileNm, string sApplyDate, string sApplyTime, string sApplyType, string sDeployDate, string sDeployTime, string sFTP_IP, string sFTP_Port, string sFTP_ID, string sFTP_Pwd, string sFTP_FILEPATH, string sDOWN_DIV, string sDeployDT, string sUseYn)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
int iRet = -1;
|
|
|
|
string sLogData = "";
|
|
string sAppTypeData = "";
|
|
|
|
try
|
|
{
|
|
#region Log 생성
|
|
try
|
|
{
|
|
switch (sApplyType)
|
|
{
|
|
case ItemConst.PGM_DOWN_STATE.DownLoad_OK:
|
|
sAppTypeData = "DownLoad_OK";
|
|
break;
|
|
case ItemConst.PGM_DOWN_STATE.DownLoad_Fail:
|
|
sAppTypeData = "DownLoad_Fail";
|
|
break;
|
|
case ItemConst.PGM_DOWN_STATE.Update_OK:
|
|
sAppTypeData = "Update_OK";
|
|
break;
|
|
case ItemConst.PGM_DOWN_STATE.Update_Fail:
|
|
sAppTypeData = "Update_Fail";
|
|
break;
|
|
}
|
|
|
|
sLogData = string.Format("FileName:{0}, FileVersion:{1}, FileSeq:{2}, ApplyDate:{3}, ApplyTime:{4}, State:{5}", sFileNm, sFileVer, sFileSeq, sApplyDate, sApplyTime, sAppTypeData);
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", sLogData);
|
|
}
|
|
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
|
|
|
|
string sQuery = "";
|
|
sQuery = "";
|
|
sQuery += "IF EXISTS(SELECT CMP_CD \n";
|
|
sQuery += " FROM POSMST..MST_PGM_VER_NEW \n";
|
|
sQuery += " WHERE \n";
|
|
sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n";
|
|
sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n";
|
|
sQuery += " AND KIND = '" + sKind.Trim() + "' \n";
|
|
sQuery += " AND FILE_SEQ = '" + sFileSeq.Trim() + "' \n";
|
|
sQuery += " AND FILE_VER = '" + sFileVer.Trim() + "') \n";
|
|
sQuery += " BEGIN \n";
|
|
sQuery += " UPDATE POSMST..MST_PGM_VER_NEW \n";
|
|
sQuery += " SET \n";
|
|
sQuery += " FILE_NM = '" + sFileNm.Trim() + "' \n";
|
|
sQuery += " , APPLY_DATE = '" + sApplyDate.Trim() + "' \n";
|
|
sQuery += " , APPLY_TIME = '" + sApplyTime.Trim() + "' \n";
|
|
sQuery += " , APP_TYPE = '" + sApplyType + "' \n";
|
|
sQuery += " , DEPLOY_DATE = '" + sDeployDate.Trim() + "' \n";
|
|
sQuery += " , DEPLOY_TIME = '" + sDeployTime.Trim() + "' \n";
|
|
sQuery += " , FTP_IP = '" + sFTP_IP.Trim() + "' \n";
|
|
sQuery += " , FTP_PORT = '" + sFTP_Port.Trim() + "' \n";
|
|
sQuery += " , FTP_ID = '" + sFTP_ID.Trim() + "' \n";
|
|
sQuery += " , FTP_PWD = '" + sFTP_Pwd.Trim() + "' \n";
|
|
sQuery += " , FTP_FILEPATH = '" + sFTP_FILEPATH.Trim() + "' \n";
|
|
sQuery += " , DOWN_DIV = '" + sDOWN_DIV.Trim() + "' \n";
|
|
sQuery += " , UPD_DT = CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 108), ':', '') \n";
|
|
sQuery += " , DEPLOY_DT = '" + sDeployDT.Trim() + "' \n";
|
|
sQuery += " , USE_YN = '" + sUseYn.Trim() + "' \n";
|
|
sQuery += " WHERE \n"; ;
|
|
sQuery += " CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n";
|
|
sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n";
|
|
sQuery += " AND KIND = '" + sKind.Trim() + "' \n";
|
|
sQuery += " AND FILE_SEQ = '" + sFileSeq.Trim() + "' \n";
|
|
sQuery += " AND FILE_VER = '" + sFileVer.Trim() + "' \n";
|
|
sQuery += " END \n";
|
|
sQuery += "ELSE \n";
|
|
sQuery += " BEGIN \n";
|
|
sQuery += " INSERT INTO POSMST..MST_PGM_VER_NEW \n";
|
|
sQuery += " (CMP_CD, STOR_CD, POS_NO, KIND, FILE_SEQ, FILE_VER, FILE_NM, APPLY_DATE, APPLY_TIME, APP_TYPE, DEPLOY_DATE, DEPLOY_TIME, FTP_IP, FTP_PORT, FTP_ID, FTP_PWD, FTP_FILEPATH, DOWN_DIV, REG_DT, DEPLOY_DT, USE_YN) \n";
|
|
sQuery += " VALUES( \n";
|
|
sQuery += " '" + m_cPosStatus.Base.CmpCd + "' \n";
|
|
sQuery += " , '" + m_cPosStatus.Base.StoreNo + "' \n";
|
|
sQuery += " , '" + m_cPosStatus.Base.PosNo + "' \n";
|
|
sQuery += " , '" + sKind.Trim() + "' \n";
|
|
sQuery += " , '" + sFileSeq.Trim() + "' \n";
|
|
sQuery += " , '" + sFileVer.Trim() + "' \n";
|
|
sQuery += " , '" + sFileNm.Trim() + "' \n";
|
|
sQuery += " , '" + sApplyDate.Trim() + "' \n";
|
|
sQuery += " , '" + sApplyTime.Trim() + "' \n";
|
|
sQuery += " , '" + sApplyType + "' \n";
|
|
sQuery += " , '" + sDeployDate.Trim() + "' \n";
|
|
sQuery += " , '" + sDeployTime.Trim() + "' \n";
|
|
sQuery += " , '" + sFTP_IP.Trim() + "' \n";
|
|
sQuery += " , '" + sFTP_Port.Trim() + "' \n";
|
|
sQuery += " , '" + sFTP_ID.Trim() + "' \n";
|
|
sQuery += " , '" + sFTP_Pwd.Trim() + "' \n";
|
|
sQuery += " , '" + sFTP_FILEPATH.Trim() + "' \n";
|
|
sQuery += " , '" + sDOWN_DIV.Trim() + "' \n";
|
|
sQuery += " , CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 108), ':', '') \n";
|
|
sQuery += " , '" + sDeployDT.Trim() + "' \n";
|
|
sQuery += " , '" + sUseYn.Trim() + "' \n";
|
|
sQuery += " ) \n";
|
|
sQuery += " END \n";
|
|
sQuery = sQuery.Replace("\t", " ");
|
|
|
|
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
|
|
iRet = m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery });
|
|
|
|
if (iRet == 1) 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
|
|
|
|
#region 결락 조회
|
|
/// <summary>
|
|
/// 결락 조회
|
|
/// </summary>
|
|
/// <param name="sSaleDate"></param>
|
|
/// <param name="sPosNo"></param>
|
|
/// <param name="sTranDiv"></param>
|
|
/// <param name="sLastTradeNo"></param>
|
|
/// <param name="sMissTranNo"></param>
|
|
/// <returns></returns>
|
|
public string SearchMissTran(string sSaleDate, string sPosNo, string sTranDiv, string sLastTradeNo, ref string sMissTranNo)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
Hashtable htRecvData = new Hashtable();
|
|
Hashtable htSendData = new Hashtable();
|
|
|
|
try
|
|
{
|
|
// 거래 데이터 서버 조회
|
|
htSendData.Add(Column.IQ_MISS_TRANNO_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.MISS_TRAN_INQ);
|
|
htSendData.Add(Column.IQ_MISS_TRANNO_REQ.DATA.SALE_DT, sSaleDate);
|
|
htSendData.Add(Column.IQ_MISS_TRANNO_REQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo);
|
|
htSendData.Add(Column.IQ_MISS_TRANNO_REQ.DATA.POS_NO, sPosNo);
|
|
htSendData.Add(Column.IQ_MISS_TRANNO_REQ.DATA.TRADE_DIV, sTranDiv);
|
|
htSendData.Add(Column.IQ_MISS_TRANNO_REQ.DATA.REG_NO, sLastTradeNo);
|
|
htSendData.Add(Column.IQ_MISS_TRANNO_REQ.DATA.REG_NO_DATA, "");
|
|
htSendData.Add(Column.IQ_MISS_TRANNO_REQ.DATA.RES_CD, "");
|
|
|
|
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.MissChkPort, 10000, htSendData, ref htRecvData, false);
|
|
if (sRet != UserCom.RST_OK)
|
|
{
|
|
return sRet;
|
|
}
|
|
|
|
if (htRecvData[Column.IQ_MISS_TRANNO_REQ.DATA.RES_CD].ToString() != "00")
|
|
{
|
|
sRet = UserCom.RST_ERR;
|
|
}
|
|
else
|
|
{
|
|
sMissTranNo = htRecvData[Column.IQ_MISS_TRANNO_REQ.DATA.REG_NO_DATA].ToString().Trim();
|
|
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
|
|
|
|
|
|
#region 결락 거래번호 재전송 설정
|
|
/// <summary>
|
|
/// 결락 거래번호 재전송 설정
|
|
/// </summary>
|
|
/// <param name="sTranDiv"></param>
|
|
/// <param name="sCmpCD"></param>
|
|
/// <param name="sStorCD"></param>
|
|
/// <param name="sSaleDate"></param>
|
|
/// <param name="sPosNo"></param>
|
|
/// <param name="sTradeNo"></param>
|
|
/// <returns></returns>
|
|
public string SetMissTran(string sTranDiv, string sCmpCD, string sStorCD, string sSaleDate, string sPosNo, string sTradeNo)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
int iRet = -1;
|
|
|
|
try
|
|
{
|
|
string sQuery = "";
|
|
sQuery = "";
|
|
|
|
if (sTranDiv == "0")
|
|
{
|
|
// 일반거래
|
|
sQuery += "UPDATE POSLOG..TR_SALE_HEADER \n";
|
|
sQuery += "SET SEND_YN = '0' \n";
|
|
sQuery += ", UPD_DATE = CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 114), ':', '') \n";
|
|
sQuery += "WHERE \n";
|
|
sQuery += " CMP_CD = '" + sCmpCD + "' \n";
|
|
sQuery += "AND STOR_CD = '" + sStorCD + "' \n";
|
|
sQuery += "AND SALE_DT = '" + sSaleDate + "' \n";
|
|
sQuery += "AND POS_NO = '" + sPosNo + "' \n";
|
|
sQuery += "AND TRADE_NO = '" + sTradeNo + "' \n";
|
|
}
|
|
else
|
|
{
|
|
// 기타거래
|
|
sQuery += "UPDATE POSLOG..ETC_SALE_HEADER \n";
|
|
sQuery += "SET SEND_YN = '0' \n";
|
|
sQuery += ", UPD_DATE = CONVERT(VARCHAR(8), GETDATE(), 112) + REPLACE(CONVERT(VARCHAR(8), GETDATE(), 114), ':', '') \n";
|
|
sQuery += "WHERE \n";
|
|
sQuery += " CMP_CD = '" + sCmpCD + "' \n";
|
|
sQuery += "AND STOR_CD = '" + sStorCD + "' \n";
|
|
sQuery += "AND SALE_DT = '" + sSaleDate + "' \n";
|
|
sQuery += "AND POS_NO = '" + sPosNo + "' \n";
|
|
sQuery += "AND REG_NO = '" + sTradeNo + "' \n";
|
|
}
|
|
sQuery = sQuery.Replace("\t", " ");
|
|
|
|
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
|
|
iRet = m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery });
|
|
|
|
if (iRet == 1) 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
|
|
|
|
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start
|
|
#region 고객 구매이력 정보 조회
|
|
/// <summary>
|
|
/// 고객 구매이력 정보 조회
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
|
|
//#20180524 구매이력조회 단골여부 전문추가 start,phj
|
|
//기존
|
|
//public string ServerBuyHist(string sHppMembNo, ref string sGetData)
|
|
//변경
|
|
|
|
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180528
|
|
//쿠폰 발송 횟수 제한 기능
|
|
//기존
|
|
//public string ServerBuyHist(string sHppMembNo, string sRegularYN, ref string sGetData)
|
|
//변경
|
|
public string ServerBuyHist(string sHppMembNo, string sRegularYN, string sCpnSendCnt, ref string sGetData)
|
|
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180528
|
|
|
|
//#20180524 구매이력조회 단골여부 전문추가 end,phj
|
|
{
|
|
Hashtable htRecvData = new Hashtable();
|
|
Hashtable htSendData = new Hashtable();
|
|
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
try
|
|
{
|
|
// 서버 조회
|
|
htSendData.Add(Column.IQ_HPPMEMB_BUY_HIST_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.HPMEMB_BUY_HIST);
|
|
htSendData.Add(Column.IQ_HPPMEMB_BUY_HIST_REQ.DATA.RES_CD, "");
|
|
htSendData.Add(Column.IQ_HPPMEMB_BUY_HIST_REQ.DATA.HP_MEMB_NO, sHppMembNo);
|
|
//#20180524 구매이력조회 단골여부 전문추가 start,phj
|
|
htSendData.Add(Column.IQ_HPPMEMB_BUY_HIST_REQ.DATA.HP_REGULAR_YN, sRegularYN);
|
|
//#20180524 구매이력조회 단골여부 전문추가 end,phj
|
|
|
|
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180528
|
|
//쿠폰 발송 횟수 제한 기능
|
|
htSendData.Add(Column.IQ_HPPMEMB_BUY_HIST_REQ.DATA.CPN_SEND_CNT, sCpnSendCnt);
|
|
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180528
|
|
|
|
//htSendData.Add(Column.IQ_HPPMEMB_BUY_HIST_REQ.DATA.HP_MEMB_NO, "1039055252");
|
|
htSendData.Add(Column.IQ_HPPMEMB_BUY_HIST_REQ.DATA.BUYDATA, "");
|
|
|
|
//#15525 고객구매이력 수정 요청 start
|
|
//TEST
|
|
//sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, "10.0.40.134", (int)m_cPosStatus.Base.SysInfoPort, 5000, htSendData, ref htRecvData, true);
|
|
//REAL
|
|
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.SysInfoPort, 5000, htSendData, ref htRecvData, false);
|
|
//#15525 고객구매이력 수정 요청 end
|
|
|
|
//sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, "10.0.40.134", (int)m_cPosStatus.Base.SysInfoPort, 5000, htSendData, ref htRecvData, true);
|
|
if (sRet == UserCom.RST_OK)
|
|
{
|
|
if (htRecvData[Column.IQ_HPPMEMB_BUY_HIST_REQ.DATA.RES_CD].ToString() == "00")
|
|
{
|
|
sGetData = htRecvData[Column.IQ_HPPMEMB_BUY_HIST_REQ.DATA.BUYDATA].ToString();
|
|
|
|
if (sGetData.Trim().Length > 0)
|
|
{
|
|
sRet = UserCom.RST_OK;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
sRet = UserCom.RST_ERR;
|
|
}
|
|
}
|
|
}
|
|
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
|
|
//#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end
|
|
|
|
//#20180605 해피오더 개선 start
|
|
|
|
//즉시주문, 예약주문 알림
|
|
#region 해피오더 건수 조회
|
|
/// <summary>
|
|
/// 해피오더 건수 조회
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public int HappyOrderCntChk(string sSaleDate = "")
|
|
{
|
|
string sReqData = string.Empty;
|
|
string sRespData = string.Empty;
|
|
string sReturn = string.Empty;
|
|
string m_sHappyOrderURL = string.Empty;
|
|
|
|
int iOrderCnt = 0;
|
|
|
|
int iRet = 0;
|
|
|
|
Hashtable htRspData = null;
|
|
|
|
try
|
|
{
|
|
// 승인업체 코드 조회
|
|
string sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.ORDER_ITEM, ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD);
|
|
// 승인 URL 조회
|
|
m_sHappyOrderURL = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP);
|
|
|
|
//sReqData = string.Format("storeCode={0}&deviceType=POS", "11101");
|
|
//일자가 있는 경우 해당 일자 건수 조회
|
|
if (sSaleDate != "")
|
|
{
|
|
sReqData = string.Format("storeCode={0}&deviceType=POS&orderDate={1}", m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.SaleDate);
|
|
}
|
|
else
|
|
{
|
|
sReqData = string.Format("storeCode={0}&deviceType=POS", m_cPosStatus.Base.StoreNo);
|
|
}
|
|
|
|
//#20180605 해피오더 개선 start - 20180618
|
|
//기존
|
|
/*
|
|
iRet = this.HttpJsonGET_SendReceive(m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_STATUS_COUNT, sReqData, ref sRespData, ref htRspData);
|
|
*/
|
|
|
|
//변경
|
|
if (m_cPosStatus.Base.BrandCd == PosConst.MST_BRAND_CODE.PC_PB)
|
|
{
|
|
iRet = this.HttpJsonGET_SendReceive(m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_STATUS_COUNT_PB, sReqData, ref sRespData, ref htRspData);
|
|
}
|
|
else
|
|
{
|
|
iRet = this.HttpJsonGET_SendReceive(m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_STATUS_COUNT, sReqData, ref sRespData, ref htRspData);
|
|
}
|
|
//#20180605 해피오더 개선 end - 20180618
|
|
|
|
if (iRet == BaseCom.OK)
|
|
{
|
|
iOrderCnt = this.SelectHappyOrderCountByOrderStatus(JsonConvert.DeserializeObject<Hashtable[]>(sRespData), ref htRspData);
|
|
}
|
|
}
|
|
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);
|
|
}
|
|
|
|
return iOrderCnt;
|
|
}
|
|
#endregion
|
|
|
|
#region Http 전송 모듈
|
|
/// <summary>
|
|
/// 해피오더 GET방식 Request
|
|
/// </summary>
|
|
/// <param name="sUrl">URL</param>
|
|
/// <param name="sWorkType">메시지 타입</param>
|
|
/// <param name="sReqData">요청Data</param>
|
|
/// <param name="sRespJsonData">응답Data(Json)</param>
|
|
/// <returns></returns>
|
|
public int HttpJsonGET_SendReceive(string sUrl, string sWorkType, string sReqData, ref string sRespJsonData, ref Hashtable htRspData)
|
|
{
|
|
int iRet = BaseCom.NG;
|
|
string sRespString = string.Empty;
|
|
|
|
try
|
|
{
|
|
if (sUrl.Trim() == "") return iRet;
|
|
|
|
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(sUrl + sWorkType + "?" + sReqData);
|
|
req.Method = "GET";
|
|
|
|
using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse())
|
|
{
|
|
Stream stream = resp.GetResponseStream();
|
|
StreamReader streamReader = new StreamReader(stream, Encoding.GetEncoding("UTF-8"));
|
|
sRespString = streamReader.ReadToEnd();
|
|
}
|
|
|
|
//건수 조회 응답값 로그 추가
|
|
UserLog.WriteLogFile(UserCom.LOG_DEBUG,
|
|
UserCom.WARNING_LEVEL,
|
|
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 (함수명))
|
|
sRespString);
|
|
|
|
Hashtable temp = JsonConvert.DeserializeObject<Hashtable>(sRespString);
|
|
|
|
foreach (string key in temp.Keys)
|
|
{
|
|
string jsonString = temp[key].ToString();
|
|
if (key.Equals("status"))
|
|
{
|
|
Hashtable htHeader = JsonConvert.DeserializeObject<Hashtable>(jsonString);
|
|
if (htHeader["status"].ToString().Equals("200"))
|
|
{
|
|
iRet = BaseCom.OK;
|
|
}
|
|
}
|
|
|
|
// 20180306 수신 데이터 sample
|
|
// http://api.celectory.com/api/ // 리얼
|
|
// {"status":{"status":200,"code":"20000","message":"조회 완료","devMessage":"success","moreInfo":null,"orderNum":null},"orderStatusCount":[{"status":"0","count":1,"type":"5"},{"status":"8","count":110,"type":"1"},{"status":"8","count":453,"type":"2"},{"status":"8","count":223,"type":"3"},{"status":"8","count":122,"type":"6"},{"status":"2000","count":2,"type":"5"},{"status":"2008","count":31,"type":"2"},{"status":"2008","count":10,"type":"3"},{"status":"2008","count":46,"type":"6"},{"status":"9007","count":8,"type":"5"},{"status":"9009","count":126,"type":"5"},{"status":"300000","count":42,"type":"1"},{"status":"300000","count":177,"type":"2"},{"status":"300000","count":501,"type":"3"},{"status":"300000","count":279,"type":"5"},{"status":"300000","count":110,"type":"6"}]}
|
|
// http://121.254.240.198:8092/api/ // 개발
|
|
// {"status":{"status":200,"code":"20000","message":"조회 완료","devMessage":"success","moreInfo":null,"orderNum":null},"orderStatusCount":[{"status":"8","count":1,"type":"3"},{"status":"2008","count":1,"type":"3"},{"status":"9007","count":3,"type":"5"},{"status":"9009","count":12,"type":"5"},{"status":"300000","count":25,"type":"3"},{"status":"300000","count":8,"type":"5"}],"deliverySupport":"Y"}
|
|
|
|
else if (key.Equals("deliverySupport"))
|
|
{
|
|
if (CmUtil.IsNull(htRspData))
|
|
{
|
|
htRspData = new Hashtable();
|
|
}
|
|
htRspData.Add(key.ToString(), temp[key].ToString());
|
|
}
|
|
else if (key.Equals("orderStatusCount"))
|
|
{
|
|
sRespJsonData = jsonString;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.ToString());
|
|
}
|
|
|
|
return iRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 해피오더 주문 건수 파싱
|
|
/// <summary>
|
|
/// 해피오더 주문 건수 파싱
|
|
/// </summary>
|
|
/// <param name="sRespData"></param>
|
|
/// <returns></returns>
|
|
public int SelectHappyOrderCountByOrderStatus(Hashtable[] htOrderStatus, ref Hashtable htRspData)
|
|
{
|
|
// 주문접수-일반
|
|
int iOrderRegNormalCnt = 0;
|
|
// 주문접수-배달
|
|
int iOrderRegDeliveryCnt = 0;
|
|
// 주문접수-예약
|
|
int iOrderRegReservedCnt = 0;
|
|
// 총 주문접수 건수
|
|
int iTotOrderRegCnt = 0;
|
|
int iProductReadyCnt = 0;
|
|
int iPreReservedCnt = 0;
|
|
int iPickupWaitCnt = 0;
|
|
int iPickupDelayCnt = 0;
|
|
int iNoPickupAndDelayCnt = 0;
|
|
int iDeliveryRequestCnt = 0;
|
|
int iDeliveryRegCnt = 0;
|
|
int iDeliveryingCnt = 0;
|
|
|
|
int iDeliveryDirectCnt = 0;
|
|
|
|
//즉시픽업 건수
|
|
int iOrdCnt_Direct = 0;
|
|
//즉시배달 건수
|
|
int iOrdCnt_Reserv = 0;
|
|
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
|
|
int iDeliveryProductReadyCnt = 0;
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
|
|
|
|
int iRtnCnt = 0;
|
|
|
|
try
|
|
{
|
|
foreach (Hashtable htData in htOrderStatus)
|
|
{
|
|
string sOrderType = htData["type"].ToString();
|
|
|
|
switch (htData["status"].ToString())
|
|
{
|
|
case ItemConst.HAPPYORDER_STATUS.ORDER_REG: // "4" : 주문접수
|
|
// 일반 주문건수 계산
|
|
if (sOrderType == ItemConst.ORDER_TYPE.SHOP_DIRECT ||
|
|
sOrderType == ItemConst.ORDER_TYPE.SHOP_TIME)
|
|
{
|
|
iOrderRegNormalCnt += int.Parse(htData["count"].ToString());
|
|
}
|
|
// 배달 주문건수 계산
|
|
else if (sOrderType == ItemConst.ORDER_TYPE.INNER_DELIVERY ||
|
|
sOrderType == ItemConst.ORDER_TYPE.OUTTER_DELIVERY)
|
|
{
|
|
iOrderRegDeliveryCnt += int.Parse(htData["count"].ToString());
|
|
}
|
|
// 예약 주문건수 계산
|
|
else if (sOrderType == ItemConst.ORDER_TYPE.RESERVED_ORDER ||
|
|
sOrderType == ItemConst.ORDER_TYPE.PRE_RESERVED)
|
|
{
|
|
iOrderRegReservedCnt += int.Parse(htData["count"].ToString());
|
|
}
|
|
|
|
// 즉시픽업 건수 계산
|
|
else if (sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER)
|
|
{
|
|
iOrdCnt_Direct += int.Parse(htData["count"].ToString());
|
|
}
|
|
// 즉시배달 건수 계산
|
|
else if (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)
|
|
{
|
|
iOrdCnt_Reserv += int.Parse(htData["count"].ToString());
|
|
}
|
|
|
|
break;
|
|
case ItemConst.HAPPYORDER_STATUS.PRODUCT_READY: // "5" : 상품준비
|
|
//#20180905 즉시픽업,즉시배달 제외 start
|
|
if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
|
|
//#20180905 즉시픽업,즉시배달 제외 end
|
|
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
|
|
//기존
|
|
//iProductReadyCnt += int.Parse(htData["count"].ToString());
|
|
//변경
|
|
if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY)
|
|
{
|
|
iProductReadyCnt += int.Parse(htData["count"].ToString());
|
|
}
|
|
else
|
|
{
|
|
iDeliveryProductReadyCnt += int.Parse(htData["count"].ToString());
|
|
}
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
|
|
|
|
break;
|
|
case ItemConst.HAPPYORDER_STATUS.PRE_RESERVED: // "6" : 사전예약
|
|
//#20180905 즉시픽업,즉시배달 제외 start
|
|
if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
|
|
//#20180905 즉시픽업,즉시배달 제외 end
|
|
iPreReservedCnt += int.Parse(htData["count"].ToString());
|
|
break;
|
|
case ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT: // "7" : 픽업대기
|
|
//#20180905 즉시픽업,즉시배달 제외 start
|
|
if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
|
|
//#20180905 즉시픽업,즉시배달 제외 end
|
|
iPickupWaitCnt += int.Parse(htData["count"].ToString());
|
|
break;
|
|
case ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY: // "2000" : 픽업지연
|
|
//#20180905 즉시픽업,즉시배달 제외 start
|
|
if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
|
|
//#20180905 즉시픽업,즉시배달 제외 end
|
|
iPickupDelayCnt += int.Parse(htData["count"].ToString());
|
|
break;
|
|
case ItemConst.HAPPYORDER_STATUS.NO_PICKUP_AND_DELAY: // "2018" : 픽업지연미픽업
|
|
//#20180905 즉시픽업,즉시배달 제외 start
|
|
if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
|
|
//#20180905 즉시픽업,즉시배달 제외 end
|
|
iNoPickupAndDelayCnt += int.Parse(htData["count"].ToString());
|
|
break;
|
|
case ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ: // "9004" : 배달요청
|
|
//#20180905 즉시픽업,즉시배달 제외 start
|
|
if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
|
|
//#20180905 즉시픽업,즉시배달 제외 end
|
|
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
|
|
if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue;
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
|
|
|
|
iDeliveryRequestCnt += int.Parse(htData["count"].ToString());
|
|
break;
|
|
case ItemConst.HAPPYORDER_STATUS.DELIVERY_REG: // "9005" : 배달접수
|
|
//#20180905 즉시픽업,즉시배달 제외 start
|
|
if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
|
|
//#20180905 즉시픽업,즉시배달 제외 end
|
|
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
|
|
if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue;
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
|
|
|
|
iDeliveryRegCnt += int.Parse(htData["count"].ToString());
|
|
break;
|
|
case ItemConst.HAPPYORDER_STATUS.DELIVERY_ING: // "9007" : 배달중
|
|
//#20180905 즉시픽업,즉시배달 제외 start
|
|
if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
|
|
//#20180905 즉시픽업,즉시배달 제외 end
|
|
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
|
|
if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue;
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
|
|
|
|
iDeliveryingCnt += int.Parse(htData["count"].ToString());
|
|
break;
|
|
case ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT: // "9003" : 직접배달
|
|
//#20180905 즉시픽업,즉시배달 제외 start
|
|
if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
|
|
//#20180905 즉시픽업,즉시배달 제외 end
|
|
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
|
|
if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue;
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
|
|
|
|
iDeliveryDirectCnt += int.Parse(htData["count"].ToString());
|
|
break;
|
|
}
|
|
}
|
|
|
|
iRtnCnt = iOrderRegNormalCnt + iOrderRegDeliveryCnt + iOrderRegReservedCnt +
|
|
iProductReadyCnt +
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
|
|
iDeliveryProductReadyCnt +
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
|
|
iPreReservedCnt + iPickupWaitCnt + iPickupDelayCnt +
|
|
iNoPickupAndDelayCnt + iDeliveryRequestCnt + iDeliveryRegCnt + iDeliveryingCnt;
|
|
|
|
iTotOrderRegCnt = iOrderRegNormalCnt + iOrderRegDeliveryCnt + iOrderRegReservedCnt;
|
|
|
|
// 해피오더 일반 주문접수 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderRegCnt = Convert.ToString(iOrderRegNormalCnt);
|
|
// 해피오더 예약 주문접수 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderReservedRegCnt = Convert.ToString(iOrderRegReservedCnt);
|
|
// 해피오더 배달 주문접수 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderDeliveryOrderRegCnt = Convert.ToString(iOrderRegDeliveryCnt);
|
|
// 해피오더 총 주문접수 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderTotRegCnt = Convert.ToString(iTotOrderRegCnt);
|
|
|
|
// 해피오더 상품준비 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderProductReadyCnt = Convert.ToString(iProductReadyCnt);
|
|
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
|
|
m_cPosStatus.Sale.HappyOrderDeliveryProductReadyCnt = Convert.ToString(iDeliveryProductReadyCnt);
|
|
//#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
|
|
|
|
|
|
// 해피오더 픽업대기 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderPickupWaitCnt = Convert.ToString(iPickupWaitCnt);
|
|
// 해피오더 픽업지연 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderPickupDelayCnt = Convert.ToString(iPickupDelayCnt);
|
|
// 해피오더 픽업지연미픽업 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderNoPickupAndDelayCnt = Convert.ToString(iNoPickupAndDelayCnt);
|
|
// 해피오더 배달요청 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderDeliveryRequestCnt = Convert.ToString(iDeliveryRequestCnt);
|
|
// 해피오더 배달접수 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderDeliveryRegCnt = Convert.ToString(iDeliveryRegCnt);
|
|
|
|
// 해피오더 직접배달 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderDeliveryDirectCnt = Convert.ToString(iDeliveryDirectCnt);
|
|
|
|
// 해피오더 배달중 건수 갱신
|
|
m_cPosStatus.Sale.HappyOrderDeliveryingCnt = Convert.ToString(iDeliveryingCnt);
|
|
|
|
//grayber@20180306 해피오더 주문가능 상태 추가 start - 해피오더 배달 가능 상태 전역변수에 값 설정
|
|
m_cPosStatus.Sale.DeliverySupport = string.Empty; // 기본값 string.Empty
|
|
if (CmUtil.IsNull(htRspData) != true)
|
|
{
|
|
if (CmUtil.IsNull(htRspData["deliverySupport"]) != true)
|
|
{// 전역변수에 값 추가
|
|
m_cPosStatus.Sale.DeliverySupport = htRspData["deliverySupport"].ToString(); // Y:N
|
|
}
|
|
}
|
|
//System.Diagnostics.Debug.WriteLine(DateTime.Now.ToShortTimeString() + " ▶▶▶ m_cPosStatus.Sale.DeliverySupport:" + m_cPosStatus.Sale.DeliverySupport); // Debug output console
|
|
//grayber@20180306 해피오더 주문가능 상태 추가 end
|
|
|
|
// 즉시픽업 건수
|
|
m_cPosStatus.Sale.HappyOrderDirectCnt = Convert.ToString(iOrdCnt_Direct);
|
|
// 즉시배달 건수
|
|
m_cPosStatus.Sale.HappyOrderReservCnt = Convert.ToString(iOrdCnt_Reserv);
|
|
}
|
|
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);
|
|
}
|
|
|
|
return iRtnCnt;
|
|
}
|
|
#endregion
|
|
|
|
//#20180605 해피오더 개선 end
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|