592 lines
34 KiB
C#
592 lines
34 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Collections;
|
|||
|
using System.Data;
|
|||
|
using System.IO;
|
|||
|
|
|||
|
using Cosmos.Common;
|
|||
|
using Cosmos.UserFrame;
|
|||
|
using Cosmos.BaseFrame;
|
|||
|
using Cosmos.ServiceProvider;
|
|||
|
using Cosmos.CommonManager;
|
|||
|
|
|||
|
namespace Cosmos.Service
|
|||
|
{
|
|||
|
class SaleOpen : IDataServiceUs
|
|||
|
{
|
|||
|
private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
|
|||
|
private PosStatus m_cPosStatus = new PosStatus(); //기본정보 참조
|
|||
|
private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체)
|
|||
|
private IMasterUs m_cMstService = null; // 마스터 인터페이스
|
|||
|
|
|||
|
protected IDataCommonUs m_cDataCommon = null; // 판매공통 모듈
|
|||
|
|
|||
|
public SaleOpen()
|
|||
|
{
|
|||
|
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
|
|||
|
m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
|
|||
|
m_cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 영업개시
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public string Execute(string[] aParam)
|
|||
|
{
|
|||
|
string sRet = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
// 영업개시 IRT => 필요 값 (영업일자, 담당자번호)
|
|||
|
sRet = SaleOpenIrt(aParam[0], aParam[1], aParam[2]);
|
|||
|
if (sRet != UserCom.RST_OK) return sRet;
|
|||
|
|
|||
|
sRet = UserCom.RST_OK;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
return sRet;
|
|||
|
}
|
|||
|
|
|||
|
private string SaleOpenIrt(string sOpenDate, string sCashierNo, string sOpenType)
|
|||
|
{
|
|||
|
string sReturn = UserCom.RST_ERR;
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
Hashtable htSendData = new Hashtable();
|
|||
|
Hashtable htRecvData = new Hashtable();
|
|||
|
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.OPEN_REQ);
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.SALE_DT, sOpenDate);
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo);
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.POS_NO, m_cPosStatus.Base.PosNo);
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.OP_NO, sCashierNo);
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.OP_PWD, CmUtil.RPadH("", 16));
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.OPEN_TY, sOpenType);
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.SYS_DATE, System.DateTime.Now.ToString("yyyyMMddhhmmss"));
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.RES_CD, "");
|
|||
|
htSendData.Add(Column.IQ_OPEN_REQ.DATA.RES_MSG, CmUtil.RPadH("", 100));
|
|||
|
|
|||
|
string sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.PayInqPort, 10000, htSendData, ref htRecvData);
|
|||
|
if (sRet != UserCom.RST_OK)
|
|||
|
{
|
|||
|
return sReturn;
|
|||
|
}
|
|||
|
|
|||
|
if (htRecvData[Column.IQ_OPEN_RSP.DATA.RES_CD].ToString() != "00")
|
|||
|
{
|
|||
|
sReturn = htRecvData[Column.IQ_OPEN_RSP.DATA.RES_MSG].ToString();
|
|||
|
return sReturn;
|
|||
|
}
|
|||
|
|
|||
|
//string sSysDateTime = htRecvData[Column.IQ_OPEN_RSP.DATA.SYS_DATE].ToString();
|
|||
|
|
|||
|
//// 시스템 일자 동기화 => 영업개시 IRT 응답 전문에 있는 날짜로 설정
|
|||
|
//if (sSysDateTime.Length == 14)
|
|||
|
//{
|
|||
|
// DateTime date;
|
|||
|
// if (DateTime.TryParse(sSysDateTime.Substring(0, 4) + "-" + sSysDateTime.Substring(4, 2) + "-" + sSysDateTime.Substring(6, 2) +
|
|||
|
// " " + sSysDateTime.Substring(8, 2) + ":" + sSysDateTime.Substring(10, 2) + ":" + sSysDateTime.Substring(12, 2), out date))
|
|||
|
// BsUtil.SetSystemDateTime(date);
|
|||
|
//}
|
|||
|
|
|||
|
sReturn = 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 sReturn;
|
|||
|
}
|
|||
|
|
|||
|
public string SetData(object oParam)
|
|||
|
{
|
|||
|
string sReturn = UserCom.RST_ERR;
|
|||
|
string sQuery = "";
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
string sSaleDate = (string)oParam; // 영업일자
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 거래번호 초기화
|
|||
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
{
|
|||
|
sQuery = " SELECT ISNULL(MAX(TRADE_NO), '0') AS TRADE_NO";
|
|||
|
sQuery += " FROM POSLOG..TR_SALE_HEADER";
|
|||
|
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 = '" + m_cPosStatus.Base.PosNo + "'";
|
|||
|
|
|||
|
DataTable dtDataInfo = m_cMstService.Select(new string[] { sQuery });
|
|||
|
|
|||
|
m_cPosStatus.Base.TradeNo = "00001";
|
|||
|
if (dtDataInfo != null && dtDataInfo.Rows.Count > 0)
|
|||
|
{
|
|||
|
string sMaxNo = dtDataInfo.Rows[0]["TRADE_NO"].ToString();
|
|||
|
m_cPosStatus.Base.TradeNo = string.Format("{0:00000}", CmUtil.IntParse(sMaxNo) + 1);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 등록번호 초기화
|
|||
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
{
|
|||
|
sQuery = " SELECT ISNULL(MAX(REG_NO), '0') AS REG_NO";
|
|||
|
sQuery += " FROM POSLOG..ETC_SALE_HEADER";
|
|||
|
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 = '" + m_cPosStatus.Base.PosNo + "'";
|
|||
|
|
|||
|
DataTable dtDataInfo = m_cMstService.Select(new string[] { sQuery });
|
|||
|
|
|||
|
m_cPosStatus.Base.RegNo = "00001";
|
|||
|
if (dtDataInfo != null && dtDataInfo.Rows.Count > 0)
|
|||
|
{
|
|||
|
string sMaxNo = dtDataInfo.Rows[0]["REG_NO"].ToString();
|
|||
|
m_cPosStatus.Base.RegNo = string.Format("{0:00000}", CmUtil.IntParse(sMaxNo) + 1);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 중간마감 차수 초기화
|
|||
|
////////////////////////////////////////////////////////////////////////////////
|
|||
|
{
|
|||
|
sQuery = " SELECT ISNULL(MAX(MID_CLOSE_SEQ), '0') AS MID_CLOSE_SEQ";
|
|||
|
sQuery += " FROM POSLOG..TR_SALE_HEADER";
|
|||
|
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 = '" + m_cPosStatus.Base.PosNo + "'";
|
|||
|
sQuery += " AND TRADE_KINDPER = '" + ItemConst.TRAN_KIND.STATEMENT.MIDDLE_ADJUSTMENT + "' ";
|
|||
|
sQuery += " AND ISNULL(MID_CLOSE_SEQ, '0') <> '99' ";
|
|||
|
|
|||
|
DataTable dtDataInfo = m_cMstService.Select(new string[] { sQuery });
|
|||
|
|
|||
|
m_cPosStatus.Base.MidCloseSeq = "01";
|
|||
|
if (dtDataInfo != null && dtDataInfo.Rows.Count > 0)
|
|||
|
{
|
|||
|
string sMaxNo = dtDataInfo.Rows[0]["MID_CLOSE_SEQ"].ToString();
|
|||
|
m_cPosStatus.Base.MidCloseSeq = string.Format("{0:00}", CmUtil.IntParse(sMaxNo) + 1);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
m_cPosStatus.Base.MsgSeqNo = "00001";
|
|||
|
// 개점 완료 FLAG 설정
|
|||
|
m_cPosStatus.Base.OpenClose = "1";
|
|||
|
// 영업일자 설정
|
|||
|
m_cPosStatus.Base.SaleDate = sSaleDate;
|
|||
|
// 개점 시간 저장.
|
|||
|
m_cPosStatus.Base.OpenDateTime = DateTime.Now.ToString("yyyyMMddHHmmss");
|
|||
|
|
|||
|
// 거래번호 INI 파일 설정
|
|||
|
CmMessage m_PosConf = CmMessage.MakeMessageFromFile(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo);
|
|||
|
|
|||
|
m_PosConf.GetMessage("MSGNO").MakeMessageOverWrite("MsgSeqNo", m_cPosStatus.Base.MsgSeqNo);
|
|||
|
m_PosConf.GetMessage("MSGNO").MakeMessageOverWrite("RegNo", m_cPosStatus.Base.RegNo);
|
|||
|
m_PosConf.GetMessage("MSGNO").MakeMessageOverWrite("TradeNo", m_cPosStatus.Base.TradeNo);
|
|||
|
m_PosConf.GetMessage("MSGNO").MakeMessageOverWrite("MidCloseSeq", m_cPosStatus.Base.MidCloseSeq);
|
|||
|
|
|||
|
// 일자, 마감여부 INI 파일 설정
|
|||
|
m_PosConf.GetMessage("POSOPEN").MakeMessageOverWrite("OpenClose", m_cPosStatus.Base.OpenClose);
|
|||
|
m_PosConf.GetMessage("POSOPEN").MakeMessageOverWrite("SaleDate", sSaleDate);
|
|||
|
|
|||
|
m_PosConf.GetMessage("POSOPEN").MakeMessageOverWrite("OpenDateTime", m_cPosStatus.Base.OpenDateTime);
|
|||
|
|
|||
|
m_PosConf.MakeFileFromMessage(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo);
|
|||
|
|
|||
|
// INI 파일 백업 주석 처리(20170927)
|
|||
|
// INI 백업처리
|
|||
|
//CmUtil.FileCopy(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig, BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosConfig + ".bak", false);
|
|||
|
//CmUtil.FileCopy(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo, BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosSaleInfo + ".bak", false);
|
|||
|
//CmUtil.FileCopy(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosDevice, BaseCom.NxIniPath + PosConst.INI_FILE_NAME.PosDevice + ".bak", false);
|
|||
|
//CmUtil.FileCopy(BaseCom.NxIniPath + PosConst.INI_FILE_NAME.CommPort, BaseCom.NxIniPath + PosConst.INI_FILE_NAME.CommPort + ".bak", false);
|
|||
|
|
|||
|
DeletePosLogFile(); // 로그파일 삭제 처리
|
|||
|
DeletePosTrData(); // 거래데이터 삭제 처리
|
|||
|
|
|||
|
DeleteMST_ORD(); // 후불 정보 초기화
|
|||
|
|
|||
|
DeleteInterFaceFile(); // 외부 인터페이스 파일 삭제
|
|||
|
|
|||
|
sReturn = UserCom.RST_OK;
|
|||
|
|
|||
|
return sReturn;
|
|||
|
}
|
|||
|
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 sReturn;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 데이터획득
|
|||
|
/// </summary>
|
|||
|
/// <param name="aParam">
|
|||
|
/// 0:MAINPOS_LAST_OPEN_DATE
|
|||
|
/// </param>
|
|||
|
/// <returns></returns>
|
|||
|
public object GetData(string[] aParam)
|
|||
|
{
|
|||
|
var ret = UserCom.RST_ERR;
|
|||
|
try
|
|||
|
{
|
|||
|
if (aParam.Length == 0) return ret;
|
|||
|
|
|||
|
var cmd = aParam[0];
|
|||
|
switch (cmd)
|
|||
|
{
|
|||
|
case "CHECK_SUBPOS_OPEN":
|
|||
|
ret = CheckSubPosOpen();
|
|||
|
break;
|
|||
|
}
|
|||
|
|
|||
|
return ret;
|
|||
|
}
|
|||
|
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 UserCom.RST_ERR + ex.Message;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 후불주문포스 개점 가능여부 및 메인포스 개점일자 조회
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
/// <remarks>
|
|||
|
/// 메인포스 개점 후 후불주문포스 개점이 가능
|
|||
|
/// </remarks>
|
|||
|
private string CheckSubPosOpen()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
// 후불 주문포스 일때만 조회
|
|||
|
if (m_cPosStatus.Base.PosType != PosConst.POS_TYPE.DEFERRED_PAYMENT) return UserCom.RST_IGNORE;
|
|||
|
if (m_cPosStatus.Base.PosCommunicationType != PosConst.MAIN_POS_DIV.SUB_POS) return UserCom.RST_IGNORE;
|
|||
|
// 메인포스 정보 확인
|
|||
|
if (string.IsNullOrWhiteSpace(m_cPosStatus.Base.MainPosNo)) return UserCom.RST_ERR + POS_MESSAGE.ERROR.MSG_0379;
|
|||
|
|
|||
|
// m_cTrnStatus.Head.TradeDiv // TRADE_DIV
|
|||
|
// m_cTrnStatus.Head.TrainModeYn // TRAIN_MODE_YN
|
|||
|
// m_cTrnStatus.Head.TradeKind // TRADE_KINDPER
|
|||
|
// public const string POS_OPEN = "97"; // 개점
|
|||
|
// public const string POS_CLOSE = "98"; // 폐점
|
|||
|
|
|||
|
// 메인POS의 최근 개점정보 조회
|
|||
|
var sql = "SELECT TOP 1 SALE_DT, TRADE_DIV, TRADE_KINDPER \n"
|
|||
|
+ " FROM POSLOG..ETC_SALE_HEADER \n"
|
|||
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|||
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|||
|
+ " AND POS_NO = '" + m_cPosStatus.Base.MainPosNo + "' \n"
|
|||
|
+ " AND TRAIN_MODE_YN = '" + ItemConst.TRAINING_FLAG.TRAINING_NO + "' \n"
|
|||
|
+ " AND TRADE_KINDPER IN ( '" + ItemConst.TRAN_KIND.LOG.POS_OPEN + "','" + ItemConst.TRAN_KIND.LOG.POS_CLOSE + "' ) \n"
|
|||
|
+ " ORDER BY SYS_DT DESC , PAY_TIME DESC \n"
|
|||
|
;
|
|||
|
DataTable dt = m_cMstService.Select(new string[] { sql });
|
|||
|
if (dt == null || dt.Rows.Count == 0)
|
|||
|
return UserCom.RST_ERR + POS_MESSAGE.ERROR.MSG_0663;
|
|||
|
|
|||
|
var mainOpenDate = CmUtil.GetDataRowStr(dt.Rows[0], "SALE_DT").Trim();
|
|||
|
var mainTradeDiv = CmUtil.GetDataRowStr(dt.Rows[0], "TRADE_DIV").Trim();
|
|||
|
var mainTradeKind = CmUtil.GetDataRowStr(dt.Rows[0], "TRADE_KINDPER").Trim();
|
|||
|
|
|||
|
// 오픈여부 확인 => 정산취소 일때도 영업개시 가능하게(2017.06.20)
|
|||
|
if ((mainTradeDiv == ItemConst.TRAN_DIV.NORMAL && mainTradeKind == ItemConst.TRAN_KIND.LOG.POS_OPEN)
|
|||
|
|| (mainTradeDiv == ItemConst.TRAN_DIV.REFUND && mainTradeKind == ItemConst.TRAN_KIND.LOG.POS_CLOSE))
|
|||
|
{
|
|||
|
// 개점일자 확인
|
|||
|
if (CmUtil.LongParse(mainOpenDate) < CmUtil.LongParse(DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
return UserCom.RST_ERR + POS_MESSAGE.ERROR.MSG_0663;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
return UserCom.RST_ERR + POS_MESSAGE.ERROR.MSG_0663;
|
|||
|
}
|
|||
|
//// 오픈여부 확인
|
|||
|
//if (mainTradeDiv != ItemConst.TRAN_DIV.NORMAL || mainTradeKind != ItemConst.TRAN_KIND.LOG.POS_OPEN)
|
|||
|
// return UserCom.RST_ERR + POS_MESSAGE.ERROR.MSG_0663;
|
|||
|
//// 개점일자 확인
|
|||
|
//if (CmUtil.LongParse(mainOpenDate) < CmUtil.LongParse(DateTime.Now.ToString("yyyyMMdd")))
|
|||
|
// return UserCom.RST_ERR + POS_MESSAGE.ERROR.MSG_0663;
|
|||
|
|
|||
|
// 주문포스 개점 가능
|
|||
|
return UserCom.RST_OK + mainOpenDate;
|
|||
|
}
|
|||
|
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 UserCom.RST_ERR + ex.Message;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// POS 로그파일 삭제
|
|||
|
/// </summary>
|
|||
|
private void DeletePosLogFile()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
// 로그 파일 백업 처리
|
|||
|
for (int i = 10; i < 30; i++)
|
|||
|
{
|
|||
|
CmUtil.BackUpLogToZipFile(BaseCom.NxLogPath, DateTime.Now.AddDays(-1 * i));
|
|||
|
}
|
|||
|
|
|||
|
// 1개월 이전 로그 데이터 삭제
|
|||
|
// DateTime dtDelDate = DateTime.Now.AddMonths(-1); 2017.10.19 수정
|
|||
|
// 3개월 이전 데이터 삭제
|
|||
|
DateTime dtDelDate = DateTime.Now.AddMonths(-1 * 3);
|
|||
|
|
|||
|
|
|||
|
// 로그 파일 삭제 처리
|
|||
|
CmUtil.DeleteDirectoryInFile(BaseCom.NxLogPath, dtDelDate, 0);
|
|||
|
|
|||
|
CmUtil.DeleteDirectoryInFile(BaseCom.NxBinPath + @"spcn_log\", dtDelDate, 0);
|
|||
|
CmUtil.DeleteDirectoryInFile(BaseCom.NxBinPath + @"spcncat_log\", dtDelDate, 0);
|
|||
|
CmUtil.DeleteDirectoryInFile(BaseCom.NxBinPath + @"spcndg_log\", dtDelDate, 0);
|
|||
|
CmUtil.DeleteDirectoryInFile(BaseCom.NxBinPath + @"SpcnLog\", dtDelDate, 0);
|
|||
|
CmUtil.DeleteDirectoryInFile(BaseCom.NxBinPath + @"spcnsecu_log\", dtDelDate, 0);
|
|||
|
CmUtil.DeleteDirectoryInFile(BaseCom.NxDataPath + @"SIGN\", dtDelDate, 0);
|
|||
|
|
|||
|
// 7일 이전 마스터 백업 삭제
|
|||
|
dtDelDate = DateTime.Now.AddDays(-1 * 7);
|
|||
|
CmUtil.DeleteDirectoryInFile(BaseCom.NxBackPath + PosConst.BACKUP_PATH.DB, dtDelDate, 0);
|
|||
|
|
|||
|
//#20171102 MST_ITEM_BAR_CD 마스터 수신 로그 생성 start
|
|||
|
//MST_ITEM_BAR_CD 로그 3일 이전 로그 데이터 삭제
|
|||
|
/*
|
|||
|
dtDelDate = DateTime.Now.AddDays(-1 * 3);
|
|||
|
CmUtil.DeleteDirectoryInFile(BaseCom.NxLogPath + @"MST_BAR\", dtDelDate, 0);
|
|||
|
*/
|
|||
|
//#20171102 MST_ITEM_BAR_CD 마스터 수신 로그 생성 end
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 거래 데이터 삭제
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
public void DeletePosTrData()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 3개월 이전 데이터 삭제
|
|||
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
string sDelDate = DateTime.Now.AddMonths(-1 * 3).ToString("yyyyMMdd");
|
|||
|
|
|||
|
//#20170901 TR_SALE_APPR_LOG, TR_STOR_EMP_WORK 데이터 보관주기 7일로 변경 start
|
|||
|
string sDel7Date = DateTime.Now.AddDays(-1 * 7).ToString("yyyyMMdd");
|
|||
|
//#20170901 TR_SALE_APPR_LOG, TR_STOR_EMP_WORK 데이터 보관주기 7일로 변경 end
|
|||
|
|
|||
|
//#20170901 TR_SALE_APPR_LOG, TR_STOR_EMP_WORK 데이터 보관주기 7일로 변경 start
|
|||
|
//기존
|
|||
|
//string[] saQuery = new string[29];
|
|||
|
//변경
|
|||
|
string[] saQuery = new string[31];
|
|||
|
//#20170901 TR_SALE_APPR_LOG, TR_STOR_EMP_WORK 데이터 보관주기 7일로 변경 end
|
|||
|
saQuery[0] = " DELETE POSLOG..TR_CASHIER_TEST WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[1] = " DELETE POSLOG..TR_P_BOX_DTPER_STOCK WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND STOCK_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[2] = " DELETE POSLOG..TR_SALE_ADMT WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[3] = ""; // " DELETE POSLOG..TR_SALE_ADMT_CHECK WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
|
|||
|
//#20170901 TR_SALE_APPR_LOG, TR_STOR_EMP_WORK 데이터 보관주기 7일로 변경 start
|
|||
|
//기존
|
|||
|
//saQuery[4] = " DELETE POSLOG..TR_SALE_APPR_LOG WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
//변경
|
|||
|
saQuery[4] = " DELETE POSLOG..TR_SALE_APPR_LOG WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDel7Date + "' ";
|
|||
|
//#20170901 TR_SALE_APPR_LOG, TR_STOR_EMP_WORK 데이터 보관주기 7일로 변경 end
|
|||
|
|
|||
|
saQuery[5] = " DELETE POSLOG..TR_SALE_CPI_RSLT WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[6] = " DELETE POSLOG..TR_SALE_DETAIL WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[7] = ""; // " DELETE POSLOG..TR_SALE_DPST_WTHDR WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[8] = " DELETE POSLOG..TR_SALE_ETC WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[9] = " DELETE POSLOG..TR_SALE_GUESTCNT WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[10] = " DELETE POSLOG..TR_SALE_HEADER WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[11] = " DELETE POSLOG..TR_SALE_JOURNAL WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[12] = " DELETE POSLOG..TR_SALE_PAY WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[13] = " DELETE POSLOG..TR_SALE_SIGN_LOG WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[14] = " DELETE POSLOG..TR_STOR_EMP WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND WORK_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[15] = " DELETE POSLOG..TR_STORE_CLAIM WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[16] = " DELETE POSLOG..TR_STORE_VISIT WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND VISIT_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[17] = " DELETE POSLOG..ETC_INTEGRITY_LOG WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[18] = " DELETE POSLOG..ETC_RESERV_INFO WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[19] = " DELETE POSLOG..ETC_SALE_CPI_RSLT WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[20] = " DELETE POSLOG..ETC_SALE_DETAIL WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[21] = " DELETE POSLOG..ETC_SALE_ETC WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[22] = " DELETE POSLOG..ETC_SALE_GUESTCNT WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[23] = " DELETE POSLOG..ETC_SALE_HEADER WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[24] = " DELETE POSLOG..ETC_SALE_JOURNAL WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[25] = " DELETE POSLOG..ETC_SALE_PAY WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[26] = " DELETE POSLOG..ETC_SALE_DPST_WTHDR WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[27] = " DELETE POSLOG..ETC_STOR_EQU_CHECK_LIST WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
saQuery[28] = " DELETE POSLOG..ETC_STOR_EQU_CHECK_DETAIL WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
|
|||
|
//#20170901 TR_SALE_APPR_LOG, TR_STOR_EMP_WORK 데이터 보관주기 7일로 변경 start
|
|||
|
//TR_HPAPP_AFTER_SAVE 데이터 삭제 기능 추가
|
|||
|
saQuery[29] = " DELETE POSLOG..TR_STOR_EMP_WORK WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND WORK_DT < '" + sDel7Date + "' ";
|
|||
|
saQuery[30] = " DELETE POSLOG..TR_HPAPP_AFTER_SAVE WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND SALE_DT < '" + sDelDate + "' ";
|
|||
|
//#20170901 TR_SALE_APPR_LOG, TR_STOR_EMP_WORK 데이터 보관주기 7일로 변경 end
|
|||
|
|
|||
|
m_cMstService.Delete(saQuery);
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
// 종료일 31일 이전 마스터 삭제
|
|||
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|||
|
string sMstDelDate = DateTime.Now.AddDays(-1 * 31).ToString("yyyyMMdd");
|
|||
|
|
|||
|
string[] saMstQuery = new string[10];
|
|||
|
saMstQuery[0] = " DELETE POSMST..MST_CPI_CARD FROM POSMST..MST_CPI_CARD A " +
|
|||
|
" JOIN POSMST..MST_CPI B ON A.CMP_CD=B.CMP_CD AND A.STOR_CD=B.STOR_CD AND A.CPI_CD=B.CPI_CD" +
|
|||
|
" WHERE B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND B.FNSHDAY < '" + sMstDelDate + "' ";
|
|||
|
saMstQuery[1] = " DELETE POSMST..MST_CPI_COMPNT FROM POSMST..MST_CPI_COMPNT A " +
|
|||
|
" JOIN POSMST..MST_CPI B ON A.CMP_CD=B.CMP_CD AND A.STOR_CD=B.STOR_CD AND A.CPI_CD=B.CPI_CD" +
|
|||
|
" WHERE B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND B.FNSHDAY < '" + sMstDelDate + "' ";
|
|||
|
saMstQuery[2] = " DELETE POSMST..MST_CPI_HOUR FROM POSMST..MST_CPI_HOUR A " +
|
|||
|
" JOIN POSMST..MST_CPI B ON A.CMP_CD=B.CMP_CD AND A.STOR_CD=B.STOR_CD AND A.CPI_CD=B.CPI_CD" +
|
|||
|
" WHERE B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND B.FNSHDAY < '" + sMstDelDate + "' ";
|
|||
|
saMstQuery[3] = " DELETE POSMST..MST_CPI_ITEM FROM POSMST..MST_CPI_ITEM A " +
|
|||
|
" JOIN POSMST..MST_CPI B ON A.CMP_CD=B.CMP_CD AND A.STOR_CD=B.STOR_CD AND A.CPI_CD=B.CPI_CD" +
|
|||
|
" WHERE B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND B.FNSHDAY < '" + sMstDelDate + "' ";
|
|||
|
saMstQuery[4] = " DELETE POSMST..MST_CPI_LTTR_PRT FROM POSMST..MST_CPI_LTTR_PRT A " +
|
|||
|
" JOIN POSMST..MST_CPI B ON A.CMP_CD=B.CMP_CD AND A.STOR_CD=B.STOR_CD AND A.CPI_CD=B.CPI_CD" +
|
|||
|
" WHERE B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND B.FNSHDAY < '" + sMstDelDate + "' ";
|
|||
|
saMstQuery[5] = " DELETE POSMST..MST_CPI_PRT_MSG FROM POSMST..MST_CPI_PRT_MSG A " +
|
|||
|
" JOIN POSMST..MST_CPI B ON A.CMP_CD=B.CMP_CD AND A.STOR_CD=B.STOR_CD AND A.CPI_CD=B.CPI_CD" +
|
|||
|
" WHERE B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND B.FNSHDAY < '" + sMstDelDate + "' ";
|
|||
|
saMstQuery[6] = " DELETE POSMST..MST_CPI WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND FNSHDAY < '" + sMstDelDate + "' ";
|
|||
|
saMstQuery[7] = " DELETE POSMST..MST_CUST_DSP WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND FNSH_DT < '" + sDelDate + "' ";
|
|||
|
saMstQuery[8] = " DELETE POSMST..MST_ONLINE_CPN WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' AND FNSH_DAY < '" + sDelDate + "' ";
|
|||
|
|
|||
|
//20170410 등록일자 기준으로 -7 이전꺼는 삭제
|
|||
|
saMstQuery[9] = " DELETE POSMST..MST_EMG_NOTE WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' " +
|
|||
|
" AND DATEADD(DAY,-7, GETDATE()) > CONVERT(DATETIME, SUBSTRING(REG_DT,1,4) + '-' + SUBSTRING(REG_DT,5,2) + '-' + SUBSTRING(REG_DT,7,2) + ' ' + SUBSTRING(REG_DT,9,2) + ':' + + SUBSTRING(REG_DT,11,2) + ':' + SUBSTRING(REG_DT,13,2)) ";
|
|||
|
|
|||
|
m_cMstService.Delete(saMstQuery);
|
|||
|
|
|||
|
}
|
|||
|
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 void DeleteMST_ORD()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
#region 후불 정보 초기화
|
|||
|
string[] saMstQuery = new string[8];
|
|||
|
|
|||
|
if (m_cPosStatus.Base.PosCommunicationType == PosConst.MAIN_POS_DIV.MAIN_POS)
|
|||
|
{
|
|||
|
// 테이블마스터 매출정보 삭제
|
|||
|
saMstQuery[0] = "";
|
|||
|
saMstQuery[0] += " UPDATE POSMST..MST_TBL ";
|
|||
|
saMstQuery[0] += " SET TBL_USE_DIV = '0'";
|
|||
|
saMstQuery[0] += " , CUST_CNT = 0";
|
|||
|
saMstQuery[0] += " , FIRST_ORD_HOUR = ''";
|
|||
|
saMstQuery[0] += " , ORD_AMT = 0";
|
|||
|
saMstQuery[0] += " , TBL_OP_DIV = '0'";
|
|||
|
saMstQuery[0] += " , OP_FLOOR_CD = ''";
|
|||
|
saMstQuery[0] += " , OP_TBL_NO = ''";
|
|||
|
saMstQuery[0] += " , PAY_CMPT_DIV = ''";
|
|||
|
saMstQuery[0] += " , FILLER1 = ''";
|
|||
|
saMstQuery[0] += " , FILLER2 = ''";
|
|||
|
saMstQuery[0] += " , FILLER3 = ''"; // Add, 2017.02.22, 테이블그룹순번
|
|||
|
saMstQuery[0] += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|||
|
saMstQuery[0] += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|||
|
|
|||
|
// 주문데이터 삭제
|
|||
|
saMstQuery[1] = " DELETE POSMST..MST_ORD ";
|
|||
|
|
|||
|
// 주방데이터 삭제
|
|||
|
saMstQuery[2] = " DELETE POSMST..MST_KTCH_ORD_MSG ";
|
|||
|
|
|||
|
// 추가주방데이터 삭제
|
|||
|
saMstQuery[3] = " DELETE POSMST..MST_KTCH_ORD_MSG_ADD ";
|
|||
|
|
|||
|
// 주방프린터 데이터 삭제
|
|||
|
saMstQuery[4] = " DELETE POSMST..MST_KPS_ORD_MSG ";
|
|||
|
|
|||
|
// KDS 데이터 삭제
|
|||
|
saMstQuery[5] = " DELETE POSMST..MST_KDS_ORD_MSG ";
|
|||
|
|
|||
|
// 좌석메모 데이터 삭제
|
|||
|
saMstQuery[6] = " DELETE POSMST..MST_SEAT_MEMO ";
|
|||
|
|
|||
|
// 후불매장 주문번호 테이블 삭제
|
|||
|
saMstQuery[7] = "DELETE POSMST..MST_ORD_SEQ \n"
|
|||
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|||
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|||
|
//#20171026 복합매장 메인포스가 아닌 주문포스인 경우 자기POS번호에 설정된 IP로 메인포스 IP 설정 start
|
|||
|
//+ " AND SUB_STOR_CD = '" + (string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNo) ? m_cPosStatus.Base.StoreNo : m_cPosStatus.Base.SubShopNo) + "' \n"
|
|||
|
//#20171026 복합매장 메인포스가 아닌 주문포스인 경우 자기POS번호에 설정된 IP로 메인포스 IP 설정 end
|
|||
|
+ " AND SALE_DATE < '" + DateTime.Now.AddDays(-7).ToString("yyyyMMdd") + "' ";
|
|||
|
|
|||
|
m_cMstService.Delete(saMstQuery);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
}
|
|||
|
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 void DeleteInterFaceFile()
|
|||
|
{
|
|||
|
string sFileName = null;
|
|||
|
try
|
|||
|
{
|
|||
|
#region 외부 인터페이스 파일 삭제
|
|||
|
|
|||
|
if (m_cPosStatus.Base.PosCommunicationType == PosConst.MAIN_POS_DIV.MAIN_POS)
|
|||
|
{
|
|||
|
// 3.왕진활현 인터페이스 파일
|
|||
|
sFileName = @"C:\HOME\IMPORT\possalesdata.txt";
|
|||
|
if (File.Exists(sFileName)) File.Delete(sFileName);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|||
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|