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

1515 lines
82 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.Common;
using Cosmos.CommonManager;
using Cosmos.ServiceProvider;
namespace Cosmos.Service
{
/// <summary>
/// 주문서-영수증프린터 출력
/// </summary>
class PosReceiptOrderSheet : PosReceiptBase, IServiceUs
{
/// <summary>
/// 생성자
/// </summary>
public PosReceiptOrderSheet()
{
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
}
/// <summary>
///
/// </summary>
/// <param name="aParam">
/// "ORDER_REPRINT" : 주방프린터 오류시 영수증프린터로 재출력처리 => 8
/// "ORDER_SHEET" : 주방프린터와 영수증프린터가 동일장비 일때 => 7
/// "CANCEL_BILLPRT": 영수증프리터 재출력 취소 (다시 주방프린터로 재시도)
/// </param>
/// <returns></returns>
public string Execute(string[] aParam)
{
// 주방장치 출력여부 확인
if (PosMstManager.GetPosOption(POS_OPTION.OPT506) != "1") return UserCom.RST_OK;
// 영수증프린터 사용여부 확인
if (m_cDevStatus.Printer.UseYn == false) return UserCom.RST_OK;
// Mod, 2017.04.10, 주문포스도 주방출력 처리 한다.
// KPS 데몬실행여부 확인
//if (m_cPosStatus.Base.PosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && m_cPosStatus.Base.PosCommunicationType != PosConst.MAIN_POS_DIV.MAIN_POS)
// return UserCom.RST_OK;
if (aParam != null && aParam.Length > 0 && aParam[0] == "ORDER_REPRINT")
{
return this.ExecutePrint("8");
}
else if (aParam != null && aParam.Length > 0 && aParam[0] == "ORDER_SHEET")
{
return this.ExecutePrint("7");
}
else if (aParam != null && aParam.Length > 0 && aParam[0] == "CANCEL_BILLPRT")
{
return this.CancelBillPrintStatus();
}
else
{
return UserCom.RST_ERR;
}
}
/// <summary>
/// 합석 - 영수증프린터 출력 => 미사용
/// </summary>
/// <param name="aParam">
/// 0:PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE
///
/// 1:From Floor
/// 2:From Table
/// 3:To Floor
/// 4:To Table
/// </param>
/// <returns></returns>
private string ExecutePrintTableAdd(string[] aParam)
{
try
{
if (aParam[0] != PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE) return UserCom.RST_ERR;
// 프린터 버퍼 초기화
base.PrintBufClear();
// 합석정보 생성
KPSOrderMessage cKPSOrderMsg = new KPSOrderMessage();
cKPSOrderMsg.sTrainMode = m_cPosStatus.Base.TrainingFlag;
cKPSOrderMsg.sOrderType = PosConst.ORDER_TYPE.NORMAL;
cKPSOrderMsg.sFloorCd = aParam[1]; // From Floor
cKPSOrderMsg.sTableNo = aParam[2]; // From Table
cKPSOrderMsg.nSeq = 1;
cKPSOrderMsg.sSubShopCd = string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNo)
? m_cPosStatus.Base.StoreNo
: m_cPosStatus.Base.SubShopNo;
cKPSOrderMsg.sKtchSysCd = "LocalBillPrinter";
cKPSOrderMsg.sItemCd = string.Empty;
cKPSOrderMsg.sItemNm = string.Empty;
cKPSOrderMsg.sMsgId = PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE;
cKPSOrderMsg.sMsg1 = aParam[3]; // To Floor
cKPSOrderMsg.sMsg2 = aParam[4]; // To Table
cKPSOrderMsg.sMsg3 = string.Empty;
cKPSOrderMsg.sRegDate = m_cPosStatus.Base.SaleDate;
cKPSOrderMsg.sMsgRegTime = DateTime.Now.ToString("HHmmss");
cKPSOrderMsg.sSendYn = "0";
cKPSOrderMsg.sResend = "0";
Hashtable htKPSOderMessageItme = new Hashtable();
htKPSOderMessageItme.Add(htKPSOderMessageItme.Count, cKPSOrderMsg);
MakeOrderAddMessage(1, ref htKPSOderMessageItme);
// 프린터 출력
bool isSuccess = base.PrintExecute(false, true, false);
return isSuccess ? UserCom.RST_OK : UserCom.RST_ERR;
}
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;
}
}
/// <summary>
/// 합석 - 영수증프린터 출력 => 미사용
/// </summary>
/// <param name="aParam">
/// 0:PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE
/// 1:From Floor
/// 2:From Table
/// 3:To Floor
/// 4:To Table
/// 5:CrossYN
/// </param>
/// <returns></returns>
private string ExecutePrintTableMove(string[] aParam)
{
try
{
if (aParam[0] != PosConst.KPS_ORD_MSG_ID.TABLE_MOVE) return UserCom.RST_ERR;
// 프린터 버퍼 초기화
base.PrintBufClear();
Hashtable htKPSOderMessageItme = new Hashtable();
// 합석정보 생성 (1st)
KPSOrderMessage cOrdMsg1st = new KPSOrderMessage();
cOrdMsg1st.sTrainMode = m_cPosStatus.Base.TrainingFlag;
cOrdMsg1st.sOrderType = PosConst.ORDER_TYPE.NORMAL;
cOrdMsg1st.sFloorCd = aParam[1]; // From Floor
cOrdMsg1st.sTableNo = aParam[2]; // From Table
cOrdMsg1st.nSeq = 1;
cOrdMsg1st.sSubShopCd = string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNo)
? m_cPosStatus.Base.StoreNo
: m_cPosStatus.Base.SubShopNo;
cOrdMsg1st.sKtchSysCd = "LocalBillPrinter";
cOrdMsg1st.sItemCd = string.Empty;
cOrdMsg1st.sItemNm = string.Empty;
cOrdMsg1st.sMsgId = PosConst.KPS_ORD_MSG_ID.TABLE_MOVE;
cOrdMsg1st.sMsg1 = aParam[3]; // To Floor
cOrdMsg1st.sMsg2 = aParam[4]; // To Table
cOrdMsg1st.sMsg3 = string.Empty;
cOrdMsg1st.sRegDate = m_cPosStatus.Base.SaleDate;
cOrdMsg1st.sMsgRegTime = DateTime.Now.ToString("HHmmss");
cOrdMsg1st.sSendYn = "0";
cOrdMsg1st.sResend = "0";
htKPSOderMessageItme.Add(htKPSOderMessageItme.Count, cOrdMsg1st);
// 합석정보 생성 (2nd)
if (string.IsNullOrWhiteSpace(aParam[5]))
{
KPSOrderMessage cOrdMsg2nd = new KPSOrderMessage();
cOrdMsg2nd.sTrainMode = m_cPosStatus.Base.TrainingFlag;
cOrdMsg2nd.sOrderType = PosConst.ORDER_TYPE.NORMAL;
cOrdMsg2nd.sFloorCd = aParam[3]; // From Floor
cOrdMsg2nd.sTableNo = aParam[4]; // From Table
cOrdMsg2nd.nSeq = 1;
cOrdMsg2nd.sSubShopCd = string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNo)
? m_cPosStatus.Base.StoreNo
: m_cPosStatus.Base.SubShopNo;
cOrdMsg2nd.sKtchSysCd = "LocalBillPrinter";
cOrdMsg2nd.sItemCd = string.Empty;
cOrdMsg2nd.sItemNm = string.Empty;
cOrdMsg2nd.sMsgId = PosConst.KPS_ORD_MSG_ID.TABLE_MOVE;
cOrdMsg2nd.sMsg1 = aParam[1]; // To Floor
cOrdMsg2nd.sMsg2 = aParam[2]; // To Table
cOrdMsg2nd.sMsg3 = string.Empty;
cOrdMsg2nd.sRegDate = m_cPosStatus.Base.SaleDate;
cOrdMsg1st.sMsgRegTime = DateTime.Now.ToString("HHmmss");
cOrdMsg2nd.sSendYn = "0";
cOrdMsg2nd.sResend = "0";
}
MakeOrderAddMessage(1, ref htKPSOderMessageItme);
// 프린터 출력
bool isSuccess = base.PrintExecute(false, true, false);
return isSuccess ? UserCom.RST_OK : UserCom.RST_ERR;
}
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;
}
}
/// <summary>
/// 주문서-영수증프린트 출력
/// </summary>
/// <param name="sendType">
///
/// </param>
/// <returns></returns>
private string ExecutePrint(string sendType)
{
try
{
// 프린터 버퍼 초기화
base.PrintBufClear();
// 주방주문서 생성
Hashtable htKPSOrderSheetItem = new Hashtable();
GetKPSOrderSheetItem(sendType, ref htKPSOrderSheetItem);
if (htKPSOrderSheetItem.Count > 0)
{
for (var i = 0; i < htKPSOrderSheetItem.Count; i++)
{
Hashtable htKPSOrderSheetTemp = (Hashtable)htKPSOrderSheetItem[i];
if (htKPSOrderSheetTemp.Count == 0) continue;
KPSItem cKPSItem = (KPSItem)htKPSOrderSheetTemp[0];
var prtCnt = CmUtil.IntParse(cKPSItem.sFiller1);
if (prtCnt == 0) prtCnt = 1;
MakeOrderSheet(prtCnt, ref htKPSOrderSheetTemp);
}
}
// 주방 부가메시지 생성
Hashtable htKPSOrderMessageItem = new Hashtable();
GetKPSOrderMessageItem(sendType, ref htKPSOrderMessageItem);
if (htKPSOrderMessageItem.Count > 0)
{
for (var i = 0; i < htKPSOrderMessageItem.Count; i++)
{
Hashtable htKPSOrderMessageTemp = (Hashtable)htKPSOrderMessageItem[i];
if (htKPSOrderMessageTemp.Count == 0) continue;
KPSOrderMessage cKPSMsgItem = (KPSOrderMessage)htKPSOrderMessageTemp[0];
var prtCnt = cKPSMsgItem.printCount;
if (prtCnt == 0) prtCnt = 1;
MakeOrderAddMessage(prtCnt, ref htKPSOrderMessageTemp);
}
}
// 프린터 출력 영수증 프린터에 출력되는 현상 제거(2019.05.08)
bool isSuccess = base.PrintExecute(false, true, false);
// 출력 성공시 출력데이터 업데이트 (성공여부)
UpdatePrintStatus(isSuccess, htKPSOrderSheetItem, htKPSOrderMessageItem);
return isSuccess ? UserCom.RST_OK : UserCom.RST_ERR;
}
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;
}
}
/// <summary>
/// 출력대상 주방주문서 정보 조회
/// </summary>
/// <param name="sendType"></param>
/// <param name="htKPSOrderSheetItem"></param>
/// <returns></returns>
private void GetKPSOrderSheetItem(string sendType, ref Hashtable htKPSOrderSheetItem)
{
try
{
DataTable dt = null;
#region ()
//string sql = "SELECT ORD_DIV, FLOOR_CD, TBL_NO, SUB_STOR_CD, KTCH_SYS_CD, SEQ \n"
// + " , ORDER_NO, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM \n"
// + " , SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV \n"
// + " , SEND_YN, RESEND_YN, KTCH_SYS_USE_DIV, KTCH_PRINTER_COMM_PORT, KTCH_PRINTER_COMM_SPEED \n"
// + " , KTCH_PRINTER_OPOS_NM, KTCH_PRINTER_IP, KTCH_PRINTER_PORT, ERROR_CD \n"
// + " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, MSG \n"
// + " FROM POSMST..MST_KPS_ORD_MSG \n"
// + " WHERE SEND_YN = '" + sendType + "' \n"
// + " ORDER BY SUB_STOR_CD, KTCH_SYS_CD, ORD_DIV, FLOOR_CD, TBL_NO, SEQ \n"
// ;
#endregion
#region ()
//string sql = "SELECT TRAIN_MODE_YN, ORD_DIV, FLOOR_CD, TBL_NO, SUB_STOR_CD, KTCH_SYS_CD, SEQ \n"
// + " , ORDER_NO, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM \n"
// + " , SALE_QTY, PACK_DIV, SET_MENU_CD, ORD_TIME, CANCEL_DIV \n"
// + " , SEND_YN, RESEND_YN, KTCH_SYS_USE_DIV, KTCH_PRINTER_COMM_PORT, KTCH_PRINTER_COMM_SPEED \n"
// + " , KTCH_PRINTER_OPOS_NM, KTCH_PRINTER_IP, KTCH_PRINTER_PORT, ERROR_CD \n"
// + " , FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, MSG \n"
// + " , KTCH_MSG \n"
// + " , ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자
// + " FROM POSMST..MST_KPS_ORD_MSG \n"
// + " WHERE SEND_YN = '" + sendType + "' \n"
// + " ORDER BY TRAIN_MODE_YN, SUB_STOR_CD, KTCH_SYS_CD, ORD_DIV, FLOOR_CD, TBL_NO, SEQ \n"
// ;
#endregion
var sql = "SELECT A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SUB_STOR_CD, A.KTCH_SYS_CD, A.SEQ \n"
+ " , A.ORDER_NO, A.POS_TYPE, A.ITEM_CD, A.ITEM_DIV, A.SHTCUT_ITEMNM \n"
+ " , A.SALE_QTY, A.PACK_DIV, A.SET_MENU_CD, A.ORD_TIME, A.CANCEL_DIV \n"
+ " , A.SEND_YN, A.RESEND_YN, A.KTCH_SYS_USE_DIV, A.KTCH_PRINTER_COMM_PORT, A.KTCH_PRINTER_COMM_SPEED \n"
+ " , A.KTCH_PRINTER_OPOS_NM, A.KTCH_PRINTER_IP, A.KTCH_PRINTER_PORT, A.ERROR_CD \n"
+ " , A.FILLER1, A.FILLER2, A.FILLER3, A.FILLER4, A.FILLER5, A.MSG \n"
+ " , A.KTCH_MSG \n"
+ " , B.POS_NO \n" // Add, 2017.06.13, POS별 주방프린터 설정
+ " , A.ORD_PIC_NM \n" // Add, 2017.03.28, 주문담당자
+ " , B.KTCH_SYS_NM \n" // Add, 2017.04.06
+ " , A.ORD_POS_NO \n" // Add, 2017.04.10
+ " , C.ITEM_INFO \n" // Add, 2017.09.06 레시피 추가
+ " FROM POSMST..MST_KPS_ORD_MSG A \n"
+ " LEFT JOIN POSMST..MST_KTCH_DEVICE B WITH(NOLOCK) \n"
+ " ON A.SUB_STOR_CD = B.SUB_STOR_CD \n"
+ " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n"
+ " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
+ " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
+ " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" // Add, 2017.06.12 POS별 주방프린터 설정
+ " LEFT JOIN POSMST..MST_KTCH_ITEM_INFO C WITH(NOLOCK) \n"
+ " ON A.ITEM_CD = C.ITEM_CD \n"
+ " AND C.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n"
+ " WHERE A.SEND_YN = '" + sendType + "' \n"
+ " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" // Add, 2017.04.10
//#20171102 start
//#20171103 주방영수증 출력시 부가메뉴가 위로 출력되는 증상 start
//기존
//+ " ORDER BY A.TRAIN_MODE_YN, A.SUB_STOR_CD, A.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ DESC \n";
//변경
+ " ORDER BY A.TRAIN_MODE_YN, A.SUB_STOR_CD, A.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ \n";
//#20171103 주방영수증 출력시 부가메뉴가 위로 출력되는 증상 end
//1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음
if (m_cSqlDbService.DBSelect(sql, out dt) != UserCom.OK) return;
string itemKey = string.Empty;
Hashtable htKPSOrderSheetTemp = new Hashtable();
DataRow[] arRows = null;
arRows = dt.Select("POS_NO = '" + m_cPosStatus.Base.PosNo + "'");
if (arRows.Length == 0)
arRows = dt.Select("POS_NO = '00'");
//foreach (DataRow dr in dt.Rows)
foreach (DataRow dr in arRows)
{
KPSItem cKPSItem = new KPSItem();
cKPSItem.sTrainMode = CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN"); // Add, 2017.03.05, 연습모드
cKPSItem.sOrderType = CmUtil.GetDataRowStr(dr, "ORD_DIV");
cKPSItem.sFloorCd = CmUtil.GetDataRowStr(dr, "FLOOR_CD");
cKPSItem.sTableNo = CmUtil.GetDataRowStr(dr, "TBL_NO");
cKPSItem.sSubShopCd = CmUtil.GetDataRowStr(dr, "SUB_STOR_CD"); // Add, 2017.02.07
cKPSItem.sKtchSysCd = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD");
cKPSItem.nSeq = CmUtil.GetDataRowInt(dr, "SEQ");
cKPSItem.sOrderNo = CmUtil.GetDataRowStr(dr, "ORDER_NO");
cKPSItem.sPosType = CmUtil.GetDataRowStr(dr, "POS_TYPE");
cKPSItem.sItemCd = CmUtil.GetDataRowStr(dr, "ITEM_CD");
cKPSItem.sItemDiv = CmUtil.GetDataRowStr(dr, "ITEM_DIV");
cKPSItem.sItemNm = CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM");
cKPSItem.nQty = CmUtil.GetDataRowInt(dr, "SALE_QTY");
cKPSItem.sPackDiv = CmUtil.GetDataRowStr(dr, "PACK_DIV");
cKPSItem.sSetMenuCd = CmUtil.GetDataRowStr(dr, "SET_MENU_CD");
cKPSItem.sOrdTime = CmUtil.GetDataRowStr(dr, "ORD_TIME");
cKPSItem.sCancelDiv = CmUtil.GetDataRowStr(dr, "CANCEL_DIV");
cKPSItem.sKtchSysUseDiv = CmUtil.GetDataRowStr(dr, "KTCH_SYS_USE_DIV");
cKPSItem.nKpsComPort = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_PORT");
cKPSItem.nKpsComBaudrate = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_SPEED");
cKPSItem.sKpsOposName = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_OPOS_NM");
cKPSItem.sKpsIp = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_IP");
cKPSItem.sKpsPort = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_PORT");
cKPSItem.sErrorCd = CmUtil.GetDataRowStr(dr, "ERROR_CD");
cKPSItem.sFiller1 = CmUtil.GetDataRowStr(dr, "FILLER1");
cKPSItem.sFiller2 = CmUtil.GetDataRowStr(dr, "FILLER2");
cKPSItem.sFiller3 = CmUtil.GetDataRowStr(dr, "FILLER3");
cKPSItem.sFiller4 = CmUtil.GetDataRowStr(dr, "FILLER4");
cKPSItem.sFiller5 = CmUtil.GetDataRowStr(dr, "FILLER5");
//cKPSItem.sKtchMemo = CmUtil.GetDataRowStr(dr, "MSG");
cKPSItem.sKtchMemo = CmUtil.GetDataRowStr(dr, "KTCH_MSG"); // Mod, 2017.03.21
cKPSItem.sItemMemo = CmUtil.GetDataRowStr(dr, "MSG"); // Add, 2017.03.21
cKPSItem.sOrdPicNm = CmUtil.GetDataRowStr(dr, "ORD_PIC_NM"); // Add, 2017.03.28, 주문담당자
cKPSItem.sOrdPosNo = CmUtil.GetDataRowStr(dr, "ORD_POS_NO"); // Add, 2017.04.10
cKPSItem.sSendYn = CmUtil.GetDataRowStr(dr, "SEND_YN");
cKPSItem.sResendYn = sendType == "8" ? "1" : CmUtil.GetDataRowStr(dr, "RESEND_YN");
cKPSItem.sKtchSysNm = CmUtil.GetDataRowStr(dr, "KTCH_SYS_NM"); // Add, 2017.04.06
cKPSItem.sRecipe = CmUtil.GetDataRowStr(dr, "ITEM_INFO"); // Add 2017.09.14
var checkKey = cKPSItem.sTrainMode + cKPSItem.sSubShopCd + cKPSItem.sKtchSysCd + cKPSItem.sFloorCd + cKPSItem.sTableNo;
if (itemKey != checkKey)
{
if (htKPSOrderSheetTemp.Count != 0)
{
htKPSOrderSheetItem.Add(htKPSOrderSheetItem.Count, htKPSOrderSheetTemp);
}
itemKey = checkKey;
htKPSOrderSheetTemp = new Hashtable();
}
htKPSOrderSheetTemp.Add(htKPSOrderSheetTemp.Count, cKPSItem);
}
if (htKPSOrderSheetTemp.Count != 0)
{
htKPSOrderSheetItem.Add(htKPSOrderSheetItem.Count, htKPSOrderSheetTemp);
}
}
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="sendType"></param>
/// <param name="htKPSOderMessageItme"></param>
private void GetKPSOrderMessageItem(string sendType, ref Hashtable htKPSOderMessageItme)
{
try
{
DataTable dt = null;
#region ()
//string sql = " SELECT A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.SUB_STOR_CD, A.KTCH_SYS_CD \n"
// + " , A.ITEM_CD, A.SHTCUT_ITEMNM, A.MSG_DIV, A.MSG1, A.MSG2 \n"
// + " , A.MSG3, A.MSG_REG_TIME, B.KTCH_SYS_USE_DIV, B.KTCH_PRINTER_COMM_PORT, B.KTCH_PRINTER_COMM_SPEED \n"
// + " , B.KTCH_PRINTER_OPOS_NM, B.KTCH_PRINTER_IP, B.KTCH_PRINTER_PORT, ISNULL(B.PRT_CNT, 1) PRT_CNT, A.REG_DT \n"
// + " , A.SEND_YN, A.RESEND_YN \n"
// + " FROM POSMST..MST_KTCH_ORD_MSG_ADD A \n"
// + " , POSMST..MST_KTCH_DEVICE B \n"
// + " WHERE A.SEND_YN = '" + sendType + "' \n"
// + " AND A.SUB_STOR_CD = B.SUB_STOR_CD \n"
// + " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n"
// + " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
// + " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
// + " AND B.KTCH_SYS_DIV = '1' \n"
// + " AND B.KTCH_SYS_CD <> '99' \n"
// + " ORDER BY A.SUB_STOR_CD, B.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ \n"
// ;
#endregion
string sql = " SELECT A.TRAIN_MODE_YN, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ, A.SUB_STOR_CD, A.KTCH_SYS_CD \n"
+ " , A.ITEM_CD, A.SHTCUT_ITEMNM, A.MSG_DIV, A.MSG1, A.MSG2 \n"
+ " , A.MSG3, A.MSG_REG_TIME, B.KTCH_SYS_USE_DIV, B.KTCH_PRINTER_COMM_PORT, B.KTCH_PRINTER_COMM_SPEED \n"
+ " , B.KTCH_PRINTER_OPOS_NM, B.KTCH_PRINTER_IP, B.KTCH_PRINTER_PORT, ISNULL(B.PRT_CNT, 1) PRT_CNT, A.REG_DT \n"
+ " , A.SEND_YN, A.RESEND_YN \n"
+ " , B.KTCH_SYS_NM \n"
+ " , A.ORD_POS_NO \n"
+ " FROM POSMST..MST_KTCH_ORD_MSG_ADD A \n"
+ " , POSMST..MST_KTCH_DEVICE B WITH(NOLOCK) \n"
+ " WHERE A.SEND_YN = '" + sendType + "' \n"
+ " AND A.SUB_STOR_CD = B.SUB_STOR_CD \n"
+ " AND A.KTCH_SYS_CD = B.KTCH_SYS_CD \n"
+ " AND A.ORD_POS_NO = '" + m_cPosStatus.Base.PosNo + "' \n" // Add, 2017.04.10
+ " AND B.CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
+ " AND B.STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
+ " AND B.USE_YN = '" + PosConst.MST_USE_YN.YES + "' \n" // Add, 2017.06.12 POS별 주방프린터 설정
+ " AND B.KTCH_SYS_DIV = '" + PosConst.KTCH_SYS_DIV.KPS + "' \n"
+ " AND B.KTCH_SYS_CD <> '99' \n"
+ " ORDER BY A.TRAIN_MODE_YN, A.SUB_STOR_CD, B.KTCH_SYS_CD, A.ORD_DIV, A.FLOOR_CD, A.TBL_NO, A.SEQ \n"
;
//1:OK, -1:Connection 정보 에러, -2:SQL 에러, -3:기타 에러, 0:Select 결과 없음
if (m_cSqlDbService.DBSelect(sql, out dt) != UserCom.OK) return;
string itemKey = string.Empty;
Hashtable htKPSOderMessageTemp = new Hashtable();
foreach (DataRow dr in dt.Rows)
{
KPSOrderMessage cKPSOrderMsg = new KPSOrderMessage();
cKPSOrderMsg.sTrainMode = CmUtil.GetDataRowStr(dr, "TRAIN_MODE_YN"); // Add, 2017.03.05, 연습모드
cKPSOrderMsg.sOrderType = CmUtil.GetDataRowStr(dr, "ORD_DIV");
cKPSOrderMsg.sFloorCd = CmUtil.GetDataRowStr(dr, "FLOOR_CD");
cKPSOrderMsg.sTableNo = CmUtil.GetDataRowStr(dr, "TBL_NO");
cKPSOrderMsg.nSeq = CmUtil.GetDataRowInt(dr, "SEQ");
cKPSOrderMsg.sSubShopCd = CmUtil.GetDataRowStr(dr, "SUB_STOR_CD"); // Add, 2017.02.06
cKPSOrderMsg.sKtchSysCd = CmUtil.GetDataRowStr(dr, "KTCH_SYS_CD");
cKPSOrderMsg.sKtchSysNm = CmUtil.GetDataRowStr(dr, "KTCH_SYS_NM"); // Add, 2017.04.07
cKPSOrderMsg.sItemCd = CmUtil.GetDataRowStr(dr, "ITEM_CD");
cKPSOrderMsg.sItemNm = CmUtil.GetDataRowStr(dr, "SHTCUT_ITEMNM");
cKPSOrderMsg.sMsgId = CmUtil.GetDataRowStr(dr, "MSG_DIV");
cKPSOrderMsg.sMsg1 = CmUtil.GetDataRowStr(dr, "MSG1");
cKPSOrderMsg.sMsg2 = CmUtil.GetDataRowStr(dr, "MSG2");
cKPSOrderMsg.sMsg3 = CmUtil.GetDataRowStr(dr, "MSG3");
cKPSOrderMsg.sMsgRegTime = CmUtil.GetDataRowStr(dr, "MSG_REG_TIME");
cKPSOrderMsg.sKtchSysUseDiv = CmUtil.GetDataRowStr(dr, "KTCH_SYS_USE_DIV");
cKPSOrderMsg.nKpsComPort = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_PORT");
cKPSOrderMsg.nKpsComBaudrate = CmUtil.GetDataRowInt(dr, "KTCH_PRINTER_COMM_SPEED");
cKPSOrderMsg.sKpsOposName = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_OPOS_NM");
cKPSOrderMsg.sKpsIp = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_IP");
cKPSOrderMsg.sKpsPort = CmUtil.GetDataRowStr(dr, "KTCH_PRINTER_PORT");
cKPSOrderMsg.sSendYn = CmUtil.GetDataRowStr(dr, "SEND_YN");
cKPSOrderMsg.sResend = sendType == "8" ? "1" : CmUtil.GetDataRowStr(dr, "RESEND_YN");
cKPSOrderMsg.printCount = CmUtil.GetDataRowInt(dr, "PRT_CNT");
if (cKPSOrderMsg.printCount == 0) cKPSOrderMsg.printCount = 1;
var temp = CmUtil.GetDataRowStr(dr, "REG_DT").Trim();
cKPSOrderMsg.sRegDate = temp.Length > 8 ? temp.Substring(0, 8) : m_cPosStatus.Base.SaleDate;
cKPSOrderMsg.sOrdPosNo = CmUtil.GetDataRowStr(dr, "ORD_POS_NO"); // Add, 2017.04.10
//string checkKey = cKPSOrderMsg.sTrainMode + cKPSOrderMsg.sSubShopCd + cKPSOrderMsg.sKtchSysCd + cKPSOrderMsg.sFloorCd + cKPSOrderMsg.sTableNo + cKPSOrderMsg.sMsgId;
var checkKey = string.Empty;
switch (cKPSOrderMsg.sMsgId)
{
case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO:
//case PosConst.KPS_ORD_MSG_ID.FIRE_KEY:
checkKey = cKPSOrderMsg.sTrainMode + cKPSOrderMsg.sSubShopCd + cKPSOrderMsg.sKtchSysCd + cKPSOrderMsg.sFloorCd + cKPSOrderMsg.sTableNo + cKPSOrderMsg.sMsgId + cKPSOrderMsg.sItemCd;
break;
case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: // Add, 2017.03.22
default:
checkKey = cKPSOrderMsg.sTrainMode + cKPSOrderMsg.sSubShopCd + cKPSOrderMsg.sKtchSysCd + cKPSOrderMsg.sFloorCd + cKPSOrderMsg.sTableNo + cKPSOrderMsg.sMsgId;
break;
}
if (itemKey != checkKey)
{
if (htKPSOderMessageTemp.Count != 0)
{
htKPSOderMessageItme.Add(htKPSOderMessageItme.Count, htKPSOderMessageTemp);
}
itemKey = checkKey;
htKPSOderMessageTemp = new Hashtable();
}
htKPSOderMessageTemp.Add(htKPSOderMessageTemp.Count, cKPSOrderMsg);
}
if (htKPSOderMessageTemp.Count != 0)
{
htKPSOderMessageItme.Add(htKPSOderMessageItme.Count, htKPSOderMessageTemp);
}
}
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="prtCount"></param>
/// <param name="htKPSOrderSheetTemp"></param>
private void MakeOrderSheet(int prtCount, ref Hashtable htKPSOrderSheetTemp)
{
try
{
var sPrtID = PosConst.PRT_ITEM.ETC;
var sPrtDat1 = string.Empty;
var sPrtDat2 = string.Empty;
// 반복출력
for (var cnt = 0; cnt < prtCount; cnt++)
{
var itemKey = string.Empty;
var ktchMemo = string.Empty;
var reprtMsg = string.Empty;
var orderNo1 = string.Empty;
var orderNo2 = string.Empty;
for (var i = 0; i < htKPSOrderSheetTemp.Count; i++)
{
KPSItem cKPSItem = (KPSItem)htKPSOrderSheetTemp[i];
if (cKPSItem.sSendYn == "1") continue;
// Mod, 2017.03.03, 연습모드
//var checkKey = cKPSItem.sOrderType + cKPSItem.sFloorCd + cKPSItem.sTableNo;
var checkKey = cKPSItem.sTrainMode + cKPSItem.sOrderType + cKPSItem.sFloorCd + cKPSItem.sTableNo;
if (itemKey != checkKey)
{
//if (sOrgOrderType != "")
if (string.IsNullOrWhiteSpace(itemKey) == false)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_CUT, "");
}
// 원정보 설정
itemKey = checkKey; // Add, 2017.03.03
// 제목
sPrtDat1 = string.Format("<< {0}{1} >>", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0154), cKPSItem.sResendYn != "0" ? " (R)" : "");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BIG, PosConst.PRT_FMT.F103, sPrtDat1);
// 연습모드 // Add, 2017.03.03, 연습모드
if (cKPSItem.sTrainMode == ItemConst.TRAINING_FLAG.TRAINING_YES)
{
sPrtDat1 = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VRB, PosConst.PRT_FMT.F103, sPrtDat1);
}
// 복합매장-서브매장명
if (string.IsNullOrWhiteSpace(m_cPosStatus.Base.SubShopNm) == false)
{
sPrtDat1 = m_cPosStatus.Base.SubShopNm;
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BLD, PosConst.PRT_FMT.F103, sPrtDat1);
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, string.Empty);
// 반복횟수
var prtCnt = prtCount > 1 ? string.Format(" ({0}/{1})", cnt + 1, prtCount) : string.Empty;
// 주문시간
sPrtDat1 = string.Format("{0} : {1} {2} {3}", "주문시간" //MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0155)
, m_cPosStatus.Global.DateToCulture(m_cPosStatus.Base.SaleDate)
, CmUtil.StrToTime(cKPSItem.sOrdTime)
, prtCnt);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sPrtDat1);
// 주문번호
if (cKPSItem.sFiller2 == "2")
{
// 해피오더
sPrtDat1 = string.Format("{0} : {1}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0158), cKPSItem.sOrderNo);
}
//else if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT)
//{
// // 후불
// sPrtDat1 = string.Format("{0} : {1}-{2}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0156), cKPSItem.sFloorCd, cKPSItem.sTableNo);
//}
else
{
sPrtDat1 = string.Format("{0} : {1}", "주문번호", cKPSItem.sOrderNo); //MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0156), cKPSItem.sOrderNo);
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sPrtDat1);
// 주문담당자
if (string.IsNullOrWhiteSpace(cKPSItem.sOrdPicNm) == false)
{
sPrtDat1 = string.Format("{0} : {1}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0189), cKPSItem.sOrdPicNm.Trim());
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sPrtDat1);
}
// 인원
if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT)
{
sPrtDat1 = GetCustInfo(cKPSItem.sTrainMode, cKPSItem.sFloorCd, cKPSItem.sTableNo);
if (string.IsNullOrWhiteSpace(sPrtDat1) == false)
{
sPrtDat1 = string.Format("{0} : {1}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0157), sPrtDat1);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sPrtDat1);
}
}
// 주문번호/테이블
// Mod, 2017.05.08, 주분번호 후불=상단, 선불=하단 출력
sPrtDat1 = string.Empty;
sPrtDat2 = string.Empty;
orderNo1 = string.Empty;
orderNo2 = string.Empty;
if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT)
{
#region ( )
if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && string.IsNullOrWhiteSpace(cKPSItem.sFiller2))
{
sPrtDat1 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0148));
sPrtDat2 = GetFloorAndTableName(cKPSItem.sFloorCd, cKPSItem.sTableNo);
}
else if (string.IsNullOrWhiteSpace(cKPSItem.sOrderNo) == false)
{
sPrtDat1 = string.Format("[ {0} ]", "주문대기번호");// MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0097));
sPrtDat2 = string.Format("{0}", cKPSItem.sOrderNo);
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BLD, PosConst.PRT_FMT.F103, sPrtDat1);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BIG, PosConst.PRT_FMT.F103, sPrtDat2);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "=");
#endregion
}
else
{
#region ( )
if (cKPSItem.sPosType == PosConst.POS_TYPE.DEFERRED_PAYMENT && string.IsNullOrWhiteSpace(cKPSItem.sFiller2))
{
orderNo1 = GetFloorAndTableName(cKPSItem.sFloorCd, cKPSItem.sTableNo);
orderNo2 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0148));
}
else if (string.IsNullOrWhiteSpace(cKPSItem.sOrderNo) == false)
{
orderNo1 = string.Format("{0}", cKPSItem.sOrderNo);
orderNo2 = string.Format("[ {0} ]", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0097));
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "=");
#endregion
}
// 재출력시 주방장치코드/명 출력
if (cKPSItem.sResendYn == "1")
{
reprtMsg = CmUtil.MidH(string.Format("# Kitchen Printer No. [{0}] {1}", cKPSItem.sKtchSysCd.Trim(), cKPSItem.sKtchSysNm.Trim()), 0, 42).Trim();
}
}
// 상품/수량
var sign = cKPSItem.sCancelDiv == "1" ? -1 : 1;
var type = GetAddOrderString(cKPSItem.sFiller3);
var qty = cKPSItem.nQty == 0 ? string.Empty : (sign * cKPSItem.nQty).ToString();
sPrtDat1 = CmUtil.RPadH(cKPSItem.sItemNm, 30) + CmUtil.RPadH(type, 5) + CmUtil.LPadH(qty, 6);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F101, sPrtDat1);
//2017.09.07 레시피 출력
if (cKPSItem.sRecipe.ToString().Trim().Length > 0)
{
string Recipe = cKPSItem.sRecipe.Replace("@", "\r").Replace("$", "\n").ToString();
string[] RecipeData = Recipe.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.None);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
foreach (var dt in RecipeData)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, dt.Trim());
}
}
// Add, 2017.03.21, 상품메모
if (string.IsNullOrWhiteSpace(cKPSItem.sItemMemo) == false)
{
var lst = this.GetParserMemo(cKPSItem.sItemMemo);
foreach (var msg in lst)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + msg.Trim());
}
}
// Add, 2017.04.10, 상품구분라인
var nextIdx = i + 1;
if (nextIdx < htKPSOrderSheetTemp.Count)
{
var NextItemDiv = ((KPSItem)htKPSOrderSheetTemp[nextIdx]).sItemDiv;
switch (NextItemDiv)
{
case ItemConst.PLU_ITEM_DIV.NORMAL:
case ItemConst.PLU_ITEM_DIV.SET_MAIN:
case ItemConst.PLU_ITEM_DIV.SET_DIS:
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
break;
}
}
#region Mod, 2017.04.25,
//// Add, 2017.01.23
//// 주방프린터 수동출력(상품선택) 옵션 처리
//if (PosMstManager.GetPosOption(POS_OPTION.OPT425) == "2")
//{
// ktchMemo = cKPSItem.sKtchMemo;
//}
#endregion
ktchMemo = cKPSItem.sKtchMemo;
}
// Add, 2017.01.23, 수동출력옵션 시 주방메모 출력
if (string.IsNullOrWhiteSpace(ktchMemo) == false)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "=");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BLD, PosConst.PRT_FMT.F101, "Memo:");
var lst = this.GetParserMemo(ktchMemo);
foreach (string msg in lst)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F101, " " + msg.Trim());
}
}
// Add, 2017.04.07
if (string.IsNullOrWhiteSpace(orderNo1) == false)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "=");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BIG, PosConst.PRT_FMT.F103, orderNo1);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BLD, PosConst.PRT_FMT.F103, orderNo2);
}
// 재출력시 주방장치코드/명 출력
if (string.IsNullOrWhiteSpace(reprtMsg) == false)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "=");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BLD, PosConst.PRT_FMT.F101, reprtMsg);
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_CUT, "");
}
}
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="prtCount"></param>
/// <param name="htKPSOrderMessageTemp"></param>
private void MakeOrderAddMessage(int prtCount, ref Hashtable htKPSOrderMessageTemp)
{
try
{
string sPrtID = PosConst.PRT_ITEM.ETC;
string sPrtData = string.Empty;
// 반복출력
for (var cnt = 0; cnt < prtCount; cnt++)
{
var itemKey = string.Empty;
var reprtMsg = string.Empty;
for (var i = 0; i < htKPSOrderMessageTemp.Count; i++)
{
KPSOrderMessage cKPSMessage = (KPSOrderMessage)htKPSOrderMessageTemp[i];
if (cKPSMessage.sSendYn == "1") continue;
string checkKey = cKPSMessage.sTrainMode + cKPSMessage.sOrderType + cKPSMessage.sFloorCd + cKPSMessage.sTableNo + cKPSMessage.sMsgId;
if (itemKey != checkKey)
{
if (string.IsNullOrWhiteSpace(itemKey) == false)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_CUT, "");
}
itemKey = checkKey;
#region ###
string sPrtTitle = this.GetOrderMessageTitle(cKPSMessage.sMsgId);
switch (cKPSMessage.sMsgId)
{
case PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE:
case PosConst.KPS_ORD_MSG_ID.TABLE_MOVE:
case PosConst.KPS_ORD_MSG_ID.MENU_MOVE:
sPrtData = string.Format("[{0}{1}]", sPrtTitle, cKPSMessage.sResend != "0" ? " (R)" : "");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, sPrtData);
// 연습모드 // Add, 2017.03.03, 연습모드
if (cKPSMessage.sTrainMode == ItemConst.TRAINING_FLAG.TRAINING_YES)
{
sPrtData = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VRB, PosConst.PRT_FMT.F103, sPrtData);
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, "");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
sPrtData = string.Format("{0} : {1} -> {2}", sPrtTitle
, GetFloorAndTableName(cKPSMessage.sFloorCd, cKPSMessage.sTableNo)
, GetFloorAndTableName(cKPSMessage.sMsg1, cKPSMessage.sMsg2));
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F101, sPrtData);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
break;
default:
sPrtData = string.Format("[{0}{1}]", sPrtTitle, cKPSMessage.sResend != "0" ? " (R)" : "");
if (cKPSMessage.sMsgId == PosConst.KPS_ORD_MSG_ID.FIRE_KEY)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VRE, PosConst.PRT_FMT.F103, sPrtData);
}
else
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, sPrtData);
}
// 연습모드 // Add, 2017.03.03, 연습모드
if (cKPSMessage.sTrainMode == ItemConst.TRAINING_FLAG.TRAINING_YES)
{
sPrtData = MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0033);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VRB, PosConst.PRT_FMT.F103, sPrtData);
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, "");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
sPrtData = string.Format("{0} : {1}", MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0176)
, GetFloorAndTableName(cKPSMessage.sFloorCd, cKPSMessage.sTableNo));
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F101, sPrtData);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
break;
}
// 재출력시 주방장치코드/명 출력
if (cKPSMessage.sResend == "1")
{
reprtMsg = CmUtil.MidH(string.Format("# Kitchen Printer No. [{0}] {1}", cKPSMessage.sKtchSysCd.Trim(), cKPSMessage.sKtchSysNm.Trim()), 0, 42).Trim();
}
#endregion
#region ###
switch (cKPSMessage.sMsgId)
{
case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO:
//case PosConst.KPS_ORD_MSG_ID.FIRE_KEY:
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F101, cKPSMessage.sItemNm.Trim());
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
break;
case PosConst.KPS_ORD_MSG_ID.FIRE_KEY:
for (var j = 0; j < htKPSOrderMessageTemp.Count; j++)
{
KPSOrderMessage cKPSOrderSubMsg = (KPSOrderMessage)htKPSOrderMessageTemp[j];
sPrtData = string.Format("{0}{1}", CmUtil.RPadH(cKPSOrderSubMsg.sItemNm, 37), CmUtil.LPadH(cKPSOrderSubMsg.sMsg1, 5));
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F101, sPrtData);
i = j;
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
break;
case PosConst.KPS_ORD_MSG_ID.MENU_MOVE:
for (var j = 0; j < htKPSOrderMessageTemp.Count; j++)
{
KPSOrderMessage cKPSOrderSubMsg = (KPSOrderMessage)htKPSOrderMessageTemp[j];
if (cKPSOrderSubMsg.sSendYn == "1") break; ;
if (cKPSMessage.sMsgId != cKPSOrderSubMsg.sMsgId) break;
if (cKPSMessage.sFloorCd != cKPSOrderSubMsg.sFloorCd) break;
if (cKPSMessage.sTableNo != cKPSOrderSubMsg.sTableNo) break;
if (cKPSMessage.sOrderType != cKPSOrderSubMsg.sOrderType) break;
if (cKPSMessage.sKtchSysCd != cKPSOrderSubMsg.sKtchSysCd) break;
if (cKPSMessage.sMsg1.Trim() != cKPSOrderSubMsg.sMsg1.Trim()) break;
if (cKPSMessage.sMsg2.Trim() != cKPSOrderSubMsg.sMsg2.Trim()) break;
// 메뉴이동 상품정보 출력
sPrtData = string.Format("{0}{1}", CmUtil.RPadH(cKPSOrderSubMsg.sItemNm, 37), CmUtil.LPadH(cKPSOrderSubMsg.sMsg3, 5));
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F101, sPrtData);
i = j;
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
break;
}
#endregion
#region ###
switch (cKPSMessage.sMsgId)
{
case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO:
//case PosConst.KPS_ORD_MSG_ID.FIRE_KEY:
case PosConst.KPS_ORD_MSG_ID.SEAT_MEMO:
var memo = (string.IsNullOrWhiteSpace(cKPSMessage.sMsg1) ? "" : cKPSMessage.sMsg1.Trim() + Environment.NewLine)
+ (string.IsNullOrWhiteSpace(cKPSMessage.sMsg2) ? "" : cKPSMessage.sMsg2.Trim() + Environment.NewLine)
+ (string.IsNullOrWhiteSpace(cKPSMessage.sMsg3) ? "" : cKPSMessage.sMsg3.Trim());
if (string.IsNullOrWhiteSpace(memo) == false)
{
var lst = GetParserMemo(memo.Trim());
foreach (var msg in lst)
{
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F101, " " + msg.Trim());
}
}
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
break;
}
#endregion
#region ###
// 반복횟수
var prtCnt = prtCount > 1 ? string.Format(" ({0}/{1})", cnt + 1, prtCount) : string.Empty;
// 주문시간
sPrtData = string.Format("{0} : {1} {2} {3}", MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0085)
, m_cPosStatus.Global.DateToCulture(cKPSMessage.sRegDate)
, CmUtil.StrToTime(cKPSMessage.sMsgRegTime)
, prtCnt);
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sPrtData);
// 재출력시 주방장치코드/명 출력
if (string.IsNullOrWhiteSpace(reprtMsg) == false)
{
//AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "=");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_BLD, PosConst.PRT_FMT.F101, reprtMsg);
}
#endregion
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "=");
AddPrintData(sPrtID, PosConst.PRT_HDR.PRT_CUT, "");
}
}
}
}
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>
/// <returns></returns>
private string CancelBillPrintStatus()
{
try
{
string[] sql = new string[] { "UPDATE POSMST..MST_KPS_ORD_MSG SET SEND_YN = '0' WHERE SEND_YN = '8' "
, "UPDATE POSMST..MST_KTCH_ORD_MSG_ADD SET SEND_YN = '0' WHERE SEND_YN = '8' "};
// 주방주문서 영수증프린트
int ret = m_cSqlDbService.DBExecuteNonQuery(sql, true);
return ret == UserCom.OK ? UserCom.RST_OK : UserCom.RST_ERR;
}
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;
}
}
/// <summary>
/// 출력상태 업데이트
/// </summary>
/// <param name="isSuccess"></param>
/// <param name="htKPSOrderSheetItem"></param>
/// <param name="htKPSOrderMessageItem"></param>
private bool UpdatePrintStatus(bool isSuccess, Hashtable htKPSOrderSheetItem, Hashtable htKPSOrderMessageItem)
{
try
{
string fmt = string.Empty;
List<string> lstQuery = new List<string>();
fmt = "UPDATE POSMST..MST_KPS_ORD_MSG \n"
+ " SET SEND_YN = '{7}' \n"
+ " , RESEND_YN = '{7}' \n"
+ " , ERROR_CD = '{8}' \n"
+ " WHERE TRAIN_MODE_YN = '{0}' \n" // Add, 2017.03.05, 연습모드
+ " AND ORD_DIV = '{1}' \n"
+ " AND FLOOR_CD = '{2}' \n"
+ " AND TBL_NO = '{3}' \n"
+ " AND SUB_STOR_CD = '{4}' \n"
+ " AND KTCH_SYS_CD = '{5}' \n"
+ " AND SEQ = {6}";
for (var i = 0; i < htKPSOrderSheetItem.Count; i++)
{
Hashtable htKPSOrderSheetTemp = (Hashtable)htKPSOrderSheetItem[i];
for (var j = 0; j < htKPSOrderSheetTemp.Count; j++)
{
KPSItem cKPSItem = (KPSItem)htKPSOrderSheetTemp[j];
string sql = string.Format(fmt, cKPSItem.sTrainMode // Add, 2017.03.05, 연습모드
, cKPSItem.sOrderType
, cKPSItem.sFloorCd
, cKPSItem.sTableNo
, cKPSItem.sSubShopCd
, cKPSItem.sKtchSysCd
, cKPSItem.nSeq
, isSuccess ? "1" : cKPSItem.sSendYn
, isSuccess ? cKPSItem.sResendYn : "1"
, isSuccess ? "0000" : cKPSItem.sErrorCd);
lstQuery.Add(sql);
}
}
if (isSuccess)
{
fmt = "DELETE FROM POSMST..MST_KTCH_ORD_MSG_ADD \n"
+ " WHERE TRAIN_MODE_YN = '{0}' \n" // Add, 2017.03.05, 연습모드
+ " AND ORD_DIV = '{1}' \n"
+ " AND FLOOR_CD = '{2}' \n"
+ " AND TBL_NO = '{3}' \n"
+ " AND SEQ = {4} ";
for (var i = 0; i < htKPSOrderMessageItem.Count; i++)
{
Hashtable htKPSOrderMessageTemp = (Hashtable)htKPSOrderMessageItem[i];
for (var j = 0; j < htKPSOrderMessageTemp.Count; j++)
{
KPSOrderMessage cKPSOrderMessage = (KPSOrderMessage)htKPSOrderMessageTemp[j];
string sql = string.Format(fmt, cKPSOrderMessage.sTrainMode // Add, 2017.03.05, 연습모드
, cKPSOrderMessage.sOrderType
, cKPSOrderMessage.sFloorCd
, cKPSOrderMessage.sTableNo
, cKPSOrderMessage.nSeq);
lstQuery.Add(sql);
}
}
}
else
{
fmt = "UPDATE POSMST..MST_KTCH_ORD_MSG_ADD \n"
+ " SET RESEND_YN = '{5}' \n"
+ " WHERE TRAIN_MODE_YN = '{0}' \n" // Add, 2017.03.05, 연습모드
+ " AND ORD_DIV = '{1}' \n"
+ " AND FLOOR_CD = '{2}' \n"
+ " AND TBL_NO = '{3}' \n"
+ " AND SEQ = {4} ";
for (var i = 0; i < htKPSOrderMessageItem.Count; i++)
{
Hashtable htKPSOrderMessageItemTemp = (Hashtable)htKPSOrderMessageItem[i];
for (var j = 0; j < htKPSOrderMessageItemTemp.Count; j++)
{
KPSOrderMessage cKPSOrderMessage = (KPSOrderMessage)htKPSOrderMessageItemTemp[j];
string sql = string.Format(fmt, cKPSOrderMessage.sTrainMode // Add, 2017.03.05, 연습모드
, cKPSOrderMessage.sOrderType
, cKPSOrderMessage.sFloorCd
, cKPSOrderMessage.sTableNo
, cKPSOrderMessage.nSeq
, isSuccess ? cKPSOrderMessage.sResend : "1");
lstQuery.Add(sql);
}
}
}
if (lstQuery.Count == 0) return true;
// 1:OK, -1:Connection 에러, -2:SQL 에러, -3:기타 에러
string[] aQuery = lstQuery.ToArray();
int ret = m_cSqlDbService.DBExecuteNonQuery(aQuery, 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 GetCustInfo(string trainMdoe, string floorCd, string tableNo)
{
string retValue = string.Empty;
try
{
retValue = MessageManager.GetLabelMessage(POS_MESSAGE.PRINT.MSG_0159);
int totCnt = 0;
int mCnt = 0;
int fCnt = 0;
DataTable dtData = null;
string sql = "SELECT CUST_CNT, FILLER2 FROM POSMST..MST_TBL WITH(NOLOCK) \n"
+ " WHERE TRAIN_MODE_YN = '" + trainMdoe + "' \n"
+ " AND 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.05, 연습모드
+ " AND FLOOR_CD = '" + floorCd + "' \n"
+ " AND TBL_NO = '" + tableNo + "' \n"
;
if (m_cSqlDbService.DBSelect(sql, out dtData) == UserCom.OK)
{
var temp = string.Empty;
temp = CmUtil.GetDataRowStr(dtData.Rows[0], "CUST_CNT");
if (string.IsNullOrWhiteSpace(temp) == false)
{
totCnt = CmUtil.IntParse(temp);
}
temp = CmUtil.GetDataRowStr(dtData.Rows[0], "FILLER2");
if (string.IsNullOrWhiteSpace(temp) == false)
{
totCnt = 0;
var custList = temp.Split('|');
for (var i = 0; i < custList.Count(); i++)
{
int cnt = CmUtil.IntParse(custList[i]);
totCnt += cnt;
if (i < 6) mCnt += cnt; else fCnt += cnt;
}
}
}
if (totCnt > 0 && mCnt + fCnt == 0)
{
retValue = totCnt.ToString();
}
else
{
retValue = string.Format(MessageManager.GetPrintMessage(POS_MESSAGE.PRINT.MSG_0159), totCnt, mCnt, fCnt);
}
}
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 + "()",
ex.Message);
}
return retValue;
}
private string GetAddOrderString(string type)
{
string retValue = type;
try
{
switch (m_cPosStatus.Base.Country + type)
{
case "ko-KRNEW": retValue = "신규"; break;
case "ko-KRADD": retValue = "추가"; break;
case "ko-KRDEL": retValue = "취소"; break;
}
}
catch { }
return retValue;
}
private string GetFloorAndTableName(string floorCd, string tableNo)
{
string retValue = string.Format("{0}-{1}", floorCd, tableNo);
try
{
ITableUs tableService = (ITableUs)sManager.InitServiceInstance(ServiceLists.BSV_TABLE.DLL, ServiceLists.BSV_TABLE.TABLE_SERVICE);
DataTable dt= null;
if (tableService.SelectFloorAndTableName(floorCd.Trim(), tableNo.Trim(), out dt) == UserCom.RST_OK)
{
DataRow dr = dt.Rows[0];
string floorNm = CmUtil.GetDataRowStr(dr, "FLOOR_NM").Trim();
string tableNm = CmUtil.GetDataRowStr(dr, "TBL_NM").Trim();
if (string.IsNullOrWhiteSpace(floorNm)) floorNm = floorCd;
if (string.IsNullOrWhiteSpace(tableNm)) tableNm = tableNo;
retValue = string.Format("{0}-{1}", floorNm, tableNm);
}
}
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;
}
private string GetOrderMessageTitle(string msgId)
{
string retValue = string.Empty;
try
{
switch (msgId)
{
//case PosConst.KPS_ORD_MSG_ID.TRADE_STOP: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0232); break;
case PosConst.KPS_ORD_MSG_ID.ITEM_MEMO: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0233); break;
case PosConst.KPS_ORD_MSG_ID.SEAT_MEMO: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0234); break;
case PosConst.KPS_ORD_MSG_ID.TABLE_COMBINE: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0235); break;
case PosConst.KPS_ORD_MSG_ID.TABLE_MOVE: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0236); break;
case PosConst.KPS_ORD_MSG_ID.MENU_MOVE: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0124); break;
case PosConst.KPS_ORD_MSG_ID.FIRE_KEY: retValue = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0628); break;
}
}
catch { }
return retValue;
}
private List<string> GetParserMemo(string memo, string headChar = "")
{
List<string> retValue = new List<string>();
try
{
const int COL_LEN = 40;
var tmp = memo;
var lines = tmp.Trim().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
for (var i = 0; i < lines.Length; i++)
{
var line = lines[i].Trim();
while (string.IsNullOrWhiteSpace(line) == false)
{
var msg = CmUtil.LeftH(line, COL_LEN).Trim();
if (string.IsNullOrWhiteSpace(msg) == false) retValue.Add(msg);
var start = CmUtil.LenH(msg);
var length = CmUtil.LenH(line) - CmUtil.LenH(msg);
line = CmUtil.MidH(line, start, length);
}
}
}
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;
}
}
/// <summary>
/// KPS_ORD_MSG ITEM
/// </summary>
/// <remarks>
/// KPS.Common 모듈에 중복 선언됨
/// </remarks>
internal class KPSItem
{
public string sTrainMode; // Add, 2017.03.05, 연습모드
public string sOrderType;
public string sFloorCd;
public string sTableNo;
public string sSubShopCd; // Add, 2017.02.06
public string sKtchSysCd;
public int nSeq;
public string sOrderNo;
public string sPosType;
public string sItemCd;
public string sItemNm;
/// <summary>
/// 상품구분(0:일반, 1:세트, 2:세트자식, 3:부가상품, 4:세트할인, 5:상품권(추가))
/// </summary>
public string sItemDiv;
public int nQty;
public string sPackDiv;
public string sSetMenuCd;
public string sOrdTime;
public string sCancelDiv;
/// <summary>
/// 0:정상 1:재전송
/// </summary>
public string sResendYn;
public string sKtchSysUseDiv;
public int nKpsComPort;
public int nKpsComBaudrate;
public string sKpsOposName;
public string sKpsIp;
public string sKpsPort;
/// <summary>
/// 0:미전송 1:전송
/// </summary>
public string sSendYn;
/// <summary>
/// 0000 : 정상
///
/// </summary>
public string sErrorCd;
//public string sKpsCdBackup1;
//public string sKpsCdBackup2;
//public string sKpsCdBackup3;
//public string sKpsCdBackup4;
//public string sKpsCdBackup5;
//public string sKpsCdBackup6;
/// <summary>
/// 반복출력 횟수
/// </summary>
public string sFiller1;
/// <summary>
/// 기타주문구분
/// 1:후불일반판매, 2:해피오더
/// </summary>
public string sFiller2;
/// <summary>
/// 추가주문구분 (NEW,ADD,DEL)
/// </summary>
public string sFiller3;
/// <summary>
/// 부가메뉴구분 (SUBPRC_MENU_KEY_DIV)
///
/// </summary>
public string sFiller4;
public string sFiller5;
/// <summary>
/// 수동출력일때 주방메모
/// </summary>
public string sKtchMemo = string.Empty;
/// <summary>
/// 상품메모
/// </summary>
public string sItemMemo = string.Empty;
/// <summary>
/// 주문담당자
/// </summary>
public string sOrdPicNm = string.Empty;
/// <summary>
/// 주방장치명
/// </summary>
public string sKtchSysNm = string.Empty; // Add, 2017.04.06
/// <summary>
/// 마자막주문POS
/// </summary>
public string sOrdPosNo = string.Empty; // Add, 2017.04.10
// 2017.09.06 레시피 추가
/// <summary>
/// 레시피
/// </summary>
public string sRecipe = string.Empty;
}
/// <summary>
/// KPS_ORD_MSG_ADD ITEM
/// </summary>
/// <remarks>
/// KPS.Common 모듈에 중복 선언됨
/// </remarks>
internal class KPSOrderMessage
{
public string sTrainMode; // Add, 2017.03.05, 연습모드
public string sOrderType;
public string sFloorCd;
public string sTableNo;
public int nSeq;
public string sSubShopCd; // Add, 2017.02.06
public string sKtchSysCd;
public string sItemCd;
public string sItemNm;
public string sMsgId;
public string sMsg1;
public string sMsg2;
public string sMsg3;
public string sMsgRegTime;
public string sKtchSysUseDiv;
public int nKpsComPort;
public int nKpsComBaudrate;
public string sKpsOposName;
public string sKpsIp;
public string sKpsPort;
public string sSendYn;
public string sResend;
public string sErrorCd;
public int printCount = 1;
//public string sKpsCdBackup1;
//public string sKpsCdBackup2;
//public string sKpsCdBackup3;
//public string sKpsCdBackup4;
//public string sKpsCdBackup5;
//public string sKpsCdBackup6;
public string sRegDate;
/// <summary>
/// 주방장치명
/// </summary>
public string sKtchSysNm = string.Empty; // Add, 2017.04.06
/// <summary>
/// 마지막주문POS
/// </summary>
public string sOrdPosNo = string.Empty; // Add, 2017.04.10
}
}