7242 lines
468 KiB
C#
7242 lines
468 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Data;
|
|
|
|
using Cosmos.BaseFrame;
|
|
using Cosmos.UserFrame;
|
|
using Cosmos.ServiceProvider;
|
|
using Cosmos.Common;
|
|
using Cosmos.CommonManager;
|
|
|
|
namespace Cosmos.Service
|
|
{
|
|
class TableService : ITableUs
|
|
{
|
|
private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
|
|
private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체)
|
|
private PosStatus m_cPosStatus; // 기본정보 참조
|
|
private TranStatus m_cTrnStatus; // 거래정보 참조
|
|
|
|
private IDataCommonUs m_cDataCommon = null; // 판매공통 모듈
|
|
private IMasterUs m_cMstService = null; // 마스터 인터페이스
|
|
private IDatabaseSQL m_cSqlDbService = null; // 데이터베이스 관리
|
|
private IDataProcessUs m_cDataSrv = null; // 거래데이터 합계금액 계산 및 관리
|
|
private ISalePluItemUs m_cPluService = null; // 판매 등록 관리
|
|
private IServiceUs m_cOrderSheetSvr = null; // 주방 주문서
|
|
|
|
|
|
/// <summary>
|
|
/// 주방메시지
|
|
/// </summary>
|
|
private ArrayList m_aKtchMsgAdd = new ArrayList();
|
|
private class KTCH_MSG_ADD
|
|
{
|
|
/// <summary>
|
|
/// 메시지구분
|
|
/// (PosConst.KPS_ORD_MSG_ID, 0:거래중지, 1:상품메모, 2:좌석메모, 3:테이블합석, 4:테이블이동, 5:상품이동, 9:FireKey)
|
|
/// </summary>
|
|
public string sMsgID;
|
|
/// <summary>
|
|
/// 서브매장코드
|
|
/// </summary>
|
|
public string sSubShopCd;
|
|
/// <summary>
|
|
/// 상품코드
|
|
/// </summary>
|
|
public string sItemCode;
|
|
/// <summary>
|
|
/// 상품명
|
|
/// </summary>
|
|
public string sItemName;
|
|
/// <summary>
|
|
/// 주문메시지1
|
|
/// </summary>
|
|
public string sMsg1;
|
|
/// <summary>
|
|
/// 주문메시지2
|
|
/// </summary>
|
|
public string sMsg2;
|
|
/// <summary>
|
|
/// 주문메시지3
|
|
/// </summary>
|
|
public string sMsg3;
|
|
/// <summary>
|
|
/// 순번
|
|
/// </summary>
|
|
public string sItemSeqNo;
|
|
}
|
|
|
|
public TableService()
|
|
{
|
|
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
|
|
m_cTrnStatus = (TranStatus)StateObject.TRAN; // 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);
|
|
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
|
|
m_cDataSrv = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE);
|
|
m_cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM);
|
|
m_cOrderSheetSvr = (IServiceUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.POS_RECEIPT_ORDERSHEET);
|
|
}
|
|
|
|
/// <summary>
|
|
/// 데이터베이스연결
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public bool DBConnection()
|
|
{
|
|
try
|
|
{
|
|
// DB Connect
|
|
return m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource
|
|
, m_cPosStatus.Base.LocalDbCatalog
|
|
, m_cPosStatus.Base.LocalDbUserID
|
|
, m_cPosStatus.Base.LocalDbPassword);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블 정보 설정
|
|
/// </summary>
|
|
/// <param name="drData"></param>
|
|
/// <param name="cTable"></param>
|
|
public void SetTableInfo(DataRow drData, ref Column.MST_TABLE.TABLE_DATA cTable)
|
|
{
|
|
try
|
|
{
|
|
cTable.FLOOR_CD = CmUtil.GetDataRowStr(drData, "FLOOR_CD");
|
|
cTable.TABLE_NO = CmUtil.GetDataRowStr(drData, "TBL_NO");
|
|
cTable.TABLE_NM = CmUtil.GetDataRowStr(drData, "TBL_NM");
|
|
cTable.TABLE_TYPE = CmUtil.GetDataRowStr(drData, "TBL_TYPE");
|
|
//cTable.TABLE_TYPE__1640 = CmUtil.GetDataRowStr(drData, "TBL_TYPE_SHAPE");
|
|
//cTable.BACK_COLOR = CmUtil.GetDataRowStr(drData, "BACKGRCOLOR");
|
|
//cTable.BACK_IMAGE = CmUtil.GetDataRowStr(drData, "BACKGR_IMG");
|
|
//cTable.FONT_COLOR = CmUtil.GetDataRowStr(drData, "FONTCOLOR");
|
|
//cTable.FONT_NM = CmUtil.GetDataRowStr(drData, "FONT_NM");
|
|
cTable.FONT_NM = m_cPosStatus.Base.FONT;
|
|
|
|
cTable.FONT_SIZE = CmUtil.GetDataRowInt(drData, "FONT_SIZE");
|
|
cTable.X_COORD = CmUtil.GetDataRowInt(drData, "X_COORD");
|
|
cTable.Y_COORD = CmUtil.GetDataRowInt(drData, "Y_COORD");
|
|
cTable.WIDTH = CmUtil.GetDataRowInt(drData, "WIDTH");
|
|
cTable.HEIGHT = CmUtil.GetDataRowInt(drData, "HGT");
|
|
//cTable.TABLE_DISP_FLAG = CmUtil.GetDataRowStr(drData, "TBL_DISP_DIV");
|
|
//cTable.SEAT_CNT = CmUtil.GetDataRowInt(drData, "SEAT_CNT");
|
|
|
|
// 테이블 화면표시 구분, 테이블명으로 고정, 2017.01.31
|
|
//cTable.SEAT_DISP_FLAG = CmUtil.GetDataRowStr(drData, "SEAT_CNT_DISP_DIV");
|
|
cTable.TABLE_DISP_FLAG = PosConst.TABLE_DISP_FLAG.TABLE_NAME;
|
|
if (string.IsNullOrWhiteSpace(cTable.TABLE_NM)) cTable.TABLE_NM = cTable.TABLE_NO;
|
|
|
|
cTable.OP_FLAG = CmUtil.GetDataRowStr(drData, "TBL_OP_DIV");
|
|
cTable.OP_FLOOR_CD = CmUtil.GetDataRowStr(drData, "OP_FLOOR_CD");
|
|
cTable.OP_TABLE_NO = CmUtil.GetDataRowStr(drData, "OP_TBL_NO");
|
|
cTable.USE_FLAG = CmUtil.GetDataRowStr(drData, "TBL_USE_DIV");
|
|
if (string.IsNullOrWhiteSpace(cTable.USE_FLAG)) cTable.USE_FLAG = PosConst.TABLE_USE_FLAG.NO_USE;
|
|
|
|
cTable.CUST_CNT = CmUtil.GetDataRowInt(drData, "CUST_CNT");
|
|
cTable.FIRST_ORDER_TIME = CmUtil.GetDataRowStr(drData, "FIRST_ORD_HOUR");
|
|
cTable.ORDER_AMT = CmUtil.GetDataRowDouble(drData, "ORD_AMT");
|
|
//cTable.RESERVATION_FLAG = CmUtil.GetDataRowStr(drData, "RESERV_DIV");
|
|
//cTable.RESERVATION_TIME = CmUtil.GetDataRowStr(drData, "RESERV_HOUR");
|
|
//cTable.ORDER_COLOR = CmUtil.GetDataRowStr(drData, "ORD_COLOR");
|
|
//cTable.PAY_COMPLETE_COLOR = CmUtil.GetDataRowStr(drData, "PAY_CMPT_COLOR");
|
|
cTable.PAY_COMPLETE_FLAG = CmUtil.GetDataRowStr(drData, "PAY_CMPT_DIV");
|
|
|
|
//if (cTable.TABLE_TYPE__1640 == string.Empty) cTable.TABLE_TYPE__1640 = PosConst.TABLE_DISP_TYPE.RECTANGLE;
|
|
if (cTable.WIDTH == 0) cTable.WIDTH = 100;
|
|
if (cTable.HEIGHT == 0) cTable.HEIGHT = 100;
|
|
if (cTable.FONT_NM == string.Empty) cTable.FONT_NM = m_cPosStatus.Base.FONT; // "Arial";
|
|
if (cTable.FONT_SIZE == 0) cTable.FONT_SIZE = 10;
|
|
|
|
cTable.UPD_DT = CmUtil.GetDataRowStr(drData, "UPD_DT");
|
|
cTable.REG_DT = CmUtil.GetDataRowStr(drData, "REG_DT");
|
|
cTable.STATUS = PosConst.DB_ROW_STATUS.NONE;
|
|
|
|
cTable.ITEM_LIST = string.Empty;
|
|
|
|
cTable.CUST_AGE = CmUtil.GetDataRowStr(drData, "FILLER1");
|
|
cTable.CUST_LST = CmUtil.GetDataRowStr(drData, "FILLER2");
|
|
|
|
cTable.TABLE_GROUP_INDEX = -1; // Add, 2017.02.17
|
|
var temp = CmUtil.GetDataRowInt(drData, "FILLER3");
|
|
if (temp > 0) cTable.TABLE_GROUP_INDEX = temp;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 층명과 테이블명 조회
|
|
/// </summary>
|
|
/// <param name="sFloorCd"></param>
|
|
/// <param name="sTableNo"></param>
|
|
/// <param name="dtData"></param>
|
|
/// <returns></returns>
|
|
public string SelectFloorAndTableName(string sFloorCd, string sTableNo, out DataTable dtData)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
dtData = null;
|
|
|
|
try
|
|
{
|
|
sQuery = "SELECT A.FLOOR_NM AS FLOOR_NM, B.TBL_NM AS TBL_NM "
|
|
+ " FROM POSMST..MST_FLOOR A WITH(NOLOCK) "
|
|
+ " , POSMST..MST_TBL B WITH(NOLOCK) "
|
|
+ " WHERE A.CMP_CD = B.CMP_CD "
|
|
+ " AND A.STOR_CD = B.STOR_CD "
|
|
+ " AND A.FLOOR_CD = B.FLOOR_CD "
|
|
+ " AND B.TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.01
|
|
+ " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND B.FLOOR_CD = '" + sFloorCd + "' "
|
|
+ " AND B.TBL_NO = '" + sTableNo + "' "
|
|
;
|
|
|
|
if (m_cSqlDbService.DBSelect(sQuery, out dtData) != UserCom.OK)
|
|
{
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블 마스터 조회
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <param name="dtData"></param>
|
|
/// <returns></returns>
|
|
public string SelectTable(string[] aParam, out DataTable dtData)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
dtData = null;
|
|
|
|
try
|
|
{
|
|
sQuery = " SELECT FLOOR_CD, TBL_NO, TBL_NM, TBL_TYPE, TBL_TYPE_SHAPE "
|
|
+ " , BACKGRCOLOR, BACKGR_IMG, FONTCOLOR, FONT_NM, FONT_SIZE "
|
|
+ " , X_COORD, Y_COORD, WIDTH, HGT, TBL_DISP_DIV "
|
|
+ " , SEAT_CNT, SEAT_CNT_DISP_DIV, TBL_OP_DIV, OP_FLOOR_CD, OP_TBL_NO "
|
|
+ " , TBL_USE_DIV, CUST_CNT, FIRST_ORD_HOUR, ORD_AMT, RESERV_DIV "
|
|
+ " , RESERV_HOUR, ORD_COLOR, PAY_CMPT_COLOR, PAY_CMPT_DIV "
|
|
+ " , UPD_DT, REG_DT, USE_YN "
|
|
+ " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 "
|
|
+ " FROM POSMST..MST_TBL "
|
|
;
|
|
|
|
switch(aParam[0])
|
|
{
|
|
case PosConst.QueryTagDef.QueryTableDef.TABLE_ALL_SEARCH:
|
|
sQuery += "WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.01
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryTableDef.FLOOR_CD_SEARCH:
|
|
sQuery += "WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.01
|
|
sQuery += " AND FLOOR_CD = '" + aParam[1] + "' ";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryTableDef.TABLE_NO_SEARCH:
|
|
sQuery += "WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.01
|
|
sQuery += " AND TBL_NO LIKE '%" + aParam[1] + "%' ";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryTableDef.TABLE_NM_SEARCH:
|
|
sQuery += "WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.01
|
|
sQuery += " AND USE_YN = '= '" + PosConst.MST_USE_YN.YES + "' ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryTableDef.TABLE_NO_FLOOR_CD_SEARCH:
|
|
sQuery += "WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.01
|
|
sQuery += " AND FLOOR_CD = '" + aParam[1] + "' ";
|
|
sQuery += " AND TBL_NO = '" + aParam[2] + "' ";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryTableDef.TABLE_WHERE:
|
|
sQuery += aParam[1];
|
|
sQuery += " AND USE_YN = '1' ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryTableDef.TABLE_GROUP_SEARCH:
|
|
sQuery += "WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.01
|
|
+ " AND TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_GROUP + "' "
|
|
+ " AND OP_FLOOR_CD = '" + aParam[1] + "' "
|
|
+ " AND OP_TBL_NO = '" + aParam[2] + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
break;
|
|
}
|
|
sQuery += " ORDER BY CMP_CD, STOR_CD, FLOOR_CD, TBL_NO ";
|
|
|
|
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
|
|
if (aParam[0] == PosConst.QueryTagDef.QueryTableDef.DT_TABLE_ORD_SEARCH)
|
|
{
|
|
sQuery = " SELECT TOP 1 CMP_CD, STOR_CD, FLOOR_CD, TBL_NO "
|
|
+ " FROM MST_ORD "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " ORDER BY REG_DT ";
|
|
}
|
|
//#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end
|
|
|
|
// return -> 1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음
|
|
int ret = m_cSqlDbService.DBSelect(sQuery, out dtData);
|
|
if (ret == UserCom.NG) return UserCom.RST_IGNORE;
|
|
if (ret != UserCom.OK) return UserCom.RST_ERR;
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블 결제 완료 상태 Update
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <returns></returns>
|
|
public string UpdateTableCompletePayment(string[] aParam)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
try
|
|
{
|
|
sQuery = "UPDATE POSMST..MST_TBL "
|
|
+ " SET PAY_CMPT_DIV = '" + aParam[2] + "' "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.02, 연습모드
|
|
+ " AND FLOOR_CD = '" + aParam[0] + "' "
|
|
+ " AND TABLE_NO = '" + aParam[1] + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' "
|
|
;
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }, true) != UserCom.OK)
|
|
{
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블 사용 구분 Update
|
|
/// </summary>
|
|
/// <param name="pFloorCd"></param>
|
|
/// <param name="pTableNo"></param>
|
|
/// <param name="pPosNo"></param>
|
|
/// <param name="pUseFlag"></param>
|
|
/// <param name="pFirstOrderTm"></param>
|
|
/// <param name="pCustCount"></param>
|
|
/// <param name="pOrderAmount"></param>
|
|
/// <param name="groupCheck"></param>
|
|
/// <returns></returns>
|
|
public string UpdateTableUse(string pFloorCd, string pTableNo, string pPosNo, string pUseFlag, string pFirstOrderTm, int pCustCount, double pOrderAmount, bool groupCheck = false)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
try
|
|
{
|
|
// Begin Transaction
|
|
m_cSqlDbService.Begin();
|
|
|
|
// Table Use Flag Update
|
|
sQuery += " UPDATE POSMST..MST_TBL ";
|
|
sQuery += " SET TBL_USE_DIV = '" + pUseFlag + "' ";
|
|
|
|
if (pUseFlag == PosConst.TABLE_USE_FLAG.YES_USE)
|
|
{
|
|
sQuery += " , PAY_CMPT_DIV = '0' ";
|
|
}
|
|
if(pOrderAmount != 0)
|
|
{
|
|
sQuery += " , CUST_CNT = " + pCustCount + " ";
|
|
sQuery += " , FIRST_ORD_HOUR = '" + pFirstOrderTm + "' ";
|
|
sQuery += " , ORD_AMT = ORD_AMT + " + pOrderAmount + " ";
|
|
}
|
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.03, 연습모드
|
|
sQuery += " AND FLOOR_CD = '" + pFloorCd + "' ";
|
|
sQuery += " AND TBL_NO = '" + pTableNo + "' ";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
|
|
if (pUseFlag == PosConst.TABLE_USE_FLAG.YES_USE)
|
|
{
|
|
sQuery += " AND (TBL_USE_DIV = '" + PosConst.TABLE_USE_FLAG.NO_USE + "' OR TBL_USE_DIV IS NULL) ";
|
|
}
|
|
|
|
if(m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// 그룹된 테이블 모두 업데이트
|
|
if (groupCheck)
|
|
{
|
|
sQuery = "";
|
|
sQuery += "UPDATE POSMST..MST_TBL ";
|
|
sQuery += " SET TBL_USE_DIV = '" + pUseFlag + "' ";
|
|
if (pUseFlag == PosConst.TABLE_USE_FLAG.YES_USE)
|
|
{
|
|
sQuery += " , PAY_CMPT_DIV = '0' ";
|
|
}
|
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' ";
|
|
sQuery += " AND TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_GROUP + "' ";
|
|
sQuery += " AND (OP_FLOOR_CD + OP_TBL_NO) ";
|
|
sQuery += " IN (SELECT OP_FLOOR_CD + OP_TBL_NO FROM MST_TBL ";
|
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.03, 연습모드
|
|
sQuery += " AND FLOOR_CD = '" + pFloorCd + "' ";
|
|
sQuery += " AND TBL_NO = '" + pTableNo + "' ";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "') ";
|
|
if (pUseFlag == PosConst.TABLE_USE_FLAG.YES_USE)
|
|
{
|
|
sQuery += " AND (TBL_USE_DIV = '" + PosConst.TABLE_USE_FLAG.NO_USE + "' OR TBL_USE_DIV IS NULL) ";
|
|
}
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
}
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.Message);
|
|
sReturn = UserCom.RST_ERR;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 매장공지사항 조회
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <param name="dtData"></param>
|
|
/// <returns></returns>
|
|
public string SelectStoreNotice(string[] aParam, out DataTable dtData)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
dtData = null;
|
|
|
|
try
|
|
{
|
|
sQuery = " SELECT SEQ, TITLE, CONTENTS, CASHIER_ID, REG_DT FROM POSLOG..TR_STOR_BBS WITH(NOLOCK) ";
|
|
|
|
switch(aParam[0])
|
|
{
|
|
case PosConst.QueryTagDef.QueryStoreNoticeDef.ALL_SEARCH:
|
|
break;
|
|
case PosConst.QueryTagDef.QueryStoreNoticeDef.SEQ_SEATCH:
|
|
sQuery += " WHERE SEQ = " + aParam[1] + " ";
|
|
break;
|
|
}
|
|
|
|
sQuery += " ORDER BY SEQ DESC ";
|
|
|
|
if (m_cSqlDbService.DBSelect(sQuery, out dtData) != UserCom.OK)
|
|
{
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 매장공지사항 등록
|
|
/// </summary>
|
|
/// <param name="sTitle"></param>
|
|
/// <param name="sContents"></param>
|
|
/// <returns></returns>
|
|
public string RegisterStoreNotice(string sTitle, string sContents)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
string sInsQuery = string.Empty;
|
|
|
|
try
|
|
{
|
|
sInsQuery = " INSERT INTO POSLOG..TR_STOR_BBS ( TITLE, CONTENTS, CASHIER_ID, UPD_DT, REG_DT ) "
|
|
+ " VALUES ( N'{0}', N'{1}', '{2}', '{3}', '{4}' ) ";
|
|
sQuery = string.Format(sInsQuery
|
|
, sTitle
|
|
, sContents
|
|
, m_cPosStatus.Base.CashierNo
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss"));
|
|
|
|
// Begin Transaction
|
|
m_cSqlDbService.Begin();
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 매장공지사항 삭제
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <returns></returns>
|
|
public string DeleteStoreNotice(string[] aParam)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
try
|
|
{
|
|
sQuery += " DELETE FROM POSLOG..TR_STOR_BBS ";
|
|
switch (aParam[0])
|
|
{
|
|
case PosConst.QueryTagDef.QueryStoreNoticeDef.SEQ_DELETE:
|
|
sQuery += " WHERE SEQ = " + aParam[1] + " ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryStoreNoticeDef.DATE_DELETE:
|
|
sQuery += " WHERE REG_DT <= '" + aParam[1] + "' ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryStoreNoticeDef.ALL_DELETE:
|
|
break;
|
|
}
|
|
|
|
// Begin Transaction
|
|
m_cSqlDbService.Begin();
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 층마스터 조회
|
|
/// </summary>
|
|
/// <param name="aParam"></param>
|
|
/// <param name="dtData"></param>
|
|
/// <returns></returns>
|
|
public string SelectFloor(string[] aParam, out DataTable dtData)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
dtData = null;
|
|
|
|
try
|
|
{
|
|
sQuery += " SELECT FLOOR_CD, FLOOR_NM, UPD_DT, REG_DT, USE_YN FROM POSMST..MST_FLOOR WITH(NOLOCK) ";
|
|
|
|
switch(aParam[0])
|
|
{
|
|
case PosConst.QueryTagDef.QueryFloorDef.FLOOR_ALL_SEARCH:
|
|
sQuery += "WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryFloorDef.FLOOR_CD_SEARCH:
|
|
sQuery += "WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND FLOOR_CD LIKE '%" + aParam[1] + "%' ";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
break;
|
|
case PosConst.QueryTagDef.QueryFloorDef.FLOOR_NM_SEARCH:
|
|
sQuery += "WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND FLOOR_NM LIKE '%" + aParam[1] + "%' ";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
break;
|
|
}
|
|
sQuery += " ORDER BY FLOOR_CD ";
|
|
|
|
// return -> 1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음
|
|
int ret = m_cSqlDbService.DBSelect(sQuery, out dtData);
|
|
if (ret == UserCom.NG) return UserCom.RST_IGNORE;
|
|
if (ret != UserCom.OK) return UserCom.RST_ERR;
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// Select Order Information
|
|
/// </summary>
|
|
/// <param name="aParam">주문구분, 층코드, 테이블번호</param>
|
|
/// <param name="dtData"></param>
|
|
/// <returns></returns>
|
|
public string SelectTableOrderItem(string[] aParam, out DataTable dtData)
|
|
{
|
|
string sReturn = UserCom.RST_OK;
|
|
string sQuery = string.Empty;
|
|
dtData = null;
|
|
|
|
try
|
|
{
|
|
sQuery = "SELECT A.* \n"
|
|
+ " , B.CASHIER_NM AS ORD_PIC_NM \n" // Mod, 2017.03.29, 주문담당자
|
|
+ " FROM POSMST..MST_ORD A LEFT JOIN POSMST..MST_USER B \n"
|
|
+ " ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.ORD_PIC_NO = B.CASHIER_ID \n"
|
|
+ " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND A.TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n"
|
|
+ " AND A.ORD_DIV = '" + aParam[0].Trim() + "' \n"
|
|
+ " AND A.FLOOR_CD = '" + aParam[1].Trim() + "' \n"
|
|
+ " AND A.TBL_NO LIKE '" + aParam[2].Trim() + "%' \n"
|
|
+ " ORDER BY A.CMP_CD, A.STOR_CD, A.FLOOR_CD, A.TBL_NO, A.SEQ \n"
|
|
;
|
|
if (m_cSqlDbService.DBSelect(sQuery, out dtData) != UserCom.OK)
|
|
{
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 판매정보 조회
|
|
/// </summary>
|
|
/// <param name="dtData"></param>
|
|
/// <returns></returns>
|
|
public string SelectTableSaleInfo(out DataTable dtData)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
dtData = null;
|
|
|
|
try
|
|
{
|
|
sQuery = "SELECT SUM(A.ORDER_COUNT) AS ORDER_COUNT \n"
|
|
+ " , SUM(A.ORDER_AMT) AS ORDER_AMT \n"
|
|
+ " , SUM(A.CUST_CNT) AS CUST_CNT \n"
|
|
+ " , SUM(A.RESERVED_COUNT) AS RESERVED_COUNT \n"
|
|
+ " FROM (SELECT COUNT(FLOOR_CD) AS ORDER_COUNT \n"
|
|
+ " , SUM(ORD_AMT) AS ORDER_AMT \n"
|
|
+ " , SUM(CUST_CNT) AS CUST_CNT \n"
|
|
+ " , 0 AS RESERVED_COUNT \n"
|
|
+ " FROM POSMST..MST_TBL WITH(NOLOCK) \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n"
|
|
+ " AND (ORD_AMT <> 0 OR CUST_CNT <> 0 OR FIRST_ORD_HOUR <> '') \n"
|
|
+ " UNION ALL \n"
|
|
+ " SELECT 0 AS ORDER_COUNT \n"
|
|
+ " , 0 AS ORDER_AMT \n"
|
|
+ " , 0 AS CUST_CNT \n"
|
|
+ " , COUNT(RESERV_NO) AS RESERVED_COUNT \n"
|
|
+ " FROM POSMST..MST_RESERV WITH(NOLOCK) \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND RESERV_DT = '" + DateTime.Now.ToString("yyyyMMdd") + "'\n"
|
|
+ " AND (RESERV_TM = '' OR RESERV_TM >= '" + DateTime.Now.ToString("HHmm") + "') \n"
|
|
+ " AND FILLER1 = '" + m_cPosStatus.Base.TrainingFlag + "' \n"
|
|
+ " ) A \n"
|
|
;
|
|
if (m_cSqlDbService.DBSelect(sQuery, out dtData) != UserCom.OK)
|
|
{
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 주문마스터 기반으로 TRAN 생성
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string SelectMenuOrder()
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
DataTable dtReturn = new DataTable();
|
|
|
|
try
|
|
{
|
|
// 거래초기화
|
|
m_cDataSrv.DeleteTranItem();
|
|
|
|
if (m_cTrnStatus.Head.TableNo == string.Empty) return UserCom.RST_ERR;
|
|
|
|
var logMsg = string.Format("{0} ==> TYPE:{1} FLOOR:{2} TABLE:{3} TRAING TYPE:{4}"
|
|
, m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY ? "GROUP PAY START" : "ORDER START"
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, m_cPosStatus.Base.TrainingFlag);
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
logMsg);
|
|
|
|
sQuery = "SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.ITEM_CD \n"
|
|
+ " , A.ITEM_DIV, A.SHTCUT_ITEMNM, A.SALE_QTY, A.SALE_PRC, A.SALE_AMT, A.BILL_AMT \n"
|
|
+ " , A.DC_DIV, A.DC_RATE, A.ITEM_DC_AMT, A.SUM_DC_AMT, A.CPI_DC_AMT \n"
|
|
+ " , A.COOP_CARD_DC_DIV, A.COOP_CARD_DC_AMT, A.POINT_DC_DIV, A.POINT_DC_AMT, A.CPN_DC_DIV \n"
|
|
+ " , A.CPN_DC_AMT, A.EMP_DC_DIV, A.EMP_DC_AMT, A.SET_DC_AMT, A.ETC_DC_DIV \n"
|
|
+ " , A.ETC_DC, A.EXCEP_DC_DIV, A.EXCEP_DC_AMT, A.PACK_DIV, A.SET_MENU_CD, A.CPI_PRESENT_DIV, A.SUB_MEMO_DIV \n"
|
|
+ " , A.MSG1, A.MSG2, A.MSG3, A.MSG_REG_TIME, A.ORD_TIME \n"
|
|
+ " , A.ORD_COMP_DIV, A.CANCEL_DIV, A.CANCEL_DATE, B.SUB_STOR_CD \n"
|
|
+ " , B.L_CLSS, B.M_CLSS, B.S_CLSS, B.FLAVOUR_DIV, B.FLAVOUR_QTY \n"
|
|
+ " , B.FLAVOUR_STOCK, B.ITEM_NM, B.TAKE_IN_SALE_AMT, B.TAKE_OUT_SALE_AMT \n"
|
|
+ " , B.IF_MENU1, B.IF_MENU2, B.OPEN_ITEM_DIV, B.DISPO_ITEM_DIV, B.SUB_SET_MNG_TYPE \n"
|
|
+ " , B.ITEM_TAX_AMT_DIV, B.TAKE_IN_VAT_CD, B.TAKE_OUT_VAT_CD \n"
|
|
+ " , B.ITEM_COST, B.SALE_PRMT_YN, B.SALE_NOQ, B.FREE_GIFT_YN \n"
|
|
+ " , B.DC_PRMT_YN, B.COOP_CARD_DC_NOADM_YN, B.ACCUM_PRMT_YN, B.SVC_FEE_TRGT_YN \n"
|
|
+ " , B.CAKE_EXCHNG_CPN_USE_POSS_YN \n"
|
|
+ " , B.BTN_ITEM_IMG, B.NEW_ITEM_START_DT, B.NEW_ITEM_FNSH_DT, B.ITEM_TYPE, B.FILLER1 \n"
|
|
+ " , B.FILLER2, B.FILLER3, B.FILLER4, B.FILLER5 \n"
|
|
+ " , B.TAX_AMT_INCLUDE_YN \n" //2018.01.04;미주 상품 부가세 정보 ;girak.kim;
|
|
|
|
+ " , A.NOTAX_DIV \n"
|
|
+ " , A.FILLER1 AS SUB_MENU_MAIN_CD \n" // Add, 2017.03.15, 부가메뉴메인상품코드
|
|
+ " , A.ORD_PIC_NO, C.CASHIER_NM AS ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자
|
|
+ " , A.DC_TYPE \n" // Add, 2017.03.30
|
|
+ " , A.FILLER2 AS ORDER_NO \n" // Add, 2017.04.11
|
|
+ " , A.FILLER3 AS ORDER_SEQ \n" // Add, 2017.04.11
|
|
+ " FROM POSMST..MST_ORD A \n"
|
|
//#20170926 복합 매장인 경우 동일 상품코드가 있으면 2개가 생성되어 서브점포코드까지 JOIN start
|
|
//기존
|
|
//+ " LEFT JOIN POSMST..MST_ITEM B ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.ITEM_CD = B.ITEM_CD \n"
|
|
//변경
|
|
+ " LEFT JOIN POSMST..MST_ITEM B ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.ITEM_CD = B.ITEM_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD \n"
|
|
//#20170926 복합 매장인 경우 동일 상품코드가 있으면 2개가 생성되어 서브점포코드까지 JOIN end
|
|
+ " LEFT JOIN POSMST..MST_USER C ON A.CMP_CD = C.CMP_CD AND A.STOR_CD = C.STOR_CD AND A.ORD_PIC_NO = C.CASHIER_ID \n"
|
|
+ " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND A.TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02
|
|
+ " AND A.ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' \n"
|
|
;
|
|
|
|
if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY)
|
|
{
|
|
sQuery += " AND A.FLOOR_CD + A.TBL_NO IN \n"
|
|
+ " (SELECT FLOOR_CD + TBL_NO FROM POSMST..MST_TBL \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02
|
|
+ " AND TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_GROUP + "' \n"
|
|
+ " AND OP_FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' \n"
|
|
+ " AND OP_TBL_NO = '" + m_cTrnStatus.Head.TableNo + "') \n"
|
|
;
|
|
}
|
|
else
|
|
{
|
|
sQuery += " AND A.FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' \n"
|
|
+ " AND A.TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' \n"
|
|
;
|
|
}
|
|
|
|
sQuery += " ORDER BY A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ ";
|
|
|
|
m_cSqlDbService.DBSelect(sQuery, out dtReturn);
|
|
if (dtReturn != null && dtReturn.Rows.Count > 0)
|
|
{
|
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|
|
|
foreach (DataRow dr in dtReturn.Rows)
|
|
{
|
|
// 상품 정보 생성
|
|
Column.TR_PLU.DATA cPluItem = new Column.TR_PLU.DATA();
|
|
|
|
cPluItem.ORD_TIME = dr["ORD_TIME"].ToString();
|
|
cPluItem.FLOOR_CD = dr["FLOOR_CD"].ToString();
|
|
cPluItem.TBL_NO = dr["TBL_NO"].ToString();
|
|
cPluItem.CANCEL_DIV = dr["CANCEL_DIV"].ToString();
|
|
cPluItem.CANCEL_DATE = dr["CANCEL_DATE"].ToString();
|
|
cPluItem.ITEM_PLU_CD = dr["ITEM_CD"].ToString();
|
|
|
|
cPluItem.ITEM_BRAND_CD = m_cPosStatus.Base.BrandCd;
|
|
cPluItem.SUB_SHOP_CD = dr["SUB_STOR_CD"].ToString();
|
|
cPluItem.ITEM_DIV = dr["ITEM_DIV"].ToString();
|
|
cPluItem.SUB_SET_MNG_TYPE = dr["SUB_SET_MNG_TYPE"].ToString();
|
|
cPluItem.ITEM_NAME = dr["SHTCUT_ITEMNM"].ToString().Replace("'", "").Replace(",", "").Trim();
|
|
|
|
cPluItem.SALE_QTY = long.Parse(dr["SALE_QTY"].ToString());
|
|
cPluItem.ORG_QTY = cPluItem.SALE_QTY; // Add, 2017.03.31
|
|
cPluItem.SALE_PRC = double.Parse(dr["SALE_PRC"].ToString());
|
|
cPluItem.SALE_AMT = double.Parse(dr["SALE_AMT"].ToString());
|
|
cPluItem.BILL_AMT = double.Parse(dr["BILL_AMT"].ToString());
|
|
|
|
cPluItem.ITEM_INPUT_DIV = "0";
|
|
cPluItem.ITEM_BAR_CD = dr["ITEM_CD"].ToString();
|
|
cPluItem.ITEM_TAX_DIV = dr["ITEM_TAX_AMT_DIV"].ToString();
|
|
|
|
cPluItem.NOTAX_DIV = dr["NOTAX_DIV"].ToString().Trim(); // Add, 2017.02.15
|
|
if (string.IsNullOrWhiteSpace(cPluItem.NOTAX_DIV))
|
|
cPluItem.NOTAX_DIV = PosConst.ITEM_NOTAX_DIV.NO;
|
|
|
|
// 2018.01.04;미주 상품별 부가세 적용 처리;girak.kim;Start
|
|
//기존 소스
|
|
//cPluItem.TAX_AMT_INCLUDE_YN = m_cPosStatus.Mst.TaxAmtIncludeYn;
|
|
if (m_cPosStatus.Base.CmpCd.ToUpper().Equals(PosConst.POS_COMPANY_CODE.PCUS))
|
|
{
|
|
cPluItem.TAX_AMT_INCLUDE_YN = dr["TAX_AMT_INCLUDE_YN"].ToString();
|
|
}
|
|
else
|
|
{
|
|
cPluItem.TAX_AMT_INCLUDE_YN = m_cPosStatus.Mst.TaxAmtIncludeYn;
|
|
}
|
|
|
|
// 2018.01.04;미주 상품별 부가세 적용 처리;girak.kim;End
|
|
|
|
cPluItem.DC_DIV = dr["DC_DIV"].ToString();
|
|
cPluItem.DC_TYPE = CmUtil.GetDataRowStr(dr, "DC_TYPE"); // Add, 2017.03.30
|
|
cPluItem.DC_RATE = double.Parse(dr["DC_RATE"].ToString());
|
|
if (dr["DC_RATE"].ToString().Trim().Length > 5)
|
|
cPluItem.DC_RATE = double.Parse(dr["DC_RATE"].ToString().Trim().Substring(0, 5));
|
|
cPluItem.ITEM_DC_AMT = double.Parse(dr["ITEM_DC_AMT"].ToString());
|
|
cPluItem.SUM_DC_AMT = double.Parse(dr["SUM_DC_AMT"].ToString());
|
|
cPluItem.CPI_DC_AMT = double.Parse(dr["CPI_DC_AMT"].ToString());
|
|
cPluItem.COOP_CARD_DC_DIV = dr["COOP_CARD_DC_DIV"].ToString();
|
|
cPluItem.COOP_CARD_DC_AMT = double.Parse(dr["COOP_CARD_DC_AMT"].ToString());
|
|
cPluItem.POINT_DC_DIV = dr["POINT_DC_DIV"].ToString();
|
|
cPluItem.POINT_DC_AMT = double.Parse(dr["POINT_DC_AMT"].ToString());
|
|
cPluItem.CPN_DC_DIV = dr["CPN_DC_DIV"].ToString();
|
|
cPluItem.CPN_DC_AMT = double.Parse(dr["CPN_DC_AMT"].ToString());
|
|
cPluItem.EMP_DC_DIV = dr["EMP_DC_DIV"].ToString();
|
|
cPluItem.EMP_DC_AMT = double.Parse(dr["EMP_DC_AMT"].ToString());
|
|
cPluItem.SET_DC_AMT = double.Parse(dr["SET_DC_AMT"].ToString());
|
|
cPluItem.ETC_DC_DIV = dr["ETC_DC_DIV"].ToString();
|
|
cPluItem.ETC_DC_AMT = double.Parse(dr["ETC_DC"].ToString());
|
|
|
|
cPluItem.EXCEP_DC_DIV = dr["EXCEP_DC_DIV"].ToString();
|
|
cPluItem.EXCEP_DC_AMT = double.Parse(dr["EXCEP_DC_AMT"].ToString());
|
|
|
|
cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_OK;
|
|
cPluItem.PACK_DIV = dr["PACK_DIV"].ToString();
|
|
cPluItem.SET_MENU_CD = dr["SET_MENU_CD"].ToString();
|
|
cPluItem.CPI_PRESENT_DIV = dr["CPI_PRESENT_DIV"].ToString();
|
|
cPluItem.SUBPRC_MENU_KEY_DIV = dr["SUB_MEMO_DIV"].ToString();
|
|
|
|
// _YN필드시리즈 추가(2017.04.06)
|
|
cPluItem.CAKE_EXCHNG_CPN_USE_POSS_YN = CmUtil.GetDataRowStr(dr, "CAKE_EXCHNG_CPN_USE_POSS_YN");
|
|
cPluItem.DC_PRMT_YN = CmUtil.GetDataRowStr(dr, "DC_PRMT_YN");
|
|
cPluItem.COOP_CARD_DC_NOADM_YN = CmUtil.GetDataRowStr(dr, "COOP_CARD_DC_NOADM_YN");
|
|
|
|
// 상품메시지
|
|
cPluItem.ITEM_MEMO_1 = dr["MSG1"].ToString().Trim();
|
|
cPluItem.ITEM_MEMO_2 = dr["MSG2"].ToString().Trim();
|
|
cPluItem.ITEM_MEMO_3 = dr["MSG3"].ToString().Trim();
|
|
|
|
cPluItem.SUB_MENU_MAIN_CD = dr["SUB_MENU_MAIN_CD"].ToString().Trim(); // Add, 2017.03.15, 부가메뉴메인상품코드 FILLER1
|
|
cPluItem.DISPO_ITEM_DIV = dr["DISPO_ITEM_DIV"].ToString();
|
|
|
|
cPluItem.ORDER_NO = CmUtil.GetDataRowStr(dr, "ORDER_NO"); // Add, 2017.04.11
|
|
cPluItem.ORDER_SEQ = CmUtil.GetDataRowStr(dr, "ORDER_SEQ"); // Add, 2017.04.11
|
|
m_cTrnStatus.Head.OrderNo = cPluItem.ORDER_NO; // Add, 2017.04.11
|
|
|
|
// 주문담당자
|
|
m_cTrnStatus.Head.OrderPicNo = CmUtil.GetDataRowStr(dr, "ORD_PIC_NO"); // Add, 2017.03.28, 주문담당자
|
|
m_cTrnStatus.Head.OrderPicNm = CmUtil.GetDataRowStr(dr, "ORD_PIC_NM");
|
|
|
|
//#20170911 외식 캠페인 주문 후 결제 시 적용 안되는 현상 수정 start
|
|
//라그릴리아 외식 캠페인(2017901) 바로 결제 시 캠페인 적용되나, 주문 후 결제 시 캠페인 적용 안되는 현상 수정
|
|
cPluItem.L_CLSS = dr["L_CLSS"].ToString().Trim();
|
|
cPluItem.M_CLSS = dr["M_CLSS"].ToString().Trim();
|
|
cPluItem.S_CLSS = dr["S_CLSS"].ToString().Trim();
|
|
//#20170911 외식 캠페인 주문 후 결제 시 적용 안되는 현상 수정 end
|
|
|
|
aSaleItem.Add(cPluItem);
|
|
}
|
|
|
|
// 상품 판매가 계산
|
|
m_cPluService.ItemAmountExeccute(true, true);
|
|
}
|
|
else if (dtReturn != null)
|
|
{
|
|
if (m_cTrnStatus.Head.OrderFlag == PosConst.ORDER_TYPE.NORMAL)
|
|
{
|
|
// 테이블 마스터 삭제
|
|
sQuery = " UPDATE POSMST..MST_TBL ";
|
|
sQuery += " SET CUST_CNT = 0 ";
|
|
sQuery += " , FIRST_ORD_HOUR = '' ";
|
|
sQuery += " , ORD_AMT = 0 ";
|
|
sQuery += " , FILLER1 = '' ";
|
|
sQuery += " , FILLER2 = '' ";
|
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.02
|
|
sQuery += " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' ";
|
|
sQuery += " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
|
|
m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }, true);
|
|
}
|
|
}
|
|
|
|
// 고객정보 및 테이블 정보 획득
|
|
sQuery = "SELECT A.FLOOR_CD, B.FLOOR_NM, A.TBL_NO, A.TBL_NM, A.TBL_DISP_DIV, A.CUST_CNT, A.FILLER1, A.FILLER2 ";
|
|
sQuery += " FROM POSMST..MST_TBL A JOIN POSMST..MST_FLOOR B ";
|
|
sQuery += " ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.FLOOR_CD = B.FLOOR_CD AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
sQuery += " WHERE A.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND A.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND A.TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.02
|
|
if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY)
|
|
{
|
|
sQuery += " AND A.FLOOR_CD + A.TBL_NO IN (SELECT FLOOR_CD + TBL_NO FROM POSMST..MST_TBL ";
|
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.02
|
|
sQuery += " AND TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_GROUP + "' ";
|
|
sQuery += " AND OP_FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' ";
|
|
sQuery += " AND OP_TBL_NO = '" + m_cTrnStatus.Head.TableNo + "') ";
|
|
}
|
|
else
|
|
{
|
|
sQuery += " AND A.FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' ";
|
|
sQuery += " AND A.TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
}
|
|
sQuery += " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
sQuery += " ORDER BY A.FLOOR_CD, A.TBL_NO ";
|
|
|
|
m_cSqlDbService.DBSelect(sQuery, out dtReturn);
|
|
if (dtReturn != null && dtReturn.Rows.Count > 0)
|
|
{
|
|
ArrayList aGuestItem = (ArrayList)StateObject.GetItemObject(Column.TR_GUEST.ITEM);
|
|
|
|
foreach (DataRow dr in dtReturn.Rows)
|
|
{
|
|
m_cTrnStatus.Head.CustCnt += CmUtil.GetDataRowInt(dr, "CUST_CNT") == 0 ? 1 : CmUtil.GetDataRowInt(dr, "CUST_CNT");
|
|
m_cTrnStatus.Head.FloorNm = dr["FLOOR_NM"].ToString();
|
|
|
|
#region 2017.01.31, 테이블표시 구분은 테이블명으로 고정한다.
|
|
// 2017.01.31, 테이블표시 구분은 테이블명으로 고정한다.
|
|
//string sDispFlag = dr["TBL_DISP_DIV"].ToString();
|
|
//if (sDispFlag == PosConst.TABLE_DISP_FLAG.TABLE_NO)
|
|
//{
|
|
// m_cTrnStatus.Head.TableNm = m_cTrnStatus.Head.TableNo;
|
|
//}
|
|
//else if (sDispFlag == PosConst.TABLE_DISP_FLAG.TABLE_NAME)
|
|
//{
|
|
// m_cTrnStatus.Head.TableNm = dr["TBL_NM"].ToString();
|
|
//}
|
|
//else
|
|
//{
|
|
// m_cTrnStatus.Head.TableNm = m_cTrnStatus.Head.TableNo + "【" + dr["TBL_NM"].ToString() + "】";
|
|
//}
|
|
#endregion
|
|
|
|
m_cTrnStatus.Head.TableNm = dr["TBL_NM"].ToString().Trim();
|
|
|
|
// 객층정보
|
|
string[] temp = null;
|
|
temp = CmUtil.GetDataRowStr(dr, "FILLER1").Split('|');
|
|
if (temp.Length > 1)
|
|
{
|
|
m_cTrnStatus.Head.PayGndrDiv = temp[0];
|
|
m_cTrnStatus.Head.PayAge = CmUtil.IntParse(temp[1]);
|
|
}
|
|
|
|
// 고객상세정보
|
|
temp = CmUtil.GetDataRowStr(dr, "FILLER2").Split('|');
|
|
if (temp.Length >= 10)
|
|
{
|
|
if (aGuestItem.Count == 0)
|
|
{
|
|
aGuestItem.Add(new Column.TR_GUEST.DATA());
|
|
}
|
|
|
|
Column.TR_GUEST.DATA custLst = (Column.TR_GUEST.DATA)aGuestItem[0];
|
|
|
|
custLst.MALE_10L += CmUtil.IntParse(temp[0]);
|
|
custLst.MALE_20L += CmUtil.IntParse(temp[1]);
|
|
custLst.MALE_30L += CmUtil.IntParse(temp[2]);
|
|
custLst.MALE_40L += CmUtil.IntParse(temp[3]);
|
|
custLst.MALE_50L += CmUtil.IntParse(temp[4]);
|
|
|
|
custLst.FMALE_10L += CmUtil.IntParse(temp[5]);
|
|
custLst.FMALE_20L += CmUtil.IntParse(temp[6]);
|
|
custLst.FMALE_30L += CmUtil.IntParse(temp[7]);
|
|
custLst.FMALE_40L += CmUtil.IntParse(temp[8]);
|
|
custLst.FMALE_50L += CmUtil.IntParse(temp[9]);
|
|
|
|
m_cTrnStatus.Head.ManCmpnpsnCnt += CmUtil.IntParse(temp[0]) + CmUtil.IntParse(temp[1]) + CmUtil.IntParse(temp[2]) + CmUtil.IntParse(temp[3]) + CmUtil.IntParse(temp[4]);
|
|
m_cTrnStatus.Head.WomanCmpnpsnCnt += CmUtil.IntParse(temp[5]) + CmUtil.IntParse(temp[6]) + CmUtil.IntParse(temp[7]) + CmUtil.IntParse(temp[8]) + CmUtil.IntParse(temp[9]);
|
|
}
|
|
}
|
|
}
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
m_cDataSrv.DeleteTranItem();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 주문 완료 처리
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string CompleteMenuOrder()
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
string sInsQuery = string.Empty;
|
|
string sInsQuery2 = string.Empty;
|
|
string sUpdQuery = string.Empty;
|
|
string sUpdQuery2 = string.Empty;
|
|
|
|
bool bUpdate = false;
|
|
bool bOrdUpdate = false;
|
|
|
|
int iSeq = 0;
|
|
|
|
try
|
|
{
|
|
// 층/테이블 정보확인
|
|
if (m_cTrnStatus.Head.FloorCd == string.Empty && m_cTrnStatus.Head.TableNo == string.Empty) return UserCom.RST_OK;
|
|
// 데이블그룹 결제모드이면, 주문을 변경 할 수 없다.
|
|
if (m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY) return UserCom.RST_OK;
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"ORDER COMPLETE ==> TYPE:" + m_cTrnStatus.Head.OrderFlag + " FLOOR:" + m_cTrnStatus.Head.FloorCd
|
|
+ " TABLE:" + m_cTrnStatus.Head.TableNo + " AMT:" + m_cTrnStatus.Sale.NetSaleAmt.ToString());
|
|
|
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|
|
|
// 주문번호/주문차수
|
|
var orderNo = string.Empty;
|
|
var orderSeq = string.Empty;
|
|
if (((Column.TR_PLU.DATA)alPluItem[0]).ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|
{
|
|
// 주문번호 발번
|
|
orderNo = GetOrderNoForDb();
|
|
orderSeq = "01";
|
|
}
|
|
else
|
|
{
|
|
orderNo = ((Column.TR_PLU.DATA)alPluItem[0]).ORDER_NO;
|
|
orderSeq = GetOrderSeq(m_cTrnStatus.Head.FloorCd, m_cTrnStatus.Head.TableNo);
|
|
}
|
|
|
|
// Begin Transaction
|
|
m_cSqlDbService.Begin();
|
|
|
|
if(m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL)
|
|
{
|
|
// 주문 데이터 업데이트
|
|
if (m_cTrnStatus.Head.TradeDiv == ItemConst.TRAN_DIV.NORMAL && m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT)
|
|
{
|
|
#region 주문데이터 업데이트 처리
|
|
|
|
#region >> Query string format
|
|
|
|
sInsQuery = " INSERT INTO POSMST..MST_ORD \n";
|
|
sInsQuery += " ( CMP_CD, STOR_CD, ORD_DIV, FLOOR_CD, TBL_NO, SEQ, SUB_STOR_CD, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY \n";
|
|
sInsQuery += " , SALE_PRC, SALE_AMT, BILL_AMT, DC_DIV, DC_RATE, ITEM_DC_AMT, SUM_DC_AMT, CPI_DC_AMT, COOP_CARD_DC_DIV, COOP_CARD_DC_AMT \n";
|
|
sInsQuery += " , POINT_DC_DIV, POINT_DC_AMT, CPN_DC_DIV, CPN_DC_AMT, EMP_DC_DIV, EMP_DC_AMT, SET_DC_AMT, ETC_DC_DIV, ETC_DC, EXCEP_DC_DIV \n";
|
|
sInsQuery += " , EXCEP_DC_AMT, PACK_DIV, SET_MENU_CD, CPI_PRESENT_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORD_TIME \n";
|
|
sInsQuery += " , ORD_COMP_DIV, ORD_PIC_NO , CANCEL_DIV, CANCEL_DATE, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, REG_DT, NOTAX_DIV \n";
|
|
sInsQuery += " , TRAIN_MODE_YN \n"; // Add, 2017.03.02
|
|
sInsQuery += " , DC_TYPE \n"; // Add, 2017.03.30
|
|
sInsQuery += " , ORG_QTY \n"; // Add, 2017.03.31
|
|
sInsQuery += " , ORD_POS_NO \n"; // Add, 2017.04.10
|
|
sInsQuery += " ) VALUES ( \n";
|
|
sInsQuery += " '{0}' , '{1}', '{2}', '{3}', '{4}', '{5}', '{6}', '{7}', '{8}', N'{9}' \n";
|
|
sInsQuery += " , '{10}' , '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}' \n";
|
|
sInsQuery += " , '{20}' , '{21}', '{22}', '{23}', '{24}', '{25}', '{26}', '{27}', '{28}', '{29}' \n";
|
|
sInsQuery += " , '{30}' , '{31}', '{32}', '{33}', '{34}', '{35}', N'{36}', N'{37}', N'{38}', '{39}' \n";
|
|
sInsQuery += " , '{40}' , '{41}', '{42}', '{43}', '{44}', '{45}', '{46}', '{47}', '{48}', '{49}', '{50}', '{51}' \n";
|
|
sInsQuery += " , '{52}' \n"; // Add, 2017.03.02
|
|
sInsQuery += " , '{53}' \n"; // Add, 2017.03.30
|
|
sInsQuery += " , {54} \n"; // Add, 2017.03.31
|
|
sInsQuery += " , '{55}' \n"; // Add, 2017.04.10
|
|
sInsQuery += " ) ";
|
|
|
|
sUpdQuery = " UPDATE POSMST..MST_ORD \n";
|
|
sUpdQuery += " SET SALE_QTY = {0}, SALE_PRC = {1}, SALE_AMT = {2}, BILL_AMT = {3} \n";
|
|
sUpdQuery += " , DC_DIV = '{4}', DC_RATE = {5}, ITEM_DC_AMT = {6}, SUM_DC_AMT = {7} \n";
|
|
sUpdQuery += " , CPI_DC_AMT = {8}, COOP_CARD_DC_DIV = '{9}' \n";
|
|
sUpdQuery += " , COOP_CARD_DC_AMT = {10}, POINT_DC_DIV = '{11}', POINT_DC_AMT = {12}, CPN_DC_DIV = '{13}' \n";
|
|
sUpdQuery += " , CPN_DC_AMT = {14}, EMP_DC_DIV = '{15}', EMP_DC_AMT = {16}, SET_DC_AMT = {17} \n";
|
|
sUpdQuery += " , ETC_DC_DIV = '{18}', ETC_DC = {19}, EXCEP_DC_DIV = '{20}', EXCEP_DC_AMT = {21} \n";
|
|
sUpdQuery += " , PACK_DIV = '{22}', SET_MENU_CD = '{23}' \n";
|
|
sUpdQuery += " , CPI_PRESENT_DIV = '{24}', SUB_MEMO_DIV = '{25}', ORD_TIME = '{26}', ORD_COMP_DIV = '{27}' \n";
|
|
sUpdQuery += " , CANCEL_DIV = '{28}', CANCEL_DATE = '{29}', FILLER1 = '{30}', FILLER2 = '{31}' \n";
|
|
sUpdQuery += " , FILLER3 = '{32}', FILLER4 = '{33}', FILLER5 = '{34}', UPD_DT = '{35}' \n";
|
|
sUpdQuery += " , NOTAX_DIV = '{42}' \n";
|
|
sUpdQuery += " , DC_TYPE = '{44}' \n"; // Add, 2017.03.30
|
|
sUpdQuery += " , ORG_QTY = {45} \n"; // Add, 2017.03.31
|
|
sUpdQuery += " , ORD_POS_NO = '{46}' \n"; // Add, 2017.04.10
|
|
sUpdQuery += " WHERE CMP_CD = '{36}' AND STOR_CD = '{37}' AND ORD_DIV = '{38}' AND FLOOR_CD = '{39}' AND TBL_NO = '{40}' AND SEQ = {41} \n";
|
|
sUpdQuery += " AND TRAIN_MODE_YN = '{43}' "; // Add, 2017.03.02
|
|
|
|
#endregion
|
|
|
|
iSeq = 0;
|
|
foreach(Column.TR_PLU.DATA cPluItem in alPluItem)
|
|
{
|
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL || cPluItem.CANCEL_DIV_MAIN == PosConst.CANCEL_DIV.CANCEL)
|
|
cPluItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|
|
|
// 주문데이터 업데이트
|
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|
{
|
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|
|
|
cPluItem.ORDER_NO = orderNo; // Add, 2017.04.11, 주문번호
|
|
cPluItem.ORDER_SEQ = orderSeq; // Add, 2017.04.11, 주문차수
|
|
|
|
#region ## INSERT INTO POSMST..MST_ORD
|
|
sQuery = string.Format(sInsQuery
|
|
, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, (iSeq + 1).ToString()
|
|
, cPluItem.SUB_SHOP_CD // Add, 2017.02.02, 서브매장코드
|
|
, cPluItem.ITEM_PLU_CD
|
|
, cPluItem.ITEM_DIV
|
|
, CmUtil.LeftH(cPluItem.ITEM_NAME, 30)
|
|
, cPluItem.SALE_QTY.ToString()
|
|
, cPluItem.SALE_PRC.ToString()
|
|
, cPluItem.SALE_AMT.ToString()
|
|
, cPluItem.BILL_AMT.ToString()
|
|
, cPluItem.DC_DIV
|
|
, cPluItem.DC_RATE.ToString()
|
|
, cPluItem.ITEM_DC_AMT.ToString()
|
|
, cPluItem.SUM_DC_AMT.ToString()
|
|
, cPluItem.CPI_DC_AMT.ToString()
|
|
, cPluItem.COOP_CARD_DC_DIV
|
|
, cPluItem.COOP_CARD_DC_AMT.ToString()
|
|
, cPluItem.POINT_DC_DIV
|
|
, cPluItem.POINT_DC_AMT.ToString()
|
|
, cPluItem.CPN_DC_DIV
|
|
, cPluItem.CPN_DC_AMT.ToString()
|
|
, cPluItem.EMP_DC_DIV
|
|
, cPluItem.EMP_DC_AMT.ToString()
|
|
, cPluItem.SET_DC_AMT.ToString()
|
|
, cPluItem.ETC_DC_DIV
|
|
, cPluItem.ETC_DC_AMT.ToString()
|
|
, cPluItem.EXCEP_DC_DIV
|
|
, cPluItem.EXCEP_DC_AMT.ToString()
|
|
, cPluItem.PACK_DIV
|
|
, cPluItem.SET_MENU_CD
|
|
, cPluItem.CPI_PRESENT_DIV
|
|
, cPluItem.SUBPRC_MENU_KEY_DIV
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_1) // MSG1
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_2) // MSG2
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_3) // MSG3
|
|
, string.IsNullOrWhiteSpace(cPluItem.ITEM_MEMO_1 + cPluItem.ITEM_MEMO_2 + cPluItem.ITEM_MEMO_3)
|
|
? string.Empty : DateTime.Now.ToString("HHmmss") // MSG_REG_TIME
|
|
, cPluItem.ORD_TIME
|
|
, cPluItem.ORDER_OK_FLAG
|
|
, m_cTrnStatus.Head.OrderPicNo
|
|
, cPluItem.CANCEL_DIV
|
|
, cPluItem.CANCEL_DATE
|
|
, cPluItem.SUB_MENU_MAIN_CD // Add, 2017.03.15, 부가메뉴메인상품코드 FILLER1
|
|
, cPluItem.ORDER_NO // Add, 2017.04.11, 주문번호
|
|
, cPluItem.ORDER_SEQ // Add, 2017.04.11, 주문차수
|
|
, string.Empty
|
|
, string.Empty
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, cPluItem.NOTAX_DIV // Add, 2017.02.15
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, cPluItem.DC_TYPE // Add, 2017.03.30
|
|
, cPluItem.ORG_QTY // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
bUpdate = true;
|
|
bOrdUpdate = true;
|
|
|
|
#endregion
|
|
}
|
|
else if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD)
|
|
{
|
|
#region ## UPDATE POSMST..MST_ORD
|
|
sQuery = string.Format(sUpdQuery
|
|
, cPluItem.SALE_QTY.ToString()
|
|
, cPluItem.SALE_PRC.ToString()
|
|
, cPluItem.SALE_AMT.ToString()
|
|
, cPluItem.BILL_AMT.ToString()
|
|
, cPluItem.DC_DIV
|
|
, cPluItem.DC_RATE
|
|
, cPluItem.ITEM_DC_AMT.ToString()
|
|
, cPluItem.SUM_DC_AMT.ToString()
|
|
, cPluItem.CPI_DC_AMT.ToString()
|
|
, cPluItem.COOP_CARD_DC_DIV
|
|
, cPluItem.COOP_CARD_DC_AMT.ToString()
|
|
, cPluItem.POINT_DC_DIV
|
|
, cPluItem.POINT_DC_AMT.ToString()
|
|
, cPluItem.CPN_DC_DIV
|
|
, cPluItem.CPN_DC_AMT.ToString()
|
|
, cPluItem.EMP_DC_DIV
|
|
, cPluItem.EMP_DC_AMT.ToString()
|
|
, cPluItem.SET_DC_AMT.ToString()
|
|
, cPluItem.ETC_DC_DIV
|
|
, cPluItem.ETC_DC_AMT.ToString()
|
|
, cPluItem.EXCEP_DC_DIV
|
|
, cPluItem.EXCEP_DC_AMT.ToString()
|
|
, cPluItem.PACK_DIV
|
|
, cPluItem.SET_MENU_CD
|
|
, cPluItem.CPI_PRESENT_DIV
|
|
, cPluItem.SUBPRC_MENU_KEY_DIV
|
|
, cPluItem.ORD_TIME
|
|
, cPluItem.ORDER_OK_FLAG
|
|
, cPluItem.CANCEL_DIV
|
|
, cPluItem.CANCEL_DATE
|
|
, cPluItem.SUB_MENU_MAIN_CD // Add, 2017.03.15, 부가메뉴메인상품코드 FILLER1
|
|
, cPluItem.ORDER_NO // Add, 2017.04.11, 주문번호 FILLER2
|
|
, cPluItem.ORDER_SEQ // Add, 2017.04.11, 주문차수 FILLER3
|
|
, string.Empty
|
|
, string.Empty
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, iSeq + 1
|
|
, cPluItem.NOTAX_DIV // Add, 2017.02.15
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, cPluItem.DC_TYPE // Add, 2017.03.30
|
|
, cPluItem.ORG_QTY // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
|
|
if(m_cSqlDbService.DBExecuteNonQuery(new string[] {sQuery}) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) bUpdate = true;
|
|
bOrdUpdate = true;
|
|
|
|
#endregion
|
|
}
|
|
iSeq++;
|
|
}
|
|
#endregion
|
|
|
|
//if((bUpdate == true || bOrdUpdate == true) && m_cTrnStatus.Head.OrderFlag == PosConst.ORDER_TYPE.NORMAL)
|
|
if (m_cTrnStatus.Head.OrderFlag == PosConst.ORDER_TYPE.NORMAL)
|
|
{
|
|
#region 테이블 마스터 업데이트 처리 (주문완료)
|
|
|
|
// 주문시간
|
|
var sOrderTime = DateTime.Now.ToString("yyyyMMddHHmmss");
|
|
|
|
// 객층/객수
|
|
var custCnt = m_cTrnStatus.Head.CustCnt;
|
|
var custAge = string.Format("{0}|{1}", m_cTrnStatus.Head.PayGndrDiv, m_cTrnStatus.Head.PayAge);
|
|
var custLst = string.Empty;
|
|
ArrayList aGuestItem = (ArrayList)StateObject.GetItemObject(Column.TR_GUEST.ITEM);
|
|
if (aGuestItem.Count > 0)
|
|
{
|
|
var custArray = new int[10];
|
|
Column.TR_GUEST.DATA cGuestItem = (Column.TR_GUEST.DATA)aGuestItem[0];
|
|
custArray[0] = cGuestItem.MALE_10L;
|
|
custArray[1] = cGuestItem.MALE_20L;
|
|
custArray[2] = cGuestItem.MALE_30L;
|
|
custArray[3] = cGuestItem.MALE_40L;
|
|
custArray[4] = cGuestItem.MALE_50L;
|
|
custArray[5] = cGuestItem.FMALE_10L;
|
|
custArray[6] = cGuestItem.FMALE_20L;
|
|
custArray[7] = cGuestItem.FMALE_30L;
|
|
custArray[8] = cGuestItem.FMALE_40L;
|
|
custArray[9] = cGuestItem.FMALE_50L;
|
|
|
|
custLst = string.Join("|", custArray);
|
|
}
|
|
|
|
sQuery = " UPDATE POSMST..MST_TBL \n";
|
|
sQuery += " SET TBL_USE_DIV = '" + PosConst.TABLE_USE_FLAG.NO_USE + "' \n";
|
|
sQuery += " , CUST_CNT = " + custCnt.ToString() + " \n";
|
|
sQuery += " , FILLER1 = '" + custAge + "' \n";
|
|
sQuery += " , FILLER2 = '" + custLst + "' \n";
|
|
sQuery += " , FIRST_ORD_HOUR = CASE WHEN RTRIM(ISNULL(FIRST_ORD_HOUR, '')) = '' THEN '" + sOrderTime + "' ELSE FIRST_ORD_HOUR END \n";
|
|
sQuery += " , ORD_AMT = " + m_cTrnStatus.Sale.NetSaleAmt.ToString() + " \n";
|
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n";
|
|
sQuery += " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n"; // Add, 2017.03.02, 연습모드
|
|
sQuery += " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' \n";
|
|
sQuery += " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' \n";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n";
|
|
if(m_cSqlDbService.DBExecuteNonQuery(new string[] {sQuery}) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
}
|
|
|
|
// 주방출력 데이터 업데이트
|
|
if(m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT)
|
|
{
|
|
#region 주방출력 데이터 업데이트
|
|
|
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL)
|
|
{
|
|
sQuery = " UPDATE POSMST..MST_KTCH_ORD_MSG ";
|
|
sQuery += " SET CANCEL_DIV = '" + PosConst.CANCEL_DIV.CANCEL +"' ";
|
|
sQuery += " , SEND_YN = CASE WHEN SEND_YN = '0' THEN '9' ELSE '0' END ";
|
|
sQuery += " , SEND_CONFIRM_DIV = '0' ";
|
|
sQuery += " , RESEND_YN = '0' ";
|
|
sQuery += " , ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' "; // Add, 2017.04.08
|
|
sQuery += " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.02
|
|
sQuery += " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' ";
|
|
sQuery += " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' ";
|
|
sQuery += " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
|
|
if(m_cSqlDbService.DBExecuteNonQuery(new string[] {sQuery}) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
#region ### 주방데이터 초기화
|
|
// 주방데이터 초기화
|
|
if (((Column.TR_PLU.DATA)alPluItem[0]).ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|
{
|
|
// 주방데이터 삭제
|
|
sQuery = " DELETE FROM POSMST..MST_KTCH_ORD_MSG ";
|
|
sQuery += " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.02
|
|
sQuery += " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' ";
|
|
sQuery += " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' ";
|
|
sQuery += " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// 추가 주방데이터 삭제
|
|
sQuery = " DELETE FROM POSMST..MST_KTCH_ORD_MSG_ADD ";
|
|
sQuery += " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.02
|
|
sQuery += " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' ";
|
|
sQuery += " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' ";
|
|
sQuery += " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// KPS 주방데이터 삭제
|
|
sQuery = " DELETE FROM POSMST..MST_KPS_ORD_MSG ";
|
|
sQuery += " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.02
|
|
sQuery += " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' ";
|
|
sQuery += " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' ";
|
|
sQuery += " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// 좌석메모 데이터 삭제
|
|
sQuery = " DELETE FROM POSMST..MST_SEAT_MEMO "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.02
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' "
|
|
+ " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region ### Query string format
|
|
sInsQuery = " INSERT INTO POSMST..MST_KTCH_ORD_MSG ";
|
|
sInsQuery += " ( ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV ";
|
|
sInsQuery += " , SET_MENU_CD, ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO ";
|
|
sInsQuery += " , ORG_BILLDT, ORG_BILL_NO, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, SUB_STOR_CD ";
|
|
sInsQuery += " , TRAIN_MODE_YN "; // Add, 2017.03.02, 연습모드
|
|
sInsQuery += " , KTCH_MSG "; // Add, 2017.03.21
|
|
sInsQuery += " , ORD_PIC_NM "; // Add, 2017.03.28, 주문담당자
|
|
sInsQuery += " , ORG_QTY "; // Add, 2017.03.31
|
|
sInsQuery += " , ORD_POS_NO "; // Add, 2017.04.10
|
|
sInsQuery += " , KDS_SEND_YN "; // Add, 2017.04.26, KDS 전송구분
|
|
sInsQuery += " ) VALUES ( ";
|
|
sInsQuery += " '{0}', '{1}', '{2}', {3}, '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', N'{13}', {14}, '{15}' ";
|
|
sInsQuery += " , '{16}', '{17}', '{18}', '{19}', N'{20}', N'{21}', N'{22}', '{23}', '{24}' ";
|
|
sInsQuery += " , '{25}', '{26}', '{27}', '{28}', '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}', '{37}' ";
|
|
sInsQuery += " , '{38}' "; // Add, 2017.03.02, 연습모드
|
|
sInsQuery += " , N'{39}' "; // Add, 2017.03.21
|
|
sInsQuery += " , N'{40}' "; // Add, 2017.03.28, 주문담당자
|
|
sInsQuery += " , {41} "; // Add, 2017.03.31
|
|
sInsQuery += " , '{42}' "; // Add, 2017.04.10
|
|
sInsQuery += " , '{43}' "; // Add, 2017.04.26, KDS 전송구분
|
|
sInsQuery += " ) ";
|
|
|
|
sUpdQuery = " UPDATE POSMST..MST_KTCH_ORD_MSG ";
|
|
sUpdQuery += " SET SALE_QTY = {0} ";
|
|
sUpdQuery += " , PACK_DIV = '{1}' ";
|
|
sUpdQuery += " , CANCEL_DIV = '{2}' ";
|
|
sUpdQuery += " , SUB_MEMO_DIV = '{3}' ";
|
|
sUpdQuery += " , MSG1 = N'{4}' ";
|
|
sUpdQuery += " , MSG2 = N'{5}' ";
|
|
sUpdQuery += " , MSG3 = N'{6}' ";
|
|
sUpdQuery += " , MSG_REG_TIME = '{7}' ";
|
|
sUpdQuery += " , SEND_YN = CASE WHEN SEND_YN = '0' THEN '9' ELSE '0' END ";
|
|
sUpdQuery += " , SEND_CONFIRM_DIV = '{8}' ";
|
|
sUpdQuery += " , RESEND_YN = '{9}' ";
|
|
sUpdQuery += " , UPD_DT = '{10}' ";
|
|
sUpdQuery += " , FILLER1 = '{15}' "; // Add, 2017.01.18, 수동출력
|
|
sUpdQuery += " , FILLER3 = '{16}' "; // Add, 2017.02.29, 신규/추가/삭제 주문구분
|
|
sUpdQuery += " , KTCH_MSG = N'{18}' "; // Add, 2017.03.21
|
|
sUpdQuery += " , ORG_QTY = {19} "; // Add, 2017.03.31
|
|
sUpdQuery += " , ORD_POS_NO = '{20}' "; // Add, 2017.04.10
|
|
sUpdQuery += " WHERE ORD_DIV = '{11}' AND FLOOR_CD = '{12}' AND TBL_NO = '{13}' AND SEQ = {14} ";
|
|
sUpdQuery += " AND TRAIN_MODE_YN = '{17}' "; // Add, 2017.03.01, 연습모드
|
|
|
|
sUpdQuery2 = " UPDATE POSMST..MST_KTCH_ORD_MSG ";
|
|
sUpdQuery2 += " SET SALE_QTY = {0} ";
|
|
sUpdQuery2 += " , PACK_DIV = '{1}' ";
|
|
sUpdQuery2 += " , CANCEL_DIV = '{2}' ";
|
|
sUpdQuery2 += " , SUB_MEMO_DIV = '{3}' ";
|
|
sUpdQuery2 += " , MSG1 = N'{4}' ";
|
|
sUpdQuery2 += " , MSG2 = N'{5}' ";
|
|
sUpdQuery2 += " , MSG3 = N'{6}' ";
|
|
sUpdQuery2 += " , MSG_REG_TIME = '{7}' ";
|
|
sUpdQuery2 += " , SEND_YN = '0' ";
|
|
sUpdQuery2 += " , SEND_CONFIRM_DIV = '{8}' ";
|
|
sUpdQuery2 += " , RESEND_YN = '{9}' ";
|
|
sUpdQuery2 += " , UPD_DT = '{10}' ";
|
|
sUpdQuery2 += " , FILLER1 = '{15}' "; // Add, 2017.01.18, 수동출력
|
|
sUpdQuery2 += " , FILLER3 = '{16}' "; // Add, 2017.02.29, 신규/추가/삭제 주문구분
|
|
sUpdQuery2 += " , KTCH_MSG = N'{18}' "; // Add, 2017.03.21
|
|
sUpdQuery2 += " , ORG_QTY = {19} "; // Add, 2017.03.31
|
|
sUpdQuery2 += " , ORD_POS_NO = '{20}' "; // Add, 2017.04.10
|
|
sUpdQuery2 += " WHERE ORD_DIV = '{11}' AND FLOOR_CD = '{12}' AND TBL_NO = '{13}' AND SEQ = {14} ";
|
|
sUpdQuery2 += " AND TRAIN_MODE_YN = '{17}' "; // Add, 2017.03.01, 연습모드
|
|
|
|
#endregion
|
|
|
|
int iSeq2 = 0;
|
|
for(int nLoop = 0;nLoop < alPluItem.Count;nLoop++)
|
|
{
|
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[nLoop];
|
|
|
|
var itemMemoRegTime = string.Empty;
|
|
var temp = cPluItem.ITEM_MEMO_1 + cPluItem.ITEM_MEMO_2 + cPluItem.ITEM_MEMO_3;
|
|
if (string.IsNullOrWhiteSpace(temp) == false) itemMemoRegTime = DateTime.Now.ToString("HHmmss");
|
|
|
|
// 주방프린트 수동출력 사용자 선택값 (add, 2017.01.18)
|
|
var menualOrderValue = string.Empty;
|
|
var menualMsgRegTime = string.Empty;
|
|
var menualOrderMemo = string.Empty;
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "1")
|
|
{
|
|
// 장치코드 또는 NOPRINT
|
|
menualOrderValue = string.IsNullOrWhiteSpace(m_cTrnStatus.Sale.MenualOrderValue)
|
|
? "NOPRINT"
|
|
: m_cTrnStatus.Sale.MenualOrderValue;
|
|
}
|
|
else if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2")
|
|
{
|
|
// 선택상품코드 또는 NOPRINT
|
|
int idx = m_cTrnStatus.Sale.MenualOrderValue.IndexOf(nLoop.ToString());
|
|
menualOrderValue = idx < 0 ? "NOPRINT" : "PRINT";
|
|
|
|
// Del, 2017.04.25, 주방메모 출력 (대기번호 입력)
|
|
// 주방메모
|
|
//if (menualOrderValue != "NOPRINT" && string.IsNullOrWhiteSpace(m_cTrnStatus.Sale.MenualOrderMemo) == false)
|
|
//{
|
|
// menualOrderMemo = m_cTrnStatus.Sale.MenualOrderMemo.Trim();
|
|
// menualMsgRegTime = DateTime.Now.ToString("HHmmss");
|
|
//}
|
|
}
|
|
|
|
// Add, 2017.04.25, 주방메모 출력 (대기번호 입력)
|
|
if (menualOrderValue != "NOPRINT" && string.IsNullOrWhiteSpace(m_cTrnStatus.Sale.MenualOrderMemo) == false)
|
|
{
|
|
menualOrderMemo = m_cTrnStatus.Sale.MenualOrderMemo.Trim();
|
|
menualMsgRegTime = DateTime.Now.ToString("HHmmss");
|
|
}
|
|
|
|
// 신규,추가,삭제 구분 체크
|
|
string addOrdFlag = string.Empty;
|
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL)
|
|
{
|
|
addOrdFlag = "DEL";
|
|
}
|
|
// Mod, 2017.04.24, 주문완료 후 할인(무료) 등록 시 주방출력되는 버그 수정
|
|
//else if (cPluItem.SALE_QTY - cPluItem.ORG_QTY < 0)
|
|
//{
|
|
// addOrdFlag = "DEL";
|
|
//}
|
|
//else if (cPluItem.ORG_QTY > 0)
|
|
//{
|
|
// addOrdFlag = "ADD";
|
|
//}
|
|
else if (cPluItem.ORG_QTY > 0)
|
|
{
|
|
if (cPluItem.SALE_QTY - cPluItem.ORG_QTY < 0)
|
|
{
|
|
addOrdFlag = "DEL";
|
|
}
|
|
else if (cPluItem.SALE_QTY - cPluItem.ORG_QTY > 0)
|
|
{
|
|
addOrdFlag = "ADD";
|
|
}
|
|
else if (cPluItem.SALE_QTY - cPluItem.ORG_QTY == 0)
|
|
{
|
|
// 수량변경이 없는 상품은 KPS/KDS(MST_KTCH_ORD_MSG)에 변경처리 하지 않는다.
|
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD)
|
|
cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_OK;
|
|
}
|
|
}
|
|
else if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.NORMAL || cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.SET_MAIN)
|
|
{
|
|
for (var i = 0; i < nLoop; i++)
|
|
{
|
|
Column.TR_PLU.DATA checkItem = (Column.TR_PLU.DATA)alPluItem[i];
|
|
if (checkItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.NORMAL && checkItem.ITEM_DIV != ItemConst.PLU_ITEM_DIV.SET_MAIN) continue;
|
|
if (checkItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|
if (checkItem.ITEM_PLU_CD == cPluItem.ITEM_PLU_CD)
|
|
{
|
|
addOrdFlag = "ADD";
|
|
break;
|
|
}
|
|
}
|
|
if (string.IsNullOrWhiteSpace(addOrdFlag)) addOrdFlag = "NEW";
|
|
}
|
|
|
|
if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|
{
|
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL) continue;
|
|
|
|
#region >> INSERT INTO POSMST..MST_KTCH_ORD_MSG
|
|
sQuery = string.Format(sInsQuery
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, (iSeq2 + 1).ToString()
|
|
, m_cTrnStatus.Head.CmpCd // CMP_CD
|
|
, m_cPosStatus.Base.BrandCd // BRAND_CD
|
|
, m_cTrnStatus.Head.StoreCd // STOR_CD
|
|
, m_cTrnStatus.Head.PosNo // POS_NO
|
|
|
|
//, m_cTrnStatus.Head.TradeNo // TRADE_NO
|
|
, cPluItem.ORDER_NO // Mod, 2017.04.11, 주문번호
|
|
|
|
, m_cTrnStatus.Head.SaleDate // SALE_DT
|
|
, m_cPosStatus.Base.PosType
|
|
//, (cPluItem.SUBPRC_MENU_KEY_DIV != "1" ? cPluItem.ITEM_PLU_CD : ((Column.TR_PLU.DATA)alPluItem[iSeq2 - 1]).ITEM_PLU_CD)
|
|
, cPluItem.SUBPRC_MENU_KEY_DIV == "1" ? cPluItem.SUB_MENU_MAIN_CD : cPluItem.ITEM_PLU_CD
|
|
, cPluItem.ITEM_DIV
|
|
, CmUtil.LeftH(cPluItem.ITEM_NAME, 30)
|
|
, cPluItem.SALE_QTY.ToString()
|
|
, cPluItem.PACK_DIV
|
|
, cPluItem.SET_MENU_CD
|
|
, cPluItem.ORD_TIME // 주문시간
|
|
, cPluItem.CANCEL_DIV
|
|
, cPluItem.SUBPRC_MENU_KEY_DIV
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_1)
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_2)
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_3)
|
|
, itemMemoRegTime
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL ? "9" : "0"
|
|
, "0"
|
|
, "0"
|
|
, menualOrderValue // FILLER1 Add, 2017.01.18, 수동출력
|
|
, string.Empty // FILLER2 기타주문구분
|
|
, addOrdFlag // FILLER3 Add, 2017.02.29, 추가주문구분 NEW,ADD,DEL
|
|
, string.Empty // FILLER4 VIP 구분 (KDS에서 사용)
|
|
, cPluItem.ORDER_SEQ // FILLER5 Add, 2017.04.11, 주문차수
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, cPluItem.SUB_SHOP_CD // Add, 2017.02.02, 서버매장코드
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, ConvertDBStr(menualOrderMemo) // Add, 2017.03.21
|
|
, m_cTrnStatus.Head.OrderPicNm // Add, 2017.03.28, 주문담당자
|
|
, cPluItem.ORG_QTY // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
, "0" // Add, 2017.04.26, KDS 전송구분
|
|
);
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
}
|
|
else if (cPluItem.ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_MOD)
|
|
{
|
|
#region >> UPDATE POSMST..MST_KTCH_ORD_MSG
|
|
if (cPluItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL)
|
|
{
|
|
sQuery = string.Format(sUpdQuery
|
|
, cPluItem.ORG_QTY
|
|
, cPluItem.PACK_DIV
|
|
, cPluItem.CANCEL_DIV
|
|
, cPluItem.SUBPRC_MENU_KEY_DIV
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_1)
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_2)
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_3)
|
|
, itemMemoRegTime
|
|
, "0"
|
|
, "0"
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, (iSeq2 + 1).ToString()
|
|
, menualOrderValue // Add, 2017.01.18, 수동출력
|
|
, addOrdFlag // Add, 2017.02.29, 추가주문구분 NEW,ADD,DEL
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, ConvertDBStr(menualOrderMemo) // Add, 2017.03.21
|
|
, 0 // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
}
|
|
else
|
|
{
|
|
sQuery = string.Format(sUpdQuery2
|
|
, cPluItem.SALE_QTY.ToString()
|
|
, cPluItem.PACK_DIV
|
|
, cPluItem.CANCEL_DIV
|
|
, cPluItem.SUBPRC_MENU_KEY_DIV
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_1)
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_2)
|
|
, ConvertDBStr(cPluItem.ITEM_MEMO_3)
|
|
, itemMemoRegTime
|
|
, "0"
|
|
, "0"
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, (iSeq2 + 1).ToString()
|
|
, menualOrderValue // Add, 2017.01.18, 수동출력
|
|
, addOrdFlag // Add, 2017.02.29, 추가주문구분 NEW,ADD,DEL
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, ConvertDBStr(menualOrderMemo) // Add, 2017.03.21
|
|
, cPluItem.ORG_QTY // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
}
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
cPluItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_OK;
|
|
iSeq2++;
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
// 추가 주방메시지 테이블 저장 처리
|
|
UpdateKtchOrderMsgExecute();
|
|
|
|
if ((bUpdate == true || bOrdUpdate == true) && m_cTrnStatus.Head.OrderFlag == PosConst.ORDER_TYPE.NORMAL)
|
|
{
|
|
// 주문 내역서 출력 처리
|
|
ISaleCompleteUs cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
|
|
sReturn = cSaleComplete.ExecuteOrderBillReceipt();
|
|
}
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블그룹 관련 테이블마스터 Update (다중선택)
|
|
/// </summary>
|
|
/// <param name="selectedTables"></param>
|
|
/// <returns></returns>
|
|
public string UpdateTableGroup(string selectedTables)
|
|
{
|
|
try
|
|
{
|
|
string[] tables = selectedTables.Split(',');
|
|
if (tables.Length < 2)
|
|
{
|
|
return UserCom.RST_IGNORE + POS_MESSAGE.ERROR.MSG_0142;
|
|
}
|
|
|
|
string[] t = tables[0].Trim().Split('-');
|
|
string opFloorCd = t[0].Trim();
|
|
string opTableNo = t[1].Trim();
|
|
|
|
for (var i = 0; i < tables.Length; i++)
|
|
{
|
|
tables[i] = string.Format("'{0}'", tables[i]);
|
|
}
|
|
string inString = string.Join(",", tables);
|
|
|
|
string sql = string.Empty;
|
|
string fmt = string.Empty;
|
|
|
|
// Transaction Begin
|
|
m_cSqlDbService.Begin();
|
|
|
|
// Add, 2017.02.17
|
|
fmt = "SELECT MAX(FILLER3) AS SEQ FROM MST_TBL \n"
|
|
+ " WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND TRAIN_MODE_YN = '{2}' AND TBL_OP_DIV = '{3}' AND ISNUMERIC(FILLER3) = 1 ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, PosConst.TABLE_OP_FLAG.OP_GROUP);
|
|
DataTable dt = null;
|
|
if (m_cSqlDbService.DBSelect(sql, out dt) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sql + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
var groupSeq = CmUtil.GetDataRowInt(dt.Rows[0], "SEQ") + 1;
|
|
fmt = "UPDATE POSMST..MST_TBL \n"
|
|
+ " SET TBL_OP_DIV = '{5}' \n"
|
|
+ " , OP_FLOOR_CD = '{6}' \n"
|
|
+ " , OP_TBL_NO = '{7}' \n"
|
|
+ " , FILLER3 = '{8}' \n"
|
|
+ " WHERE CMP_CD = '{0}' \n"
|
|
+ " AND STOR_CD = '{1}' \n"
|
|
+ " AND TRAIN_MODE_YN = '{2}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND FLOOR_CD + '-' + TBL_NO IN ( {3} ) \n"
|
|
+ " AND USE_YN = '{4}' \n";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, inString
|
|
, PosConst.MST_USE_YN.YES
|
|
, PosConst.TABLE_OP_FLAG.OP_GROUP
|
|
, opFloorCd
|
|
, opTableNo
|
|
, groupSeq.ToString()
|
|
);
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sql) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sql + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
return UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return UserCom.RST_ERR + ex.Message;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블그룹 해제 (전체해제)
|
|
/// </summary>
|
|
/// <param name="opGroupFloorCd"></param>
|
|
/// <param name="opGroupTableNo"></param>
|
|
/// <returns></returns>
|
|
public string UpdateTableGroupClear(string opGroupFloorCd, string opGroupTableNo)
|
|
{
|
|
try
|
|
{
|
|
string fmt = "UPDATE POSMST..MST_TBL \n"
|
|
+ " SET TBL_OP_DIV = '{6}' \n"
|
|
+ " , OP_FLOOR_CD = '' \n"
|
|
+ " , OP_TBL_NO = '' \n"
|
|
+ " , FILLER3 = '' \n"
|
|
+ " WHERE CMP_CD = '{0}' \n"
|
|
+ " AND STOR_CD = '{1}' \n"
|
|
+ " AND TRAIN_MODE_YN = '{2}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND OP_FLOOR_CD = '{3}' \n"
|
|
+ " AND OP_TBL_NO = '{4}' \n"
|
|
+ " AND USE_YN = '{5}' "
|
|
;
|
|
string sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, opGroupFloorCd
|
|
, opGroupTableNo
|
|
, PosConst.MST_USE_YN.YES
|
|
, PosConst.TABLE_OP_FLAG.OP_NONE);
|
|
// Transaction Begin
|
|
m_cSqlDbService.Begin();
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sql) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sql + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
return UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return UserCom.RST_ERR + ex.Message;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블합석
|
|
/// </summary>
|
|
/// <param name="sFromFloorCd">From Floor</param>
|
|
/// <param name="sFromTableNo">From Table</param>
|
|
/// <param name="sToFloorCd">To Floor</param>
|
|
/// <param name="sToTableNo">To Table</param>
|
|
/// <returns></returns>
|
|
public string UpdateTableAdd(string sFromFloorCd, string sFromTableNo, string sToFloorCd, string sToTableNo)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
int nMaxSeqNo = 0;
|
|
|
|
try
|
|
{
|
|
DataTable dtReturn = null;
|
|
Column.MST_TABLE.TABLE_DATA cFromTable = new Column.MST_TABLE.TABLE_DATA();
|
|
|
|
// 원본데이블 정보 조회
|
|
dtReturn = null;
|
|
if (this.SelectTable(new string[] { PosConst.QueryTagDef.QueryTableDef.TABLE_NO_FLOOR_CD_SEARCH, sFromFloorCd, sFromTableNo }, out dtReturn) != UserCom.RST_OK)
|
|
{
|
|
return UserCom.RST_ERR;
|
|
}
|
|
this.SetTableInfo(dtReturn.Rows[0], ref cFromTable);
|
|
|
|
// 주방장치조회
|
|
List<string> lstKps = new List<string>();
|
|
dtReturn = null;
|
|
int cnt = this.GetKtchDivece(sFromFloorCd, sFromTableNo, string.Empty, out dtReturn);
|
|
if (cnt > 0)
|
|
{
|
|
foreach(DataRow dr in dtReturn.Rows)
|
|
{
|
|
var devKey = string.Format("{0},{1}", CmUtil.GetDataRowStr(dr, "SUB_STOR_CD"), CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD"));
|
|
lstKps.Add(devKey);
|
|
}
|
|
}
|
|
|
|
// Max Sequence MST_KTCH_ORD_MSG_ADD
|
|
sQuery = "SELECT ISNULL(MAX(SEQ), 0) AS SEQ \n"
|
|
+ " FROM POSMST..MST_KTCH_ORD_MSG_ADD \n"
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02
|
|
+ " AND ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' \n"
|
|
+ " AND FLOOR_CD = '" + sFromFloorCd + "' \n"
|
|
+ " AND TBL_NO = '" + sFromTableNo + "' ";
|
|
dtReturn = null;
|
|
if(m_cSqlDbService.DBSelect(sQuery, out dtReturn) == UserCom.OK)
|
|
{
|
|
if(dtReturn != null && dtReturn.Rows.Count > 0)
|
|
{
|
|
nMaxSeqNo = CmUtil.GetDataRowInt(dtReturn.Rows[0], "SEQ");
|
|
}
|
|
}
|
|
nMaxSeqNo++;
|
|
|
|
// 객층 및 고객상세 정보
|
|
var custAge = string.Empty;
|
|
var custLst = string.Empty;
|
|
var groupIdx = string.Empty;
|
|
int[] custArray = null;
|
|
sQuery = "SELECT CASE WHEN FLOOR_CD + TBL_NO = '" + sToFloorCd + sToTableNo + "' THEN 0 ELSE 1 END SEQ \n"
|
|
+ " , FLOOR_CD, TBL_NO, CUST_CNT, FILLER1, FILLER2 \n"
|
|
+ " FROM POSMST..MST_TBL \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND FLOOR_CD + TBL_NO IN ('" + sFromFloorCd + sFromTableNo + "','" + sToFloorCd + sToTableNo + "' ) \n"
|
|
+ " ORDER BY SEQ DESC ";
|
|
dtReturn = null;
|
|
if (m_cSqlDbService.DBSelect(sQuery, out dtReturn) == UserCom.OK)
|
|
{
|
|
foreach(DataRow dr in dtReturn.Rows)
|
|
{
|
|
// 객층
|
|
if (string.IsNullOrWhiteSpace(custAge))
|
|
{
|
|
custAge = CmUtil.GetDataRowStr(dr, "FILLER1").Trim();
|
|
}
|
|
|
|
// 고객정보
|
|
var temp = CmUtil.GetDataRowStr(dr, "FILLER2").Split('|');
|
|
if (temp.Length >= 10)
|
|
{
|
|
if (custArray == null) custArray = new int[10];
|
|
for (var i = 0; i < custArray.Length; i++)
|
|
{
|
|
custArray[i] += CmUtil.IntParse(temp[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (custArray != null)
|
|
{
|
|
custLst = string.Join("|", custArray);
|
|
}
|
|
|
|
// Transaction Begin
|
|
m_cSqlDbService.Begin();
|
|
|
|
// Source Table Init
|
|
sQuery = "UPDATE POSMST..MST_TBL \n"
|
|
+ " SET TBL_USE_DIV = '" + PosConst.TABLE_USE_FLAG.NO_USE + "' \n"
|
|
+ " , CUST_CNT = 0 \n"
|
|
+ " , FIRST_ORD_HOUR = '' \n"
|
|
+ " , ORD_AMT = 0 \n"
|
|
+ " , TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_NONE + "' \n"
|
|
+ " , OP_FLOOR_CD = '' \n"
|
|
+ " , OP_TBL_NO = '' \n"
|
|
+ " , FILLER1 = '' \n"
|
|
+ " , FILLER2 = '' \n"
|
|
+ " , FILLER3 = '' \n" // 테이블그룹 인덱스
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND FLOOR_CD = '" + sFromFloorCd + "' \n"
|
|
+ " AND TBL_NO = '" + sFromTableNo + "' \n"
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"
|
|
;
|
|
if(m_cSqlDbService.DBExecuteNonQuery(new string[] {sQuery}) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Combine Table Update
|
|
sQuery = "UPDATE POSMST..MST_TBL \n"
|
|
+ " SET ORD_AMT = ORD_AMT + " + cFromTable.ORDER_AMT.ToString() + " \n"
|
|
+ " , CUST_CNT = CUST_CNT + " + cFromTable.CUST_CNT.ToString() + " \n"
|
|
+ " , TBL_OP_DIV = '" + cFromTable.OP_FLAG + "' \n"
|
|
+ " , OP_FLOOR_CD = '" + cFromTable.OP_FLOOR_CD + "' \n"
|
|
+ " , OP_TBL_NO = '" + cFromTable.OP_TABLE_NO + "' \n"
|
|
+ " , FILLER1 = '" + custAge + "' \n"
|
|
+ " , FILLER2 = '" + custLst + "' \n"
|
|
//+ " , FILLER3 = '" + cFromTable.TABLE_GROUP_INDEX + "' \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND FLOOR_CD = '" + sToFloorCd + "' \n"
|
|
+ " AND TBL_NO = '" + sToTableNo + "' \n"
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"
|
|
;
|
|
if(m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Combine Table Order Item Insert
|
|
sQuery = "INSERT INTO POSMST..MST_ORD \n"
|
|
+ " ( CMP_CD, STOR_CD, ORD_DIV, FLOOR_CD, TBL_NO, SEQ, SUB_STOR_CD \n"
|
|
+ " , ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, SALE_PRC, SALE_AMT, BILL_AMT, DC_DIV, DC_RATE, ITEM_DC_AMT, SUM_DC_AMT \n"
|
|
+ " , CPI_DC_AMT, COOP_CARD_DC_DIV, COOP_CARD_DC_AMT, POINT_DC_DIV, POINT_DC_AMT, CPN_DC_DIV, CPN_DC_AMT, EMP_DC_DIV \n"
|
|
+ " , EMP_DC_AMT, SET_DC_AMT, ETC_DC_DIV, ETC_DC, EXCEP_DC_DIV, EXCEP_DC_AMT, PACK_DIV, SET_MENU_CD, CPI_PRESENT_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3 \n"
|
|
+ " , MSG_REG_TIME, ORD_TIME, ORD_COMP_DIV, ORD_PIC_NO, CANCEL_DIV, CANCEL_DATE, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 \n"
|
|
//+ " , UPD_DT, REG_DT, NOTAX_DIV ) \n"
|
|
+ " , UPD_DT, REG_DT, NOTAX_DIV, TRAIN_MODE_YN \n" // Add, 2017.03.02, 연습모드
|
|
+ " , DC_TYPE \n" // Add, 2017.03.30
|
|
+ " , ORG_QTY \n" // Add, 2017.03.31
|
|
+ " , ORD_POS_NO \n" // Add, 2017.04.10
|
|
+ " ) \n"
|
|
+ "SELECT CMP_CD, STOR_CD, ORD_DIV \n"
|
|
+ " , '" + sToFloorCd + "' \n"
|
|
+ " , '" + sToTableNo + "' \n"
|
|
+ " , (SELECT ISNULL(MAX(SEQ), 0) FROM POSMST..MST_ORD WHERE ORD_DIV = '0' AND FLOOR_CD = '" + sToFloorCd + "' AND TBL_NO = '" + sToTableNo + "') + SEQ AS SEQ \n"
|
|
+ " , SUB_STOR_CD \n"
|
|
+ " , ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, SALE_PRC, SALE_AMT, BILL_AMT, DC_DIV, DC_RATE, ITEM_DC_AMT, SUM_DC_AMT \n"
|
|
+ " , CPI_DC_AMT, COOP_CARD_DC_DIV, COOP_CARD_DC_AMT, POINT_DC_DIV, POINT_DC_AMT, CPN_DC_DIV, CPN_DC_AMT, EMP_DC_DIV \n"
|
|
+ " , EMP_DC_AMT, SET_DC_AMT, ETC_DC_DIV, ETC_DC, EXCEP_DC_DIV, EXCEP_DC_AMT, PACK_DIV, SET_MENU_CD, CPI_PRESENT_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3 \n"
|
|
+ " , MSG_REG_TIME, ORD_TIME, ORD_COMP_DIV, ORD_PIC_NO, CANCEL_DIV, CANCEL_DATE, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 \n"
|
|
+ " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n"
|
|
+ " , REG_DT, NOTAX_DIV \n"
|
|
+ " , TRAIN_MODE_YN \n" // Add, 2017.03.02, 연습모드
|
|
+ " , DC_TYPE \n" // Add, 2017.03.30
|
|
+ " , ORG_QTY \n" // Add, 2017.03.31
|
|
+ " , '" + m_cPosStatus.Base.PosNo + "' \n" // Add, 2017.04.10
|
|
+ " FROM POSMST..MST_ORD \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' "
|
|
+ " AND FLOOR_CD = '" + sFromFloorCd + "' \n"
|
|
+ " AND TBL_NO = '" + sFromTableNo + "' \n"
|
|
+ " ORDER BY SEQ \n"
|
|
;
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Source Table Order Item Delete
|
|
sQuery = "DELETE FROM POSMST..MST_ORD \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' \n"
|
|
+ " AND FLOOR_CD = '" + sFromFloorCd + "' \n"
|
|
+ " AND TBL_NO = '" + sFromTableNo + "' \n"
|
|
;
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Kitchen Order Message Insert
|
|
sQuery = "INSERT INTO POSMST..MST_KTCH_ORD_MSG \n"
|
|
+ " ( ORD_DIV, FLOOR_CD, TBL_NO, SEQ \n"
|
|
+ " , CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT \n"
|
|
+ " , POS_TYPE , ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV \n"
|
|
+ " , MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 \n"
|
|
//+ " , UPD_DT, REG_DT ) \n"
|
|
//+ " , UPD_DT, REG_DT, TRAIN_MODE_YN ) \n" // Add, 2017.03.02, 연습모드
|
|
+ " , UPD_DT, REG_DT, TRAIN_MODE_YN, KTCH_MSG \n" // Add, 2017.03.21
|
|
+ " , ORG_QTY \n" // Add, 2017.03.31
|
|
+ " , ORD_POS_NO \n" // Add, 2017.04.10
|
|
+ " , ORD_PIC_NM \n" // Add, 2017.04.26, 주문담당자
|
|
+ " , KDS_SEND_YN \n" // Add, 2017.04.26, KDS 전송구분
|
|
+ " ) \n"
|
|
+ "SELECT ORD_DIV, '" + sToFloorCd + "', '" + sToTableNo + "' \n"
|
|
+ " , (SELECT ISNULL(MAX(SEQ), 0) FROM POSMST..MST_KTCH_ORD_MSG WHERE ORD_DIV = '0' AND FLOOR_CD = '" + sToFloorCd + "' AND TBL_NO = '" + sToTableNo + "') + SEQ AS SEQ \n"
|
|
+ " , CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT \n"
|
|
+ " , POS_TYPE , ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV \n"
|
|
+ " , MSG1, MSG2, MSG3, MSG_REG_TIME, '', '', '', SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 \n"
|
|
+ " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n"
|
|
+ " , REG_DT \n"
|
|
+ " , TRAIN_MODE_YN \n" // Add, 2017.03.02, 연습모드
|
|
+ " , KTCH_MSG \n" // Add, 2017.03.21
|
|
+ " , ORG_QTY \n" // Add, 2017.03.31
|
|
+ " , ORD_POS_NO \n" // Add, 2017.04.10
|
|
+ " , ORD_PIC_NM \n" // Add, 2017.04.26, 주문담당자
|
|
+ " , KDS_SEND_YN \n" // Add, 2017.04.26, KDS 전송구분
|
|
+ " FROM POSMST..MST_KTCH_ORD_MSG \n"
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' \n"
|
|
+ " AND FLOOR_CD = '" + sFromFloorCd + "' \n"
|
|
+ " AND TBL_NO = '" + sFromTableNo + "' \n"
|
|
+ " ORDER BY SEQ \n"
|
|
;
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Kitchen Order Message Delete
|
|
sQuery = "DELETE FROM POSMST..MST_KTCH_ORD_MSG \n"
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연스모드
|
|
+ " AND ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' \n"
|
|
+ " AND FLOOR_CD = '" + sFromFloorCd + "' \n"
|
|
+ " AND TBL_NO = '" + sFromTableNo + "' \n"
|
|
;
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// 좌석메모 이동
|
|
string fmt = "UPDATE POSMST..MST_SEAT_MEMO \n"
|
|
+ " SET FLOOR_CD = '{6}' \n"
|
|
+ " , TBL_NO = '{7}' \n"
|
|
+ " , SEQ = SEQ + (SELECT ISNULL(MAX(SEQ), 0) FROM MST_SEAT_MEMO \n"
|
|
+ " WHERE CMP_CD = '{0}' \n"
|
|
+ " AND STOR_CD = '{1}' \n"
|
|
+ " AND TRAIN_MODE_YN = '{2}' \n"
|
|
+ " AND ORD_DIV = '{3}' \n"
|
|
+ " AND FLOOR_CD = '{6}' \n"
|
|
+ " AND TBL_NO = '{7}')\n"
|
|
+ " WHERE CMP_CD = '{0}' \n "
|
|
+ " AND STOR_CD = '{1}' \n"
|
|
+ " AND TRAIN_MODE_YN = '{2}' \n "
|
|
+ " AND ORD_DIV = '{3}' \n"
|
|
+ " AND FLOOR_CD = '{4}' \n"
|
|
+ " AND TBL_NO = '{5}' "
|
|
;
|
|
sQuery = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL
|
|
, sFromFloorCd, sFromTableNo, sToFloorCd, sToTableNo);
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
// Kitchen Order Message
|
|
for (int i = 0; i < lstKps.Count; i++)
|
|
{
|
|
string[] ktchDev = lstKps[i].Split(',');
|
|
if (ktchDev.Length < 2) continue;
|
|
|
|
sQuery = " INSERT INTO POSMST..MST_KTCH_ORD_MSG_ADD ";
|
|
sQuery += " ( TRAIN_MODE_YN "; // Add, 2017.03.02, 연습모드
|
|
sQuery += " , ORD_DIV ";
|
|
sQuery += " , FLOOR_CD ";
|
|
sQuery += " , TBL_NO ";
|
|
sQuery += " , SEQ ";
|
|
sQuery += " , SUB_STOR_CD ";
|
|
sQuery += " , KTCH_SYS_CD ";
|
|
sQuery += " , MSG_DIV ";
|
|
sQuery += " , MSG1 ";
|
|
sQuery += " , MSG2 ";
|
|
sQuery += " , MSG3 ";
|
|
sQuery += " , MSG_REG_TIME ";
|
|
sQuery += " , SEND_YN ";
|
|
sQuery += " , SEND_CONFIRM_DIV ";
|
|
sQuery += " , RESEND_YN ";
|
|
sQuery += " , FILLER1 ";
|
|
sQuery += " , FILLER2 ";
|
|
sQuery += " , FILLER3 ";
|
|
sQuery += " , FILLER4 ";
|
|
sQuery += " , FILLER5 ";
|
|
sQuery += " , UPD_DT ";
|
|
sQuery += " , REG_DT ";
|
|
sQuery += " , ORD_POS_NO "; // Add, 2017.04.10
|
|
sQuery += " ) ";
|
|
sQuery += " VALUES ";
|
|
sQuery += " ( '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.02, 연습모드
|
|
sQuery += " , '" + PosConst.ORDER_TYPE.NORMAL + "' ";
|
|
sQuery += " , '" + sFromFloorCd + "' ";
|
|
sQuery += " , '" + sFromTableNo + "' ";
|
|
sQuery += " , " + nMaxSeqNo + " ";
|
|
sQuery += " , '" + ktchDev[0].Trim() + "' ";
|
|
sQuery += " , '" + ktchDev[1].Trim() + "' ";
|
|
sQuery += " , '" + PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE + "' ";
|
|
sQuery += " , '" + sToFloorCd + "' ";
|
|
sQuery += " , '" + sToTableNo + "' ";
|
|
sQuery += " , '' ";
|
|
sQuery += " , '" + DateTime.Now.ToString("HHmmss") + "' ";
|
|
sQuery += " , '0' ";
|
|
sQuery += " , '0' ";
|
|
sQuery += " , '0' ";
|
|
sQuery += " , '' ";
|
|
sQuery += " , '' ";
|
|
sQuery += " , '' ";
|
|
sQuery += " , '' ";
|
|
sQuery += " , '' ";
|
|
sQuery += " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' ";
|
|
sQuery += " , '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' ";
|
|
sQuery += " , '" + m_cPosStatus.Base.PosNo + "' "; // Add, 2017.04.10
|
|
sQuery += ")";
|
|
|
|
// 주방출력삭제(2017.05.24)
|
|
//m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery });
|
|
|
|
nMaxSeqNo++;
|
|
}
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
// 합석테이블 주문내역서 출력
|
|
this.ExecuteOrderBillReceipt(sToFloorCd, sToTableNo);
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블이동
|
|
/// </summary>
|
|
/// <param name="sFromFloorCd"></param>
|
|
/// <param name="sFromTableNo"></param>
|
|
/// <param name="sToFloorCd"></param>
|
|
/// <param name="sToTableNo"></param>
|
|
/// <returns></returns>
|
|
public string UpdateTableMove(string sFromFloorCd, string sFromTableNo, string sToFloorCd, string sToTableNo)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
|
|
try
|
|
{
|
|
string fmt = string.Empty;
|
|
string sql = string.Empty;
|
|
DataTable dtReturn = null;
|
|
List<string> lstQuery = new List<string>();
|
|
|
|
#region 이동테이블 정보 조회
|
|
// 1st 테이블
|
|
dtReturn = null;
|
|
Column.MST_TABLE.TABLE_DATA cTable1st = new Column.MST_TABLE.TABLE_DATA();
|
|
if (SelectTable(new string[] { PosConst.QueryTagDef.QueryTableDef.TABLE_NO_FLOOR_CD_SEARCH, sFromFloorCd, sFromTableNo }, out dtReturn) != UserCom.RST_OK)
|
|
{
|
|
return UserCom.RST_ERR;
|
|
}
|
|
this.SetTableInfo(dtReturn.Rows[0], ref cTable1st);
|
|
// 2nd 테이블
|
|
dtReturn = null;
|
|
Column.MST_TABLE.TABLE_DATA cTable2nd = new Column.MST_TABLE.TABLE_DATA();
|
|
if (SelectTable(new string[] { PosConst.QueryTagDef.QueryTableDef.TABLE_NO_FLOOR_CD_SEARCH, sToFloorCd, sToTableNo }, out dtReturn) != UserCom.RST_OK)
|
|
{
|
|
return UserCom.RST_ERR;
|
|
}
|
|
this.SetTableInfo(dtReturn.Rows[0], ref cTable2nd);
|
|
|
|
// 미주문 테이블 확인
|
|
if (cTable2nd.ORDER_AMT == 0 && cTable2nd.CUST_CNT == 0 && string.IsNullOrWhiteSpace(cTable2nd.FIRST_ORDER_TIME))
|
|
{
|
|
cTable2nd = null;
|
|
}
|
|
#endregion
|
|
|
|
#region 주방장치 정보 조회
|
|
List<string> lstKps = new List<string>();
|
|
dtReturn = null;
|
|
if (this.GetKtchDivece(sFromFloorCd, sFromTableNo, string.Empty, out dtReturn) > 0)
|
|
{
|
|
foreach (DataRow dr in dtReturn.Rows)
|
|
{
|
|
var devKey = string.Format("{0},{1}", CmUtil.GetDataRowStr(dr, "SUB_STOR_CD"), CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD"));
|
|
if (lstKps.Contains(devKey) == false) lstKps.Add(devKey);
|
|
}
|
|
}
|
|
dtReturn = null;
|
|
if (this.GetKtchDivece(sToFloorCd, sToTableNo, string.Empty, out dtReturn) > 0)
|
|
{
|
|
foreach (DataRow dr in dtReturn.Rows)
|
|
{
|
|
var devKey = string.Format("{0},{1}", CmUtil.GetDataRowStr(dr, "SUB_STOR_CD"), CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD"));
|
|
if (lstKps.Contains(devKey) == false) lstKps.Add(devKey);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 주문 정보 조회
|
|
// 주문정보
|
|
int ret = -9;
|
|
DataTable dtOrder1st = null;
|
|
DataTable dtOrder2nd = null;
|
|
fmt = "SELECT * FROM POSMST..MST_ORD WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND TRAIN_MODE_YN = '{2}' AND ORD_DIV = '{3}' AND FLOOR_CD = '{4}' AND TBL_NO = '{5}' ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sFromFloorCd, sFromTableNo);
|
|
ret = m_cSqlDbService.DBSelect(sql, out dtOrder1st);
|
|
if (ret != UserCom.OK) return UserCom.RST_ERR;
|
|
if (cTable2nd != null)
|
|
{
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sToFloorCd, sToTableNo);
|
|
ret = m_cSqlDbService.DBSelect(sql, out dtOrder2nd);
|
|
if (ret != UserCom.OK && ret != UserCom.NG) return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region 주방메시지 정보 조회
|
|
DataTable dtKtchMsg1st = null;
|
|
DataTable dtKtchMsg2nd = null;
|
|
fmt = "SELECT * FROM POSMST..MST_KTCH_ORD_MSG WHERE TRAIN_MODE_YN = '{0}' AND ORD_DIV = '{1}' AND FLOOR_CD = '{2}' AND TBL_NO = '{3}' ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sFromFloorCd, sFromTableNo);
|
|
ret = m_cSqlDbService.DBSelect(sql, out dtKtchMsg1st);
|
|
if (ret != UserCom.OK && ret != UserCom.NG) return UserCom.RST_ERR;
|
|
if (cTable2nd != null)
|
|
{
|
|
sql = string.Format(fmt, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sToFloorCd, sToTableNo);
|
|
ret = m_cSqlDbService.DBSelect(sql, out dtKtchMsg2nd);
|
|
if (ret != UserCom.OK && ret != UserCom.NG) return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region 좌석메모 정보 조회
|
|
// 좌석메모 정보 조회
|
|
DataTable dtSeatMsg1st = null;
|
|
DataTable dtSeatMsg2nd = null;
|
|
fmt = "SELECT * FROM POSMST..MST_SEAT_MEMO WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND TRAIN_MODE_YN = '{2}' AND ORD_DIV = '{3}' AND FLOOR_CD = '{4}' AND TBL_NO = '{5}' ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sFromFloorCd, sFromTableNo);
|
|
ret = m_cSqlDbService.DBSelect(sql, out dtSeatMsg1st);
|
|
if (cTable2nd != null)
|
|
{
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sToFloorCd, sToTableNo);
|
|
ret = m_cSqlDbService.DBSelect(sql, out dtSeatMsg2nd);
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 테이블정보 업데이트
|
|
// 테이블정보 업데이트
|
|
fmt = "UPDATE POSMST..MST_TBL \n"
|
|
+ " SET TBL_USE_DIV = '{5}' \n"
|
|
+ " , CUST_CNT = {6} \n"
|
|
+ " , FIRST_ORD_HOUR = '{7}' \n"
|
|
+ " , ORD_AMT = {8} \n"
|
|
+ " , TBL_OP_DIV = '{9}' \n"
|
|
+ " , OP_FLOOR_CD = '{10}' \n"
|
|
+ " , OP_TBL_NO = '{11}' \n"
|
|
+ " , FILLER1 = '{12}' \n"
|
|
+ " , FILLER2 = '{13}' \n"
|
|
+ " , FILLER3 = '{14}' \n"
|
|
+ " WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND TRAIN_MODE_YN = '{2}' AND FLOOR_CD = '{3}' AND TBL_NO = '{4}' \n";
|
|
// 1st Table
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, sFromFloorCd, sFromTableNo
|
|
, PosConst.TABLE_USE_FLAG.NO_USE
|
|
, cTable2nd == null ? 0 : cTable2nd.CUST_CNT
|
|
, cTable2nd == null ? "" : cTable2nd.FIRST_ORDER_TIME
|
|
, cTable2nd == null ? 0 : cTable2nd.ORDER_AMT
|
|
, cTable2nd == null ? "" : cTable2nd.OP_FLAG
|
|
, cTable2nd == null ? "" : cTable2nd.OP_FLOOR_CD
|
|
, cTable2nd == null ? "" : cTable2nd.OP_TABLE_NO
|
|
, cTable2nd == null ? "" : cTable2nd.CUST_AGE
|
|
, cTable2nd == null ? "" : cTable2nd.CUST_LST
|
|
, cTable2nd == null ? "" : cTable2nd.GetGroupIndex()
|
|
);
|
|
lstQuery.Add(sql);
|
|
// 2nd Table
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, sToFloorCd, sToTableNo
|
|
, PosConst.TABLE_USE_FLAG.NO_USE
|
|
, cTable1st.CUST_CNT
|
|
, cTable1st.FIRST_ORDER_TIME
|
|
, cTable1st.ORDER_AMT
|
|
, cTable1st.OP_FLAG
|
|
, cTable1st.OP_FLOOR_CD
|
|
, cTable1st.OP_TABLE_NO
|
|
, cTable1st.CUST_AGE
|
|
, cTable1st.CUST_LST
|
|
, cTable1st.GetGroupIndex()
|
|
);
|
|
lstQuery.Add(sql);
|
|
#endregion
|
|
|
|
#region 주문정보 업데이트
|
|
|
|
// 주문정보 초기화
|
|
fmt = "DELETE FROM POSMST..MST_ORD WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND TRAIN_MODE_YN = '{2}' AND ORD_DIV = '{3}' AND FLOOR_CD = '{4}' AND TBL_NO = '{5}' ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sFromFloorCd, sFromTableNo);
|
|
lstQuery.Add(sql);
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sToFloorCd, sToTableNo);
|
|
lstQuery.Add(sql);
|
|
|
|
#region >> INSERT INTO POSMST..MST_ORD
|
|
fmt = "INSERT INTO POSMST..MST_ORD ( \n"
|
|
+ " CMP_CD, STOR_CD, ORD_DIV, FLOOR_CD, TBL_NO, SEQ, SUB_STOR_CD, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM\n"
|
|
+ " , SALE_QTY, SALE_PRC, SALE_AMT, BILL_AMT, DC_DIV, DC_RATE, ITEM_DC_AMT, SUM_DC_AMT, CPI_DC_AMT \n"
|
|
+ " , COOP_CARD_DC_DIV, COOP_CARD_DC_AMT, POINT_DC_DIV, POINT_DC_AMT, CPN_DC_DIV, CPN_DC_AMT \n"
|
|
+ " , EMP_DC_DIV, EMP_DC_AMT, SET_DC_AMT, ETC_DC_DIV, ETC_DC, EXCEP_DC_DIV, EXCEP_DC_AMT \n"
|
|
+ " , PACK_DIV, SET_MENU_CD, CPI_PRESENT_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME \n"
|
|
+ " , ORD_TIME, ORD_COMP_DIV, ORD_PIC_NO, CANCEL_DIV, CANCEL_DATE \n"
|
|
+ " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, NOTAX_DIV \n"
|
|
+ " , TRAIN_MODE_YN \n" // Add, 2017.03.02, 연습모드
|
|
+ " , DC_TYPE \n" // Add, 2017.03.30
|
|
+ " , ORG_QTY \n" // Add, 2017.03.31
|
|
+ " , ORD_POS_NO \n" // Add, 2017.04.10
|
|
+ " ) VALUES ( \n"
|
|
+ " '{0}' \n" //@cmp_cd
|
|
+ " , '{1}' \n" //@stor_cd
|
|
+ " , '{2}' \n" //@ord_div
|
|
+ " , '{3}' \n" //@floor_cd
|
|
+ " , '{4}' \n" //@tbl_no
|
|
+ " , '{5}' \n" //@seq
|
|
+ " , '{6}' \n" //@sub_stor_cd
|
|
+ " , '{7}' \n" //@item_cd
|
|
+ " , '{8}' \n" //@item_div
|
|
+ " , '{9}' \n" //@shtcut_itemnm
|
|
+ " , {10} \n" //@sale_qty
|
|
+ " , {11} \n" //@sale_prc
|
|
+ " , {12} \n" //@sale_amt
|
|
+ " , {13} \n" //@bill_amt
|
|
+ " , '{14}' \n" //@dc_div
|
|
+ " , {15} \n" //@dc_rate
|
|
+ " , {16} \n" //@item_dc_amt
|
|
+ " , {17} \n" //@sum_dc_amt
|
|
+ " , {18} \n" //@cpi_dc_amt
|
|
+ " , '{19}' \n" //@coop_card_dc_div
|
|
+ " , {20} \n" //@coop_card_dc_amt
|
|
+ " , '{21}' \n" //@point_dc_div
|
|
+ " , {22} \n" //@point_dc_amt
|
|
+ " , '{23}' \n" //@cpn_dc_div
|
|
+ " , {24} \n" //@cpn_dc_amt
|
|
+ " , '{25}' \n" //@emp_dc_div
|
|
+ " , {26} \n" //@emp_dc_amt
|
|
+ " , {27} \n" //@set_dc_amt
|
|
+ " , '{28}' \n" //@etc_dc_div
|
|
+ " , {29} \n" //@etc_dc
|
|
+ " , '{30}' \n" //@excep_dc_div
|
|
+ " , {31} \n" //@excep_dc_amt
|
|
+ " , '{32}' \n" //@pack_div
|
|
+ " , '{33}' \n" //@set_menu_cd
|
|
+ " , '{34}' \n" //@cpi_present_div
|
|
+ " , '{35}' \n" //@sub_memo_div
|
|
+ " , '{36}' \n" //@msg1
|
|
+ " , '{37}' \n" //@msg2
|
|
+ " , '{38}' \n" //@msg3
|
|
+ " , '{39}' \n" //@msg_reg_time
|
|
+ " , '{40}' \n" //@ord_time
|
|
+ " , '{41}' \n" //@ord_comp_div
|
|
+ " , '{42}' \n" //@ord_pic_no
|
|
+ " , '{43}' \n" //@cancel_div
|
|
+ " , '{44}' \n" //@cancel_date
|
|
+ " , '{45}' \n" //@filler1
|
|
+ " , '{46}' \n" //@filler2
|
|
+ " , '{47}' \n" //@filler3
|
|
+ " , '{48}' \n" //@filler4
|
|
+ " , '{49}' \n" //@filler5
|
|
+ " , '{50}' \n" //@upd_dt
|
|
+ " , '{51}' \n" //@reg_dt
|
|
+ " , '{52}' \n" //@notax_div
|
|
+ " , '{53}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " , '{54}' \n" // Add, 2017.03.30
|
|
+ " , {55} \n" // Add, 2017.03.31
|
|
+ " , '{56}' \n" // Add, 2017.04.10
|
|
+ " ) ";
|
|
#endregion
|
|
|
|
#region >> 주문정보 이동 (1st -> 2nd)
|
|
if (dtOrder1st != null)
|
|
{
|
|
foreach (DataRow dr in dtOrder1st.Rows)
|
|
{
|
|
sql = string.Format(fmt, CmUtil.GetDataRowStr(dr, "CMP_CD ".Trim()) //@cmp_cd
|
|
, CmUtil.GetDataRowStr(dr, "STOR_CD ".Trim()) //@stor_cd
|
|
, CmUtil.GetDataRowStr(dr, "ORD_DIV ".Trim()) //@ord_div
|
|
, sToFloorCd //@floor_cd
|
|
, sToTableNo //@tbl_no
|
|
, CmUtil.GetDataRowStr(dr, "SEQ ".Trim()) //@seq
|
|
, CmUtil.GetDataRowStr(dr, "SUB_STOR_CD ".Trim()) //@sub_stor_cd
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_CD ".Trim()) //@item_cd
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_DIV ".Trim()) //@item_div
|
|
, CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM ".Trim()) //@shtcut_itemnm
|
|
, CmUtil.GetDataRowStr(dr, "SALE_QTY ".Trim()) //@sale_qty
|
|
, CmUtil.GetDataRowStr(dr, "SALE_PRC ".Trim()) //@sale_prc
|
|
, CmUtil.GetDataRowStr(dr, "SALE_AMT ".Trim()) //@sale_amt
|
|
, CmUtil.GetDataRowStr(dr, "BILL_AMT ".Trim()) //@bill_amt
|
|
, CmUtil.GetDataRowStr(dr, "DC_DIV ".Trim()) //@dc_div
|
|
, CmUtil.GetDataRowStr(dr, "DC_RATE ".Trim()) //@dc_rate
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_DC_AMT ".Trim()) //@item_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "SUM_DC_AMT ".Trim()) //@sum_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "CPI_DC_AMT ".Trim()) //@cpi_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "COOP_CARD_DC_DIV ".Trim()) //@coop_card_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "COOP_CARD_DC_AMT ".Trim()) //@coop_card_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "POINT_DC_DIV ".Trim()) //@point_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "POINT_DC_AMT ".Trim()) //@point_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "CPN_DC_DIV ".Trim()) //@cpn_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "CPN_DC_AMT ".Trim()) //@cpn_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "EMP_DC_DIV ".Trim()) //@emp_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "EMP_DC_AMT ".Trim()) //@emp_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "SET_DC_AMT ".Trim()) //@set_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "ETC_DC_DIV ".Trim()) //@etc_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "ETC_DC ".Trim()) //@etc_dc
|
|
, CmUtil.GetDataRowStr(dr, "EXCEP_DC_DIV ".Trim()) //@excep_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "EXCEP_DC_AMT ".Trim()) //@excep_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "PACK_DIV ".Trim()) //@pack_div
|
|
, CmUtil.GetDataRowStr(dr, "SET_MENU_CD ".Trim()) //@set_menu_cd
|
|
, CmUtil.GetDataRowStr(dr, "CPI_PRESENT_DIV ".Trim()) //@cpi_present_div
|
|
, CmUtil.GetDataRowStr(dr, "SUB_MEMO_DIV ".Trim()) //@sub_memo_div
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG1")) //@msg1
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG2")) //@msg2
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG3")) //@msg3
|
|
, CmUtil.GetDataRowStr(dr, "MSG_REG_TIME ".Trim()) //@msg_reg_time
|
|
, CmUtil.GetDataRowStr(dr, "ORD_TIME ".Trim()) //@ord_time
|
|
, CmUtil.GetDataRowStr(dr, "ORD_COMP_DIV ".Trim()) //@ord_comp_div
|
|
, CmUtil.GetDataRowStr(dr, "ORD_PIC_NO ".Trim()) //@ord_pic_no
|
|
, CmUtil.GetDataRowStr(dr, "CANCEL_DIV ".Trim()) //@cancel_div
|
|
, CmUtil.GetDataRowStr(dr, "CANCEL_DATE ".Trim()) //@cancel_date
|
|
, CmUtil.GetDataRowStr(dr, "FILLER1 ".Trim()) //@filler1
|
|
, CmUtil.GetDataRowStr(dr, "FILLER2 ".Trim()) //@filler2
|
|
, CmUtil.GetDataRowStr(dr, "FILLER3 ".Trim()) //@filler3
|
|
, CmUtil.GetDataRowStr(dr, "FILLER4 ".Trim()) //@filler4
|
|
, CmUtil.GetDataRowStr(dr, "FILLER5 ".Trim()) //@filler5
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss") //@upd_dt
|
|
, CmUtil.GetDataRowStr(dr, "REG_DT ".Trim()) //@reg_dt
|
|
, CmUtil.GetDataRowStr(dr, "NOTAX_DIV ".Trim()) //@notax_div
|
|
, CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN") // Add, 2017.03.02 연습모드
|
|
, CmUtil.GetDataRowStr(dr, "DC_TYPE") // Add, 2017.03.30
|
|
, CmUtil.GetDataRowStr(dr, "ORG_QTY") // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
lstQuery.Add(sql);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region >> 주문정보 이동 (2nd -> 1st)
|
|
if (dtOrder2nd != null)
|
|
{
|
|
foreach (DataRow dr in dtOrder2nd.Rows)
|
|
{
|
|
sql = string.Format(fmt, CmUtil.GetDataRowStr(dr, "CMP_CD ".Trim()) //@cmp_cd
|
|
, CmUtil.GetDataRowStr(dr, "STOR_CD ".Trim()) //@stor_cd
|
|
, CmUtil.GetDataRowStr(dr, "ORD_DIV ".Trim()) //@ord_div
|
|
, sFromFloorCd //@floor_cd
|
|
, sFromTableNo //@tbl_no
|
|
, CmUtil.GetDataRowStr(dr, "SEQ ".Trim()) //@seq
|
|
, CmUtil.GetDataRowStr(dr, "SUB_STOR_CD ".Trim()) //@sub_stor_cd
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_CD ".Trim()) //@item_cd
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_DIV ".Trim()) //@item_div
|
|
, CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM ".Trim()) //@shtcut_itemnm
|
|
, CmUtil.GetDataRowStr(dr, "SALE_QTY ".Trim()) //@sale_qty
|
|
, CmUtil.GetDataRowStr(dr, "SALE_PRC ".Trim()) //@sale_prc
|
|
, CmUtil.GetDataRowStr(dr, "SALE_AMT ".Trim()) //@sale_amt
|
|
, CmUtil.GetDataRowStr(dr, "BILL_AMT ".Trim()) //@bill_amt
|
|
, CmUtil.GetDataRowStr(dr, "DC_DIV ".Trim()) //@dc_div
|
|
, CmUtil.GetDataRowStr(dr, "DC_RATE ".Trim()) //@dc_rate
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_DC_AMT ".Trim()) //@item_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "SUM_DC_AMT ".Trim()) //@sum_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "CPI_DC_AMT ".Trim()) //@cpi_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "COOP_CARD_DC_DIV ".Trim()) //@coop_card_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "COOP_CARD_DC_AMT ".Trim()) //@coop_card_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "POINT_DC_DIV ".Trim()) //@point_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "POINT_DC_AMT ".Trim()) //@point_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "CPN_DC_DIV ".Trim()) //@cpn_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "CPN_DC_AMT ".Trim()) //@cpn_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "EMP_DC_DIV ".Trim()) //@emp_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "EMP_DC_AMT ".Trim()) //@emp_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "SET_DC_AMT ".Trim()) //@set_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "ETC_DC_DIV ".Trim()) //@etc_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "ETC_DC ".Trim()) //@etc_dc
|
|
, CmUtil.GetDataRowStr(dr, "EXCEP_DC_DIV ".Trim()) //@excep_dc_div
|
|
, CmUtil.GetDataRowStr(dr, "EXCEP_DC_AMT ".Trim()) //@excep_dc_amt
|
|
, CmUtil.GetDataRowStr(dr, "PACK_DIV ".Trim()) //@pack_div
|
|
, CmUtil.GetDataRowStr(dr, "SET_MENU_CD ".Trim()) //@set_menu_cd
|
|
, CmUtil.GetDataRowStr(dr, "CPI_PRESENT_DIV ".Trim()) //@cpi_present_div
|
|
, CmUtil.GetDataRowStr(dr, "SUB_MEMO_DIV ".Trim()) //@sub_memo_div
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG1")) //@msg1
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG2")) //@msg2
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG3")) //@msg3
|
|
, CmUtil.GetDataRowStr(dr, "MSG_REG_TIME ".Trim()) //@msg_reg_time
|
|
, CmUtil.GetDataRowStr(dr, "ORD_TIME ".Trim()) //@ord_time
|
|
, CmUtil.GetDataRowStr(dr, "ORD_COMP_DIV ".Trim()) //@ord_comp_div
|
|
, CmUtil.GetDataRowStr(dr, "ORD_PIC_NO ".Trim()) //@ord_pic_no
|
|
, CmUtil.GetDataRowStr(dr, "CANCEL_DIV ".Trim()) //@cancel_div
|
|
, CmUtil.GetDataRowStr(dr, "CANCEL_DATE ".Trim()) //@cancel_date
|
|
, CmUtil.GetDataRowStr(dr, "FILLER1 ".Trim()) //@filler1
|
|
, CmUtil.GetDataRowStr(dr, "FILLER2 ".Trim()) //@filler2
|
|
, CmUtil.GetDataRowStr(dr, "FILLER3 ".Trim()) //@filler3
|
|
, CmUtil.GetDataRowStr(dr, "FILLER4 ".Trim()) //@filler4
|
|
, CmUtil.GetDataRowStr(dr, "FILLER5 ".Trim()) //@filler5
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss") //@upd_dt
|
|
, CmUtil.GetDataRowStr(dr, "REG_DT ".Trim()) //@reg_dt
|
|
, CmUtil.GetDataRowStr(dr, "NOTAX_DIV ".Trim()) //@notax_div
|
|
, CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN") // Add, 2017.03.02 연습모드
|
|
, CmUtil.GetDataRowStr(dr, "DC_TYPE") // Add, 2017.03.30
|
|
, CmUtil.GetDataRowStr(dr, "ORG_QTY") // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
lstQuery.Add(sql);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region 주방메시지정보 업데이트
|
|
|
|
// 주방메시지정보 초기화
|
|
fmt = "DELETE FROM POSMST..MST_KTCH_ORD_MSG WHERE TRAIN_MODE_YN = '{0}' AND ORD_DIV = '{1}' AND FLOOR_CD = '{2}' AND TBL_NO = '{3}' ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sFromFloorCd, sFromTableNo);
|
|
lstQuery.Add(sql);
|
|
sql = string.Format(fmt, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sToFloorCd, sToTableNo);
|
|
lstQuery.Add(sql);
|
|
|
|
#region >> INSERT INTO POSMST..MST_KTCH_ORD_MSG
|
|
fmt = "INSERT INTO POSMST..MST_KTCH_ORD_MSG ( \n"
|
|
+ " ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE \n"
|
|
+ " , ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV \n"
|
|
+ " , MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN \n"
|
|
+ " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT \n"
|
|
+ " , TRAIN_MODE_YN \n" // Add, 2017.03.02, 연습모드
|
|
+ " , KTCH_MSG \n" // Add, 2017.03.21
|
|
+ " , ORG_QTY \n" // Add, 2017.03.31
|
|
+ " , ORD_POS_NO \n" // Add, 2017.04.10
|
|
+ " , ORD_PIC_NM \n" // Add, 2017.04.26, 주문담당자
|
|
+ " , KDS_SEND_YN \n" // Add, 2017.04.26, KDS 전송구분
|
|
+ " ) VALUES ( \n"
|
|
+ " '{0}' \n" //@ord_div
|
|
+ " , '{1}' \n" //@floor_cd
|
|
+ " , '{2}' \n" //@tbl_no
|
|
+ " , '{3}' \n" //@seq
|
|
+ " , '{4}' \n" //@cmp_cd
|
|
+ " , '{5}' \n" //@brand_cd
|
|
+ " , '{6}' \n" //@stor_cd
|
|
+ " , '{7}' \n" //@sub_stor_cd
|
|
+ " , '{8}' \n" //@pos_no
|
|
+ " , '{9}' \n" //@trade_no
|
|
+ " , '{10}' \n" //@sale_dt
|
|
+ " , '{11}' \n" //@pos_type
|
|
+ " , '{12}' \n" //@item_cd
|
|
+ " , '{13}' \n" //@item_div
|
|
+ " ,N'{14}' \n" //@shtcut_itemnm
|
|
+ " , '{15}' \n" //@sale_qty
|
|
+ " , '{16}' \n" //@pack_div
|
|
+ " , '{17}' \n" //@set_menu_cd
|
|
+ " , '{18}' \n" //@ord_time
|
|
+ " , '{19}' \n" //@cancel_div
|
|
+ " , '{20}' \n" //@sub_memo_div
|
|
+ " ,N'{21}' \n" //@msg1
|
|
+ " ,N'{22}' \n" //@msg2
|
|
+ " ,N'{23}' \n" //@msg3
|
|
+ " , '{24}' \n" //@msg_reg_time
|
|
+ " , '{25}' \n" //@org_bill_posno
|
|
+ " , '{26}' \n" //@org_billdt
|
|
+ " , '{27}' \n" //@org_bill_no
|
|
+ " , '{28}' \n" //@send_yn
|
|
+ " , '{29}' \n" //@send_confirm_div
|
|
+ " , '{30}' \n" //@resend_yn
|
|
+ " , '{31}' \n" //@filler1
|
|
+ " , '{32}' \n" //@filler2
|
|
+ " , '{33}' \n" //@filler3
|
|
+ " , '{34}' \n" //@filler4
|
|
+ " , '{35}' \n" //@filler5
|
|
+ " , '{36}' \n" //@upd_dt
|
|
+ " , '{37}' \n" //@reg_dt
|
|
+ " , '{38}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " ,N'{39}' \n" // Add, 2017.03.21
|
|
+ " , {40} \n" // Add, 2017.03.31
|
|
+ " , '{41}' \n" // Add, 2017.04.10
|
|
+ " ,N'{42}' \n" // Add, 2017.04.26, 주문담당자
|
|
+ " , '{43}' \n" // Add, 2017.04.26, KDS 전송구분
|
|
+ " ) "
|
|
;
|
|
#endregion
|
|
|
|
#region >> 주방메시지정보 이동 (1st -> 2nd)
|
|
if (dtKtchMsg1st != null)
|
|
{
|
|
foreach (DataRow dr in dtKtchMsg1st.Rows)
|
|
{
|
|
sql = string.Format(fmt, CmUtil.GetDataRowStr(dr, "ORD_DIV ".Trim())
|
|
, sToFloorCd
|
|
, sToTableNo
|
|
, CmUtil.GetDataRowStr(dr, "SEQ ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "CMP_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "BRAND_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "STOR_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SUB_STOR_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "POS_NO ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "TRADE_NO ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SALE_DT ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "POS_TYPE ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_DIV ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SALE_QTY ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "PACK_DIV ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SET_MENU_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ORD_TIME ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "CANCEL_DIV ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SUB_MEMO_DIV ".Trim())
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG1"))
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG2"))
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG3"))
|
|
, CmUtil.GetDataRowStr(dr, "MSG_REG_TIME ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ORG_BILL_POSNO ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ORG_BILLDT ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ORG_BILL_NO ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SEND_YN ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SEND_CONFIRM_DIV".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "RESEND_YN ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER1 ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER2 ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER3 ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER4 ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER5 ".Trim())
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, CmUtil.GetDataRowStr(dr, "REG_DT ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN") // Add, 2017.03.02, 연습모드
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "KTCH_MSG")) // Add, 2017.03.21
|
|
, CmUtil.GetDataRowStr(dr, "ORG_QTY") // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
, CmUtil.GetDataRowStr(dr, "ORD_PIC_NM") // Add, 2017.04.26, 주문담당자
|
|
, CmUtil.GetDataRowStr(dr, "KDS_SEND_YN") // Add, 2017.04.26, KDS 전송구분
|
|
);
|
|
lstQuery.Add(sql);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region >> 주방메시지정보 이동 (2nd -> 1st)
|
|
if (dtKtchMsg2nd != null)
|
|
{
|
|
foreach (DataRow dr in dtKtchMsg2nd.Rows)
|
|
{
|
|
sql = string.Format(fmt, CmUtil.GetDataRowStr(dr, "ORD_DIV ".Trim())
|
|
, sFromFloorCd
|
|
, sFromTableNo
|
|
, CmUtil.GetDataRowStr(dr, "SEQ ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "CMP_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "BRAND_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "STOR_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SUB_STOR_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "POS_NO ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "TRADE_NO ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SALE_DT ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "POS_TYPE ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ITEM_DIV ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SALE_QTY ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "PACK_DIV ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SET_MENU_CD ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ORD_TIME ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "CANCEL_DIV ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SUB_MEMO_DIV ".Trim())
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG1"))
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG2"))
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG3"))
|
|
, CmUtil.GetDataRowStr(dr, "MSG_REG_TIME ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ORG_BILL_POSNO ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ORG_BILLDT ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "ORG_BILL_NO ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SEND_YN ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "SEND_CONFIRM_DIV".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "RESEND_YN ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER1 ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER2 ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER3 ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER4 ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "FILLER5 ".Trim())
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, CmUtil.GetDataRowStr(dr, "REG_DT ".Trim())
|
|
, CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN") // Add, 2017.03.02, 연습모드
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "KTCH_MSG")) // Add, 2017.03.21
|
|
, CmUtil.GetDataRowStr(dr, "ORG_QTY") // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
, CmUtil.GetDataRowStr(dr, "ORD_PIC_NM") // Add, 2017.04.26, 주문담당자
|
|
, CmUtil.GetDataRowStr(dr, "KDS_SEND_YN") // Add, 2017.04.26, KDS 전송구분
|
|
);
|
|
lstQuery.Add(sql);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region 좌석메모 정보 업데이트
|
|
|
|
// 좌석메모정보 삭제
|
|
fmt = "DELETE FROM POSMST..MST_SEAT_MEMO WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND TRAIN_MODE_YN = '{2}' AND ORD_DIV = '{3}' AND FLOOR_CD = '{4}' AND TBL_NO = '{5}' ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sFromFloorCd, sFromTableNo);
|
|
lstQuery.Add(sql);
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, sToFloorCd, sToTableNo);
|
|
lstQuery.Add(sql);
|
|
|
|
#region >> INSERT INTO dbo.MST_SEAT_MEMO
|
|
fmt = "INSERT INTO POSMST..MST_SEAT_MEMO ( \n"
|
|
+ " CMP_CD, STOR_CD, TRAIN_MODE_YN, ORD_DIV, FLOOR_CD, TBL_NO, SEQ, MSG1, MSG2, MSG3, CASHIER_ID, REG_TIME, REG_DT \n"
|
|
+ " ) VALUES ( \n"
|
|
+ " '{0}' \n" //@cmp_cd
|
|
+ " , '{1}' \n" //@stor_cd
|
|
+ " , '{2}' \n" // // Add, 2017.03.02, 연습모드
|
|
+ " , '{3}' \n" //@ord_div
|
|
+ " , '{4}' \n" //@floor_cd
|
|
+ " , '{5}' \n" //@tbl_no
|
|
+ " , {6} \n" //@seq
|
|
+ " ,N'{7}' \n" //@msg1
|
|
+ " ,N'{8}' \n" //@msg2
|
|
+ " ,N'{9}' \n" //@msg3
|
|
+ " , '{10}' \n" //@cashier_id
|
|
+ " , '{11}' \n" //@reg_time
|
|
+ " , '{12}' \n" //@reg_dt
|
|
+ " ) "
|
|
;
|
|
#endregion
|
|
|
|
#region >> 좌석메모정보 이동 (1st -> 2nd)
|
|
if (dtSeatMsg1st != null)
|
|
{
|
|
foreach (DataRow dr in dtSeatMsg1st.Rows)
|
|
{
|
|
sql = string.Format(fmt, CmUtil.GetDataRowStr(dr, "CMP_CD")
|
|
, CmUtil.GetDataRowStr(dr, "STOR_CD")
|
|
, CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN") // Add, 2017.03.06, 연습모드
|
|
, CmUtil.GetDataRowStr(dr, "ORD_DIV")
|
|
, sToFloorCd
|
|
, sToTableNo
|
|
, CmUtil.GetDataRowStr(dr, "SEQ")
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG1"))
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG2"))
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG3"))
|
|
, CmUtil.GetDataRowStr(dr, "CASHIER_ID")
|
|
, CmUtil.GetDataRowStr(dr, "REG_TIME")
|
|
, CmUtil.GetDataRowStr(dr, "REG_DT")
|
|
);
|
|
lstQuery.Add(sql);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region >> 좌석메모정보 이동 (2nd -> 1st)
|
|
if (dtSeatMsg2nd != null)
|
|
{
|
|
foreach (DataRow dr in dtSeatMsg2nd.Rows)
|
|
{
|
|
sql = string.Format(fmt, CmUtil.GetDataRowStr(dr, "CMP_CD")
|
|
, CmUtil.GetDataRowStr(dr, "STOR_CD")
|
|
, CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN") // Add, 2017.03.06, 연습모드
|
|
, CmUtil.GetDataRowStr(dr, "ORD_DIV")
|
|
, sFromFloorCd
|
|
, sFromTableNo
|
|
, CmUtil.GetDataRowStr(dr, "SEQ")
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG1"))
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG2"))
|
|
, ConvertDBStr(CmUtil.GetDataRowStr(dr, "MSG3"))
|
|
, CmUtil.GetDataRowStr(dr, "CASHIER_ID")
|
|
, CmUtil.GetDataRowStr(dr, "REG_TIME")
|
|
, CmUtil.GetDataRowStr(dr, "REG_DT")
|
|
);
|
|
lstQuery.Add(sql);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region 주방부가메시지 출력
|
|
|
|
#region >> INSERT INTO POSMST..MST_KTCH_ORD_MSG_ADD
|
|
fmt = "INSERT INTO POSMST..MST_KTCH_ORD_MSG_ADD \n"
|
|
+ "( ORD_DIV, FLOOR_CD, TBL_NO, SEQ, SUB_STOR_CD, KTCH_SYS_CD, MSG_DIV, MSG1, MSG2, MSG_REG_TIME, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN \n"
|
|
+ ", FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT \n"
|
|
+ ", TRAIN_MODE_YN \n" // Add, 2017.03.02, 연습모드
|
|
+ ", ORD_POS_NO \n" // Add, 2017.04.10
|
|
+ " ) \n"
|
|
+ "SELECT \n"
|
|
+ " '{0}' \n" //ORD_DIV
|
|
+ ", '{1}' \n" //FLOOR_CD
|
|
+ ", '{2}' \n" //TBL_NO
|
|
//SEQ
|
|
+ ", (SELECT ISNULL(MAX(SEQ), 0) + 1 FROM POSMST..MST_KTCH_ORD_MSG_ADD WHERE TRAIN_MODE_YN = '{19}' AND ORD_DIV = '{0}' AND FLOOR_CD = '{1}' AND TBL_NO = '{2}') \n"
|
|
+ ", '{3}' \n" //SUB_STOR_CD
|
|
+ ", '{4}' \n" //KTCH_SYS_CD
|
|
+ ", '{5}' \n" //MSG_DIV
|
|
+ ",N'{6}' \n" //MSG1
|
|
+ ",N'{7}' \n" //MSG2
|
|
+ ", '{8}' \n" //MSG_REG_TIME
|
|
+ ", '{9}' \n" //SEND_YN
|
|
+ ", '{10}' \n" //SEND_CONFIRM_DIV
|
|
+ ", '{11}' \n" //RESEND_YN
|
|
+ ", '{12}' \n" //FILLER1
|
|
+ ", '{13}' \n" //FILLER2
|
|
+ ", '{14}' \n" //FILLER3
|
|
+ ", '{15}' \n" //FILLER4
|
|
+ ", '{16}' \n" //FILLER5
|
|
+ ", '{17}' \n" //UPD_DT
|
|
+ ", '{18}' \n" //REG_DT
|
|
+ ", '{19}' \n" // Add, 2017.03.02, 연습모드
|
|
+ ", '{20}' \n" // Add, 2017.04.10
|
|
;
|
|
#endregion
|
|
|
|
#region >> 주방메시지 출력 (1st -> 2nd)
|
|
if (cTable1st != null)
|
|
{
|
|
for (var i = 0; i < lstKps.Count; i++)
|
|
{
|
|
var ktchDev = lstKps[i].Split(',');
|
|
sql = string.Format(fmt, PosConst.ORDER_TYPE.NORMAL
|
|
, sFromFloorCd
|
|
, sFromTableNo
|
|
, ktchDev[0].Trim()
|
|
, ktchDev[1].Trim()
|
|
, PosConst.KPS_ORD_MSG_ID.TABLE_MOVE
|
|
, sToFloorCd
|
|
, sToTableNo
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, "0"
|
|
, "0"
|
|
, "0"
|
|
, ""
|
|
, ""
|
|
, ""
|
|
, ""
|
|
, ""
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
// 주방출력삭제(2017.05.24)
|
|
//lstQuery.Add(sql);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region >> 주방메시지 출력 (2nd -> 1st)
|
|
if (cTable2nd != null)
|
|
{
|
|
for (var i = 0; i < lstKps.Count; i++)
|
|
{
|
|
var ktchDev = lstKps[i].Split(',');
|
|
sql = string.Format(fmt, PosConst.ORDER_TYPE.NORMAL
|
|
, sToFloorCd
|
|
, sToTableNo
|
|
, ktchDev[0].Trim()
|
|
, ktchDev[1].Trim()
|
|
, PosConst.KPS_ORD_MSG_ID.TABLE_MOVE
|
|
, sFromFloorCd
|
|
, sFromTableNo
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, "0"
|
|
, "0"
|
|
, "0"
|
|
, ""
|
|
, ""
|
|
, ""
|
|
, ""
|
|
, ""
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
// 주방출력삭제(2017.05.24)
|
|
//lstQuery.Add(sql);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
ret = m_cSqlDbService.DBExecuteNonQuery(lstQuery.ToArray(), true);
|
|
sReturn = ret == UserCom.OK ? UserCom.RST_OK : UserCom.RST_ERR;
|
|
|
|
//Rhee, #2017/10/26 중국후불매장의 경우 테이블이동후 주문내역서 출력 기능 정지. Start
|
|
if (m_cPosStatus.Base.CmpCd.ToUpper() != "PCCN")
|
|
{
|
|
// 이동테이블 주문내역서 출력
|
|
if (sReturn == UserCom.RST_OK)
|
|
{
|
|
this.ExecuteOrderBillReceipt(sFromFloorCd, sFromTableNo);
|
|
this.ExecuteOrderBillReceipt(sToFloorCd, sToTableNo);
|
|
}
|
|
}
|
|
//Rhee, #2017/10/26 중국후불매장의 경우 테이블이동후 주문내역서 출력 기능 정지. End
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 메뉴이동
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string UpdateMenuItemMove()
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
string sInsFmt = string.Empty;
|
|
string sSelFmt = string.Empty;
|
|
|
|
int iSeq = 0;
|
|
int leftItemCnt = 0;
|
|
int rightItemCnt = 0;
|
|
double dTableOrderAmt = 0;
|
|
bool bIsFirstOrder = false;
|
|
|
|
try
|
|
{
|
|
// 이동 상품정보
|
|
var cFormTableItemMoveUs = (IFormTableItemMoveUs)FormManager.GetForm(FormManager.FORM_ETC_TABLE_ITEM_MOVE);
|
|
var dtLeftGrid = cFormTableItemMoveUs.LeftGrid;
|
|
var dtRightGrid = cFormTableItemMoveUs.RightGrid;
|
|
if (dtLeftGrid == null || dtRightGrid == null) return UserCom.RST_ERR;
|
|
|
|
// 이동 대상 층/테이블 정보
|
|
var s1stFloorCd = cFormTableItemMoveUs.FirstSelectedFloorCd;
|
|
var s1stTableNo = cFormTableItemMoveUs.FirstSelectedTableNo;
|
|
var s2ndFloorCd = cFormTableItemMoveUs.SecondSelectedFloorCd;
|
|
var s2ndTableNo = cFormTableItemMoveUs.SecondSelectedTableNo;
|
|
|
|
// 주문 마스터 Backup
|
|
DataTable dtBackUpOrd1 = null;
|
|
DataTable dtBackUpOrd2 = null;
|
|
this.SelectTableOrderItem(new string[] { "0", s1stFloorCd, s1stTableNo }, out dtBackUpOrd1);
|
|
this.SelectTableOrderItem(new string[] { "0", s2ndFloorCd, s2ndTableNo }, out dtBackUpOrd2);
|
|
|
|
// 주방주문메시지 마스터 Backup
|
|
DataTable dtBackUpOrdMsg1 = null;
|
|
DataTable dtBackUpOrdMsg2 = null;
|
|
#region (주석)
|
|
//sSelFmt = "SELECT ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE \n"
|
|
// + " , ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV \n"
|
|
// + " , MSG1, MSG2, MSG3, MSG_REG_TIME, SEND_YN, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO \n"
|
|
// + " , SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT \n"
|
|
// + " , TRAIN_MODE_YN \n" // Add, 2017.03.02, 연습모드
|
|
// + " , KTCH_MSG \n" // Add, 2017.03.21
|
|
// + " , ORG_QTY \n" // Add, 2017.03.31
|
|
// + " FROM POSMST..MST_KTCH_ORD_MSG \n"
|
|
// + " WHERE TRAIN_MODE_YN = '{0}' AND ORD_DIV = '{1}' AND FLOOR_CD = '{2}' AND TBL_NO = '{3}' "
|
|
// ;
|
|
#endregion
|
|
sSelFmt = "SELECT * FROM POSMST..MST_KTCH_ORD_MSG \n"
|
|
+ " WHERE TRAIN_MODE_YN = '{0}' AND ORD_DIV = '{1}' AND FLOOR_CD = '{2}' AND TBL_NO = '{3}' "
|
|
;
|
|
sQuery = string.Format(sSelFmt, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, s1stFloorCd, s1stTableNo);
|
|
m_cSqlDbService.DBSelect(sQuery, out dtBackUpOrdMsg1);
|
|
|
|
sQuery = string.Format(sSelFmt, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL, s2ndFloorCd, s2ndTableNo);
|
|
m_cSqlDbService.DBSelect(sQuery, out dtBackUpOrdMsg2);
|
|
|
|
// 상품별 주방프린터 마스터 백업
|
|
DataTable dtData = null;
|
|
Dictionary<string, string> lstKps = new Dictionary<string, string>();
|
|
if (GetKtchDiveceItem(s1stFloorCd, s1stTableNo, out dtData) > 0)
|
|
{
|
|
foreach (DataRow dr in dtData.Rows)
|
|
{
|
|
var key = CmUtil.GetDataRowStr(dr, "SUB_STOR_CD").Trim() + CmUtil.GetDataRowStr(dr, "ITEM_CD").Trim() + CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD").Trim();
|
|
var dev = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD").Trim();
|
|
if (lstKps.ContainsKey(key) == false) lstKps.Add(key, dev);
|
|
}
|
|
}
|
|
if (GetKtchDiveceItem(s2ndFloorCd, s2ndTableNo, out dtData) > 0)
|
|
{
|
|
foreach (DataRow dr in dtData.Rows)
|
|
{
|
|
var key = CmUtil.GetDataRowStr(dr, "SUB_STOR_CD").Trim() + CmUtil.GetDataRowStr(dr, "ITEM_CD").Trim() + CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD").Trim();
|
|
var dev = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD").Trim();
|
|
if (lstKps.ContainsKey(key) == false) lstKps.Add(key, dev);
|
|
}
|
|
}
|
|
|
|
// 두번째 테이블 최초주문 여부 확인
|
|
dtData = null;
|
|
sReturn = this.SelectTable(new string[] { PosConst.QueryTagDef.QueryTableDef.TABLE_NO_FLOOR_CD_SEARCH, s2ndFloorCd, s2ndTableNo }, out dtData);
|
|
if (sReturn != 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 + "()",
|
|
sQuery + "[ERROR]");
|
|
return UserCom.RST_ERR;
|
|
}
|
|
if (CmUtil.GetDataRowInt(dtData.Rows[0], "CUST_CNT") == 0 &&
|
|
CmUtil.GetDataRowDouble(dtData.Rows[0], "ORD_AMT") == 0 &&
|
|
CmUtil.GetDataRowStr(dtData.Rows[0], "FIRST_ORD_HOUR").Trim() == "")
|
|
{
|
|
bIsFirstOrder = true;
|
|
}
|
|
|
|
// Transaction Begin
|
|
m_cSqlDbService.Begin();
|
|
|
|
#region ### 왼쪽 그리드 변경 데이터 Update
|
|
|
|
iSeq = 0;
|
|
leftItemCnt = 0;
|
|
dTableOrderAmt = 0;
|
|
|
|
#region 주문마스터 삭제 (DELETE FROM POSMST..MST_ORD)
|
|
sQuery = " DELETE FROM POSMST..MST_ORD \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' \n"
|
|
+ " AND FLOOR_CD = '" + s1stFloorCd + "' \n"
|
|
+ " AND TBL_NO = '" + s1stTableNo + "' \n"
|
|
;
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region 주방주문메시지 마스터 삭제 (DELETE FROM POSMST..MST_KTCH_ORD_MSG)
|
|
sQuery = " DELETE FROM POSMST..MST_KTCH_ORD_MSG \n"
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' \n"
|
|
+ " AND FLOOR_CD = '" + s1stFloorCd + "' \n"
|
|
+ " AND TBL_NO = '" + s1stTableNo + "' ";
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
foreach (DataRow dr in dtLeftGrid.Rows)
|
|
{
|
|
if (CmUtil.GetDataRowStr(dr, "CANCEL_DIV") != PosConst.CANCEL_DIV.CANCEL)
|
|
{
|
|
leftItemCnt++;
|
|
dTableOrderAmt += CmUtil.GetDataRowDouble(dr, "BILL_AMT");
|
|
}
|
|
|
|
// sKeys[0]:ORD_DIV, sKeys[1]:FLOOR_CD, sKeys[2]:TBL_NO, sKeys[3]:SEQ(GridRowNo)
|
|
var sKeys = CmUtil.GetDataRowStr(dr, "REF").Split(new char[] { '|' });
|
|
var saleQty = CmUtil.GetDataRowInt(dr, "QTY");
|
|
var saleAmt = CmUtil.GetDataRowDouble(dr, "SALE_PRC") * saleQty;
|
|
var billAmt = CmUtil.GetDataRowDouble(dr, "BILL_AMT");
|
|
|
|
#region 왼쪽그리드 상품이동 (POSMST..MST_ORD)
|
|
|
|
#region >> INSERT INTO POSMST..MST_ORD
|
|
sInsFmt = " INSERT INTO POSMST..MST_ORD ( "
|
|
+ " CMP_CD, STOR_CD, ORD_DIV, FLOOR_CD, TBL_NO, SEQ, ITEM_CD "
|
|
+ " , ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, SALE_PRC, SALE_AMT "
|
|
+ " , BILL_AMT, DC_DIV, DC_RATE, ITEM_DC_AMT, SUM_DC_AMT "
|
|
+ " , CPI_DC_AMT, COOP_CARD_DC_DIV, COOP_CARD_DC_AMT, POINT_DC_DIV, POINT_DC_AMT "
|
|
+ " , CPN_DC_DIV, CPN_DC_AMT, EMP_DC_DIV, EMP_DC_AMT, SET_DC_AMT "
|
|
+ " , ETC_DC_DIV, ETC_DC, EXCEP_DC_DIV, EXCEP_DC_AMT, PACK_DIV, SET_MENU_CD, CPI_PRESENT_DIV "
|
|
+ " , SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME "
|
|
+ " , ORD_TIME, ORD_COMP_DIV, ORD_PIC_NO, CANCEL_DIV, CANCEL_DATE "
|
|
+ " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 "
|
|
//+ " , UPD_DT, REG_DT "
|
|
//+ " , UPD_DT, REG_DT, SUB_STOR_CD " // Mod, 2017.02.08
|
|
//+ " , UPD_DT, REG_DT, SUB_STOR_CD, NOTAX_DIV " // Mod, 2017.02.15
|
|
+ " , UPD_DT, REG_DT, SUB_STOR_CD, NOTAX_DIV, TRAIN_MODE_YN " // Mod, 2017.03.02, 연습모드
|
|
+ " , DC_TYPE " // Add, 2017.03.30
|
|
+ " , ORG_QTY " // Add, 2017.03.31
|
|
+ " , ORD_POS_NO " // Add, 2017.04.10
|
|
+ " ) VALUES ( "
|
|
+ " '{0}' "
|
|
+ " , '{1}' "
|
|
+ " , '{2}' "
|
|
+ " , '{3}' "
|
|
+ " , '{4}' "
|
|
+ " , {5} "
|
|
+ " , '{6}' "
|
|
+ " , '{7}' "
|
|
+ " ,N'{8}' "
|
|
+ " , {9} "
|
|
+ " , {10} "
|
|
+ " , {11} "
|
|
+ " , {12} "
|
|
+ " , '{13}' "
|
|
+ " , {14} "
|
|
+ " , {15} "
|
|
+ " , {16} "
|
|
+ " , {17} "
|
|
+ " , '{18}' "
|
|
+ " , {19} "
|
|
+ " , '{20}' "
|
|
+ " , {21} "
|
|
+ " , '{22}' "
|
|
+ " , {23} "
|
|
+ " , '{24}' "
|
|
+ " , {25} "
|
|
+ " , {26} "
|
|
+ " , '{27}' "
|
|
+ " , {28} "
|
|
+ " , '{29}' "
|
|
+ " , {30} "
|
|
+ " , '{31}' "
|
|
+ " , '{32}' "
|
|
+ " , '{33}' "
|
|
+ " , '{34}' "
|
|
+ " ,N'{35}' "
|
|
+ " ,N'{36}' "
|
|
+ " ,N'{37}' "
|
|
+ " , '{38}' "
|
|
+ " , '{39}' "
|
|
+ " , '{40}' "
|
|
+ " , '{41}' "
|
|
+ " , '{42}' "
|
|
+ " , '{43}' "
|
|
+ " , '{44}' "
|
|
+ " , '{45}' "
|
|
+ " , '{46}' "
|
|
+ " , '{47}' "
|
|
+ " , '{48}' "
|
|
+ " , '{49}' "
|
|
+ " , '{50}' "
|
|
+ " , '{51}' " // Add, 2017.02.08
|
|
+ " , '{52}' " // Add, 2017.02.15
|
|
+ " , '{53}' " // Add, 2017.03.02, 연습모드
|
|
+ " , '{54}' " // Add, 2017.03.30
|
|
+ " , {55} " // Add, 2017.03.31
|
|
+ " , '{56}' " // Add, 2017.04.10
|
|
+ " ) ";
|
|
#endregion
|
|
|
|
if (s1stFloorCd == sKeys[1] && s1stTableNo == sKeys[2])
|
|
{
|
|
#region >> 이동되지 않은 상품
|
|
|
|
var drBackOrder1 = dtBackUpOrd1.Rows[int.Parse(sKeys[3]) - 1];
|
|
|
|
sQuery = string.Format(sInsFmt
|
|
, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, drBackOrder1["ORD_DIV"].ToString()
|
|
, s1stFloorCd
|
|
, s1stTableNo
|
|
, (iSeq + 1).ToString()
|
|
, drBackOrder1["ITEM_CD"].ToString()
|
|
, drBackOrder1["ITEM_DIV"].ToString()
|
|
, drBackOrder1["SHTCUT_ITEMNM"].ToString()
|
|
, saleQty //, drBackOrder1["SALE_QTY"].ToString()
|
|
, drBackOrder1["SALE_PRC"].ToString()
|
|
, saleAmt //, drBackOrder1["SALE_AMT"].ToString()
|
|
, billAmt //, drBackOrder1["BILL_AMT"].ToString()
|
|
, drBackOrder1["DC_DIV"].ToString()
|
|
, drBackOrder1["DC_RATE"].ToString()
|
|
, drBackOrder1["ITEM_DC_AMT"].ToString()
|
|
, drBackOrder1["SUM_DC_AMT"].ToString()
|
|
, drBackOrder1["CPI_DC_AMT"].ToString()
|
|
, drBackOrder1["COOP_CARD_DC_DIV"].ToString()
|
|
, drBackOrder1["COOP_CARD_DC_AMT"].ToString()
|
|
, drBackOrder1["POINT_DC_DIV"].ToString()
|
|
, drBackOrder1["POINT_DC_AMT"].ToString()
|
|
, drBackOrder1["CPN_DC_DIV"].ToString()
|
|
, drBackOrder1["CPN_DC_AMT"].ToString()
|
|
, drBackOrder1["EMP_DC_DIV"].ToString()
|
|
, drBackOrder1["EMP_DC_AMT"].ToString()
|
|
, drBackOrder1["SET_DC_AMT"].ToString()
|
|
, drBackOrder1["ETC_DC_DIV"].ToString()
|
|
, drBackOrder1["ETC_DC"].ToString()
|
|
, drBackOrder1["EXCEP_DC_DIV"].ToString()
|
|
, drBackOrder1["EXCEP_DC_AMT"].ToString()
|
|
, drBackOrder1["PACK_DIV"].ToString()
|
|
, drBackOrder1["SET_MENU_CD"].ToString()
|
|
, drBackOrder1["CPI_PRESENT_DIV"].ToString()
|
|
, drBackOrder1["SUB_MEMO_DIV"].ToString()
|
|
, ConvertDBStr(drBackOrder1["MSG1"].ToString())
|
|
, ConvertDBStr(drBackOrder1["MSG2"].ToString())
|
|
, ConvertDBStr(drBackOrder1["MSG3"].ToString())
|
|
, drBackOrder1["MSG_REG_TIME"].ToString()
|
|
, drBackOrder1["ORD_TIME"].ToString()
|
|
, drBackOrder1["ORD_COMP_DIV"].ToString()
|
|
, drBackOrder1["ORD_PIC_NO"].ToString()
|
|
, drBackOrder1["CANCEL_DIV"].ToString()
|
|
, drBackOrder1["CANCEL_DATE"].ToString()
|
|
, drBackOrder1["FILLER1"].ToString()
|
|
, drBackOrder1["FILLER2"].ToString()
|
|
, drBackOrder1["FILLER3"].ToString()
|
|
, drBackOrder1["FILLER4"].ToString()
|
|
, drBackOrder1["FILLER5"].ToString()
|
|
, drBackOrder1["UPD_DT"].ToString()
|
|
, drBackOrder1["REG_DT"].ToString()
|
|
, drBackOrder1["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrder1["NOTAX_DIV"].ToString() // Add, 2017.02.08
|
|
, drBackOrder1["TRAIN_MODE_YN"].ToString() // Add, 2017.03.02, 연습모드
|
|
, drBackOrder1["DC_TYPE"].ToString() // Add, 2017.03.30
|
|
, drBackOrder1["ORG_QTY"].ToString() // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
#region >> 이동된 상품 이면
|
|
|
|
var drBackOrder2 = dtBackUpOrd2.Rows[int.Parse(sKeys[3]) - 1];
|
|
|
|
sQuery = string.Format(sInsFmt
|
|
, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, drBackOrder2["ORD_DIV"].ToString()
|
|
, s1stFloorCd
|
|
, s1stTableNo
|
|
, (iSeq + 1).ToString()
|
|
, drBackOrder2["ITEM_CD"].ToString()
|
|
, drBackOrder2["ITEM_DIV"].ToString()
|
|
, drBackOrder2["SHTCUT_ITEMNM"].ToString()
|
|
, saleQty //, drBackOrder2["SALE_QTY"].ToString()
|
|
, drBackOrder2["SALE_PRC"].ToString()
|
|
, saleAmt //, drBackOrder2["SALE_AMT"].ToString()
|
|
, billAmt //, drBackOrder2["BILL_AMT"].ToString()
|
|
, drBackOrder2["DC_DIV"].ToString()
|
|
, drBackOrder2["DC_RATE"].ToString()
|
|
, drBackOrder2["ITEM_DC_AMT"].ToString()
|
|
, drBackOrder2["SUM_DC_AMT"].ToString()
|
|
, drBackOrder2["CPI_DC_AMT"].ToString()
|
|
, drBackOrder2["COOP_CARD_DC_DIV"].ToString()
|
|
, drBackOrder2["COOP_CARD_DC_AMT"].ToString()
|
|
, drBackOrder2["POINT_DC_DIV"].ToString()
|
|
, drBackOrder2["POINT_DC_AMT"].ToString()
|
|
, drBackOrder2["CPN_DC_DIV"].ToString()
|
|
, drBackOrder2["CPN_DC_AMT"].ToString()
|
|
, drBackOrder2["EMP_DC_DIV"].ToString()
|
|
, drBackOrder2["EMP_DC_AMT"].ToString()
|
|
, drBackOrder2["SET_DC_AMT"].ToString()
|
|
, drBackOrder2["ETC_DC_DIV"].ToString()
|
|
, drBackOrder2["ETC_DC"].ToString()
|
|
, drBackOrder2["EXCEP_DC_DIV"].ToString()
|
|
, drBackOrder2["EXCEP_DC_AMT"].ToString()
|
|
, drBackOrder2["PACK_DIV"].ToString()
|
|
, drBackOrder2["SET_MENU_CD"].ToString()
|
|
, drBackOrder2["CPI_PRESENT_DIV"].ToString()
|
|
, drBackOrder2["SUB_MEMO_DIV"].ToString()
|
|
, ConvertDBStr(drBackOrder2["MSG1"].ToString())
|
|
, ConvertDBStr(drBackOrder2["MSG2"].ToString())
|
|
, ConvertDBStr(drBackOrder2["MSG3"].ToString())
|
|
, drBackOrder2["MSG_REG_TIME"].ToString()
|
|
, drBackOrder2["ORD_TIME"].ToString()
|
|
, drBackOrder2["ORD_COMP_DIV"].ToString()
|
|
, drBackOrder2["ORD_PIC_NO"].ToString()
|
|
, drBackOrder2["CANCEL_DIV"].ToString()
|
|
, drBackOrder2["CANCEL_DATE"].ToString()
|
|
, drBackOrder2["FILLER1"].ToString()
|
|
, drBackOrder2["FILLER2"].ToString()
|
|
, drBackOrder2["FILLER3"].ToString()
|
|
, drBackOrder2["FILLER4"].ToString()
|
|
, drBackOrder2["FILLER5"].ToString()
|
|
, drBackOrder2["UPD_DT"].ToString()
|
|
, drBackOrder2["REG_DT"].ToString()
|
|
, drBackOrder2["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrder2["NOTAX_DIV"].ToString() // Add, 2017.02.15
|
|
, drBackOrder2["TRAIN_MODE_YN"].ToString() // Add, 2017.03.02, 연습모드
|
|
, drBackOrder2["DC_TYPE"].ToString() // Add, 2017.03.30
|
|
, drBackOrder2["ORG_QTY"].ToString() // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
#endregion
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region 왼쪽그리드 주문메시지 이동 (POSMST..MST_KTCH_ORD_MSG)
|
|
|
|
#region >> INSERT INTO POSMST..MST_KTCH_ORD_MSG
|
|
sInsFmt = " INSERT INTO POSMST..MST_KTCH_ORD_MSG ( "
|
|
+ " ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD "
|
|
+ ", ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD "
|
|
+ ", ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO "
|
|
+ ", ORG_BILLDT, ORG_BILL_NO, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2 "
|
|
+ ", FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, SUB_STOR_CD " // Mod, 2017.02.08
|
|
+ ", TRAIN_MODE_YN " // Add, 2017.03.02, 연습모드
|
|
+ ", KTCH_MSG " // Add, 2017.03.21
|
|
+ ", ORG_QTY " // Add, 2017.03.31
|
|
+ ", ORD_POS_NO " // Add, 2017.04.10
|
|
+ ", ORD_PIC_NM \n" // Add, 2017.04.26, 주문담당자
|
|
+ ", KDS_SEND_YN \n" // Add, 2017.04.26, KDS 전송구분
|
|
+ ") VALUES ( "
|
|
+ " '{0}' "
|
|
+ ", '{1}' "
|
|
+ ", '{2}' "
|
|
+ ", {3} "
|
|
+ ", '{4}' "
|
|
+ ", '{5}' "
|
|
+ ", '{6}' "
|
|
+ ", '{7}' "
|
|
+ ", '{8}' "
|
|
+ ", '{9}' "
|
|
+ ", '{10}' "
|
|
+ ", '{11}' "
|
|
+ ", '{12}' "
|
|
+ ",N'{13}' "
|
|
+ ", {14} "
|
|
+ ", '{15}' "
|
|
+ ", '{16}' "
|
|
+ ", '{17}' "
|
|
+ ", '{18}' "
|
|
+ ", '{19}' "
|
|
+ ",N'{20}' "
|
|
+ ",N'{21}' "
|
|
+ ",N'{22}' "
|
|
+ ", '{23}' "
|
|
+ ", '{24}' "
|
|
+ ", '{25}' "
|
|
+ ", '{26}' "
|
|
+ ", '{27}' "
|
|
+ ", '{28}' "
|
|
+ ", '{29}' "
|
|
+ ", '{30}' "
|
|
+ ", '{31}' "
|
|
+ ", '{32}' "
|
|
+ ", '{33}' "
|
|
+ ", '{34}' "
|
|
+ ", '{35}' "
|
|
+ ", '{36}' "
|
|
+ ", '{37}' " // Add, 2017.02.08
|
|
+ ", '{38}' " // Add, 2017.03.02, 연습모드
|
|
+ ",N'{39}' " // Add, 2017.03.21
|
|
+ ", {40} " // Add, 2017.03.31
|
|
+ ", '{41}' " // Add, 2017.04.10
|
|
+ ",N'{42}' " // Add, 2017.04.26, 주문담당자
|
|
+ ", '{43}' " // Add, 2017.04.26, KDS 전송구분
|
|
+ " ) ";
|
|
#endregion
|
|
|
|
if (s1stFloorCd == sKeys[1] && s1stTableNo == sKeys[2])
|
|
{
|
|
#region >> 이동되지 않은 상품
|
|
|
|
var drBackOrdMsg1 = dtBackUpOrdMsg1.Rows[int.Parse(sKeys[3]) - 1];
|
|
|
|
sQuery = string.Format(sInsFmt
|
|
, drBackOrdMsg1["ORD_DIV"].ToString()
|
|
, s1stFloorCd
|
|
, s1stTableNo
|
|
, (iSeq + 1).ToString()
|
|
, drBackOrdMsg1["CMP_CD"].ToString()
|
|
, drBackOrdMsg1["BRAND_CD"].ToString()
|
|
, drBackOrdMsg1["STOR_CD"].ToString()
|
|
, drBackOrdMsg1["POS_NO"].ToString()
|
|
, drBackOrdMsg1["TRADE_NO"].ToString()
|
|
, drBackOrdMsg1["SALE_DT"].ToString()
|
|
, drBackOrdMsg1["POS_TYPE"].ToString()
|
|
, drBackOrdMsg1["ITEM_CD"].ToString()
|
|
, drBackOrdMsg1["ITEM_DIV"].ToString()
|
|
, drBackOrdMsg1["SHTCUT_ITEMNM"].ToString()
|
|
, saleQty //, drBackOrdMsg1["SALE_QTY"].ToString()
|
|
, drBackOrdMsg1["PACK_DIV"].ToString()
|
|
, drBackOrdMsg1["SET_MENU_CD"].ToString()
|
|
, drBackOrdMsg1["ORD_TIME"].ToString()
|
|
, drBackOrdMsg1["CANCEL_DIV"].ToString()
|
|
, drBackOrdMsg1["SUB_MEMO_DIV"].ToString()
|
|
, ConvertDBStr(drBackOrdMsg1["MSG1"].ToString())
|
|
, ConvertDBStr(drBackOrdMsg1["MSG2"].ToString())
|
|
, ConvertDBStr(drBackOrdMsg1["MSG3"].ToString())
|
|
, drBackOrdMsg1["MSG_REG_TIME"].ToString()
|
|
, drBackOrdMsg1["ORG_BILL_POSNO"].ToString()
|
|
, drBackOrdMsg1["ORG_BILLDT"].ToString()
|
|
, drBackOrdMsg1["ORG_BILL_NO"].ToString()
|
|
, drBackOrdMsg1["SEND_YN"].ToString()
|
|
, drBackOrdMsg1["SEND_CONFIRM_DIV"].ToString()
|
|
, drBackOrdMsg1["RESEND_YN"].ToString()
|
|
, drBackOrdMsg1["FILLER1"].ToString() // 수동주방출력 관련 구분값
|
|
, drBackOrdMsg1["FILLER2"].ToString()
|
|
, drBackOrdMsg1["FILLER3"].ToString()
|
|
, drBackOrdMsg1["FILLER4"].ToString()
|
|
, drBackOrdMsg1["FILLER5"].ToString()
|
|
, drBackOrdMsg1["UPD_DT"].ToString()
|
|
, drBackOrdMsg1["REG_DT"].ToString()
|
|
, drBackOrdMsg1["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrdMsg1["TRAIN_MODE_YN"].ToString() // Add, 2017.03.02, 연습모드
|
|
, ConvertDBStr(drBackOrdMsg1["KTCH_MSG"].ToString()) // Add, 2017.03.21
|
|
, drBackOrdMsg1["ORG_QTY"].ToString() // Add, 2017.03.02, 연습모드
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
, ConvertDBStr(drBackOrdMsg1["ORD_PIC_NM"].ToString()) // Add, 2017.04.26, 주문담당자
|
|
, drBackOrdMsg1["KDS_SEND_YN"].ToString() // Add, 2017.04.26, KDS 전송구분
|
|
);
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
#region >> 이동된 상품
|
|
|
|
var drBackOrdMsg2 = dtBackUpOrdMsg2.Rows[int.Parse(sKeys[3]) - 1];
|
|
sQuery = string.Format(sInsFmt
|
|
, drBackOrdMsg2["ORD_DIV"].ToString()
|
|
, s1stFloorCd
|
|
, s1stTableNo
|
|
, (iSeq + 1).ToString()
|
|
, drBackOrdMsg2["CMP_CD"].ToString()
|
|
, drBackOrdMsg2["BRAND_CD"].ToString()
|
|
, drBackOrdMsg2["STOR_CD"].ToString()
|
|
, drBackOrdMsg2["POS_NO"].ToString()
|
|
, drBackOrdMsg2["TRADE_NO"].ToString()
|
|
, drBackOrdMsg2["SALE_DT"].ToString()
|
|
, drBackOrdMsg2["POS_TYPE"].ToString()
|
|
, drBackOrdMsg2["ITEM_CD"].ToString()
|
|
, drBackOrdMsg2["ITEM_DIV"].ToString()
|
|
, drBackOrdMsg2["SHTCUT_ITEMNM"].ToString()
|
|
, saleQty //, drBackOrdMsg2["SALE_QTY"].ToString()
|
|
, drBackOrdMsg2["PACK_DIV"].ToString()
|
|
, drBackOrdMsg2["SET_MENU_CD"].ToString()
|
|
, drBackOrdMsg2["ORD_TIME"].ToString()
|
|
, drBackOrdMsg2["CANCEL_DIV"].ToString()
|
|
, drBackOrdMsg2["SUB_MEMO_DIV"].ToString()
|
|
, ConvertDBStr(drBackOrdMsg2["MSG1"].ToString())
|
|
, ConvertDBStr(drBackOrdMsg2["MSG2"].ToString())
|
|
, ConvertDBStr(drBackOrdMsg2["MSG3"].ToString())
|
|
, drBackOrdMsg2["MSG_REG_TIME"].ToString()
|
|
, drBackOrdMsg2["ORG_BILL_POSNO"].ToString()
|
|
, drBackOrdMsg2["ORG_BILLDT"].ToString()
|
|
, drBackOrdMsg2["ORG_BILL_NO"].ToString()
|
|
, drBackOrdMsg2["SEND_YN"].ToString()
|
|
, drBackOrdMsg2["SEND_CONFIRM_DIV"].ToString()
|
|
, drBackOrdMsg2["RESEND_YN"].ToString()
|
|
, drBackOrdMsg2["FILLER1"].ToString()
|
|
, drBackOrdMsg2["FILLER2"].ToString()
|
|
, drBackOrdMsg2["FILLER3"].ToString()
|
|
, drBackOrdMsg2["FILLER4"].ToString()
|
|
, drBackOrdMsg2["FILLER5"].ToString()
|
|
, drBackOrdMsg2["UPD_DT"].ToString()
|
|
, drBackOrdMsg2["REG_DT"].ToString()
|
|
, drBackOrdMsg2["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrdMsg2["TRAIN_MODE_YN"].ToString() // Add, 2017.03.02, 연습모드
|
|
, ConvertDBStr(drBackOrdMsg2["KTCH_MSG"].ToString()) // Add, 2017.03.21
|
|
, drBackOrdMsg2["ORG_QTY"].ToString() // Add, 2017.03.02, 연습모드
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
, ConvertDBStr(drBackOrdMsg2["ORD_PIC_NM"].ToString()) // Add, 2017.04.26, 주문담당자
|
|
, drBackOrdMsg2["KDS_SEND_YN"].ToString() // Add, 2017.04.26, KDS 전송구분
|
|
);
|
|
#endregion
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region 왼쪽그리드 이동상품 주방부가메시지 추가 (MST_KTCH_ORD_MSG_ADD)
|
|
|
|
var isAddmsg = true;
|
|
if (s1stFloorCd == sKeys[1] && s1stTableNo == sKeys[2]) isAddmsg = false;
|
|
if (CmUtil.GetDataRowStr(dr, "CANCEL_DIV") == PosConst.CANCEL_DIV.CANCEL) isAddmsg = false;
|
|
if (isAddmsg)
|
|
{
|
|
var drBackOrder2 = dtBackUpOrd2.Rows[int.Parse(sKeys[3]) - 1];
|
|
|
|
sInsFmt = " INSERT INTO POSMST..MST_KTCH_ORD_MSG_ADD ( \n"
|
|
+ " ORD_DIV, FLOOR_CD, TBL_NO, SEQ, KTCH_SYS_CD, ITEM_CD, SHTCUT_ITEMNM, MSG_DIV \n"
|
|
+ ", MSG1, MSG2, MSG3, MSG_REG_TIME, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN \n"
|
|
+ ", FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT \n"
|
|
+ ", SUB_STOR_CD \n" // Add, 2017.02.08
|
|
+ ", TRAIN_MODE_YN \n" // Add, 2017.03.02, 연습모드
|
|
+ ", ORD_POS_NO \n" // Add, 2017.04.10
|
|
+ ") \n"
|
|
+ " SELECT '{0}', '{1}', '{2}' \n"
|
|
+ " , (SELECT ISNULL(MAX(SEQ), 0) + 1 FROM POSMST..MST_KTCH_ORD_MSG_ADD WHERE ORD_DIV = '{0}' AND FLOOR_CD = '{1}' AND TBL_NO = '{2}') \n"
|
|
+ " , '{3}', '{4}', N'{5}', '{6}', N'{7}', N'{8}', N'{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}' \n"
|
|
+ " , '{21}' \n"
|
|
+ " , '{22}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " , '{23}' \n" // Add, 2017.04.10
|
|
;
|
|
var itemKey = drBackOrder2["SUB_STOR_CD"].ToString().Trim()
|
|
+ (drBackOrder2["SUB_MEMO_DIV"].ToString().Trim() == "1"
|
|
? drBackOrder2["FILLER1"].ToString().Trim() : drBackOrder2["ITEM_CD"].ToString().Trim());
|
|
|
|
foreach (var tmpKps in from x in lstKps
|
|
where x.Key.StartsWith(itemKey)
|
|
select x)
|
|
{
|
|
sQuery = string.Format(sInsFmt
|
|
, drBackOrder2["ORD_DIV"].ToString()
|
|
, s2ndFloorCd // From Floor
|
|
, s2ndTableNo // From Table
|
|
, tmpKps.Value
|
|
, drBackOrder2["ITEM_CD"].ToString()
|
|
, drBackOrder2["SHTCUT_ITEMNM"].ToString()
|
|
, PosConst.KPS_ORD_MSG_ID.MENU_MOVE
|
|
, s1stFloorCd // MSG1 To Floor
|
|
, s1stTableNo // MSG2 To Table
|
|
, saleQty // MSG3 //, drBackOrder2["SALE_QTY"].ToString()
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, "0"
|
|
, "0"
|
|
, "0"
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, drBackOrder2["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrder2["TRAIN_MODE_YN"].ToString() // Add, 2017.03.02, 연습모드
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
// 주방출력삭제(2017.05.24)
|
|
//if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
//{
|
|
// m_cSqlDbService.Rollback();
|
|
|
|
// 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 + "()",
|
|
// sQuery + "[ERROR]");
|
|
|
|
// return UserCom.RST_ERR;
|
|
//}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
iSeq++;
|
|
}
|
|
|
|
#region 테이블 마스터 업데이트 (UPDATE POSMST..MST_TBL)
|
|
sQuery = " UPDATE POSMST..MST_TBL "
|
|
+ " SET ORD_AMT = " + dTableOrderAmt.ToString()
|
|
+ " , FIRST_ORD_HOUR = " + (leftItemCnt == 0 ? "''" : "FIRST_ORD_HOUR")
|
|
+ " , CUST_CNT = " + (leftItemCnt == 0 ? "0" : "CUST_CNT")
|
|
+ " , FILLER1 = " + (leftItemCnt == 0 ? "''" : "FILLER1")
|
|
+ " , FILLER2 = " + (leftItemCnt == 0 ? "''" : "FILLER2")
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.02, 연습모드
|
|
+ " AND FLOOR_CD = '" + s1stFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s1stTableNo + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' "
|
|
;
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region ### 오른쪽 그리드 변경 데이터 Update
|
|
|
|
iSeq = 0;
|
|
rightItemCnt = 0;
|
|
dTableOrderAmt = 0;
|
|
|
|
#region 주문마스터 삭제 (DELETE FROM POSMST..MST_ORD)
|
|
sQuery = " DELETE FROM POSMST..MST_ORD "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' "
|
|
+ " AND FLOOR_CD = '" + s2ndFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s2ndTableNo + "' ";
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region 주방주문메시지 마스터 삭제 (DELETE FROM POSMST..MST_KTCH_ORD_MSG)
|
|
sQuery = " DELETE FROM POSMST..MST_KTCH_ORD_MSG "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' "
|
|
+ " AND FLOOR_CD = '" + s2ndFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s2ndTableNo + "' "
|
|
;
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
// 주문마스터 Update
|
|
foreach (DataRow dr in dtRightGrid.Rows)
|
|
{
|
|
if (CmUtil.GetDataRowStr(dr, "CANCEL_DIV") != PosConst.CANCEL_DIV.CANCEL)
|
|
{
|
|
rightItemCnt++;
|
|
dTableOrderAmt += CmUtil.GetDataRowDouble(dr, "BILL_AMT");
|
|
}
|
|
|
|
// sKeys[0]:ORD_DIV, sKeys[1]:FLOOR_CD, sKeys[2]:TBL_NO, sKeys[3]:SEQ(GridRowNo)
|
|
var sKeys = CmUtil.GetDataRowStr(dr, "REF").Split(new char[] { '|' });
|
|
var saleQty = CmUtil.GetDataRowInt(dr, "QTY");
|
|
var saleAmt = CmUtil.GetDataRowDouble(dr, "SALE_PRC") * saleQty;
|
|
var billAmt = CmUtil.GetDataRowDouble(dr, "BILL_AMT");
|
|
|
|
#region 오른쪽 그리드 상품이동
|
|
|
|
#region >> INSERT INTO POSMST..MST_ORD
|
|
sInsFmt = " INSERT INTO POSMST..MST_ORD ( "
|
|
+ " CMP_CD, STOR_CD, ORD_DIV, FLOOR_CD, TBL_NO, SEQ, ITEM_CD "
|
|
+ " , ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, SALE_PRC, SALE_AMT "
|
|
+ " , BILL_AMT, DC_DIV, DC_RATE, ITEM_DC_AMT, SUM_DC_AMT "
|
|
+ " , CPI_DC_AMT, COOP_CARD_DC_DIV, COOP_CARD_DC_AMT, POINT_DC_DIV, POINT_DC_AMT "
|
|
+ " , CPN_DC_DIV, CPN_DC_AMT, EMP_DC_DIV, EMP_DC_AMT, SET_DC_AMT "
|
|
+ " , ETC_DC_DIV, ETC_DC, EXCEP_DC_DIV, EXCEP_DC_AMT, PACK_DIV, SET_MENU_CD, CPI_PRESENT_DIV "
|
|
+ " , SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME "
|
|
+ " , ORD_TIME, ORD_COMP_DIV, ORD_PIC_NO, CANCEL_DIV, CANCEL_DATE "
|
|
+ " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5 "
|
|
//+ " , UPD_DT, REG_DT "
|
|
//+ " , UPD_DT, REG_DT, SUB_STOR_CD " // Mod, 2017.02.08
|
|
//+ " , UPD_DT, REG_DT, SUB_STOR_CD, NOTAX_DIV " // Mod, 2017.02.15
|
|
+ " , UPD_DT, REG_DT, SUB_STOR_CD, NOTAX_DIV, TRAIN_MODE_YN " // Mod, 2017.03.02, 연습모드
|
|
+ " , DC_TYPE " // Add, 2017.03.30
|
|
+ " , ORG_QTY " // Add, 2017.03.31
|
|
+ " , ORD_POS_NO " // Add, 2017.04.10
|
|
+ " ) VALUES ( "
|
|
+ " '{0}' "
|
|
+ " , '{1}' "
|
|
+ " , '{2}' "
|
|
+ " , '{3}' "
|
|
+ " , '{4}' "
|
|
+ " , {5} "
|
|
+ " , '{6}' "
|
|
+ " , '{7}' "
|
|
+ " ,N'{8}' "
|
|
+ " , {9} "
|
|
+ " , {10} "
|
|
+ " , {11} "
|
|
+ " , {12} "
|
|
+ " , '{13}' "
|
|
+ " , {14} "
|
|
+ " , {15} "
|
|
+ " , {16} "
|
|
+ " , {17} "
|
|
+ " , '{18}' "
|
|
+ " , {19} "
|
|
+ " , '{20}' "
|
|
+ " , {21} "
|
|
+ " , '{22}' "
|
|
+ " , {23} "
|
|
+ " , '{24}' "
|
|
+ " , {25} "
|
|
+ " , {26} "
|
|
+ " , '{27}' "
|
|
+ " , {28} "
|
|
+ " , '{29}' "
|
|
+ " , {30} "
|
|
+ " , '{31}' "
|
|
+ " , '{32}' "
|
|
+ " , '{33}' "
|
|
+ " , '{34}' "
|
|
+ " ,N'{35}' "
|
|
+ " ,N'{36}' "
|
|
+ " ,N'{37}' "
|
|
+ " , '{38}' "
|
|
+ " , '{39}' "
|
|
+ " , '{40}' "
|
|
+ " , '{41}' "
|
|
+ " , '{42}' "
|
|
+ " , '{43}' "
|
|
+ " , '{44}' "
|
|
+ " , '{45}' "
|
|
+ " , '{46}' "
|
|
+ " , '{47}' "
|
|
+ " , '{48}' "
|
|
+ " , '{49}' "
|
|
+ " , '{50}' "
|
|
+ " , '{51}' " // Add, 2017.02.08
|
|
+ " , '{52}' " // Add, 2017.02.15
|
|
+ " , '{53}' " // Add, 2017.03.02, 연습모드
|
|
+ " , '{54}' " // Add, 2017.03.30
|
|
+ " , {55} " // Add, 2017.03.31
|
|
+ " , '{56}' " // Add, 2017.04.10
|
|
+ " ) ";
|
|
#endregion
|
|
|
|
if (s2ndFloorCd == sKeys[1] && s2ndTableNo == sKeys[2])
|
|
{
|
|
#region >> 이동되지 않은 상품
|
|
|
|
var drBackOrder2 = dtBackUpOrd2.Rows[int.Parse(sKeys[3]) - 1];
|
|
|
|
sQuery = string.Format(sInsFmt
|
|
, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, drBackOrder2["ORD_DIV"].ToString()
|
|
, s2ndFloorCd
|
|
, s2ndTableNo
|
|
, (iSeq + 1).ToString()
|
|
, drBackOrder2["ITEM_CD"].ToString()
|
|
, drBackOrder2["ITEM_DIV"].ToString()
|
|
, drBackOrder2["SHTCUT_ITEMNM"].ToString()
|
|
, saleQty //, drBackOrder2["SALE_QTY"].ToString()
|
|
, drBackOrder2["SALE_PRC"].ToString()
|
|
, saleAmt //, drBackOrder2["SALE_AMT"].ToString()
|
|
, billAmt //, drBackOrder2["BILL_AMT"].ToString()
|
|
, drBackOrder2["DC_DIV"].ToString()
|
|
, drBackOrder2["DC_RATE"].ToString()
|
|
, drBackOrder2["ITEM_DC_AMT"].ToString()
|
|
, drBackOrder2["SUM_DC_AMT"].ToString()
|
|
, drBackOrder2["CPI_DC_AMT"].ToString()
|
|
, drBackOrder2["COOP_CARD_DC_DIV"].ToString()
|
|
, drBackOrder2["COOP_CARD_DC_AMT"].ToString()
|
|
, drBackOrder2["POINT_DC_DIV"].ToString()
|
|
, drBackOrder2["POINT_DC_AMT"].ToString()
|
|
, drBackOrder2["CPN_DC_DIV"].ToString()
|
|
, drBackOrder2["CPN_DC_AMT"].ToString()
|
|
, drBackOrder2["EMP_DC_DIV"].ToString()
|
|
, drBackOrder2["EMP_DC_AMT"].ToString()
|
|
, drBackOrder2["SET_DC_AMT"].ToString()
|
|
, drBackOrder2["ETC_DC_DIV"].ToString()
|
|
, drBackOrder2["ETC_DC"].ToString()
|
|
, drBackOrder2["EXCEP_DC_DIV"].ToString()
|
|
, drBackOrder2["EXCEP_DC_AMT"].ToString()
|
|
, drBackOrder2["PACK_DIV"].ToString()
|
|
, drBackOrder2["SET_MENU_CD"].ToString()
|
|
, drBackOrder2["CPI_PRESENT_DIV"].ToString()
|
|
, drBackOrder2["SUB_MEMO_DIV"].ToString()
|
|
, ConvertDBStr(drBackOrder2["MSG1"].ToString())
|
|
, ConvertDBStr(drBackOrder2["MSG2"].ToString())
|
|
, ConvertDBStr(drBackOrder2["MSG3"].ToString())
|
|
, drBackOrder2["MSG_REG_TIME"].ToString()
|
|
, drBackOrder2["ORD_TIME"].ToString()
|
|
, drBackOrder2["ORD_COMP_DIV"].ToString()
|
|
, drBackOrder2["ORD_PIC_NO"].ToString()
|
|
, drBackOrder2["CANCEL_DIV"].ToString()
|
|
, drBackOrder2["CANCEL_DATE"].ToString()
|
|
, drBackOrder2["FILLER1"].ToString()
|
|
, drBackOrder2["FILLER2"].ToString()
|
|
, drBackOrder2["FILLER3"].ToString()
|
|
, drBackOrder2["FILLER4"].ToString()
|
|
, drBackOrder2["FILLER5"].ToString()
|
|
, drBackOrder2["UPD_DT"].ToString()
|
|
, drBackOrder2["REG_DT"].ToString()
|
|
, drBackOrder2["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrder2["NOTAX_DIV"].ToString() // Add, 2017.02.08
|
|
, drBackOrder2["TRAIN_MODE_YN"].ToString() // Add, 2017.03.02, 연습모드
|
|
, drBackOrder2["DC_TYPE"].ToString() // Add, 2017.03.30
|
|
, drBackOrder2["ORG_QTY"].ToString() // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
#region >> 이동된 상품 이면
|
|
|
|
var drBackOrder1 = dtBackUpOrd1.Rows[int.Parse(sKeys[3]) - 1];
|
|
sQuery = string.Format(sInsFmt
|
|
, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, drBackOrder1["ORD_DIV"].ToString()
|
|
, s2ndFloorCd
|
|
, s2ndTableNo
|
|
, (iSeq + 1).ToString()
|
|
, drBackOrder1["ITEM_CD"].ToString()
|
|
, drBackOrder1["ITEM_DIV"].ToString()
|
|
, drBackOrder1["SHTCUT_ITEMNM"].ToString()
|
|
, saleQty //, drBackOrder1["SALE_QTY"].ToString()
|
|
, drBackOrder1["SALE_PRC"].ToString()
|
|
, saleAmt //, drBackOrder1["SALE_AMT"].ToString()
|
|
, billAmt //, drBackOrder1["BILL_AMT"].ToString()
|
|
, drBackOrder1["DC_DIV"].ToString()
|
|
, drBackOrder1["DC_RATE"].ToString()
|
|
, drBackOrder1["ITEM_DC_AMT"].ToString()
|
|
, drBackOrder1["SUM_DC_AMT"].ToString()
|
|
, drBackOrder1["CPI_DC_AMT"].ToString()
|
|
, drBackOrder1["COOP_CARD_DC_DIV"].ToString()
|
|
, drBackOrder1["COOP_CARD_DC_AMT"].ToString()
|
|
, drBackOrder1["POINT_DC_DIV"].ToString()
|
|
, drBackOrder1["POINT_DC_AMT"].ToString()
|
|
, drBackOrder1["CPN_DC_DIV"].ToString()
|
|
, drBackOrder1["CPN_DC_AMT"].ToString()
|
|
, drBackOrder1["EMP_DC_DIV"].ToString()
|
|
, drBackOrder1["EMP_DC_AMT"].ToString()
|
|
, drBackOrder1["SET_DC_AMT"].ToString()
|
|
, drBackOrder1["ETC_DC_DIV"].ToString()
|
|
, drBackOrder1["ETC_DC"].ToString()
|
|
, drBackOrder1["EXCEP_DC_DIV"].ToString()
|
|
, drBackOrder1["EXCEP_DC_AMT"].ToString()
|
|
, drBackOrder1["PACK_DIV"].ToString()
|
|
, drBackOrder1["SET_MENU_CD"].ToString()
|
|
, drBackOrder1["CPI_PRESENT_DIV"].ToString()
|
|
, drBackOrder1["SUB_MEMO_DIV"].ToString()
|
|
, ConvertDBStr(drBackOrder1["MSG1"].ToString())
|
|
, ConvertDBStr(drBackOrder1["MSG2"].ToString())
|
|
, ConvertDBStr(drBackOrder1["MSG3"].ToString())
|
|
, drBackOrder1["MSG_REG_TIME"].ToString()
|
|
, drBackOrder1["ORD_TIME"].ToString()
|
|
, drBackOrder1["ORD_COMP_DIV"].ToString()
|
|
, drBackOrder1["ORD_PIC_NO"].ToString()
|
|
, drBackOrder1["CANCEL_DIV"].ToString()
|
|
, drBackOrder1["CANCEL_DATE"].ToString()
|
|
, drBackOrder1["FILLER1"].ToString()
|
|
, drBackOrder1["FILLER2"].ToString()
|
|
, drBackOrder1["FILLER3"].ToString()
|
|
, drBackOrder1["FILLER4"].ToString()
|
|
, drBackOrder1["FILLER5"].ToString()
|
|
, drBackOrder1["UPD_DT"].ToString()
|
|
, drBackOrder1["REG_DT"].ToString()
|
|
, drBackOrder1["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrder1["NOTAX_DIV"].ToString() // Add, 2017.02.08
|
|
, drBackOrder1["TRAIN_MODE_YN"].ToString() // Add, 2017.02.08
|
|
, drBackOrder1["DC_TYPE"].ToString() // Add, 2017.02.30
|
|
, drBackOrder1["ORG_QTY"].ToString() // Add, 2017.02.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
#endregion
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region 오른쪽 그리드 주문메시지 이동
|
|
|
|
#region INSERT INTO POSMST..MST_KTCH_ORD_MSG
|
|
sInsFmt = " INSERT INTO POSMST..MST_KTCH_ORD_MSG ( "
|
|
+ " ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD "
|
|
+ ", ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD "
|
|
+ ", ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO "
|
|
+ ", ORG_BILLDT, ORG_BILL_NO, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2 "
|
|
//+ ", FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT "
|
|
+ ", FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, SUB_STOR_CD " // Mod, 2017.02.08
|
|
+ ", TRAIN_MODE_YN " // Add, 2017.03.02, 연습모드
|
|
+ ", KTCH_MSG " // Add, 2017.03.21
|
|
+ ", ORG_QTY " // Add, 2017.03.31
|
|
+ ", ORD_POS_NO " // Add, 2017.04.10
|
|
+ ", ORD_PIC_NM \n" // Add, 2017.04.26, 주문담당자
|
|
+ ", KDS_SEND_YN \n" // Add, 2017.04.26, KDS 전송구분
|
|
+ ") VALUES ( "
|
|
+ " '{0}' "
|
|
+ ", '{1}' "
|
|
+ ", '{2}' "
|
|
+ ", {3} "
|
|
+ ", '{4}' "
|
|
+ ", '{5}' "
|
|
+ ", '{6}' "
|
|
+ ", '{7}' "
|
|
+ ", '{8}' "
|
|
+ ", '{9}' "
|
|
+ ", '{10}' "
|
|
+ ", '{11}' "
|
|
+ ", '{12}' "
|
|
+ ",N'{13}' "
|
|
+ ", {14} "
|
|
+ ", '{15}' "
|
|
+ ", '{16}' "
|
|
+ ", '{17}' "
|
|
+ ", '{18}' "
|
|
+ ", '{19}' "
|
|
+ ",N'{20}' "
|
|
+ ",N'{21}' "
|
|
+ ",N'{22}' "
|
|
+ ", '{23}' "
|
|
+ ", '{24}' "
|
|
+ ", '{25}' "
|
|
+ ", '{26}' "
|
|
+ ", '{27}' "
|
|
+ ", '{28}' "
|
|
+ ", '{29}' "
|
|
+ ", '{30}' "
|
|
+ ", '{31}' "
|
|
+ ", '{32}' "
|
|
+ ", '{33}' "
|
|
+ ", '{34}' "
|
|
+ ", '{35}' "
|
|
+ ", '{36}' "
|
|
+ ", '{37}' " // Add, 2017.02.08
|
|
+ ", '{38}' " // Add, 2017.03.02, 연습모드
|
|
+ ",N'{39}' " // Add, 2017.03.21
|
|
+ ", {40} " // Add, 2017.03.31
|
|
+ ", '{41}' " // Add, 2017.04.10
|
|
+ ",N'{42}' " // Add, 2017.04.26, 주문담당자
|
|
+ ", '{43}' " // Add, 2017.04.26, KDS 전송구분
|
|
+ " ) ";
|
|
#endregion
|
|
|
|
if (s2ndFloorCd == sKeys[1] && s2ndTableNo == sKeys[2])
|
|
{
|
|
#region >> 이동되지 않은 상품
|
|
|
|
var drBackOrdMsg2 = dtBackUpOrdMsg2.Rows[int.Parse(sKeys[3]) - 1];
|
|
|
|
sQuery = string.Format(sInsFmt
|
|
, drBackOrdMsg2["ORD_DIV"].ToString()
|
|
, s2ndFloorCd
|
|
, s2ndTableNo
|
|
, (iSeq + 1).ToString()
|
|
, drBackOrdMsg2["CMP_CD"].ToString()
|
|
, drBackOrdMsg2["BRAND_CD"].ToString()
|
|
, drBackOrdMsg2["STOR_CD"].ToString()
|
|
, drBackOrdMsg2["POS_NO"].ToString()
|
|
, drBackOrdMsg2["TRADE_NO"].ToString()
|
|
, drBackOrdMsg2["SALE_DT"].ToString()
|
|
, drBackOrdMsg2["POS_TYPE"].ToString()
|
|
, drBackOrdMsg2["ITEM_CD"].ToString()
|
|
, drBackOrdMsg2["ITEM_DIV"].ToString()
|
|
, drBackOrdMsg2["SHTCUT_ITEMNM"].ToString()
|
|
, saleQty //, drBackOrdMsg2["SALE_QTY"].ToString()
|
|
, drBackOrdMsg2["PACK_DIV"].ToString()
|
|
, drBackOrdMsg2["SET_MENU_CD"].ToString()
|
|
, drBackOrdMsg2["ORD_TIME"].ToString()
|
|
, drBackOrdMsg2["CANCEL_DIV"].ToString()
|
|
, drBackOrdMsg2["SUB_MEMO_DIV"].ToString()
|
|
, ConvertDBStr(drBackOrdMsg2["MSG1"].ToString())
|
|
, ConvertDBStr(drBackOrdMsg2["MSG2"].ToString())
|
|
, ConvertDBStr(drBackOrdMsg2["MSG3"].ToString())
|
|
, drBackOrdMsg2["MSG_REG_TIME"].ToString()
|
|
, drBackOrdMsg2["ORG_BILL_POSNO"].ToString()
|
|
, drBackOrdMsg2["ORG_BILLDT"].ToString()
|
|
, drBackOrdMsg2["ORG_BILL_NO"].ToString()
|
|
, drBackOrdMsg2["SEND_YN"].ToString()
|
|
, drBackOrdMsg2["SEND_CONFIRM_DIV"].ToString()
|
|
, drBackOrdMsg2["RESEND_YN"].ToString()
|
|
, drBackOrdMsg2["FILLER1"].ToString()
|
|
, drBackOrdMsg2["FILLER2"].ToString()
|
|
, drBackOrdMsg2["FILLER3"].ToString()
|
|
, drBackOrdMsg2["FILLER4"].ToString()
|
|
, drBackOrdMsg2["FILLER5"].ToString()
|
|
, drBackOrdMsg2["UPD_DT"].ToString()
|
|
, drBackOrdMsg2["REG_DT"].ToString()
|
|
, drBackOrdMsg2["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrdMsg2["TRAIN_MODE_YN"].ToString() // Add, 2017.02.08
|
|
, ConvertDBStr(drBackOrdMsg2["KTCH_MSG"].ToString()) // Add, 2017.03.21
|
|
, drBackOrdMsg2["ORG_QTY"].ToString() // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
, ConvertDBStr(drBackOrdMsg2["ORD_PIC_NM"].ToString()) // Add, 2017.04.26, 주문담당자
|
|
, drBackOrdMsg2["KDS_SEND_YN"].ToString() // Add, 2017.04.26, KDS 전송구분
|
|
|
|
);
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
#region >> 이동된 상품
|
|
|
|
var drBackOrdMsg1 = dtBackUpOrdMsg1.Rows[int.Parse(sKeys[3]) - 1];
|
|
|
|
sQuery = string.Format(sInsFmt
|
|
, drBackOrdMsg1["ORD_DIV"].ToString()
|
|
, s2ndFloorCd
|
|
, s2ndTableNo
|
|
, (iSeq + 1).ToString()
|
|
, drBackOrdMsg1["CMP_CD"].ToString()
|
|
, drBackOrdMsg1["BRAND_CD"].ToString()
|
|
, drBackOrdMsg1["STOR_CD"].ToString()
|
|
, drBackOrdMsg1["POS_NO"].ToString()
|
|
, drBackOrdMsg1["TRADE_NO"].ToString()
|
|
, drBackOrdMsg1["SALE_DT"].ToString()
|
|
, drBackOrdMsg1["POS_TYPE"].ToString()
|
|
, drBackOrdMsg1["ITEM_CD"].ToString()
|
|
, drBackOrdMsg1["ITEM_DIV"].ToString()
|
|
, drBackOrdMsg1["SHTCUT_ITEMNM"].ToString()
|
|
, saleQty //, drBackOrdMsg1["SALE_QTY"].ToString()
|
|
, drBackOrdMsg1["PACK_DIV"].ToString()
|
|
, drBackOrdMsg1["SET_MENU_CD"].ToString()
|
|
, drBackOrdMsg1["ORD_TIME"].ToString()
|
|
, drBackOrdMsg1["CANCEL_DIV"].ToString()
|
|
, drBackOrdMsg1["SUB_MEMO_DIV"].ToString()
|
|
, ConvertDBStr(drBackOrdMsg1["MSG1"].ToString())
|
|
, ConvertDBStr(drBackOrdMsg1["MSG2"].ToString())
|
|
, ConvertDBStr(drBackOrdMsg1["MSG3"].ToString())
|
|
, drBackOrdMsg1["MSG_REG_TIME"].ToString()
|
|
, drBackOrdMsg1["ORG_BILL_POSNO"].ToString()
|
|
, drBackOrdMsg1["ORG_BILLDT"].ToString()
|
|
, drBackOrdMsg1["ORG_BILL_NO"].ToString()
|
|
, drBackOrdMsg1["SEND_YN"].ToString()
|
|
, drBackOrdMsg1["SEND_CONFIRM_DIV"].ToString()
|
|
, drBackOrdMsg1["RESEND_YN"].ToString()
|
|
, drBackOrdMsg1["FILLER1"].ToString()
|
|
, drBackOrdMsg1["FILLER2"].ToString()
|
|
, drBackOrdMsg1["FILLER3"].ToString()
|
|
, drBackOrdMsg1["FILLER4"].ToString()
|
|
, drBackOrdMsg1["FILLER5"].ToString()
|
|
, drBackOrdMsg1["UPD_DT"].ToString()
|
|
, drBackOrdMsg1["REG_DT"].ToString()
|
|
, drBackOrdMsg1["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrdMsg1["TRAIN_MODE_YN"].ToString() // Add, 2017.03.02, 연습모드
|
|
, ConvertDBStr(drBackOrdMsg1["KTCH_MSG"].ToString()) // Add, 2017.03.21
|
|
, drBackOrdMsg1["ORG_QTY"].ToString() // Add, 2017.03.31
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
, ConvertDBStr(drBackOrdMsg1["ORD_PIC_NM"].ToString()) // Add, 2017.04.26, 주문담당자
|
|
, drBackOrdMsg1["KDS_SEND_YN"].ToString() // Add, 2017.04.26, KDS 전송구분
|
|
);
|
|
#endregion
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region 오른쪽그리드 이동상품 주방부가메시지 추가 (MST_KTCH_ORD_MSG_ADD)
|
|
|
|
var isAddmsg = true;
|
|
if (s2ndFloorCd == sKeys[1] && s2ndTableNo == sKeys[2]) isAddmsg = false;
|
|
if (CmUtil.GetDataRowStr(dr, "CANCEL_DIV") == PosConst.CANCEL_DIV.CANCEL) isAddmsg = false;
|
|
if (isAddmsg)
|
|
{
|
|
var drBackOrder1 = dtBackUpOrd1.Rows[int.Parse(sKeys[3]) - 1];
|
|
|
|
sInsFmt = " INSERT INTO POSMST..MST_KTCH_ORD_MSG_ADD ( \n"
|
|
+ " ORD_DIV, FLOOR_CD, TBL_NO, SEQ, KTCH_SYS_CD, ITEM_CD, SHTCUT_ITEMNM, MSG_DIV \n"
|
|
+ ", MSG1, MSG2, MSG3, MSG_REG_TIME, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN \n"
|
|
+ ", FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT \n"
|
|
+ ", SUB_STOR_CD \n" // Add, 2017.02.08
|
|
+ ", TRAIN_MODE_YN \n" // Add, 2017.03.02, 연습모드
|
|
+ ", ORD_POS_NO \n" // Add, 2017.04.10
|
|
+ ") \n"
|
|
+ " SELECT '{0}', '{1}', '{2}' \n"
|
|
+ " , (SELECT ISNULL(MAX(SEQ), 0) + 1 FROM POSMST..MST_KTCH_ORD_MSG_ADD WHERE ORD_DIV = '{0}' AND FLOOR_CD = '{1}' AND TBL_NO = '{2}') \n"
|
|
+ " , '{3}', '{4}', N'{5}', '{6}', N'{7}', N'{8}', N'{9}', '{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}' \n"
|
|
+ " , '{21}' \n"
|
|
+ " , '{22}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " , '{23}' \n" // Add, 2017.04.10
|
|
;
|
|
var itemKey = drBackOrder1["SUB_STOR_CD"].ToString().Trim()
|
|
+ (drBackOrder1["SUB_MEMO_DIV"].ToString().Trim() == "1"
|
|
? drBackOrder1["FILLER1"].ToString().Trim() : drBackOrder1["ITEM_CD"].ToString().Trim());
|
|
|
|
foreach (var tmpKps in from x in lstKps
|
|
where x.Key.StartsWith(itemKey)
|
|
select x)
|
|
{
|
|
sQuery = string.Format(sInsFmt
|
|
, drBackOrder1["ORD_DIV"].ToString()
|
|
, s1stFloorCd // From Floor
|
|
, s1stTableNo // From Table
|
|
, tmpKps.Value
|
|
, drBackOrder1["ITEM_CD"].ToString()
|
|
, drBackOrder1["SHTCUT_ITEMNM"].ToString()
|
|
, PosConst.KPS_ORD_MSG_ID.MENU_MOVE
|
|
, s2ndFloorCd // MSG1 To Floor
|
|
, s2ndTableNo // MSG2 To Table
|
|
, saleQty // MSG3 , drBackOrder1["SALE_QTY"].ToString()
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, "0"
|
|
, "0"
|
|
, "0"
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, drBackOrder1["SUB_STOR_CD"].ToString() // Add, 2017.02.08
|
|
, drBackOrder1["TRAIN_MODE_YN"].ToString() // Add, 2017.03.02, 연습모드
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
// 주방출력삭제(2017.05.24)
|
|
//if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
//{
|
|
// m_cSqlDbService.Rollback();
|
|
|
|
// 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 + "()",
|
|
// sQuery + "[ERROR]");
|
|
|
|
// return UserCom.RST_ERR;
|
|
//}
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
iSeq++;
|
|
}
|
|
|
|
#region 테이블 마스터 업데이트 (UPDATE POSMST..MST_TBL)
|
|
//if (bIsFirstOrder == true && dtRightGrid.Rows.Count > 0)
|
|
if (bIsFirstOrder == true && rightItemCnt > 0)
|
|
{
|
|
sQuery = " UPDATE POSMST..MST_TBL "
|
|
+ " SET CUST_CNT = 1 "
|
|
+ " , FIRST_ORD_HOUR = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "
|
|
+ " , ORD_AMT = " + dTableOrderAmt.ToString() + " "
|
|
+ " , FILLER1 = '' "
|
|
+ " , FILLER2 = '' "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.02, 연습모드
|
|
+ " AND FLOOR_CD = '" + s2ndFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s2ndTableNo + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
}
|
|
else
|
|
{
|
|
// 테이블마스터 주문금액 수정
|
|
sQuery = " UPDATE POSMST..MST_TBL "
|
|
+ " SET ORD_AMT = " + dTableOrderAmt.ToString() + " "
|
|
+ " , FIRST_ORD_HOUR = " + (rightItemCnt == 0 ? "''" : "FIRST_ORD_HOUR")
|
|
+ " , CUST_CNT = " + (rightItemCnt == 0 ? "0" : "CUST_CNT")
|
|
+ " , FILLER1 = " + (rightItemCnt == 0 ? "0" : "FILLER1")
|
|
+ " , FILLER2 = " + (rightItemCnt == 0 ? "0" : "FILLER2")
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.02, 연습모드
|
|
+ " AND FLOOR_CD = '" + s2ndFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s2ndTableNo + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
}
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region ### 좌석메모
|
|
|
|
// 주방출력 상품에 따라 이동 해야 하지만, 어떤 상품에 등록된 좌석메모 인지 알수가 없기 때문에 모른척 한다.
|
|
//if (dtLeftGrid.Rows.Count == 0 || dtRightGrid.Rows.Count == 0)
|
|
if (leftItemCnt == 0 || rightItemCnt == 0)
|
|
{
|
|
string fmt = "UPDATE POSMST..MST_SEAT_MEMO \n"
|
|
+ " SET FLOOR_CD = '{6}' \n"
|
|
+ " , TBL_NO = '{7}' \n"
|
|
+ " , SEQ = SEQ + (SELECT ISNULL(MAX(SEQ), 0) FROM MST_SEAT_MEMO \n"
|
|
+ " WHERE CMP_CD = '{0}' \n"
|
|
+ " AND STOR_CD = '{1}' \n"
|
|
+ " AND TRAIN_MODE_YN = '{2}' \n"
|
|
+ " AND ORD_DIV = '{3}' \n"
|
|
+ " AND FLOOR_CD = '{6}' \n"
|
|
+ " AND TBL_NO = '{7}')\n"
|
|
+ " WHERE CMP_CD = '{0}' \n "
|
|
+ " AND STOR_CD = '{1}' \n"
|
|
+ " AND TRAIN_MODE_YN = '{2}' \n "
|
|
+ " AND ORD_DIV = '{3}' \n"
|
|
+ " AND FLOOR_CD = '{4}' \n"
|
|
+ " AND TBL_NO = '{5}' "
|
|
;
|
|
if (dtLeftGrid.Rows.Count == 0)
|
|
{
|
|
sQuery = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL
|
|
, s1stFloorCd, s1stTableNo, s2ndFloorCd, s2ndTableNo);
|
|
}
|
|
else
|
|
{
|
|
sQuery = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, PosConst.ORDER_TYPE.NORMAL
|
|
, s2ndFloorCd, s2ndTableNo, s1stFloorCd, s1stTableNo);
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ### 유효하지 않는 테이블 주문 초기화
|
|
// 이건 아닌거 같은데 ..
|
|
var isClear = new bool[] { true, true };
|
|
var lstQuery = new List<string>();
|
|
foreach (DataRow dr in dtLeftGrid.Rows)
|
|
{
|
|
if (CmUtil.GetDataRowStr(dr, "CANCEL_DIV") != PosConst.CANCEL_DIV.CANCEL)
|
|
{
|
|
isClear[0] = false;
|
|
break;
|
|
}
|
|
}
|
|
foreach (DataRow dr in dtRightGrid.Rows)
|
|
{
|
|
if (CmUtil.GetDataRowStr(dr, "CANCEL_DIV") != PosConst.CANCEL_DIV.CANCEL)
|
|
{
|
|
isClear[1] = false;
|
|
break;
|
|
}
|
|
}
|
|
if (isClear[0] || isClear[1])
|
|
{
|
|
if (isClear[0])
|
|
{
|
|
sQuery = "UPDATE POSMST..MST_TBL "
|
|
+ " SET TBL_USE_DIV = '" + PosConst.TABLE_USE_FLAG.NO_USE + "' "
|
|
+ " , CUST_CNT = 0 "
|
|
+ " , FIRST_ORD_HOUR = '' "
|
|
+ " , ORD_AMT = 0 "
|
|
+ " , FILLER1 = '' "
|
|
+ " , FILLER2 = '' "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND FLOOR_CD = '" + s1stFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s1stTableNo + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
lstQuery.Add(sQuery);
|
|
|
|
sQuery = "DELETE FROM POSMST..MST_ORD "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + s1stFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s1stTableNo + "' "
|
|
;
|
|
lstQuery.Add(sQuery);
|
|
|
|
sQuery = "DELETE FROM POSMST..MST_KTCH_ORD_MSG "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + s1stFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s1stTableNo + "' "
|
|
;
|
|
lstQuery.Add(sQuery);
|
|
|
|
sQuery = "DELETE FROM POSMST..MST_KPS_ORD_MSG "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + s1stFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s1stTableNo + "' "
|
|
;
|
|
lstQuery.Add(sQuery);
|
|
}
|
|
if (isClear[1])
|
|
{
|
|
sQuery = "UPDATE POSMST..MST_TBL "
|
|
+ " SET TBL_USE_DIV = '" + PosConst.TABLE_USE_FLAG.NO_USE + "' "
|
|
+ " , CUST_CNT = 0 "
|
|
+ " , FIRST_ORD_HOUR = '' "
|
|
+ " , ORD_AMT = 0 "
|
|
+ " , FILLER1 = '' "
|
|
+ " , FILLER2 = '' "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND FLOOR_CD = '" + s2ndFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s2ndTableNo + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
lstQuery.Add(sQuery);
|
|
|
|
sQuery = "DELETE FROM POSMST..MST_ORD "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + s2ndFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s2ndTableNo + "' "
|
|
;
|
|
lstQuery.Add(sQuery);
|
|
|
|
sQuery = "DELETE FROM POSMST..MST_KTCH_ORD_MSG "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + s2ndFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s2ndTableNo + "' "
|
|
;
|
|
lstQuery.Add(sQuery);
|
|
|
|
sQuery = "DELETE FROM POSMST..MST_KPS_ORD_MSG "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + s2ndFloorCd + "' "
|
|
+ " AND TBL_NO = '" + s2ndTableNo + "' "
|
|
;
|
|
lstQuery.Add(sQuery);
|
|
}
|
|
}
|
|
if (lstQuery.Count > 0)
|
|
{
|
|
if (m_cSqlDbService.DBExecuteNonQuery(lstQuery.ToArray()) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
|
|
// 메뉴이동테이블 주문내역서 출력
|
|
this.ExecuteOrderBillReceipt(s1stFloorCd, s1stTableNo);
|
|
this.ExecuteOrderBillReceipt(s2ndFloorCd, s2ndTableNo);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 좌석메모/상품메모 관련 임시 메모 클래스 Update
|
|
/// </summary>
|
|
/// <param name="sMsgId"></param>
|
|
/// <param name="iItemRow"></param>
|
|
/// <param name="sMsg1"></param>
|
|
/// <param name="sMsg2"></param>
|
|
/// <param name="sMsg3"></param>
|
|
/// <returns></returns>
|
|
public string UpdateKtchOrderMessage(string sMsgId, int iItemRow, string sMsg1, string sMsg2, string sMsg3)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
|
|
try
|
|
{
|
|
KTCH_MSG_ADD cKtchMsg = new KTCH_MSG_ADD();
|
|
switch (sMsgId)
|
|
{
|
|
case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO:
|
|
case PosConst.KPS_ORD_MSG_ID.FIRE_KEY :
|
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|
Column.TR_PLU.DATA cSaleItem = (Column.TR_PLU.DATA)aSaleItem[iItemRow];
|
|
|
|
// Add, 2017.03.21
|
|
if (sMsgId == PosConst.KPS_ORD_MSG_ID.ITEM_MEMO)
|
|
{
|
|
cSaleItem.ITEM_MEMO_1 = sMsg1;
|
|
cSaleItem.ITEM_MEMO_2 = sMsg2;
|
|
cSaleItem.ITEM_MEMO_3 = sMsg3;
|
|
|
|
// 신규,수정 상품의 메모는 주문서에서 출력한다.
|
|
if (cSaleItem.ORDER_OK_FLAG != PosConst.PLU_ORDER_OK_FLAG.ORDER_OK)
|
|
{
|
|
sReturn = UserCom.RST_OK;
|
|
break;
|
|
}
|
|
}
|
|
|
|
cKtchMsg.sMsgID = sMsgId;
|
|
cKtchMsg.sMsg1 = sMsg1;
|
|
cKtchMsg.sMsg2 = sMsg2;
|
|
cKtchMsg.sMsg3 = sMsg3;
|
|
cKtchMsg.sSubShopCd = cSaleItem.SUB_SHOP_CD;
|
|
cKtchMsg.sItemCode = cSaleItem.ITEM_PLU_CD;
|
|
cKtchMsg.sItemName = cSaleItem.ITEM_NAME;
|
|
cKtchMsg.sItemSeqNo = (iItemRow + 1).ToString();
|
|
|
|
for(int i = 0;i < m_aKtchMsgAdd.Count;i++)
|
|
{
|
|
KTCH_MSG_ADD cKtchMsg2 = (KTCH_MSG_ADD)m_aKtchMsgAdd[i];
|
|
if(cKtchMsg.sMsgID == cKtchMsg2.sMsgID && cKtchMsg.sItemCode == cKtchMsg2.sItemCode &&
|
|
cKtchMsg.sMsg1 == cKtchMsg2.sMsg1 &&
|
|
cKtchMsg.sMsg2 == cKtchMsg2.sMsg2 &&
|
|
cKtchMsg.sMsg3 == cKtchMsg2.sMsg3)
|
|
{
|
|
return UserCom.RST_OK;
|
|
}
|
|
}
|
|
|
|
m_aKtchMsgAdd.Add(cKtchMsg);
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
break;
|
|
default:
|
|
cKtchMsg.sMsgID = sMsgId;
|
|
cKtchMsg.sMsg1 = sMsg1;
|
|
cKtchMsg.sMsg2 = sMsg2;
|
|
cKtchMsg.sMsg3 = sMsg3;
|
|
|
|
m_aKtchMsgAdd.Add(cKtchMsg);
|
|
|
|
sReturn = this.UpdateKtchOrderMsgExecute();
|
|
break;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 추가 주방메시지 테이블 저장 처리
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private string UpdateKtchOrderMsgExecute(bool isTransction = false)
|
|
{
|
|
string sInsQuery = string.Empty;
|
|
string sUpdQuery = string.Empty;
|
|
string sUpdQuery2 = string.Empty;
|
|
string sQuery = string.Empty;
|
|
string sReturn = UserCom.RST_ERR;
|
|
|
|
int nSeqNo = 0;
|
|
|
|
try
|
|
{
|
|
if (m_aKtchMsgAdd.Count <= 0) return UserCom.RST_OK;
|
|
|
|
DataTable dtReturn = null;
|
|
|
|
// 주방장치조회
|
|
dtReturn = null;
|
|
Dictionary<string, string> lstKps = new Dictionary<string, string>();
|
|
if (GetKtchDiveceItem(m_cTrnStatus.Head.FloorCd, m_cTrnStatus.Head.TableNo, out dtReturn) > 0)
|
|
{
|
|
foreach (DataRow dr in dtReturn.Rows)
|
|
{
|
|
var key = CmUtil.GetDataRowStr(dr, "SUB_STOR_CD").Trim() + "|" + CmUtil.GetDataRowStr(dr, "ITEM_CD").Trim() + "|" + CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD").Trim();
|
|
var dev = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD").Trim();
|
|
if (lstKps.ContainsKey(key) == false) lstKps.Add(key, dev);
|
|
}
|
|
}
|
|
|
|
// MST_KTCH_ORD_MSG_ADD 일련번호
|
|
sQuery = " SELECT ISNULL(MAX(SEQ),0) SEQ FROM POSMST..MST_KTCH_ORD_MSG_ADD ";
|
|
sQuery += " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "; // Add, 2017.03.02, 연습모드
|
|
sQuery += " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' ";
|
|
sQuery += " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' ";
|
|
sQuery += " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
dtReturn = null;
|
|
m_cSqlDbService.DBSelect(sQuery, out dtReturn);
|
|
if (dtReturn != null && dtReturn.Rows.Count > 0)
|
|
{
|
|
nSeqNo = int.Parse(dtReturn.Rows[0]["SEQ"].ToString());
|
|
}
|
|
nSeqNo++;
|
|
|
|
//sInsQuery = " INSERT INTO POSMST..MST_KTCH_ORD_MSG_ADD ";
|
|
//sInsQuery += " ( ORD_DIV, FLOOR_CD, TBL_NO, SEQ, KTCH_SYS_CD, ITEM_CD, SHTCUT_ITEMNM, MSG_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT ) ";
|
|
//sInsQuery += " VALUES ";
|
|
//sInsQuery += " ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', N'{6}', '{7}', N'{8}', N'{9}', N'{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}' ) ";
|
|
|
|
sInsQuery = " INSERT INTO POSMST..MST_KTCH_ORD_MSG_ADD ";
|
|
sInsQuery += " ( ORD_DIV, FLOOR_CD, TBL_NO, SEQ, KTCH_SYS_CD, ITEM_CD, SHTCUT_ITEMNM, MSG_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, SUB_STOR_CD ";
|
|
sInsQuery += " , TRAIN_MODE_YN "; // Add, 2017.03.02, 연습모드
|
|
sInsQuery += " , ORD_POS_NO "; // Add, 2017.04.10
|
|
sInsQuery += " ) ";
|
|
sInsQuery += " VALUES ";
|
|
sInsQuery += " ( '{0}', '{1}', '{2}', '{3}', '{4}', '{5}', N'{6}', '{7}', N'{8}', N'{9}', N'{10}', '{11}', '{12}', '{13}', '{14}', '{15}', '{16}', '{17}', '{18}', '{19}', '{20}', '{21}', '{22}'";
|
|
sInsQuery += " , '{23}' "; // Add, 2017.03.02, 연습모드
|
|
sInsQuery += " , '{24}' "; // Add, 2017.04.10
|
|
sInsQuery += " ) ";
|
|
|
|
sUpdQuery = " UPDATE POSMST..MST_ORD \n";
|
|
sUpdQuery += " SET MSG1 =N'{0}' \n";
|
|
sUpdQuery += " , MSG2 =N'{1}' \n";
|
|
sUpdQuery += " , MSG3 =N'{2}' \n";
|
|
sUpdQuery += " , MSG_REG_TIME = '{3}' \n";
|
|
sUpdQuery += " , ORD_POS_NO = '{11}'\n"; // Add, 2017.04.10
|
|
sUpdQuery += " WHERE CMP_CD = '{4}' \n";
|
|
sUpdQuery += " AND STOR_CD = '{5}' \n";
|
|
sUpdQuery += " AND TRAIN_MODE_YN = '{6}' \n"; // Add, 2017.03.02, 연습모드
|
|
sUpdQuery += " AND ORD_DIV = '{7}' \n";
|
|
sUpdQuery += " AND FLOOR_CD = '{8}' \n";
|
|
sUpdQuery += " AND TBL_NO = '{9}' \n";
|
|
sUpdQuery += " AND SEQ = {10} \n";
|
|
|
|
sUpdQuery2 = " UPDATE POSMST..MST_KTCH_ORD_MSG \n";
|
|
sUpdQuery2 += " SET MSG1 =N'{0}' \n";
|
|
sUpdQuery2 += " , MSG2 =N'{1}' \n";
|
|
sUpdQuery2 += " , MSG3 =N'{2}' \n";
|
|
sUpdQuery2 += " , ORD_POS_NO = '{9}' \n"; // Add, 2017.04.10
|
|
sUpdQuery2 += " , MSG_REG_TIME = '{3}' \n";
|
|
sUpdQuery2 += " WHERE TRAIN_MODE_YN = '{4}' \n"; // Add, 2017.03.02, 연습모드
|
|
sUpdQuery2 += " AND ORD_DIV = '{5}' \n";
|
|
sUpdQuery2 += " AND FLOOR_CD = '{6}' \n";
|
|
sUpdQuery2 += " AND TBL_NO = '{7}' \n";
|
|
sUpdQuery2 += " AND SEQ = {8} \n";
|
|
|
|
// Transaction Begin
|
|
m_cSqlDbService.Begin();
|
|
|
|
for (int i = 0; i < m_aKtchMsgAdd.Count; i++)
|
|
{
|
|
KTCH_MSG_ADD cKtchMsg = (KTCH_MSG_ADD)m_aKtchMsgAdd[i];
|
|
|
|
var itemKey = cKtchMsg.sSubShopCd + "|" + cKtchMsg.sItemCode;
|
|
if (string.IsNullOrWhiteSpace(cKtchMsg.sSubShopCd + cKtchMsg.sItemCode)) itemKey = string.Empty;
|
|
|
|
foreach(var tmpKps in from x in lstKps
|
|
where x.Key.StartsWith(itemKey)
|
|
select x)
|
|
{
|
|
string[] kpsInfo = tmpKps.Key.Split('|');
|
|
|
|
if (cKtchMsg.sMsgID == PosConst.KPS_ORD_MSG_ID.ITEM_MEMO)
|
|
{
|
|
#region ### 상품메모
|
|
|
|
#region >> INSERT INTO POSMST..MST_KTCH_ORD_MSG_ADD
|
|
sQuery = string.Format(sInsQuery
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, nSeqNo.ToString()
|
|
, tmpKps.Value
|
|
, cKtchMsg.sItemCode
|
|
, cKtchMsg.sItemName
|
|
, cKtchMsg.sMsgID
|
|
, ConvertDBStr(cKtchMsg.sMsg1)
|
|
, ConvertDBStr(cKtchMsg.sMsg2)
|
|
, ConvertDBStr(cKtchMsg.sMsg3)
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, "0"
|
|
, "0"
|
|
, "0"
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
//, cKtchMsg.sSubShopCd // Add, 2017.02.07, 서브매장코드
|
|
, kpsInfo[0] // Add, 2017.02.07, 서브매장코드
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region >> UPDATE POSMST..MST_ORD
|
|
sQuery = string.Format(sUpdQuery
|
|
, ConvertDBStr(cKtchMsg.sMsg1)
|
|
, ConvertDBStr(cKtchMsg.sMsg2)
|
|
, ConvertDBStr(cKtchMsg.sMsg3)
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, cKtchMsg.sItemSeqNo
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region >> UPDATE POSMST..MST_KTCH_ORD_MSG
|
|
|
|
// 주방프린터 수동출력(상품선택) 옵션 시 주방메모와 충돌
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT425) != "2")
|
|
{
|
|
sQuery = string.Format(sUpdQuery2
|
|
, ConvertDBStr(cKtchMsg.sMsg1)
|
|
, ConvertDBStr(cKtchMsg.sMsg2)
|
|
, ConvertDBStr(cKtchMsg.sMsg3)
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, cKtchMsg.sItemSeqNo
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
// 상품메모 업데이트
|
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|
Column.TR_PLU.DATA cPluItem = (Column.TR_PLU.DATA)alPluItem[CmUtil.IntParse(cKtchMsg.sItemSeqNo) - 1];
|
|
cPluItem.ITEM_MEMO_1 = cKtchMsg.sMsg1;
|
|
cPluItem.ITEM_MEMO_2 = cKtchMsg.sMsg2;
|
|
cPluItem.ITEM_MEMO_3 = cKtchMsg.sMsg3;
|
|
|
|
#endregion
|
|
}
|
|
else if (cKtchMsg.sMsgID == PosConst.KPS_ORD_MSG_ID.FIRE_KEY)
|
|
{
|
|
#region ### FireKey
|
|
sQuery = string.Format(sInsQuery
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, nSeqNo.ToString()
|
|
, tmpKps.Value // CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD")
|
|
, cKtchMsg.sItemCode
|
|
, cKtchMsg.sItemName
|
|
, cKtchMsg.sMsgID
|
|
, ConvertDBStr(cKtchMsg.sMsg1)
|
|
, ConvertDBStr(cKtchMsg.sMsg2)
|
|
, ConvertDBStr(cKtchMsg.sMsg3)
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, "0"
|
|
, "0"
|
|
, "0"
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
//, cKtchMsg.sSubShopCd // Add, 2017.02.07, 서브매장코드
|
|
, kpsInfo[0] // Add, 2017.02.07, 서브매장코드
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
}
|
|
else
|
|
{
|
|
#region ### 0:거래중지, 2:좌석메모
|
|
sQuery = string.Format(sInsQuery
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, nSeqNo.ToString()
|
|
, tmpKps.Value // CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD")
|
|
, string.Empty
|
|
, string.Empty
|
|
, cKtchMsg.sMsgID
|
|
, ConvertDBStr(cKtchMsg.sMsg1)
|
|
, ConvertDBStr(cKtchMsg.sMsg2)
|
|
, ConvertDBStr(cKtchMsg.sMsg3)
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, "0"
|
|
, "0"
|
|
, "0"
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, string.Empty
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
//, cKtchMsg.sSubShopCd // Add, 2017.02.07, 서브매장코드
|
|
, kpsInfo[0] // Add, 2017.02.07, 서브매장코드
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, m_cPosStatus.Base.PosNo // Add, 2017.04.10
|
|
);
|
|
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
}
|
|
nSeqNo++;
|
|
}
|
|
|
|
#region ### 좌석메모이력 (MST_SEAT_MEMO)
|
|
// (PosConst.KPS_ORD_MSG_ID, 0:거래중지, 1:상품메모, 2:좌석메모, 3:테이블합석, 4:테이블이동, 5:상품이동, 9:FierKey)
|
|
if (cKtchMsg.sMsgID == PosConst.KPS_ORD_MSG_ID.SEAT_MEMO)
|
|
{
|
|
string fmt = "INSERT INTO POSMST..MST_SEAT_MEMO (CMP_CD, STOR_CD, TRAIN_MODE_YN, ORD_DIV, FLOOR_CD, TBL_NO, SEQ, MSG1, MSG2, MSG3, CASHIER_ID, REG_TIME, REG_DT) \n"
|
|
+ "SELECT '{0}', '{1}', '{2}', '{3}', '{4}', '{5}' \n"
|
|
+ " , (SELECT ISNULL(MAX(SEQ) + 1, 1) FROM POSMST..MST_SEAT_MEMO A \n"
|
|
+ " WHERE A.CMP_CD = '{0}' AND A.STOR_CD = '{1}' AND A.TRAIN_MODE_YN = '{2}' AND A.ORD_DIV = '{3}' AND A.FLOOR_CD = '{4}' AND A.TBL_NO = '{5}') \n"
|
|
+ " , N'{6}', N'{7}', N'{8}', '{9}', '{10}', '{11}' "
|
|
;
|
|
sQuery = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, m_cPosStatus.Base.TrainingFlag // Add, 2017.03.02, 연습모드
|
|
, PosConst.ORDER_TYPE.NORMAL
|
|
, m_cTrnStatus.Head.FloorCd
|
|
, m_cTrnStatus.Head.TableNo
|
|
, ConvertDBStr(cKtchMsg.sMsg1)
|
|
, ConvertDBStr(cKtchMsg.sMsg2)
|
|
, ConvertDBStr(cKtchMsg.sMsg3)
|
|
, m_cTrnStatus.Head.CashierId
|
|
, DateTime.Now.ToString("HHmmss")
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss")
|
|
);
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.WARNING_LEVEL,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명)
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명)
|
|
"Query=" + sQuery);
|
|
return UserCom.RST_ERR;
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
m_aKtchMsgAdd.Clear();
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블 주문상품의 주방장치코드 갯수 가져오기
|
|
/// </summary>
|
|
/// <param name="orderFlag">주문상태 (0:주문중, 1:주문완료, 2:주문수정)</param>
|
|
/// <param name="floorCd"></param>
|
|
/// <param name="tableNo"></param>
|
|
/// <param name="itemCode">서브매장코드 + 상품코드</param>
|
|
/// <returns></returns>
|
|
public int GetKtchDiveceCount(string orderFlag, string floorCd, string tableNo, string itemCode = "")
|
|
{
|
|
try
|
|
{
|
|
var ret = UserCom.NG;
|
|
DataTable dtData = null;
|
|
if (orderFlag == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|
{
|
|
var fmt = "SELECT A.SUB_STOR_CD, A.KTCH_SYS_CD \n"
|
|
+ " FROM POSMST..MST_KTCH_DEVICE A WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n"
|
|
+ " WHERE A.CMP_CD = B.CMP_CD \n"
|
|
+ " AND A.STOR_CD = B.STOR_CD \n"
|
|
+ " AND CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|
+ " = CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n"
|
|
+ " AND A.CMP_CD = '{0}' \n"
|
|
+ " AND A.STOR_CD = '{1}' \n"
|
|
+ " AND A.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n"
|
|
+ " AND A.KTCH_SYS_CD <> '99' \n"
|
|
+ " AND A.USE_YN = '{2}' \n"
|
|
+ " AND B.USE_YN = '{2}' \n"
|
|
+ " AND B.FLOOR_CD IN ('999', '{3}') \n"
|
|
+ " AND B.SUB_STOR_CD + B.ITEM_CD LIKE '{4}%' \n"
|
|
;
|
|
var sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, PosConst.MST_USE_YN.YES
|
|
, floorCd
|
|
, itemCode);
|
|
// return -> 1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음
|
|
ret = m_cSqlDbService.DBSelect(sql, out dtData);
|
|
}
|
|
else
|
|
{
|
|
ret = GetKtchDivece(floorCd, tableNo, itemCode, out dtData);
|
|
}
|
|
if (ret != UserCom.OK) return 0;
|
|
return dtData.Rows.Count;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 주방장치목록 가져오기
|
|
/// </summary>
|
|
/// <param name="msgId"></param>
|
|
/// <param name="floorCd"></param>
|
|
/// <param name="tableNo"></param>
|
|
/// <param name="itemCode">서브매장코드+상품코드</param>
|
|
/// <param name="dtData"></param>
|
|
/// <returns></returns>
|
|
/// <remarks>
|
|
/// 99번 = 가상장치 전체
|
|
/// </remarks>
|
|
private int GetKtchDivece(string floorCd, string tableNo, string itemCode, out DataTable dtData)
|
|
{
|
|
dtData = null;
|
|
try
|
|
{
|
|
var fmt = string.Empty;
|
|
var sql = string.Empty;
|
|
|
|
#region (주방출력 선택 옵션 이전 코드)
|
|
//switch (msgId)
|
|
//{
|
|
// case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO:
|
|
// case PosConst.KPS_ORD_MSG_ID.MENU_MOVE:
|
|
// case PosConst.KPS_ORD_MSG_ID.FIRE_KEY:
|
|
// fmt = "SELECT DISTINCT A.SUB_STOR_CD, A.KTCH_SYS_CD "
|
|
// + " FROM POSMST..MST_KTCH_DEVICE A JOIN POSMST..MST_KTCH_DEVICE_ITEM B "
|
|
// + " ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.KTCH_SYS_CD = B.KTCH_SYS_CD "
|
|
// + " WHERE A.CMP_CD = '{0}' "
|
|
// + " AND A.STOR_CD = '{1}' "
|
|
// + " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "' "
|
|
// + " AND A.KTCH_SYS_CD <> '99' " // Add, 2017.01.18
|
|
// + " AND B.FLOOR_CD IN ('999','{2}') "
|
|
// + " AND B.SUB_STOR_CD + B.ITEM_CD = '{3}' "
|
|
// ;
|
|
// sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, floorCd, itemCode);
|
|
// break;
|
|
// default:
|
|
// fmt = "SELECT DISTINCT A.SUB_STOR_CD, A.KTCH_SYS_CD \n"
|
|
// + " FROM POSMST..MST_KTCH_DEVICE A \n"
|
|
// + " JOIN POSMST..MST_KTCH_DEVICE_ITEM B ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.SUB_STOR_CD = B.SUB_STOR_CD AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n"
|
|
// + " WHERE A.CMP_CD = '{0}' \n"
|
|
// + " AND A.STOR_CD = '{1}' \n"
|
|
// + " AND A.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"
|
|
// + " AND A.KTCH_SYS_CD <> '99' \n" // Add, 2017.01.18
|
|
// + " AND B.FLOOR_CD IN ('999','{3}') \n"
|
|
// + " AND B.ITEM_CD IN (SELECT ITEM_CD FROM MST_KTCH_ORD_MSG WITH(NOLOCK) WHERE ORD_DIV = '{2}' AND FLOOR_CD = '{3}' AND TBL_NO = '{4}') ";
|
|
// //sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cTrnStatus.Head.OrderFlag, floorCd, tableNo);
|
|
// break;
|
|
//}
|
|
#endregion
|
|
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "1")
|
|
{
|
|
fmt = "SELECT DISTINCT A.SUB_STOR_CD, A.KTCH_SYS_CD \n"
|
|
+ " FROM POSMST..MST_KTCH_DEVICE A WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_ORD_MSG C \n"
|
|
+ " WHERE A.CMP_CD = B.CMP_CD \n"
|
|
+ " AND A.STOR_CD = B.STOR_CD \n"
|
|
+ " AND CASE WHEN B.KTCH_SYS_CD = '99' OR C.FILLER1= '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|
+ " = CASE WHEN B.KTCH_SYS_CD = '99' OR C.FILLER1= '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n"
|
|
+ " AND B.SUB_STOR_CD = C.SUB_STOR_CD \n"
|
|
+ " AND B.ITEM_CD = C.ITEM_CD \n"
|
|
+ " AND CASE WHEN C.FILLER1 = '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|
+ " = CASE WHEN C.FILLER1 = '99' THEN '1' ELSE C.FILLER1 END \n"
|
|
+ " AND A.CMP_CD = '{0}' \n"
|
|
+ " AND A.STOR_CD = '{1}' \n"
|
|
+ " AND A.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n"
|
|
+ " AND A.KTCH_SYS_CD <> '99' \n"
|
|
+ " AND A.USE_YN = '{2}' \n"
|
|
+ " AND B.USE_YN = '{2}' \n"
|
|
+ " AND B.FLOOR_CD IN ('999', '{5}') \n"
|
|
+ " AND C.TRAIN_MODE_YN = '{3}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND C.ORD_DIV = '{4}' \n"
|
|
+ " AND C.FLOOR_CD = '{5}' \n"
|
|
+ " AND C.TBL_NO = '{6}' \n"
|
|
+ " AND C.SUB_STOR_CD + C.ITEM_CD LIKE '{7}%' \n"
|
|
;
|
|
}
|
|
else if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2")
|
|
{
|
|
fmt = "SELECT DISTINCT A.SUB_STOR_CD, A.KTCH_SYS_CD \n"
|
|
+ " FROM POSMST..MST_KTCH_DEVICE A WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_ORD_MSG C \n"
|
|
+ " WHERE A.CMP_CD = B.CMP_CD \n"
|
|
+ " AND A.STOR_CD = B.STOR_CD \n"
|
|
+ " AND CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|
+ " = CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n"
|
|
+ " AND B.SUB_STOR_CD = C.SUB_STOR_CD \n"
|
|
+ " AND B.ITEM_CD = C.ITEM_CD \n"
|
|
+ " AND A.CMP_CD = '{0}' \n"
|
|
+ " AND A.STOR_CD = '{1}' \n"
|
|
+ " AND A.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n"
|
|
+ " AND A.KTCH_SYS_CD <> '99' \n"
|
|
+ " AND A.USE_YN = '{2}' \n"
|
|
+ " AND B.USE_YN = '{2}' \n"
|
|
+ " AND B.FLOOR_CD IN ('999', '{5}') \n"
|
|
+ " AND C.TRAIN_MODE_YN = '{3}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND C.ORD_DIV = '{4}' \n"
|
|
+ " AND C.FLOOR_CD = '{5}' \n"
|
|
+ " AND C.TBL_NO = '{6}' \n"
|
|
+ " AND C.FILLER1 = 'PRINT' \n"
|
|
+ " AND C.SUB_STOR_CD + C.ITEM_CD LIKE '{7}%' \n"
|
|
;
|
|
}
|
|
else
|
|
{
|
|
fmt = "SELECT DISTINCT A.SUB_STOR_CD, A.KTCH_SYS_CD \n"
|
|
+ " FROM POSMST..MST_KTCH_DEVICE A WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_ORD_MSG C \n"
|
|
+ " WHERE A.CMP_CD = B.CMP_CD \n"
|
|
+ " AND A.STOR_CD = B.STOR_CD \n"
|
|
+ " AND CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|
+ " = CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n"
|
|
+ " AND B.SUB_STOR_CD = C.SUB_STOR_CD \n"
|
|
+ " AND B.ITEM_CD = C.ITEM_CD \n"
|
|
+ " AND A.CMP_CD = '{0}' \n"
|
|
+ " AND A.STOR_CD = '{1}' \n"
|
|
+ " AND A.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n"
|
|
+ " AND A.KTCH_SYS_CD <> '99' \n"
|
|
+ " AND A.USE_YN = '{2}' \n"
|
|
+ " AND B.USE_YN = '{2}' \n"
|
|
+ " AND B.FLOOR_CD IN ('999', '{5}') \n"
|
|
+ " AND C.TRAIN_MODE_YN = '{3}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND C.ORD_DIV = '{4}' \n"
|
|
+ " AND C.FLOOR_CD = '{5}' \n"
|
|
+ " AND C.TBL_NO = '{6}' \n"
|
|
+ " AND C.SUB_STOR_CD + C.ITEM_CD LIKE '{7}%' \n"
|
|
;
|
|
}
|
|
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, PosConst.MST_USE_YN.YES
|
|
, m_cPosStatus.Base.TrainingFlag
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, floorCd
|
|
, tableNo
|
|
, itemCode);
|
|
// return -> 1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음
|
|
int ret = m_cSqlDbService.DBSelect(sql, out dtData);
|
|
return ret;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return -3;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 상품별 주방장치목록 가져오기 (메뉴이동시 사용)
|
|
/// </summary>
|
|
/// <param name="floorCd"></param>
|
|
/// <param name="tableNo"></param>
|
|
/// <param name="dtData"></param>
|
|
/// <returns></returns>
|
|
private int GetKtchDiveceItem(string floorCd, string tableNo, out DataTable dtData)
|
|
{
|
|
dtData = null;
|
|
|
|
try
|
|
{
|
|
var fmt = string.Empty;
|
|
var sql = string.Empty;
|
|
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "1")
|
|
{
|
|
fmt = "SELECT DISTINCT A.SUB_STOR_CD, A.KTCH_SYS_CD, C.ITEM_CD \n"
|
|
+ " FROM POSMST..MST_KTCH_DEVICE A WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_ORD_MSG C \n"
|
|
+ " WHERE A.CMP_CD = B.CMP_CD \n"
|
|
+ " AND A.STOR_CD = B.STOR_CD \n"
|
|
+ " AND CASE WHEN B.KTCH_SYS_CD = '99' OR C.FILLER1= '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|
+ " = CASE WHEN B.KTCH_SYS_CD = '99' OR C.FILLER1= '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n"
|
|
+ " AND B.SUB_STOR_CD = C.SUB_STOR_CD \n"
|
|
+ " AND B.ITEM_CD = C.ITEM_CD \n"
|
|
+ " AND CASE WHEN C.FILLER1 = '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|
+ " = CASE WHEN C.FILLER1 = '99' THEN '1' ELSE C.FILLER1 END \n"
|
|
+ " AND A.CMP_CD = '{0}' \n"
|
|
+ " AND A.STOR_CD = '{1}' \n"
|
|
//+ " AND A.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n"
|
|
+ " AND A.KTCH_SYS_CD <> '99' \n"
|
|
+ " AND A.USE_YN = '{2}' \n"
|
|
+ " AND B.USE_YN = '{2}' \n"
|
|
+ " AND B.FLOOR_CD IN ('999', '{5}') \n"
|
|
+ " AND C.TRAIN_MODE_YN = '{3}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND C.ORD_DIV = '{4}' \n"
|
|
+ " AND C.FLOOR_CD = '{5}' \n"
|
|
+ " AND C.TBL_NO = '{6}' \n"
|
|
;
|
|
}
|
|
else if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2")
|
|
{
|
|
fmt = "SELECT DISTINCT A.SUB_STOR_CD, A.KTCH_SYS_CD, C.ITEM_CD \n"
|
|
+ " FROM POSMST..MST_KTCH_DEVICE A WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_ORD_MSG C \n"
|
|
+ " WHERE A.CMP_CD = B.CMP_CD \n"
|
|
+ " AND A.STOR_CD = B.STOR_CD \n"
|
|
+ " AND CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|
+ " = CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n"
|
|
+ " AND B.SUB_STOR_CD = C.SUB_STOR_CD \n"
|
|
+ " AND B.ITEM_CD = C.ITEM_CD \n"
|
|
+ " AND A.CMP_CD = '{0}' \n"
|
|
+ " AND A.STOR_CD = '{1}' \n"
|
|
//+ " AND A.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n"
|
|
+ " AND A.KTCH_SYS_CD <> '99' \n"
|
|
+ " AND A.USE_YN = '{2}' \n"
|
|
+ " AND B.USE_YN = '{2}' \n"
|
|
+ " AND B.FLOOR_CD IN ('999', '{5}') \n"
|
|
+ " AND C.TRAIN_MODE_YN = '{3}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND C.ORD_DIV = '{4}' \n"
|
|
+ " AND C.FLOOR_CD = '{5}' \n"
|
|
+ " AND C.TBL_NO = '{6}' \n"
|
|
+ " AND C.FILLER1 = 'PRINT' \n"
|
|
;
|
|
}
|
|
else
|
|
{
|
|
fmt = "SELECT DISTINCT A.SUB_STOR_CD, A.KTCH_SYS_CD, C.ITEM_CD \n"
|
|
+ " FROM POSMST..MST_KTCH_DEVICE A WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_DEVICE_ITEM B WITH(NOLOCK) \n"
|
|
+ " , POSMST..MST_KTCH_ORD_MSG C \n"
|
|
+ " WHERE A.CMP_CD = B.CMP_CD \n"
|
|
+ " AND A.STOR_CD = B.STOR_CD \n"
|
|
+ " AND CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE A.SUB_STOR_CD + A.KTCH_SYS_CD END \n"
|
|
+ " = CASE WHEN B.KTCH_SYS_CD = '99' THEN '1' ELSE B.SUB_STOR_CD + B.KTCH_SYS_CD END \n"
|
|
+ " AND B.SUB_STOR_CD = C.SUB_STOR_CD \n"
|
|
+ " AND B.ITEM_CD = C.ITEM_CD \n"
|
|
+ " AND A.CMP_CD = '{0}' \n"
|
|
+ " AND A.STOR_CD = '{1}' \n"
|
|
//+ " AND A.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n"
|
|
+ " AND A.KTCH_SYS_CD <> '99' \n"
|
|
+ " AND A.USE_YN = '{2}' \n"
|
|
+ " AND B.USE_YN = '{2}' \n"
|
|
+ " AND B.FLOOR_CD IN ('999', '{5}') \n"
|
|
+ " AND C.TRAIN_MODE_YN = '{3}' \n" // Add, 2017.03.02, 연습모드
|
|
+ " AND C.ORD_DIV = '{4}' \n"
|
|
+ " AND C.FLOOR_CD = '{5}' \n"
|
|
+ " AND C.TBL_NO = '{6}' \n"
|
|
;
|
|
}
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, PosConst.MST_USE_YN.YES
|
|
, m_cPosStatus.Base.TrainingFlag
|
|
, m_cTrnStatus.Head.OrderFlag
|
|
, floorCd
|
|
, tableNo
|
|
);
|
|
|
|
// return -> 1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음
|
|
int ret = m_cSqlDbService.DBSelect(sql, out dtData);
|
|
return ret;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return -3;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 거래 완료 처리
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string CompleteSaleOrder()
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
string sQuery = string.Empty;
|
|
|
|
try
|
|
{
|
|
if (m_cPosStatus.Base.PosType != PosConst.POS_TYPE.DEFERRED_PAYMENT) return UserCom.RST_OK;
|
|
|
|
// 판매상품 정보
|
|
ArrayList alPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|
|
|
// 완료테이블 정보
|
|
DataTable dtTable = null;
|
|
Column.MST_TABLE.TABLE_DATA cTable = null;
|
|
sReturn = this.SelectTable(new string[] { PosConst.QueryTagDef.QueryTableDef.TABLE_NO_FLOOR_CD_SEARCH, m_cTrnStatus.Head.FloorCd, m_cTrnStatus.Head.TableNo }, out dtTable);
|
|
if (sReturn == UserCom.RST_OK && dtTable != null && dtTable.Rows.Count > 0)
|
|
{
|
|
cTable = new Column.MST_TABLE.TABLE_DATA();
|
|
this.SetTableInfo(dtTable.Rows[0], ref cTable);
|
|
}
|
|
|
|
// 일괄 취소
|
|
if (m_cTrnStatus.Head.TradeKind == ItemConst.TRAN_KIND.LOG.STOP)
|
|
{
|
|
// 테이블그룹결제 모드에서는 일괄취소 불가능
|
|
if (((Column.TR_PLU.DATA)alPluItem[0]).ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|
{
|
|
return UserCom.RST_OK;
|
|
}
|
|
|
|
#region ### 주방데이터 삭제
|
|
sQuery = "UPDATE POSMST..MST_KTCH_ORD_MSG "
|
|
+ " SET CANCEL_DIV = '" + PosConst.CANCEL_DIV.CANCEL + "' "
|
|
+ " , KTCH_MSG = '' " // 주방출력 수동옵션(상품선택) 시 메모정보 제거
|
|
+ " , SEND_YN = CASE WHEN SEND_YN = '0' THEN '9' ELSE '0' END "
|
|
+ " , SEND_CONFIRM_DIV = '0' "
|
|
+ " , RESEND_YN = '0' "
|
|
+ " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' "
|
|
+ " , FILLER3 = 'DEL' " // Add, 2017.02.09
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' "
|
|
+ " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' "
|
|
+ " AND CANCEL_DIV = '" + PosConst.CANCEL_DIV.NORMAL + "' "
|
|
;
|
|
if (m_cSqlDbService.DBExecuteNonQuery(new string[] { sQuery }) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
if (m_cTrnStatus.Head.OrderFlag == PosConst.ORDER_TYPE.NORMAL)
|
|
{
|
|
#region ### 주문데이터 삭제 (MST_ORD)
|
|
if (cTable != null && m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY)
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_ORD "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD + TBL_NO IN (SELECT FLOOR_CD + TBL_NO FROM POSMST..MST_TBL "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_GROUP + "' "
|
|
+ " AND OP_FLOOR_CD = '" + cTable.OP_FLOOR_CD + "' "
|
|
+ " AND OP_TBL_NO = '" + cTable.OP_TABLE_NO + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "') ";
|
|
}
|
|
else
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_ORD "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' " // Add, 2017.03.02, 연습모드
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' "
|
|
+ " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
if (m_cTrnStatus.Head.TradeKind != ItemConst.TRAN_KIND.LOG.STOP || ((Column.TR_PLU.DATA)alPluItem[0]).ORDER_OK_FLAG == PosConst.PLU_ORDER_OK_FLAG.ORDER_ING)
|
|
{
|
|
#region #### 주방데이터 삭제 (MST_KTCH_ORD_MSG)
|
|
if (cTable != null && m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY)
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_KTCH_ORD_MSG "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD + TBL_NO IN (SELECT FLOOR_CD + TBL_NO FROM POSMST..MST_TBL "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_GROUP + "' "
|
|
+ " AND OP_FLOOR_CD = '" + cTable.OP_FLOOR_CD + "' "
|
|
+ " AND OP_TBL_NO = '" + cTable.OP_TABLE_NO + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ) "
|
|
+ " AND SEND_YN <> '0' ";
|
|
}
|
|
else
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_KTCH_ORD_MSG "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' "
|
|
+ " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' "
|
|
+ " AND SEND_YN <> '0' ";
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region #### 주방추가데이터 삭제 (MST_KTCH_ORD_MSG_ADD)
|
|
if (cTable != null && m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY)
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_KTCH_ORD_MSG_ADD "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD + TBL_NO IN (SELECT FLOOR_CD + TBL_NO FROM POSMST..MST_TBL "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_GROUP + "' "
|
|
+ " AND OP_FLOOR_CD = '" + cTable.OP_FLOOR_CD + "' "
|
|
+ " AND OP_TBL_NO = '" + cTable.OP_TABLE_NO + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ) "
|
|
+ " AND SEND_YN <> '0' ";
|
|
}
|
|
else
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_KTCH_ORD_MSG_ADD "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' "
|
|
+ " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' "
|
|
+ " AND SEND_YN <> '0' ";
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.WARNING_LEVEL,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명)
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명)
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region #### KPS 데이터 삭제 (MST_KPS_ORD_MSG)
|
|
if (cTable != null && m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY)
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_KPS_ORD_MSG "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD + TBL_NO IN (SELECT FLOOR_CD + TBL_NO FROM POSMST..MST_TBL "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_GROUP + "' "
|
|
+ " AND OP_FLOOR_CD = '" + cTable.OP_FLOOR_CD + "' "
|
|
+ " AND OP_TBL_NO = '" + cTable.OP_TABLE_NO + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ) "
|
|
+ " AND SEND_YN <> '0' ";
|
|
}
|
|
else
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_KPS_ORD_MSG "
|
|
+ " WHERE TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' "
|
|
+ " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' "
|
|
+ " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' "
|
|
+ " AND SEND_YN <> '0' ";
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
|
|
#region ### 대상 테이블마스터 초기화 (MST_TBL)
|
|
sQuery = "UPDATE POSMST..MST_TBL "
|
|
+ " SET TBL_USE_DIV = '" + PosConst.TABLE_USE_FLAG.NO_USE + "' "
|
|
+ " , CUST_CNT = 0 "
|
|
+ " , FIRST_ORD_HOUR = '' "
|
|
+ " , ORD_AMT = 0 "
|
|
//+ " , TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_NONE + "' " // Mod, 2017.02.22, 테이블그룹정보는 초기화 하지 않는다.
|
|
//+ " , OP_FLOOR_CD = '' "
|
|
//+ " , OP_TBL_NO = '' "
|
|
+ " , FILLER1 = '' "
|
|
+ " , FILLER2 = '' "
|
|
//+ " , FILLER3 = '' "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' "
|
|
+ " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
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 + "()",
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
|
|
#region ### 테이블연결 정보 초기화
|
|
if (cTable != null && m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY)
|
|
{
|
|
sQuery = "UPDATE POSMST..MST_TBL "
|
|
+ " SET TBL_USE_DIV = '" + PosConst.TABLE_USE_FLAG.NO_USE + "' "
|
|
+ " , CUST_CNT = 0 "
|
|
+ " , FIRST_ORD_HOUR = '' "
|
|
+ " , ORD_AMT = 0 "
|
|
+ " , TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_NONE + "' "
|
|
+ " , OP_FLOOR_CD = '' "
|
|
+ " , OP_TBL_NO = '' "
|
|
+ " , FILLER1 = '' "
|
|
+ " , FILLER2 = '' "
|
|
+ " , FILLER3 = '' "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND OP_FLOOR_CD = '" + cTable.OP_FLOOR_CD + "' "
|
|
+ " AND OP_TBL_NO = '" + cTable.OP_TABLE_NO + "' "
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.WARNING_LEVEL,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명)
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명)
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region ### 좌석메모 삭제 (MST_SEAT_MEMO)
|
|
if (cTable != null && m_cPosStatus.Sale.EtcOperateMode == PosConst.ETC_OPERATION_MODE.TABLE_GROUP_PAY)
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_SEAT_MEMO "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND FLOOR_CD + TBL_NO IN (SELECT FLOOR_CD + TBL_NO FROM POSMST..MST_TBL "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND TBL_OP_DIV = '" + PosConst.TABLE_OP_FLAG.OP_GROUP + "' "
|
|
+ " AND OP_FLOOR_CD = '" + cTable.OP_FLOOR_CD + "' "
|
|
+ " AND OP_TBL_NO = '" + cTable.OP_TABLE_NO + "' "
|
|
+ " ) ";
|
|
}
|
|
else
|
|
{
|
|
sQuery = "DELETE FROM POSMST..MST_SEAT_MEMO "
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' "
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' "
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' "
|
|
+ " AND FLOOR_CD = '" + m_cTrnStatus.Head.FloorCd + "' "
|
|
+ " AND TBL_NO = '" + m_cTrnStatus.Head.TableNo + "' ";
|
|
}
|
|
if (m_cSqlDbService.DBExecuteNonQuery(sQuery) != UserCom.OK)
|
|
{
|
|
// Rollback
|
|
m_cSqlDbService.Rollback();
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
UserCom.WARNING_LEVEL,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (클래스명)
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (함수명)
|
|
sQuery + "[ERROR]");
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
#endregion
|
|
}
|
|
|
|
// Commit
|
|
m_cSqlDbService.Commit();
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR;
|
|
}
|
|
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 좌석메모 조회
|
|
/// </summary>
|
|
/// <param name="sFloorCd"></param>
|
|
/// <param name="sTableNo"></param>
|
|
/// <param name="dtData"></param>
|
|
/// <returns></returns>
|
|
public string SelectKtchOrderMessage(string sFloorCd, string sTableNo, out DataTable dtData)
|
|
{
|
|
string sReturn = UserCom.RST_ERR;
|
|
dtData = null;
|
|
|
|
try
|
|
{
|
|
var fmt = string.Empty;
|
|
var sql = string.Empty;
|
|
var ret = -9;
|
|
if (string.IsNullOrWhiteSpace(sFloorCd) || string.IsNullOrWhiteSpace(sTableNo))
|
|
{
|
|
fmt = "SELECT A.FLOOR_CD, A.TBL_NO, COUNT(*) CNT "
|
|
+ " FROM POSMST..MST_SEAT_MEMO A "
|
|
+ " WHERE A.CMP_CD = '{0}' AND A.STOR_CD = '{1}' AND TRAIN_MODE_YN = '{2}' "
|
|
+ " GROUP BY A.FLOOR_CD, A.TBL_NO ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag);
|
|
// 1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음
|
|
ret = m_cSqlDbService.DBSelect(sql, out dtData);
|
|
}
|
|
else
|
|
{
|
|
fmt = "SELECT A.REG_TIME, A.CASHIER_ID, B.CASHIER_NM, A.MSG1, A.MSG2, A.MSG3 "
|
|
+ " FROM POSMST..MST_SEAT_MEMO A "
|
|
+ " LEFT JOIN POSMST..MST_USER B "
|
|
+ " ON A.CMP_CD = B.CMP_CD AND A.STOR_CD = B.STOR_CD AND A.CASHIER_ID = B.CASHIER_ID "
|
|
+ " WHERE A.CMP_CD = '{0}' AND A.STOR_CD = '{1}' AND TRAIN_MODE_YN = '{2}' AND A.FLOOR_CD = '{3}' AND A.TBL_NO = '{4}' "
|
|
+ " ORDER BY A.REG_DT, A.REG_TIME ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPosStatus.Base.TrainingFlag, sFloorCd, sTableNo);
|
|
// 1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음
|
|
ret = m_cSqlDbService.DBSelect(sql, out dtData);
|
|
}
|
|
if (ret == UserCom.NG)
|
|
{
|
|
return UserCom.RST_IGNORE;
|
|
}
|
|
else if (ret != UserCom.OK)
|
|
{
|
|
return UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0403);
|
|
}
|
|
|
|
sReturn = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
sReturn = UserCom.RST_ERR;
|
|
}
|
|
return sReturn;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 층 마스터 데이터베이스 저장
|
|
/// </summary>
|
|
/// <param name="lstMstFloor"></param>
|
|
/// <returns></returns>
|
|
public string FloorMasterSave(List<Column.MST_FLOOR.FLOOR_DATA> lstMstFloor)
|
|
{
|
|
try
|
|
{
|
|
List<string> query = new List<string>();
|
|
|
|
foreach (var tmp in from x in lstMstFloor
|
|
where x.STATUS != PosConst.DB_ROW_STATUS.NONE
|
|
select x)
|
|
{
|
|
string sql = string.Empty;
|
|
|
|
sql = GetQueryFloorMaster(tmp);
|
|
if (string.IsNullOrWhiteSpace(sql)) continue;
|
|
query.Add(sql);
|
|
|
|
if (tmp.STATUS == PosConst.DB_ROW_STATUS.DELETE)
|
|
{
|
|
// 층에 속해있는 테이블 정보 삭제
|
|
sql = GetQueryTableMasterDelete(tmp.FLOOR_CD, string.Empty);
|
|
if (string.IsNullOrWhiteSpace(sql)) break;
|
|
|
|
query.Add(sql);
|
|
}
|
|
}
|
|
if (query.Count == 0) return UserCom.RST_IGNORE;
|
|
|
|
// return -> 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러, -4:적용된 Row 없음
|
|
int ret = m_cSqlDbService.DBExecuteNonQuery(query.ToArray(), true);
|
|
if (ret != UserCom.OK)
|
|
{
|
|
return UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0506);
|
|
}
|
|
|
|
foreach (var cFloor in lstMstFloor.AsEnumerable().Reverse())
|
|
{
|
|
if (cFloor.STATUS == PosConst.DB_ROW_STATUS.DELETE)
|
|
lstMstFloor.Remove(cFloor);
|
|
else
|
|
cFloor.STATUS = PosConst.DB_ROW_STATUS.NONE;
|
|
}
|
|
|
|
return UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return UserCom.RST_ERR + ex.Message;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블 마스터 데이터베이스 저장
|
|
/// </summary>
|
|
/// <param name="lstMstTable"></param>
|
|
/// <returns></returns>
|
|
public string TableMasterSave(List<Column.MST_TABLE.TABLE_DATA> lstMstTable)
|
|
{
|
|
try
|
|
{
|
|
List<string> query = new List<string>();
|
|
|
|
foreach (var tmp in from x in lstMstTable
|
|
where x.STATUS != PosConst.DB_ROW_STATUS.NONE
|
|
select x)
|
|
{
|
|
string sql = GetQueryTableMaster(tmp);
|
|
if (string.IsNullOrWhiteSpace(sql)) continue;
|
|
query.Add(sql);
|
|
}
|
|
if (query.Count == 0) return UserCom.RST_IGNORE;
|
|
|
|
// return -> 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러, -4:적용된 Row 없음
|
|
int ret = m_cSqlDbService.DBExecuteNonQuery(query.ToArray(), true);
|
|
if (ret != UserCom.OK)
|
|
{
|
|
return UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0507);
|
|
}
|
|
|
|
foreach (var cTable in lstMstTable.AsEnumerable().Reverse())
|
|
{
|
|
if (cTable.STATUS == PosConst.DB_ROW_STATUS.DELETE)
|
|
lstMstTable.Remove(cTable);
|
|
else
|
|
cTable.STATUS = PosConst.DB_ROW_STATUS.NONE;
|
|
}
|
|
|
|
return UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return UserCom.RST_ERR + ex.Message;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 층/테이블 마스터 데이터베이스 저장
|
|
/// </summary>
|
|
/// <param name="lstMstFloor"></param>
|
|
/// <param name="lstMstTable"></param>
|
|
/// <returns></returns>
|
|
public string TableMasterSave(List<Column.MST_FLOOR.FLOOR_DATA> lstMstFloor, List<Column.MST_TABLE.TABLE_DATA> lstMstTable)
|
|
{
|
|
try
|
|
{
|
|
List<string> query = new List<string>();
|
|
|
|
// 층마스터 저장
|
|
foreach (var tmp in from x in lstMstFloor
|
|
where x.STATUS != PosConst.DB_ROW_STATUS.NONE
|
|
select x)
|
|
{
|
|
string sql = string.Empty;
|
|
|
|
sql = GetQueryFloorMaster(tmp);
|
|
if (string.IsNullOrWhiteSpace(sql)) continue;
|
|
query.Add(sql);
|
|
|
|
if (tmp.STATUS == PosConst.DB_ROW_STATUS.DELETE)
|
|
{
|
|
// 층에 속해있는 테이블 정보 삭제
|
|
sql = GetQueryTableMasterDelete(tmp.FLOOR_CD, string.Empty);
|
|
if (string.IsNullOrWhiteSpace(sql)) break;
|
|
|
|
query.Add(sql);
|
|
}
|
|
}
|
|
|
|
// 테이블 마스터 저장
|
|
foreach (var tmp in from x in lstMstTable
|
|
where x.STATUS != PosConst.DB_ROW_STATUS.NONE
|
|
select x)
|
|
{
|
|
string sql = GetQueryTableMaster(tmp);
|
|
if (string.IsNullOrWhiteSpace(sql)) continue;
|
|
query.Add(sql);
|
|
}
|
|
if (query.Count == 0) return UserCom.RST_IGNORE;
|
|
|
|
try
|
|
{
|
|
m_cSqlDbService.Begin();
|
|
|
|
for (var i = 0; i < query.Count; i++)
|
|
{
|
|
int ret = m_cSqlDbService.DBExecuteNonQuery(query[i]);
|
|
if (ret == UserCom.NG4) continue;
|
|
if (ret != UserCom.OK)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
return UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0507);
|
|
}
|
|
}
|
|
|
|
m_cSqlDbService.Commit();
|
|
}
|
|
catch
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
return UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0507);
|
|
}
|
|
|
|
foreach (var cFloor in lstMstFloor.AsEnumerable().Reverse())
|
|
{
|
|
if (cFloor.STATUS == PosConst.DB_ROW_STATUS.DELETE)
|
|
lstMstFloor.Remove(cFloor);
|
|
else
|
|
cFloor.STATUS = PosConst.DB_ROW_STATUS.NONE;
|
|
}
|
|
foreach (var cTable in lstMstTable.AsEnumerable().Reverse())
|
|
{
|
|
if (cTable.STATUS == PosConst.DB_ROW_STATUS.DELETE)
|
|
lstMstTable.Remove(cTable);
|
|
else
|
|
cTable.STATUS = PosConst.DB_ROW_STATUS.NONE;
|
|
}
|
|
|
|
return UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return UserCom.RST_ERR + ex.Message;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 연습모드 테이블 마스터 복제
|
|
/// </summary>
|
|
/// <param name="checkExist">연습모드 테이블 마스터 존재여부 확인</param>
|
|
/// <returns></returns>
|
|
public bool CreateTrainingTable(bool checkExist = true)
|
|
{
|
|
try
|
|
{
|
|
if (m_cPosStatus.Base.PosType != PosConst.POS_TYPE.DEFERRED_PAYMENT) return true;
|
|
if (m_cPosStatus.Base.TrainingFlag != ItemConst.TRAINING_FLAG.TRAINING_YES) return true;
|
|
|
|
List<string> query = new List<string>();
|
|
string sql = string.Empty;
|
|
|
|
// 연습모드 테이블 정보 존재여부 확인
|
|
if (checkExist)
|
|
{
|
|
sql = "SELECT TRAIN_MODE_YN, COUNT(*) CNT, SUM(X_COORD) XSUM, SUM(Y_COORD) YSUM, SUM(WIDTH) WSUM, SUM(HGT) HSUM \n"
|
|
+ " FROM MST_TBL \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"
|
|
+ " GROUP BY TRAIN_MODE_YN ";
|
|
DataTable dtData = null;
|
|
if (m_cSqlDbService.DBSelect(sql, out dtData) != UserCom.OK) return false;
|
|
|
|
var tableCheck = new long[2, 5];
|
|
foreach (DataRow dr in dtData.Rows)
|
|
{
|
|
switch (CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN"))
|
|
{
|
|
case ItemConst.TRAINING_FLAG.TRAINING_NO:
|
|
tableCheck[0, 0] = CmUtil.GetDataRowLong(dr, "CNT");
|
|
tableCheck[0, 1] = CmUtil.GetDataRowLong(dr, "XSUM");
|
|
tableCheck[0, 2] = CmUtil.GetDataRowLong(dr, "YSUM");
|
|
tableCheck[0, 3] = CmUtil.GetDataRowLong(dr, "WSUM");
|
|
tableCheck[0, 3] = CmUtil.GetDataRowLong(dr, "HSUM");
|
|
break;
|
|
case ItemConst.TRAINING_FLAG.TRAINING_YES:
|
|
tableCheck[1, 0] = CmUtil.GetDataRowLong(dr, "CNT");
|
|
tableCheck[1, 1] = CmUtil.GetDataRowLong(dr, "XSUM");
|
|
tableCheck[1, 2] = CmUtil.GetDataRowLong(dr, "YSUM");
|
|
tableCheck[1, 3] = CmUtil.GetDataRowLong(dr, "WSUM");
|
|
tableCheck[1, 3] = CmUtil.GetDataRowLong(dr, "HSUM");
|
|
break;
|
|
}
|
|
}
|
|
var isModify = false;
|
|
for (var i = 0; i < 2; i++)
|
|
{
|
|
if (tableCheck[0, i] != tableCheck[1, i])
|
|
{
|
|
isModify = true;
|
|
break;
|
|
}
|
|
}
|
|
if (isModify == false) return true;
|
|
}
|
|
|
|
// 연습모드 테이블 복제
|
|
sql = "DELETE FROM MST_TBL \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd+ "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo+ "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + ItemConst.TRAINING_FLAG.TRAINING_YES + "' ";
|
|
query.Add(sql);
|
|
|
|
sql = "INSERT INTO dbo.MST_TBL \n"
|
|
+ " (CMP_CD, STOR_CD, TRAIN_MODE_YN, FLOOR_CD, TBL_NO, TBL_NM, TBL_TYPE, TBL_TYPE_SHAPE, BACKGRCOLOR, BACKGR_IMG, FONTCOLOR, FONT_NM, FONT_SIZE, X_COORD, Y_COORD, WIDTH, HGT, TBL_DISP_DIV, SEAT_CNT, SEAT_CNT_DISP_DIV, TBL_OP_DIV, OP_FLOOR_CD, OP_TBL_NO, TBL_USE_DIV, CUST_CNT, FIRST_ORD_HOUR, ORD_AMT, RESERV_DIV, RESERV_HOUR, ORD_COLOR, PAY_CMPT_COLOR, PAY_CMPT_DIV, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, USE_YN, REG_DT) \n"
|
|
+ "SELECT CMP_CD, STOR_CD, '1' , FLOOR_CD, TBL_NO, TBL_NM, TBL_TYPE, TBL_TYPE_SHAPE, BACKGRCOLOR, BACKGR_IMG, FONTCOLOR, FONT_NM, FONT_SIZE, X_COORD, Y_COORD, WIDTH, HGT, TBL_DISP_DIV, SEAT_CNT, SEAT_CNT_DISP_DIV, '' , '' , '' , '0' , 0 , '' , 0 , NULL , NULL , ORD_COLOR, PAY_CMPT_COLOR, '' , NULL , NULL , NULL , NULL , NULL , USE_YN, '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n"
|
|
+ " FROM dbo.MST_TBL \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + ItemConst.TRAINING_FLAG.TRAINING_NO + "' \n"
|
|
+ " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "' ";
|
|
query.Add(sql);
|
|
|
|
// 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러
|
|
int ret = m_cSqlDbService.DBExecuteNonQuery(query.ToArray(), true);
|
|
return ret == UserCom.OK ? true : false;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private string GetQueryFloorMaster(Column.MST_FLOOR.FLOOR_DATA cFloor)
|
|
{
|
|
try
|
|
{
|
|
string sql = string.Empty;
|
|
string fmt = string.Empty;
|
|
|
|
cFloor.UPD_DT = cFloor.UPD_DT.Replace("-", "").Replace(":", "").Replace(".", "").Replace(" ", "");
|
|
cFloor.REG_DT = cFloor.REG_DT.Replace("-", "").Replace(":", "").Replace(".", "").Replace(" ", "");
|
|
if (string.IsNullOrWhiteSpace(cFloor.UPD_DT))
|
|
{
|
|
cFloor.UPD_DT = DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
}
|
|
else if (cFloor.UPD_DT.Trim().Length > 14)
|
|
{
|
|
cFloor.UPD_DT = cFloor.UPD_DT.Substring(0, 14);
|
|
}
|
|
if (string.IsNullOrWhiteSpace(cFloor.REG_DT))
|
|
{
|
|
cFloor.REG_DT = DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
}
|
|
else if (cFloor.REG_DT.Trim().Length > 14)
|
|
{
|
|
cFloor.REG_DT = cFloor.REG_DT.Substring(0, 14);
|
|
}
|
|
|
|
switch (cFloor.STATUS)
|
|
{
|
|
case PosConst.DB_ROW_STATUS.DELETE:
|
|
//fmt = "UPDATE POSMST..MST_FLOOR USE_YN = '0' WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND FLOOR_CD = '{2}' ";
|
|
fmt = "DELETE FROM POSMST..MST_FLOOR WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND FLOOR_CD = '{2}' ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, cFloor.FLOOR_CD);
|
|
break;
|
|
case PosConst.DB_ROW_STATUS.INSERT:
|
|
case PosConst.DB_ROW_STATUS.UPDATE:
|
|
fmt = "UPDATE POSMST..MST_FLOOR SET FLOOR_NM = N'{3}', UPD_DT = '{4}', USE_YN = '{6}'"
|
|
+ " WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND FLOOR_CD = '{2}' "
|
|
+ "IF @@ROWCOUNT = 0 "
|
|
+ "INSERT INTO POSMST..MST_FLOOR (CMP_CD, STOR_CD, FLOOR_CD, FLOOR_NM, UPD_DT, REG_DT, USE_YN) "
|
|
+ "VALUES ('{0}', '{1}', '{2}', N'{3}', '{4}', '{5}', '{6}') ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, cFloor.FLOOR_CD
|
|
, cFloor.FLOOR_NM
|
|
, cFloor.UPD_DT
|
|
, cFloor.REG_DT
|
|
, PosConst.MST_USE_YN.YES);
|
|
break;
|
|
case PosConst.DB_ROW_STATUS.RESTORE:
|
|
fmt = "INSERT INTO POSMST..MST_FLOOR (CMP_CD, STOR_CD, FLOOR_CD, FLOOR_NM, UPD_DT, REG_DT, USE_YN) "
|
|
+ "VALUES ('{0}', '{1}', '{2}', N'{3}', '{4}', '{5}', '{6}') ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, cFloor.FLOOR_CD
|
|
, cFloor.FLOOR_NM
|
|
, cFloor.UPD_DT
|
|
, cFloor.REG_DT
|
|
, PosConst.MST_USE_YN.YES);
|
|
break;
|
|
default:
|
|
return string.Empty;
|
|
}
|
|
|
|
return sql;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return UserCom.RST_ERR + ex.Message;
|
|
}
|
|
}
|
|
|
|
private string GetQueryTableMasterDelete(string floorCd, string tableNo)
|
|
{
|
|
Column.MST_TABLE.TABLE_DATA cTable = new Column.MST_TABLE.TABLE_DATA();
|
|
cTable.FLOOR_CD = floorCd;
|
|
cTable.TABLE_NO = tableNo;
|
|
cTable.STATUS = PosConst.DB_ROW_STATUS.DELETE;
|
|
return GetQueryTableMaster(cTable);
|
|
}
|
|
|
|
private string GetQueryTableMaster(Column.MST_TABLE.TABLE_DATA cTable)
|
|
{
|
|
try
|
|
{
|
|
string sql = string.Empty;
|
|
string fmt = string.Empty;
|
|
|
|
cTable.UPD_DT = cTable.UPD_DT.Replace("-", "").Replace(":", "").Replace(".", "").Replace(" ", "");
|
|
cTable.REG_DT = cTable.REG_DT.Replace("-", "").Replace(":", "").Replace(".", "").Replace(" ", "");
|
|
if (string.IsNullOrWhiteSpace(cTable.UPD_DT))
|
|
{
|
|
cTable.UPD_DT = DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
}
|
|
else if (cTable.UPD_DT.Trim().Length > 14)
|
|
{
|
|
cTable.UPD_DT = cTable.UPD_DT.Substring(0, 14);
|
|
}
|
|
if (string.IsNullOrWhiteSpace(cTable.REG_DT))
|
|
{
|
|
cTable.REG_DT = DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
}
|
|
else if (cTable.REG_DT.Trim().Length > 14)
|
|
{
|
|
cTable.REG_DT = cTable.REG_DT.Substring(0, 14);
|
|
}
|
|
|
|
switch (cTable.STATUS)
|
|
{
|
|
case PosConst.DB_ROW_STATUS.DELETE:
|
|
fmt = "DELETE FROM POSMST..MST_TBL WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND FLOOR_CD = '{2}' AND TBL_NO LIKE '{3}%' ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, cTable.FLOOR_CD, cTable.TABLE_NO);
|
|
break;
|
|
case PosConst.DB_ROW_STATUS.UPDATE:
|
|
case PosConst.DB_ROW_STATUS.INSERT:
|
|
fmt = "UPDATE POSMST..MST_TBL "
|
|
+ " SET TBL_NM = N'{5}' "
|
|
+ " , FONT_NM = N'{6}' "
|
|
+ " , FONT_SIZE = {7} "
|
|
+ " , X_COORD = {8} "
|
|
+ " , Y_COORD = {9} "
|
|
+ " , WIDTH = {10} "
|
|
+ " , HGT = {11} "
|
|
+ " , UPD_DT = '{12}' "
|
|
+ " , USE_YN = '{14}' "
|
|
+ "WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' AND TRAIN_MODE_YN = '{2}' AND FLOOR_CD = '{3}' AND TBL_NO = '{4}' "
|
|
+ "IF @@ROWCOUNT = 0 "
|
|
+ "INSERT INTO POSMST..MST_TBL (CMP_CD, STOR_CD, TRAIN_MODE_YN, FLOOR_CD, TBL_NO, TBL_NM, FONT_NM, FONT_SIZE, X_COORD, Y_COORD, WIDTH, HGT, UPD_DT, REG_DT, USE_YN) "
|
|
+ "VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', N'{5}', N'{6}', {7}, {8}, {9}, {10}, {11}, '{12}', '{13}', '{14}') ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, ItemConst.TRAINING_FLAG.TRAINING_NO // Add, 2017.03.02, 연습모드
|
|
, cTable.FLOOR_CD
|
|
, cTable.TABLE_NO
|
|
, cTable.TABLE_NM
|
|
, cTable.FONT_NM
|
|
, cTable.FONT_SIZE
|
|
, cTable.X_COORD
|
|
, cTable.Y_COORD
|
|
, cTable.WIDTH
|
|
, cTable.HEIGHT
|
|
, cTable.UPD_DT
|
|
, cTable.REG_DT
|
|
, PosConst.MST_USE_YN.YES);
|
|
break;
|
|
case PosConst.DB_ROW_STATUS.RESTORE:
|
|
fmt = "INSERT INTO POSMST..MST_TBL (CMP_CD, STOR_CD, TRAIN_MODE_YN, FLOOR_CD, TBL_NO, TBL_NM, FONT_NM, FONT_SIZE, X_COORD, Y_COORD, WIDTH, HGT, UPD_DT, REG_DT, USE_YN) "
|
|
+ "VALUES ('{0}', '{1}', '{2}', '{3}', '{4}', N'{5}', N'{6}', {7}, {8}, {9}, {10}, {11}, '{12}', '{13}', '{14}') ";
|
|
sql = string.Format(fmt, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.StoreNo
|
|
, ItemConst.TRAINING_FLAG.TRAINING_NO // Add, 2017.03.02, 연습모드
|
|
, cTable.FLOOR_CD
|
|
, cTable.TABLE_NO
|
|
, cTable.TABLE_NM
|
|
, cTable.FONT_NM
|
|
, cTable.FONT_SIZE
|
|
, cTable.X_COORD
|
|
, cTable.Y_COORD
|
|
, cTable.WIDTH
|
|
, cTable.HEIGHT
|
|
, cTable.UPD_DT
|
|
, cTable.REG_DT
|
|
, PosConst.MST_USE_YN.YES);
|
|
|
|
break;
|
|
default:
|
|
return string.Empty;
|
|
}
|
|
|
|
return sql;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return UserCom.RST_ERR + ex.Message;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 층/테이블 마스터 백업 (to server)
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string TableMasterBackup(List<Column.MST_FLOOR.FLOOR_DATA> lstMstFloor, List<Column.MST_TABLE.TABLE_DATA> lstMstTable)
|
|
{
|
|
string retValue = UserCom.RST_ERR;
|
|
|
|
const string COL_SPLIT = "|";
|
|
const string ROW_SPLIT = "#~";
|
|
|
|
try
|
|
{
|
|
string ret = string.Empty;
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS
|
|
, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name
|
|
, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()"
|
|
, "POS Table Master Backup Start ");
|
|
|
|
// Add, 2017.03.13, 복합매장대응
|
|
string storeCode = string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNo)
|
|
? m_cPosStatus.Base.StoreNo : m_cPosStatus.Base.SubShopNo;
|
|
|
|
// 층/테이블 정보
|
|
List<string> lstData = new List<string>();
|
|
|
|
#region ### 층 정보 생성
|
|
foreach (var cFloor in from x in lstMstFloor
|
|
where x.STATUS != PosConst.DB_ROW_STATUS.DELETE
|
|
orderby x.FLOOR_CD
|
|
select x)
|
|
{
|
|
#region Oracle Table Schema (SPP.POS_MST_FLOOR)
|
|
//SELECT CMP_CD, STOR_CD, FLOOR_CD, FLOOR_NM, FILLER_1, FILLER_2, FILLER_3, FILLER_4, FILLER_5, USE_YN, REG_USER_ID, REG_DATE, UPD_USER_ID, UPD_DATE
|
|
//FROM SPP.POS_MST_FLOOR
|
|
|
|
//0 , "01" => Floor Master
|
|
//1 , CMP_CD
|
|
//2 , STOR_CD
|
|
//3 , FLOOR_CD
|
|
//4 , FLOOR_NM
|
|
//5 , FILLER_1
|
|
//6 , FILLER_2
|
|
//7 , FILLER_3
|
|
//8 , FILLER_4
|
|
//9 , FILLER_5
|
|
//10, USE_YN
|
|
//11, REG_USER_ID
|
|
//12, REG_DATE
|
|
//13, UPD_USER_ID
|
|
//14, UPD_DATE
|
|
#endregion
|
|
|
|
if (cFloor.UPD_DT.Trim().Length != 14) cFloor.UPD_DT = DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
if (cFloor.REG_DT.Trim().Length != 14) cFloor.REG_DT = DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
|
|
string[] floor = new string[15];
|
|
floor[0] = "01";
|
|
|
|
floor[1] = m_cPosStatus.Base.CmpCd;
|
|
|
|
// Mod, 2017.03.13, 복합매장대응
|
|
//floor[2] = m_cPosStatus.Base.StoreNo;
|
|
floor[2] = storeCode;
|
|
|
|
floor[3] = cFloor.FLOOR_CD;
|
|
floor[4] = cFloor.FLOOR_NM;
|
|
floor[5] = string.Empty;
|
|
floor[6] = string.Empty;
|
|
floor[7] = string.Empty;
|
|
floor[8] = string.Empty;
|
|
floor[9] = string.Empty;
|
|
floor[10] = PosConst.MST_USE_YN.YES;
|
|
floor[11] = m_cPosStatus.Base.CashierNo;
|
|
floor[12] = cFloor.REG_DT;
|
|
floor[13] = m_cPosStatus.Base.CashierNo;
|
|
floor[14] = cFloor.UPD_DT;
|
|
|
|
string rowData = string.Join(COL_SPLIT, floor);
|
|
lstData.Add(rowData);
|
|
}
|
|
#endregion
|
|
|
|
#region ### 테이블 정보 생성
|
|
foreach (var cTable in from x in lstMstTable
|
|
where x.STATUS != PosConst.DB_ROW_STATUS.DELETE
|
|
orderby x.TABLE_NO
|
|
select x)
|
|
{
|
|
#region Oracle Table Schema (SPP.POS_MST_TBL)
|
|
//SELECT CMP_CD, STOR_CD, FLOOR_CD, TBL_NO, TBL_NM, TBL_TYPE, TBL_SHAPE, BACKGR_COLOR, BACKGR_IMG, FONT_COLOR, FONT_NM, FONT_SIZE, LOC_X, LOC_Y, WIDTH, HGT, DISP_DIV, SEAT_CNT, SEAT_CNT_DISP_DIV, OPERATE_DIV, OPERATE_FLOOR_CD, OPERATE_TBL_NO, ORD_CMPT_COLOR, PAY_CMPT_COLOR, FILLER_1, FILLER_2, FILLER_3, FILLER_4, FILLER_5, USE_YN, REG_USER_ID, REG_DATE, UPD_USER_ID, UPD_DATE
|
|
//FROM SPP.POS_MST_TBL
|
|
|
|
//0 , "02" => Table Master
|
|
//1 , CMP_CD
|
|
//2 , STOR_CD
|
|
//3 , FLOOR_CD
|
|
//4 , TBL_NO
|
|
//5 , TBL_NM
|
|
//6 , TBL_TYPE
|
|
//7 , TBL_SHAPE
|
|
//8 , BACKGR_COLOR
|
|
//9 , BACKGR_IMG
|
|
//10, FONT_COLOR
|
|
//11, FONT_NM
|
|
//12, FONT_SIZE
|
|
//13, LOC_X
|
|
//14, LOC_Y
|
|
//15, WIDTH
|
|
//16, HGT
|
|
//17, DISP_DIV
|
|
//18, SEAT_CNT
|
|
//19, SEAT_CNT_DISP_DIV
|
|
//20, OPERATE_DIV
|
|
//21, OPERATE_FLOOR_CD
|
|
//22, OPERATE_TBL_NO
|
|
//23, ORD_CMPT_COLOR
|
|
//24, PAY_CMPT_COLOR
|
|
//25, FILLER_1
|
|
//26, FILLER_2
|
|
//27, FILLER_3
|
|
//28, FILLER_4
|
|
//29, FILLER_5
|
|
//30, USE_YN
|
|
//31, REG_USER_ID
|
|
//32, REG_DATE
|
|
//33, UPD_USER_ID
|
|
//34, UPD_DATE
|
|
#endregion
|
|
|
|
if (cTable.UPD_DT.Trim().Length != 14) cTable.UPD_DT = DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
if (cTable.REG_DT.Trim().Length != 14) cTable.REG_DT = DateTime.Now.ToString("yyyyMMddhhmmss");
|
|
cTable.TABLE_DISP_FLAG = "2";
|
|
|
|
string[] table = new string[35];
|
|
table[0] = "02";
|
|
|
|
table[1] = m_cPosStatus.Base.CmpCd; //1 CMP_CD
|
|
|
|
// Mod, 2017.03.13, 복합매장대응
|
|
//table[2] = m_cPosStatus.Base.StoreNo; //2 , STOR_CD
|
|
table[2] = storeCode;
|
|
|
|
table[3] = cTable.FLOOR_CD; //3 , FLOOR_CD
|
|
table[4] = cTable.TABLE_NO; //4 , TBL_NO
|
|
table[5] = cTable.TABLE_NM; //5 , TBL_NM
|
|
table[6] = ""; //6 , TBL_TYPE (사용안함)
|
|
table[7] = ""; //7 , TBL_SHAPE (사용안함)
|
|
table[8] = ""; //8 , BACKGR_COLOR (사용안함)
|
|
table[9] = ""; //9 , BACKGR_IMG (사용안함)
|
|
table[10] = ""; //10, FONT_COLOR (사용안함)
|
|
table[11] = cTable.FONT_NM; //11, FONT_NM (Default:나눔스퀘어)
|
|
table[12] = cTable.FONT_SIZE.ToString(); //12, FONT_SIZE (Default:10)
|
|
table[13] = cTable.X_COORD.ToString(); //13, LOC_X
|
|
table[14] = cTable.Y_COORD.ToString(); //14, LOC_Y
|
|
table[15] = cTable.WIDTH.ToString(); //15, WIDTH
|
|
table[16] = cTable.HEIGHT.ToString(); //16, HGT
|
|
table[17] = cTable.TABLE_DISP_FLAG; //17, DISP_DIV (사용안함, 2:테이블명 고정)
|
|
table[18] = ""; //18, SEAT_CNT (사용안함)
|
|
table[19] = ""; //19, SEAT_CNT_DISP_DIV (사용안함)
|
|
table[20] = ""; //20, OPERATE_DIV
|
|
table[21] = ""; //21, OPERATE_FLOOR_CD
|
|
table[22] = ""; //22, OPERATE_TBL_NO
|
|
table[23] = ""; //23, ORD_CMPT_COLOR
|
|
table[24] = ""; //24, PAY_CMPT_COLOR
|
|
table[25] = ""; //25, FILLER_1
|
|
table[26] = ""; //26, FILLER_2
|
|
table[27] = ""; //27, FILLER_3
|
|
table[28] = ""; //28, FILLER_4
|
|
table[29] = ""; //29, FILLER_5
|
|
table[30] = PosConst.MST_USE_YN.YES; ; //30, USE_YN
|
|
table[31] = m_cPosStatus.Base.CashierNo; //31, REG_USER_ID
|
|
table[32] = cTable.REG_DT; //32, REG_DATE
|
|
table[33] = m_cPosStatus.Base.CashierNo; //33, UPD_USER_ID
|
|
table[34] = cTable.UPD_DT; //34, UPD_DATE
|
|
|
|
string rowData = string.Join(COL_SPLIT, table);
|
|
lstData.Add(rowData);
|
|
}
|
|
#endregion
|
|
|
|
// 전송데이터
|
|
string dataList = string.Join(ROW_SPLIT, lstData.ToArray());
|
|
|
|
#region ### 디버깅 모드
|
|
if (m_cPosStatus.Base.OlePosPrinterModel == "99")
|
|
{
|
|
string logFile = BaseCom.NxLogPath + "TableMasterBackup.log";
|
|
CmUtil.FileDelete(logFile);
|
|
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(logFile))
|
|
{
|
|
sw.WriteLine(dataList);
|
|
sw.WriteLine("");
|
|
|
|
for (var i = 0; i < lstData.Count; i++)
|
|
{
|
|
sw.WriteLine(lstData[i]);
|
|
}
|
|
sw.Flush();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
// 층/테이블 마스터 전송
|
|
Hashtable htSendData = new Hashtable();
|
|
Hashtable htRecvData = new Hashtable();
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.POS_TABLE_MST_INQ);
|
|
|
|
// Mod, 2017.03.13, 복합매장대응
|
|
//htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo);
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.STOR_CD, storeCode);
|
|
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.INQ_DIV, "1");
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.DATA_LIST, dataList);
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.RES_CD, "");
|
|
ret = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.BizInqPort, 10000, htSendData, ref htRecvData, false);
|
|
if (ret != UserCom.RST_OK)
|
|
{
|
|
retValue = ret;
|
|
return retValue;
|
|
}
|
|
ret = htRecvData[Column.IQ_POS_TABLE_MST_INQ.DATA.RES_CD].ToString().Trim();
|
|
if (ret != "00")
|
|
{
|
|
return retValue = UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0520)
|
|
+ "\n(Server error code=" + ret + ")";
|
|
}
|
|
|
|
return retValue = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR
|
|
, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name
|
|
, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()"
|
|
, "Exception." + ex.Message);
|
|
return retValue = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
finally
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS
|
|
, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name
|
|
, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()"
|
|
, "POS Table Master Backup End => " + retValue);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 층/테이블 마스터 복원 (from server)
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string TableMasterRestore()
|
|
{
|
|
string retValue = UserCom.RST_ERR;
|
|
|
|
const char COL_SPLIT = '|';
|
|
const string ROW_SPLIT = "#~";
|
|
|
|
try
|
|
{
|
|
string ret = string.Empty;
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS
|
|
, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name
|
|
, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()"
|
|
, "POS Table Master Restore Start ");
|
|
|
|
// 층/테이블 마스터 요청
|
|
Hashtable htSendData = new Hashtable();
|
|
Hashtable htRecvData = new Hashtable();
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.POS_TABLE_MST_INQ);
|
|
|
|
// Mod, 2017.03.13, 복합매장대응
|
|
//htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.STOR_CD, m_cPosStatus.Base.StoreNo);
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.STOR_CD, string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNo) ? m_cPosStatus.Base.StoreNo
|
|
: m_cPosStatus.Base.SubShopNo);
|
|
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.INQ_DIV, "2");
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.DATA_LIST, string.Empty);
|
|
htSendData.Add(Column.IQ_POS_TABLE_MST_INQ.DATA.RES_CD, "");
|
|
ret = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.BizInqPort, 10000, htSendData, ref htRecvData, false);
|
|
if (ret != UserCom.RST_OK)
|
|
{
|
|
// 서버통신 실패
|
|
return retValue = ret;
|
|
}
|
|
ret = htRecvData[Column.IQ_POS_TABLE_MST_INQ.DATA.RES_CD].ToString().Trim();
|
|
if (ret != "00")
|
|
{
|
|
retValue = UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0522)
|
|
+ "\n(Server error code=" + ret + ")";
|
|
return retValue;
|
|
}
|
|
string dataList = htRecvData[Column.IQ_POS_TABLE_MST_INQ.DATA.DATA_LIST].ToString();
|
|
if (string.IsNullOrWhiteSpace(dataList))
|
|
{
|
|
retValue = UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0522) + "\n(No Data [1])";
|
|
return retValue;
|
|
}
|
|
|
|
// 층/테이블 마스터 복원 쿼리
|
|
List<string> query = new List<string>();
|
|
query.Add(string.Format("DELETE FROM POSMST..MST_FLOOR WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' ", m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo));
|
|
query.Add(string.Format("DELETE FROM POSMST..MST_TBL WHERE CMP_CD = '{0}' AND STOR_CD = '{1}' ", m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo));
|
|
|
|
string[] rows = dataList.Split(new string[] { ROW_SPLIT }, StringSplitOptions.None);
|
|
if (rows.Length == 0)
|
|
{
|
|
retValue = UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0522) + "\n(No Data [2])";
|
|
return retValue;
|
|
}
|
|
|
|
#region ### 디버깅 모드
|
|
if (m_cPosStatus.Base.OlePosPrinterModel == "99")
|
|
{
|
|
string logFile = BaseCom.NxLogPath + "TableMasterRestore.log";
|
|
CmUtil.FileDelete(logFile);
|
|
|
|
using (System.IO.StreamWriter sw = new System.IO.StreamWriter(logFile))
|
|
{
|
|
sw.WriteLine(dataList);
|
|
sw.WriteLine("");
|
|
|
|
for (var i = 0; i < rows.Length; i++)
|
|
{
|
|
sw.WriteLine(rows[i]);
|
|
}
|
|
sw.Flush();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
for (var i = 0; i < rows.Length; i++)
|
|
{
|
|
string sql = string.Empty;
|
|
string[] data = rows[i].Split(COL_SPLIT);
|
|
|
|
switch (data[0])
|
|
{
|
|
case "01": // Floor Master
|
|
if (data.Length != 15) return retValue = UserCom.RST_ERR
|
|
+ MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0522)
|
|
+ "\n(Floor master format error)";
|
|
Column.MST_FLOOR.FLOOR_DATA cFloor = new Column.MST_FLOOR.FLOOR_DATA();
|
|
cFloor.FLOOR_CD = data[3].Trim();
|
|
cFloor.FLOOR_NM = data[4].Trim();
|
|
cFloor.REG_DT = data[12].Trim();
|
|
cFloor.UPD_DT = data[14].Trim();
|
|
cFloor.STATUS = PosConst.DB_ROW_STATUS.RESTORE;
|
|
|
|
sql = this.GetQueryFloorMaster(cFloor);
|
|
break;
|
|
case "02": // Table Master
|
|
if (data.Length != 35) return retValue = UserCom.RST_ERR
|
|
+ MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0522)
|
|
+ "\n(Table master format error)";
|
|
Column.MST_TABLE.TABLE_DATA cTable = new Column.MST_TABLE.TABLE_DATA();
|
|
cTable.FLOOR_CD = data[3].Trim();
|
|
cTable.TABLE_NO = data[4].Trim();
|
|
cTable.TABLE_NM = data[5].Trim();
|
|
cTable.FONT_NM = data[11].Trim();
|
|
cTable.FONT_SIZE = CmUtil.IntParse(data[12]);
|
|
cTable.X_COORD = CmUtil.IntParse(data[13]);
|
|
cTable.Y_COORD = CmUtil.IntParse(data[14]);
|
|
cTable.WIDTH = CmUtil.IntParse(data[15]);
|
|
cTable.HEIGHT = CmUtil.IntParse(data[16]);
|
|
cTable.TABLE_DISP_FLAG = data[17].Trim();
|
|
cTable.REG_DT = data[32].Trim();
|
|
cTable.UPD_DT = data[32].Trim();
|
|
cTable.STATUS = PosConst.DB_ROW_STATUS.RESTORE;
|
|
|
|
sql = this.GetQueryTableMaster(cTable);
|
|
break;
|
|
default:
|
|
return retValue = UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0522)
|
|
+ "\n(Master delimiter Code format error)";
|
|
}
|
|
|
|
if (string.IsNullOrWhiteSpace(sql))
|
|
{
|
|
return retValue = UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0522)
|
|
+ "\n(Local Database query statement Error)";
|
|
}
|
|
|
|
query.Add(sql);
|
|
}
|
|
|
|
// return -> 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러, -4:적용된 Row 없음
|
|
int dbRet = m_cSqlDbService.DBExecuteNonQuery(query.ToArray(), true);
|
|
if (dbRet != UserCom.OK)
|
|
{
|
|
return UserCom.RST_ERR + MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0522)
|
|
+ "\n(Local Database save error)";
|
|
}
|
|
|
|
return retValue = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return retValue = UserCom.RST_ERR + ex.Message;
|
|
}
|
|
finally
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS
|
|
, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name
|
|
, System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()"
|
|
, "POS Table Master Restore End => " + retValue);
|
|
}
|
|
}
|
|
|
|
|
|
private string ConvertDBStr(string str)
|
|
{
|
|
return str.Replace("'", "''");
|
|
}
|
|
|
|
/// <summary>
|
|
/// 테이블 합석/이동/메뉴이동 후 주문내역서 출력 처리
|
|
/// </summary>
|
|
/// <param name="floorCd"></param>
|
|
/// <param name="tableNo"></param>
|
|
/// <returns></returns>
|
|
private string ExecuteOrderBillReceipt(string floorCd, string tableNo)
|
|
{
|
|
try
|
|
{
|
|
var ret = UserCom.RST_ERR;
|
|
var floorNm = floorCd;
|
|
var tableNm = tableNo;
|
|
DataTable dt = null;
|
|
if (SelectFloorAndTableName(floorCd, tableNo, out dt) == UserCom.RST_OK)
|
|
{
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
floorNm = CmUtil.GetDataRowStr(dt.Rows[0], "FLOOR_NM");
|
|
tableNo = CmUtil.GetDataRowStr(dt.Rows[0], "TBL_NM");
|
|
}
|
|
}
|
|
|
|
// 거래 초기화
|
|
m_cDataSrv.TranComplete();
|
|
m_cTrnStatus.Head.OrderFlag = PosConst.ORDER_TYPE.NORMAL;
|
|
|
|
// 층 및 테이블 정보 설정
|
|
m_cTrnStatus.Head.FloorCd = m_cPosStatus.Sale.SelectFloorCd = floorCd;
|
|
m_cTrnStatus.Head.TableNo = m_cPosStatus.Sale.SelectTableNo = tableNo;
|
|
m_cTrnStatus.Head.FloorNm = m_cPosStatus.Sale.SelectFloorNm = floorNm;
|
|
m_cTrnStatus.Head.TableNm = m_cPosStatus.Sale.SelectTableNm = tableNm;
|
|
m_cPosStatus.Sale.TableInfo = string.Empty;
|
|
m_cPosStatus.Sale.EtcOperateMode = PosConst.ETC_OPERATION_MODE.NORMAL;
|
|
|
|
// 주문데이터 로드
|
|
ret = this.SelectMenuOrder();
|
|
if (ret != UserCom.RST_OK) return ret;
|
|
|
|
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
|
|
if (aSaleItem.Count == 0) return UserCom.RST_IGNORE;
|
|
|
|
m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;
|
|
|
|
// 주문 내역서 출력 처리
|
|
ISaleCompleteUs cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
|
|
ret = cSaleComplete.ExecuteOrderBillReceipt();
|
|
|
|
return UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return UserCom.RST_ERR + ex.Message;
|
|
}
|
|
finally
|
|
{
|
|
// 판매부가정보 초기화
|
|
m_cPosStatus.Sale.TableInfo = string.Empty;
|
|
m_cPosStatus.Sale.EtcOperateMode = PosConst.ETC_OPERATION_MODE.NORMAL;
|
|
m_cPosStatus.Sale.SelectFloorCd = string.Empty;
|
|
m_cPosStatus.Sale.SelectTableNo = string.Empty;
|
|
m_cPosStatus.Sale.SelectFloorNm = string.Empty;
|
|
m_cPosStatus.Sale.SelectTableNm = string.Empty;
|
|
|
|
// 거래 초기화
|
|
m_cDataSrv.TranComplete();
|
|
m_cTrnStatus.Head.OrderFlag = PosConst.ORDER_TYPE.NORMAL;
|
|
}
|
|
}
|
|
|
|
public int GetOrderDataCount(string floorCd = "", string tableNo = "")
|
|
{
|
|
try
|
|
{
|
|
DataTable dtData = null;
|
|
var sql = "SELECT FLOOR_CD, TBL_NO, COUNT(*) ORDCNT FROM POSMST..MST_ORD \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + ItemConst.TRAINING_FLAG.TRAINING_NO + "' \n"
|
|
+ " AND FLOOR_CD LIKE '" + floorCd + "%' \n"
|
|
+ " AND TBL_NO LIKE '" + tableNo + "%' \n"
|
|
+ " GROUP BY FLOOR_CD, TBL_NO \n"
|
|
;
|
|
if (m_cSqlDbService.DBSelect(sql, out dtData) != UserCom.OK) return 0;
|
|
if (dtData == null || dtData.Rows.Count == 0) return 0;
|
|
|
|
var cnt = dtData.Rows.Count;
|
|
return cnt;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 주문번호 자동 채번 (후불POS 전용)
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
public string GetOrderNoForDb()
|
|
{
|
|
int orderNo = 1;
|
|
try
|
|
{
|
|
DataTable dtData = null;
|
|
var subShopNo = string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNo)
|
|
? m_cPosStatus.Base.StoreNo
|
|
: m_cPosStatus.Base.SubShopNo;
|
|
var sql = "UPDATE POSMST..MST_ORD_SEQ \n"
|
|
+ " SET ORDER_NO = ORDER_NO + 1 \n"
|
|
+ " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \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 = '" + subShopNo + "' \n"
|
|
//#20171026 복합매장 메인포스가 아닌 주문포스인 경우 자기POS번호에 설정된 IP로 메인포스 IP 설정 end
|
|
+ " AND SALE_DATE = '" + m_cPosStatus.Base.SaleDate + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n"
|
|
+ "IF @@ROWCOUNT = 0 \n"
|
|
+ "INSERT INTO POSMST..MST_ORD_SEQ ( \n"
|
|
+ " CMP_CD, STOR_CD, SUB_STOR_CD, SALE_DATE, TRAIN_MODE_YN, ORDER_NO, REG_DT, UPD_DT \n"
|
|
+ " ) VALUES ( \n "
|
|
+ " '" + m_cPosStatus.Base.CmpCd + "' \n" // @cmp_cd
|
|
+ ",'" + m_cPosStatus.Base.StoreNo + "' \n" // @stor_cd
|
|
//#20171026 복합매장 메인포스가 아닌 주문포스인 경우 자기POS번호에 설정된 IP로 메인포스 IP 설정 start
|
|
//기존
|
|
//+ ",'" + subShopNo + "' \n" // @sub_stor_cd
|
|
//변경
|
|
+ ",'" + m_cPosStatus.Base.StoreNo + "' \n" // @stor_cd
|
|
//#20171026 복합매장 메인포스가 아닌 주문포스인 경우 자기POS번호에 설정된 IP로 메인포스 IP 설정 end
|
|
+ ",'" + m_cPosStatus.Base.SaleDate + "' \n" // @sale_date
|
|
+ ",'" + m_cPosStatus.Base.TrainingFlag + "' \n"
|
|
+ ", 1 \n" // @order_id
|
|
+ ",'" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n" // @reg_dt
|
|
+ ",'" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' \n" // @upd_dt
|
|
+ " ) \n\n"
|
|
+ "SELECT ISNULL(MAX(ORDER_NO), 1) AS ORDER_NO \n"
|
|
+ " FROM 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 = '" + subShopNo + "' \n"
|
|
//#20171026 복합매장 메인포스가 아닌 주문포스인 경우 자기POS번호에 설정된 IP로 메인포스 IP 설정 end
|
|
+ " AND SALE_DATE = '" + m_cPosStatus.Base.SaleDate + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n"
|
|
;
|
|
if (m_cSqlDbService.DBSelect(sql, out dtData) == UserCom.OK)
|
|
{
|
|
orderNo = CmUtil.GetDataRowInt(dtData.Rows[0], "ORDER_NO");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
m_cSqlDbService.Rollback();
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
orderNo = 1;
|
|
}
|
|
return string.Format("{0:D5}", orderNo);
|
|
}
|
|
|
|
public string GetOrderSeq(string floorCd, string tableNo)
|
|
{
|
|
int orderSeq = 1;
|
|
try
|
|
{
|
|
// SELECT ISNULL(MAX(CONVERT(int,ORDER_NO)),0)
|
|
var sql = "SELECT ISNULL(MAX(CONVERT(INT, FILLER3)), 0) + 1 AS ORDER_SEQ \n"
|
|
+ " FROM MST_ORD \n"
|
|
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
|
|
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
|
|
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n"
|
|
+ " AND ORD_DIV = '" + m_cTrnStatus.Head.OrderFlag + "' \n"
|
|
+ " AND FLOOR_CD = '" + floorCd + "' \n"
|
|
+ " AND TBL_NO = '" + tableNo + "' \n"
|
|
+ " AND ISNUMERIC(FILLER3) = 1 \n"
|
|
;
|
|
DataTable dtData = null;
|
|
if (m_cSqlDbService.DBSelect(sql, out dtData) == UserCom.OK)
|
|
{
|
|
orderSeq = CmUtil.GetDataRowInt(dtData.Rows[0], "ORDER_SEQ");
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_ERROR,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"Exception." + ex.Message);
|
|
orderSeq = 1;
|
|
}
|
|
return string.Format("{0:D2}", orderSeq);
|
|
}
|
|
}
|
|
}
|