using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
using Cosmos.UserFrame;
using Cosmos.BaseFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;
using System.Data;
using System.Globalization;
using System.Windows.Forms;
/*-----------------------------------------------------------------------------------------------*/
// 설 명 : 해피오더 내역 조회
// 작 성 자 :
// 변경 이력 :
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Service
{
class HappyOrderList : IHappyOrderList
{
private SManager sManager = new SManager(); // 이 객체를 통해 업무 Service 호출
private StateServer StateObject = (StateServer)StateServer.GetInstance(); // StateObject : StateServer Object (객체)
private PosStatus m_cPosStatus = new PosStatus(); // 기본정보 참조
private TranStatus m_cTrnStatus = new TranStatus(); // 기본거래 참조
private INetworkHttp m_cNetworkHttp = null;
private ISaleCompleteUs m_cRecService = null;
private ISalePluItemUs m_cPluService = null; // 판매 등록 관리
private IDatabaseSQL m_cSqlDbService = null;
private IDataCommonUs m_cDataCommon = null; // POS 공통함수 인터페이스
private static ArrayList m_sPrintData = new ArrayList();
///
/// 생성자
///
public HappyOrderList()
{
m_cPosStatus = (PosStatus)StateObject.POS;
m_cTrnStatus = (TranStatus)StateObject.TRAN;
m_cNetworkHttp = (INetworkHttp)sManager.InitServiceInstance(ServiceLists.AGENT_NETWORK.DLL, ServiceLists.AGENT_NETWORK.NETWORK_HTTP);
m_cRecService = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
m_cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM);
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
}
///
/// 해피오더 내역조회 데이터 파싱 처리
///
///
///
public Column.TR_HPORD.HPORD_HEADER ParseHappyOrderList(Hashtable htData)
{
Column.TR_HPORD.HPORD_HEADER header = null;
try
{
header = new Column.TR_HPORD.HPORD_HEADER();
header.OrderNum = htData["orderNum"].ToString();
header.OrderPgNum = htData["orderPgNum"] == null ? string.Empty : htData["orderPgNum"].ToString();
header.OwnerName = htData["ownerName"] == null ? string.Empty : htData["ownerName"].ToString();
header.OrderMoney = htData["orderMoney"] == null ? string.Empty : htData["orderMoney"].ToString();
// 해피포인트 사용 금액 추가(2017.05.17/조충연K)
//header.PayMoney = htData["payMoney"] == null ? string.Empty : htData["payMoney"].ToString();
string sPayMoney = htData["payMoney"] == null ? string.Empty : htData["payMoney"].ToString();
header.HappyUseMoney = htData["happyUseMoney"] == null ? string.Empty : htData["happyUseMoney"].ToString();
header.PayMoney = Convert.ToString(CmUtil.DoubleAdd(CmUtil.DoubleParse(sPayMoney), CmUtil.DoubleParse(header.HappyUseMoney)));
header.Receiver = htData["receiver"] == null ? string.Empty : htData["receiver"].ToString();
header.ReceiverHp = htData["receiverHp"] == null ? string.Empty : htData["receiverHp"].ToString();
header.OrderDate = htData["orderDate"] == null ? string.Empty : htData["orderDate"].ToString();
header.PayStatus = htData["payStatus"] == null ? string.Empty : htData["payStatus"].ToString();
if(header.PayStatus == "5")
{
// 현장결제 Flag Set
header.FieldPay = "Y";
}
else
{
header.FieldPay = "N";
}
header.OrderStatus = htData["status"] == null ? string.Empty : htData["status"].ToString();
header.PickupTime = htData["pickupTime"] == null ? string.Empty : htData["pickupTime"].ToString();
header.OrderType = htData["type"] == null ? string.Empty : htData["type"].ToString();
header.CashSupplyPrice = htData["cashReceiptSupplyPrice"] == null ? string.Empty : htData["cashReceiptSupplyPrice"].ToString();
header.CashSurTax = htData["cashReceiptSurTax"] == null ? string.Empty : htData["cashReceiptSurTax"].ToString();
header.CustMsg = htData["msg"] == null ? string.Empty : htData["msg"].ToString();
header.DeliveryName = htData["deliName"] == null ? string.Empty : htData["deliName"].ToString();
header.DeliveryHp = htData["deliPhone"] == null ? string.Empty : htData["deliPhone"].ToString();
header.OwnerId = htData["ownerId"] == null ? string.Empty : htData["ownerId"].ToString(); //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs 해피오더 파싱처리
header.Channel = htData["channel"] == null ? string.Empty : htData["channel"].ToString(); //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
header.ChannelName = htData["channelName"] == null ? string.Empty : htData["channelName"].ToString(); //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
header.DailyCode = htData["dailyCode"] == null ? string.Empty : htData["dailyCode"].ToString();//17.08.22 dkshin SS 해피오더
//grayber@20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 start
header.Address1 = htData["address1"] == null ? string.Empty : htData["address1"].ToString();
header.Address2 = htData["address2"] == null ? string.Empty : htData["address2"].ToString();
//grayber@20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 end
//#20180612 해피오더 주문알림 start
header.immediateOrder = htData["immediateOrder"] == null ? string.Empty : htData["immediateOrder"].ToString();
//#20180612 해피오더 주문알림 end
if (header.OrderType != "1")
{
//#17397 해피오더)픽업/배달 잔여 일수 표기 확인 start
#region 기존소스
/*
DateTime dtToday = DateTime.Now;
DateTime dtDecisionDay = new DateTime(int.Parse(header.PickupTime.Substring(0, 4)),
int.Parse(header.PickupTime.Substring(5, 2)),
int.Parse(header.PickupTime.Substring(8, 2)),
int.Parse(header.PickupTime.Substring(14, 2)),
int.Parse(header.PickupTime.Substring(17, 2)),
0);
int iDDay = (int)((dtToday - dtDecisionDay).TotalDays);
if (iDDay > 0)
{
header.DDay = "D+" + string.Format("{0:00}", iDDay);
}
else if (iDDay == 0)
{
int iDHOur = (int)(dtToday - dtDecisionDay).TotalHours;
if (iDHOur > 0)
{
header.DDay = "H+" + string.Format("{0:00}", iDHOur);
}
else if (iDHOur == 0)
{
header.DDay = "H-" + string.Format("{0:00}", iDHOur);
}
else
{
header.DDay = "H" + string.Format("{0:00}", iDHOur);
}
}
else
{
header.DDay = "D" + string.Format("{0:00}", iDDay);
}
*/
#endregion
#region 변경소스
string StartDate = "";
string EndDate = "";
StartDate = DateTime.Now.ToString("yyyy-MM-dd");
EndDate = header.PickupTime.Substring(0, 4).Trim() + "-" +
header.PickupTime.Substring(5, 2).Trim() + "-" +
header.PickupTime.Substring(8, 2).Trim() ;
DateTime dtStartDate = Convert.ToDateTime(StartDate);
DateTime dtEndDate = Convert.ToDateTime(EndDate);
TimeSpan dateDiff = dtEndDate - dtStartDate;
int diffDay = dateDiff.Days;
diffDay = diffDay * -1;
string StartTime = "";
string EndTime = "";
StartTime = DateTime.Now.ToString("HH:mm:ss");
EndTime = header.PickupTime.Substring(14, 2).Trim() + ":" +
header.PickupTime.Substring(17, 2).Trim() + ":" +
"00";
DateTime dtStartTime = Convert.ToDateTime(StartTime);
DateTime dtEndTime = Convert.ToDateTime(EndTime);
TimeSpan TimeDiff = dtEndTime - dtStartTime;
int diffHour = TimeDiff.Hours;
diffHour = diffHour * -1;
if (diffDay > 0)
{
header.DDay = "D+" + string.Format("{0:00}", diffDay);
}
else if (diffDay == 0)
{
if (diffHour > 0)
{
header.DDay = "H+" + string.Format("{0:00}", diffHour);
}
else if (diffHour == 0)
{
header.DDay = "H-" + string.Format("{0:00}", diffHour);
}
else
{
header.DDay = "H" + string.Format("{0:00}", diffHour);
}
}
else
{
header.DDay = "D" + string.Format("{0:00}", diffDay);
}
#endregion
//#17397 해피오더)픽업/배달 잔여 일수 표기 확인 end
}
else
{
header.DDay = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0946);
}
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return header;
}
//grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 start
public void GetHappyOrderNurtitionListDetail(string sOrderNum, string sUrl, string sOrderDt )
{
try
{
Hashtable htRequest = new Hashtable();
htRequest.Add("orderNum", sOrderNum);
Hashtable htResponse = null;
int iReturn = BaseCom.NG;
Hashtable[] htOrderNutritionLists = SendReceiveForHappyOrder(new object[] { sUrl, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_PRODUCT_NUTRITION, htRequest }, ref htResponse, ref iReturn);
//grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - 기존 영양정보 관련 함수로 대체
//string sTextBuf = string.Empty, sTextCont = string.Empty, sKey = string.Empty;
//foreach (Hashtable htData in htOrderNutritionLists)
//{
// //sTextBuf = htData["infoType"] == null ? string.Empty : htData["infoType"].ToString();cHappyNurtitionOrderItem.Add(sTextBuf);
// //sTextBuf = htData["goodsCode"] == null ? string.Empty : htData["goodsCode"].ToString();cHappyNurtitionOrderItem.Add(sTextBuf);
// sTextBuf = "-상품명 : " + (htData["goodsName"] == null ? string.Empty : htData["goodsName"].ToString()); cHappyNurtitionOrderItem.Add(sTextBuf);
// for (var nContent = 0; ((htData.Count - 3) / 2) + 1 > nContent; nContent++)
// {
// sKey = "text" + (nContent + 1).ToString();
// sTextBuf = htData[sKey] == null ? string.Empty : htData[sKey].ToString();
// sKey = "content" + (nContent + 1).ToString();
// sTextCont = htData[sKey] == null ? string.Empty : htData[sKey].ToString();
// if (sTextBuf.Equals(string.Empty) != true && sTextCont.Equals(string.Empty) != true)
// {
// cHappyNurtitionOrderItem.Add(/*"-" +*/ sTextBuf + " : " + sTextCont);
// }
// }
//}
string sMsg = ParseNutritionMsg(htOrderNutritionLists);
if (sMsg != "")
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"OrderNum = " + sOrderNum + ", 영양정보 = " + sMsg);
// 영양정보 저장
UpdateHappyOrderData(new string[] { "Message", sMsg, sOrderNum, sOrderDt });
}
//grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end
}
catch(Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return;
}
//grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 end
///
/// 해피오더 상세내역 조회
///
///
///
///
///
public void GetHappyOrderListDetail(string sOrderNum, string sUrl, ref ArrayList cHappyOrderItem , ref Hashtable[] htOrderLists)
{
try
{
Hashtable htRequest = new Hashtable();
htRequest.Add("orderNum", sOrderNum);
htRequest.Add("deviceType", "POS");
Hashtable htResponse = null;
int iReturn = BaseCom.NG;
htOrderLists = SendReceiveForHappyOrder(new object[] { sUrl, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_ORDER_DETAIL, htRequest }, ref htResponse, ref iReturn);
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
//IDataCommonUs m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
cHappyOrderItem.Clear();
for (int nLoop = 0; nLoop < htOrderLists.Length; nLoop++)
{
Hashtable htData = htOrderLists[nLoop];
Column.TR_HPORD.HPORD_ITEM item = new Column.TR_HPORD.HPORD_ITEM();
item.OrderNum = htData["orderSubNum"].ToString();
item.OrderSeq = Convert.ToString(cHappyOrderItem.Count + 1);
item.GoodsCode = htData["posGoodsCode"].ToString();
item.GoodsName = htData["goodsName"].ToString();
item.SupplyPrice = htData["supplyPrice"].ToString();
// 할인금액은 절대값 처리
item.DiscountPrice = Math.Abs(Convert.ToInt64(htData["discountPrice"].ToString())).ToString();
item.CashTotSupplyPrice = htData["cashReceiptTotSupplyPrice"].ToString();
item.CashTotSurTax = htData["cashReceiptTotSurTax"].ToString();
item.Qty = htData["ea"].ToString();
item.SalePrice = htData["salePrice"].ToString();
item.FlavourFlag = "N";
item.FlavourName = "";
//17.08.22 dkshin SS 해피오더
if (htData["dailyCode"] != null)
{
item.DailyCode = htData["dailyCode"].ToString();
}
else
{
item.DailyCode = "";
}
cHappyOrderItem.Add(item);
Hashtable[] htGoodsOptionList = ParseJsonString(htData["goodsOptionList"].ToString());
foreach (Hashtable htGoodsOption in htGoodsOptionList)
{
Hashtable[] htGoodsOptionGoodsList;
string sPosType = htGoodsOption["posType"].ToString();
if (int.Parse(sPosType) > 0)
{
htGoodsOptionGoodsList = ParseJsonString(htGoodsOption["goodsOptionGoodsList"].ToString());
foreach (Hashtable htGoodsOptionGoods in htGoodsOptionGoodsList)
{
Column.TR_HPORD.HPORD_ITEM subItem = new Column.TR_HPORD.HPORD_ITEM();
subItem.OrderNum = item.OrderNum;
subItem.OrderSeq = htGoodsOptionGoods["goodsOptionSeq"].ToString();
subItem.GoodsCode = CmUtil.IsNull((String)htGoodsOptionGoods["posGoodsCode"], "0");
subItem.GoodsName = htGoodsOptionGoods["goodsName"].ToString();
subItem.SalePrice = htGoodsOptionGoods["salePrice"].ToString();
subItem.SupplyPrice = htGoodsOptionGoods["salePrice"].ToString();
// 할인금액은 절대값 처리
//subItem.DiscountPrice = htGoodsOptionGoods["discountPrice"].ToString();
subItem.DiscountPrice = Math.Abs(Convert.ToInt64(htGoodsOptionGoods["discountPrice"].ToString())).ToString();
subItem.Qty = htGoodsOptionGoods["ea"].ToString();
int iIdx = (subItem.GoodsName).IndexOf(']');
StringInfo si = new StringInfo((subItem.GoodsName).Substring(iIdx + 1).Trim());
if (si.LengthInTextElements > 3)
{
subItem.FlavourName = si.SubstringByTextElements(0, 3);
}
else
{
subItem.FlavourName = si.String;
}
if (subItem.GoodsCode != "0" && subItem.GoodsCode != "")
{
subItem.FlavourFlag = "Y";
}
cHappyOrderItem.Add(subItem);
}
}
}
}
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
}
///
/// 영수증 출력데이터 생성
///
/// 출력형태
/// 출력포맷
/// Data
public void AddPrintData(string sPrtHead, string sPrtFmt, string sData)
{
try
{
string sPrtData = "";
if (sPrtFmt == PosConst.PRT_FMT.F100) // 선귿기
{
for (int i = 1; i <= 42; i++) sPrtData += sData;
}
else if (sPrtFmt == PosConst.PRT_FMT.F101) // 왼쪽정렬
{
sPrtData = sData;
}
else if (sPrtFmt == PosConst.PRT_FMT.F102) // 오른쪽 정렬
{
sPrtData = CmUtil.LPadH(sData, 42);
}
else if (sPrtFmt == PosConst.PRT_FMT.F103) // 중앙정렬
{
if (sPrtHead == PosConst.PRT_HDR.PRT_HOR || sPrtHead == PosConst.PRT_HDR.PRT_BIG)
{
if (CmUtil.LenH(sData) <= 21) sPrtData = CmUtil.LPadH("", 10 - (CmUtil.LenH(sData) / 2)) + sData;
}
else
{
if (CmUtil.LenH(sData) <= 42) sPrtData = CmUtil.LPadH("", 21 - (CmUtil.LenH(sData) / 2)) + sData;
}
}
else
{
sPrtData = sData;
}
m_sPrintData.Add(sPrtHead + sPrtData);
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
}
///
/// 영수증 출력데이터 생성
///
///
///
///
///
public void AddPrintData(string sPrtHead, string sPrtFmt, string sData1, string sData2)
{
try
{
string sPrtData = "";
if (sPrtFmt == PosConst.PRT_FMT.F200) // 명(31)+금액(11)
{
if (sPrtHead == PosConst.PRT_HDR.PRT_HOR || sPrtHead == PosConst.PRT_HDR.PRT_BIG)
{
sPrtData = CmUtil.RPadH(sData1, 10) + CmUtil.LPadH(sData2, 11);
}
else
{
sPrtData = CmUtil.RPadH(sData1, 31) + CmUtil.LPadH(sData2, 11);
}
}
if (sPrtFmt == PosConst.PRT_FMT.F201) // 명(31)+금액(11)
{
if (sPrtHead == PosConst.PRT_HDR.PRT_HOR || sPrtHead == PosConst.PRT_HDR.PRT_BIG)
{
sPrtData = CmUtil.LPadH(sData1, 10) + CmUtil.LPadH(sData2, 11);
}
else
{
sPrtData = CmUtil.LPadH(sData1, 31) + CmUtil.LPadH(sData2, 11);
}
}
m_sPrintData.Add(sPrtHead + sPrtData);
}
catch(Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
}
///
/// 영수증 버퍼 초기화
///
public void PrintBufClear()
{
m_sPrintData.Clear();
}
///
/// 영수증 버퍼 반환
///
///
public ArrayList GetPrintBufferData()
{
return m_sPrintData;
}
///
/// 주방프린터 상품 처리
///
///
public void KPSItemProc(string sTradeDiv, ArrayList alHappyOrderItem)
{
string sSelQuery = "";
string sInsQuery = "";
string sSQL = "";
int iRet = UserCom.NG;
int iSeq = 0;
DataTable dtReturn = null;
try
{
// 주방출력사용 옵션
if (PosMstManager.GetPosOption(POS_OPTION.OPT506) != "1") return;
sSelQuery = " SELECT ISNULL(MAX(SEQ), 0) + 1 AS NEXT_SEQ ";
sSelQuery += " FROM POSMST..MST_KTCH_ORD_MSG ";
sSelQuery += " WHERE TRAIN_MODE_YN = '{0}' "; // Add, 2017.03.06, 주방출력 연습모드 적용
sSelQuery += " AND ORD_DIV = '{1}' ";
sSelQuery += " AND FLOOR_CD = '{2}' ";
sSelQuery += " AND TBL_NO = '{3}' ";
#region (주석) 복합매장 적용 이전
//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, SET_MENU_CD ";
//sInsQuery += " , ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO ";
//sInsQuery += " , 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}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', N'{13}', {14}, '{15}', '{16}' ";
//sInsQuery += " , '{17}', '{18}', '{19}', N'{20}', N'{21}', N'{22}', '{23}', '{24}', '{25}', '{26}' ";
//sInsQuery += " , '{27}', '{28}', '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}' ) ";
#endregion
#region (주석) 주방출력 연습모드 적용 이전
//sInsQuery = " INSERT INTO POSMST..MST_KTCH_ORD_MSG ";
//sInsQuery += " ( ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD ";
//sInsQuery += " , ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO ";
//sInsQuery += " , 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}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', N'{14}', {15}, '{16}' ";
//sInsQuery += " , '{17}', '{18}', '{19}', '{20}', N'{21}', N'{22}', N'{23}', '{24}', '{25}', '{26}' ";
//sInsQuery += " , '{27}', '{28}', '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}' , '{37}') ";
#endregion
#region (주석) KPS + KDS 동시사용, 2017.04.26
//sInsQuery = " INSERT INTO POSMST..MST_KTCH_ORD_MSG ( ";
//sInsQuery += " ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD ";
//sInsQuery += " , ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO ";
//sInsQuery += " , SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, TRAIN_MODE_YN ";
//sInsQuery += " , KTCH_MSG \n";
//sInsQuery += " ) VALUES ";
//sInsQuery += " ( '{0}', '{1}', '{2}', {3}, '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', N'{14}', {15}, '{16}' ";
//sInsQuery += " , '{17}', '{18}', '{19}', '{20}', N'{21}', N'{22}', N'{23}', '{24}', '{25}', '{26}' ";
//sInsQuery += " , '{27}', '{28}', '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}' , '{37}', '{38}' ";
//sInsQuery += " ,N'{39}' \n";
//sInsQuery += " )";
#endregion
sInsQuery = " INSERT INTO POSMST..MST_KTCH_ORD_MSG ( ";
sInsQuery += " ORD_DIV, FLOOR_CD, TBL_NO, SEQ, CMP_CD, BRAND_CD, STOR_CD, SUB_STOR_CD, POS_NO, TRADE_NO, SALE_DT, POS_TYPE, ITEM_CD, ITEM_DIV, SHTCUT_ITEMNM, SALE_QTY, PACK_DIV, SET_MENU_CD ";
sInsQuery += " , ORD_TIME, CANCEL_DIV, SUB_MEMO_DIV, MSG1, MSG2, MSG3, MSG_REG_TIME, ORG_BILL_POSNO, ORG_BILLDT, ORG_BILL_NO ";
sInsQuery += " , SEND_YN, SEND_CONFIRM_DIV, RESEND_YN, FILLER1, FILLER2, FILLER3, FILLER4, FILLER5, UPD_DT, REG_DT, TRAIN_MODE_YN ";
sInsQuery += " , KTCH_MSG \n"; // Add, 2017.03.23, 주방메시지
sInsQuery += " , ORD_PIC_NM \n"; // Add, 2017.03.28, 주문담당자
sInsQuery += " , ORG_QTY \n"; // Add, 2017.03.31, 이전주문수량
sInsQuery += " , ORD_POS_NO \n"; // Add, 2017.04.10, 주문포스번호 (서브포스에서도 주방출력 처리)
sInsQuery += " , KDS_SEND_YN \n"; // Add, 2017.04.26, KDS 전송여부
sInsQuery += " ) VALUES ";
sInsQuery += " ( '{0}', '{1}', '{2}', {3}, '{4}', '{5}', '{6}', '{7}', '{8}', '{9}', '{10}', '{11}', '{12}', '{13}', N'{14}', {15}, '{16}' ";
sInsQuery += " , '{17}', '{18}', '{19}', '{20}', N'{21}', N'{22}', N'{23}', '{24}', '{25}', '{26}' ";
sInsQuery += " , '{27}', '{28}', '{29}', '{30}', '{31}', '{32}', '{33}', '{34}', '{35}', '{36}' , '{37}', '{38}' ";
sInsQuery += " ,N'{39}' \n";
sInsQuery += " ,N'{40}' \n";
sInsQuery += " , 0 ";
sInsQuery += " , '{41}' \n";
sInsQuery += " , '{42}' \n";
sInsQuery += " )";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
string sOrgOrderNum = "";
for (int nLoop = 0; nLoop < alHappyOrderItem.Count; nLoop++)
{
Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)alHappyOrderItem[nLoop];
// 주문번호
string sOrderNum = item.OrderNum;
// SEQ 조회는 각 주문번호 별 한 번만 조회 함
if(sOrgOrderNum != sOrderNum)
{
sOrgOrderNum = sOrderNum;
sSQL = string.Format(sSelQuery,
m_cPosStatus.Base.TrainingFlag, // Add, 2017.03.06, 주방출력 연습모드 적용
PosConst.ORDER_TYPE.NORMAL,
m_cPosStatus.Base.PosNo,
sOrderNum);
dtReturn = null;
if(m_cSqlDbService.DBSelect(sSQL, out dtReturn) == UserCom.OK)
{
iSeq = CmUtil.GetDataRowInt(dtReturn.Rows[0], "NEXT_SEQ");
}
}
// 주방프린트 수동출력 사용자 선택값 (Add, 2017.01.24)
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 (string.IsNullOrWhiteSpace(m_cTrnStatus.Sale.MenualOrderMemo) == false)
//{
// menualOrderMemo = m_cTrnStatus.Sale.MenualOrderMemo;
// menualMsgRegTime = DateTime.Now.ToString("HHmmss");
//}
}
// Add, 2017.04.25, 주방메모 출력 (대기번호 입력)
if (string.IsNullOrWhiteSpace(m_cTrnStatus.Sale.MenualOrderMemo) == false)
{
menualOrderMemo = m_cTrnStatus.Sale.MenualOrderMemo;
menualMsgRegTime = DateTime.Now.ToString("HHmmss");
}
// 기타주문구분 1:후불일반판매, 2:해피오더
string etcOrderFlag = "2";
//17.08.22 dkshin SS 해피오더
//해피오더 HEADER 데이터 중 'dailyCode' 값은 대기번호 . KDS 로 전송시 같이 전송해야 함.(MST_KTCH_ORD_MSG.TBL_NO)
string sOrderTime;
string sPosNo = m_cTrnStatus.Head.PosNo;
if (PosMstManager.GetPosOption(POS_OPTION.OPT048) != "0" || PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
{
sOrderNum = item.DailyCode;
sOrderTime = item.PickupTime;
sOrderTime = sOrderTime.Substring(5, 5) + " " + sOrderTime.Substring(14, 5);//ex) 03-29 17:30
}
else
sOrderTime = DateTime.Now.ToString("HHmmss");
if (PosMstManager.GetPosOption(POS_OPTION.OPT048) != "0")//SS 해피오더 백그라운드 사용 시 해당 포스 번호 설정
{
sPosNo = PosMstManager.GetPosOption(POS_OPTION.OPT048);
}
sSQL = string.Format(sInsQuery,
PosConst.ORDER_TYPE.NORMAL, // ORD_DIV
//17.08.22 dkshin SS 해피오더
//m_cTrnStatus.Head.PosNo, // FLOOR_CD(해피오더일 경우 POS번호)
sPosNo,
sOrderNum, // TBL_NO(해피오더일 경우 주문번호)
iSeq++, // SEQ
m_cTrnStatus.Head.CmpCd, // CMP_CD
m_cPosStatus.Base.BrandCd, // BRAND_CD
m_cTrnStatus.Head.StoreCd, // STOR_CD
m_cTrnStatus.Head.StoreCd, // SUB_STOR_CD // ADD, 2017.02.06
m_cTrnStatus.Head.PosNo, // POS_NO
sOrderNum, // TRADE_NO
m_cTrnStatus.Head.SaleDate, // SALE_DT
m_cPosStatus.Base.PosType, // POS유형(0:선불, 1:후불)
item.GoodsCode, // ITEM_CD
ItemConst.PLU_ITEM_DIV.NORMAL, // ITEM_DIV
item.GoodsName, // SHTCUT_ITEMNM
item.Qty, // SALE_QTY
"0", // PACK_DIV
"", // SET_MENU_CD
//"", // ORD_TIME
//17.08.22 dkshin SS 해피오더
//DateTime.Now.ToString("HHmmss"),
sOrderTime,
sTradeDiv, // CANCEL_DIV
"0", // SUB_MEMO_DIV
string.Empty, // MSG1
string.Empty, // MSG2
string.Empty, // MSG3
"", // MSG_REG_TIME
"", // ORG_BILL_POSNO
"", // ORG_BILLDT
"", // ORG_BILL_NO
"0", // SEND_YN
"0", // SEND_CONFIRM_DIV
"0", // RESEND_YN
menualOrderValue, // FILLER1
etcOrderFlag, // FILLER2
"", // FILLER3
"", // FILLER4
"", // FILLER5
DateTime.Now.ToString("yyyyMMddHHmmss"), // UPD_DT
DateTime.Now.ToString("yyyyMMddHHmmss"), // REG_DT
m_cPosStatus.Base.TrainingFlag, // Add, 2017.03.06, 주방출력 연습모드 적용
ConvertDBStr(menualOrderMemo), // Add, 2017.03.21
ConvertDBStr(m_cTrnStatus.Head.OrderPicNm), // Add, 2017.03.28, 주문담당자
m_cPosStatus.Base.PosNo, // Add, 2017.04.10, 주문포스번호 (서브포스에서도 주방출력 처리)
"0" // Add, 2017.04.26, KDS 전송여부
);
if(m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }) != UserCom.OK)
{
return;
}
}
m_cSqlDbService.Close();
}
catch (Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
}
private string ConvertDBStr(string str)
{
return str.Replace("'", "''");
}
///
/// 해피오더 데이터 조회
///
///
///
public DataTable GetHappyOrderData(string sOrderNum, string sOrderDt)
{
int iRet = UserCom.NG;
string sQuery = "";
DataTable dtReturn = null;
try
{
//#17141 [해피오더]배달영수증 주소 추가 start
//기존
//sQuery = " SELECT ORD_STS, PRT_YN, NUTRITION_MSG ";
//변경
sQuery = " SELECT ORD_STS, PRT_YN, NUTRITION_MSG, FILLER5 ";
//#17141 [해피오더]배달영수증 주소 추가 end
sQuery += " FROM POSMST..MST_HPORD ";
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
sQuery += " AND ORD_DT = '" + sOrderDt +"' ";
sQuery += " AND ORD_NO = '" + sOrderNum + "' ";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
iRet = m_cSqlDbService.DBSelect(sQuery, out dtReturn);
m_cSqlDbService.Close();
}
catch (Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return dtReturn;
}
///
/// 해피오더 오늘 픽업/배달 주문서출력 건 조회
///
///
///
public DataTable GetTodayHappyOrder()
{
int iRet = UserCom.NG;
string sQuery = "";
DataTable dtReturn = null;
try
{
sQuery = " SELECT ORD_NO ";
sQuery += " FROM POSMST..MST_HPORD ";
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
sQuery += " AND ORD_STS IN ('" + ItemConst.HAPPYORDER_STATUS.ORDER_REG + "') ";
sQuery += " AND PRT_YN = '0' ";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
iRet = m_cSqlDbService.DBSelect(sQuery, out dtReturn);
m_cSqlDbService.Close();
}
catch (Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return dtReturn;
}
///
/// 해피오더 데이터 갱신
///
///
///
public int UpdateHappyOrderData(string[] aParam)
{
int iRet = UserCom.NG;
string sUpdQuery = "";
try
{
sUpdQuery = " UPDATE POSMST..MST_HPORD ";
if(aParam[0] == "PRINT")
{
sUpdQuery += "SET PRT_YN = '" + aParam[1] + "' ";
}
else
{
//sUpdQuery += "SET NUTRITION_MSG = REPLACE('" + aParam[1] + "', CHAR(10), CHAR(13) + CHAR(10))";
sUpdQuery += "SET NUTRITION_MSG = '" + aParam[1] + "' ";
}
sUpdQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' ";
sUpdQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' ";
sUpdQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' ";
sUpdQuery += " AND ORD_DT = '" + aParam[3] + "' ";
sUpdQuery += " AND ORD_NO = '" + aParam[2] + "' ";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
iRet = m_cSqlDbService.DBExecuteNonQuery(new string[] { sUpdQuery }, true);
m_cSqlDbService.Close();
}
catch (Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return iRet;
}
///
/// 해피오더 데이터 삭제
///
///
///
public int DeleteHappyOrderData(string sOrderNum, string sOrderDt)
{
int iRet = UserCom.NG;
string[] sQuery = new string[2];
try
{
sQuery[0] = " DELETE FROM POSMST..MST_HPORD \n"
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
+ " AND ORD_DT = '" + sOrderDt + "' \n"
+ " AND ORD_NO = '" + sOrderNum + "' \n";
sQuery[1] = " DELETE FROM POSMST..MST_KTCH_ORD_MSG \n"
+ " WHERE ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' \n"
+ " AND FLOOR_CD = '" + m_cPosStatus.Base.PosNo + "' \n"
+ " AND TBL_NO = '" + sOrderNum + "' \n"
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
iRet = m_cSqlDbService.DBExecuteNonQuery(sQuery, true);
m_cSqlDbService.Close();
}
catch (Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return iRet;
}
//17.08.22 dkshin SS 해피오더
///
/// 해피오더 데이터 삭제 MST_HPORD
///
///
///
public int DeleteSSHappyOrderData(string sOrderNum, string sOrderDt)
{
int iRet = UserCom.NG;
string sQuery = "";
try
{
sQuery = " DELETE FROM POSMST..MST_HPORD \n"
+ " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "' \n"
+ " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "' \n"
+ " AND ORD_DT = '" + sOrderDt + "' \n"
+ " AND ORD_NO = '" + sOrderNum + "' \n";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
iRet = m_cSqlDbService.DBExecuteNonQuery(sQuery);
m_cSqlDbService.Close();
}
catch (Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return iRet;
}
//17.08.22 dkshin SS 해피오더
///
/// 해피오더 데이터 삭제 MST_KTCH_ORD_MSG
///
///
///
public int DeleteSSHappyOrderMSG(string sOrderNum)
{
int iRet = UserCom.NG;
string sQuery = "";
try
{
sQuery = " DELETE FROM POSMST..MST_KTCH_ORD_MSG \n"
+ " WHERE ORD_DIV = '" + PosConst.ORDER_TYPE.NORMAL + "' \n"
+ " AND FLOOR_CD = '" + m_cPosStatus.Base.PosNo + "' \n"
+ " AND TBL_NO = '" + sOrderNum + "' \n"
+ " AND TRAIN_MODE_YN = '" + m_cPosStatus.Base.TrainingFlag + "' \n";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
iRet = m_cSqlDbService.DBExecuteNonQuery(sQuery);
m_cSqlDbService.Close();
}
catch (Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return iRet;
}
///
/// 해피오더 데이터 저장
///
///
///
public int SaveHappyOrderData(Column.TR_HPORD.HPORD_HEADER header)
{
int iRet = UserCom.NG;
//string sInsQuery = "";
//string sUpdQuery = "";
string sQuery = "";
string sSQL = "";
//#17141 [해피오더]배달영수증 주소 추가 start
string sReceiver = "";
string sReceiverHP = "";
string sReceiverAddress = "";
string sOrderDate = "";
string sOrderStatus = "";
string orderNum = "";
string DeliveryInfo = "";
if (header != null)
{
if (header.OrderType == "4" || header.OrderType == "5")
{
sReceiver = header.Receiver.Trim();
sReceiverHP = header.ReceiverHp.Trim();
sReceiverAddress = header.Address1.Trim() + " " + header.Address2.Trim();
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 start
//기존
//DeliveryInfo = sReceiver.Trim() + "#~" + sReceiverAddress.Trim() + "#~";
//변경
DeliveryInfo = sReceiver.Trim() + "#~" + sReceiverAddress.Trim() + "#~" + sReceiverHP.Trim() + "#~";
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 end
}
orderNum = header.OrderNum;
if (PosMstManager.GetPosOption(POS_OPTION.OPT048) != "0" || PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
{
orderNum = header.DailyCode;
}
sOrderDate = header.OrderDate.Substring(0, 10).Replace("-", "");
sOrderStatus = header.OrderStatus;
}
//#17141 [해피오더]배달영수증 주소 추가 end
try
{
//sInsQuery = " INSERT INTO POSMST..MST_HPORD ";
//sInsQuery += " ( CMP_CD, STOR_CD, ORD_NO, ORD_STS, PRT_YN ";
//sInsQuery += " , NUTRITION_MSG, FILLER1, FILLER2, FILLER3, FILLER4 ";
//sInsQuery += " , FILLER5, UPD_DT, REG_DT ) ";
//sInsQuery += " VALUES ";
//sInsQuery += " ( '{0}', '{1}', '{2}', '{3}', '{4}' ";
//sInsQuery += " , '{5}', '{6}', '{7}', '{8}', '{9}' ";
//sInsQuery += " , '{10}', '{11}' ,'{12}' ) ";
//sUpdQuery = " UPDATE POSMST..MST_HPORD ";
//sUpdQuery += " SET ORD_STS = '{0}' ";
//sUpdQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' ";
//sUpdQuery += " WHERE CMP_CD = '{1}' ";
//sUpdQuery += " AND STOR_CD = '{2}' ";
//sUpdQuery += " AND ORD_NO = '{3}' ";
sQuery = "UPDATE POSMST..MST_HPORD ";
sQuery += " SET ORD_STS = '{0}' ";
sQuery += " , UPD_DT = '" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' ";
sQuery += " WHERE CMP_CD = '{1}' ";
sQuery += " AND STOR_CD = '{2}' ";
sQuery += " AND ORD_NO = '{3}' ";
sQuery += "IF @@ROWCOUNT = 0 ";
sQuery += "INSERT INTO POSMST..MST_HPORD ";
sQuery += " ( CMP_CD, STOR_CD, ORD_DT, ORD_NO, ORD_STS ";
sQuery += " , PRT_YN, NUTRITION_MSG, FILLER1, FILLER2, FILLER3 ";
sQuery += " , FILLER4, FILLER5, UPD_DT, REG_DT ) ";
sQuery += "VALUES ";
sQuery += " ( '{4}', '{5}', '{6}', '{7}', '{8}' ";
sQuery += " , '{9}', '{10}', '{11}', '{12}', '{13}' ";
sQuery += " , '{14}', '{15}' ,'{16}', '{17}' ) ";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
//sSQL = string.Format(sUpdQuery,
// header.OrderStatus,
// m_cPosStatus.Base.CmpCd,
// m_cPosStatus.Base.StoreNo,
// header.OrderNum);
//iRet = m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }, true);
//if(iRet != UserCom.OK)
//{
// sSQL = string.Format(sInsQuery,
// m_cPosStatus.Base.CmpCd,
// m_cPosStatus.Base.StoreNo,
// header.OrderNum,
// header.OrderStatus,
// "0",
// "",
// "", "", "", "", "",
// DateTime.Now.ToString("yyyyMMddHHmmss"),
// DateTime.Now.ToString("yyyyMMddHHmmss"));
// iRet = m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }, true);
//}
//17.08.22 dkshin SS 해피오더 - dailyCode값 대기번호가 TBL_NO으로 저장되므로 ORDER_NO에 대기번호 저장
//#17141 [해피오더]배달영수증 주소 추가 start
//기존
/*
string orderNum = header.OrderNum;
if (PosMstManager.GetPosOption(POS_OPTION.OPT048) != "0" || PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
{
orderNum = header.DailyCode;
}
sSQL = string.Format(sQuery,
header.OrderStatus,
m_cPosStatus.Base.CmpCd,
m_cPosStatus.Base.StoreNo,
//17.08.22 dkshin SS 해피오더
//header.OrderNum,
orderNum,
m_cPosStatus.Base.CmpCd,
m_cPosStatus.Base.StoreNo,
header.OrderDate.Substring(0, 10).Replace("-", ""),
//17.08.22 dkshin SS 해피오더
//header.OrderNum,
orderNum,
header.OrderStatus,
"0",
"",
"", "", "", "", "",
DateTime.Now.ToString("yyyyMMddHHmmss"),
DateTime.Now.ToString("yyyyMMddHHmmss"));
*/
//변경
sSQL = string.Format(sQuery,
header.OrderStatus,
m_cPosStatus.Base.CmpCd,
m_cPosStatus.Base.StoreNo,
orderNum,
m_cPosStatus.Base.CmpCd,
m_cPosStatus.Base.StoreNo,
sOrderDate,
orderNum,
sOrderStatus,
"0",
"",
"", "", "", "",
DeliveryInfo,
DateTime.Now.ToString("yyyyMMddHHmmss"),
DateTime.Now.ToString("yyyyMMddHHmmss"));
//#17141 [해피오더]배달영수증 주소 추가 end
iRet = m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }, true);
m_cSqlDbService.Close();
}
catch(Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return iRet;
}
///
/// 영양상태 정보 파싱 처리
///
///
///
public string ParseNutritionMsg(Hashtable[] htNutritionMsgs)
{
StringBuilder sbPrintMsg = new StringBuilder();
string LF = "\r\n";
try
{
//grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - [BR] 영양정보 분기 처리
if (m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) == true)
{
foreach (Hashtable htMsg in htNutritionMsgs)
{
// 상품명
sbPrintMsg.Append("-상품명 : " + htMsg["goodsName"].ToString());
sbPrintMsg.Append(LF);
// 영양정보 #1 ~ #15
for (int nLoop = 1; nLoop < 16; nLoop++)
{
if (htMsg["text" + nLoop.ToString()] != null)
{
sbPrintMsg.Append("-"+htMsg["text" + nLoop.ToString()].ToString());
sbPrintMsg.Append(" : ");
if (htMsg["content" + nLoop.ToString()] != null)
{
sbPrintMsg.Append(htMsg["content" + nLoop.ToString()].ToString());
}
sbPrintMsg.Append(LF);
}
}
sbPrintMsg.Append(LF);
}
}
else
{
foreach (Hashtable htMsg in htNutritionMsgs)
{
// 상품명
sbPrintMsg.Append(htMsg["goodsName"].ToString());
sbPrintMsg.Append(LF);
// infoType
sbPrintMsg.Append(htMsg["infoType"].ToString());
sbPrintMsg.Append(LF);
// 영양정보 #1 ~ #15
for (int nLoop = 1; nLoop < 16; nLoop++)
{
if (htMsg["text" + nLoop.ToString()] != null)
{
if (nLoop > 1) sbPrintMsg.Append("/");
sbPrintMsg.Append(htMsg["text" + nLoop.ToString()].ToString());
sbPrintMsg.Append(" - ");
if (htMsg["content" + nLoop.ToString()] != null)
{
sbPrintMsg.Append(htMsg["content" + nLoop.ToString()].ToString());
}
}
}
sbPrintMsg.Append(LF);
}
}
//grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end
}
catch(Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return sbPrintMsg.ToString();
}
///
/// 해피오더 Http 통신
///
///
///
public Hashtable[] SendReceiveForHappyOrder(object[] aParam, ref Hashtable htResponse, ref int iReturn)
{
string sUrl;
string sWorkType;
Hashtable htRequest;
Hashtable[] htReturn = null;
int iRet = BaseCom.NG;
try
{
sUrl = (string)aParam[0];
sWorkType = (string)aParam[1];
htRequest = (Hashtable)aParam[2];
htResponse = null;
string sResp = string.Empty;
if ((iRet = m_cNetworkHttp.HttpJsonPOST_SendReceive(sUrl, sWorkType, htRequest, ref htResponse, ref sResp)) == BaseCom.OK)
{
htReturn = JsonConvert.DeserializeObject(sResp);
}
iReturn = iRet;
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return htReturn;
}
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
public Hashtable SendReceiveForHappyOrder2(object[] aParam, ref Hashtable htResponse, ref int iReturn)
{
string sUrl;
string sWorkType;
Hashtable htRequest;
Hashtable htReturn = null;
int iRet = BaseCom.NG;
try
{
sUrl = (string)aParam[0];
sWorkType = (string)aParam[1];
htRequest = (Hashtable)aParam[2];
htResponse = null;
string sResp = string.Empty;
if ((iRet = m_cNetworkHttp.HttpJsonPOST_SendReceive(sUrl, sWorkType, htRequest, ref htResponse, ref sResp)) == BaseCom.OK)
{
htReturn = JsonConvert.DeserializeObject(sResp);
}
iReturn = iRet;
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return htReturn;
}
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 end
///
/// JSon string parsing
///
///
///
public Hashtable[] ParseJsonString(string sJsonString)
{
Hashtable[] htReturn = null;
try
{
htReturn = JsonConvert.DeserializeObject(sJsonString);
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return htReturn;
}
///
/// 주문서 출력
///
/// D: 당일, M: 당월
/// true: 자동출력, false: 자동미출력
///
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
//기존
//public bool PrintOrderSheet()
//변경
public bool PrintOrderSheet(string sPrtGubun, bool bHPOAutoPrintYN)
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 end
{
bool bReturn = false;
try
{
string[] arPrintData = (string[])m_sPrintData.ToArray(typeof(string));
//bReturn = m_cPrinterUs.ReceiptPrinter(arPrintData);
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
//기존
//bReturn = m_cRecService.PosPrint(arPrintData);
//변경
bReturn = m_cRecService.PosPrint(arPrintData, bHPOAutoPrintYN, sPrtGubun);
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 end
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return bReturn;
}
public bool PrintWeightLabel(ArrayList alOrderItem)
{
bool bReturn = false;
string sGoodsName = string.Empty;
string sOrderNum = string.Empty;
string sWeight = string.Empty;
string sContent1 = string.Empty;
string sContent2 = string.Empty;
string sStoreName = string.Empty;
string sOrderDT = string.Empty;
string sPackDT = string.Empty;
try
{
foreach(Column.TR_HPORD.HPORD_ITEM item in alOrderItem)
{
if(item.FlavourFlag == "N")
{
sGoodsName = item.GoodsName;
sOrderNum = item.OrderNum;
}
else
{
}
}
}
catch(Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return bReturn;
}
#region 상품정보조회 IRT 처리
///
/// 상품정보 조회 IRT 처리
///
///
///
///
///
///
private string ExecItemInfoIrt(string sCmpCd, string sStoreCd, string sItemCd, ref Hashtable htRecvData)
{
string sRet = UserCom.RST_ERR;
try
{
Hashtable htReqData = new Hashtable();
htReqData.Add(Column.IQ_POS_ITEMINFO.DATA.INQ_TYPE, ItemConst.IRT_INQ_TYPE.POS_ITEMINFO_REQ);
htReqData.Add(Column.IQ_POS_ITEMINFO.DATA.CMP_CD, sCmpCd);
htReqData.Add(Column.IQ_POS_ITEMINFO.DATA.STOR_CD, sStoreCd);
htReqData.Add(Column.IQ_POS_ITEMINFO.DATA.ITEM_CD, sItemCd);
htReqData.Add(Column.IQ_POS_ITEMINFO.DATA.ITEM_DATA, "");
htReqData.Add(Column.IQ_POS_ITEMINFO.DATA.RES_CD, "");
return m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.POSIRT, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.PayInqPort, 10000, htReqData, ref htRecvData, false);
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return sRet;
}
#endregion
#region 상품마스터 등록 처리
private bool RegisterItemInfoToMst(string aItemInfo)
{
string sQuery = string.Empty;
string sInsQuery = string.Empty;
IDatabaseSQL cDatabaseSql = null;
string[] aParams = aItemInfo.Split('|');
try
{
sInsQuery += "UPDATE POSMST..MST_ITEM ";
sInsQuery += " SET L_CLSS = '{4}', M_CLSS = '{5}', S_CLSS = '{6}', FLAVOUR_DIV = '{7}', FLAVOUR_QTY = {8} ";
sInsQuery += " , FLAVOUR_STOCK = {9}, SHTCUT_ITEMNM = N'{10}', ITEM_NM = N'{11}', TAKE_IN_SALE_AMT = {12}, TAKE_OUT_SALE_AMT = {13} ";
sInsQuery += " , IF_MENU1 = '{14}', IF_MENU2 = '{15}', OPEN_ITEM_DIV = '{16}', DISPO_ITEM_DIV = '{17}', SUB_SET_MNG_TYPE = '{18}' ";
sInsQuery += " , ITEM_TAX_AMT_DIV = '{19}', TAKE_IN_VAT_CD = '{20}', TAKE_OUT_VAT_CD = '{21}', ITEM_COST = {22} ";
sInsQuery += " , SALE_PRMT_YN = '{23}', SALE_NOQ = {24}, FREE_GIFT_YN = '{25}', DC_PRMT_YN = '{26}', ACCUM_PRMT_YN = '{27}' ";
sInsQuery += " , SVC_FEE_TRGT_YN = '{28}', BTN_ITEM_IMG = '{29}', NEW_ITEM_START_DT = '{30}', NEW_ITEM_FNSH_DT = '{31}', ITEM_TYPE = '{32}' ";
sInsQuery += " , TIME_BAR_CD_YN = '{33}', DISTBT_EXPIRE_NOD = '{34}', ALCOHOL_ITEM_TYPE = '{35}', SALE_START_DT = '{36}', SALE_FNSH_DT = '{37}' ";
sInsQuery += " , COOP_CARD_DC_NOADM_YN = '{38}', CAKE_EXCHNG_CPN_USE_POSS_YN = '{39}', ITEM_INFO = N'{40}', CALORY_INFO = N'{41}', SALE_IMG_FILE_NM = '{42}' ";
sInsQuery += " , FILLER1 = '{43}', FILLER2 = '{44}', FILLER3 = '{45}', FILLER4 = '{46}', FILLER5 = '{47}' ";
sInsQuery += " , USE_YN = '{48}', UPD_DT = '{49}' ";
sInsQuery += " WHERE CMP_CD = '{0}' ";
sInsQuery += " AND STOR_CD = '{1}' ";
sInsQuery += " AND SUB_STOR_CD = '{2}' ";
sInsQuery += " AND ITEM_CD = '{3}' ";
sInsQuery += "IF @@ROWCOUNT = 0 ";
sInsQuery += "INSERT INTO POSMST..MST_ITEM ";
sInsQuery += " ( CMP_CD, STOR_CD, SUB_STOR_CD, ITEM_CD, L_CLSS ";
sInsQuery += " , M_CLSS, S_CLSS, FLAVOUR_DIV, FLAVOUR_QTY, FLAVOUR_STOCK ";
sInsQuery += " , SHTCUT_ITEMNM, ITEM_NM, TAKE_IN_SALE_AMT, TAKE_OUT_SALE_AMT, IF_MENU1 ";
sInsQuery += " , IF_MENU2, OPEN_ITEM_DIV, DISPO_ITEM_DIV, SUB_SET_MNG_TYPE, ITEM_TAX_AMT_DIV ";
sInsQuery += " , TAKE_IN_VAT_CD, TAKE_OUT_VAT_CD, ITEM_COST, SALE_PRMT_YN, SALE_NOQ ";
sInsQuery += " , FREE_GIFT_YN, DC_PRMT_YN, ACCUM_PRMT_YN, SVC_FEE_TRGT_YN, BTN_ITEM_IMG ";
sInsQuery += " , NEW_ITEM_START_DT, NEW_ITEM_FNSH_DT, ITEM_TYPE, TIME_BAR_CD_YN, DISTBT_EXPIRE_NOD ";
sInsQuery += " , ALCOHOL_ITEM_TYPE, SALE_START_DT, SALE_FNSH_DT, COOP_CARD_DC_NOADM_YN, CAKE_EXCHNG_CPN_USE_POSS_YN ";
sInsQuery += " , ITEM_INFO, CALORY_INFO, SALE_IMG_FILE_NM, FILLER1, FILLER2 ";
sInsQuery += " , FILLER3, FILLER4, FILLER5, USE_YN, REG_DT ) ";
sInsQuery += "VALUES ";
sInsQuery += " ( '{0}', '{1}', '{2}', '{3}', '{4}' ";
sInsQuery += " , '{5}', '{6}', '{7}', {8}, {9} ";
sInsQuery += " , N'{10}', N'{11}', {12}, {13}, '{14}' ";
sInsQuery += " , '{15}', '{16}', '{17}', '{18}', '{19}' ";
sInsQuery += " , '{20}', '{21}', {22}, '{23}', {24} ";
sInsQuery += " , '{25}', '{26}', '{27}', '{28}', '{29}' ";
sInsQuery += " , '{30}', '{31}', '{32}', '{33}', '{34}' ";
sInsQuery += " , '{35}', '{36}', '{37}', '{38}', '{39}' ";
sInsQuery += " , N'{40}', N'{41}', '{42}', '{43}', '{44}' ";
sInsQuery += " , '{45}', '{46}', '{47}', '{48}', '{49}' ) ";
sQuery = string.Format( sInsQuery
, aParams[0], m_cPosStatus.Base.StoreNo, aParams[2], aParams[3], aParams[4]
, aParams[5], aParams[6], aParams[7], aParams[8], aParams[9]
, aParams[10], aParams[11], aParams[12], aParams[13], aParams[14]
, aParams[15], aParams[16], aParams[17], aParams[18], aParams[19]
, aParams[20], aParams[21], aParams[22], aParams[23], aParams[24]
, aParams[25], aParams[26], aParams[27], aParams[28], aParams[29]
, aParams[30], aParams[31], aParams[32], aParams[33], aParams[34]
, aParams[35], aParams[36], aParams[37], aParams[38], aParams[39]
, aParams[40], aParams[41], aParams[42], aParams[43], aParams[44]
, aParams[45], aParams[46], aParams[47], aParams[48], DateTime.Now.ToString("yyyyMMddHHmmsss"));
cDatabaseSql = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
// DB Connect
cDatabaseSql.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource
, m_cPosStatus.Base.LocalDbCatalog
, m_cPosStatus.Base.LocalDbUserID
, m_cPosStatus.Base.LocalDbPassword);
if (cDatabaseSql.DBExecuteNonQuery(sQuery) != UserCom.OK)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
UserCom.WARNING_LEVEL,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
sQuery);
return false;
}
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
return false;
}
finally
{
cDatabaseSql.Close();
}
return true;
}
#endregion
#region 상품TRAN 생성
private string MakeTranItemUsingMST(DataTable dtItemData, Column.TR_HPORD.HPORD_HEADER hpordHeader, Column.TR_HPORD.HPORD_ITEM hpordItem)
{
string sReturn = UserCom.RST_ERR;
double nTotDcAmt = 0;
try
{
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
// 상품 정보 생성
Column.TR_PLU.DATA cPluItem = new Column.TR_PLU.DATA();
DataRow drPlu = dtItemData.Rows[0];
//20171215_판매불가 체크 제외_hs
//해피오더 상품 매출 처리중 판매불가 상품 체크 제외
//if (CmUtil.LongParse(CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SALE_START_DT)) > CmUtil.LongParse(m_cPosStatus.Base.SaleDate)
// || CmUtil.LongParse(CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SALE_FNSH_DT)) < CmUtil.LongParse(m_cPosStatus.Base.SaleDate))
//{
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0011); // 판매 불가 상품 입니다
// return sReturn;
//}
//#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 start
cPluItem.HPO_REG_YN = "1";
//#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 end
cPluItem.SUB_SHOP_CD = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SUB_STOR_CD);
cPluItem.ITEM_PLU_CD = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.ITEM_CD);
if (PosMstManager.GetPosOption(POS_OPTION.OPT005) == "0")
{
cPluItem.SALE_PRC = CmUtil.GetDataRowDouble(drPlu, PosMst.MST_ITEM.DATA.TAKE_OUT_SALE_AMT);
cPluItem.TAXRATE_CD = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.TAKE_OUT_VAT_CD);
}
else
{
cPluItem.SALE_PRC = CmUtil.GetDataRowDouble(drPlu, PosMst.MST_ITEM.DATA.TAKE_IN_SALE_AMT);
cPluItem.TAXRATE_CD = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.TAKE_IN_VAT_CD);
}
cPluItem.ITEM_TAKE_IN_VAT_CD = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.TAKE_IN_VAT_CD);
cPluItem.ITEM_TAKE_OUT_VAT_CD = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.TAKE_OUT_VAT_CD);
cPluItem.FLAVOUR_DIV = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.FLAVOUR_DIV) == "" ? ItemConst.PLU_FLAVOUR_DIV.NORMAL : CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.FLAVOUR_DIV);
cPluItem.FLAVOUR_QTY = CmUtil.GetDataRowLong(drPlu, PosMst.MST_ITEM.DATA.FLAVOUR_QTY);
cPluItem.FLAVOUR_STOCK = CmUtil.GetDataRowDouble(drPlu, PosMst.MST_ITEM.DATA.FLAVOUR_STOCK);
cPluItem.ITEM_TAX_DIV = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.ITEM_TAX_AMT_DIV);
cPluItem.NOTAX_DIV = PosConst.ITEM_NOTAX_DIV.NO;
cPluItem.SUB_SET_MNG_TYPE = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SUB_SET_MNG_TYPE);
cPluItem.ITEM_NAME = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM);
cPluItem.FREE_GIFT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.FREE_GIFT_YN);
cPluItem.DC_PRMT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.DC_PRMT_YN);
cPluItem.ACCUM_PRMT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.ACCUM_PRMT_YN);
cPluItem.SVC_FEE_TRGT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SVC_FEE_TRGT_YN);
cPluItem.COOP_CARD_DC_NOADM_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.COOP_CARD_DC_NOADM_YN);
cPluItem.L_CLSS = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.L_CLSS);
cPluItem.M_CLSS = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.M_CLSS);
cPluItem.S_CLSS = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.S_CLSS);
cPluItem.CANCEL_DIV = PosConst.CANCEL_DIV.NORMAL;
cPluItem.ITEM_BRAND_CD = m_cPosStatus.Base.BrandCd;
cPluItem.ITEM_DIV = ItemConst.PLU_ITEM_DIV.NORMAL;
cPluItem.SUB_SET_MNG_TYPE = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SUB_SET_MNG_TYPE);
if (cPluItem.FLAVOUR_DIV == ItemConst.PLU_FLAVOUR_DIV.FLAVOUR)
{
// 플레이버
cPluItem.ITEM_NAME = ">" + CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM);
}
else
{
cPluItem.ITEM_NAME = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM);
}
cPluItem.SALE_QTY = long.Parse(CmUtil.IsNull(hpordItem.Qty, "0"));
cPluItem.SALE_PRC = double.Parse(hpordItem.SupplyPrice.Trim() == "" ? "0" : hpordItem.SupplyPrice.Trim());
cPluItem.SALE_AMT = CmUtil.DoubleMultiplication(cPluItem.SALE_QTY, cPluItem.SALE_PRC);
cPluItem.TAX_AMT_INCLUDE_YN = m_cPosStatus.Mst.TaxAmtIncludeYn;
if (double.Parse(CmUtil.IsNull(hpordItem.CashTotSurTax, "0")) > 0)
{
cPluItem.ITEM_TAX_DIV = "1";
cPluItem.APPLY_TAX_AMT = double.Parse(hpordItem.CashTotSurTax);
}
else
{
cPluItem.ITEM_TAX_DIV = "0";
cPluItem.APPLY_TAX_AMT = 0;
}
//cPluItem.ETC_DC_AMT = double.Parse(CmUtil.IsNull(hpordItem.DiscountPrice, "0"));
cPluItem.ETC_DC_AMT = CmUtil.DoubleMultiplication(cPluItem.SALE_QTY, double.Parse(CmUtil.IsNull(hpordItem.DiscountPrice, "0")));
if (cPluItem.ETC_DC_AMT > 0)
{
if (hpordHeader.OrderType.Equals("6"))
{
// 사전예약일 경우 사전예약할인으로 기타할인구분 설정(2017.04.11)
cPluItem.ETC_DC_DIV = ItemConst.PLU_ETC_DC_TYPE.DC_PRE_RESERVED;
}
else
{
// 그 이외는 해피오더할인으로 기타할인구분 설정
cPluItem.ETC_DC_DIV = ItemConst.PLU_ETC_DC_TYPE.DC_HPORD;
}
}
else
{
cPluItem.ETC_DC_DIV = ItemConst.PLU_ETC_DC_TYPE.NORMAL;
}
cPluItem.EXCEP_DC_DIV = "0000";
cPluItem.EXCEP_DC_AMT = 0;
cPluItem.SVC_FEE_AMT = 0;
cPluItem.SVC_FEE_VAT = 0;
cPluItem.DC_DIV = ItemConst.PLU_DC_DIV.NORMAL;
cPluItem.DC_RATE = 0;
cPluItem.ITEM_DC_AMT = 0;
cPluItem.SUM_DC_AMT = 0;
cPluItem.CPI_DC_AMT = 0;
cPluItem.COOP_CARD_DC_AMT = 0;
cPluItem.POINT_DC_AMT = 0;
cPluItem.CPN_DC_AMT = 0;
cPluItem.EMP_DC_AMT = 0;
cPluItem.SET_DC_AMT = 0;
cPluItem.SET_DC_GROUP_CD = 0;
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.ITEM_DC_AMT); // 단품 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.SUM_DC_AMT); // 소계 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.CPI_DC_AMT); // 행사 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.COOP_CARD_DC_AMT); // 제휴카드 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.POINT_DC_AMT); // 포인트 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.CPN_DC_AMT); // 쿠폰 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.EMP_DC_AMT); // 직원 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.SET_DC_AMT); // 세트 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.ETC_DC_AMT); // 기타 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.EXCEP_DC_AMT); // 예외 할인 금액
cPluItem.TOT_DC_AMT = nTotDcAmt;
cPluItem.BILL_AMT = CmUtil.DoubleSubtraction(cPluItem.SALE_AMT, cPluItem.TOT_DC_AMT); // 영수금액
cPluItem.ITEM_INPUT_DIV = "0";
cPluItem.ITEM_BAR_CD = hpordItem.Barcode;
aSaleItem.Add(cPluItem);
sReturn = UserCom.RST_OK;
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return sReturn;
}
private string MakeTranItemUsingHPORD(Column.TR_HPORD.HPORD_HEADER hpordHeader, Column.TR_HPORD.HPORD_ITEM hpordItem)
{
string sReturn = UserCom.RST_ERR;
double nTotDcAmt = 0;
try
{
if (hpordItem.GoodsCode == null || hpordItem.GoodsCode == "0") return sReturn;
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
// 상품 정보 생성
Column.TR_PLU.DATA cPluItem = new Column.TR_PLU.DATA();
//#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 start
cPluItem.HPO_REG_YN = "1";
//#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 end
cPluItem.CANCEL_DIV = PosConst.CANCEL_DIV.NORMAL;
cPluItem.ITEM_PLU_CD = hpordItem.GoodsCode;
cPluItem.ITEM_BRAND_CD = m_cPosStatus.Base.BrandCd;
cPluItem.SUB_SHOP_CD = m_cPosStatus.Base.StoreNo;
cPluItem.ITEM_DIV = ItemConst.PLU_ITEM_DIV.NORMAL;
cPluItem.SUB_SET_MNG_TYPE = PosConst.MST_SUB_SET_MNG_TYPE.NORMAL;
if (CmUtil.StringNullEmpty(hpordItem.FlavourFlag).Equals("N") == false)
{
cPluItem.ITEM_NAME = " >" + hpordItem.GoodsName;
cPluItem.FLAVOUR_DIV = ItemConst.PLU_FLAVOUR_DIV.FLAVOUR;
}
else
{
cPluItem.ITEM_NAME = hpordItem.GoodsName;
cPluItem.FLAVOUR_DIV = ItemConst.PLU_FLAVOUR_DIV.NORMAL;
}
cPluItem.SALE_QTY = long.Parse(CmUtil.IsNull(hpordItem.Qty, "0"));
cPluItem.SALE_PRC = double.Parse(hpordItem.SupplyPrice.Trim() == "" ? "0" : hpordItem.SupplyPrice.Trim());
cPluItem.SALE_AMT = CmUtil.DoubleMultiplication(cPluItem.SALE_QTY, cPluItem.SALE_PRC);
//cPluItem.TAX_AMT_INCLUDE_YN = "1";
cPluItem.TAX_AMT_INCLUDE_YN = m_cPosStatus.Mst.TaxAmtIncludeYn;
if (double.Parse(CmUtil.IsNull(hpordItem.CashTotSurTax, "0")) > 0)
{
cPluItem.ITEM_TAX_DIV = "1";
cPluItem.APPLY_TAX_AMT = double.Parse(hpordItem.CashTotSurTax);
}
else
{
cPluItem.ITEM_TAX_DIV = "0";
cPluItem.APPLY_TAX_AMT = 0;
}
cPluItem.NOTAX_DIV = PosConst.ITEM_NOTAX_DIV.NO;
//cPluItem.ETC_DC_AMT = double.Parse(CmUtil.IsNull(hpordItem.DiscountPrice, "0"));
cPluItem.ETC_DC_AMT = CmUtil.DoubleMultiplication(cPluItem.SALE_QTY, double.Parse(CmUtil.IsNull(hpordItem.DiscountPrice, "0")));
if (cPluItem.ETC_DC_AMT > 0)
{
if (hpordHeader.OrderType.Equals("6"))
{
// 사전예약일 경우 사전예약할인으로 기타할인구분 설정(2017.04.11)
cPluItem.ETC_DC_DIV = ItemConst.PLU_ETC_DC_TYPE.DC_PRE_RESERVED;
}
else
{
// 그 이외는 해피오더할인으로 기타할인구분 설정
cPluItem.ETC_DC_DIV = ItemConst.PLU_ETC_DC_TYPE.DC_HPORD;
}
}
else
{
cPluItem.ETC_DC_DIV = ItemConst.PLU_ETC_DC_TYPE.NORMAL;
}
cPluItem.EXCEP_DC_DIV = "0000";
cPluItem.EXCEP_DC_AMT = 0;
cPluItem.SVC_FEE_AMT = 0;
cPluItem.SVC_FEE_VAT = 0;
cPluItem.DC_DIV = ItemConst.PLU_DC_DIV.NORMAL;
cPluItem.DC_RATE = 0;
cPluItem.ITEM_DC_AMT = 0;
cPluItem.SUM_DC_AMT = 0;
cPluItem.CPI_DC_AMT = 0;
//cPluItem.COOP_CARD_DC_DIV =
cPluItem.COOP_CARD_DC_AMT = 0;
//cPluItem.POINT_DC_DIV
cPluItem.POINT_DC_AMT = 0;
//cPluItem.CPN_DC_DIV
cPluItem.CPN_DC_AMT = 0;
//cPluItem.EMP_DC_DIVEC
cPluItem.EMP_DC_AMT = 0;
cPluItem.SET_DC_AMT = 0;
cPluItem.SET_DC_GROUP_CD = 0;
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.ITEM_DC_AMT); // 단품 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.SUM_DC_AMT); // 소계 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.CPI_DC_AMT); // 행사 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.COOP_CARD_DC_AMT); // 제휴카드 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.POINT_DC_AMT); // 포인트 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.CPN_DC_AMT); // 쿠폰 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.EMP_DC_AMT); // 직원 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.SET_DC_AMT); // 세트 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.ETC_DC_AMT); // 기타 할인 금액
nTotDcAmt = CmUtil.DoubleAdd(nTotDcAmt, cPluItem.EXCEP_DC_AMT); // 예외 할인 금액
cPluItem.TOT_DC_AMT = nTotDcAmt;
cPluItem.BILL_AMT = CmUtil.DoubleSubtraction(cPluItem.SALE_AMT, cPluItem.TOT_DC_AMT); // 영수금액
cPluItem.ITEM_INPUT_DIV = "0";
cPluItem.ITEM_BAR_CD = hpordItem.Barcode;
aSaleItem.Add(cPluItem);
sReturn = UserCom.RST_OK;
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return sReturn;
}
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
//기존
//public string MakeTranItem(Column.TR_HPORD.HPORD_HEADER cHeader, ArrayList aItem)
//변경
public string MakeTranItem(Column.TR_HPORD.HPORD_HEADER cHeader, ArrayList aItem, Hashtable htReadingBarCodeInfo)
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
{
string sReturn = UserCom.RST_ERR;
try
{
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
bool bLandomBoxSetting = false;
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
ArrayList aSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
foreach(Column.TR_HPORD.HPORD_ITEM item in aItem)
{
// 상품 마스터 조회
DataTable dtDataInfo = m_cDataCommon.SearchItemCode(m_cPosStatus.Base.StoreNo, item.GoodsCode, "");
if(dtDataInfo == null || dtDataInfo.Rows.Count == 0)
{
// 서버 상품 조회
Hashtable htRecvData = new Hashtable();
ExecItemInfoIrt(m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, item.GoodsCode, ref htRecvData);
if(htRecvData == null || htRecvData.Count == 0)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"Make tran data using HAPPY ORDER");
// 해피오더 아이템 정보로 트란데이터 생성
MakeTranItemUsingHPORD(cHeader, item);
}
else
{
if(htRecvData[Column.IQ_POS_ITEMINFO.DATA.RES_CD].ToString() == "00")
{
string sItemInfo = htRecvData[Column.IQ_POS_ITEMINFO.DATA.ITEM_DATA].ToString();
if(RegisterItemInfoToMst(sItemInfo) == false)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"Make tran data using HAPPY ORDER");
// 해피오더 아이템 정보로 트란데이터 생성
MakeTranItemUsingHPORD(cHeader, item);
}
else
{
// 상품 마스터 정보로 트란데이터 생성
dtDataInfo = m_cDataCommon.SearchItemCode(m_cPosStatus.Base.StoreNo, item.GoodsCode, "");
if (dtDataInfo != null && dtDataInfo.Rows.Count > 0)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"Make tran data using MST_ITEM table");
MakeTranItemUsingMST(dtDataInfo, cHeader, item);
}
else
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"Make tran data using HAPPY ORDER");
// 해피오더 아이템 정보로 트란데이터 생성
MakeTranItemUsingHPORD(cHeader, item);
}
}
}
else
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"Make tran data using HAPPY ORDER");
// 해피오더 아이템 정보로 트란데이터 생성
MakeTranItemUsingHPORD(cHeader, item);
}
}
}
else
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"Make tran data using MST_ITEM table");
// 상품 마스터 정보로 트란데이터 생성
MakeTranItemUsingMST(dtDataInfo, cHeader, item);
}
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
if (htReadingBarCodeInfo != null && bLandomBoxSetting == false)
{
if (htReadingBarCodeInfo.Count > 0)
{
if (item.OrderNum == htReadingBarCodeInfo["HPORDER_NO"].ToString() &&
item.GoodsCode == htReadingBarCodeInfo["ITEM_CD"].ToString())
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"Make HappOrder LandomBox Item ▶" +
" OrderNum : " + htReadingBarCodeInfo["HPORDER_NO"].ToString() +
" ,ItemCode : " + htReadingBarCodeInfo["ITEM_CD"].ToString() +
" ,BarCodeNo : " + htReadingBarCodeInfo["BARCODE_NO"].ToString() +
" ,SaleDt : " + htReadingBarCodeInfo["SALE_DT"].ToString() +
" ,RegNo : " + htReadingBarCodeInfo["REG_NO"].ToString() +
" ,PosNo : " + htReadingBarCodeInfo["POS_NO"].ToString());
bool bRet = LoadLocalTrDetail(htReadingBarCodeInfo["SALE_DT"].ToString(),
htReadingBarCodeInfo["POS_NO"].ToString(),
htReadingBarCodeInfo["REG_NO"].ToString(),
htReadingBarCodeInfo["ITEM_CD"].ToString(),
htReadingBarCodeInfo["BARCODE_NO"].ToString());
bLandomBoxSetting = true;
}
}
}
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
}
// 상품 판매가 계산
// 해피오더는 캠페인 태우지 않음(20170601)
//m_cPluService.ItemAmountExeccute(true, true);
m_cPluService.ItemAmountExeccute(false, true);
sReturn = UserCom.RST_OK;
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return sReturn;
}
#endregion 상품TRAN 생성
//#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 Start
///
/// 해피오더 데이터 전체 삭제
///
///
public int DeleteHappyOrderAllData()
{
int iRet = UserCom.NG;
string sQuery = "";
try
{
sQuery = "TRUNCATE TABLE POSMST..MST_HPORD \n";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
iRet = m_cSqlDbService.DBExecuteNonQuery(sQuery);
m_cSqlDbService.Close();
}
catch (Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return iRet;
}
//#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 End
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
#region LoadLocalTrDetail
private bool LoadLocalTrDetail(string sSaleDate, string sPosNo, string sTradeNo, string sItemCd, string sBarcodeNo)
{
bool bRet = false;
try
{
string sQuery = "";
sQuery += " SELECT '#~' + '" + ItemConst.IRT_TRAN_TYPE.TranDetail + "' + '|' + '000000' + '|' + CONVERT(VARCHAR, ISNULL(SEQ, 0)) + '|' + ISNULL(ORD_TIME, '') + '|' + ISNULL(FLOOR_CD, '') + '|' + ISNULL(TBL_NO, '') + '|' + ";
sQuery += " ISNULL(SUB_SHOP_CD, '') + '|' + ISNULL(ITEM_PLU_CD, '') + '|' + ISNULL(ITEM_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(SALE_QTY, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SALE_PRC, 0)) + '|' + ";
sQuery += " CONVERT(VARCHAR, ISNULL(SALE_AMT, 0)) + '|' + ISNULL(FLAVOUR_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(FLAVOUR_WEIGHT, 0)) + '|' + ISNULL(ITEM_INPUT_DIV, '') + '|' + ISNULL(ITEM_BAR_CD, '') + '|' + ";
sQuery += " ISNULL(TAKE_IN_OUT_DIV, '') + '|' + ISNULL(ITEM_TAX_DIV, '') + '|' + ISNULL(TAX_AMT_INCLUDE_YN, '') + '|' + ISNULL(TAXRATE_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(APPLY_TAX_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SVC_FEE_VAT, 0)) + '|' + ";
sQuery += " ISNULL(SVC_TAXREATE_CD, '') + '|' + CONVERT(VARCHAR, ISNULL(BILL_AMT, 0)) + '|' + ISNULL(NONSALES_RSN_CD, '') + '|' + ISNULL(DC_DIV, '') + '|' + ISNULL(DC_TYPE, '') + '|' + CONVERT(VARCHAR, ISNULL(DC_RATE, 0)) + '|' + CONVERT(VARCHAR, ISNULL(ITEM_DC_AMT, 0)) + '|' + ";
sQuery += " CONVERT(VARCHAR, ISNULL(SUM_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPI_DC_QTY, 0)) + '|' + CONVERT(VARCHAR, ISNULL(CPI_DC_AMT, 0)) + '|' + ISNULL(COOP_CARD_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(COOP_CARD_DC_AMT, 0)) + '|' + ISNULL(POINT_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(POINT_DC_AMT, 0)) + '|' + ";
sQuery += " ISNULL(CPN_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(CPN_DC_AMT, 0)) + '|' + ISNULL(EMP_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(EMP_DC_AMT, 0)) + '|' + CONVERT(VARCHAR, ISNULL(SET_DC_AMT, 0)) + '|' + ISNULL(ETC_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(ETC_DC_AMT, 0)) + '|' + ";
sQuery += " ISNULL(EXCEP_DC_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(EXCEP_DC_AMT, 0)) + '|' + ISNULL(PACK_DIV, '') + '|' + ISNULL(SET_MENU_CD, '') + '|' + ISNULL(SUBPRC_MENU_KEY_DIV, '') + '|' + ";
sQuery += " ISNULL(CPI_PRESENT_DIV, '') + '|' + CONVERT(VARCHAR, ISNULL(BILLSPR_NO, 0)) + '|' + ISNULL(SALE_GIFT_NO, '') + '|' + ISNULL(CPN_NO, '') + '|' + ISNULL(SLACK_FIELD, '') + '|' + ISNULL(DISPO_ITEM_DIV, '') + '|' + ISNULL(CANCEL_DIV, '') + '|' + ISNULL(NOTAX_DIV, '0') AS TR_DETAIL";
sQuery += " FROM POSLOG..ETC_SALE_DETAIL ";
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
sQuery += " AND SALE_DT = '" + sSaleDate + "'";
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.StoreNo + "'";
sQuery += " AND POS_NO = '" + sPosNo + "'";
sQuery += " AND REG_NO = '" + sTradeNo + "'";
sQuery += " AND CANCEL_DIV = '" + ItemConst.PAY_CANCEL_DIV.NORMAL + "'";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource, m_cPosStatus.Base.LocalDbCatalog, m_cPosStatus.Base.LocalDbUserID, m_cPosStatus.Base.LocalDbPassword);
DataTable dtTrDetail = null;
if (m_cSqlDbService.DBSelect(sQuery, out dtTrDetail) == UserCom.OK)
{
if (dtTrDetail != null && dtTrDetail.Rows.Count > 0)
{
foreach (DataRow dr in dtTrDetail.Rows)
{
if (TranParserToDetail(dr[0].ToString(), sItemCd, sBarcodeNo) == false) return bRet;
}
}
}
bRet = true;
}
catch (Exception ex)
{
m_cSqlDbService.Close();
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return bRet;
}
#endregion
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
#region TranParserToDetail
private bool TranParserToDetail(string sTrData, string sItemCd, string sBarcodeNo)
{
try
{
string[] aTrData = sTrData.Split('|');
ArrayList m_alTrPluItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
Column.TR_PLU.DATA cSaleItem = new Column.TR_PLU.DATA();
cSaleItem.ORD_TIME = aTrData[Column.TR_PLU.SEQ.ORD_TIME];
cSaleItem.FLOOR_CD = aTrData[Column.TR_PLU.SEQ.FLOOR_CD];
cSaleItem.TBL_NO = aTrData[Column.TR_PLU.SEQ.TBL_NO];
cSaleItem.SUB_SHOP_CD = aTrData[Column.TR_PLU.SEQ.SUB_SHOP_CD];
cSaleItem.ITEM_PLU_CD = aTrData[Column.TR_PLU.SEQ.ITEM_PLU_CD];
cSaleItem.ITEM_DIV = "3"; // aTrData[Column.TR_PLU.SEQ.ITEM_DIV];
cSaleItem.SALE_QTY = CmUtil.LongParse(aTrData[Column.TR_PLU.SEQ.SALE_QTY]);
cSaleItem.SALE_PRC = 0; // CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.SALE_PRC]);
cSaleItem.SALE_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.SALE_AMT]);
cSaleItem.FLAVOUR_DIV = aTrData[Column.TR_PLU.SEQ.FLAVOUR_DIV];
cSaleItem.FLAVOUR_STOCK = CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.FLAVOUR_STOCK]);
cSaleItem.ITEM_INPUT_DIV = aTrData[Column.TR_PLU.SEQ.ITEM_INPUT_DIV];
cSaleItem.ITEM_BAR_CD = aTrData[Column.TR_PLU.SEQ.ITEM_BAR_CD];
cSaleItem.TAKE_IN_OUT_DIV = aTrData[Column.TR_PLU.SEQ.TAKE_IN_OUT_DIV];
cSaleItem.ITEM_TAX_DIV = aTrData[Column.TR_PLU.SEQ.ITEM_TAX_DIV];
cSaleItem.TAX_AMT_INCLUDE_YN = aTrData[Column.TR_PLU.SEQ.TAX_AMT_INCLUDE_YN];
cSaleItem.TAXRATE_CD = aTrData[Column.TR_PLU.SEQ.TAXRATE_CD];
cSaleItem.APPLY_TAX_AMT = 0; // CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.APPLY_TAX_AMT]);
cSaleItem.SVC_FEE_AMT = 0; // CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.SVC_FEE_AMT]);
cSaleItem.SVC_FEE_VAT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.SVC_FEE_VAT]);
cSaleItem.SVC_TAXREATE_CD = aTrData[Column.TR_PLU.SEQ.SVC_TAXREATE_CD];
cSaleItem.BILL_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.BILL_AMT]);
cSaleItem.NONSALES_RSN_CD = aTrData[Column.TR_PLU.SEQ.NONSALES_RSN_CD];
cSaleItem.DC_DIV = ItemConst.PLU_DC_DIV.NORMAL; // aTrData[Column.TR_PLU.SEQ.DC_DIV];
cSaleItem.DC_TYPE = "0"; //aTrData[Column.TR_PLU.SEQ.DC_TYPE];
cSaleItem.DC_RATE = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.DC_RATE]);
cSaleItem.ITEM_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.ITEM_DC_AMT]);
cSaleItem.SUM_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.SUM_DC_AMT]);
cSaleItem.CPI_DC_QTY = 0; //CmUtil.LongParse(aTrData[Column.TR_PLU.SEQ.CPI_DC_QTY]);
cSaleItem.CPI_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.CPI_DC_AMT]);
cSaleItem.COOP_CARD_DC_DIV = "0"; //aTrData[Column.TR_PLU.SEQ.COOP_CARD_DC_DIV];
cSaleItem.COOP_CARD_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.COOP_CARD_DC_AMT]);
cSaleItem.POINT_DC_DIV = "0"; //aTrData[Column.TR_PLU.SEQ.POINT_DC_DIV];
cSaleItem.POINT_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.POINT_DC_AMT]);
cSaleItem.CPN_DC_DIV = "0"; //aTrData[Column.TR_PLU.SEQ.CPN_DC_DIV];
cSaleItem.CPN_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.CPN_DC_AMT]);
cSaleItem.EMP_DC_DIV = "0"; //aTrData[Column.TR_PLU.SEQ.EMP_DC_DIV];
cSaleItem.EMP_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.EMP_DC_AMT]);
cSaleItem.SET_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.SET_DC_AMT]);
cSaleItem.ETC_DC_DIV = ItemConst.PLU_ETC_DC_TYPE.NORMAL; //aTrData[Column.TR_PLU.SEQ.ETC_DC_DIV];
cSaleItem.ETC_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.ETC_DC_AMT]);
cSaleItem.EXCEP_DC_DIV = "0000"; //aTrData[Column.TR_PLU.SEQ.EXCEP_DC_DIV];
cSaleItem.EXCEP_DC_AMT = 0; //CmUtil.DoubleParse(aTrData[Column.TR_PLU.SEQ.EXCEP_DC_AMT]);
cSaleItem.PACK_DIV = aTrData[Column.TR_PLU.SEQ.PACK_DIV];
cSaleItem.SET_MENU_CD = sItemCd;// aTrData[Column.TR_PLU.SEQ.SET_MENU_CD];
cSaleItem.SUBPRC_MENU_KEY_DIV = "1"; // aTrData[Column.TR_PLU.SEQ.SUBPRC_MENU_KEY_DIV];
cSaleItem.CPI_PRESENT_DIV = aTrData[Column.TR_PLU.SEQ.CPI_PRESENT_DIV];
cSaleItem.BILLSPR_NO = CmUtil.LongParse(aTrData[Column.TR_PLU.SEQ.BILLSPR_NO]);
cSaleItem.SALE_GIFT_NO = aTrData[Column.TR_PLU.SEQ.SALE_GIFT_NO];
cSaleItem.CPN_NO = aTrData[Column.TR_PLU.SEQ.CPN_NO];
cSaleItem.DISPO_ITEM_DIV = aTrData[Column.TR_PLU.SEQ.DISPO_ITEM_DIV];
cSaleItem.CANCEL_DIV = aTrData[Column.TR_PLU.SEQ.CANCEL_DIV];
if (cSaleItem.CANCEL_DIV == PosConst.CANCEL_DIV.CANCEL_SUBTOT)
{
cSaleItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
}
cSaleItem.NOTAX_DIV = aTrData[Column.TR_PLU.SEQ.NOTAX_DIV];
cSaleItem.ORDER_OK_FLAG = PosConst.PLU_ORDER_OK_FLAG.ORDER_ING;
cSaleItem.SLACK_FIELD = aTrData[Column.TR_PLU.SEQ.SLACK_FIELD]; // 선불카드권종(2017.06.27)
// 상품 마스터 조회 후 마스터 항목 설정
SetTrDetailToMst(cSaleItem.SUB_SHOP_CD, cSaleItem.ITEM_PLU_CD, ref cSaleItem);
cSaleItem.SLACK_FIELD = sBarcodeNo.Trim();
//#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 start
cSaleItem.HPO_REG_YN = "1";
//#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 end
//m_cDataService.UpdatePluItemAmount(cSaleItem);
m_alTrPluItem.Add(cSaleItem); // 등록 처리
return true;
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
}
return false;
}
#endregion
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
#region SetTrDetailToMst
private void SetTrDetailToMst(string sSubStoreCode, string sItemCdoe, ref Column.TR_PLU.DATA cPluItem)
{
try
{
// 상품 마스터 조회
DataTable dtDataInfo = m_cDataCommon.SeletItemMstToItemCode(sSubStoreCode, sItemCdoe);
if (dtDataInfo != null && dtDataInfo.Rows.Count > 0)
{
DataRow drPlu = dtDataInfo.Rows[0];
cPluItem.SUB_SET_MNG_TYPE = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SUB_SET_MNG_TYPE);
cPluItem.ITEM_NAME = ">>" + CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SHTCUT_ITEMNM);
cPluItem.CANCEL_DIV_MAIN = "0";
cPluItem.FREE_GIFT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.FREE_GIFT_YN);
cPluItem.DC_PRMT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.DC_PRMT_YN);
cPluItem.ACCUM_PRMT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.ACCUM_PRMT_YN);
cPluItem.SVC_FEE_TRGT_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.SVC_FEE_TRGT_YN);
cPluItem.COOP_CARD_DC_NOADM_YN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.COOP_CARD_DC_NOADM_YN);
cPluItem.L_CLSS = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.L_CLSS);
cPluItem.M_CLSS = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.M_CLSS);
cPluItem.S_CLSS = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.S_CLSS);
cPluItem.OPEN_ITEM_DIV = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.OPEN_ITEM_DIV); //MoonSeokWoo 2017.09.11
cPluItem.ITEM_TAKE_IN_VAT_CD = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.TAKE_IN_VAT_CD);
cPluItem.ITEM_TAKE_OUT_VAT_CD = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.TAKE_OUT_VAT_CD);
cPluItem.ITEM_INFO = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.ITEM_INFO); // 영양성분
cPluItem.ITEM_EXPLN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.ITEM_EXPLN); // 상품설명
cPluItem.ALLERGY = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.ALLERGY); // 알레르기성분
cPluItem.PLACE_ORIGIN = CmUtil.GetDataRowStr(drPlu, PosMst.MST_ITEM.DATA.PLACE_ORIGIN); // 원산지
cPluItem.TAX_RATE = m_cDataCommon.ItemTaxRate(cPluItem.TAXRATE_CD);
}
else if (cPluItem.ITEM_DIV == ItemConst.PLU_ITEM_DIV.OPT_MENU && cPluItem.SUBPRC_MENU_KEY_DIV == "1")
{
dtDataInfo = m_cDataCommon.SeletSubPrcMenu(sSubStoreCode, sItemCdoe);
if (dtDataInfo != null && dtDataInfo.Rows.Count > 0)
{
DataRow drPlu = dtDataInfo.Rows[0];
cPluItem.ITEM_NAME = ">>" + CmUtil.GetDataRowStr(drPlu, PosMst.MST_SUBPRC_MENU_GRP.DATA.LABEL_NM);
}
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
}
}
#endregion
//#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end
//#15945 해피오더 자동주문 상세기능 start
#region HappyOrder_AutomaticShipmentLog
public void HappyOrder_AutomaticShipmentLog(Column.TR_HPORD.HPORD_HEADER HPORD_HEADER, string HPORD_TOBESTATUS, string HPORD_CLOUDRES)
{
string sQuery = "";
string sSQL = "";
try
{
//#20180914 해피오더 자동출하 로그 추가 start
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하데이터저장 start");
//#20180914 해피오더 자동출하 로그 추가 end
try
{
// 주문 취소 시
// 해당 해피오더 건이 '주문접수 -> 상품준비' 변경한 데이터 존재 시 인서트하고
// 아니면 인서트 하지 않는다.
if (HPORD_TOBESTATUS == ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL)
{
sQuery = "SELECT * ";
sQuery += " FROM POSLOG..TR_AUTOMATICSHIPMENT_LOG ";
sQuery += " WHERE CMP_CD = '{0}' AND SALE_DT = '{1}' AND STOR_CD = '{2}'";
sQuery += " AND POS_NO = '{3}' AND ORDER_NO = '{4}' AND STATUS = " + ItemConst.HAPPYORDER_STATUS.PRODUCT_READY + "";
sQuery += "IF @@ROWCOUNT <> 0";
}
// 주문접수 -> 상품준비 시 인서트
else
{
sQuery = "SELECT * ";
sQuery += " FROM POSLOG..TR_AUTOMATICSHIPMENT_LOG ";
sQuery += " WHERE CMP_CD = '{0}' AND SALE_DT = '{1}' AND STOR_CD = '{2}'";
sQuery += " AND POS_NO = '{3}' AND ORDER_NO = '{4}' AND STATUS = {5}";
sQuery += "IF @@ROWCOUNT = 0";
}
sQuery += "INSERT INTO POSLOG..TR_AUTOMATICSHIPMENT_LOG(CMP_CD,SALE_DT,STOR_CD,POS_NO,";
sQuery += " ORDER_NO,STATUS,PRE_STATUS,ORDER_TYPE,";
sQuery += " CLOUD_RES,GUBUN,CASHIER_ID,SEND_YN,";
sQuery += " UPD_DATE,REG_DATE)";
sQuery += "VALUES ( '{0}' , '{1}' , '{2}' , '{3}', ";
sQuery += " '{4}' , {5} , {6} , '{7}', ";
sQuery += " {8} , '{9}' , '{10}' , '{11}', ";
sQuery += " '{12}' , '{13}' ) ";
m_cSqlDbService.SetDBConnectionString(m_cPosStatus.Base.LocalDbSource,
m_cPosStatus.Base.LocalDbCatalog,
m_cPosStatus.Base.LocalDbUserID,
m_cPosStatus.Base.LocalDbPassword);
sSQL = string.Format(sQuery,
m_cPosStatus.Base.CmpCd,
m_cPosStatus.Base.SaleDate,
m_cPosStatus.Base.StoreNo,
m_cPosStatus.Base.PosNo,
HPORD_HEADER.OrderNum,
HPORD_TOBESTATUS,
HPORD_HEADER.OrderStatus,
HPORD_HEADER.OrderType,
HPORD_CLOUDRES,
"P",
m_cPosStatus.Base.CashierNo,
"0",
"",
DateTime.Now.ToString("yyyyMMddHHmmss"));
m_cSqlDbService.DBExecuteNonQuery(new string[] { sSQL }, true);
//#20180914 해피오더 자동출하 로그 추가 start
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하데이터저장 end" + "[" + sSQL + "]");
//#20180914 해피오더 자동출하 로그 추가 end
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message + "[" + sSQL + "]");
}
}
finally
{
m_cSqlDbService.Close();
}
}
#endregion
//#15945 해피오더 자동주문 상세기능 end
//#17143 [해피오더]자동 주문 처리 개선 start
#region 기존소스 HappyOrder_AutomaticShipmentItemCheck
/*
//#15945 해피오더 자동주문 상세기능 start
#region HappyOrder_AutomaticShipmentItemCheck
public bool HappyOrder_AutomaticShipmentItemCheck(ArrayList HappyOrderItem, string HappyOrderStatus, out bool DivYN)
{
bool bRet = false;
bool bDivYN = false;
try
{
//#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
string sOrderNum = "";
//#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
bool bX = false;
bool bY = false;
for (int nLoop = 0; nLoop < HappyOrderItem.Count; nLoop++)
{
Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)HappyOrderItem[nLoop];
DataTable dtData = m_cDataCommon.AutomaticShipmentItemCheck(m_cPosStatus.Base.SubShopNo, item.GoodsCode);
sOrderNum = item.OrderNum;
string sAutomaticShipmentItem = "";
if (dtData != null && dtData.Rows.Count > 0)
{
DataRow dr = dtData.Rows[0];
sAutomaticShipmentItem = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.ITEM_PROD_TYPE_YN);
}
// Y: 제조상품, N:완제상품, 공백:기타
if (sAutomaticShipmentItem == "N")
{
bX = true;
}
else if (sAutomaticShipmentItem == "Y")
{
bY = true;
}
}
//#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"[자동 완료처리 주문번호 :" + sOrderNum + "] ");
//#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
//#20180914 해피오더 자동출하 로그 추가 start
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"X 자동출하조건체크 :" + bX.ToString() + "Y 자동출하조건체크 :" + bY.ToString());
//#20180914 해피오더 자동출하 로그 추가 end
string sMsg = "";
if (bX == true)
{
if (bY == true)
{
// 완제품 + 이 외의 제품이 존재할 때
sMsg = MessageManager.GetGuideMessage(POS_MESSAGE.GUIDE.MSG_0019);
}
else
{
// 완제품만 존재할 때
sMsg = MessageManager.GetGuideMessage(POS_MESSAGE.GUIDE.MSG_0018);
}
//#20180914 해피오더 자동출하 로그 추가 start
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하안내팝업 :" + sMsg.Trim());
//#20180914 해피오더 자동출하 로그 추가 end
//해피오더 자동출하 건
//#15945 해피오더 자동주문 상세기능 start - 20180820
//기존
//bRet = WinManager.AutomaticShipmentQuestionMessage(sMsg, HappyOrderStatus);
//변경
DialogResult dRet = WinManager.AutomaticShipmentQuestionMessage(sMsg, HappyOrderStatus);
if (dRet == DialogResult.Yes)
{
//예
bRet = true;
bDivYN = true;
}
else if (dRet == DialogResult.No)
{
//아니오
bRet = false;
bDivYN = true;
}
else
{
//닫기
bRet = false;
bDivYN = false;
}
//#15945 해피오더 자동주문 상세기능 end - 20180820
}
else
{
// 점포제조제품만 존재
if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
{
sMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591);
}
else
{
sMsg = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), HappyOrderStatus);
}
//#20180914 해피오더 자동출하 로그 추가 start
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하안내팝업 :" + sMsg.Trim());
//#20180914 해피오더 자동출하 로그 추가 end
// 해피오더 일반주문 건
bDivYN = false;
bRet = WinManager.QuestionMessage(sMsg, HappyOrderStatus);
}
//#20180914 해피오더 자동출하 로그 추가 start
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하저장여부 :" + bDivYN.ToString() + "(true: 저장/ false:미저장)");
//#20180914 해피오더 자동출하 로그 추가 end
DivYN = bDivYN;
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
DivYN = bDivYN;
}
return bRet;
}
#endregion
//#15945 해피오더 자동주문 상세기능 end
*/
#endregion
#region 변경소스 HappyOrder_AutomaticShipmentItemCheck
public bool HappyOrder_AutomaticShipmentItemCheck(ArrayList HappyOrderItem, string HappyOrderStatus, string OrderData, string PickupData, out bool AutomaticShipment)
{
bool bAnswer = false; // 고객 동의 여부
bool bAutomaticShipment = false; // 자동출하여부
try
{
bool bX = false;
bool bY = false;
bool bSecondTarget = false; // true 2차대상상품건 --> 제한상품체크해야함.
bool bLimitedItemCheck = true; // true 제한상품만있음 --> 자동주문처리안함.
bool bDataCheck = true; // true 데이터체크, false 데이터체크안함
string sOrderNum = "";
string sOrderData = OrderData; // 해피오더 주문일자
string sPickupData = PickupData; // 해피오더 픽업일자
//#17143 [해피오더]자동 주문 처리 개선 start 20181106
string sNowData = "";
//#17143 [해피오더]자동 주문 처리 개선 end 20181106
sOrderData = OrderData.Substring(0, 4) + OrderData.Substring(5, 2) + OrderData.Substring(8, 2);
sPickupData = PickupData.Substring(0, 4) + PickupData.Substring(5, 2) + PickupData.Substring(8, 2);
//#17143 [해피오더]자동 주문 처리 개선 start 20181106
sNowData = DateTime.Now.ToString("yyyyMMdd");
//#17143 [해피오더]자동 주문 처리 개선 end 20181106
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
//#17143 [해피오더]자동 주문 처리 개선 start 20181106
//기존
//"픽업일자 :" + sPickupData + "주문일자 :" + sOrderData + "시스템일자 :" + sNowData);
//변경
"픽업일자 :" + sPickupData + "주문일자 :" + sOrderData + "시스템일자 :" + sNowData);
//#17143 [해피오더]자동 주문 처리 개선 end 20181106
//#17143 [해피오더]자동 주문 처리 개선 start 20181106
//기존
//if (sOrderData == sPickupData || int.Parse(sOrderData) > int.Parse(sPickupData))
//변경
if (int.Parse(sPickupData) <= int.Parse(sNowData))
//#17143 [해피오더]자동 주문 처리 개선 end 20181106
{
// 주문일자, 픽업일자가 같은 건이거나
// 픽업일자보다 주문일자가 더 크면 자동주문처리 안함.
bDataCheck = false;
}
else
{
// 주문일자,픽업일자 차이가 1일이면 2차대상상품 건, 2일이면 1차대상상품 건으로 간주.
// 2차대상상품 건이면 제한상품인지 체크한다. (mst_item의 EXE_HPORD : y 대상상품제외, n 대상상품제외아님)
// bSecondTarget이 true : 2차대상상품, false : 1차대상상품
//날짜의 차이 구하기
int iDayTerm = 0;
//#17143 [해피오더]자동 주문 처리 개선 start 20181106
//기존
/*
DateTime dt_OrderData = DateTime.Parse(OrderData);
DateTime dt_PickupData = DateTime.Parse(PickupData);
TimeSpan TS = dt_PickupData - dt_OrderData;
iDayTerm = TS.Days;
*/
//변경
//#17143 [해피오더]자동 주문 처리 개선 start 20181106, 20181108
sNowData = sNowData.Substring(0, 4) + "-" + sNowData.Substring(4, 2) + "-" + sNowData.Substring(6, 2);
//#17143 [해피오더]자동 주문 처리 개선 end 20181106, 20181108
DateTime dt_NowData = DateTime.Parse(sNowData);
DateTime dt_PickupData = DateTime.Parse(PickupData);
TimeSpan TS = dt_PickupData - dt_NowData;
iDayTerm = TS.Days;
//#17143 [해피오더]자동 주문 처리 개선 end 20181106
if (Math.Abs(iDayTerm) == 1) { bSecondTarget = true; }
for (int nLoop = 0; nLoop < HappyOrderItem.Count; nLoop++)
{
Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)HappyOrderItem[nLoop];
DataTable dtData = m_cDataCommon.AutomaticShipmentItemCheck(m_cPosStatus.Base.SubShopNo, item.GoodsCode);
sOrderNum = item.OrderNum;
string sAutomaticShipmentItem = "";
string sAutomaticShipmentLimitItem = "";
if (dtData == null || dtData.Rows.Count == 0)
{
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"MST_ITEM 없는 데이터 --> 상품코드 :" + item.GoodsCode + " , 상품명 :" + item.GoodsName + " , 주문번호 :" + item.OrderNum);
continue;
}
DataRow dr = dtData.Rows[0];
sAutomaticShipmentItem = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.ITEM_PROD_TYPE_YN);
sAutomaticShipmentLimitItem = CmUtil.GetDataRowStr(dr, PosMst.MST_ITEM.DATA.EXE_HPORD);
// Y: 제조상품, N:완제상품, 공백:기타
if (sAutomaticShipmentItem == "N")
{
bX = true;
}
else
{
bY = true;
}
// Y: 제한상품, N: 제한상품아님
if (sAutomaticShipmentLimitItem != "Y")
{
bLimitedItemCheck = false;
}
}
}
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하 데이터체크 :" + bDataCheck.ToString() + " --> true 주문일자와 픽업일자 다르고, 주문일자가 픽업일자보다 이 전일때");
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하 주문번호 :" + sOrderNum);
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하 2차대상상품여부 :" + bSecondTarget.ToString() + " --> true 주문일자와 픽업일자가 차이가 하루일 때");
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하 제한상품묶음여부 :" + bLimitedItemCheck.ToString() + " --> true 제한상품만있음, 자동주문처리안함");
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하 조건체크 X:" + bX.ToString() + ", Y:" + bY.ToString());
string sMsg = "";
if (bX == true && // 완제품 존재여부
(bSecondTarget == false || bLimitedItemCheck == false) && // bSecondTarget 픽업일자, 주문일자 차이가 하루인지 체크. bLimitedItemCheck 2차대상제한상품만 있는지 체크.
(bDataCheck == true)) // 픽업일자가 주문일자보다 클때 true
{
//#17651 해피오더)자동주문 시 표시문구 변경 start
//기존
/*
if (bY == true)
{
// 완제품 + 이 외의 제품이 존재할 때
sMsg = MessageManager.GetGuideMessage(POS_MESSAGE.GUIDE.MSG_0019);
}
else
{
// 완제품만 존재할 때
sMsg = MessageManager.GetGuideMessage(POS_MESSAGE.GUIDE.MSG_0018);
}
*/
//변경
string sCommCode = "";
string sStartDate = "";// 시작일자
string sEndDate = "";// 종료일자
string sDisplayMsgCode = "";// 디스플레이코드
string sDisplayMsgType = "";// 디스플레이타입
if (bY == true)
{
// 완제품 + 이 외의 제품이 존재할 때
sCommCode = "1";
}
else
{
// 완제품만 존재할 때
sCommCode = "2";
}
DataTable dtData = m_cDataCommon.SeletCommonCode(PosConst.COMMON_CODE_GROUP.T0043, sCommCode);
if (dtData != null && dtData.Rows.Count > 0)
{
DataRow dr = dtData.Rows[0];
sStartDate = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01);
sEndDate = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_02);
sDisplayMsgCode = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_03);
sDisplayMsgType = CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_04);
}
sNowData = sNowData.Substring(0, 4) + sNowData.Substring(5, 2) + sNowData.Substring(8, 2);
if ((sStartDate != "" && sEndDate != "" && sDisplayMsgCode != "" && sDisplayMsgType != "") &&
(int.Parse(sStartDate) <= int.Parse(sNowData) && int.Parse(sNowData) <= int.Parse(sEndDate)))
{
if (sDisplayMsgType == "1")
{
sMsg = MessageManager.GetLabelMessage(sDisplayMsgCode);
}
else if (sDisplayMsgType == "2")
{
sMsg = MessageManager.GetErrorMessage(sDisplayMsgCode);
}
else if (sDisplayMsgType == "3")
{
sMsg = MessageManager.GetGuideMessage(sDisplayMsgCode);
}
else if (sDisplayMsgType == "4")
{
sMsg = MessageManager.GetPrintMessage(sDisplayMsgCode);
}
else if (sDisplayMsgType == "5")
{
sMsg = MessageManager.GetExactMessage(sDisplayMsgCode);
}
}
else
{
if (bY == true)
{
// 완제품 + 이 외의 제품이 존재할 때
sMsg = MessageManager.GetGuideMessage(POS_MESSAGE.GUIDE.MSG_0019);
}
else
{
// 완제품만 존재할 때
sMsg = MessageManager.GetGuideMessage(POS_MESSAGE.GUIDE.MSG_0018);
}
}
//#17651 해피오더)자동주문 시 표시문구 변경 end
DialogResult dRet = WinManager.AutomaticShipmentQuestionMessage(sMsg, HappyOrderStatus);
if (dRet == DialogResult.Yes)
{
//예
bAnswer = true;
bAutomaticShipment = true;
}
else if (dRet == DialogResult.No)
{
//아니오
bAnswer = false;
bAutomaticShipment = true;
}
else
{
//닫기
bAnswer = false;
bAutomaticShipment = false;
}
}
else
{
// 점포제조제품만 존재
if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
{
sMsg = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591);
}
else
{
sMsg = string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), HappyOrderStatus);
}
// 해피오더 일반주문 건
bAutomaticShipment = false;
bAnswer = WinManager.QuestionMessage(sMsg, HappyOrderStatus);
}
AutomaticShipment = bAutomaticShipment;
UserLog.WriteLogFile(UserCom.LOG_IOS,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
"자동출하 저장여부 :" + bAutomaticShipment.ToString() + "(true: 저장/ false:미저장)");
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
bAnswer = false;
AutomaticShipment = false;
}
return bAnswer;
}
#endregion
//#17143 [해피오더]자동 주문 처리 개선 end
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
#region 당월누적주문내역 API 통신
public bool HappyOrderToMonthPrint(bool bHPOAutoPrintYN)
{
// 당월 누계 건 출력
bool bRet = false;
try
{
//API 통신
string sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.ORDER_ITEM, ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD);// 해피오더 승인업체 코드 조회
string sHappyOrderURL = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP);// 해피오더 승인 URL 조회
if (sHappyOrderURL == "") return bRet;
Hashtable htRequest = null;
htRequest = new Hashtable();
htRequest.Clear();
Hashtable htResponse = null;
htResponse = new Hashtable();
htResponse.Clear();
htRequest.Add("storeCode", m_cPosStatus.Base.StoreNo);
int iReturn = BaseCom.NG;
Hashtable m_htOrder = null;
m_htOrder = SendReceiveForHappyOrder2(new object[] { sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_MONTH_COUNT, htRequest }, ref htResponse, ref iReturn);
if (iReturn != BaseCom.OK) { return bRet; }
if (m_htOrder == null || m_htOrder.Count <= 0) return bRet;
if (htResponse == null || htResponse.ContainsKey("status") == false)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"당월누계 데이터 조회, 실패");
//WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0005));
bRet = false;
}
if (htResponse["status"].ToString().Equals("200") == false)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"당월누계 데이터 조회, 실패 :" + htResponse["message"].ToString());
//WinManager.ConfirmMessage(htResponse["message"].ToString());
bRet = false;
}
else
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
"당월누계 데이터 조회, 성공");
//WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0487), "당월누계 데이터 조회"));
bRet = true;
}
if (bRet == true)
{
//영수증 출력
bRet = HappyOrderToMonthPrintSheet(m_htOrder, bHPOAutoPrintYN);
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
}
return bRet;
}
#endregion 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능
#region 당월누적주문내역 영수증 출력
///
/// 당월 누계 건 영수증 포맷
///
private bool HappyOrderToMonthPrintSheet(Hashtable htHappyOrderMonthPrt, bool bHPOAutoPrintYN)
{
bool bRet = false;
try
{
if (htHappyOrderMonthPrt == null || htHappyOrderMonthPrt.Count <= 0) { return bRet; }
Column.TR_HPORD.HPORD_MONTHPRT HappyOrderMonthPrt = new Column.TR_HPORD.HPORD_MONTHPRT();
HappyOrderMonthPrt.pickupOrderCnt = htHappyOrderMonthPrt["pickupOrderCnt"] == null ? string.Empty : htHappyOrderMonthPrt["pickupOrderCnt"].ToString(); // 픽업) 취소 주문은 제외한 주문 카운트
HappyOrderMonthPrt.pickupSalePriceTot = htHappyOrderMonthPrt["pickupSalePriceTot"] == null ? string.Empty : htHappyOrderMonthPrt["pickupSalePriceTot"].ToString(); // 픽업) 상품 할인 금액을 포함한 실판매가 합계
HappyOrderMonthPrt.pickupOrgPriceTot = htHappyOrderMonthPrt["pickupOrgPriceTot"] == null ? string.Empty : htHappyOrderMonthPrt["pickupOrgPriceTot"].ToString(); // 픽업) 상품 할인 금액을 제외한 원가 합계
HappyOrderMonthPrt.deliveryOrderCnt = htHappyOrderMonthPrt["deliveryOrderCnt"] == null ? string.Empty : htHappyOrderMonthPrt["deliveryOrderCnt"].ToString(); // 배달) 취소 주문은 제외한 주문 카운트
HappyOrderMonthPrt.deliverySalePriceTot = htHappyOrderMonthPrt["deliverySalePriceTot"] == null ? string.Empty : htHappyOrderMonthPrt["deliverySalePriceTot"].ToString(); // 배달) 상품 할인 금액을 포함한 실판매가 합계
HappyOrderMonthPrt.deliveryOrgPriceTot = htHappyOrderMonthPrt["deliveryOrgPriceTot"] == null ? string.Empty : htHappyOrderMonthPrt["deliveryOrgPriceTot"].ToString(); ; // 배달) 상품 할인 금액을 제외한 원가 합계
PrintBufClear();
AddPrintData(PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, m_cPosStatus.Mst.StorName + " 해피오더 주문내역");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "발행일자 :" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "당월누계");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "1) 픽업 :" + string.Format("주문 {0}건", HappyOrderMonthPrt.pickupOrderCnt) + string.Format(", 매출 {0}원", HappyOrderMonthPrt.pickupSalePriceTot));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "2) 배달 :" + string.Format("주문 {0}건", HappyOrderMonthPrt.deliveryOrderCnt) + string.Format(", 매출 {0}원", HappyOrderMonthPrt.deliverySalePriceTot));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
ArrayList alPrintData = null;
alPrintData = GetPrintBufferData();
bRet = PrintOrderSheet("M", bHPOAutoPrintYN);
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
}
return bRet;
}
#endregion 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능
#region 해피오더 당일픽업 API 통신
///
/// 해피오더 오늘 픽업/배달 주문서출력 처리
///
public bool HappyOrderTodayPrint(bool bHPOAutoPrintYN)
{
bool bRet = false;
try
{
string sVanCD = "";
string sHappyOrderUrl = "";
sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.ORDER_ITEM, ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD); // 승인업체 코드 조회
sHappyOrderUrl = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP); // 승인 URL 조회
//====================================================================
Hashtable htRequest = null;
htRequest = new Hashtable();
htRequest.Clear();
if (bHPOAutoPrintYN == true)
{
htRequest.Add("storeCode", m_cPosStatus.Base.StoreNo);
htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.ORDER_REG);
htRequest.Add("deviceType", "POS");
htRequest.Add("orderDate", DateTime.Now.ToString("yyyyMMdd"));
//htRequest.Add("orderDate", "20180619");
}
else
{
htRequest.Add("storeCode", m_cPosStatus.Base.StoreNo);
htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.ORDER_REG);
htRequest.Add("deviceType", "POS");
}
//====================================================================
int iReturn = BaseCom.NG;
Hashtable htResponse = null;
htResponse = new Hashtable();
htResponse.Clear();
Hashtable[] htOrderLists = null;
htOrderLists = SendReceiveForHappyOrder(new object[] { sHappyOrderUrl, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_ORDER_LIST, htRequest }, ref htResponse, ref iReturn);
//====================================================================
ArrayList cHappyOrderHeader = null;
cHappyOrderHeader = new ArrayList();
cHappyOrderHeader.Clear();
if (htOrderLists != null && htOrderLists.Length > 0)
{
foreach (Hashtable htData in htOrderLists)
{
// 해피오더 주문 리스트 조회 및 저장
Column.TR_HPORD.HPORD_HEADER header = null;
header = ParseHappyOrderList(htData);
cHappyOrderHeader.Add(header);
}
}
//====================================================================
bool bValue = false;
string sMessage = "";
if (cHappyOrderHeader == null || cHappyOrderHeader.Count <= 0)
{
sMessage = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0513); // 오늘 픽업/배달 주문서 출력 건 없을 경우 안내 POP-UP
bValue = false;
}
else
{
sMessage = MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0514); // 접수된 주문에 대한 안내 POP-UP
bValue = true;
}
// bHPOAutoPrintYN (true: 해피오더 당일픽업 건 영수증 자동출력기능, false: 해피오더 당일픽업 건 영수증 자동 미출력 기능)
// 해피오더 당일픽업 자동 영수증 출력 기능일 때 메세지 팝업 띄우지 않는다.
if (bHPOAutoPrintYN == false)
{
WinManager.ConfirmMessage(sMessage);
}
if (bValue == true)
{
int iTotalCnt = cHappyOrderHeader.Count;
int iCompletedCnt = 0;
// 주문번호 별 Loop
for (int nLoop = 0; nLoop < cHappyOrderHeader.Count; nLoop++)
{
bool bReturn = false;
ArrayList cHappyOrderItem = new ArrayList();
Hashtable[] htOrderDetails = null;
Column.TR_HPORD.HPORD_HEADER header = (Column.TR_HPORD.HPORD_HEADER)cHappyOrderHeader[nLoop];
string sOrderNum = header.OrderNum;
GetHappyOrderListDetail(sOrderNum, sHappyOrderUrl, ref cHappyOrderItem, ref htOrderDetails); // 해피오더 주문 상세 조회
bReturn = HappyOrderTodayPrintSheet(sOrderNum, bHPOAutoPrintYN, ref cHappyOrderHeader, ref cHappyOrderItem);
if (bHPOAutoPrintYN == true)
{
System.Threading.Thread.Sleep(3000);
}
else
{
//#17141 [해피오더]배달영수증 주소 추가 start
//기존
//System.Threading.Thread.Sleep(1000);
//변경
System.Threading.Thread.Sleep(3000);
//#17141 [해피오더]배달영수증 주소 추가 end
}
if (bReturn == true) { iCompletedCnt++; }
}
bRet = true;
if (bRet == true && bHPOAutoPrintYN == false)
{
WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0515), iTotalCnt, iCompletedCnt, (iTotalCnt - iCompletedCnt)));
}
}
}
catch (Exception ex)
{
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
ex.Message);
}
return bRet;
}
#endregion
#region 해피오더 당일픽업 주문서출력 처리
///
/// 해피오더 오늘 픽업/배달 주문서 출력
///
///
///
///
///
private bool HappyOrderTodayPrintSheet(string sOrderNum, bool bHPOAutoPrintYN, ref ArrayList cHappyOrderHeader, ref ArrayList cHappyOrderItem)
{
bool bReturn = false;
try
{
PrintBufClear();
if (bHPOAutoPrintYN == true)
{
AddPrintData(PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, "[ 해피오더 제품부착용 ]");
}
else
{
AddPrintData(PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, "[ 해피오더 주문내역 ]");
}
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
Column.TR_HPORD.HPORD_HEADER header;
for (int i = 0; i < cHappyOrderHeader.Count; i++)
{
if (((Column.TR_HPORD.HPORD_HEADER)cHappyOrderHeader[i]).OrderNum != sOrderNum)
{
continue;
}
header = (Column.TR_HPORD.HPORD_HEADER)cHappyOrderHeader[i];
if (header.OrderStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED)
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ 픽업 완료 ]");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
}
if (header.OrderStatus == ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL)
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ 주문 취소 ]");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
}
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 픽업시간 : " + header.PickupTime);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 주문번호 : " + header.OrderNum);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 주문일시 : " + header.OrderDate);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 연 락 처 : " + header.ReceiverHp);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " ITEM QTY AMT");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
//#17332 해피오더)주문서에 상세금액 추가 start
int iTotPrice = 0;//총매출액
int iTotDiscountPrice = 0;//총할인금액
int iOrderPrice = 0;//총합계금액(매출액-할인금액)
int iPayPrice = 0;//총받은금액(결제금액)
iPayPrice = int.Parse(header.PayMoney);
//#17332 해피오더)주문서에 상세금액 추가 end
for (int nLoop = 0; nLoop < cHappyOrderItem.Count; nLoop++)
{
Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)cHappyOrderItem[nLoop];
int itemPrice = 0;
int itemQty = 0;
int itemDiscountPrice = 0;
itemPrice = int.Parse(item.SupplyPrice.Trim() == "" ? "0" : item.SupplyPrice.Trim());
itemQty = int.Parse(item.Qty.Trim() == "" ? "0" : item.Qty.Trim());
itemDiscountPrice = int.Parse(item.DiscountPrice.Trim() == "" ? "0" : item.DiscountPrice.Trim());
//#17332 해피오더)주문서에 상세금액 추가 start
iTotPrice += itemPrice * itemQty;//총매출금액
iTotDiscountPrice += itemDiscountPrice * itemQty;//총할인금액
iOrderPrice += (itemPrice * itemQty) - (itemDiscountPrice * itemQty);//총합계금액
//#17332 해피오더)주문서에 상세금액 추가 end
if (CmUtil.StringNullEmpty(item.FlavourFlag).Equals("N") == false)
{
//#15485 PB 강남일원 - 제품명이 길어 짤리는 증상 수정 요청 start
// 기존
//if (PosMstManager.GetPosOption(POS_OPTION.OPT414) == "2")
// 변경
if (PosMstManager.GetPosOption(POS_OPTION.OPT433) == "2")
//#15485 PB 강남일원 - 제품명이 길어 짤리는 증상 수정 요청 end
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " >" + CmUtil.RPadH(item.GoodsName, 40));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, CmUtil.RPadH("", 27) +
CmUtil.LPadH(item.Qty, 4) +
CmUtil.LPadH(CmUtil.GetToMoney(Convert.ToString((itemPrice - itemDiscountPrice) * itemQty)), 11));
}
else
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101,
" >" + CmUtil.RPadH(item.GoodsName, 25) +
CmUtil.LPadH(item.Qty, 4) +
CmUtil.LPadH(CmUtil.GetToMoney(Convert.ToString((itemPrice - itemDiscountPrice) * itemQty)), 11));
}
}
else
{
//#15485 PB 강남일원 - 제품명이 길어 짤리는 증상 수정 요청 start
// 기존
//if (PosMstManager.GetPosOption(POS_OPTION.OPT414) == "2")
// 변경
if (PosMstManager.GetPosOption(POS_OPTION.OPT433) == "2")
//#15485 PB 강남일원 - 제품명이 길어 짤리는 증상 수정 요청 end
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, CmUtil.RPadH(item.GoodsName, 42));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, CmUtil.RPadH("", 27) +
CmUtil.LPadH(item.Qty, 4) +
CmUtil.LPadH(CmUtil.GetToMoney(Convert.ToString((itemPrice - itemDiscountPrice) * itemQty)), 11));
}
else
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101,
CmUtil.RPadH(item.GoodsName, 27) +
CmUtil.LPadH(item.Qty, 4) +
CmUtil.LPadH(CmUtil.GetToMoney(Convert.ToString((itemPrice - itemDiscountPrice) * itemQty)), 11));
}
}
}
//#17332 해피오더)주문서에 상세금액 추가 start
#region 기존소스
/*
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 합계금액 " + CmUtil.LPadH(CmUtil.GetToMoney(header.PayMoney), 11));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
*/
#endregion 기존소스
#region 변경소스
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 총매출액 " + CmUtil.LPadH(CmUtil.GetToMoney(iTotPrice.ToString()), 11));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 할인금액 " + CmUtil.LPadH(CmUtil.GetToMoney(iTotDiscountPrice.ToString()), 11));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 합계금액 " + CmUtil.LPadH(CmUtil.GetToMoney(iOrderPrice.ToString()), 11));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 받은금액 " + CmUtil.LPadH(CmUtil.GetToMoney(iPayPrice.ToString()), 11));
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
#endregion 변경소스
//#17332 해피오더)주문서에 상세금액 추가 end
if (header.CustMsg != string.Empty)
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "************** 고객요청사항 **************");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, header.CustMsg);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "*");
}
//#17141 [해피오더]배달영수증 주소 추가 start
if (header.OrderType == "5" || header.OrderType == "4")
{
string sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.ORDER_ITEM, ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD); // 해피오더 승인업체 코드 조회
string sHappyOrderURL = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP); // 해피오더 승인 URL 조회
Hashtable htRequestForNutrition = new Hashtable();
htRequestForNutrition.Clear();
htRequestForNutrition.Add("orderNum", header.OrderNum);
int iReturn = BaseCom.NG;
Hashtable htResponse = null;
Hashtable[] aResponse = null;
aResponse = SendReceiveForHappyOrder(new object[] { sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_PRODUCT_NUTRITION, htRequestForNutrition }, ref htResponse, ref iReturn);
if (aResponse != null && aResponse.Length > 0)
{
string sMsg = ParseNutritionMsg(aResponse);
if (sMsg != "")
{
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sMsg);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
}
}
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " [배송지 정보]");
string sRecviver = string.Format("{0}{1}{2}", CmUtil.LeftH(header.Receiver, 2), ((header.Receiver.Length > 2) ? new string('*', header.Receiver.Length - 2) : "*"), CmUtil.RightH(header.Receiver, 2));
string sRecviverAddress = header.Address1 + " " + ((header.Address2.Trim() == string.Empty) ? string.Empty : header.Address2);
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 start
string sReceiverHp = header.ReceiverHp.Trim();
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 end
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1189) + " : " + sRecviver);
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 start
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0952) + " : " + sReceiverHp);
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 end
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 start
//기존
//AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1087) + " : " + sRecviverAddress);
//#17533 해피오더)영수증/주문서 전화번호 항목 추가 end
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
}
//#17141 [해피오더]배달영수증 주소 추가 end
AddPrintData(PosConst.PRT_HDR.PRT_BAR, "", "999"+header.OrderNum);
AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
ArrayList alPrintData = GetPrintBufferData();
// 주문서 출력
bReturn = PrintOrderSheet("D", bHPOAutoPrintYN);
if (bReturn == true)
{
if (bHPOAutoPrintYN == false)
{
// 해당 주문의 주문서 출력여부 Update
UpdateHappyOrderData(new string[] { "PRINT", "1", header.OrderNum, header.OrderDate.Substring(0, 10).Replace("-", "") });
}
}
System.Threading.Thread.Sleep(100);
}
}
catch (Exception ex)
{
UserLog.WriteLogFile(UserCom.LOG_ERROR,
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name, // Project Name (프로젝트명)
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + // Class Name (Class Name (클래스명))
System.Reflection.MethodBase.GetCurrentMethod().Name + "()", // Function Name (Function Name (함수명))
ex.Message);
}
return bReturn;
}
#endregion
//#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 end
}
}