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

506 lines
28 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using Newtonsoft.Json;
using Cosmos.Common;
using Cosmos.UserFrame;
using Cosmos.CommonManager;
using Cosmos.ServiceProvider;
namespace Cosmos.Service
{
class DmbIF : IDataServiceUs
{
private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
private PosStatus m_cPosStatus = new PosStatus(); //기본정보 참조
private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체)
INetworkJSON m_cNetworkJson;
string m_sDmbHeader = "";
Hashtable m_htDmbBody = new Hashtable();
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
private TcpSocket m_cDtSocket = null;
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end
public DmbIF()
{
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
m_cNetworkJson = (INetworkJSON)sManager.InitServiceInstance(ServiceLists.AGENT_NETWORK.DLL, ServiceLists.AGENT_NETWORK.NETWORK_JSON);
}
/// <summary>
/// IRT 전송
/// </summary>
/// <param name="aParam"></param>
/// <returns></returns>
public string Execute(string[] aParam)
{
string sRet = UserCom.RST_ERR;
string sReqHeader = "";
string sReqBody = "";
string sReceivedData = "";
try
{
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
//기존
#region
/*
string[] aDmbHeader = new string[Column.DMB_REQ_HEADER.LEN.Length];
Hashtable htDmbBody = new Hashtable();
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.Version] = "1.0.0";
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.Command] = aParam[0];
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.ContentsType] = "application/json";
if(aParam[0] == ItemConst.DMB_IRT_ID.PRODUCT_REG)
{
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.BillNo, m_cPosStatus.Base.TradeNo);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.ItemCd, aParam[1]); // ITEM_CD
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.ItemNm, aParam[2]); // ITEM_NM
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.Div, aParam[3]); // 1:등록, 2:수량변경, 3:지정취소
sReqBody = JsonConvert.SerializeObject(htDmbBody);
Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sReqBody);
// 헤더의 Body size 기록
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.BodySize] = sBytTempBuff.Length.ToString();
}
else if(aParam[0] == ItemConst.DMB_IRT_ID.POINT_INFO)
{
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.BillNo, m_cPosStatus.Base.TradeNo);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.PointDiv, aParam[1]); // HPC:해피포인트, SKT:T멤버쉽
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.AppDiv, aParam[2]); // Y:HPC APP, 그외 N
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.DIV, aParam[3]); // 1:조회, 2:적립, 3:할인 ...
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.Amount, aParam[4]); // 포인트 사용 금액
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.Point, aParam[5]); // 적립, 할인, 사용 포인트
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.RPoint, aParam[6]); // 잔여포인트
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.TPoint, aParam[7]); //
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.CardNo, aParam[8]); // 마스킹 된 카드번호
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.CustName, aParam[9]); // 고객명(HPC)
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.CampaignInfo, aParam[10]); //
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.SaleTm, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
sReqBody = JsonConvert.SerializeObject(htDmbBody);
Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sReqBody);
// 헤더의 Body size 기록
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.BodySize] = sBytTempBuff.Length.ToString();
}
else if(aParam[0] == ItemConst.DMB_IRT_ID.SALE_BEGIN)
{
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.BillNo, m_cPosStatus.Base.TradeNo);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.SaleTm, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
}
else if(aParam[0] == ItemConst.DMB_IRT_ID.SALE_END)
{
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.BillNo, m_cPosStatus.Base.TradeNo);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.SaleTm, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
}
// 요청 헤더 생성
sReqHeader = ItemColumn.MakeMessage(aDmbHeader, Column.DMB_REQ_HEADER.LEN, Column.DMB_REQ_HEADER.TYPE);
//System.Threading.Thread worker = new System.Threading.Thread(new System.Threading.ThreadStart(IrtProc));
//worker.Start();
IrtProc(sReqHeader, htDmbBody);
*/
#endregion
//변경
Hashtable htDmbBody = new Hashtable();
if (PosMstManager.GetPosOption(POS_OPTION.OPT554) == "1")
{
string[] aDmbHeader = new string[Column.DT_REQ_HEADER.LEN.Length];
//전문 HEADER
aDmbHeader[Column.DT_REQ_HEADER.SEQ.Version] = "1.0.0";
aDmbHeader[Column.DT_REQ_HEADER.SEQ.Command] = aParam[0];
aDmbHeader[Column.DT_REQ_HEADER.SEQ.ContentsType] = "application/json";
//전문 BODY
if (aParam[0] == ItemConst.DT_IRT_ID.SALE_BEGIN)
{
htDmbBody.Add(Column.DT_REQ_SALE_BEGIN.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DT_REQ_SALE_BEGIN.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DT_REQ_SALE_BEGIN.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DT_REQ_SALE_BEGIN.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DT_REQ_SALE_BEGIN.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DT_REQ_SALE_BEGIN.DATA.SaleTm, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
else if (aParam[0] == ItemConst.DT_IRT_ID.PRODUCT_REG)
{
int iSeq = 1;
ArrayList al_SaleDT = null;
al_SaleDT = new ArrayList();
al_SaleDT.Clear();
ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
foreach (Column.TR_PLU.DATA cPluItem in alSaleItem)
{
Hashtable tr_SaleDT = new Hashtable();
//취소면 제외
if (cPluItem.CANCEL_DIV == "1" || cPluItem.CANCEL_DIV_MAIN == "1") cPluItem.CANCEL_DIV = "1";
if (cPluItem.CANCEL_DIV == "1")
{
continue;
}
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.StorCd, m_cPosStatus.Base.StoreNo);
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.PosNo, m_cPosStatus.Base.PosNo);
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
//부가메뉴 구분
if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.NORMAL)
{
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.Seq, iSeq.ToString());
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.ItemDiv, "1");
}
else
{
iSeq--;
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.Seq, iSeq.ToString());
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.ItemDiv, "2");
}
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.ItemCd, cPluItem.ITEM_PLU_CD);
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.ItemNm, cPluItem.ITEM_NAME);
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.ItemQty, cPluItem.SALE_QTY);
tr_SaleDT.Add(Column.DT_REQ_PRODUCT_REG.DATA.ItemAmt, cPluItem.SALE_AMT);
al_SaleDT.Add(tr_SaleDT);
tr_SaleDT = null;
iSeq++;
}
htDmbBody.Add(Column.DT_REQ_PRODUCT_REG.ITEM, al_SaleDT);
}
else if (aParam[0] == ItemConst.DT_IRT_ID.PRODUCT_CANC)
{
htDmbBody.Add(Column.DT_REQ_PRODUCT_REG.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DT_REQ_PRODUCT_REG.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DT_REQ_PRODUCT_REG.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DT_REQ_PRODUCT_REG.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DT_REQ_PRODUCT_REG.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
}
else if (aParam[0] == ItemConst.DT_IRT_ID.SALE_END)
{
htDmbBody.Add(Column.DT_REQ_SALE_END.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DT_REQ_SALE_END.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DT_REQ_SALE_END.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DT_REQ_SALE_END.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DT_REQ_SALE_END.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DT_REQ_SALE_END.DATA.SaleTm, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
}
// 헤더의 Body size 기록
sReqBody = JsonConvert.SerializeObject(htDmbBody);
Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sReqBody);
aDmbHeader[Column.DT_REQ_HEADER.SEQ.BodySize] = sBytTempBuff.Length.ToString();
// 요청 헤더 생성
sReqHeader = ItemColumn.MakeMessage(aDmbHeader, Column.DT_REQ_HEADER.LEN, Column.DT_REQ_HEADER.TYPE);
//전문 처리
bool bSendRecvYN = false;
while (bSendRecvYN == false)
{
bSendRecvYN = IrtProc_DtIf(sReqHeader, htDmbBody);
//전송 실패시 재전송 여부
if (bSendRecvYN == false)
{
bSendRecvYN = !(bool)WinManager.QuestionMessage("IF 실패 재전송 하시겠습니까?[" + aParam[0] + "]"); //MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591)
}
}
}
else
{
string[] aDmbHeader = new string[Column.DMB_REQ_HEADER.LEN.Length];
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.Version] = "1.0.0";
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.Command] = aParam[0];
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.ContentsType] = "application/json";
if (aParam[0] == ItemConst.DMB_IRT_ID.PRODUCT_REG)
{
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.BillNo, m_cPosStatus.Base.TradeNo);
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.ItemCd, aParam[1]); // ITEM_CD
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.ItemNm, aParam[2]); // ITEM_NM
htDmbBody.Add(Column.DMB_REQ_PRODUCT_REG.DATA.Div, aParam[3]); // 1:등록, 2:수량변경, 3:지정취소
sReqBody = JsonConvert.SerializeObject(htDmbBody);
Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sReqBody);
// 헤더의 Body size 기록
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.BodySize] = sBytTempBuff.Length.ToString();
}
else if (aParam[0] == ItemConst.DMB_IRT_ID.POINT_INFO)
{
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.BillNo, m_cPosStatus.Base.TradeNo);
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.PointDiv, aParam[1]); // HPC:해피포인트, SKT:T멤버쉽
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.AppDiv, aParam[2]); // Y:HPC APP, 그외 N
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.DIV, aParam[3]); // 1:조회, 2:적립, 3:할인 ...
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.Amount, aParam[4]); // 포인트 사용 금액
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.Point, aParam[5]); // 적립, 할인, 사용 포인트
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.RPoint, aParam[6]); // 잔여포인트
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.TPoint, aParam[7]); //
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.CardNo, aParam[8]); // 마스킹 된 카드번호
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.CustName, aParam[9]); // 고객명(HPC)
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.CampaignInfo, aParam[10]); //
htDmbBody.Add(Column.DMB_REQ_POINT_INFO.DATA.SaleTm, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
sReqBody = JsonConvert.SerializeObject(htDmbBody);
Byte[] sBytTempBuff = Encoding.UTF8.GetBytes(sReqBody);
// 헤더의 Body size 기록
aDmbHeader[Column.DMB_REQ_HEADER.SEQ.BodySize] = sBytTempBuff.Length.ToString();
}
else if (aParam[0] == ItemConst.DMB_IRT_ID.SALE_BEGIN)
{
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.BillNo, m_cPosStatus.Base.TradeNo);
htDmbBody.Add(Column.DMB_REQ_SALE_BEGIN.DATA.SaleTm, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
}
else if (aParam[0] == ItemConst.DMB_IRT_ID.SALE_END)
{
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.CmpCd, m_cPosStatus.Base.CmpCd);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.BrandCd, m_cPosStatus.Base.BrandCd);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.StorCd, m_cPosStatus.Base.StoreNo);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.PosNo, m_cPosStatus.Base.PosNo);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.SaleDt, m_cPosStatus.Base.SaleDate);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.BillNo, m_cPosStatus.Base.TradeNo);
htDmbBody.Add(Column.DMB_REQ_SALE_END.DATA.SaleTm, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
}
// 요청 헤더 생성
sReqHeader = ItemColumn.MakeMessage(aDmbHeader, Column.DMB_REQ_HEADER.LEN, Column.DMB_REQ_HEADER.TYPE);
IrtProc(sReqHeader, htDmbBody);
}
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 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;
}
private void IrtProc(string sHeader, Hashtable htBody)
{
string sReceivedData = "";
try
{
m_cNetworkJson.DmbIRTSendReceive(m_cPosStatus.Base.DmbSvrIp, (int)m_cPosStatus.Base.DmbIfPort, 3000, sHeader, htBody, ref sReceivedData);
// 응답 전문 파싱
if (sReceivedData != null && sReceivedData.Length > 0)
{
string[] aRspHeader = new string[Column.DMB_RSP_HEADER.LEN.Length];
ItemColumn.ParseMessage(Column.DMB_RSP_HEADER.LEN, Column.DMB_RSP_HEADER.TYPE, sReceivedData, 0, ref aRspHeader);
// 정상 처리
if (aRspHeader[Column.DMB_RSP_HEADER.SEQ.ResCode] == "200")
{
}
}
}
catch(Exception ex)
{
}
}
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
private bool IrtProc_DtIf(string sHeader, Hashtable htBody)
{
bool bRet = false;
string sReceivedData = "";
byte[] bytRecvBuff = new byte[1024];
try
{
m_cNetworkJson.DmbIRTSendReceive(m_cPosStatus.Base.DmbSvrIp, (int)m_cPosStatus.Base.DmbIfPort, 3000, sHeader, htBody, ref sReceivedData);
// 응답 전문 파싱
if (sReceivedData != null && sReceivedData.Length > 0)
{
string[] aRspHeader = new string[Column.DT_RSP_HEADER.LEN.Length];
ItemColumn.ParseMessage(Column.DT_RSP_HEADER.LEN, Column.DT_RSP_HEADER.TYPE, sReceivedData, 0, ref aRspHeader);
// 정상 처리
if (aRspHeader[Column.DT_RSP_HEADER.SEQ.ResCode].Trim() == "200")
{
bRet = true;
}
}
}
catch (Exception ex)
{
}
return bRet;
}
public int OpenDtTcpDevice(string sIp, int iPort, int iTimeout)
{
int iRet = UserCom.NG;
try
{
// PING 테스트 확인
if (CmUtil.PingTest(sIp) == false)
{
if (CmUtil.PingTest(sIp) == false)
{
UserLog.WriteLogFile(UserCom.LOG_SOCK, 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 (함수명))
"OpenDtTcpDevice PingTest Fail");
return iRet;
}
}
m_cDtSocket = new TcpSocket(sIp, iPort, iTimeout);
if (m_cDtSocket == null)
{
UserLog.WriteLogFile(UserCom.LOG_SOCK, 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 (함수명))
"OpenDtTcpDevice TcpSocket null");
return -9;
}
try
{
iRet = m_cDtSocket.Connect(-1);
}
catch (Exception ex)
{
iRet = UserCom.NG;
UserLog.WriteLogFile(UserCom.LOG_SOCK, 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 (함수명))
"OpenDtTcpDevice Exception Error=" + ex.Message);
m_cDtSocket.Close();
}
// 접속 실패
if (iRet != UserCom.OK)
{
iRet = UserCom.NG;
UserLog.WriteLogFile(UserCom.LOG_SOCK, 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 (함수명))
"OpenDtTcpDevice(Ethernet) Connect Error");
m_cDtSocket.Close();
}
return iRet;
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_SOCK,
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 -99;
}
}
public void ClosePrtTcpDevice()
{
try
{
if (m_cDtSocket != null)
{
m_cDtSocket.Close();
m_cDtSocket = null;
}
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_SOCK,
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);
}
}
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end
public string SetData(object oParam)
{
throw new NotImplementedException();
}
public object GetData(string[] aParam)
{
throw new NotImplementedException();
}
}
}