using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.ServiceProvider;
using Cosmos.Common;
using Cosmos.CommonManager;
using System.Globalization;

namespace Cosmos.Win
{
    public partial class frmHappyOrderList : Form, IFormHappyOrderMainUs
    {
        private SManager sManager = new SManager();                                 //이 객체를 통해 업무 Service 호출
        private StateServer StateObject = (StateServer)StateServer.GetInstance();   //StateObject : StateServer Object(객체)
        private PosStatus m_cPosStatus;
        private TranStatus m_cTrnStatus;                                            //거래정보 참조
        private DeviceStatus m_cDevStatus = null;

        private IHappyOrderList m_cHappyOrder = null;                               // 해피오더 서비스 처리
        private IDataProcessUs m_cDataSrv = null;                                   // 거래데이터 합계금액 계산 및 관리
        private ISalePluItemUs m_cPluService = null;                                // 판매 등록 관리

        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
        private IDataCommonUs m_cDataCommon = null;
        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end 


        //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj
        private IAirPortTran m_cAirPortTran = null;
        //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 end,phj

        /// <summary>
        /// Grid 연동 DataTable
        /// </summary>
        private DataTable m_dtGrid;

        /// <summary>
        /// 해피오더 상태 관리
        /// </summary>
        private Hashtable htStatus;
        /// <summary>
        /// 양재오더 상태 관리
        /// </summary>
        private Hashtable m_htYJStatus;
        /// <summary>
        /// 사전예약 상태 관리
        /// </summary>
        private Hashtable m_htPreReservStatus;


        //#20180607 해피오더 리스트 전체 조회 기능 추가 start
        /// <summary>
        /// 해피오더 신규주문리스트(전체)
        /// </summary>
        private ArrayList m_alTotalLists;
        //#20180607 해피오더 리스트 전체 조회 기능 추가 end

        /// <summary>
        /// 해피오더 신규주문리스트(전체)
        /// </summary>
        private Hashtable[] m_htOrderLists;
        /// <summary>
        /// 해피오더 신규주문리스트(내점)
        /// </summary>
        private ArrayList m_alPickupLists;
        /// <summary>
        /// 해피오더 신규주문리스트(배달)
        /// </summary>
        private ArrayList m_alDeliveryLists;
        /// <summary>
        /// 해피오더 신규주문리스트(사전예약)
        /// </summary>
        private ArrayList m_alPreReservLists;
        /// <summary>
        /// 양재오더 신규주문리스트(전체)
        /// </summary>
        private Hashtable[] m_htYJOrderLists;
        /// <summary>
        /// 양재오더 신규주문리스트(내점)
        /// </summary>
        private ArrayList m_alYJPickupLists;
        /// <summary>
        /// 양재오더 신규주문리스트(배달)
        /// </summary>
        private ArrayList m_alYJDeliveryLists;

        //private ArrayList m_cHappyOrderHeader;

        /// <summary>
        /// 선택된 Row의 주문상세데이터
        /// </summary>
        private ArrayList m_cHappyOrderItem;
        public ArrayList HappyOrderItem { get { return m_cHappyOrderItem; } }

        //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - 기존 기능으로 대체 하여 삭제
        //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 start
        /// <summary>
        /// 영양정보 출력 데이터
        /// </summary>
        //private ArrayList m_alHappyNurtitionOrderItem;
        /// <summary>
        /// 해피오더 영양주문리스트(전체)
        /// </summary>
        //private Hashtable[] m_htOrderNutritionLists;
        //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 end
        //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end

        /// <summary>
        /// 해피오더 URL
        /// </summary>
        private string m_sHappyOrderURL = string.Empty;
        /// <summary>
        /// 양재오더 URL
        /// </summary>
        private string m_sYangJaeOrderURL = string.Empty;

        //private ArrayList m_sPrintData;

        //private PosOLEDevice.DelegateOlePos delegatePos;

        //private string m_sReceiverHp;
        //private string m_sFlavour1;
        //private string m_sFlavour2;
        //private string m_sOrderDT;

        // 현재 선택된 주문의 주문번호
        private string m_sOrderNum;

        // 현재 선택된 주문의 주문일자
        private string m_sOrderDt;

        /// <summary>
        /// 탭관리("01":내점, "02":배달", "03":사전예약, "04":오더폼내점, "05":오더폼배달)
        /// </summary>
        private string m_sPosMenuKeyIn;
        public string PosMenuKeyIn { set { m_sPosMenuKeyIn = value; } get { return m_sPosMenuKeyIn; } }

        //#20180126 해피오더 당일픽업 건 보여주기 start,phj
        private string m_sPicupSearch;
        public string PicupSearchYN { set { m_sPicupSearch = value; } get { return m_sPicupSearch; } }
        //#20180126 해피오더 당일픽업 건 보여주기 end,phj

        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
        private string m_sInPutData;
        public string InPutData { set { m_sInPutData = value; } get { return m_sInPutData; } }

        //private bool sSearchRt = false;
        //private string sSearchOrderType = ""; // 주문타입
        //private string sSearchOrderNum = ""; // 주문번호
        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

        private readonly Color m_clrSelectFont = Color.FromArgb(255, 255, 255);
        private readonly Color m_clrSelectback = Color.FromArgb(109, 110, 113);

        private readonly Color m_clrNonSelectFont = Color.FromArgb(109, 110, 113);
        private readonly Color m_clrNonSelectback = Color.FromArgb(255, 255, 255);

        private enum ORDER_DIV { HAPPY_ORDER, YANGJAE_ORDER };

        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
        /// <summary>
        /// 해피오더 랜덤박스 바코드 정보 
        /// </summary>
        private Hashtable htLandomBoxInfo = null;
        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end 
        
        #region 생성자 & 소멸자
        public frmHappyOrderList()
        {
            try
            {
                InitializeComponent();

                base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
                //this.UpdateStyles();

                m_cPosStatus = (PosStatus)StateObject.POS;      //POS 기본정보
                m_cTrnStatus = (TranStatus)StateObject.TRAN;    //거래정보
                m_cDevStatus = (DeviceStatus)StateObject.DEVICE;
                
                m_cHappyOrder = (IHappyOrderList)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HAPPY_ORDER_LIST);
                m_cDataSrv = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE);
                m_cPluService = (ISalePluItemUs)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.SALE_PLU_ITEM);
                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj
                m_cAirPortTran = (IAirPortTran)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.AIRPORT_TRAN);
                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 end,phj

                //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
                m_cDataCommon = (IDataCommonUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_COMMON);
                //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

                //delegatePos = new PosOLEDevice.DelegateOlePos(OnDeviceEvent);
                //PosOLEDevice.SetEventHandle(delegatePos);

                InitControls();

                // 해피오더 승인업체 코드 조회
                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);
                // 해피오더 승인 URL 조회
                m_sHappyOrderURL = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP);

                // 양재오더 승인업체 코드 조회
                sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.ORDER_ITEM, ItemConst.TR_ITEM_ID.ORDER.ORDERFORM_PAY, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD);
                // 양재오더 승인 URL 조회
                m_sYangJaeOrderURL = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP);

                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 (함수명))
                                     "[HappyOrder URL=" + m_sHappyOrderURL + ", YangJaeOrder URL=" + m_sYangJaeOrderURL + "]");
            }
            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);
            }
        }

        private void frmHappyOrderList_Load(object sender, EventArgs e)
        {
            try
            {
                UserLog.WriteLogFile(UserCom.LOG_IOS, 
                                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + 
                                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()", "");

                this.Location = new Point(0, 50);

                InitControls();

                TitleDisplay();

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20180928
                //shown으로 위치이동
                #region 수동으로 해피오더 리스트 팝업 띄울 시 라인색상 표현안되는 현상 수정
                /*
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                //MenuDisplay();
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                // 상태 변경 후 리스트 재조회
                btnProc_Click(btnSearch, null);

                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                #region 해피오더 바코드 리딩 시 자동 완료 처리

                sSearchRt = false;
                sSearchOrderNum = "";
                sSearchOrderType = "";

                if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT553), "0") == "1")
                {
                    //test
                    //m_sInPutData = "180621935835"; // m_sInPutData.Trim();
                    //m_sInPutData = "180716418415"; // m_sInPutData.Trim();
                    //m_sInPutData = "180621935809"; // m_sInPutData.Trim();

                    if (m_sInPutData != "")
                    {
                        // 자동조회
                        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20180829
                        //sSearchOrderNum = m_sInPutData.Trim();
                        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20180829
                        tbOrderBarcode.Text = m_sInPutData.Trim();
                        tbOrderBarcode_KeyDown(tbOrderBarcode, new KeyEventArgs(Keys.Enter));

                        if (sSearchRt == true)
                        {
                            // 안내팝업 오픈
                            string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD_MSG, m_sPosMenuKeyIn, sSearchOrderNum, sSearchOrderType });

                            // 예 선택 시
                            if (sRet == UserCom.RST_OK)
                            {
                                UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                                                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                                                     "[주문번호: " + sSearchOrderNum + "주문타입: " + sSearchOrderType + "] 자동 완료처리에 대해 고객동의!");

                                btnStatus_Click(btnStatus3, null);
                            }
                        }

                        // 포커스조정
                        ReadyToBarcode();
                    }
                }
                #endregion
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
                */
                #endregion
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20180928
            }
            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);
            }
        }

        private void frmHappyOrderList_FormClosing(object sender, FormClosingEventArgs e)
        {
            //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj

            // 거래 초기화
            m_cDataSrv.InitTranHeader();
            m_cDataSrv.DeleteTranItem();

            //#20171227 인천공항 포스연동 end, phj - 20180310 해피오더 결제완료 end,phj

            vScrollbar.Attach(null);

            UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                                  System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + 
                                                  System.Reflection.MethodBase.GetCurrentMethod().Name + "()", 
                                                  lblTitle.Text);
        }
        #endregion

        #region 폼 컨트롤 초기화
        /// <summary>
        /// 컨트롤 초기화
        /// </summary>
        private void InitControls()
        {
            try
            {
                FormManager.SetFormAllControlFont(this, m_cPosStatus.Base.FONT);
                FormManager.SetTextBoxGlobalInfo(this, 
                                                 m_cPosStatus.Global.m_stCultureMaster.nGroupingDigits, 
                                                 m_cPosStatus.Global.m_stCultureMaster.strGroupingSymbol, 
                                                 m_cPosStatus.Global.m_stCultureMaster.nDecimalDigits, 
                                                 m_cPosStatus.Global.m_stCultureMaster.strDecimalSymbol);

                txtPrtData.Font = new Font(m_cPosStatus.Base.FONT_FIX, txtPrtData.Font.Size, txtPrtData.Font.Style);
                picBack.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.POP_FULL_SIZE);
                btnExit.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BTN_CLOSE);
                if (btnExit.Image != null) btnExit.Text = "";

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                #region 기존소스
                ////#20180612 해피오더 주문알림 start
                ////변경
                ///*
                //if (m_sPicupSearch == "A" || m_sPicupSearch == "B")
                //{
                //    PnlHPOrdPopup.Visible = true;
                //    RtbHPOrdPopup.Visible = true;
                //
                //
                //    PnlHPOrdPopup.Top = lblTitle.Top + lblTitle.Height + 2;
                //    PnlHPOrdPopup.Height = 143 - lblTitle.Height - 5;
                //
                //    RtbHPOrdPopup.Top = 0;
                //    RtbHPOrdPopup.Left = 0;
                //    RtbHPOrdPopup.Height = PnlHPOrdPopup.Height;
                //    RtbHPOrdPopup.Width = PnlHPOrdPopup.Width;
                //
                //    panel1.Location = new Point(32, 143);
                //    HPOrderCntPopup();
                //}
                //else
                //{
                //    PnlHPOrdPopup.Visible = false;
                //    RtbHPOrdPopup.Visible = false;
                //    panel1.Location = new Point(32, 54);
                //}
                //*/
                //
                //PnlHPOrdPopup.Visible = true;
                //RtbHPOrdPopup.Visible = true;
                //PnlHPOrdPopup.Top = lblTitle.Top + lblTitle.Height + 2;
                //PnlHPOrdPopup.Height = 143 - lblTitle.Height - 5;
                //RtbHPOrdPopup.Top = 0;
                //RtbHPOrdPopup.Left = 0;
                //RtbHPOrdPopup.Height = PnlHPOrdPopup.Height;
                //RtbHPOrdPopup.Width = PnlHPOrdPopup.Width;
                //panel1.Location = new Point(32, 143);
                //HPOrderCntPopup();
                ////#20180612 해피오더 주문알림 end
                #endregion

                #region 수정소스

                PnlHPOrdPopup.Visible = true;
                RtbHPOrdPopup.Visible = true;
                PnlHPOrdPopup.Top = lblTitle.Top + lblTitle.Height + 2;
                PnlHPOrdPopup.Height = 143 - lblTitle.Height - 5;
                RtbHPOrdPopup.Top = 0;
                RtbHPOrdPopup.Left = 0;
                RtbHPOrdPopup.Height = PnlHPOrdPopup.Height;
                RtbHPOrdPopup.Width = PnlHPOrdPopup.Width;
                panel1.Location = new Point(32, 143);
                HPOrderCntPopup();

                // ** 패널 위치 이동
                PnlHPOrdPopup.Width = gridHappyOrderList.Width;
                RtbHPOrdPopup.Width = PnlHPOrdPopup.Width;
                // 버튼 높이 
                int iButtonHeight = 40;

                btnHappyOrderWeb.Height = iButtonHeight;//점주web
                btnHappyOrderWeb.Width = 90;

                btnSearch.Height = iButtonHeight;       //조회
                btnSearch.Width = 90;

                btnTodayPrint.Height = iButtonHeight;   //픽업/배달 주문서 출력
                btnTodayPrint.Width = 115;

                btnPrint.Height = iButtonHeight;        //주문서 출력
                btnPrint.Width = 90;

                btnWeightPrint.Height = iButtonHeight; // 중량
                btnWeightPrint.Width = 90;

                // ** 버튼 정렬 2
                int iBtnTopSize2 = 0;
                iBtnTopSize2 = (PnlHPOrdPopup.Top + iButtonHeight) + 5;
                //점주web
                btnHappyOrderWeb.Top = iBtnTopSize2;
                btnHappyOrderWeb.Left = 562;
                //조회
                btnSearch.Top = iBtnTopSize2;
                btnSearch.Left = btnHappyOrderWeb.Left + btnHappyOrderWeb.Width + 10;
                //픽업/배달 주문서 출력
                btnTodayPrint.Top = iBtnTopSize2;
                btnTodayPrint.Left = btnSearch.Left + btnSearch.Width + 10;
                //주문서 출력
                btnPrint.Top = iBtnTopSize2;
                btnPrint.Left = btnTodayPrint.Left + btnTodayPrint.Width + 10;
                // ** 버튼 정렬 1
                int iBtnTopSize1 = 0;
                iBtnTopSize1 = PnlHPOrdPopup.Top;
                //중량출력
                btnWeightPrint.Top = iBtnTopSize1;
                btnWeightPrint.Left = btnTodayPrint.Left;
                //주문취소
                btnOrderCancel.Top = iBtnTopSize1;
                btnOrderCancel.Left = btnPrint.Left;
                // ** 상태변경 패널 위치 이동 
                pnl_Image.Location = panel1.Location;
                pnl_Image.Width = panel1.Width;
                pnl_Image.Height = gridHappyOrderList.Top - 5;
                pnl_Image.BringToFront();
                #endregion
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                //#17197 판매POS 직접배달 옵션처리 요청 件 start
                btnStatus4.Top = iBtnTopSize1;
                btnStatus4.Left = btnTodayPrint.Left;
                //#17197 판매POS 직접배달 옵션처리 요청 件 end


                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                m_alTotalLists = new ArrayList();
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                m_cHappyOrderItem = new ArrayList();
                m_alPickupLists = new ArrayList();
                m_alDeliveryLists = new ArrayList();
                m_alPreReservLists = new ArrayList();
                m_alYJPickupLists = new ArrayList();
                m_alYJDeliveryLists = new ArrayList();

                //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - 기존 기능으로 대체하여 삭제
                //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 start
                //m_alHappyNurtitionOrderItem = new ArrayList();
                //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 end
                //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end

                // 그리드 초기화 
                InitializeGrid();

                #region 상단 탭/버튼 이름 설정 
                lblTitle.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0559);
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                btnTitle00.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1156);
                btnTitle00.Tag = "00";
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                btnTitle01.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0422);
                btnTitle01.Tag = "01";
                btnTitle02.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0423);
                btnTitle02.Tag = "02";
                btnTitle03.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0908);
                btnTitle03.Tag = "03";
                btnTitle04.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0837);
                btnTitle04.Tag = "04";
                btnTitle05.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0838);
                btnTitle05.Tag = "05";

                btnSearch.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0004);
                btnWeightPrint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0539);
                btnPrint.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0538);
                btnHappyOrderWeb.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0466);
                btnTodayPrint.Text = "오늘 픽업/배달            주문서출력";
                #endregion

                #region 해피오더 I/C 중량 출력 버튼 활성화 여부
                if (PosMstManager.GetPosOption(POS_OPTION.OPT314) == "1")
                {
                    btnWeightPrint.Visible = true;
                }
                else
                {
                    btnWeightPrint.Visible = false;
                }
                #endregion

                #region 사전예약/오더폼 옵션에 따른 탭 활성화 체크 
                //OPT043 해피오더 사전예약TAB 사용 여부
                //OPT318 양재오더 사용 여부
                if (PosMstManager.GetPosOption(POS_OPTION.OPT043) == "1")
                {
                    btnTitle03.Visible = true;//사전예약 탭
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT318) == "1")
                    {
                        btnTitle04.Visible = true;
                        btnTitle05.Visible = true;
                        btnTitle04.Location = new Point(360, 0);
                        btnTitle05.Location = new Point(480, 0);
                    }
                    else
                    {
                        btnTitle04.Visible = false;
                        btnTitle05.Visible = false;
                    }
                }
                else
                {
                    btnTitle03.Visible = false;//사전예약 탭
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT318) == "1")
                    {
                        btnTitle04.Visible = true;
                        btnTitle05.Visible = true;
                        btnTitle04.Location = new Point(240, 0);
                        btnTitle05.Location = new Point(360, 0);
                    }
                    else
                    {
                        btnTitle04.Visible = false;
                        btnTitle05.Visible = false;
                    }
                }
                #endregion

                #region 그리드 업/다운 버튼
                btnGridUp.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BUTTON_GRID_UP_ARROW);
                btnGridUp.ImageAlign = ContentAlignment.MiddleCenter;
                btnGridUp.BorderStyle = BorderStyle.None;

                btnGridDown.Image = ImageManager.GetImage(BaseCom.NxImgPath, ImageManager.BUTTON_GRID_DOWN_ARROW);
                btnGridUp.ImageAlign = ContentAlignment.MiddleCenter;
                btnGridDown.BorderStyle = BorderStyle.None;
                #endregion

                //Print Buffer Clear
                InitOrderDetail();

                vScrollbar.Attach(txtPrtData);

                //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start 
                htLandomBoxInfo = new Hashtable();
                htLandomBoxInfo.Clear();
                //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end 

                #region 해피오더 상태코드 관리
                htStatus = new Hashtable();
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.ORDER_REG, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0431));                // 주문접수
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.PRODUCT_READY, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0424));            // 상품준비
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0425));              // 픽업대기
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426));         // 픽업완료
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0432));             // 픽업지연
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451));        // 픽업완료
                if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
                {
                    htStatus.Add(ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0955));             // 라이더요청
                    htStatus.Add(ItemConst.HAPPYORDER_STATUS.DELIVERY_REG, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0956));             // 라이더접수
                }
                else
                {
                    htStatus.Add(ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0427));             // 배달요청
                    htStatus.Add(ItemConst.HAPPYORDER_STATUS.DELIVERY_REG, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0433));             // 배달접수
                }
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.DELIVERY_PRODUCT_READY, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0434));   // 배달상품준비중
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.DELIVERY_ING, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0428));             // 배달중
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0435));       // 배달완료
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0429));             // 주문취소
                //grayber@20171123 해피오더 직접배달 start
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1080));          // 직접배달
                //grayber@20171123 해피오더 직접배달 end

                //#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
                htStatus.Add(ItemConst.HAPPYORDER_STATUS.PRE_RESERVED, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0908));             // 사전예약
                //#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 end
                #endregion

                #region 오더폼 상태코드 관리
                m_htYJStatus = new Hashtable();
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.ORDER_REG, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0431));                // 주문접수
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0424));            // 상품준비
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.FIELD_ORDER_COMPLETED, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0839));    // 현장주문완료
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.PICKUP_WAIT, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0425));              // 픽업대기
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426));         // 픽업완료
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.PICKUP_DELAY, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0432));             // 픽업지연
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED2, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451));        // 픽업완료
                if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
                {
                    m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0955));             // 라이더요청
                    m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.DELIVERY_REG, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0956));             // 라이더접수
                }
                else
                {
                    m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0427));             // 배달요청
                    m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.DELIVERY_REG, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0433));             // 배달접수
                }
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.DELIVERY_PRODUCT_READY, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0434));   // 배달상품준비중
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.DELIVERY_ING, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0428));             // 배달중
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.DELIVERY_COMPLETED, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0435));       // 배달완료
                m_htYJStatus.Add(ItemConst.YANGJAEORDER_STATUS.ORDER_CANCEL, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0429));
                #endregion
            }
            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);
            }
        }

        /// <summary>
        /// 타이틀 색상 전환 표시
        /// </summary>
        private void TitleDisplay()
        {
            try
            {
                foreach (Control control in pnlTitle.Controls)
                {
                    if (control is UI.CsmButton)
                    {
                        if (control.Tag.ToString() == PosMenuKeyIn)
                        {
                            //글자색변경
                            //배경색변경
                            control.ForeColor = m_clrSelectFont;
                            control.BackColor = m_clrSelectback;
                        }
                        else
                        {
                            control.ForeColor = m_clrNonSelectFont;
                            control.BackColor = m_clrNonSelectback;
                        }
                    }
                }
            }
            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);
            }
        }



        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
        //기존
        /*
        //#20180607 해피오더 리스트 전체 조회 기능 추가 start
        //기존
        //private void MenuDisplay()
        //변경
        private void MenuDisplay(string sOrderType = "")
        //#20180607 해피오더 리스트 전체 조회 기능 추가 end
        */
        //변경
        private bool MenuDisplay(int iRowNum)
        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
        {
            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
            bool bRet = false;
            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
            try
            {
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                //버튼 초기화 
                btnStatus1.Visible = false;
                btnStatus2.Visible = false;
                btnStatus3.Visible = false;
                btnStatus4.Visible = false;
                btnOrderCancel.Visible = false;
                btnWeightPrint.Visible = false;
                
                //헤더 데이터 가져오기 
                Column.TR_HPORD.HPORD_HEADER header = null;
                header = GetHappyHeader(PosMenuKeyIn, iRowNum);

                if (header == null) return bRet;

                string sOrderType = header.OrderType;
                string sAsIsStatus = header.OrderStatus;
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

                #region 버튼 활성화 체크 
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start 
                //기존
                //if (PosMenuKeyIn == "01" || PosMenuKeyIn == "04" || PosMenuKeyIn == "03")        // 내점 or 오더폼 내점 or 사전예약
                //변경
                if ((PosMenuKeyIn == "00" && sOrderType != "5") || PosMenuKeyIn == "01" || PosMenuKeyIn == "04" || PosMenuKeyIn == "03")
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                {
                    // 상태버튼1 (상품준비)
                    btnStatus1.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0424);
                    btnStatus1.Visible = true;
                    btnStatus1.Location = new Point(1, 59);
                    // 상태버튼2 (픽업대기)
                    btnStatus2.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0425);
                    btnStatus2.Visible = true;
                    btnStatus2.Location = new Point(103, 59);
                    // 상태버튼3 (픽업완료)
                    btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                    btnStatus3.Visible = true;
                    btnStatus3.Location = new Point(205, 59);

                    btnOrderCancel.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0429);
                    btnOrderCancel.Visible = true;

                    //grayber@20171123 해피오더 직접배달 start
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                    {
                        btnStatus4.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1080);
                        btnStatus4.Visible = false;
                    }
                    //grayber@20171123 해피오더 직접배달 end
                }

                //#20180607 해피오더 리스트 전체 조회 기능 추가 start 
                //기존
                //else if (PosMenuKeyIn == "02" || PosMenuKeyIn == "05")   // 배달 or 오더폼 배달 
                //변경
                else if ((PosMenuKeyIn == "00" && sOrderType == "5") || PosMenuKeyIn == "02" || PosMenuKeyIn == "05")   // 배달 or 오더폼 배달       
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                {
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT045) == "1")
                    {
                        // 상태버튼1 (상품준비)
                        btnStatus1.Visible = true;
                        btnStatus1.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0424);
                        btnStatus1.Location = new Point(1, 59);
                        // 상태버튼2 (배달요청)
                        btnStatus2.Visible = true;
                        if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
                        {
                            btnStatus2.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0955);
                        }
                        else
                        {
                            btnStatus2.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0427);
                        }
                        btnStatus2.Location = new Point(103, 59);
                        // 상태버튼3 (배달중)
                        btnStatus3.Visible = true;
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0428);
                        btnStatus3.Location = new Point(205, 59);
                    }
                    else
                    {
                        // 상태버튼1 (상품준비)
                        btnStatus1.Visible = false;
                        // 상태버튼2 (배달요청)
                        btnStatus2.Visible = true;
                        if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
                        {
                            btnStatus2.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0955);
                        }
                        else
                        {
                            btnStatus2.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0427);
                        }
                        btnStatus2.Location = new Point(1, 59);
                        // 상태버튼3 (배달중)
                        btnStatus3.Visible = true;
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0428);
                        btnStatus3.Location = new Point(103, 59);
                    }

                    //#17197 판매POS 직접배달 옵션처리 요청 件 start
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                    {
                        btnStatus4.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1080);
                        btnStatus4.Visible = false;
                    }
                    //#17197 판매POS 직접배달 옵션처리 요청 件 end

                    // 주문취소
                    btnOrderCancel.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0429);
                    btnOrderCancel.Visible = true;
                }

                if (PosMenuKeyIn == "04" || PosMenuKeyIn == "05")
                {
                    // 오더폼 내점 or 오더폼 배달 일 경우 중량출력 버튼은 숨김
                    btnWeightPrint.Visible = false;
                }
                else
                {
                    //btnWeightPrint.Visible = true;
                    // 옵션 설정에 따라 중량출력 기능 사용 여부 설정
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT314) == "1")
                    {
                        btnWeightPrint.Visible = true;
                    }
                    else
                    {
                        btnWeightPrint.Visible = false;
                    }
                }


                //#20180607 해피오더 리스트 전체 조회 기능 추가 start 
                //기존
                //if(PosMenuKeyIn == "03")
                //변경
                if ((PosMenuKeyIn == "00" && sOrderType == "6") || PosMenuKeyIn == "03")
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                {
                    // 사전예약일 경우 픽업대기 버튼 사용 옵션에 따라 버튼 SHOW/HIDDEN
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT044) == "1")
                    {
                        btnStatus2.Visible = true;
                    }
                    else
                    {
                        btnStatus2.Visible = false;
                    }
                }

                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                //SetDataOnGrid();
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                #endregion

                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                #region 버튼3 상태변경
                if (PosMenuKeyIn == "01" || (PosMenuKeyIn == "00" && (header.OrderType != "5" && header.OrderType != "6")))
                {
                    if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)
                    {
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451);
                    }
                    else
                    {
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                    }
                }
                //grayber@20171123 해피오더 직접배달 start
                else if (PosMenuKeyIn == "02" || (PosMenuKeyIn == "00" && header.OrderType == "5"))   // 배달 탭일 때
                {
                    #region 해피오더 직접배달

                    btnStatus4.Visible = false; // 기본상태 가려짐

                    //20171214_해피오더 직접 배달 수정_hs
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)     // 주문접수 상태일때 
                        {
                            btnStatus4.Visible = true;      // 보여짐
                        }

                        //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 start
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)     // 상품준비 상태일때 
                        {
                            btnStatus4.Visible = true;      // 보여짐
                        }
                        //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 end

                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)     // 직접 배달일때 
                        {
                            btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0435);  //배달완료
                        }
                        else
                        {
                            btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0428);  //배달중
                        }
                    }
                    #endregion
                }
                //grayber@20171123 해피오더 직접배달 end
                else if (PosMenuKeyIn == "03" || (PosMenuKeyIn == "00" && header.OrderType == "6"))
                {
                    if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)
                    {
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451);
                    }
                    else
                    {
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                    }
                }
                else if (PosMenuKeyIn == "04")
                {
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                    //기존
                    //현장결제
                    //if (((Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[gridHappyOrderList.CsmGridSelectedRowIndex]).FieldPay == "Y")
                    //변경
                    //현장결제
                    if (header.FieldPay == "Y")
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
                    {
                        btnStatus1.Visible = false;
                        btnStatus2.Visible = false;

                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0846);
                    }
                    else
                    {
                        btnStatus1.Visible = true;
                        btnStatus2.Visible = true;

                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                    }
                }
                #endregion
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                bRet = true;
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
                
                ReadyToBarcode();
            }
            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);
            }
            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
            return bRet;
            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
        }

        /// <summary>
        /// Grid 초기화
        /// </summary>
        private void InitializeGrid()
        {
            try
            {
                //DataGridView 자체의 컬럼 헤더 Visible 여부
                gridHappyOrderList.CsmGridColumnHeadersVisible = true;
                //DataGridView 자체의 컬럼 헤더 높이
                gridHappyOrderList.CsmGridColumnHeadersHeight = 34;
                //DataGridView 컬럼 폰트 설정
                gridHappyOrderList.CsmGridColumnHeadersFont = new Font(m_cPosStatus.Base.FONT, 10, FontStyle.Bold);
                
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                //DataGridView 컬럼 수
                //gridHappyOrderList.CsmGridColumnCount = 7;
                
                //변경
                gridHappyOrderList.CsmGridColumnCount = 8;
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                gridHappyOrderList.CsmGridSetHeaderBackColor(236, 238, 239);                             //그리드 헤더 배경색
                gridHappyOrderList.CsmGridDefaultRowBackColor = Color.FromArgb(255, 255, 255);           //그리드 홀수(Default)행의 배경색 지정
                gridHappyOrderList.CsmGridAlternateRowBackColor = Color.FromArgb(251, 253, 255);         //그리드 짝수(Alternate)행의 배경색 지정
                gridHappyOrderList.CsmGridBackGroundColor = Color.FromArgb(251, 253, 255);               //기본 백그라운드 컬러
                gridHappyOrderList.CsmGridHighlightColor = Color.FromArgb(255, 251, 211);                //그리드 선택 백 컬러
                gridHappyOrderList.CsmGridHighlightTextColor = Color.Black;                              //그리드 선택 글자 컬러


                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                //각 컬럼별 이름 설정
                //gridHappyOrderList.CsmGridColumnName(0, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0436));  // 주문일자
                //gridHappyOrderList.CsmGridColumnName(1, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0420));  // 주문번호
                //gridHappyOrderList.CsmGridColumnName(2, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0819));  // 픽업/배달일시
                //gridHappyOrderList.CsmGridColumnName(3, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0192));  // 연락처
                //gridHappyOrderList.CsmGridColumnName(4, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0421));  // 상태
                //gridHappyOrderList.CsmGridColumnName(5, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0832));  // 픽업
                //gridHappyOrderList.CsmGridColumnName(6, string.Empty);      // Blank

                //변경 
                gridHappyOrderList.CsmGridColumnName(0, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0617));  // 종류
                gridHappyOrderList.CsmGridColumnName(1, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0436));  // 주문일자
                gridHappyOrderList.CsmGridColumnName(2, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0420));  // 주문번호
                gridHappyOrderList.CsmGridColumnName(3, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0819));  // 픽업/배달일시
                gridHappyOrderList.CsmGridColumnName(4, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0192));  // 연락처
                gridHappyOrderList.CsmGridColumnName(5, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0421));  // 상태
                gridHappyOrderList.CsmGridColumnName(6, MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0832));  // 픽업
                gridHappyOrderList.CsmGridColumnName(7, string.Empty);      // Blank
                 
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end


                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존 
                //컬럼별 정렬 기준 설정(0:왼쪽, 1:가운데, 2:오른쪽)
                //gridHappyOrderList.CsmGridAlignment(new int[] { 0, 1, 1, 1, 1, 1, 0 });
               
                //변경
                //컬럼별 정렬 기준 설정(0:왼쪽, 1:가운데, 2:오른쪽)
                gridHappyOrderList.CsmGridAlignment(new int[] { 1, 0, 1, 1, 1, 1, 1, 0 });
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                //#20180612 해피오더 주문알림 start
                //기존
                //DataGridView 한 화면에 보이는 Row 수
                //gridHappyOrderList.CsmGridShowPageRowsCount = 12;
                //변경
                //if (m_sPicupSearch == "A" || m_sPicupSearch == "B")
                //{
                //    //DataGridView 한 화면에 보이는 Row 수
                //    gridHappyOrderList.CsmGridShowPageRowsCount = 10;
                //}
                //else
                //{
                //    //DataGridView 한 화면에 보이는 Row 수
                //    gridHappyOrderList.CsmGridShowPageRowsCount = 12;
                //}

                gridHappyOrderList.CsmGridShowPageRowsCount = 10;
                //#20180612 해피오더 주문알림 end

                //DataGridView Row의 헤더 높이
                gridHappyOrderList.CsmGridRowsHeight = 34;

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                //기존
                /*
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                //컬럼 넓이 지정
                //gridHappyOrderList.CsmGridSetColumnWidth(new int[] { 80, 98, 180, 58, 65, 65, 32 });
                //변경
                //컬럼 넓이 지정
                gridHappyOrderList.CsmGridSetColumnWidth(new int[] { 60, 80, 98, 120, 58, 65, 65, 32 });
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                */
                //변경
                gridHappyOrderList.CsmGridSetColumnWidth(new int[] { 50, 80, 95, 120, 58, 65, 78, 32 });
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                //#20180612 해피오더 주문알림 start
                btnGridUp.Top = gridHappyOrderList.Top;
                btnGridUp.Height = gridHappyOrderList.Height / 2;
                btnGridDown.Top = btnGridUp.Top + btnGridUp.Height;
                btnGridDown.Height = gridHappyOrderList.Height / 2;
                txtPrtData.Top = gridHappyOrderList.Top;
                txtPrtData.Height = gridHappyOrderList.Height;
                vScrollbar.Top = txtPrtData.Top;
                vScrollbar.Height = txtPrtData.Height;
                //#20180612 해피오더 주문알림 end

                //특정컬럼 Visible 여부 설정
                //gridHappyOrderList.CsmGridColumnShowHide(5, false);
                //gridHappyOrderList.CsmGridColumnShowHide(6, false);
                //gridHappyOrderList.CsmGridColumnShowHide(7, false);
                 
                m_dtGrid = new DataTable();
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                m_dtGrid.Columns.Add(new DataColumn("ORDER_NAME", typeof(string)));
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                m_dtGrid.Columns.Add(new DataColumn("ORDER_DT", typeof(string)));
                m_dtGrid.Columns.Add(new DataColumn("ORDER_NO", typeof(string)));
                m_dtGrid.Columns.Add(new DataColumn("PICKUP_DELIVERY_DT", typeof(string)));
                m_dtGrid.Columns.Add(new DataColumn("TEL", typeof(string)));
                m_dtGrid.Columns.Add(new DataColumn("STATUS", typeof(string)));
                m_dtGrid.Columns.Add(new DataColumn("DDAY", typeof(string)));
                
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                //기존
                //m_dtGrid.Columns.Add(new DataColumn("BLANK", typeof(string)));
                //변경
                m_dtGrid.Columns.Add(new DataColumn("DDAY_TYPE", typeof(string)));
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                //m_dtGrid.Columns.Add(new DataColumn("BLANK", typeof(string)));
                //변경
                m_dtGrid.Columns.Add(new DataColumn("ORDER_TYPE", typeof(string)));
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                m_dtGrid.Clear();

                gridHappyOrderList.CsmGridDataSource = m_dtGrid;
            }
            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);
            }
        }
        #endregion

        /// <summary>
        /// 텍스트박스에 포커스를 고정
        /// </summary>
        private void ReadyToBarcode()
        {
            try
            {
                tbOrderBarcode.Select();
            }
            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 OnDeviceEvent(string sDevice, string sData1, string sData2, string sData3)
        //{
        //    try
        //    {
        //        switch (sDevice)
        //        {
        //            case PosConst.OPOS_DEVICE.WIRELESSSCALE:
        //                this.Invoke(new EventHandler(OnScaleEvent));
        //                break;
        //        }
        //    }
        //    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);
        //    }
        //}

        //private void OnScaleEvent(object source, EventArgs e)
        //{
        //    try
        //    {
        //        ILabelPrinterUs m_cLabelPrinterUs = (ILabelPrinterUs)sManager.InitServiceInstance(ServiceLists.AGENT_OLEDEVICE.DLL, ServiceLists.AGENT_OLEDEVICE.DEVICE_LABELPRINTER);

        //        string sItemNm = string.Empty;
        //        if (CheckOverWeightValue(Convert.ToInt32(m_cDevStatus.WirelessScale.Data), ref sItemNm) == true)
        //        {
        //            bool bConnection = m_cLabelPrinterUs.OpenDevice(m_cPosStatus.Base.OlePosLabelPrinterSerialPortNumber, (int)m_cPosStatus.Base.OlePosLabelPrinterSerialBaudRate);

        //            if (bConnection == true)
        //            {
        //                m_cLabelPrinterUs.PrintO2OProductInfo(sItemNm,
        //                                                      m_sReceiverHp.Substring(m_sReceiverHp.Length - 4),
        //                                                      (Convert.ToInt32(m_cDevStatus.WirelessScale.Data)).ToString() + "g",
        //                                                      m_sFlavour1,
        //                                                      m_sFlavour2,
        //                                                      (PosMstManager.GetMstStore())[PosMst.MST_STORE.DATA.STORNM].ToString(),
        //                                                      m_sOrderDT,
        //                                                      DateTime.Now.ToString("yyyy-MM-dd HH시mm분"));
        //            }

        //            m_cLabelPrinterUs.CloseDevice();
        //        }

        //    }
        //    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);
        //    }
        //}

        private void btnTitle_Click(object sender, EventArgs e)
        {
            try
            {
                if (((Cosmos.UI.CsmButton)sender).Tag.ToString() != "")
                {
                    if (PosMenuKeyIn != ((Cosmos.UI.CsmButton)sender).Tag.ToString())
                    {
                        PosMenuKeyIn = ((Cosmos.UI.CsmButton)sender).Tag.ToString();
                        TitleDisplay();

                        //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                        //기존
                        //MenuDisplay();      //화면에 메뉴 표시
                        //변경
                        SetDataOnGrid();
                        //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                        DisplayDetailList();
                    }
                }
            }
            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);
            }
        }

        private void btnGrid_MouseDown(object sender, MouseEventArgs e)
        {
            try
            {
                ((Cosmos.UI.CsmButton)sender).BorderStyle = BorderStyle.FixedSingle;
            }
            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);
            }
        }

        private void btnGrid_MouseUp(object sender, MouseEventArgs e)
        {
            try
            {
                ((Cosmos.UI.CsmButton)sender).BorderStyle = BorderStyle.None;
            }
            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);
            }
        }

        private void InitOrderDetail()
        {
            try
            {
                txtPrtData.Text = string.Empty;
                m_cHappyOrder.PrintBufClear();
            }
            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);
            }
        }

        private void SetDataOnGrid()
        {
            ArrayList alTemp = null;
            try
            {
                m_dtGrid.Clear();

                switch(PosMenuKeyIn)
                {
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                    case "00":  // 내점
                        alTemp = m_alTotalLists;
                        break;
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                    case "01":  // 내점
                        alTemp = m_alPickupLists;
                        break;
                    case "02":  // 배달
                        alTemp = m_alDeliveryLists;
                        break;
                    case "03":  // 사전예약
                        alTemp = m_alPreReservLists;
                        break;
                    case "04":  // 오더폼 내점
                        alTemp = m_alYJPickupLists;
                        break;
                    case "05":  // 오더폼 배달
                        alTemp = m_alYJDeliveryLists;
                        break;
                }

                foreach(Column.TR_HPORD.HPORD_HEADER header in alTemp)
                {
                    DataRow drNew = m_dtGrid.NewRow();

                    //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                    if (header.OrderType == "5")
                    {
                        drNew["ORDER_NAME"] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0423);
                    }
                    else if (header.OrderType == "6")
                    {
                        drNew["ORDER_NAME"] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0908);
                    }
                    else
                    {
                        drNew["ORDER_NAME"] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0422);
                    }
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                    drNew["ORDER_DT"] = header.OrderDate.Substring(0, 10);
                    drNew["ORDER_NO"] = header.OrderNum;
                    drNew["PICKUP_DELIVERY_DT"] = header.PickupTime;
                    

                    //#20180612 해피오더 주문알림 start
                    //기존
                    //drNew["TEL"] = header.ReceiverHp.Substring(header.ReceiverHp.Length - 4, 4);
                    //변경
                    drNew["TEL"] = CmUtil.MidH(header.ReceiverHp, header.ReceiverHp.Length - 4, 4);
                    //#20180612 해피오더 주문알림 end

                    if (header.FieldPay == "Y")
                    {
                        drNew["STATUS"] = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0846);
                    }
                    else
                    {
                        drNew["STATUS"] = htStatus[header.OrderStatus].ToString();
                    }

                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                    //기존
                    //drNew["DDAY"] = header.DDay;
                    //변경
                    //ex) H-02 -> 2시간 후, H+02 -> 2시간 경과 D-02 -> 2일 후, D+02 -> 2일 경과
                    string iDDay = CmUtil.MidH(header.DDay, 0, 1);
                    if (iDDay == "D")
                    {
                        // day
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20181001
                        //일자 계산시 3자리 넘어가는 경우 앞2자리만 표시
                        //기존
                        //int iDay = CmUtil.IntParse(CmUtil.MidH(header.DDay, 1, 3));
                        //변경
                        int iDay = CmUtil.IntParse(CmUtil.MidH(header.DDay, 1, header.DDay.Length - 1));
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20181001
                        if (iDay > 0)
                        {
                            // +
                            drNew["DDAY"] = iDay + "일 경과";
                        }
                        else
                        {
                            // -
                            drNew["DDAY"] = (iDay * -1) + "일 후";
                        }
                    }
                    else
                    {
                        // time
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20181001
                        //기존
                        //int iTime = CmUtil.IntParse(CmUtil.MidH(header.DDay, 1, 3));
                        //변경
                        int iTime = CmUtil.IntParse(CmUtil.MidH(header.DDay, 1, header.DDay.Length - 1));
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20181001
                        if (iTime > 0)
                        {
                            // +
                            drNew["DDAY"] = iTime + "시간 경과";
                        }
                        else
                        {
                            // -
                            drNew["DDAY"] = (iTime * -1) + "시간 후";
                        }
                    }
                   
                    drNew["DDAY_TYPE"] = header.DDay.Trim();
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                    //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                    drNew["ORDER_TYPE"] = header.OrderType.Trim();
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                    m_dtGrid.Rows.Add(drNew);
                }
                
                gridHappyOrderList.CsmGridDataSource = m_dtGrid;

                gridHappyOrderList.CsmGridSelectRow(0);

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20181001
                //기존
                //for (int i = 0; i <= gridHappyOrderList.CsmGridRowsCount; i++)
                //변경
                for (int i = 0; i <= gridHappyOrderList.CsmGridRowsCount - 1; i++)
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20181001
                {
                    string sOrderStatus = m_dtGrid.Rows[i]["STATUS"].ToString().Trim(); //
                    string sDDayType = m_dtGrid.Rows[i]["DDAY_TYPE"].ToString().Trim();

                    gridHappyOrderList.CsmGridGetRow(i).DefaultCellStyle.BackColor = Color.White;
                   
                    string sOrderStatusKey = OrderStatusKey(sOrderStatus);
  
                    //선택한 주문 건이 주문접수 일 때 하늘색으로 라인 표시 (RGB:198,217,241)
                    //if (sOrderStatus == "주문접수")
                    if (sOrderStatusKey == ItemConst.HAPPYORDER_STATUS.ORDER_REG)
                    {
                        gridHappyOrderList.CsmGridGetRow(i).DefaultCellStyle.BackColor = Color.FromArgb(198, 217, 241);
                    }

                    //#20181030 픽업 한 시간 이하일 때 다홍색으로 라인 표시 start
                    //기존
                    /*
                    //픽업 컬럼 내용이 H-01이면 바탕색 다홍색으로 표현 (RGB:230,185,184)
                    if (sDDayType == "H-01")
                    {
                        gridHappyOrderList.CsmGridGetRow(i).DefaultCellStyle.BackColor = Color.FromArgb(230, 185, 184);
                    }
                    */
                    //변경
                    string iDDay = CmUtil.MidH(sDDayType, 0, 1);
                    if (iDDay == "H")
                    {
                        int iTime = CmUtil.IntParse(CmUtil.MidH(sDDayType, 1, sDDayType.Length - 1));
                        
                        if (-01 <= iTime && iTime  <= 00)
                        {
                            gridHappyOrderList.CsmGridGetRow(i).DefaultCellStyle.BackColor = Color.FromArgb(230, 185, 184);
                        }
                    }
                    //#20181030 픽업 한 시간 이하일 때 다홍색으로 라인 표시 end
                }
                
                gridHappyOrderList.Refresh();
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                ReadyToBarcode();
            }
            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);
            }
        }

        /// <summary>
        /// 신규 주문 리스트 조회
        /// </summary>
        private bool GetHappyOrderList(ORDER_DIV orderDiv)
        {
            try
            {
                Hashtable htRequest = new Hashtable();
                Hashtable htResponse = new Hashtable();
                int iReturn = 0;

                if (orderDiv == ORDER_DIV.HAPPY_ORDER)
                {
                    #region 해피오더 내점/배달 주문 리스트 조회
                    //Hashtable htRequest = new Hashtable();
                    htRequest.Add("storeCode", m_cPosStatus.Base.StoreNo);
                    //htRequest.Add("storeCode", "11101");
                    //htRequest.Add("status", 4);
                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.ORDER_REG);
                    htRequest.Add("deviceType", "POS");

                    //#20180126 해피오더 당일픽업 건 보여주기 start,phj, 20180321
                    
                    if (m_sPicupSearch == "Y")
                    {
                        htRequest.Add("orderDate", m_cPosStatus.Base.SaleDate);
                    }
                    
                    //#20180126 해피오더 당일픽업 건 보여주기 end,phj, 20180321

                    htResponse = null;
                    iReturn = BaseCom.NG;
                    m_htOrderLists = m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_ORDER_LIST, htRequest }, ref htResponse, ref iReturn);

                    if (iReturn != BaseCom.OK)
                    {
                        return false;
                    }

                    //m_cHappyOrderHeader.Clear();

                    //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                    m_alTotalLists.Clear();
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                    m_alDeliveryLists.Clear();
                    m_alPickupLists.Clear();
                    m_alPreReservLists.Clear();

                    //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 Start
                    // 해피오더 헤더정보 DB 삭제
                    m_cHappyOrder.DeleteHappyOrderAllData();
                    //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 End

                    if (m_htOrderLists != null && m_htOrderLists.Length > 0)
                    {
                        foreach (Hashtable htData in m_htOrderLists)
                        {
                            Column.TR_HPORD.HPORD_HEADER header;
                            header = m_cHappyOrder.ParseHappyOrderList(htData);

                            // 해피오더 헤더정보 DB 처리
                            m_cHappyOrder.SaveHappyOrderData(header);

                            //#20180126 해피오더 당일픽업 건 보여주기 start,phj
                            //#20180126 해피오더 당일픽업 건 보여주기 start,phj, 20180321
                            //기존 소스 주석
                            //리스트 조회시 픽업일자로 조회하게 변경하면서 주석
                            /*
                            if (m_sPicupSearch == "Y")
                            {
                                string sPickupTime = string.Empty;
                                sPickupTime = header.PickupTime.Substring(0, 4) + header.PickupTime.Substring(5, 2) + header.PickupTime.Substring(8, 2);
                                if (CmUtil.LongParse(sPickupTime) != CmUtil.LongParse(m_cPosStatus.Base.SaleDate)) continue;
                            }
                            */
                            //#20180126 해피오더 당일픽업 건 보여주기 end,phj, 20180321
                            //#20180126 해피오더 당일픽업 건 보여주기 end,phj

                            //m_cHappyOrderHeader.Add(header);

                            //#15710 확인요청)해피오더 주문내역 오류건 수정요청 start
                            //즉시주문: 주문일자와 픽업/배달요청일자가 동일한 주문 건
                            //예약주문: 주문일자와 픽업/배달요청일자가 상이한 주문 건
                            //해피오더 주문건 표시 중 immediateOrder항목은 사용하지 말고 위 계산식 기준으로 즉시주문인지 예약주문인지 구분하여 수정
                            string sPickupData = string.Empty;
                            string sOrderData = string.Empty;
                            sPickupData = header.PickupTime.Substring(0, 4) + header.PickupTime.Substring(5, 2) + header.PickupTime.Substring(8, 2);
                            sOrderData = header.OrderDate.Substring(0, 4) + header.OrderDate.Substring(5, 2) + header.OrderDate.Substring(8, 2);
                            //#15710 확인요청)해피오더 주문내역 오류건 수정요청 end

                            //#20180612 해피오더 주문알림 start
                            //변경
                             
                            if (m_sPicupSearch == "A")
                            {
                                //#15710 확인요청)해피오더 주문내역 오류건 수정요청 start
                                //즉시주문: 주문일자와 픽업/배달요청일자가 동일한 주문 건
                                //예약주문: 주문일자와 픽업/배달요청일자가 상이한 주문 건
                                //해피오더 주문건 표시 중 immediateOrder항목은 사용하지 말고 위 계산식 기준으로 즉시주문인지 예약주문인지 구분하여 수정
                                //기존
                                //if (header.immediateOrder != "Y") continue;
                                //변경
                                if (header.OrderStatus != ItemConst.HAPPYORDER_STATUS.ORDER_REG) continue;
                                if (sPickupData != sOrderData) continue;
                                //#15710 확인요청)해피오더 주문내역 오류건 수정요청 end

                                

                                //iOrdCnt_Direct ->즉시픽업 건수 계산 
                                //htData["status"].ToString() == ItemConst.HAPPYORDER_STATUS.ORDER_REG:  
                                //htData["type"].ToString() == ItemConst.ORDER_TYPE.DIRECT_ORDER)

                                //iOrdCnt_Reserv -> 즉시배달
                                //htData["status"].ToString() == ItemConst.HAPPYORDER_STATUS.ORDER_REG:  
                                //htData["type"].ToString() == ItemConst.ORDER_TYPE.RESERV_ORDER)

                                //if ((header.OrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER || header.OrderType == ItemConst.ORDER_TYPE.RESERV_ORDER) == false) continue; 
                            }
                            else if (m_sPicupSearch == "B")
                            {
                                //#15710 확인요청)해피오더 주문내역 오류건 수정요청 start
                                //즉시주문: 주문일자와 픽업/배달요청일자가 동일한 주문 건
                                //예약주문: 주문일자와 픽업/배달요청일자가 상이한 주문 건
                                //해피오더 주문건 표시 중 immediateOrder항목은 사용하지 말고 위 계산식 기준으로 즉시주문인지 예약주문인지 구분하여 수정
                                //기존
                                //if (header.immediateOrder != "N") continue;
                                //변경
                                if (header.OrderStatus != ItemConst.HAPPYORDER_STATUS.ORDER_REG) continue;
                                if (sPickupData == sOrderData) continue;
                                //#15710 확인요청)해피오더 주문내역 오류건 수정요청 end

                                //예약접수 건이 1건 이상인 경우
                                //int ReservCnt = int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderTotRegCnt, "0")) -
                                //                int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDirectCnt, "0")) -
                                //                int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderReservCnt, "0"));

                                //iOrderRegNormalCnt -> 
                                //htData["status"].ToString() == ItemConst.HAPPYORDER_STATUS.ORDER_REG
                                //htData["type"].ToString() == ItemConst.ORDER_TYPE.SHOP_DIRECT || ItemConst.ORDER_TYPE.SHOP_TIME
                                //
                                //iOrderRegDeliveryCnt -> 
                                //htData["status"].ToString() == ItemConst.HAPPYORDER_STATUS.ORDER_REG
                                //htData["type"].ToString() == ItemConst.ORDER_TYPE.INNER_DELIVERY || ItemConst.ORDER_TYPE.OUTTER_DELIVERY
                                //
                                //iOrderRegReservedCnt -> 
                                //htData["status"].ToString() == ItemConst.HAPPYORDER_STATUS.ORDER_REG
                                //htData["type"].ToString() == ItemConst.ORDER_TYPE.RESERVED_ORDER || ItemConst.ORDER_TYPE.PRE_RESERVED

                                //if (header.OrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER || header.OrderType == ItemConst.ORDER_TYPE.RESERV_ORDER) continue;
                                //if ((header.OrderType == ItemConst.ORDER_TYPE.SHOP_DIRECT ||
                                //    header.OrderType == ItemConst.ORDER_TYPE.SHOP_TIME ||
                                //    header.OrderType == ItemConst.ORDER_TYPE.INNER_DELIVERY ||
                                //    header.OrderType == ItemConst.ORDER_TYPE.OUTTER_DELIVERY ||
                                //    header.OrderType == ItemConst.ORDER_TYPE.RESERVED_ORDER ||
                                //    header.OrderType == ItemConst.ORDER_TYPE.PRE_RESERVED) == false) continue;
                            }
                            
                            //#20180612 해피오더 주문알림 end

                            //
                            // 주문유형("type") : 1-매장즉시, 2-매장시간, 3-예약주문, 4-내부배달, 5-외부배달, 6-사전예약
                            //   

                            //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                            m_alTotalLists.Add(header);
                            //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                            if (header.OrderType.Equals("5"))          // 배달
                            {
                                m_alDeliveryLists.Add(header);
                            }
                            else if (header.OrderType.Equals("6"))      // 사전예약
                            {
                                m_alPreReservLists.Add(header);
                            }
                            else                                       // 내점
                            {
                                m_alPickupLists.Add(header);
                            }
                        }
                    }
                    #endregion 해피오더 내점/배달 주문 리스트 조회
                }
                else if (orderDiv == ORDER_DIV.YANGJAE_ORDER)
                {
                    #region 양재오더 내점/배달 주문 리스트 조회
                    htRequest.Clear();
                    htRequest.Add("storeCode", m_cPosStatus.Base.StoreNo);
                    htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.ORDER_REG);
                    htRequest.Add("deviceType", "POS");

                    htResponse.Clear();
                    iReturn = BaseCom.NG;
                    m_htYJOrderLists = m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sYangJaeOrderURL, ItemConst.YANGJAEORDER_WORK_TYPE.SELECT_ORDER_LIST, htRequest }, ref htResponse, ref iReturn);

                    if (iReturn != BaseCom.OK)
                    {
                        return false;
                    }

                    m_alYJDeliveryLists.Clear();
                    m_alYJPickupLists.Clear();

                    //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 Start
                    // 해피오더 헤더정보 DB 삭제
                    m_cHappyOrder.DeleteHappyOrderAllData();
                    //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 End

                    if (m_htYJOrderLists != null && m_htYJOrderLists.Length > 0)
                    {
                        foreach (Hashtable htData in m_htYJOrderLists)
                        {
                            Column.TR_HPORD.HPORD_HEADER header;
                            header = m_cHappyOrder.ParseHappyOrderList(htData);

                            // 해피오더 헤더정보 DB 처리
                            m_cHappyOrder.SaveHappyOrderData(header);

                            //
                            // 주문유형("type") : 1-매장즉시, 2-매장시간, 3-예약주문, 4-내부배달, 5-외부배달, 6-사전예약
                            //
                            if (header.OrderType.Equals("5"))          // 배달
                            {
                                m_alYJDeliveryLists.Add(header);
                            }
                            else                                       // 내점
                            {
                                m_alYJPickupLists.Add(header);
                            }
                        }
                    }
                    #endregion 양재오더 내점/배달 주문 리스트 조회
                }

                return true;
            }
            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;
            }
        }

        ///// <summary>
        ///// 옵션상품목록 Parsing
        ///// </summary>
        ///// <param name="sJsonData"></param>
        //private void ParseOptionList(string sJsonData)
        //{
        //    Hashtable[] htOptionList = null;
        //    try
        //    {
        //        htOptionList = m_cHappyOrder.ParseJsonString(sJsonData);

        //        for(int nLoop = 0;nLoop < htOptionList.Length;nLoop++)
        //        {
        //            Hashtable htData = htOptionList[nLoop];
        //            int iPosType = htData["posType"].ToString().Trim().Equals(string.Empty) ? 0 : int.Parse(htData["posType"].ToString());
        //            if(iPosType > 0)
        //            {
        //                this.ParseOptionGoodsList(htData["goodsOptionGoodsList"].ToString());
        //            }
        //        }
        //    }
        //    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);
        //    }
        //}

        ///// <summary>
        ///// 상세옵션상품목록 Parsing
        ///// </summary>
        ///// <param name="sJsonData"></param>
        //private void ParseOptionGoodsList(string sJsonData)
        //{
        //    Hashtable[] htOptionGoodsList = null;
        //    try
        //    {
        //        htOptionGoodsList = m_cHappyOrder.ParseJsonString(sJsonData);

        //        for(int nLoop = 0;nLoop < htOptionGoodsList.Length;nLoop++)
        //        {
        //            Hashtable htData = htOptionGoodsList[nLoop];

        //            Column.TR_HPORD.HPORD_ITEM item = new Column.TR_HPORD.HPORD_ITEM();
        //            item.OrderNum = htData["orderSubNum"].ToString();
        //            item.OrderSeq = Convert.ToString(m_cHappyOrderItem.Count + 1);
        //            item.GoodsCode = htData["posGoodsCode"].ToString();
        //            item.GoodsName = htData["goodsName"].ToString();
        //            item.SupplyPrice = htData["salePrice"].ToString();
        //            item.SalePrice = htData["salePrice"].ToString();
        //            item.DiscountPrice = htData["discountPrice"].ToString();
        //            item.Qty = htData["ea"].ToString();

        //            if(htData["posGoodsCode"].ToString() != "0" && htData["posGoodsCode"].ToString() != "")
        //            {
        //                item.FlavourFlag = "Y";                        
        //            }

        //            m_cHappyOrderItem.Add(item);
        //        }
        //    }
        //    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);
        //    }
        //}

        /// <summary>
        /// 주문서 데이터 생성
        /// </summary>
        /// <param name="iIndex"></param>
        private void MakeOrderSheet(int iIndex)
        {
            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
            //기존
            //Column.TR_HPORD.HPORD_HEADER header;
            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
            
            try
            {
                InitOrderDetail();

                //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs
                //순서 변경 
                ////m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, "[ 해피오더 주문내역 ]");
                //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, "[ " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0559) + " ]");
                //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");

                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                //기존
                #region
                /*
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                if (PosMenuKeyIn == "00")        // 전체 
                {
                    header = (Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iIndex];
                }
                else
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                if(PosMenuKeyIn == "01")        // 내점
                {
                    header = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iIndex];
                }
                else if(PosMenuKeyIn == "02")   // 배달
                {
                    header = (Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iIndex];
                }
                else if(PosMenuKeyIn == "03")   // 사전예약
                {
                    header = (Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iIndex];
                }
                else if(PosMenuKeyIn == "04")   // 양재오더 내점
                {
                    header = (Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[iIndex];
                }
                else    // 양재오더 배달
                {
                    header = (Column.TR_HPORD.HPORD_HEADER)m_alYJDeliveryLists[iIndex];
                }
                */
                #endregion

                //변경
                Column.TR_HPORD.HPORD_HEADER header = null;
                header = GetHappyHeader(PosMenuKeyIn, iIndex);

                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                if (header == null) return;
                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end

                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

                //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs     
                if (header.ChannelName != string.Empty)     //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs    
                {
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, "[ " + header.ChannelName + " ]");
                }
                else if (header.OwnerId == "BLUEBEE" && m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
                {
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, "[ " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1028) + " ]");
                } 
                else
                {
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, "[ " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0559) + " ]");
                }
                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");


                if (header.OrderStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED)
                {
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ 픽업 완료 ]");
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0947) + " ]");
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
                }
                if (header.OrderStatus == ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL)
                {
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ 주문 취소 ]");
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0948) + " ]");
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
                }
                //grayber@20171123 해피오더 직접배달 start
                if (header.OrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)
                {
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ 직접 배달 ]");
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1080) + " ]");
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
                }
                //grayber@20171123 해피오더 직접배달 end

                string sPickupTimeMsg = string.Empty;
                if(header.OrderType == "1")
                {
                    // 주문유형이 '매장즉시'라면
                    sPickupTimeMsg = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0946) + (header.FieldPay == "Y" ? "(" + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0846) + ")" : "");
                }
                else
                {
                    sPickupTimeMsg = header.PickupTime;
                }


                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                if (PosMenuKeyIn == "00")
                {
                    // ("01":내점, "02":배달", "03":사전예약, "04":오더폼내점, "05":오더폼배달)
                    //if (PosMenuKeyIn == "02" || PosMenuKeyIn == "05") 
                
                    //#17141 [해피오더]배달영수증 주소 추가 start
                    //기존
                    // 주문타입(1:매장즉시,2:매장시간,3:예약주문, 4:내부배달, 5:외부배달, 6:사전예약)
                    //if (header.OrderType == "5")
                    //변경
                    // 주문타입(1:매장즉시,2:매장시간,3:예약주문, 4:내부배달, 5:외부배달, 6:사전예약)
                    if (header.OrderType == "4" || header.OrderType == "5")
                    //#17141 [해피오더]배달영수증 주소 추가 end  
                    {
                        // 배달일 경우 배달시간
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0953) + " : " + sPickupTimeMsg);
                    }
                    else
                    {
                        // 픽업일 경우 픽업시간
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0949) + " : " + sPickupTimeMsg);
                    }
                }
                else
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                if (PosMenuKeyIn == "02" || PosMenuKeyIn == "05")
                {
                    // 배달일 경우 배달시간
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0953) + " : " + sPickupTimeMsg);
                }
                else
                {
                    //// 픽업일 경우 픽업시간
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 픽업시간 : " + sPickupTimeMsg);
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0949) + " : " + sPickupTimeMsg);
                }
                //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 주문번호 : " + header.OrderNum);
                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0420) + " : " + header.OrderNum);
                //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 주문일시 : " + header.OrderDate);
                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0950) + " : " + header.OrderDate);
             
                if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                {
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 수 령 자 : " + header.Receiver + " " + header.ReceiverHp);

                    //#17141 [해피오더]배달영수증 주소 추가 start
                    //기존
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0951) + " : " + header.Receiver + " " + header.ReceiverHp);
                    //변경
                    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));
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1189) + " : " + sRecviver);                    
                    //#17533 해피오더)영수증/주문서 전화번호 항목 추가 start
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0952) + " : " + header.ReceiverHp);
                    //#17533 해피오더)영수증/주문서 전화번호 항목 추가 end                    
                    //#17533 해피오더)영수증/주문서 전화번호 항목 추가 start
                    //기존
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1087) + " : " + header.Address1 + " " + ((header.Address2.Trim() == string.Empty) ? string.Empty : header.Address2));
                    //#17533 해피오더)영수증/주문서 전화번호 항목 추가 end
                    //#17141 [해피오더]배달영수증 주소 추가 end
                }
                else if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)    //20171215_해피오더연락처 정보 수정_hs 
                {
                    //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 start
                    //기존
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0952) + " : " + header.ReceiverHp);

                    //변경
                    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));
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0951) + " : " + sRecviver);
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0952) + " : " + header.ReceiverHp.Substring(header.ReceiverHp.Length - 4, 4));
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1087) + " :" + header.Address1 + " " + ((header.Address2.Trim() == string.Empty) ? string.Empty : header.Address2));
                    //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 end
                }
                else
                {
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 연 락 처 : " + header.ReceiverHp.Substring(header.ReceiverHp.Length - 4, 4));
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0952) + " : " + header.ReceiverHp.Substring(header.ReceiverHp.Length - 4, 4));
                }


                if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                {
                    //if (PosMenuKeyIn == "02" || PosMenuKeyIn == "05")
                    //{
                    //    // 배달일 경우 배달기사 정보
                    //    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0954) + " : " + header.DeliveryName + " " + header.DeliveryHp);
                    //}

                    //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                    if (PosMenuKeyIn == "00")
                    {
                        //#17141 [해피오더]배달영수증 주소 추가 start
                        //기존
                        //if (header.OrderType == "5")
                        //변경
                        if (header.OrderType == "5" || header.OrderType == "4")
                        //#17141 [해피오더]배달영수증 주소 추가 end
                        {
                            if (header.OrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG ||
                                header.OrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_ING ||
                                header.OrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED)
                            {
                                // 배달일 경우 배달기사 정보
                                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0954) + " : " + header.DeliveryName + " " + header.DeliveryHp);
                            }
                        }
                    }
                    else
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                    if(PosMenuKeyIn == "02")
                    {
                        if(header.OrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG ||
                           header.OrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_ING ||
                           header.OrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED)
                        {
                            // 배달일 경우 배달기사 정보
                            m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0954) + " : " + header.DeliveryName + " " + header.DeliveryHp);
                        }
                    }
                    else if(PosMenuKeyIn == "05")
                    {
                        if (header.OrderStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_REG ||
                           header.OrderStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_ING ||
                           header.OrderStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_COMPLETED)
                        {
                            // 배달일 경우 배달기사 정보
                            m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0954) + " : " + header.DeliveryName + " " + header.DeliveryHp);
                        }
                    }
                }
                //17.08.22 dkshin SS 해피오더
                //대기번호표시
                if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1" || PosMstManager.GetPosOption(POS_OPTION.OPT048) != "0")
                {
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 대기번호 : " + header.DailyCode);
                }

                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "   ITEM                     QTY        AMT");
                m_cHappyOrder.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 < m_cHappyOrderItem.Count; nLoop++)
                {
                    Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)m_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
                        {
                            m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " >" + CmUtil.RPadH(item.GoodsName, 40));

                            m_cHappyOrder.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
                        {
                            m_cHappyOrder.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
                        {
                            m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, CmUtil.RPadH(item.GoodsName, 42));

                            m_cHappyOrder.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
                        {
                            m_cHappyOrder.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));
                        }
                    }
                }

                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                



                //#17332 해피오더)주문서에 상세금액 추가 start

                #region 기존소스
                /*
                //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, 
                //                           " 합계금액                      " + 
                //                           header.FieldPay == "Y" ? CmUtil.LPadH(CmUtil.GetToMoney(header.OrderMoney), 11) : CmUtil.LPadH(CmUtil.GetToMoney(header.PayMoney), 11));
                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR,
                                           PosConst.PRT_FMT.F200,
                                           " " + MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0957),
                                           header.FieldPay == "Y" ? CmUtil.GetToMoney(header.OrderMoney) : CmUtil.GetToMoney(header.PayMoney));
                */
                #endregion 기존소스

                #region 변경소스
                
                //- 총매출액

                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR,
                                           PosConst.PRT_FMT.F200,
                    //" " + MessageManager.GetLabelMessage(POS_MESSAGE.PRINT.MSG_0007),
                                           " " + "총매출액",
                                           CmUtil.GetToMoney(iTotPrice.ToString()));

                //- 할인금액

                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR,
                                           PosConst.PRT_FMT.F200,
                    //" " + MessageManager.GetLabelMessage(POS_MESSAGE.PRINT.MSG_0079),
                                           " " + "할인금액",
                                           CmUtil.GetToMoney(iTotDiscountPrice.ToString()));

                //- 합계금액

                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR,
                                           PosConst.PRT_FMT.F200,
                    //" " + MessageManager.GetLabelMessage(POS_MESSAGE.PRINT.MSG_0010),
                                           " " + "합계금액",
                                           CmUtil.GetToMoney(iOrderPrice.ToString()));
                //- 받은금액

                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR,
                                           PosConst.PRT_FMT.F200,
                    //" " + MessageManager.GetLabelMessage(POS_MESSAGE.PRINT.MSG_0018),
                                           " " + "받은금액",
                                           CmUtil.GetToMoney(iPayPrice.ToString()));

                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
               
                #endregion 변경소스

                //#17332 해피오더)주문서에 상세금액 추가 end 

                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");

                //#17141 [해피오더]배달영수증 주소 추가 start
                //기존
                /*
                //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 start
                // 원산지 표기 관련 출력
                if (PosMenuKeyIn.Equals("02") == true && m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) == true )
                {
                    //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - 기존 영양정보 호출로 대체
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                    //foreach (string nurtData in m_alHappyNurtitionOrderItem)
                    //{
                    //    if (nurtData != string.Empty) m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, nurtData);
                    //}
                    //m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");

                    DataTable dtReturn = m_cHappyOrder.GetHappyOrderData(header.OrderNum, header.OrderDate.Substring(0, 10).Replace("-", ""));
                    if (dtReturn != null && dtReturn.Rows.Count > 0)
                    {
                        DataRow drData = dtReturn.Rows[0];
                        string sNutritionMsg = CmUtil.GetDataRowStr(drData, "NUTRITION_MSG");
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sNutritionMsg);
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                    }
                    //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end
                }
                //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 end
                */

                //변경
                if ((PosMenuKeyIn == "02") || (PosMenuKeyIn == "00" && (header.OrderType == "5" || header.OrderType == "4")))
                {
                    DataTable dtReturn = m_cHappyOrder.GetHappyOrderData(header.OrderNum, header.OrderDate.Substring(0, 10).Replace("-", ""));
                    if (dtReturn != null && dtReturn.Rows.Count > 0)
                    {
                        DataRow drData = dtReturn.Rows[0];
                        string sNutritionMsg = CmUtil.GetDataRowStr(drData, "NUTRITION_MSG");
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sNutritionMsg);
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                    }
                }
                //#17141 [해피오더]배달영수증 주소 추가 end

                //#20180323 해피오더 영수증 재발행시 원산지 정보 출력 기능 수정 start
                //주문서 출력시 원산지 정보 출력, 재발행시 원산지 정보 미출력되도록 수정
                /*
                else if (m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.PC) == true)
                {
                    DataTable dtReturn = m_cHappyOrder.GetHappyOrderData(header.OrderNum, header.OrderDate.Substring(0, 10).Replace("-", ""));
                    if (dtReturn != null && dtReturn.Rows.Count > 0)
                    {
                        DataRow drData = dtReturn.Rows[0];
                        string sNutritionMsg = CmUtil.GetDataRowStr(drData, "NUTRITION_MSG");
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, sNutritionMsg);
                        m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                    }
                }
                */
                //#20180323 해피오더 영수증 재발행시 원산지 정보 출력 기능 수정 end

                if (header.CustMsg != string.Empty)
                {
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "************** 고객요청사항 **************");
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, header.CustMsg);
                    m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "*");
                }

                //#17140 [해피오더]주문정보 바코드 활용 주문상태 변경 간소화 start
                //해피오더 주문서 출력시 바코드 출력 되도록 수정
                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_BAR, "", "999" + header.OrderNum);
                m_cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
                //#17140 [해피오더]주문정보 바코드 활용 주문상태 변경 간소화 end

                ArrayList alPrintData = m_cHappyOrder.GetPrintBufferData();

                for (int nLoop = 0; nLoop < alPrintData.Count; nLoop++)
                {
                    txtPrtData.AppendText(alPrintData[nLoop].ToString().Substring(5) + "\r\n");
                }
                txtPrtData.Refresh();
            }
            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);
            }
        }

        private void DisplayDetailList()
        {
            try
            {
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                //기존
                #region 기존소스
                /*
                int iRowIndex = gridHappyOrderList.CsmGridSelectedRowIndex;
                InitOrderDetail();
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                if (m_dtGrid.Rows.Count == 0)
                {
                    MenuDisplay();
                }
                else
                {
                    MenuDisplay(m_dtGrid.Rows[iRowIndex]["ORDER_TYPE"].ToString());
                }
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                if (m_dtGrid.Rows.Count == 0) return;
                */
                #endregion

                //변경

                //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 start
                BtnImageClear();
                BtnImageDefault();
                //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 end

                InitOrderDetail();
                int iRowIndex = gridHappyOrderList.CsmGridSelectedRowIndex;
                if (MenuDisplay(iRowIndex) == false) return;
                if (m_dtGrid.Rows.Count == 0) return;
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                BtnImageDisplay(iRowIndex);
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                string sOrderNum = m_dtGrid.Rows[iRowIndex]["ORDER_NO"].ToString();
                string sOrderDt = m_dtGrid.Rows[iRowIndex]["ORDER_DT"].ToString();
                //#17141 [해피오더]배달영수증 주소 추가 start
                string sOrderType = m_dtGrid.Rows[iRowIndex]["ORDER_TYPE"].ToString();
                //#17141 [해피오더]배달영수증 주소 추가 end

                m_sOrderNum = sOrderNum;
                m_sOrderDt = sOrderDt.Substring(0, 10).Replace("-", "");

                WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0437)), this);

                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                //if (PosMenuKeyIn == "01" || PosMenuKeyIn == "02" || PosMenuKeyIn == "03")
                //변경
                if (PosMenuKeyIn == "00" || PosMenuKeyIn == "01" || PosMenuKeyIn == "02" || PosMenuKeyIn == "03")
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end                
                {
                    // 해피오더 리스트 상세 조회
                    m_cHappyOrder.GetHappyOrderListDetail(sOrderNum, m_sHappyOrderURL, ref m_cHappyOrderItem, ref m_htOrderLists);

                    //#17141 [해피오더]배달영수증 주소 추가 start
                    //기존
                    /*
                    //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 start
                    if (PosMenuKeyIn.Equals("02") == true && m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) == true)
                    {
                        //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - 기존 기능으로 대체하며 파라메터 변경
                        //m_cHappyOrder.GetHappyOrderNurtitionListDetail(sOrderNum, m_sHappyOrderURL, ref m_alHappyNurtitionOrderItem, ref m_htOrderNutritionLists);
                        m_cHappyOrder.GetHappyOrderNurtitionListDetail(sOrderNum, m_sHappyOrderURL, sOrderDt.Replace("-", ""));
                        //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end
                    }
                    //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 end
                    */
                    //변경
                    if ((PosMenuKeyIn == "02") || (PosMenuKeyIn == "00" && (sOrderType == "5" || sOrderType == "4")))
                    {
                        m_cHappyOrder.GetHappyOrderNurtitionListDetail(sOrderNum, m_sHappyOrderURL, sOrderDt.Replace("-", ""));
                    }
                    //#17141 [해피오더]배달영수증 주소 추가 end

                    //#20180323 해피오더 영수증 재발행시 원산지 정보 출력 기능 수정 start
                    //주문서 출력시 원산지 정보 출력, 재발행시 원산지 정보 미출력되도록 수정
                    /*
                    else if (m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.PC) == true)
                    {
                        m_cHappyOrder.GetHappyOrderNurtitionListDetail(sOrderNum, m_sHappyOrderURL, sOrderDt.Replace("-", ""));
                    }
                    */
                    //#20180323 해피오더 영수증 재발행시 원산지 정보 출력 기능 수정 end

                }
                else if (PosMenuKeyIn == "04" || PosMenuKeyIn == "05")
                {
                    // 양재오더 리스트 상세 조회
                    m_cHappyOrder.GetHappyOrderListDetail(sOrderNum, m_sYangJaeOrderURL, ref m_cHappyOrderItem, ref m_htYJOrderLists);
                }

                MakeOrderSheet(iRowIndex);


                //#17141 [해피오더]배달영수증 주소 추가 start
                //기존
                /*
                //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 start
                // 원산지데이터 출력으로 최하단으로 내려가서 텍스트박스 화면을 상단으로 이동
                if (PosMenuKeyIn == "02" && m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) == true)
                {
                    txtPrtData.Select(0, 1);
                    txtPrtData.ScrollToCaret();     // 출력창 최상단으로 이동
                    vScrollbar.Value = 0;           // 스크롤 최상단으로 이동
                }
                //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 end
                */
                //변경
                if ((PosMenuKeyIn == "02") || (PosMenuKeyIn == "00" && (sOrderType == "5" || sOrderType == "4")))
                {
                    txtPrtData.Select(0, 1);
                    txtPrtData.ScrollToCaret();     // 출력창 최상단으로 이동
                    vScrollbar.Value = 0;           // 스크롤 최상단으로 이동
                }
                //#17141 [해피오더]배달영수증 주소 추가 end

                //#20180323 해피오더 영수증 재발행시 원산지 정보 출력 기능 수정 start
                //주문서 출력시 원산지 정보 출력, 재발행시 원산지 정보 미출력되도록 수정
                /*
                else if (m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.PC) == true)
                {
                    txtPrtData.Select(0, 1);
                    txtPrtData.ScrollToCaret();     // 출력창 최상단으로 이동
                    vScrollbar.Value = 0;           // 스크롤 최상단으로 이동
                }
                */
                //#20180323 해피오더 영수증 재발행시 원산지 정보 출력 기능 수정 end

                WinManager.HideSearchMessage(this);
            }
            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);
            }
        }

        private void btnProc_Click(object sender, EventArgs e)
        {
            try
            {
                if (((Cosmos.UI.CsmButton)sender) == btnSearch) // 조회
                {
                    WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0437)), this);

                    InitOrderDetail();

                    if(GetHappyOrderList(ORDER_DIV.HAPPY_ORDER) == false)
                    {

                        WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0048));
                    }
                    else
                    {
                        SetDataOnGrid();
                    }

                    if (PosMstManager.GetPosOption(POS_OPTION.OPT318) == "1")
                    {
                        if (GetHappyOrderList(ORDER_DIV.YANGJAE_ORDER) == false)
                        {
                            //WinManager.HideSearchMessage(this);
                            WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0048));
                        }
                        else
                        {
                            SetDataOnGrid();
                        }
                    }

                    WinManager.HideSearchMessage(this);

                    ReadyToBarcode();

                    DisplayDetailList();
                }
                else if (((Cosmos.UI.CsmButton)sender) == btnPrint) // 출력
                {
                    //#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
                    //기존
                    /*
                    //주문서 출력
                    bool bReturn = m_cHappyOrder.PrintOrderSheet();
                    */
                    //변경
                    //주문서 출력
                    bool bReturn = m_cHappyOrder.PrintOrderSheet("D", false);
                    //#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 end                    
                    
                    if(bReturn == true)
                    {
                        // 해당 주문의 주문서 출력여부 Update
                        m_cHappyOrder.UpdateHappyOrderData(new string[] { "PRINT", "1", m_sOrderNum, m_sOrderDt });
                    }
                }

            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
            }
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            try
            {
                m_cPosStatus.Base.HappyOrderMode = string.Empty;
                m_sPosMenuKeyIn = "";
                this.DialogResult = DialogResult.Cancel;
                this.Close();
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);

            }
        }

        private void btnGrid_Click(object sender, EventArgs e)
        {
            try
            {
                if ((Cosmos.UI.CsmButton)sender == btnGridUp)
                {
                    if (gridHappyOrderList.CsmGridSelectedRowIndex == 0)
                    {
                        return;
                    }
                    else
                    {
                        gridHappyOrderList.CsmGridScroll("UP");
                    }
                }
                else if ((Cosmos.UI.CsmButton)sender == btnGridDown)
                {
                    if (gridHappyOrderList.CsmGridSelectedRowIndex == gridHappyOrderList.CsmGridRowsCount - 1)
                    {
                        return;
                    }
                    else
                    {
                        gridHappyOrderList.CsmGridScroll("DOWN");
                    }
                }
                ReadyToBarcode();
            }
            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);
            }
        }

        private void txtPrtData_Click(object sender, EventArgs e)
        {
            int iSelectedRow;
            string sOrderNo;
            try
            {
                iSelectedRow = gridHappyOrderList.CsmGridSelectedRowIndex;
                sOrderNo = CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO");
                
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                //if (PosMenuKeyIn == "01" || PosMenuKeyIn == "02" || PosMenuKeyIn == "03")
                //변경
                if (PosMenuKeyIn == "00" || PosMenuKeyIn == "01" || PosMenuKeyIn == "02" || PosMenuKeyIn == "03")
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end

                {
                    // 해피오더 리스트 상세 조회
                    m_cHappyOrder.GetHappyOrderListDetail(sOrderNo, m_sHappyOrderURL, ref m_cHappyOrderItem, ref m_htOrderLists);
                    
                    //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 start - [주석처리]
                    //if (PosMenuKeyIn.Equals("02") == true && m_cPosStatus.Mst.CorpDiv.Equals(ItemConst.CORP_DIV.BR) == true)
                    //{
                    //    m_cHappyOrder.GetHappyOrderNurtitionListDetail(sOrderNo, m_sHappyOrderURL, sOrderDt);
                    //}
                    //grayber20180201 해피오더 고객정보 추가 + 원산지 표기 #13780 end

                }
                else if (PosMenuKeyIn == "04" || PosMenuKeyIn == "05")
                {
                    // 양재오더 리스트 상세 조회
                    m_cHappyOrder.GetHappyOrderListDetail(sOrderNo, m_sYangJaeOrderURL, ref m_cHappyOrderItem, ref m_htYJOrderLists);
                }

                ReadyToBarcode();
            }
            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);
            }
        }

        private void GoToSpecifiedOrderNum(string sOrderNum)
        {
            int iIndex = -1;
            try
            {
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20181012
                bool sSearchRt = false;
                string sSearchOrderType = "";
                string sSearchOrderNum = ""; 
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20181012

                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20180829
                string sHappyOrderNum = "";

                if (sOrderNum.StartsWith("999") == true && (sOrderNum.Length == 15))
                {
                    sHappyOrderNum = CmUtil.MidH(sOrderNum.Trim(), 3, 12);
                }
                else
                {
                    sHappyOrderNum = sOrderNum.Trim();
                }
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20180829

                for(int nLoop = 0; nLoop < m_dtGrid.Rows.Count; nLoop++)
                {
                    DataRow drData = m_dtGrid.Rows[nLoop];

                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20180829
                    //기존
                    //if(drData["ORDER_NO"].ToString() == sOrderNum)
                    //변경
                    if (drData["ORDER_NO"].ToString() == sHappyOrderNum)
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20180829
                    {
                        iIndex = nLoop;
                  
                        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                        sSearchOrderType = drData["ORDER_TYPE"].ToString();
                        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end


                        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20180829
                        sSearchOrderNum = sHappyOrderNum.Trim();
                        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20180829
                        
                        break;
                    } 
                }
                tbOrderBarcode.Text = string.Empty;

                if (iIndex >= 0)
                {
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                    sSearchRt = true;
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

                    gridHappyOrderList.CsmGridSelectRow(iIndex);
                }
                else
                {
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                    sSearchRt = false;
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20180829
                    //기존
                    //WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0283) + "(" + sOrderNum + ")");
                    //변경
                    WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0283) + "(" + sHappyOrderNum + ")");
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20180829
                }

                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20181012
                HappOrderReadingAutoComplete(sSearchRt, sSearchOrderNum, sSearchOrderType);               
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20181012
            }
            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);
            }
        }

        private void gridHappyOrderList_GridClickEvent(object sender, string rowIndex)
        {
            try
            {
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                //기존
                #region 기존소스
                /*
                DisplayDetailList();

                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                #region 기존소스
                //if (PosMenuKeyIn == "01")
                //{
                //    if (((Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)
                //    {
                //        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451);
                //    }
                //    else
                //    {
                //        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                //    }
                //}
                ////grayber@20171123 해피오더 직접배달 start
                //else if(PosMenuKeyIn == "02")   // 배달 탭일 때
                //{
                //    #region 해피오더 직접배달
                //    btnStatus4.Visible = false; // 기본상태 가려짐
                //   
                //    //20171214_해피오더 직접 배달 수정_hs
                //    if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                //    {
                //        if (((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)     // 주문접수 상태일때 
                //        {
                //            btnStatus4.Visible = true;      // 보여짐
                //        }
                //
                //        //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 start
                //        if (((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)     // 상품준비 상태일때 
                //        {
                //            btnStatus4.Visible = true;      // 보여짐
                //        }
                //        //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 end
                //
                //        if (((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)     // 직접 배달일때 
                //        {
                //            btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0435);  //배달완료
                //        }
                //        else
                //        {
                //            btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0428);  //배달중
                //        }
                //    }
                //    #endregion
                //}
                ////grayber@20171123 해피오더 직접배달 end
                //else if(PosMenuKeyIn == "03")
                //{
                //    if(((Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)
                //    {
                //        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451);
                //    }
                //    else
                //    {
                //        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                //    }
                //}
                //else if(PosMenuKeyIn == "04")
                //{
                //    // 현장결제
                //    if(((Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[gridHappyOrderList.CsmGridSelectedRowIndex]).FieldPay == "Y")
                //    {
                //        btnStatus1.Visible = false;
                //        btnStatus2.Visible = false;
                //
                //        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0846);
                //    }
                //    else
                //    {
                //        btnStatus1.Visible = true;
                //        btnStatus2.Visible = true;
                //
                //        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                //    }
                //}
                #endregion 기존소스

                //변경
                #region 수정소스
                
                int iRowIndex = gridHappyOrderList.CsmGridSelectedRowIndex;

                Column.TR_HPORD.HPORD_HEADER header;
                header = (Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iRowIndex];

                MenuDisplay(header.OrderType);

                string sAsIsStatus = string.Empty;

                if (PosMenuKeyIn == "00")
                {
                    sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus;
                }
                else if (PosMenuKeyIn == "01")
                {
                    sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus;
                }
                else if (PosMenuKeyIn == "02")
                {
                    sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus;
                }
                else if (PosMenuKeyIn == "03")
                {
                    sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus;
                }
                else if (PosMenuKeyIn == "04")
                {
                    sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[gridHappyOrderList.CsmGridSelectedRowIndex]).OrderStatus;
                }

                if (PosMenuKeyIn == "01" || (PosMenuKeyIn == "00" && (header.OrderType != "5" && header.OrderType != "6")))
                {
                    if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)
                    {
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451);
                    }
                    else
                    {
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                    }
                }
                //grayber@20171123 해피오더 직접배달 start
                else if (PosMenuKeyIn == "02" || (PosMenuKeyIn == "00" && header.OrderType == "5"))   // 배달 탭일 때
                {
                    #region 해피오더 직접배달

                    btnStatus4.Visible = false; // 기본상태 가려짐

                    //20171214_해피오더 직접 배달 수정_hs
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)     // 주문접수 상태일때 
                        {
                            btnStatus4.Visible = true;      // 보여짐
                        }

                        //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 start
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)     // 상품준비 상태일때 
                        {
                            btnStatus4.Visible = true;      // 보여짐
                        }
                        //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 end

                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)     // 직접 배달일때 
                        {
                            btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0435);  //배달완료
                        }
                        else
                        {
                            btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0428);  //배달중
                        }
                    }
                    #endregion
                }
                //grayber@20171123 해피오더 직접배달 end
                else if (PosMenuKeyIn == "03" || (PosMenuKeyIn == "00" && header.OrderType == "6"))
                {
                    if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)
                    {
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451);
                    }
                    else
                    {
                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                    }
                }
                else if (PosMenuKeyIn == "04")
                {
                    // 현장결제
                    if (((Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[gridHappyOrderList.CsmGridSelectedRowIndex]).FieldPay == "Y")
                    {
                        btnStatus1.Visible = false;
                        btnStatus2.Visible = false;

                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0846);
                    }
                    else
                    {
                        btnStatus1.Visible = true;
                        btnStatus2.Visible = true;

                        btnStatus3.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0426);
                    }
                }
                
                #endregion
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                */
                #endregion 기존소스

                //변경

                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                if (int.Parse(rowIndex) < 0) return;
                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end
                

                DisplayDetailList();
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

                ReadyToBarcode();
            }
            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);
            }
        }

        private void tbOrderBarcode_KeyDown(object sender, KeyEventArgs e)
        {
            try
            {
                if(e.KeyCode == Keys.Enter)
                {
                    GoToSpecifiedOrderNum(tbOrderBarcode.Text);
                    ReadyToBarcode();
                }
            }
            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);
            }
        }

        private void ControlsOnForm_Click(object sender, EventArgs e)
        {
            try
            {
                ReadyToBarcode();
            }
            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);
            }
        }

        /// <summary>
        /// 해피오더 상태변경 처리
        /// </summary>
        /// <param name="sender"></param>
        private bool HappyOrderStatusChangedProc(object sender, int iSelectedRow)
        {
            // 해피오더 주문 List Refresh 여부
            bool bReturn = false;
            // 픽업완료, 배달중 플래그
            bool bRegMode = false;
            string sOrderNum = string.Empty;
            string sOrderDt = string.Empty;
            string sPayAmt = string.Empty;
            string sAsIsStatus = string.Empty;
            string sToBeStatus = string.Empty;
            string sOwnerId = string.Empty;                             //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs  
            string sChannel = string.Empty;                             //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs  
            string sChannelName = string.Empty;                         //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs  

            //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
            bool bLandomBoxCheck = false;
            //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

            //#15945 해피오더 자동주문 상세기능 start
            bool bAutomaticShipment = false;
            //#15945 해피오더 자동주문 상세기능 end

            //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
            htLandomBoxInfo.Clear();
            //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

            Hashtable htRequest = new Hashtable();
            Hashtable htRequestForNutrition = new Hashtable();

            bool bAnswer = false;
            //#15945 해피오더 자동주문 상세기능 start - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
            bool bAutomaticShipmentAnswer = false;
            //#15945 해피오더 자동주문 상세기능 end - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정

            try
            {
                // 오더폼 이면 빠져 나감
                if (PosMenuKeyIn == "04" || PosMenuKeyIn == "05") return false;

                htRequest.Add("deviceType", "POS");
                htRequest.Add("orderNum", CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO"));
                //#12504 해피오더 외부채널 직접 주문 관련 수정 start, phj
                //htRequest.Add("channel", ((Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow]).Channel);
                //#12504 해피오더 외부채널 직접 주문 관련 수정 end, phj
                htRequest.Add("cancelReasonType", "");

                //#16065 PB 인천논현_해피오더 영수증에 받은금액 54,500원/거스름돈 44,000원으로 표기되는 증상 start
                m_cPosStatus.Sale.PayRecvedAmt = 0;
                m_cPosStatus.Sale.ChangeCashAmt = 0;
                //#16065 PB 인천논현_해피오더 영수증에 받은금액 54,500원/거스름돈 44,000원으로 표기되는 증상 end

                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj
                // 거래 초기화
                m_cDataSrv.InitTranHeader();
                m_cDataSrv.DeleteTranItem();
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                //기존
                //Column.TR_HPORD.HPORD_HEADER cHeader = null;
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
                //#20171227 인천공항 포스연동 end, phj - 20180310 해피오더 결제완료 end,phj

                #region 상태변경 처리


                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                //기존
                #region 기존
                /*
                //#15945 해피오더 자동주문 상세기능 start
                //기존
                ////#20180607 해피오더 리스트 전체 조회 기능 추가 start
                ////기존
                ////if (PosMenuKeyIn == "01" || PosMenuKeyIn == "03")       // 내점 or 사전예약
                ////변경
                //if (PosMenuKeyIn == "00")
                //{ 
                //  cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow];
                //}
                //
                //if ((PosMenuKeyIn == "00" && cHeader.OrderType != "5") || PosMenuKeyIn == "01" || PosMenuKeyIn == "03")       // 내점 or 사전예약 
                ////#20180607 해피오더 리스트 전체 조회 기능 추가 end
                //변경
                if (PosMenuKeyIn == "00")
                {
                    // 전체
                    cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow];
                }
                else if (PosMenuKeyIn == "01")
                {
                    // 내점일 경우
                    cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow];
                }
                else if (PosMenuKeyIn == "02")
                {
                    // 배달 건 
                    cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow];
                }
                else if (PosMenuKeyIn == "03")
                {
                    // 사전예약일 경우
                    cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow];
                }
                if ((PosMenuKeyIn == "00" && cHeader.OrderType != "5") || PosMenuKeyIn == "01" || PosMenuKeyIn == "03")       // 내점 or 사전예약 
                //#15945 해피오더 자동주문 상세기능 end
                */
                #endregion
               
                //변경
                Column.TR_HPORD.HPORD_HEADER cHeader = null;
                cHeader = GetHappyHeader(PosMenuKeyIn, iSelectedRow);

                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                if (cHeader == null) return false;
                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end

                if ((PosMenuKeyIn == "00" && cHeader.OrderType != "5") || PosMenuKeyIn == "01" || PosMenuKeyIn == "03")       // 내점 or 사전예약 
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
                {
                    //#15945 해피오더 자동주문 상세기능 start
                    //기존
                    /*
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                    if (PosMenuKeyIn == "00" && cHeader.OrderType != "5")
                    {
                        // 내점 or 사전예약 
                        sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).OrderStatus;
                    }
                    else
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                    if (PosMenuKeyIn == "01")
                    {
                        // 내점일 경우
                        sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow]).OrderStatus;
                    }
                    else
                    {
                        // 사전예약일 경우
                        sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow]).OrderStatus;
                    }
                    */
                    //변경
                    sAsIsStatus = cHeader.OrderStatus;
                    //#15945 해피오더 자동주문 상세기능 end

                    if (((Cosmos.UI.CsmButton)sender) == btnStatus1)        // 상품준비
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)
                        {
                            //#17143 [해피오더]자동 주문 처리 개선 start
                            #region 기존소스
                            ////#15945 해피오더 자동주문 상세기능 start
                            ////기존
                            ///*
                            //// 주문접수 단계에서만 상품준비 처리
                            //if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            //{
                            //    bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591));
                            //}
                            //else
                            //{
                            //    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]));
                            //}
                            //*/
                            ////변경
                            //// m_cHappyOrderItem: 해피오더 주문 건 상품리스트 
                            //// htStatus[sAsIsStatus]: 해피오더 현재 상태 값 
                            //// bAutomaticShipment: 자동출하여부 
                            //
                            ////#15945 해피오더 자동주문 상세기능 start - 20180823
                            ////기존
                            ////bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), out bAutomaticShipment);
                            ////변경
                            //string sPickupData = string.Empty;
                            //string sOrderData = string.Empty;
                            //sPickupData = cHeader.PickupTime.Substring(0, 4) + cHeader.PickupTime.Substring(5, 2) + cHeader.PickupTime.Substring(8, 2);
                            //sOrderData = cHeader.OrderDate.Substring(0, 4) + cHeader.OrderDate.Substring(5, 2) + cHeader.OrderDate.Substring(8, 2);
                            //
                            ////#20180914 해피오더 자동출하 로그 추가 start
                            //UserLog.WriteLogFile(UserCom.LOG_IOS,
                            //                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                            //                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                            //                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                            //                     "픽업일자 :" + sPickupData + "주문일자 :" + sOrderData);
                            ////#20180914 해피오더 자동출하 로그 추가 end
                            //
                            //if (sPickupData != sOrderData)
                            //{
                            //    //픽업일자,주문일자가 다르면 자동출하 데이터 저장하고 
                            //    bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), out bAutomaticShipment);
                            //}
                            //else
                            //{
                            //    //픽업일자,주문일자가 같으면 자동출하 데이터 저장안하고 기본으로 처리한다.
                            //    if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            //    {
                            //        bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591));
                            //    }
                            //    else
                            //    {
                            //        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]));
                            //    }
                            //
                            //    bAutomaticShipment = false;
                            //}
                            ////#15945 해피오더 자동주문 상세기능 start - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                            //bAutomaticShipmentAnswer = bAnswer;
                            ////#15945 해피오더 자동주문 상세기능 end - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                            ////#15945 해피오더 자동주문 상세기능 end - 20180823
                            #endregion

                            #region 변경소스
                           
                            bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), cHeader.OrderDate.Substring(0, 10), cHeader.PickupTime.Substring(0, 10), out bAutomaticShipment);
                            bAutomaticShipmentAnswer = bAnswer;

                            #endregion 변경소스
                            //#17143 [해피오더]자동 주문 처리 개선 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 + "()",
                                                 "[" + sAsIsStatus + "]" + "자동출하_여부 :" + bAutomaticShipment.ToString());
                            //#20180914 해피오더 자동출하 로그 추가 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 + "()",
                                                 "[" + sAsIsStatus + "]" + "자동출하_대답 :" + bAutomaticShipmentAnswer.ToString());
                            //#20180914 해피오더 자동출하 로그 추가 end
                            


                            // 자동출하 일 때는
                            // 예 -> 주문상태변경o, 관련테이블에데이터남김 o
                            // 아니오 -> 주문상태변경o, 관련테이블에데이터남김 x
                            // 닫기 -> 주문상태변경x, 관련테이블에데이터남김 x
                            if (bAutomaticShipment == true) { bAnswer = true; }
                            //#15945 해피오더 자동주문 상세기능 end

                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PRODUCT_READY);
                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.PRODUCT_READY;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]);

                                // 상태가 '상품준비' 시 주방주문메시지 저장 처리
                                //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                //17.08.22 dkshin SS 해피오더 - 픽업대기 시 주문 데이타 만들기(해피오더의 경우 상품준비시 주문 데이타를 만든다)
                                //픽업대기 시 매출 처리가 되고 KDS로 전송되기 위해
                                //KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT049) != "1")
                                {
                                    KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                }
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            // 이미 상품준비 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.PRODUCT_READY))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }
                    }
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus2)   // 픽업대기
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            // 상품준비 단계에서만 픽업대기 처리
                            if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            {
                                bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0592));
                            }
                            else
                            {
                                bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT]));
                            }
                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT);
                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT;

                                //17.08.22 dkshin SS 해피오더
                                //쉑쉑 해피오더 수기처리 여부 사용일 경우 - 해피오더 창에서 '픽업대기' 상태 변경시 매출 처리 -> KDS 전송
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                                {
                                    bRegMode = true;
                                }

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT]);

                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT)
                        {
                            // 이미 픽업대기 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }
                    }
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus3)   // 픽업완료
                    {
                        bool bIsPickUp_Delay = false;

                        // 픽업완료 인지 지연완료 인지 flag 설정
                        if (((Cosmos.UI.CsmButton)sender).Text == MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451))
                        {
                            bIsPickUp_Delay = true;
                        }

                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT ||
                           sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)
                        {
                            // 픽업대기 단계에서만 픽업완료 처리
                            if (bIsPickUp_Delay == true)
                            {
                                if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                                {
                                    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]));
                                }
                                else
                                {
                                    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]));
                                }

                                if (bAnswer == true)
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2;

                                    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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]);
                                }
                                else
                                {
                                    return false;
                                }
                            }
                            else
                            {
                                if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                                {
                                    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]));
                                }
                                else
                                {
                                    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]));
                                }
                                if (bAnswer == true)
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED;

                                    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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]);

                                }
                                else
                                {
                                    return false;
                                }
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED ||
                                sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2)
                        {
                            // 이미 픽업완료/지연완료 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (PosMenuKeyIn == "03" && PosMstManager.GetPosOption(POS_OPTION.OPT044) == "0")
                            {
                                // 사전예약 중 픽업대기 사용 안 함 이면 상품준비 단계에서 픽업완료 처리 가능
                                if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                                {
                                    if (bIsPickUp_Delay == true)
                                    {
                                        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]));
                                        if (bAnswer == true)
                                        {
                                            htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2);
                                            sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2;

                                            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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]);

                                        }
                                        else
                                        {
                                            return false;
                                        }
                                    }
                                    else
                                    {
                                        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]));
                                        if (bAnswer == true)
                                        {
                                            htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED);
                                            sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED;

                                            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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]);

                                        }
                                        else
                                        {
                                            return false;
                                        }
                                    }
                                }
                                else
                                {
                                    if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED))
                                    {
                                        WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                                    }
                                    else
                                    {
                                        WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                                    }
                                    return false;
                                }
                            }
                            else
                            {
                                if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED))
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                                }
                                else
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                                }
                                return false;
                            }
                        }

                        // 상품 등록 중일 경우 빠져 나간다.
                        ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
                        if (alSaleItem.Count > 0)
                        {
                            WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0021));
                            return false;
                        }

                        //#20180618 해피오더 매출처리 start
                        bRegMode = true;
                        //#20180618 해피오더 매출처리 end

                        //17.08.22 dkshin SS 해피오더
                        //쉑쉑 해피오더 수기처리 여부 사용일 경우 - 해피오더 창에서 '픽업완료' 상태 변경시 상태 변경만 함. 매출 처리 안함.
                        if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                        {
                            bRegMode = false;
                        }


                        //#15945 해피오더 자동주문 상세기능 start
                        //기존
                        /*
                        //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                        if (PosMenuKeyIn == "00")
                        {
                            sOrderNum = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).OrderNum;
                            sOrderDt = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).OrderDate.Substring(0, 10).Replace("-", "");
                            sPayAmt = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).PayMoney;
                        }
                        else
                        //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                        if (PosMenuKeyIn == "01")
                        {
                            // 내점일 경우
                            sOrderNum = ((Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow]).OrderNum;
                            sOrderDt = ((Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow]).OrderDate.Substring(0, 10).Replace("-", "");
                            sPayAmt = ((Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow]).PayMoney;
                        }
                        else
                        {
                            // 사전예약일 경우
                            sOrderNum = ((Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow]).OrderNum;
                            sOrderDt = ((Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow]).OrderDate.Substring(0, 10).Replace("-", "");
                            sPayAmt = ((Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow]).PayMoney;
                        }
                        */
                        //변경
                        sOrderNum = cHeader.OrderNum;
                        sOrderDt = cHeader.OrderDate.Substring(0, 10).Replace("-", "");
                        sPayAmt = cHeader.PayMoney;
                        //#15945 해피오더 자동주문 상세기능 end

                        //#20180614 배달완료 시 영양정보 출력되도록 수정 start 
                        //기존2
                        // 영양정보 조회 요청 전문 생성
                        //htRequestForNutrition.Add("orderNum", sOrderNum);
                        //#20180614 배달완료 시 영양정보 출력되도록 수정 end
                    }
                    else if (((Cosmos.UI.CsmButton)sender) == btnOrderCancel)   // 주문취소
                    {
                        if (sAsIsStatus != ItemConst.HAPPYORDER_STATUS.ORDER_REG && sAsIsStatus != ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            WinManager.ErrorMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0486), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0485));
                            if (bAnswer == true)
                            {
                                //#20180611 해피오더 주문취소 사유 start
                                string ReasonName = "";
                                ReasonName = HPOrderCancelReason();
                                if (ReasonName == "") return false;
                                //#20180611 해피오더 주문취소 사유 end

                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL);
                                if (htRequest.ContainsKey("cancelReasonType"))
                                    htRequest["cancelReasonType"] = "Z";
                                else
                                    htRequest.Add("cancelReasonType", "Z");

                                //#20180611 해피오더 주문취소 사유 start
                                if (htRequest.ContainsKey("cancelReason"))
                                    htRequest["cancelReason"] = ReasonName;
                                else
                                    htRequest.Add("cancelReason", ReasonName);
                                //#20180611 해피오더 주문취소 사유 end

                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL]);

                                // 상태가 '주문취소' 시 주방주문메시지 저장 처리
                                //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                                KPSItemProcess(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                            }
                            else
                            {
                                return false;
                            }
                        }
                    }
                }

                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                //기존
                //else if (PosMenuKeyIn == "02")   // 배달
                //변경
                else if ((PosMenuKeyIn == "00" && cHeader.OrderType == "5") || PosMenuKeyIn == "02")   // 전체 또든 배달 
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                {
                    //#15945 해피오더 자동주문 상세기능 start
                    //기존
                    /*
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                    //기존
                    //sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).OrderStatus;

                    //변경
                    if (PosMenuKeyIn == "00" && cHeader.OrderType == "5")
                    {
                        sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).OrderStatus;
                    }
                    else
                    {
                        sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).OrderStatus;
                    }
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                    */
                    //변경
                    sAsIsStatus = cHeader.OrderStatus;
                    //#15945 해피오더 자동주문 상세기능 end
                    
                    if (((Cosmos.UI.CsmButton)sender) == btnStatus1)        // 상품준비
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)
                        {
                            //#17143 [해피오더]자동 주문 처리 개선 start
                            #region 기존소스
                            ////#15945 해피오더 자동주문 상세기능 start
                            ////기존
                            ///*
                            //// 주문접수 단계에서만 상품준비 처리
                            //if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            //{
                            //    bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591));
                            //}
                            //else
                            //{
                            //    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]));
                            //}
                            //*/
                            //
                            ////#15945 해피오더 자동주문 상세기능 start - 20180823
                            ////기존
                            ////bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), out bAutomaticShipment);
                            ////변경
                            //string sPickupData = string.Empty;
                            //string sOrderData = string.Empty;
                            //sPickupData = cHeader.PickupTime.Substring(0, 4) + cHeader.PickupTime.Substring(5, 2) + cHeader.PickupTime.Substring(8, 2);
                            //sOrderData = cHeader.OrderDate.Substring(0, 4) + cHeader.OrderDate.Substring(5, 2) + cHeader.OrderDate.Substring(8, 2);
                            //
                            ////#20180914 해피오더 자동출하 로그 추가 start
                            //UserLog.WriteLogFile(UserCom.LOG_IOS,
                            //                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                            //                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                            //                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                            //                     "픽업일자 :" + sPickupData + "주문일자 :" + sOrderData);
                            ////#20180914 해피오더 자동출하 로그 추가 end
                            //
                            //if (sPickupData != sOrderData)
                            //{
                            //    //픽업일자,주문일자가 다르면 자동출하 데이터 저장하고 
                            //    bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), out bAutomaticShipment);
                            //}
                            //else
                            //{
                            //    //픽업일자,주문일자가 같으면 자동출하 데이터 저장안하고 기본으로 처리한다.
                            //    if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            //    {
                            //        bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591));
                            //    }
                            //    else
                            //    {
                            //        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]));
                            //    }
                            //    bAutomaticShipment = false;
                            //}
                            ////#15945 해피오더 자동주문 상세기능 start - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                            //bAutomaticShipmentAnswer = bAnswer;
                            ////#15945 해피오더 자동주문 상세기능 end - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                            ////#15945 해피오더 자동주문 상세기능 end - 20180823
                            #endregion

                            #region 변경소스
                           
                            bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), cHeader.OrderDate.Substring(0, 10), cHeader.PickupTime.Substring(0, 10), out bAutomaticShipment);
                            bAutomaticShipmentAnswer = bAnswer;

                            #endregion 변경소스
                            //#17143 [해피오더]자동 주문 처리 개선 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 + "()",
                                                 "[" + sAsIsStatus + "]" + "자동출하_여부 :" + bAutomaticShipment.ToString());
                            //#20180914 해피오더 자동출하 로그 추가 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 + "()",
                                                 "[" + sAsIsStatus + "]" + "자동출하_대답 :" + bAutomaticShipmentAnswer.ToString());
                            //#20180914 해피오더 자동출하 로그 추가 end


                            // 자동출하 일 때는
                            // 예 -> 주문상태변경o, 관련테이블에데이터남김 o
                            // 아니오 -> 주문상태변경o, 관련테이블에데이터남김 x
                            // 닫기 -> 주문상태변경x, 관련테이블에데이터남김 x
                            if (bAutomaticShipment == true) { bAnswer = true; }
                            //#15945 해피오더 자동주문 상세기능 end


                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PRODUCT_READY);
                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.PRODUCT_READY;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]);

                                // 상태가 '상품준비' 시 주방주문메시지 저장 처리
                                //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                //#20171019 SS해피오더 배달 start, 20171023
                                //기존
                                //KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                //변경
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT049) != "1")
                                {
                                    KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                }
                                //#20171019 SS해피오더 배달 end, 20171023
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            // 이미 상품준비 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            // 그 이외는 에러처리
                            WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            return false;
                        }
                    }
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus2)   // 배달요청
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            // 주문접수 단계 or 상품준비 단계에서만 배달요청 처리
                            bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ]));
                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ);
                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ]);

                                //#20171019 SS해피오더 배달 start, 20171023
                                //쉑쉑 해피오더 수기처리 여부 사용일 경우 - 해피오더 창에서 '픽업대기' 상태 변경시 매출 처리 -> KDS 전송
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                                {
                                    bRegMode = true;
                                }
                                //#20171019 SS해피오더 배달 end, 20171023
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG)
                        {
                            // 이미 배달요청 / 배달접수 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }
                    }
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus3)   // 배달중
                    {
                        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
                        //기존
                        //if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ)
                        //변경
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG ||
                            //#20180914 해피오더 배달 매출 처리 조건 변경 start
                            //배달요청제외 
                            //sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ ||
                            //#20180914 해피오더 배달 매출 처리 조건 변경 end
                            sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)
                        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end
                        {
                            // 배달접수/배달요청 단계에서만 배달완료 처리
                            bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED]));
                            
                            if (bAnswer == true)
                            {
                                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
                                //기존
                                /*
                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.DELIVERY_ING);
                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.DELIVERY_ING;
                                */
                                //변경
                                if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED;
                                }
                                else
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.DELIVERY_ING);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.DELIVERY_ING;
                                }
                                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_ING]);

                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_ING)
                        {
                            // 이미 배달중 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        //grayber@20171123 해피오더 직접배달 start
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT
                            //|| PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1"       // grayber@20171212 조건식 교체
                            && PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1"
                            )
                        {
                            #region 해피오더 직접배달
                            // 해피오더 직접배달    [현재 직접배달 상태 입니다.]
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                            #endregion
                        }
                        //grayber@20171123 해피오더 직접배달 end
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.DELIVERY_ING))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }

                        // 상품 등록 중일 경우 빠져 나간다.
                        ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
                        if (alSaleItem.Count > 0)
                        {
                            WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0021));
                            return false;
                        }

                        bRegMode = true;

                        //#20171019 SS해피오더 배달 start, 20171023
                        //쉑쉑 해피오더 수기처리 여부 사용일 경우 - 해피오더 창에서 '픽업대기' 상태 변경시 매출 처리 -> KDS 전송
                        if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                        {
                            bRegMode = false;
                        }
                        //#20171019 SS해피오더 배달 end, 20171023


                        //#15945 해피오더 자동주문 상세기능 start
                        //기존
                        /*
                        //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                        //기존
                        //sOrderNum = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).OrderNum;
                        //sOrderDt = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).OrderDate.Substring(0, 10).Replace("-", "");
                        //sPayAmt = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).PayMoney;
                        //sOwnerId = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).OwnerId;              //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs
                        //sChannel = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).Channel;              //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                        //sChannelName = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).ChannelName;      //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs

                        //변경
                        if (PosMenuKeyIn == "00" && cHeader.OrderType == "5")
                        {
                        
                            sOrderNum = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).OrderNum;
                            sOrderDt = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).OrderDate.Substring(0, 10).Replace("-", "");
                            sPayAmt = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).PayMoney;
                            sOwnerId = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).OwnerId;              //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs
                            sChannel = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).Channel;              //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                            sChannelName = ((Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow]).ChannelName;      //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                        }
                        else
                        {
                            sOrderNum = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).OrderNum;
                            sOrderDt = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).OrderDate.Substring(0, 10).Replace("-", "");
                            sPayAmt = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).PayMoney;
                            sOwnerId = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).OwnerId;              //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs
                            sChannel = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).Channel;              //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                            sChannelName = ((Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow]).ChannelName;      //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                        }
                        //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                        */

                        //변경
                        sOrderNum = cHeader.OrderNum;
                        sOrderDt = cHeader.OrderDate.Substring(0, 10).Replace("-", "");
                        sPayAmt = cHeader.PayMoney;
                        sOwnerId = cHeader.OwnerId;              //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs
                        sChannel = cHeader.Channel;              //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                        sChannelName = cHeader.ChannelName;      //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                        //#15945 해피오더 자동주문 상세기능 end

                    }
                    //grayber@20171123 해피오더 직접배달 start
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus4)  // 직접배달
                    {

                        if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")    // OPT550 이 '1' 이고
                        {
                            #region 해피오더 직접배달 : 주문접수 상태의 거래만 처리
                            //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 start
                            //기존
                            //if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)
                            //변경
                            if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                            //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 end
                            {   // 상태가 주문접수 일 경우 
                                // 직접배달 처리

                                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
                                //기존
                                //bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT]));
                                //변경
                                bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT]));
                                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end
                                if (bAnswer == true)
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT;

                                    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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT]);
                                    //bRegMode = true;   //20171214_해피오더 직접 배달 수정_hs 배달완료시 매출생성으로 변경
                                }
                                else
                                {
                                    return false;
                                }
                            }
                            else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)        // 직접배달
                            {
                                // 이미 직접배달 단계라면
                                WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                                return false;
                            }
                            else
                            {
                                if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT))
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                                }
                                else
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                                }
                                return false;
                            }
                            #endregion
                        }
                        else
                        {
                            return false;
                        }


                    }
                    //grayber@20171123 해피오더 직접배달 end
                    else if (((Cosmos.UI.CsmButton)sender) == btnOrderCancel)   // 주문취소
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG
                            || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_ING || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_PRODUCT_READY
                            || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED)
                        {
                            WinManager.ErrorMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0486), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            //#15881 배달건 취소버튼 클릭 시 메세지 추가 start
                            //기존
                            //bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0485));
                            //변경
                            bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0797));
                            //#15881 배달건 취소버튼 클릭 시 메세지 추가 end

                            if (bAnswer == true)
                            {
                                //#20180611 해피오더 주문취소 사유 start
                                string ReasonName = "";
                                ReasonName = HPOrderCancelReason();
                                if (ReasonName == "") return false;
                                //#20180611 해피오더 주문취소 사유 end

                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL);
                                if (htRequest.ContainsKey("cancelReasonType"))
                                    htRequest["cancelReasonType"] = "Z";
                                else
                                    htRequest.Add("cancelReasonType", "Z");

                                //#20180611 해피오더 주문취소 사유 start
                                if (htRequest.ContainsKey("cancelReason"))
                                    htRequest["cancelReason"] = ReasonName;
                                else
                                    htRequest.Add("cancelReason", ReasonName);
                                //#20180611 해피오더 주문취소 사유 end

                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL]);

                                // 상태가 '주문취소' 시 주방주문메시지 저장 처리
                                //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                                KPSItemProcess(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                            }
                            else
                            {
                                return false;
                            }
                        }
                    }
                }
                #endregion

                Hashtable htResponse = null;
                Hashtable[] aResponse = null;
                int iReturn = BaseCom.NG;

                WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0452)), this);

                // 영양정보 받아와서 저장
                #region 영양정보 받아와서 저장
                if (bRegMode == true)
                {

                    //#20180614 배달완료 시 영양정보 출력되도록 수정 start
                    //변경
                    htRequestForNutrition.Add("orderNum", sOrderNum);
                    //#20180614 배달완료 시 영양정보 출력되도록 수정 end

                    aResponse = null;
                    aResponse = m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_PRODUCT_NUTRITION, htRequestForNutrition }, ref htResponse, ref iReturn);

                    if (aResponse != null && aResponse.Length > 0)
                    {
                        string sMsg = m_cHappyOrder.ParseNutritionMsg(aResponse);
                        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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 영양정보 = " + sMsg);

                            // 영양정보 저장
                            m_cHappyOrder.UpdateHappyOrderData(new string[] { "Message", sMsg, sOrderNum, sOrderDt });
                        }
                    }
                    //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - 기능 함수화 하여 주석 처리 해둠
                    //m_cHappyOrder.GetHappyOrderNurtitionListDetail(sOrderNum, m_sHappyOrderURL, sOrderDt);
                    //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end
                }
                #endregion

                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj
                //인천공항으로 상품,결제 리스트 보내고 성공 시 해피오더 상태변경 한다.
                //인천공항으로 전송 실패 시 해피오더 상태 변경하지 않는다. 
                //해피오더 상태변경 실패 시 일괄 취소 후 진행한다.
                #region 자사포스 데이터 인천공항 포스로 전송

                #region 자사포스 데이터 인천공항 포스로 전송 -- 주석
                //if (bRegMode == true)
                //{
                //    if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
                //    {
                //        // 주문유형구분
                //        string sOrderType = "";
                        
                //        // 거래 초기화
                //        m_cDataSrv.InitTranHeader();
                //        m_cDataSrv.DeleteTranItem();


                //        Column.TR_HPORD.HPORD_HEADER cHeader = null;

                //        if (PosMenuKeyIn == "01")        // 내점
                //        {
                //            // 내점이라면 내점 리스트에서 가져온다.
                //            cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow];
                //            sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                //        }
                //        else if (PosMenuKeyIn == "02")   // 배달
                //        {
                //            // 배달이라면 배달 리스트에서 가져온다.
                //            cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow];
                //            sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                //        }
                //        else if (PosMenuKeyIn == "03")   // 사전예약
                //        {
                //            // 사전예약이라면 사전예약 리스트에서 가져온다.
                //            cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow];
                //            sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PRE_RESERVATION;
                //        }


                //        string sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem);

                //        if (sRet == UserCom.RST_OK)
                //        {
                //            //m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.FORIGN.O2O;
                //            //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;

                //            IPaymentUs cPaymentUs = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.HAPPYORDER);

                //            //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs 
                //            //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                //            if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
                //            {
                //                if (sOwnerId == "BLUEBEE")
                //                {
                //                    sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_YOGIYO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //                }
                //                else if (sChannel == "HAPPYMARKET")
                //                {
                //                    sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_HAPPYMARKET, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //                }
                //                else if (sChannel == "YGY")
                //                {
                //                    sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_YOGIYO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //                }
                //                else if (sChannel == "BEAMIN")
                //                {
                //                    sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_BAEMIN, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //                }
                //                else if (sChannel == "KAKAO")
                //                {
                //                    sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_KAKAO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //                }
                //                else if (sChannel == "BRMICRO")     //20171215_카카오 사전예약 결제코드 생성_hs
                //                {
                //                    sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_BRMICRO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //                }
                //                else
                //                {
                //                    sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //                }
                //            }
                //            else
                //            {
                //                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //            }

                //            if (sRet != UserCom.RST_OK)
                //            {
                //                WinManager.HideSearchMessage();
                //            }
                //            else
                //            {
                //                // 인천공항으로 데이터 전송
                //                sRet = m_cAirPortTran.IncheonAireportClose(PosKey.MENU_KEY.INCHEON_AIRPORT, "N");

                //                if (sRet != UserCom.RST_OK)
                //                {

                //                    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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 인천공항POS로 데이터 전송 실패 [" + sRet + "]");
                //                }
                //            }
                //        }
                //        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 (함수명))
                //                                 "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", MakeTranItem [" + sRet.ToString() + "]");
                //        }

                //        // 판매상태 변경
                //        //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;

                //        // 거래 초기화
                //        //m_cDataSrv.InitTranHeader();
                //        //m_cDataSrv.DeleteTranItem();

                //        if (sRet != UserCom.RST_OK)
                //        {
                //            return false;
                //        }
                //    }
                //}
                #endregion

                #region 자사포스 데이터 인천공항 포스로 전송 -- 수정
                
                if (bRegMode == true)
                {
                    // 주문유형구분
                    string sOrderType = "";

                    //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 start
                    //기존
                    #region 기존소스
                    /*
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                    //기존 
                    //if (PosMenuKeyIn == "01")        // 내점
                    //{
                    //    // 내점이라면 내점 리스트에서 가져온다.
                    //    cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow];
                    //    sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                    //}
                    //else if (PosMenuKeyIn == "02")   // 배달
                    //{
                    //    // 배달이라면 배달 리스트에서 가져온다.
                    //    cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow];
                    //    sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                    //}
                    //else if (PosMenuKeyIn == "03")   // 사전예약
                    //{
                    //    // 사전예약이라면 사전예약 리스트에서 가져온다.
                    //    cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow];
                    //    sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PRE_RESERVATION;
                    //}

                    //변경
                    if (PosMenuKeyIn == "01")        // 내점
                    {
                        // 내점이라면 내점 리스트에서 가져온다.
                        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow];
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                    }
                    else if (PosMenuKeyIn == "02")   // 배달
                    {
                        // 배달이라면 배달 리스트에서 가져온다.
                        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow];
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                    }
                    else if (PosMenuKeyIn == "03")   // 사전예약
                    {
                        // 사전예약이라면 사전예약 리스트에서 가져온다.
                        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow];
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PRE_RESERVATION;
                    }
                    else if (PosMenuKeyIn == "00")   // 전체
                    {
                        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iSelectedRow];

                        if ((PosMenuKeyIn == "00" && (cHeader.OrderType != "5" && cHeader.OrderType != "6")) || PosMenuKeyIn == "01")        // 내점
                        {
                            sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                        }
                        else if ((PosMenuKeyIn == "00" && cHeader.OrderType == "5") || PosMenuKeyIn == "02")   // 배달
                        {
                            sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                        }
                        else if ((PosMenuKeyIn == "00" && cHeader.OrderType == "6") || PosMenuKeyIn == "03")   // 사전예약
                        {
                            sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PRE_RESERVATION;
                        }
                    }
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                    */
                    #endregion

                    //변경
                    #region 변경소스
                    if (PosMenuKeyIn == "01" || (PosMenuKeyIn == "00" && (cHeader.OrderType != "5" && cHeader.OrderType != "6")))        // 내점
                    {
                        // 내점이라면 내점 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                    }
                    else if (PosMenuKeyIn == "02" || (PosMenuKeyIn == "00" && (cHeader.OrderType == "5")))   // 배달
                    {
                        // 배달이라면 배달 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                    }
                    else if (PosMenuKeyIn == "03" || (PosMenuKeyIn == "00" && (cHeader.OrderType == "6")))   // 사전예약
                    {
                        // 사전예약이라면 사전예약 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PRE_RESERVATION;
                    }
                    #endregion
                    //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 end

                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start

                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start - 20180723 기존 배달 건만이였지만 픽업건도 동일하게 적용하도록 수정
                    //기존
                    /*
                    if (sOrderType == ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY)
                    //if ((PosMenuKeyIn == "00" && cHeader.OrderType == "5") || PosMenuKeyIn == "02")   // 배달
                    {
                    */
                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end - 20180723 기존 배달 건만이였지만 픽업건도 동일하게 적용하도록 수정
                    
                        bool bValue = false;
                        string sItemCode = "";
                        DataTable dtData = null;
                        for (int nLoop = 0; nLoop < m_cHappyOrderItem.Count; nLoop++)
                        {
                            Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)m_cHappyOrderItem[nLoop];

                            dtData = m_cDataCommon.SeletCommonCode(PosConst.COMMON_CODE_GROUP.T0039, "");
                            if (dtData != null && dtData.Rows.Count > 0)
                            {
                                foreach (DataRow dr in dtData.Rows)
                                {
                                    if (item.GoodsCode == CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01))
                                    {
                                        sItemCode = item.GoodsCode;
                                        bValue = true;
                                        break;
                                    }
                                }
                            }

                            if (bValue == true)
                            {
                                break;
                            }
                        }

                        if (bValue == true)
                        {
                            WinManager.HideSearchMessage();

                            frmHappyOrderBarcode fForm = (frmHappyOrderBarcode)FormManager.GetForm(FormManager.FORM_SAL_HPORD_BARCODE);
                            if (fForm == null)
                            {
                                fForm = new frmHappyOrderBarcode();
                                FormManager.AddForm(FormManager.FORM_SAL_HPORD_BARCODE, fForm);
                            }

                            fForm.sHPOrderNo = sOrderNum;
                            fForm.sItemCode = sItemCode;

                            if (fForm.ShowDialog() == DialogResult.OK)
                            {
                                bLandomBoxCheck = true;
                            }
                            else
                            {
                                bLandomBoxCheck = false;
                            }

                            if (bLandomBoxCheck == false) return false;
                        }
                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start - 20180723 기존 배달 건만이였지만 픽업건도 동일하게 적용하도록 수정
                    //}
                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end - 20180723 기존 배달 건만이였지만 픽업건도 동일하게 적용하도록 수정

                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

                    

                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
                    //기존
                    //string sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem);

                    //변경

                    WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0452)), this);

                    string sRet = "";

                    if (bLandomBoxCheck == true)
                    {
                        sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem, htLandomBoxInfo);
                    }
                    else
                    {
                        sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem, null);
                    }

                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

                    if (sRet == UserCom.RST_OK)
                    {
                        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
                        if (bLandomBoxCheck == true)
                        {
                            IHoldDeal m_cHoldDeal = (IHoldDeal)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HOLD_DEAL);
                            m_cHoldDeal.UpdateHoldDeal(htLandomBoxInfo["SALE_DT"].ToString(), htLandomBoxInfo["POS_NO"].ToString(), htLandomBoxInfo["REG_NO"].ToString(), "1", 0, 0);

                            m_cTrnStatus.Head.ShockingBoxStat = "1";//0:쇼킹박스 완성 1:쇼킹방스불러오기
                            m_cTrnStatus.Head.ShockingBoxBarcodeData = htLandomBoxInfo["BARCODE_NO"].ToString(); // SALE_DT + REG_NO
                            m_cTrnStatus.Head.ShockingBoxTradeKind = ItemConst.TRAN_KIND.HPO_LOG.LANDOM_BOX;
                        }
                        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

                        m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.FORIGN.O2O;
                        //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;

                        IPaymentUs cPaymentUs = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.HAPPYORDER);

                        //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs 
                        //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                        if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
                        {
                            if (sOwnerId == "BLUEBEE")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_YOGIYO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "HAPPYMARKET")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_HAPPYMARKET, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "YGY")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_YOGIYO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "BEAMIN")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_BAEMIN, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "KAKAO")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_KAKAO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "BRMICRO")     //20171215_카카오 사전예약 결제코드 생성_hs
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_BRMICRO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                        }
                        else
                        {
                            sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                        }

                        if (sRet != UserCom.RST_OK)
                        {
                            WinManager.HideSearchMessage();

                            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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", SetPayment [" + sRet.ToString() + "]");
                        }
                        else
                        {
                            if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
                            {
                                // 인천공항으로 데이터 전송
                                sRet = m_cAirPortTran.IncheonAireportClose(PosKey.MENU_KEY.INCHEON_AIRPORT, "N");

                                if (sRet != UserCom.RST_OK)
                                {

                                    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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 인천공항POS로 데이터 전송 실패 [" + sRet + "]");
                                }

                            }
                        }
                    }
                    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 (함수명))
                                             "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", MakeTranItem [" + sRet.ToString() + "]");
                    }

                    // 판매상태 변경
                    //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;

                    if (sRet != UserCom.RST_OK)
                    {
                        return false;
                    }
                }
                #endregion

                #endregion
                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 end,phj


                #region 주문상태변경
                htResponse = null;
                iReturn = BaseCom.NG;

                m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.UPDATE_STATUS, htRequest }, ref htResponse, ref iReturn);
                WinManager.HideSearchMessage(this);
                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 (함수명))
                                        "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 상태변경 처리 실패");

                    WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0005));
                    return 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 (함수명))
                                        "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 상태변경 처리 실패(" + htResponse["message"].ToString() + ")");

                    WinManager.ConfirmMessage(htResponse["message"].ToString());
                    return 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 (함수명))
                                                 "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 상태변경 처리 완료");

                    //#20180914 해피오더 자동출하 로그 추가 start
                    UserLog.WriteLogFile(UserCom.LOG_IOS,
                                         System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                         System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                                         System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                                         "자동출하데이터저장여부 " + 
                                         "(변경된버튼상태 :" + sToBeStatus.ToString() +
                                         "/자동출하여부 :" + bAutomaticShipment.ToString() +
                                         "/자동출하동의여부 :" + bAutomaticShipmentAnswer.ToString() + ")");
                    //#20180914 해피오더 자동출하 로그 추가 end

                    //#15945 해피오더 자동주문 상세기능 start
                    //#15945 해피오더 자동주문 상세기능 start - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                    //기존                    
                    //if ((sToBeStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY && bAutomaticShipment == true) || (sToBeStatus == ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL))
                    //변경
                    if ((sToBeStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY && bAutomaticShipment == true && bAutomaticShipmentAnswer == true) || (sToBeStatus == ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL))
                    //#15945 해피오더 자동주문 상세기능 end - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                     
                    {
                        m_cHappyOrder.HappyOrder_AutomaticShipmentLog(cHeader, sToBeStatus, "200");
                    }
                    //#15945 해피오더 자동주문 상세기능 end

                    // 정상 처리
                    WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0487), htStatus[sToBeStatus]));
                    bReturn = true;
                }
                #endregion

                //#17334 해피오더)배달요청 시 배달주문서 자동 출력  start
                if ((PosMenuKeyIn == "00" && (cHeader.OrderType == "5" || cHeader.OrderType == "4")) || PosMenuKeyIn == "02")
                {
                    if (sToBeStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ || sToBeStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)
                    {
                        // 배달요청이거나 직접배달일 때 주문서 자동출력
                        btnProc_Click(btnPrint, null);
                    }
                }
                //#17334 해피오더)배달요청 시 배달주문서 자동 출력  end      
                
                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj
                
                #region 픽업완료, 배달중 의 경우 거래 생성 -- 기존
                // 픽업완료, 배달중 의 경우 거래 생성
                //if (bRegMode == true)
                //{
                //    // 주문유형구분
                //    string sOrderType = "";
                //    // 거래 초기화
                //    m_cDataSrv.InitTranHeader();
                //    m_cDataSrv.DeleteTranItem();

                //    Column.TR_HPORD.HPORD_HEADER cHeader = null;

                //    if (PosMenuKeyIn == "01")        // 내점
                //    {
                //        // 내점이라면 내점 리스트에서 가져온다.
                //        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow];
                //        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                //    }
                //    else if (PosMenuKeyIn == "02")   // 배달
                //    {
                //        // 배달이라면 배달 리스트에서 가져온다.
                //        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow];
                //        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                //    }
                //    else if (PosMenuKeyIn == "03")   // 사전예약
                //    {
                //        // 사전예약이라면 사전예약 리스트에서 가져온다.
                //        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow];
                //        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PRE_RESERVATION;
                //    }

                //    //17.08.22 dkshin SS 해피오더
                //    //주문상세데이터에 픽업시간 추가(KDS 전송시 ORDERHEADER TABLE_NM에 픽업시간 설정: MST_KTCH_ORD_MSG.ORD_TIME)
                //    if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                //    {
                //        int itemCnt = m_cHappyOrderItem.Count;
                //        ArrayList itemList = new ArrayList();
                //        for (int i = 0; i < itemCnt; i++)
                //        {
                //            Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)m_cHappyOrderItem[i];
                //            item.PickupTime = cHeader.PickupTime;
                //            itemList.Add(item);
                //        }
                //        m_cHappyOrderItem.Clear();
                //        m_cHappyOrderItem = new ArrayList(itemList);
                //    }

                //    string sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem);

                //    if (sRet == UserCom.RST_OK)
                //    {
                //        m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.FORIGN.O2O;
                //        m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;

                //        //17.08.22 dkshin SS 해피오더 - 판매POS의 매출처리시 대기번호도 해당 대기번호로 저장해야 함.
                //        if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                //        {
                //            m_cTrnStatus.Head.OrderNo = cHeader.DailyCode;

                //            //#20171212, 쉑쉑 해피오더 수기로 상태변경 시 매출데이터 오류 수정 Start
                //            sOrderNum = cHeader.OrderNum;
                //            sOrderDt = cHeader.OrderDate.Substring(0, 10).Replace("-", "");
                //            sPayAmt = cHeader.PayMoney;
                //            //#20171212, 쉑쉑 해피오더 수기로 상태변경 시 매출데이터 오류 수정 End
                //        }

                //        if (PosMstManager.GetPosOption(POS_OPTION.OPT038) == "1")
                //        {
                //            // 해피오더 바코드등록 POP-UP
                //            WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD_BARCODE_REG });
                //        }

                //        WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0437)), this);

                //        IPaymentUs cPaymentUs = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.HAPPYORDER);

                //        //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs 
                //        //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                //        if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
                //        {
                //            if (sOwnerId == "BLUEBEE")
                //            {
                //                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_YOGIYO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //            }
                //            else if (sChannel == "HAPPYMARKET")
                //            {
                //                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_HAPPYMARKET, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //            }
                //            else if (sChannel == "YGY")
                //            {
                //                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_YOGIYO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //            }
                //            else if (sChannel == "BEAMIN")
                //            {
                //                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_BAEMIN, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //            }
                //            else if (sChannel == "KAKAO")
                //            {
                //                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_KAKAO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //            }
                //            else if (sChannel == "BRMICRO")     //20171215_카카오 사전예약 결제코드 생성_hs
                //            {
                //                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_BRMICRO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //            }
                //            else
                //            {
                //                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //            }
                //        }
                //        else
                //        {
                //            sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                //        }
                //        //sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });

                //        if (sRet != UserCom.RST_OK)
                //        {
                //            WinManager.HideSearchMessage();
                //            return bReturn;
                //        }

                //        #region 현금영수증 발행은 없기 때문에 주석 처리(문성진D 요청)
                //        //if (PosMstManager.GetPosOption(POS_OPTION.OPT315) == "0") return;           // 현금영수증 업무 사용 여부(0:사용안함, 1:사용함)


                //        ////현금영수증 발행!
                //        //IDataProcessUs m_cDataService = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE);

                //        //if (m_cDataService != null)
                //        //{
                //        //    double dCashBillAmt = m_cDataService.GetCashAmt();

                //        //    if (dCashBillAmt > 0)
                //        //    {
                //        //        //부가세 계산
                //        //        double dTax = m_cTrnStatus.Head.TotVatAmt * (dCashBillAmt / m_cTrnStatus.Head.NetSaleAmt);

                //        //        dTax = CmUtil.MathRounds(dTax, m_cPosStatus.Mst.VatRudDwLocMethd, CmUtil.IntParse(m_cPosStatus.Mst.VatRudDwLoc));

                //        //        // 현금 화면 진행
                //        //        sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_CASH_APPROVAL, "", dCashBillAmt.ToString(), dTax.ToString() });
                //        //    }
                //        //}
                //        #endregion

                //        // 거래 완료 처리
                //        ISaleCompleteUs cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
                //        sRet = cSaleComplete.PosSaleExecute(new string[] { });
                //        if (sRet != UserCom.RST_OK)
                //        {
                //            WinManager.HideSearchMessage();
                //            return bReturn;
                //        }

                //        //17.08.22 dkshin SS 해피오더
                //        // KDS전송
                //        /*if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                //        {
                //            KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                //        }
                //        */
                //        // 해피오더 데이터 삭제
                //        m_cHappyOrder.DeleteHappyOrderData(sOrderNum, sOrderDt);

                //        // 판매상태 변경
                //        m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;

                //        WinManager.HideSearchMessage();
                //    }
                //    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 (함수명))
                //                             MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0638));
                //    }

                //    iSelectedRow = 0;
                //}
                #endregion

                #region 픽업완료, 배달중 의 경우 거래 생성 -- 수정
                
                if (bRegMode == true)
                {
                    string sRet = string.Empty;

                    //17.08.22 dkshin SS 해피오더
                    //주문상세데이터에 픽업시간 추가(KDS 전송시 ORDERHEADER TABLE_NM에 픽업시간 설정: MST_KTCH_ORD_MSG.ORD_TIME)
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                    {
                        int itemCnt = m_cHappyOrderItem.Count;
                        ArrayList itemList = new ArrayList();
                        for (int i = 0; i < itemCnt; i++)
                        {
                            Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)m_cHappyOrderItem[i];
                            item.PickupTime = cHeader.PickupTime;
                            itemList.Add(item);
                        }
                        m_cHappyOrderItem.Clear();
                        m_cHappyOrderItem = new ArrayList(itemList);
                    }

                    //17.08.22 dkshin SS 해피오더 - 판매POS의 매출처리시 대기번호도 해당 대기번호로 저장해야 함.
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                    {
                        m_cTrnStatus.Head.OrderNo = cHeader.DailyCode;

                        //#20171212, 쉑쉑 해피오더 수기로 상태변경 시 매출데이터 오류 수정 Start
                        sOrderNum = cHeader.OrderNum;
                        sOrderDt = cHeader.OrderDate.Substring(0, 10).Replace("-", "");
                        sPayAmt = cHeader.PayMoney;
                        //#20171212, 쉑쉑 해피오더 수기로 상태변경 시 매출데이터 오류 수정 End
                    }

                    if (PosMstManager.GetPosOption(POS_OPTION.OPT038) == "1")
                    {
                        // 해피오더 바코드등록 POP-UP
                        WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD_BARCODE_REG });
                    }

                    WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0437)), this);

                    // 거래 완료 처리
                    ISaleCompleteUs cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
                    sRet = cSaleComplete.PosSaleExecute(new string[] { });
                    if (sRet != UserCom.RST_OK)
                    {
                        WinManager.HideSearchMessage();
                        return bReturn;
                    }

                    //17.08.22 dkshin SS 해피오더
                    // KDS전송
                    /*if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                    {
                        KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                    }
                    */

                    // 해피오더 데이터 삭제
                    m_cHappyOrder.DeleteHappyOrderData(sOrderNum, sOrderDt);

                    // 판매상태 변경
                    //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;

                    WinManager.HideSearchMessage();

                    iSelectedRow = 0;
                }

                #endregion

                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 end,phj
            }
            catch (Exception ex)
            {
                bReturn = 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 (함수명))
                                     ex.Message);
            }

            return bReturn;
        }


        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
        private bool ImgBtnHappyOrderStatusChangedProc(object sender, int iSelectedRow)
        {
            // 해피오더 주문 List Refresh 여부
            bool bReturn = false;
            // 픽업완료, 배달중 플래그
            bool bRegMode = false;
            string sOrderNum = string.Empty;
            string sOrderDt = string.Empty;
            string sPayAmt = string.Empty;
            string sAsIsStatus = string.Empty;
            string sToBeStatus = string.Empty;
            string sOwnerId = string.Empty;                             //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs  
            string sChannel = string.Empty;                             //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs  
            string sChannelName = string.Empty;                         //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs  

            bool bAnswer = false;

            //#15945 해피오더 자동주문 상세기능 start - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
            bool bAutomaticShipmentAnswer = false;
            //#15945 해피오더 자동주문 상세기능 end - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정

            //#15945 해피오더 자동주문 상세기능 start
            bool bAutomaticShipment = false;
            //#15945 해피오더 자동주문 상세기능 end

            //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
            bool bLandomBoxCheck = false;
            //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

            //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
            htLandomBoxInfo.Clear();
            //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

            Hashtable htRequest = new Hashtable();
            Hashtable htRequestForNutrition = new Hashtable();

            try
            {
                // 오더폼 이면 빠져 나감
                if (PosMenuKeyIn == "04" || PosMenuKeyIn == "05") return false;

                //#16065 PB 인천논현_해피오더 영수증에 받은금액 54,500원/거스름돈 44,000원으로 표기되는 증상 start
                m_cPosStatus.Sale.PayRecvedAmt = 0;
                m_cPosStatus.Sale.ChangeCashAmt = 0;
                //#16065 PB 인천논현_해피오더 영수증에 받은금액 54,500원/거스름돈 44,000원으로 표기되는 증상 end

                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj
                // 거래 초기화
                m_cDataSrv.InitTranHeader();
                m_cDataSrv.DeleteTranItem();
                //#20171227 인천공항 포스연동 end, phj - 20180310 해피오더 결제완료 end,phj

                htRequest.Add("deviceType", "POS");
                htRequest.Add("orderNum", CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO"));
                htRequest.Add("cancelReasonType", "");

                #region 상태변경 처리
                
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
                Column.TR_HPORD.HPORD_HEADER cHeader = null;
                cHeader = GetHappyHeader(PosMenuKeyIn, iSelectedRow);
                //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
                
                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                if (cHeader == null) return false;
                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end

                // 내점 or 사전예약 
                if ((PosMenuKeyIn == "00" && cHeader.OrderType != "4" && cHeader.OrderType != "5") || PosMenuKeyIn == "01" || PosMenuKeyIn == "03")       
                {
                    //#15945 해피오더 자동주문 상세기능 start
                    sAsIsStatus = cHeader.OrderStatus;
                    //#15945 해피오더 자동주문 상세기능 end

                    #region 상품준비
                    if (((Cosmos.UI.CsmButton)sender) == btn_03)              // 상품준비
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)
                        {
                            //#17143 [해피오더]자동 주문 처리 개선 start
                            #region 기존소스
                           
                            ////#15945 해피오더 자동주문 상세기능 start
                            ////#15945 해피오더 자동주문 상세기능 start - 20180823
                            //string sPickupData = string.Empty;
                            //string sOrderData = string.Empty;
                            //sPickupData = cHeader.PickupTime.Substring(0, 4) + cHeader.PickupTime.Substring(5, 2) + cHeader.PickupTime.Substring(8, 2);
                            //sOrderData = cHeader.OrderDate.Substring(0, 4) + cHeader.OrderDate.Substring(5, 2) + cHeader.OrderDate.Substring(8, 2);
                            //
                            ////#20180914 해피오더 자동출하 로그 추가 start
                            //UserLog.WriteLogFile(UserCom.LOG_IOS,
                            //                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                            //                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                            //                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                            //                     "픽업일자 :" + sPickupData + "주문일자 :" + sOrderData);
                            ////#20180914 해피오더 자동출하 로그 추가 end
                            //
                            //bAutomaticShipment = false;
                            //
                            //if (sPickupData != sOrderData)
                            //{
                            //    //픽업일자,주문일자가 다르면 자동출하 데이터 저장하고 
                            //    bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), out bAutomaticShipment);
                            //}
                            //else
                            //{
                            //    //픽업일자,주문일자가 같으면 자동출하 데이터 저장안하고 기본으로 처리한다.
                            //    if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            //    {
                            //        bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591));
                            //    }
                            //    else
                            //    {
                            //        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]));
                            //    }
                            //}
                            //
                            ////#15945 해피오더 자동주문 상세기능 start - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                            //bAutomaticShipmentAnswer = bAnswer;
                            ////#15945 해피오더 자동주문 상세기능 end - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                            ////#15945 해피오더 자동주문 상세기능 end - 20180823
                            
                            #endregion 기존소스

                            #region 변경소스
                            
                            bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), cHeader.OrderDate.Substring(0, 10), cHeader.PickupTime.Substring(0, 10), out bAutomaticShipment);
                            bAutomaticShipmentAnswer = bAnswer;
                          
                            #endregion 변경소스
                            //#17143 [해피오더]자동 주문 처리 개선 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 + "()",
                                                 "[" + sAsIsStatus + "]" + "자동출하_여부 :" + bAutomaticShipment.ToString());
                            //#20180914 해피오더 자동출하 로그 추가 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 + "()",
                                                 "[" + sAsIsStatus + "]" + "자동출하_대답 :" + bAutomaticShipmentAnswer.ToString());
                            //#20180914 해피오더 자동출하 로그 추가 end

                            //bAutomaticShipment       [True] --> 자동출하 가능한 상태 
                            //bAutomaticShipmentAnswer [True] --> 자동출하 가능한 상태에 대한 고객응답
                            //※ 자동출하 가능한 상태에 대한 고객응답
                            //예     --> 주문상태변경O / 자동출하데이터저장 O
                            //아니오 --> 주문상태변경O / 자동출하데이터저장 X
                            //닫기   --> 주문상태변경X / 자동출하데이터저장 X
                            if (bAutomaticShipment == true) { bAnswer = true; }
                            //#15945 해피오더 자동주문 상세기능 end

                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PRODUCT_READY);
                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.PRODUCT_READY;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]);

                                // 상태가 '상품준비' 시 주방주문메시지 저장 처리
                                //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                //17.08.22 dkshin SS 해피오더 - 픽업대기 시 주문 데이타 만들기(해피오더의 경우 상품준비시 주문 데이타를 만든다)
                                //픽업대기 시 매출 처리가 되고 KDS로 전송되기 위해
                                //KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT049) != "1")
                                {
                                    KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                }
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            // 이미 상품준비 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.PRODUCT_READY))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }
                    }
                    #endregion

                    #region 픽업대기
                    else if (((Cosmos.UI.CsmButton)sender) == btn_05)   // 픽업대기
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            // 상품준비 단계에서만 픽업대기 처리
                            if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            {
                                bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0592));
                            }
                            else
                            {
                                bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT]));
                            }
                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT);
                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT;

                                //17.08.22 dkshin SS 해피오더
                                //쉑쉑 해피오더 수기처리 여부 사용일 경우 - 해피오더 창에서 '픽업대기' 상태 변경시 매출 처리 -> KDS 전송
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                                {
                                    bRegMode = true;
                                }

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT]);

                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT)
                        {
                            // 이미 픽업대기 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }
                    }
                    #endregion

                    #region 픽업완료
                    else if (((Cosmos.UI.CsmButton)sender) == btn_07)   // 픽업완료
                    {
                        bool bIsPickUp_Delay = false;

                        // 픽업완료 인지 지연완료 인지 flag 설정
                        //if (((Cosmos.UI.CsmButton)sender).Text == MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451))
                        //{
                        //    bIsPickUp_Delay = true;
                        //}

                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)
                        {
                            bIsPickUp_Delay = true;
                        }

                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)  
                        {
                            // 픽업대기 단계에서만 픽업완료 처리
                            if (bIsPickUp_Delay == true)
                            {
                                if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                                {
                                    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]));
                                }
                                else
                                {
                                    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]));
                                }

                                if (bAnswer == true)
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2;

                                    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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]);
                                }
                                else
                                {
                                    return false;
                                }
                            }
                            else
                            {
                                if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                                {
                                    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]));
                                }
                                else
                                {
                                    bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]));
                                }
                                if (bAnswer == true)
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED;

                                    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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]);

                                }
                                else
                                {
                                    return false;
                                }
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2)
                        {
                            // 이미 픽업완료/픽업지연완료 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            // 사전예약
                            if (PosMenuKeyIn == "03" && PosMstManager.GetPosOption(POS_OPTION.OPT044) == "0")
                            {
                                // 사전예약 중 픽업대기 사용 안 함 이면 상품준비 단계에서 픽업완료 처리 가능
                                if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                                {
                                    if (bIsPickUp_Delay == true)
                                    {
                                        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]));
                                       
                                        if (bAnswer == true)
                                        {
                                            htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2);
                                            sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2;

                                            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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]);

                                        }
                                        else
                                        {
                                            return false;
                                        }
                                    }
                                    else
                                    {
                                        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]));
                                   
                                        if (bAnswer == true)
                                        {
                                            htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED);
                                            sToBeStatus = ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED;

                                            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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]);

                                        }
                                        else
                                        {
                                            return false;
                                        }
                                    }
                                }
                                else
                                {
                                    if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED))
                                    {
                                        WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                                    }
                                    else
                                    {
                                        WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                                    }
                                    return false;
                                }
                            }
                            else
                            {
                                if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED))
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                                }
                                else
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                                }
                                return false;
                            }
                        }

                        // 상품 등록 중일 경우 빠져 나간다.
                        ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
                        if (alSaleItem.Count > 0)
                        {
                            WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0021));
                            return false;
                        }

                        //#20180618 해피오더 매출처리 start
                        bRegMode = true;
                        //#20180618 해피오더 매출처리 end

                        //17.08.22 dkshin SS 해피오더
                        //쉑쉑 해피오더 수기처리 여부 사용일 경우 - 해피오더 창에서 '픽업완료' 상태 변경시 상태 변경만 함. 매출 처리 안함.
                        if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                        {
                            bRegMode = false;
                        }

                        //#15945 해피오더 자동주문 상세기능 start
                        sOrderNum = cHeader.OrderNum;
                        sOrderDt = cHeader.OrderDate.Substring(0, 10).Replace("-", "");
                        sPayAmt = cHeader.PayMoney;
                        //#15945 해피오더 자동주문 상세기능 end
                    }
                    #endregion

                    #region 주문취소
                    else if (((Cosmos.UI.CsmButton)sender) == btnOrderCancel)   // 주문취소
                    {
                        if (sAsIsStatus != ItemConst.HAPPYORDER_STATUS.ORDER_REG && sAsIsStatus != ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            WinManager.ErrorMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0486), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0485));

                            if (bAnswer == true)
                            {
                                //#20180611 해피오더 주문취소 사유 start
                                string ReasonName = HPOrderCancelReason();
                                if (ReasonName == "") return false;
                                //#20180611 해피오더 주문취소 사유 end

                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL);

                                if (htRequest.ContainsKey("cancelReasonType"))
                                    htRequest["cancelReasonType"] = "Z";
                                else
                                    htRequest.Add("cancelReasonType", "Z");

                                //#20180611 해피오더 주문취소 사유 start
                                if (htRequest.ContainsKey("cancelReason"))
                                    htRequest["cancelReason"] = ReasonName;
                                else
                                    htRequest.Add("cancelReason", ReasonName);
                                //#20180611 해피오더 주문취소 사유 end

                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL]);

                                // 상태가 '주문취소' 시 주방주문메시지 저장 처리
                                KPSItemProcess(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                            }
                            else
                            {
                                return false;
                            }
                        }
                    }
                    #endregion
                }
                //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                else if ((PosMenuKeyIn == "00" && (cHeader.OrderType == "5" || cHeader.OrderType == "4")) || PosMenuKeyIn == "02")   // 전체 또든 배달
                //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                {
                    //#15945 해피오더 자동주문 상세기능 start
                    sAsIsStatus = cHeader.OrderStatus;
                    //#15945 해피오더 자동주문 상세기능 end

                    #region 상품준비
                    if (((Cosmos.UI.CsmButton)sender) == btn_03)        // 상품준비
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)
                        {
                            //#17143 [해피오더]자동 주문 처리 개선 start
                            #region 기존소스

                            ////#15945 해피오더 자동주문 상세기능 start
                            ////#15945 해피오더 자동주문 상세기능 start - 20180823
                            //string sPickupData = string.Empty;
                            //string sOrderData = string.Empty;
                            //sPickupData = cHeader.PickupTime.Substring(0, 4) + cHeader.PickupTime.Substring(5, 2) + cHeader.PickupTime.Substring(8, 2);
                            //sOrderData = cHeader.OrderDate.Substring(0, 4) + cHeader.OrderDate.Substring(5, 2) + cHeader.OrderDate.Substring(8, 2);
                            //
                            ////#20180914 해피오더 자동출하 로그 추가 start
                            //UserLog.WriteLogFile(UserCom.LOG_IOS,
                            //                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                            //                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                            //                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                            //                     "픽업일자 :" + sPickupData + "주문일자 :" + sOrderData);
                            ////#20180914 해피오더 자동출하 로그 추가 end
                            //
                            //bAutomaticShipment = false;
                            //
                            //if (sPickupData != sOrderData)
                            //{
                            //    //픽업일자,주문일자가 다르면 자동출하 데이터 저장하고 
                            //    bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), out bAutomaticShipment);
                            //}
                            //else
                            //{
                            //    //픽업일자,주문일자가 같으면 자동출하 데이터 저장안하고 기본으로 처리한다.
                            //    if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            //    {
                            //        bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591));
                            //    }
                            //    else
                            //    {
                            //        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]));
                            //    }
                            //}
                            ////#15945 해피오더 자동주문 상세기능 start - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                            //bAutomaticShipmentAnswer = bAnswer;
                            ////#15945 해피오더 자동주문 상세기능 end - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                            ////#15945 해피오더 자동주문 상세기능 end - 20180823
                            
                            #endregion 기존소스

                            #region 변경소스
                            
                            bAnswer = m_cHappyOrder.HappyOrder_AutomaticShipmentItemCheck(m_cHappyOrderItem, htStatus[sAsIsStatus].ToString(), cHeader.OrderDate.Substring(0, 10), cHeader.PickupTime.Substring(0, 10), out bAutomaticShipment);
                            bAutomaticShipmentAnswer = bAnswer;
                            
                            #endregion 변경소스
                            //#17143 [해피오더]자동 주문 처리 개선 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 + "()",
                                                 "[" + sAsIsStatus + "]" + "자동출하_여부 :" + bAutomaticShipment.ToString());
                            //#20180914 해피오더 자동출하 로그 추가 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 + "()",
                                                 "[" + sAsIsStatus + "]" + "자동출하_대답 :" + bAutomaticShipmentAnswer.ToString());
                            //#20180914 해피오더 자동출하 로그 추가 end


                            // 자동출하 일 때는
                            // 예 -> 주문상태변경o, 관련테이블에데이터남김 o
                            // 아니오 -> 주문상태변경o, 관련테이블에데이터남김 x
                            // 닫기 -> 주문상태변경x, 관련테이블에데이터남김 x
                            if (bAutomaticShipment == true) { bAnswer = true; }
                            //#15945 해피오더 자동주문 상세기능 end


                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.PRODUCT_READY);
                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.PRODUCT_READY;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.PRODUCT_READY]);

                                // 상태가 '상품준비' 시 주방주문메시지 저장 처리
                                //#20171019 SS해피오더 배달 start, 20171023
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT049) != "1")
                                {
                                    KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                }
                                //#20171019 SS해피오더 배달 end, 20171023
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            // 이미 상품준비 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            // 그 이외는 에러처리
                            WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            return false;
                        }
                    }
                    #endregion

                    #region 배달요청

                    //#17472 해피오더)직접배달 상태 추가 start
                    //기존
                    //else if (((Cosmos.UI.CsmButton)sender) == btn_05)         // 배달요청
                    //변경
                    else if (((Cosmos.UI.CsmButton)sender) == btn_05 || ((Cosmos.UI.CsmButton)sender) == nm_btn_1)         // 배달요청
                    //#17472 해피오더)직접배달 상태 추가 end
                    {
                        // 주문접수 또는 상품준비 일 때
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                        {
                            // 주문접수 단계 or 상품준비 단계에서만 배달요청 처리
                            bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ]));

                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ);
                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ]);

                                //#20171019 SS해피오더 배달 start, 20171023
                                //쉑쉑 해피오더 수기처리 여부 사용일 경우 - 해피오더 창에서 '픽업대기' 상태 변경시 매출 처리 -> KDS 전송
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                                {
                                    bRegMode = true;
                                }
                                //#20171019 SS해피오더 배달 end, 20171023
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG)
                        {
                            // 이미 배달요청 / 배달접수 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }
                    }
                    #endregion

                    #region 배달 중
                    //#17472 해피오더)직접배달 상태 추가 start
                    //기존
                    //else if (((Cosmos.UI.CsmButton)sender) == btn_07)         // 배달중
                    //변경
                    else if (((Cosmos.UI.CsmButton)sender) == btn_07 || ((Cosmos.UI.CsmButton)sender) == nm_btn_2 || ((Cosmos.UI.CsmButton)sender) == nm_btn_4)         // 배달중
                    //#17472 해피오더)직접배달 상태 추가 end
                    {
                        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG ||
                            //#20180914 해피오더 배달 매출 처리 조건 변경 start
                            //배달요청제외 
                            //sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ ||
                            //#20180914 해피오더 배달 매출 처리 조건 변경 end
                            sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT) //여기확인
                        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end
                        {
                            // 배달접수/배달요청 단계에서만 배달완료 처리
                            bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED]));

                            if (bAnswer == true)
                            {
                                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
                                if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED;
                                }
                                else
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.DELIVERY_ING);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.DELIVERY_ING;
                                }
                                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_ING]);

                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_ING)
                        {
                            // 이미 배달중 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                        }
                        //grayber@20171123 해피오더 직접배달 start
                        else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT
                                 //|| PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1"       // grayber@20171212 조건식 교체
                                 && PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                        {
                            #region 해피오더 직접배달
                            // 해피오더 직접배달    [현재 직접배달 상태 입니다.]
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                            return false;
                            #endregion
                        }
                        //grayber@20171123 해피오더 직접배달 end
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.DELIVERY_ING))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }

                        // 상품 등록 중일 경우 빠져 나간다.
                        ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
                        if (alSaleItem.Count > 0)
                        {
                            WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0021));
                            return false;
                        }

                        bRegMode = true;

                        //#20171019 SS해피오더 배달 start, 20171023
                        //쉑쉑 해피오더 수기처리 여부 사용일 경우 - 해피오더 창에서 '픽업대기' 상태 변경시 매출 처리 -> KDS 전송
                        if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                        {
                            bRegMode = false;
                        }
                        //#20171019 SS해피오더 배달 end, 20171023


                        //#15945 해피오더 자동주문 상세기능 start
                        sOrderNum = cHeader.OrderNum;
                        sOrderDt = cHeader.OrderDate.Substring(0, 10).Replace("-", "");
                        sPayAmt = cHeader.PayMoney;
                        sOwnerId = cHeader.OwnerId;              //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs
                        sChannel = cHeader.Channel;              //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                        sChannelName = cHeader.ChannelName;      //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                        //#15945 해피오더 자동주문 상세기능 end

                    }
                    #endregion

                    //#17197 판매POS 직접배달 옵션처리 요청 件 start
                    //직접배달 기능 재사용 - 아래 주석 해제
                    #region 해피오더 직접배달 고려 안함
                    //grayber@20171123 해피오더 직접배달 start

                    //#17472 해피오더)직접배달 상태 추가 start
                    //기존
                    //else if (((Cosmos.UI.CsmButton)sender) == btnStatus4)  // 직접배달
                    //변경
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus4 || ((Cosmos.UI.CsmButton)sender) == nm_btn_3)  // 직접배달
                    //#17472 해피오더)직접배달 상태 추가 end                    
                    {
                        if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")    // OPT550 이 '1' 이고
                        {
                            #region 해피오더 직접배달 : 주문접수 상태의 거래만 처리

                            //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 start
                            //주문접수 또는 상품준비 일 때
                            if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG || sAsIsStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                            //#20180420 상품준비 상태인 주문건도 직접배달 가능 하도록 수정 end
                            {
                                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
                                bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT]));
                                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end
                     
                                if (bAnswer == true)
                                {
                                    htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT);
                                    sToBeStatus = ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT;

                                    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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT]);

                                    //bRegMode = true;   //20171214_해피오더 직접 배달 수정_hs 배달완료시 매출생성으로 변경
                                }
                                else
                                {
                                    return false;
                                }
                            }
                            else if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)        // 직접배달
                            {
                                // 이미 직접배달 단계라면
                                WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), htStatus[sAsIsStatus]));
                                return false;
                            }
                            else
                            {
                                if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT))
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                                }
                                else
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                                }
                                return false;
                            }
                            #endregion
                        }
                        else
                        {
                            return false;
                        }
                    }
                    //grayber@20171123 해피오더 직접배달 end                    
                    #endregion 해피오더 직접배달 고려 안함
                    //#17197 판매POS 직접배달 옵션처리 요청 件 end

                    #region 주문취소
                    else if (((Cosmos.UI.CsmButton)sender) == btnOrderCancel)   // 주문취소
                    {
                        if (sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ || 
                            sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG || 
                            sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_ING || 
                            sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_PRODUCT_READY || 
                            sAsIsStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED)
                        {
                            WinManager.ErrorMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0486), htStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            //#15881 배달건 취소버튼 클릭 시 메세지 추가 start
                            bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0797));
                            //#15881 배달건 취소버튼 클릭 시 메세지 추가 end

                            if (bAnswer == true)
                            {
                                //#20180611 해피오더 주문취소 사유 start
                                string ReasonName = HPOrderCancelReason();
                                if (ReasonName == "") return false;
                                //#20180611 해피오더 주문취소 사유 end

                                htRequest.Add("status", ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL);

                                if (htRequest.ContainsKey("cancelReasonType"))
                                    htRequest["cancelReasonType"] = "Z";
                                else
                                    htRequest.Add("cancelReasonType", "Z");

                                //#20180611 해피오더 주문취소 사유 start
                                if (htRequest.ContainsKey("cancelReason"))
                                    htRequest["cancelReason"] = ReasonName;
                                else
                                    htRequest.Add("cancelReason", ReasonName);
                                //#20180611 해피오더 주문취소 사유 end

                                sToBeStatus = ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + htStatus[ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL]);

                                // 상태가 '주문취소' 시 주방주문메시지 저장 처리
                                KPSItemProcess(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                            }
                            else
                            {
                                return false;
                            }
                        }
                    }
                    #endregion
                }
                #endregion

                Hashtable htResponse = null;
                Hashtable[] aResponse = null;

                int iReturn = BaseCom.NG;

                WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0452)), this);

                #region 영양정보 받아와서 저장
                if (bRegMode == true)
                {
                    //#20180614 배달완료 시 영양정보 출력되도록 수정 start
                    htRequestForNutrition.Add("orderNum", sOrderNum);
                    //#20180614 배달완료 시 영양정보 출력되도록 수정 end

                    aResponse = null;
                    aResponse = m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_PRODUCT_NUTRITION, htRequestForNutrition }, ref htResponse, ref iReturn);

                    if (aResponse != null && aResponse.Length > 0)
                    {
                        string sMsg = m_cHappyOrder.ParseNutritionMsg(aResponse);

                        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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 영양정보 = " + sMsg);

                            // 영양정보 저장
                            m_cHappyOrder.UpdateHappyOrderData(new string[] { "Message", sMsg, sOrderNum, sOrderDt });
                        }
                    }
                    //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - 기능 함수화 하여 주석 처리 해둠
                    //m_cHappyOrder.GetHappyOrderNurtitionListDetail(sOrderNum, m_sHappyOrderURL, sOrderDt);
                    //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end
                }
                #endregion

                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj
                //인천공항으로 상품,결제 리스트 보내고 성공 시 해피오더 상태변경 한다.
                //인천공항으로 전송 실패 시 해피오더 상태 변경하지 않는다. 
                //해피오더 상태변경 실패 시 일괄 취소 후 진행한다.
                #region 자사포스 데이터 인천공항 포스로 전송
                if (bRegMode == true)
                {
                    // 주문유형구분
                    string sOrderType = "";

                    //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 start                    
                    #region 해피오더 매출 주문유형구분
                    if (PosMenuKeyIn == "01" || (PosMenuKeyIn == "00" && (cHeader.OrderType != "4" && cHeader.OrderType != "5" && cHeader.OrderType != "6")))        // 내점
                    {
                        // 내점이라면 내점 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                    }
                    else if (PosMenuKeyIn == "02" || (PosMenuKeyIn == "00" && (cHeader.OrderType == "5" || cHeader.OrderType == "4")))   // 배달
                    {
                        // 배달이라면 배달 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                    }
                    else if (PosMenuKeyIn == "03" || (PosMenuKeyIn == "00" && (cHeader.OrderType == "6")))   // 사전예약
                    {
                        // 사전예약이라면 사전예약 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PRE_RESERVATION;
                    }
                    #endregion
                    //#20180903 해피오더 매출 생성 시 tr_sale_detail에 구분자 추가 end

                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
                    #region 해피오더 상품리스트가 쇼킹박스인지 체크 후 바코드 화면 오픈
                    bool bValue = false;
                    string sItemCode = "";
                    DataTable dtData = null;
                    for (int nLoop = 0; nLoop < m_cHappyOrderItem.Count; nLoop++)
                    {
                        Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)m_cHappyOrderItem[nLoop];

                        dtData = m_cDataCommon.SeletCommonCode(PosConst.COMMON_CODE_GROUP.T0039, "");
                        if (dtData != null && dtData.Rows.Count > 0)
                        {
                            foreach (DataRow dr in dtData.Rows)
                            {
                                if (item.GoodsCode == CmUtil.GetDataRowStr(dr, PosMst.MST_COMMON.DATA.CHAR_VAL_TITLE_VAL_01))
                                {
                                    sItemCode = item.GoodsCode;
                                    bValue = true;
                                    break;
                                }
                            }
                        }

                        if (bValue == true)
                        {
                            break;
                        }
                    }
                    if (bValue == true)
                    {
                        WinManager.HideSearchMessage();

                        frmHappyOrderBarcode fForm = (frmHappyOrderBarcode)FormManager.GetForm(FormManager.FORM_SAL_HPORD_BARCODE);
                        if (fForm == null)
                        {
                            fForm = new frmHappyOrderBarcode();
                            FormManager.AddForm(FormManager.FORM_SAL_HPORD_BARCODE, fForm);
                        }

                        fForm.sHPOrderNo = sOrderNum;
                        fForm.sItemCode = sItemCode;

                        if (fForm.ShowDialog() == DialogResult.OK)
                        {
                            bLandomBoxCheck = true;
                        }
                        else
                        {
                            bLandomBoxCheck = false;
                        }

                        if (bLandomBoxCheck == false) return false;
                    }
                    #endregion
                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
                    WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0452)), this);

                    string sRet = "";
                    if (bLandomBoxCheck == true)
                    {
                        sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem, htLandomBoxInfo);
                    }
                    else
                    {
                        sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem, null);
                    }
                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

                    if (sRet == UserCom.RST_OK)
                    {
                        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
                        if (bLandomBoxCheck == true)
                        {
                            IHoldDeal m_cHoldDeal = (IHoldDeal)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HOLD_DEAL);
                            m_cHoldDeal.UpdateHoldDeal(htLandomBoxInfo["SALE_DT"].ToString(), htLandomBoxInfo["POS_NO"].ToString(), htLandomBoxInfo["REG_NO"].ToString(), "1", 0, 0);

                            m_cTrnStatus.Head.ShockingBoxStat = "1";//0:쇼킹박스 완성 1:쇼킹방스불러오기
                            m_cTrnStatus.Head.ShockingBoxBarcodeData = htLandomBoxInfo["BARCODE_NO"].ToString(); // SALE_DT + REG_NO
                            m_cTrnStatus.Head.ShockingBoxTradeKind = ItemConst.TRAN_KIND.HPO_LOG.LANDOM_BOX;
                        }
                        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

                        m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.FORIGN.O2O;
                        //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;

                        IPaymentUs cPaymentUs = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.HAPPYORDER);

                        //#10906_[BR] 요기요 해피오더 매출 처리 기능 개발_hs 
                        //#11078_[공통] 해피오더 외부채널 표시 방식 변경 적용 요청_hs
                        if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.BR)
                        {
                            if (sOwnerId == "BLUEBEE")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_YOGIYO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "HAPPYMARKET")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_HAPPYMARKET, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "YGY")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_YOGIYO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "BEAMIN")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_BAEMIN, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "KAKAO")
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_KAKAO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else if (sChannel == "BRMICRO")     //20171215_카카오 사전예약 결제코드 생성_hs
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HPORDER_BRMICRO, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                            else
                            {
                                sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                            }
                        }
                        else
                        {
                            sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.HAPPYORDER_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });
                        }

                        if (sRet != UserCom.RST_OK)
                        {
                            WinManager.HideSearchMessage();

                            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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", SetPayment [" + sRet.ToString() + "]");
                        }
                        else
                        {
                            if (PosMstManager.GetPosOption(POS_OPTION.OPT512) == "1")
                            {
                                // 인천공항으로 데이터 전송
                                sRet = m_cAirPortTran.IncheonAireportClose(PosKey.MENU_KEY.INCHEON_AIRPORT, "N");

                                if (sRet != UserCom.RST_OK)
                                {

                                    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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 인천공항POS로 데이터 전송 실패 [" + sRet + "]");
                                }

                            }
                        }
                    }
                    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 (함수명))
                                             "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", MakeTranItem [" + sRet.ToString() + "]");

                        return false;
                    }

                    // 판매상태 변경
                    //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;

                    if (sRet != UserCom.RST_OK)
                    {
                        return false;
                    }
                }
                #endregion
                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 end,phj

                #region 주문 상태 변경
                htResponse = null;
                iReturn = BaseCom.NG;

                m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sHappyOrderURL, ItemConst.HAPPYORDER_WORK_TYPE.UPDATE_STATUS, htRequest }, ref htResponse, ref iReturn);
                
                WinManager.HideSearchMessage(this);
                
                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 (함수명))
                                        "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 상태변경 처리 실패");

                    WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0005));
                    return 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 (함수명))
                                        "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 상태변경 처리 실패(" + htResponse["message"].ToString() + ")");

                    WinManager.ConfirmMessage(htResponse["message"].ToString());
                    return 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 (함수명))
                                                 "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 상태변경 처리 완료");

                    //#20180914 해피오더 자동출하 로그 추가 start
                    UserLog.WriteLogFile(UserCom.LOG_IOS,
                                         System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                         System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                                         System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                                         "자동출하데이터저장여부 " +
                                         "(변경된버튼상태 :" + sToBeStatus.ToString() +
                                         "/자동출하여부 :" + bAutomaticShipment.ToString() +
                                         "/자동출하동의여부 :" + bAutomaticShipmentAnswer.ToString() + ")");
                    //#20180914 해피오더 자동출하 로그 추가 end

                    //#15945 해피오더 자동주문 상세기능 start
                    if ((sToBeStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY && bAutomaticShipment == true && bAutomaticShipmentAnswer == true) || (sToBeStatus == ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL))
                    //#15945 해피오더 자동주문 상세기능 end - 20180828 자동출하 안내팝업에서 아니오 선택 시에도 TR 데이터 생기는 현상 수정
                    {
                        m_cHappyOrder.HappyOrder_AutomaticShipmentLog(cHeader, sToBeStatus, "200");
                    }
                    //#15945 해피오더 자동주문 상세기능 end

                    // 정상 처리
                    WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0487), htStatus[sToBeStatus]));
                    bReturn = true;
                }
                #endregion

                //#17334 해피오더)배달요청 시 배달주문서 자동 출력  start
                if ((PosMenuKeyIn == "00" && (cHeader.OrderType == "5" || cHeader.OrderType == "4")) || PosMenuKeyIn == "02")
                {
                    if (sToBeStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ || sToBeStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)
                    {
                        // 배달요청이거나 직접배달일 때 주문서 자동출력
                        btnProc_Click(btnPrint, null);
                    }
                }
                //#17334 해피오더)배달요청 시 배달주문서 자동 출력  end   

                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 start,phj
                #region 픽업완료, 배달중 의 경우 거래 생성
                if (bRegMode == true)
                {
                    string sRet = string.Empty;

                    //17.08.22 dkshin SS 해피오더
                    //주문상세데이터에 픽업시간 추가(KDS 전송시 ORDERHEADER TABLE_NM에 픽업시간 설정: MST_KTCH_ORD_MSG.ORD_TIME)
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                    {
                        int itemCnt = m_cHappyOrderItem.Count;
                        ArrayList itemList = new ArrayList();
                        for (int i = 0; i < itemCnt; i++)
                        {
                            Column.TR_HPORD.HPORD_ITEM item = (Column.TR_HPORD.HPORD_ITEM)m_cHappyOrderItem[i];
                            item.PickupTime = cHeader.PickupTime;
                            itemList.Add(item);
                        }
                        m_cHappyOrderItem.Clear();
                        m_cHappyOrderItem = new ArrayList(itemList);
                    }

                    //17.08.22 dkshin SS 해피오더 - 판매POS의 매출처리시 대기번호도 해당 대기번호로 저장해야 함.
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                    {
                        m_cTrnStatus.Head.OrderNo = cHeader.DailyCode;

                        //#20171212, 쉑쉑 해피오더 수기로 상태변경 시 매출데이터 오류 수정 Start
                        sOrderNum = cHeader.OrderNum;
                        sOrderDt = cHeader.OrderDate.Substring(0, 10).Replace("-", "");
                        sPayAmt = cHeader.PayMoney;
                        //#20171212, 쉑쉑 해피오더 수기로 상태변경 시 매출데이터 오류 수정 End
                    }

                    if (PosMstManager.GetPosOption(POS_OPTION.OPT038) == "1")
                    {
                        // 해피오더 바코드등록 POP-UP
                        WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD_BARCODE_REG });
                    }

                    WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0437)), this);

                    // 거래 완료 처리
                    ISaleCompleteUs cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
                    sRet = cSaleComplete.PosSaleExecute(new string[] { });
                    if (sRet != UserCom.RST_OK)
                    {
                        WinManager.HideSearchMessage();
                        return bReturn;
                    }

                    //17.08.22 dkshin SS 해피오더
                    // KDS전송
                    /*if (PosMstManager.GetPosOption(POS_OPTION.OPT049) == "1")
                    {
                        KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                    }
                    */

                    // 해피오더 데이터 삭제
                    m_cHappyOrder.DeleteHappyOrderData(sOrderNum, sOrderDt);

                    // 판매상태 변경
                    //m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;

                    WinManager.HideSearchMessage();

                    iSelectedRow = 0;
                }

                #endregion
                //#20171227 인천공항 포스연동 start, phj - 20180310 해피오더 결제완료 end,phj
            }
            catch (Exception ex)
            {
                bReturn = 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 (함수명))
                                     ex.Message);
            }
            return bReturn;
        }
        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end


        /// <summary>
        /// 양재오더 상태변경 처리
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="iSelectedRow"></param>
        private bool YangJaeOrderStatusChangedProc(object sender, int iSelectedRow)
        {
            // 오더폼 주문 List Refresh 여부
            bool bReturn = false;
            // 픽업완료, 배달중 플래그
            bool bRegMode = false;
            bool bFieldPay = false;
            string sOrderNum = string.Empty;
            string sOrderDt = string.Empty;
            string sPayAmt = string.Empty;
            string sAsIsStatus = string.Empty;
            string sToBeStatus = string.Empty;

            Hashtable htRequest = new Hashtable();
            Hashtable htRequestForNutrition = new Hashtable();

            bool bAnswer = false;

            try
            {
                // 해피오더 건이면 빠져 나감
                if (PosMenuKeyIn == "01" || PosMenuKeyIn == "02" || PosMenuKeyIn == "03") return false;

                htRequest.Add("deviceType", "POS");
                htRequest.Add("orderNum", CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO"));
                htRequest.Add("cancelReasonType", "");

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                Column.TR_HPORD.HPORD_HEADER cHeader = null;
                cHeader = GetHappyHeader(PosMenuKeyIn, iSelectedRow);
                if (cHeader == null) return false;
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end
               
                #region 상태변경 처리
                if (PosMenuKeyIn == "04")        // 양재오더 내점
                {
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                    //기존
                    //sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[iSelectedRow]).OrderStatus;
                    //변경
                    sAsIsStatus = cHeader.OrderStatus;
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                    #region 상품준비
                    if (((Cosmos.UI.CsmButton)sender) == btnStatus1)         // 상품준비
                    {
                        if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.ORDER_REG)
                        {
                            // 주문접수 단계에서만 상품준비 처리
                            if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            {
                                bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591));
                            }
                            else
                            {
                                bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY]));
                            }
                           
                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY);
                                sToBeStatus = ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY]);

                                // 상태가 '상품준비' 시 주방주문메시지 저장 처리
                                //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY)
                        {
                            // 이미 상품준비 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), m_htYJStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            // 그 이외는 에러처리
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.HAPPYORDER_STATUS.PRODUCT_READY))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }
                    }
                    #endregion

                    #region 픽업대기
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus2)    // 픽업대기
                    {
                        if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY)
                        {
                            // 상품준비 단계에서만 픽업대기 처리
                            if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            {
                                bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0592));
                            }
                            else
                            {
                                bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.PICKUP_WAIT]));
                            }
                           
                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.PICKUP_WAIT);
                                sToBeStatus = ItemConst.YANGJAEORDER_STATUS.PICKUP_WAIT;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.PICKUP_WAIT]);

                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.PICKUP_WAIT)
                        {
                            // 이미 픽업대기 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), m_htYJStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.YANGJAEORDER_STATUS.PICKUP_WAIT))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }
                    }
                    #endregion

                    #region 픽업완료
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus3)    // 픽업완료
                    {
                        bool bIsPickUp_Delay = false;

                        if (((Cosmos.UI.CsmButton)sender).Text != MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0846))
                        {
                            // 픽업완료 인지 지연완료 인지 flag 설정
                            if (((Cosmos.UI.CsmButton)sender).Text == MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0451))
                            {
                                bIsPickUp_Delay = true;
                            }

                            if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.PICKUP_WAIT ||
                               sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.PICKUP_DELAY)
                            {
                                // 픽업대기 단계에서만 픽업완료 처리
                                if (bIsPickUp_Delay == true)
                                {
                                    if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                                    {
                                        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2]));
                                    }
                                    else
                                    {
                                        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED2]));
                                    }
                                    if (bAnswer == true)
                                    {
                                        htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED2);
                                        sToBeStatus = ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED2;

                                        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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED2]);
                                    }
                                    else
                                    {
                                        return false;
                                    }
                                }
                                else
                                {
                                    if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                                    {
                                        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), htStatus[ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED]));
                                    }
                                    else
                                    {
                                        bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED]));
                                    }
                                    if (bAnswer == true)
                                    {
                                        htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED);
                                        sToBeStatus = ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED;

                                        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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED]);

                                    }
                                    else
                                    {
                                        return false;
                                    }
                                }
                            }
                            else if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED ||
                                    sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED2)
                            {
                                // 이미 픽업완료/지연완료 단계라면
                                WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), m_htYJStatus[sAsIsStatus]));
                                return false;
                            }
                            else
                            {
                                if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.YANGJAEORDER_STATUS.PICKUP_COMPLETED))
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                                }
                                else
                                {
                                    WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                                }
                                return false;
                            }

                            // 상품 등록 중일 경우 빠져 나간다.
                            ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
                            if (alSaleItem.Count > 0)
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0021));
                                return false;
                            }

                            bRegMode = true;
                        }
                        else
                        {
                            // 현장결제
                            bFieldPay = true;

                            htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.FIELD_ORDER_COMPLETED);

                            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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.FIELD_ORDER_COMPLETED]);
                        }

                        sOrderNum = ((Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[iSelectedRow]).OrderNum;
                        sOrderDt = ((Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[iSelectedRow]).OrderDate.Substring(0, 10).Replace("-", "");
                        sPayAmt = ((Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[iSelectedRow]).PayMoney;



                        //#20180614 배달완료 시 영양정보 출력되도록 수정 start 
                        //기존1
                        // 영양정보 조회 요청 전문 생성
                        //htRequestForNutrition.Add("orderNum", sOrderNum);
                        //#20180614 배달완료 시 영양정보 출력되도록 수정 end

                    }
                    #endregion

                    #region 주문취소
                    else if (((Cosmos.UI.CsmButton)sender) == btnOrderCancel)// 주문취소
                    {
                        if (sAsIsStatus != ItemConst.YANGJAEORDER_STATUS.ORDER_REG && sAsIsStatus != ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY)
                        {
                            WinManager.ErrorMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0486), m_htYJStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0485));
                           
                            if (bAnswer == true)
                            {
                                //#20180611 해피오더 주문취소 사유 start
                                string ReasonName = ReasonName = HPOrderCancelReason();
                                if (ReasonName == "") return false;
                                //#20180611 해피오더 주문취소 사유 end

                                htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.ORDER_CANCEL);
                                if (htRequest.ContainsKey("cancelReasonType"))
                                    htRequest["cancelReasonType"] = "Z";
                                else
                                    htRequest.Add("cancelReasonType", "Z");

                                //#20180611 해피오더 주문취소 사유 start
                                if (htRequest.ContainsKey("cancelReason"))
                                    htRequest["cancelReason"] = ReasonName;
                                else
                                    htRequest.Add("cancelReason", ReasonName);
                                //#20180611 해피오더 주문취소 사유 end

                                sToBeStatus = ItemConst.YANGJAEORDER_STATUS.ORDER_CANCEL;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.ORDER_CANCEL]);

                                // 상태가 '주문취소' 시 주방주문메시지 저장 처리
                                //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                                KPSItemProcess(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                            }
                            else
                            {
                                return false;
                            }
                        }
                    }
                    #endregion
                }
                else if (PosMenuKeyIn == "05")   // 양재오더 배달
                {
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                    //기존
                    //sAsIsStatus = ((Column.TR_HPORD.HPORD_HEADER)m_alYJDeliveryLists[iSelectedRow]).OrderStatus;
                    //변경
                    sAsIsStatus = cHeader.OrderStatus;
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                    #region 상품준비
                    if (((Cosmos.UI.CsmButton)sender) == btnStatus1)         // 상품준비
                    {
                        if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.ORDER_REG)
                        {
                            // 주문접수 단계에서만 상품준비 처리
                            if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                            {
                                bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0591));
                            }
                            else
                            {
                                bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY]));
                            }
                            
                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY);
                                sToBeStatus = ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY]);

                                // 상태가 '상품준비' 시 주방주문메시지 저장 처리
                                //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                                KPSItemProcess(ItemConst.TRAN_DIV.NORMAL, m_cHappyOrderItem);
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY)
                        {
                            // 이미 상품준비 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), m_htYJStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            // 그 이외는 에러처리
                            WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            return false;
                        }
                    }
                    #endregion

                    #region 배달요청
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus2)        // 배달요청
                    {
                        if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.ORDER_REG || sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.PRODUCT_READY)
                        {
                            // 주문접수 단계 or 상품준비 단계에서만 배달요청 처리
                            bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0482), m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ]));
                         
                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ);
                                sToBeStatus = ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ]);
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ || sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_REG)
                        {
                            // 이미 배달요청 / 배달접수 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), m_htYJStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }
                    }
                    #endregion

                    #region 배달 중
                    else if (((Cosmos.UI.CsmButton)sender) == btnStatus3)    // 배달중
                    {
                        if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_REG || sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ)
                        {
                            // 배달접수/배달요청 단계에서만 배달완료 처리
                            bAnswer = WinManager.QuestionMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0484), htStatus[ItemConst.YANGJAEORDER_STATUS.DELIVERY_COMPLETED]));
                        
                            if (bAnswer == true)
                            {
                                htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.DELIVERY_ING);
                                sToBeStatus = ItemConst.YANGJAEORDER_STATUS.DELIVERY_ING;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.DELIVERY_ING]);
                            }
                            else
                            {
                                return false;
                            }
                        }
                        else if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_ING)
                        {
                            // 이미 배달중 단계라면
                            WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0483), m_htYJStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            if (Convert.ToInt32(sAsIsStatus) < Convert.ToInt32(ItemConst.YANGJAEORDER_STATUS.DELIVERY_ING))
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0488));
                            }
                            else
                            {
                                WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0660));
                            }
                            return false;
                        }

                        // 상품 등록 중일 경우 빠져 나간다.
                        ArrayList alSaleItem = (ArrayList)StateObject.GetItemObject(Column.TR_PLU.ITEM);
                        if (alSaleItem.Count > 0)
                        {
                            WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0021));
                            return false;
                        }

                        bRegMode = true;

                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                        //기존
                        /*
                        sOrderNum = ((Column.TR_HPORD.HPORD_HEADER)m_alYJDeliveryLists[iSelectedRow]).OrderNum;
                        sOrderDt = ((Column.TR_HPORD.HPORD_HEADER)m_alYJDeliveryLists[iSelectedRow]).OrderDate.Substring(0, 10).Replace("-", "");
                        sPayAmt = ((Column.TR_HPORD.HPORD_HEADER)m_alYJDeliveryLists[iSelectedRow]).PayMoney;
                        */
                        //변경
                        sOrderNum = cHeader.OrderNum;
                        sOrderDt = cHeader.OrderDate.Substring(0, 10).Replace("-", "");
                        sPayAmt = cHeader.PayMoney;
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end
                    }
                    #endregion

                    #region 주문취소
                    else if (((Cosmos.UI.CsmButton)sender) == btnOrderCancel)// 주문취소
                    {
                        if (sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_REQ || 
                            sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_REG || 
                            sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_ING || 
                            sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_PRODUCT_READY || 
                            sAsIsStatus == ItemConst.YANGJAEORDER_STATUS.DELIVERY_COMPLETED)
                        {
                            WinManager.ErrorMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0486), m_htYJStatus[sAsIsStatus]));
                            return false;
                        }
                        else
                        {
                            //#15881 배달건 취소버튼 클릭 시 메세지 추가 start
                            //기존
                            //bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0485));
                            //변경
                            bAnswer = WinManager.QuestionMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0797));
                            //#15881 배달건 취소버튼 클릭 시 메세지 추가 end

                            if (bAnswer == true)
                            {
                                //#20180611 해피오더 주문취소 사유 start
                                string ReasonName = HPOrderCancelReason();
                                if (ReasonName == "") return false;
                                //#20180611 해피오더 주문취소 사유 end

                                htRequest.Add("status", ItemConst.YANGJAEORDER_STATUS.ORDER_CANCEL);
                                
                                if (htRequest.ContainsKey("cancelReasonType"))
                                    htRequest["cancelReasonType"] = "Z";
                                else
                                    htRequest.Add("cancelReasonType", "Z");

                                //#20180611 해피오더 주문취소 사유 start
                                if (htRequest.ContainsKey("cancelReason"))
                                    htRequest["cancelReason"] = ReasonName;
                                else
                                    htRequest.Add("cancelReason", ReasonName);
                                //#20180611 해피오더 주문취소 사유 end

                                sToBeStatus = ItemConst.YANGJAEORDER_STATUS.ORDER_CANCEL;

                                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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", BEFORE = " + htStatus[sAsIsStatus] + ", AFTER = " + m_htYJStatus[ItemConst.YANGJAEORDER_STATUS.ORDER_CANCEL]);

                                // 상태가 '주문취소' 시 주방주문메시지 저장 처리
                                //m_cHappyOrder.KPSItemProc(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                                KPSItemProcess(ItemConst.TRAN_DIV.REFUND, m_cHappyOrderItem);
                            }
                            else
                            {
                                return false;
                            }
                        }
                    }
                    #endregion
                }

                #endregion

                Hashtable htResponse = null;
                Hashtable[] aResponse = null;
                int iReturn = BaseCom.NG;

                WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0452)), this);

                // 영양정보 받아와서 저장
                #region 영양정보 받아와서 저장
                if (bRegMode == true || bFieldPay == true)
                {

                    //#20180614 배달완료 시 영양정보 출력되도록 수정 start
                    htRequestForNutrition.Add("orderNum", sOrderNum);
                    //#20180614 배달완료 시 영양정보 출력되도록 수정 end

                    aResponse = null;
                    aResponse = m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sYangJaeOrderURL, ItemConst.YANGJAEORDER_WORK_TYPE.SELECT_PRODUCT_NUTRITION, htRequestForNutrition }, ref htResponse, ref iReturn);

                    if (aResponse != null && aResponse.Length > 0)
                    {
                        string sMsg = m_cHappyOrder.ParseNutritionMsg(aResponse);
                        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 = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 영양정보 = " + sMsg);

                            // 영양정보 저장
                            m_cHappyOrder.UpdateHappyOrderData(new string[] { "Message", sMsg, sOrderNum, sOrderDt });
                        }
                    }

                    //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 start - 기능 함수화 하여 주석 처리 해둠
                    //m_cHappyOrder.GetHappyOrderNurtitionListDetail(sOrderNum, m_sYangJaeOrderURL, sOrderDt);
                    //grayber@20180202 [BR]해피오더 고객정보 추가 + 원산지 표기 end
                }
                #endregion

                // 주문상태변경 
                #region 주문상태변경
                htResponse = null;
                iReturn = BaseCom.NG;

                // 주문상태변경 전문 전송
                m_cHappyOrder.SendReceiveForHappyOrder(new object[] { m_sYangJaeOrderURL, ItemConst.YANGJAEORDER_WORK_TYPE.UPDATE_STATUS, htRequest }, ref htResponse, ref iReturn);
               
                WinManager.HideSearchMessage();
                
                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 (함수명))
                                                     "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 상태변경 처리 실패");

                    WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0005));
                    return 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 (함수명))
                                                     "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 상태변경 처리 실패(" + htResponse["message"].ToString() + ")");

                    WinManager.ConfirmMessage(htResponse["message"].ToString());
                    return 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 (함수명))
                                                     "OrderNum = " + CmUtil.GetDataRowStr(m_dtGrid.Rows[iSelectedRow], "ORDER_NO") + ", 상태변경 처리 완료");

                    // 정상 처리
                    WinManager.ConfirmMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0487), m_htYJStatus[sToBeStatus]));
                    bReturn = true;
                }
                #endregion
                
                //grayber@20171127 로컬 변수 if 구문 외부로 변경 start
                //주문유형구분
                string sOrderType = "";
                //grayber@20171127 로컬 변수 if 구문 외부로 변경 end

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                if (bRegMode == true && bFieldPay == true)
                {
                    //#16065 PB 인천논현_해피오더 영수증에 받은금액 54,500원/거스름돈 44,000원으로 표기되는 증상 start
                    m_cPosStatus.Sale.PayRecvedAmt = 0;
                    m_cPosStatus.Sale.ChangeCashAmt = 0;
                    //#16065 PB 인천논현_해피오더 영수증에 받은금액 54,500원/거스름돈 44,000원으로 표기되는 증상 end

                    // 거래 초기화
                    m_cDataSrv.InitTranHeader();
                    m_cDataSrv.DeleteTranItem();       
                }      
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                #region 픽업완료, 배달중 의 경우 거래 생성
                if (bRegMode == true)
                {
                    //grayber@20171127 로컬 변수 if 구문 외부로 변경 start
                    // 주문유형구분
                    //string sOrderType = "";
                    //grayber@20171127 로컬 변수 if 구문 외부로 변경 end

                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                    //기존
                    /*
                    // 거래 초기화
                    m_cDataSrv.InitTranHeader();
                    m_cDataSrv.DeleteTranItem();
                    */
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                    //기존
                    /*
                    Column.TR_HPORD.HPORD_HEADER cHeader = null;
                    if (PosMenuKeyIn == "01")        // 내점
                    {
                        // 내점이라면 내점 리스트에서 가져온다.
                        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iSelectedRow];
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                    }
                    else if (PosMenuKeyIn == "02")   // 배달
                    {
                        // 배달이라면 배달 리스트에서 가져온다.
                        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iSelectedRow];
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                    }
                    else if (PosMenuKeyIn == "03")   // 사전예약
                    {
                        // 사전예약이라면 사전예약 리스트에서 가져온다.
                        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iSelectedRow];
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PRE_RESERVATION;
                    }
                    else if (PosMenuKeyIn == "04")    // 오더폼 내점
                    {
                        // 오더폼(양재오더) 내점이라면 양재오더 내점 리스트에서 가져온다.
                        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[iSelectedRow];
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                    }
                    else if (PosMenuKeyIn == "05")    // 오더폼 배달
                    {
                        cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alYJDeliveryLists[iSelectedRow];
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                    }
                    */

                    //변경
                    if (PosMenuKeyIn == "01")        // 내점
                    {
                        // 내점이라면 내점 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                    }
                    else if (PosMenuKeyIn == "02")   // 배달
                    {
                        // 배달이라면 배달 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                    }
                    else if (PosMenuKeyIn == "03")   // 사전예약
                    {
                        // 사전예약이라면 사전예약 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PRE_RESERVATION;
                    }
                    else if (PosMenuKeyIn == "04")    // 오더폼 내점
                    {
                        // 오더폼(양재오더) 내점이라면 양재오더 내점 리스트에서 가져온다.
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP;
                    }
                    else if (PosMenuKeyIn == "05")    // 오더폼 배달
                    {
                        sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.DELIVERY;
                    }
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
                    //기존
                    //string sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem);
                    //변경
                    string sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem, null);
                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

                    if (sRet == UserCom.RST_OK)
                    {
                        m_cTrnStatus.Head.TradeKind = ItemConst.TRAN_KIND.FORIGN.O2O;
                        m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_DOING;

                        if (PosMstManager.GetPosOption(POS_OPTION.OPT038) == "1")
                        {
                            // 해피오더 바코드등록 POP-UP
                            WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD_BARCODE_REG });
                        }

                        WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0437)), this);

                        IPaymentUs cPaymentUs = (IPaymentUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.HAPPYORDER);

                        sRet = cPaymentUs.SetPayment(new string[] { ItemConst.TR_ITEM_ID.ORDER.ORDERFORM_PAY, sOrderType, sPayAmt, sOrderNum, sOrderDt });

                        if (sRet != UserCom.RST_OK)
                        {
                            WinManager.HideSearchMessage();
                            return bReturn;
                        }

                        #region 현금영수증 발행은 없기 때문에 주석 처리(문성진D 요청)
                        //if (PosMstManager.GetPosOption(POS_OPTION.OPT315) == "0") return;           // 현금영수증 업무 사용 여부(0:사용안함, 1:사용함)


                        ////현금영수증 발행!
                        //IDataProcessUs m_cDataService = (IDataProcessUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.DATA_SERVICE);

                        //if (m_cDataService != null)
                        //{
                        //    double dCashBillAmt = m_cDataService.GetCashAmt();

                        //    if (dCashBillAmt > 0)
                        //    {
                        //        //부가세 계산
                        //        double dTax = m_cTrnStatus.Head.TotVatAmt * (dCashBillAmt / m_cTrnStatus.Head.NetSaleAmt);

                        //        dTax = CmUtil.MathRounds(dTax, m_cPosStatus.Mst.VatRudDwLocMethd, CmUtil.IntParse(m_cPosStatus.Mst.VatRudDwLoc));

                        //        // 현금 화면 진행
                        //        sRet = WinPay.ShowForm(new string[] { FormManager.FORM_PAY_CASH_APPROVAL, "", dCashBillAmt.ToString(), dTax.ToString() });
                        //    }
                        //}
                        #endregion

                        // 거래 완료 처리
                        ISaleCompleteUs cSaleComplete = (ISaleCompleteUs)sManager.InitServiceInstance(ServiceLists.ASV_DATA_PROCESS.DLL, ServiceLists.ASV_DATA_PROCESS.SALE_COMPLETE);
                        sRet = cSaleComplete.PosSaleExecute(new string[] { });
                        if (sRet != UserCom.RST_OK)
                        {
                            WinManager.HideSearchMessage();
                            return bReturn;
                        }

                        // 해피오더 데이터 삭제
                        m_cHappyOrder.DeleteHappyOrderData(sOrderNum, sOrderDt);

                        // 판매상태 변경
                        m_cPosStatus.Sale.SaleFlow = PosConst.SALE_FLOW.SALE_WAIT;

                        WinManager.HideSearchMessage();
                    }
                    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 (함수명))
                                             MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0638));
                    }

                    iSelectedRow = 0;
                }
                else if (bFieldPay == true)   // 현장결제
                {
                    //grayber@20171127 로컬 변수 if 구문 외부로 변경 start
                    //주문유형구분
                    //string sOrderType = "";
                    //grayber@20171127 로컬 변수 if 구문 외부로 변경 end

                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                    //기존
                    /*
                    // 거래 초기화
                    m_cDataSrv.InitTranHeader();
                    m_cDataSrv.DeleteTranItem();
                    */
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                    //기존
                    /*
                    //Column.TR_HPORD.HPORD_HEADER cHeader = null;
                    //현장결제는 양재오더 내점 건에만 존재하므로 양재오더 내점 리스트에서만 가져 옴.
                    cHeader = (Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[iSelectedRow]; 
                    */
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end
                    
                    sOrderType = ItemConst.TR_ITEM_ID.ORDER_TYPE.PICKUP_FIELD_PAY;
                    
                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
                    //기존
                    //string sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem);
                    //변경
                    string sRet = m_cHappyOrder.MakeTranItem((Column.TR_HPORD.HPORD_HEADER)cHeader, m_cHappyOrderItem, null);
                    //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

                    if (sRet == UserCom.RST_OK)
                    {
                        // SaleMain Form Show
                        //WinSale.ShowForm(new string[] { FormManager.FORM_SAL_MAIN, PosConst.SAL_MAIN_FORM_CALLER_TYPE.HPORD });
                        m_cPosStatus.Base.HappyOrderMode = FormManager.FORM_SAL_MAIN;

                        // 현장 결제 이후 판매화면 종료 시 오더폼List Refresh를 안 함.
                        bReturn = false;
                        m_sPosMenuKeyIn = "";
                        this.DialogResult = DialogResult.OK;
                        this.Close();
                    }
                    else
                    {
                        WinManager.ConfirmMessage(POS_MESSAGE.ERROR.MSG_0087);
                    }
                }
                #endregion
            }
            catch (Exception ex)
            {
                bReturn = 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 (함수명))
                                     ex.Message);
            }

            return bReturn;
        }

        private void btnStatus_Click(object sender, EventArgs e)
        {
            int iSelectedRow = 0;
            bool bDoRefresh = false;
            
            try
            {
                iSelectedRow = gridHappyOrderList.CsmGridSelectedRowIndex;

                //// 해피오더 상태변경 처리
                //HappyOrderStatusChangedProc(sender, iSelectedRow);

                //if (PosMstManager.GetPosOption(POS_OPTION.OPT318) == "1")
                //{
                //    // 양재오더 상태변경 처리
                //    YangJaeOrderStatusChangedProc(sender, iSelectedRow);
                //}

                switch(PosMenuKeyIn)
                {
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 start
                    case "00":  // 해피오더 전체
                    //#20180607 해피오더 리스트 전체 조회 기능 추가 end
                    case "01":  // 해피오더 내점
                    case "02":  // 해피오더 배달
                    case "03":  // 사전예약
                        // 해피오더 상태변경 처리
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                        //기존
                        //bDoRefresh = HappyOrderStatusChangedProc(sender, iSelectedRow);
                        //변경
                        bDoRefresh = ImgBtnHappyOrderStatusChangedProc(sender, iSelectedRow);
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end
                        
                        break;
                    case "04":  // 오더폼 내점
                    case "05":  // 오더폼 배달
                        bDoRefresh = YangJaeOrderStatusChangedProc(sender, iSelectedRow);                        
                        break;
                }

                if (bDoRefresh == true)
                {
                    // 상태 변경 후 리스트 재조회
                    btnProc_Click(btnSearch, null);
                }

                gridHappyOrderList.CsmGridSelectRow(iSelectedRow);
            }
            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);
            }
        }

        private void btnFunc_Click(object sender, EventArgs e)
        {
            try
            {
                if((Cosmos.UI.CsmButton)sender == btnWeightPrint)  // 중량출력
                {
                    if(m_dtGrid == null || m_dtGrid.Rows.Count == 0)
                    {
                        return;
                    }

                    WeightPrintProc();
                }
            }
            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);
            }
        }

        private bool CheckOverWeightValue(int iWeight, ref string sItemNm)
        {
            bool bIsNormal = false;
            sItemNm = string.Empty;
            try
            {
                if( iWeight >= 236 && iWeight <= 335)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0545);
                    bIsNormal = false;
                }

                //else if(iWeight >= 336 && iWeight <= 434)
                //{
                //    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0545);
                //    bIsNormal = true;
                //}
                //else if(iWeight >= 435 && iWeight <= 534)
                //{
                //    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0546);
                //    bIsNormal = true;
                //}
                //#10856] (신규) [BR] 저울 중량 라벨프린터 양식 변경
                //스타워즈 파인트 제외
                else if (iWeight >= 336 && iWeight <= 534)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0545);
                    bIsNormal = true;
                }

                else if(iWeight >= 545 && iWeight <= 642)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0547);
                    bIsNormal = false;
                }
                else if(iWeight >= 643 && iWeight <= 742)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0547);
                    bIsNormal = true;
                }
                else if(iWeight >= 889 && iWeight <= 988)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0548);
                    bIsNormal = false;
                }
                else if(iWeight >= 989 && iWeight <= 1088)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0548);
                    bIsNormal = true;
                }
                else if(iWeight >= 1137 && iWeight <= 1236)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0549);
                    bIsNormal = false;
                }
                else if(iWeight >= 1237 && iWeight <= 1536)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0549);
                    bIsNormal = true;
                }
                else if(iWeight >= 1700 && iWeight <= 1999)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0550);
                    bIsNormal = false;
                }
                else if(iWeight >= 2000 && iWeight <= 2300)
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0550);
                    bIsNormal = true;
                }
                else
                {
                    sItemNm = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0551);
                    bIsNormal = 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 bIsNormal;
        }

        #region 중량 출력 처리
        /// <summary>
        /// 중량 출력 처리
        /// </summary>
        private void WeightPrintProc()
        {
            try
            {
                frmHappyOrderWeightPrint frmWeightPrint = (frmHappyOrderWeightPrint)FormManager.GetForm(FormManager.FORM_SAL_HPORD_WEIGHT_PRINT);
                if (frmWeightPrint == null)
                {
                    frmWeightPrint = new frmHappyOrderWeightPrint();
                    FormManager.AddForm(FormManager.FORM_SAL_HPORD_WEIGHT_PRINT, frmWeightPrint);
                }

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                //기존
                /*
                ArrayList alHPOrdHeader = null;
                if (PosMenuKeyIn == "01")
                {
                    // 픽업
                    alHPOrdHeader = m_alPickupLists;
                }
                else if(PosMenuKeyIn == "02")
                {
                    //배달
                    alHPOrdHeader = m_alDeliveryLists;
                }
                else
                {
                    return;
                }
                int iSelectedIdx = gridHappyOrderList.CsmGridSelectedRowIndex;
                frmWeightPrint.HappyOrderHeader = (Column.TR_HPORD.HPORD_HEADER)alHPOrdHeader[iSelectedIdx];
                frmWeightPrint.HappyOrderItem = m_cHappyOrderItem;
                
                // 해피오더 중량 출력
                WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD_WEIGHT_PRINT });
                */

                //변경
                int iSelectedIdx = gridHappyOrderList.CsmGridSelectedRowIndex;

                Column.TR_HPORD.HPORD_HEADER header = null;
                header = GetHappyHeader("00", iSelectedIdx);
                if (header == null) { return; }

                if (header.OrderType == "6") { return; }//사전예약
                if (PosMenuKeyIn != "00" && PosMenuKeyIn != "01" && PosMenuKeyIn != "02") { return; }//전체,픽업,배달 이 외는 return

                frmWeightPrint.HappyOrderHeader = header;
                frmWeightPrint.HappyOrderItem = m_cHappyOrderItem;

                WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD_WEIGHT_PRINT });

                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 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);
            }
        }
        #endregion 중량 출력 처리

        #region 주방프린터 출력 처리
        /// <summary>
        /// 주방프린터 출력 처리 
        /// </summary>
        /// <param name="sTradeDiv"></param>
        /// <param name="alHappyOrderItem"></param>
        private void KPSItemProcess(string sTradeDiv, ArrayList alHappyOrderItem)
        {
            try
            {
                // 주방출력사용 옵션 
                if (PosMstManager.GetPosOption(POS_OPTION.OPT506) != "1") return;

                // 수동주방출력 옵션
                string arg = string.Empty;
                switch (PosMstManager.GetPosOption(POS_OPTION.OPT425))
                {
                    case "1":       // 주방프린터 수동출력 (장치선택)
                        {
                            frmMenualOrderKps f = (frmMenualOrderKps)FormManager.GetForm(FormManager.FORM_MENUAL_ORDER_KPS);
                            if (f == null)
                            {
                                f = new frmMenualOrderKps();
                                FormManager.AddForm(FormManager.FORM_MENUAL_ORDER_KPS, f);
                            }
                            f.HappyOrderList = alHappyOrderItem;
                            f.ShowDialog();
                            break;
                        }
                    case "2":       // 주방프린터 수동출력 (메뉴선택) 
                        {
                            frmMenualOrderItem f = (frmMenualOrderItem)FormManager.GetForm(FormManager.FORM_MENUAL_ORDER_ITEM);
                            if (f == null)
                            {
                                f = new frmMenualOrderItem();
                                FormManager.AddForm(FormManager.FORM_MENUAL_ORDER_ITEM, f);
                            }
                            f.HappyOrderList = alHappyOrderItem;
                            f.ShowDialog();
                            break;
                        }
                }

                // 주방출력 
                m_cHappyOrder.KPSItemProc(sTradeDiv, alHappyOrderItem);
            }
            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);
            }
        }
        #endregion
        
        //#20180611 해피오더 주문취소 사유 start
        #region 해피오더 주문취소 사유
        private string HPOrderCancelReason()
        {
            //점포 주문 취소 시 사유 입력 (사유 미입력 시 주문취소 처리 불가)
            string sRst = "";
            try
            {
                frmHPOrderCancelReason fForm = (frmHPOrderCancelReason)FormManager.GetForm(FormManager.FORM_HPORD_REASON_CODE);
                if (fForm == null)
                {
                    fForm = new frmHPOrderCancelReason();
                    FormManager.AddForm(FormManager.FORM_HPORD_REASON_CODE, fForm);
                }
                fForm.ReasonGroup = PosConst.COMMON_CODE_GROUP.S0093;
                if (fForm.ShowDialog() != DialogResult.OK) return sRst;

                sRst = fForm.ReasonName; // 선택된 사유명
                return sRst;
            }
            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 sRst;
            }
        }
        #endregion 해피오더 주문취소 사유
        //#20180611 해피오더 주문취소 사유 end

        //#20180612 해피오더 주문알림 start
        #region 해피오더 주문알림 메세지
        private void HPOrderCntPopup()
        {
            
            int iStrtNum = 0;
            int iDirectCnt = 0;
            int iReservCnt = 0;

            string sStr = "";
            string sStr2 = "";
            string sStr3 = "";
            string sStr4 = "";

            try
            {
                RtbHPOrdPopup.Text = "";

                iDirectCnt = int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDirectCnt, "0")) +
                             int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderReservCnt, "0"));


                iReservCnt = int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderTotRegCnt, "0")) -
                             int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDirectCnt, "0")) -
                             int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderReservCnt, "0"));


                //#20180615 해피오더 팝업 수정 start
                //if (m_sPicupSearch != "A" && m_sPicupSearch != "B") return;
                //if (iDirectCnt == 0 && iReservCnt == 0) return;
                //
                //if ((m_sPicupSearch == "A" && iDirectCnt >= 1) || (m_sPicupSearch == "B" && iReservCnt >= 1))
                //{
                //#20180615 해피오더 팝업 수정 end
                    RtbHPOrdPopup.SelectionFont = new Font(m_cPosStatus.Base.FONT, 14, FontStyle.Bold);
                    RtbHPOrdPopup.SelectionAlignment = HorizontalAlignment.Center;

                    sStr = "해피오더 ";
                    RtbHPOrdPopup.AppendText(sStr);
                    RtbHPOrdPopup.Select(iStrtNum, sStr.Length);
                    RtbHPOrdPopup.SelectionColor = Color.Black;

                    iStrtNum = iStrtNum + sStr.Length;


                    if (m_sPicupSearch == "A")
                    {
                        sStr2 = "즉시주문(" + iDirectCnt.ToString() + ") ";
                    }
                    else if (m_sPicupSearch == "B")
                    {
                        sStr2 = "예약주문(" + iReservCnt.ToString() + ") ";
                    }
                    else
                    {
                        sStr2 = "즉시주문(" + iDirectCnt.ToString() + ") , 예약주문(" + iReservCnt.ToString() + ") ";
                    }

                    RtbHPOrdPopup.AppendText(sStr2);
                    RtbHPOrdPopup.Select(iStrtNum, sStr2.Length);
                    RtbHPOrdPopup.SelectionColor = Color.Red;

                    iStrtNum = iStrtNum + sStr2.Length;

                    sStr3 = "내역이 있습니다.";
                    RtbHPOrdPopup.AppendText(sStr3);
                    RtbHPOrdPopup.Select(iStrtNum, sStr3.Length);
                    RtbHPOrdPopup.SelectionColor = Color.Black;

                    iStrtNum = iStrtNum + sStr3.Length;


                    RtbHPOrdPopup.AppendText("\n");
                    iStrtNum = iStrtNum + 1;


                    RtbHPOrdPopup.SelectionFont = new Font(m_cPosStatus.Base.FONT, 14, FontStyle.Bold);
                    RtbHPOrdPopup.SelectionAlignment = HorizontalAlignment.Center;

                    sStr4 = "상품준비로 변경해주시기 바랍니다.";
                    RtbHPOrdPopup.AppendText(sStr4);
                    RtbHPOrdPopup.Select(iStrtNum, sStr4.Length);
                    RtbHPOrdPopup.SelectionColor = Color.Black;

                    RtbHPOrdPopup.ReadOnly = true;
                    //RtbHPOrdPopup.BringToFront(); 

                //#20180615 해피오더 팝업 수정 start
                //}
                //#20180615 해피오더 팝업 수정 end
                btnHappyOrderWeb.BringToFront();
                btnTodayPrint.BringToFront();

                ReadyToBarcode();
            }
            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);
            }
            
        }
        #endregion 해피오더 주문알림 메세지

        #region 점주웹,주문서출력
        private void btn_Click(object sender, EventArgs e)
        {
             
            string sMenuKey = "";
            try
            {
                if ((Cosmos.UI.CsmButton)sender == btnHappyOrderWeb)         // 점주WEB 연결
                {
                    sMenuKey = PosKey.MENU_KEY.WEB_HP_ORD;
                }
                else if ((Cosmos.UI.CsmButton)sender == btnTodayPrint)      // 오늘 픽업/배달 주문서출력
                {
                    sMenuKey = PosKey.MENU_KEY.TODAY_HPORD_PRINT;
                }

                // 기능키 판매원 권한 체크
                if (WinBasic.CheckMenuKeyAuth(sMenuKey) == false) return;
                // 점주WEB 연결
                if ((Cosmos.UI.CsmButton)sender == btnHappyOrderWeb)         
                {
                    m_cPosStatus.Base.HappyOrderMode = FormManager.FORM_WEB_HAPPY_ORDER;
                    //ProcessHPOrdForm();
                    WinBasic.ShowForm(new string[] { FormManager.FORM_WEB_HAPPY_ORDER, PosKey.MENU_KEY.WEB_HP_ORD });
                    //break;
                }
                // 해피오더 오늘 픽업/배달 주문서출력
                else if ((Cosmos.UI.CsmButton)sender == btnTodayPrint)       
                {
                    m_cPosStatus.Base.HappyOrderMode = string.Empty;
                    TodayHappyOrderPrintProc();
                }
            }
            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

        //#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
        //해피오더 오늘 픽업/배달 주문서출력 처리
        #region 기존소스
        /*
        /// <summary>
        /// 해피오더 오늘 픽업/배달 주문서출력 처리
        /// </summary>
        private void TodayHappyOrderPrintProc()
        {
             
            string sHappyOrderUrl = "";
            IHappyOrderList cHappyOrder = null;
            ArrayList cHappyOrderHeader = new ArrayList();
            Hashtable[] htOrderLists = null;

            try
            {
                cHappyOrder = (IHappyOrderList)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HAPPY_ORDER_LIST);

                // 조회중 POP-UP 시작
                WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0437)), this);

                // 승인업체 코드 조회
                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);
                // 승인 URL 조회
                sHappyOrderUrl = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP);

                Hashtable htRequest = new Hashtable();
                htRequest.Add("storeCode", m_cPosStatus.Base.StoreNo);
                htRequest.Add("status", 4);
                htRequest.Add("deviceType", "POS");

                Hashtable htResponse = null;
                int iReturn = BaseCom.NG;
                htOrderLists = cHappyOrder.SendReceiveForHappyOrder(new object[] { sHappyOrderUrl, ItemConst.HAPPYORDER_WORK_TYPE.SELECT_ORDER_LIST, htRequest }, ref htResponse, ref iReturn);

                cHappyOrderHeader.Clear();

                //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 Start
                // 해피오더 헤더정보 DB 삭제
                cHappyOrder.DeleteHappyOrderAllData();
                //#20171215, 해피오더 주문리스트 조회 시 해피오더 테이블 데이터 삭제 후 저장하도록 수정 End

                foreach (Hashtable htData in htOrderLists)
                {
                    Column.TR_HPORD.HPORD_HEADER header;
                    header = cHappyOrder.ParseHappyOrderList(htData);

                    // 해피오더 헤더정보 DB 처리
                    cHappyOrder.SaveHappyOrderData(header);

                    // 해피오더 주문 리스트 조회 및 저장
                    cHappyOrderHeader.Add(header);
                }

                // 오늘 픽업/배달 주문서출력 건 주문번호 조회
                DataTable dtData = cHappyOrder.GetTodayHappyOrder();

                if (dtData == null || dtData.Rows.Count == 0)
                {
                    // 조회중 POP-UP 종료
                    WinManager.HideSearchMessage(this);

                    // 오늘 픽업/배달 주문서 출력 건 없을 경우 안내 POP-UP
                    WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0513));
                    return;
                }
                else
                {
                    // 접수된 주문에 대한 안내 POP-UP
                    WinManager.ConfirmMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0514));
                }

                int iTotalCnt = dtData.Rows.Count;
                int iCompletedCnt = 0;

                // 주문번호 별 Loop
                for (int nLoop = 0; nLoop < dtData.Rows.Count; nLoop++)
                {
                    ArrayList cHappyOrderItem = new ArrayList();
                    Hashtable[] htOrderDetails = null;
                    DataRow drData = dtData.Rows[nLoop];

                    // 주문번호
                    string sOrderNum = CmUtil.GetDataRowStr(drData, "ORD_NO");

                    // 해피오더 주문 상세 조회
                    cHappyOrder.GetHappyOrderListDetail(sOrderNum, sHappyOrderUrl, ref cHappyOrderItem, ref htOrderDetails);

                    bool bReturn = PrintTodayOrderSheet(sOrderNum, ref cHappyOrderHeader, ref cHappyOrderItem);

                    if (bReturn == true)
                    {
                        iCompletedCnt++;
                    }
                }

                // 조회중 POP-UP 종료
                WinManager.HideSearchMessage(this);

                // 출력 결과 POP-UP
                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);
            }
             
        }
        */
        #endregion

        #region 변경소스
        /// <summary>
        /// 해피오더 오늘 픽업/배달 주문서출력 처리
        /// </summary> 
        private void TodayHappyOrderPrintProc()
        {
            try
            {
                IHappyOrderList cHappyOrder = null;
                cHappyOrder = (IHappyOrderList)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HAPPY_ORDER_LIST);

                // 조회중 POP-UP 시작
                WinManager.ShowSearchMessage(string.Format(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0231), MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0437)), this);

                try
                {
                    bool bRet = false;
                    bRet = cHappyOrder.HappyOrderTodayPrint(false);
                    if (bRet == true)
                    {
                        UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                             System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                                             System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                                             "당일 주문서 출력 완료!");
                    }
                }
                catch (Exception ex)
                {
                    WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                                System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                                                System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                                                ex.Message);
                }
            }
            finally
            {
                // 조회중 POP-UP 종료
                WinManager.HideSearchMessage(this);
            }
        }
        #endregion
        //#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 end

        //#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
        //해피오더 오늘 픽업/배달 주문서출력 처리
        #region 기존소스
        /*
        /// <summary>
        /// 해피오더 오늘 픽업/배달 주문서 출력
        /// </summary>
        /// <param name="sOrderNum"></param>
        /// <param name="cHappyOrderHeader"></param>
        /// <param name="cHappyOrderItem"></param>
        /// <returns></returns>
        private bool PrintTodayOrderSheet(string sOrderNum, ref ArrayList cHappyOrderHeader, ref ArrayList cHappyOrderItem)
        { 
            bool bReturn = false;
            Column.TR_HPORD.HPORD_HEADER header;
            IHappyOrderList cHappyOrder = null;

            try
            {
                cHappyOrder = (IHappyOrderList)sManager.InitServiceInstance(ServiceLists.BSV_SALE.DLL, ServiceLists.BSV_SALE.HAPPY_ORDER_LIST);
                cHappyOrder.PrintBufClear();

                cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_VER, PosConst.PRT_FMT.F103, "[ 해피오더 주문내역 ]");
                cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");

                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)
                    {
                        cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ 픽업 완료 ]");
                        cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
                    }
                    if (header.OrderStatus == ItemConst.HAPPYORDER_STATUS.ORDER_CANCEL)
                    {
                        cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F103, "[ 주문 취소 ]");
                        cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
                    }

                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 픽업시간 : " + header.PickupTime);
                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 주문번호 : " + header.OrderNum);
                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 주문일시 : " + header.OrderDate);
                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 연 락 처 : " + header.ReceiverHp);
                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "   ITEM                     QTY        AMT");
                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");

                    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());

                        if (CmUtil.StringNullEmpty(item.FlavourFlag).Equals("N") == false)
                        {
                            if (PosMstManager.GetPosOption(POS_OPTION.OPT414) == "2")
                            {
                                cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " >" + CmUtil.RPadH(item.GoodsName, 40));

                                cHappyOrder.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
                            {
                                cHappyOrder.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
                        {
                            if (PosMstManager.GetPosOption(POS_OPTION.OPT414) == "2")
                            {
                                cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, CmUtil.RPadH(item.GoodsName, 42));

                                cHappyOrder.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
                            {
                                cHappyOrder.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));
                            }
                        }
                    }

                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "-");
                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, " 합계금액                      " + CmUtil.LPadH(CmUtil.GetToMoney(header.PayMoney), 11));
                    cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, " ");
                    if (header.CustMsg != string.Empty)
                    {
                        cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, "************** 고객요청사항 **************");
                        cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F101, header.CustMsg);
                        cHappyOrder.AddPrintData(PosConst.PRT_HDR.PRT_NOR, PosConst.PRT_FMT.F100, "*");
                    }

                    ArrayList alPrintData = cHappyOrder.GetPrintBufferData();

                    // 주문서 출력
                    bReturn = cHappyOrder.PrintOrderSheet();
                    if (bReturn == true)
                    {
                        // 해당 주문의 주문서 출력여부 Update
                        cHappyOrder.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

        //#20180612 해피오더 주문알림 end

        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
        #region 랜덤박스 바코드 리딩정보 받아오기
        public void Receive_BarCodeInfo(Hashtable htBarCodeInfo)
        {
            try
            {
                if (htLandomBoxInfo == null) { htLandomBoxInfo = new Hashtable(); }
                htLandomBoxInfo.Clear();

                if (htBarCodeInfo.Count > 0)
                {
                    htLandomBoxInfo = htBarCodeInfo;
                }
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                            System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                                            System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                                            ex.Message);

                htBarCodeInfo.Clear();
            }
        }
        #endregion
        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end 

        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
        #region GetHappyHeader
        private Column.TR_HPORD.HPORD_HEADER GetHappyHeader(string TabNum, int iRowNum)
        {
            Column.TR_HPORD.HPORD_HEADER Header = null;
            try
            {
                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                if (iRowNum < 0) return null;
                //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end

                if (TabNum == "00")
                {
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                    if (m_alTotalLists.Count <= 0) { return null; }
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end
                    
                    Header = (Column.TR_HPORD.HPORD_HEADER)m_alTotalLists[iRowNum];
                }
                else if (TabNum == "01")
                {
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                    if (m_alPickupLists.Count <= 0) { return null; }
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end

                    Header = (Column.TR_HPORD.HPORD_HEADER)m_alPickupLists[iRowNum];
                }
                else if (TabNum == "02")
                {
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                    if (m_alDeliveryLists.Count <= 0) { return null; }
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end

                    Header = (Column.TR_HPORD.HPORD_HEADER)m_alDeliveryLists[iRowNum];
                }
                else if (TabNum == "03")
                {
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                    if (m_alPreReservLists.Count <= 0) { return null; }
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end

                    Header = (Column.TR_HPORD.HPORD_HEADER)m_alPreReservLists[iRowNum];
                }
                else if (TabNum == "04")
                {
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                    if (m_alYJPickupLists.Count <= 0) { return null; }
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end

                    Header = (Column.TR_HPORD.HPORD_HEADER)m_alYJPickupLists[iRowNum];
                }
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
                else if (TabNum == "05")
                {
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 start
                    if (m_alYJDeliveryLists.Count <= 0) { return null; }
                    //#16707 PB 방이사거리 - 해피오더 내역창 진입시 '고객센터로 연락주세요' 팝업 취합 end

                    Header = (Column.TR_HPORD.HPORD_HEADER)m_alYJDeliveryLists[iRowNum];
                }
                //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end
            }
            catch (Exception ex)
            {
                WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                            System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                                            System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                                            ex.Message);
            }
            return Header;
        }
        #endregion

        #region GetHappyHeaderList
        private ArrayList GetHappyHeaderList(string TabNum)
        {
            ArrayList alHeaderList = null;
            try
            {
                if (TabNum == "00")
                {
                    alHeaderList = m_alTotalLists;
                }
                else if (TabNum == "01")
                {
                    alHeaderList = m_alPickupLists;
                }
                else if (TabNum == "02")
                {
                    alHeaderList = m_alDeliveryLists;
                }
                else if (TabNum == "03")
                {
                    alHeaderList = m_alPreReservLists;
                }
                else if (TabNum == "04")
                {
                    alHeaderList = m_alYJPickupLists;
                }
            }
            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 alHeaderList;
        }
        #endregion
        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
        #region 해피오더 이미지 버튼 로딩
        private bool BtnImageDisplay(int iRowNum)
        {
            bool bRet = false;
            try
            {
                try
                {
                    //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 start
                    //기존
                    //BtnImageClear();
                    //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 end
                    
                    //헤더 데이터 가져오기 
                    Column.TR_HPORD.HPORD_HEADER header = null;
                    header = GetHappyHeader("00", iRowNum);

                    if (header == null) return bRet;

                    // 버튼 활성화 변경 
                    BtnImageVisiable(header.OrderType, header.OrderStatus);

                    // 버튼 이미지 로딩
                    BtnImageLoading(header.OrderType, header.OrderStatus);

                    bRet = true;
                }
                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);
                }
            }
            finally
            {
                ReadyToBarcode();
            }
            return bRet;
        }
        #endregion
        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
        #region 해피오더 상태변경 버튼 활성화
        private void BtnImageVisiable(string pOrderType, string pOrderStatus)
        {
            try
            {
                //#17472 해피오더)직접배달 상태 추가 start
                nm_pnl.Visible = false;
                //#17472 해피오더)직접배달 상태 추가 end

                if ((PosMenuKeyIn == "00" && pOrderType != "5" && pOrderType != "4") || PosMenuKeyIn == "01" || PosMenuKeyIn == "04" || PosMenuKeyIn == "03")
                {
                    //OPT044: 해피오더 사전예약 픽업대기 사용 여부(0:사용안함, 1:사용함)
                    if ((PosMenuKeyIn == "00" && pOrderType == "6") || PosMenuKeyIn == "03" && PosMstManager.GetPosOption(POS_OPTION.OPT044) != "1")
                    {
                        btn_01.Visible = true;//주문접수
                        btn_02.Visible = true;//->
                        btn_03.Visible = true;//상품준비
                        btn_04.Visible = false;//->
                        btn_05.Visible = false;//픽업대기
                        btn_06.Visible = true;//->
                        btn_07.Visible = true;//픽업완료
                        btn_08.Visible = false;//->
                        btn_09.Visible = false;//???       


                        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 start
                        btn_01.Enabled = true;//주문접수
                        btn_03.Enabled = true;//상품준비
                        btn_05.Enabled = false;//픽업대기
                        btn_07.Enabled = true;//픽업완료
                        btn_09.Enabled = false;//???    
                        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 end
                    }
                    else
                    {
                        btn_01.Visible = true;//주문접수
                        btn_02.Visible = true;//->
                        btn_03.Visible = true;//상품준비
                        btn_04.Visible = true;//->
                        btn_05.Visible = true;//픽업대기
                        btn_06.Visible = true;//->
                        btn_07.Visible = true;//픽업완료
                        btn_08.Visible = false;//->
                        btn_09.Visible = false;//??? 

                        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 start
                        btn_01.Enabled = true;//주문접수
                        btn_03.Enabled = true;//상품준비
                        btn_05.Enabled = true;//픽업대기
                        btn_07.Enabled = true;//픽업완료
                        btn_09.Enabled = false;//???   
                        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 end
                    }

                    // 주문취소
                    btnOrderCancel.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0429);
                    btnOrderCancel.Visible = true;

                    ////grayber@20171123 해피오더 직접배달 start
                    //if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                    //{
                    //    btnStatus4.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1080);
                    //    btnStatus4.Visible = false;
                    //}
                    ////grayber@20171123 해피오더 직접배달 end
                }
                else if ((PosMenuKeyIn == "00" && (pOrderType == "4" || pOrderType == "5")) || PosMenuKeyIn == "02" || PosMenuKeyIn == "05")   // 배달 or 오더폼 배달 
                {
                    // OPT045: 해피오더 딜리버리 상품준비 사용 여부(0:사용안함, 1:사용함)
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT045) == "1")
                    {
                        btn_01.Visible = true;//주문접수
                        btn_02.Visible = true;//->
                        btn_03.Visible = true;//상품준비
                        btn_04.Visible = true;//->
                        btn_05.Visible = true;//배달요청
                        btn_06.Visible = true;//->
                        btn_07.Visible = true;//배달 중

                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20180928
                        //기존
                        //btn_08.Visible = true;//->
                        //btn_09.Visible = true;//배달완료
                        //변경
                        btn_08.Visible = false;//->
                        btn_09.Visible = false;//배달완료
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20180928

                        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 start
                        btn_01.Enabled = true;//주문접수
                        btn_03.Enabled = true;//상품준비
                        btn_05.Enabled = true;//배달요청
                        btn_07.Enabled = true;//배달 중
                        btn_09.Enabled = false;//배달완료  
                        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 end
                    }
                    else
                    {
                        btn_01.Visible = true;//주문접수
                        btn_02.Visible = false;//->
                        btn_03.Visible = false;//상품준비
                        btn_04.Visible = true;//->
                        btn_05.Visible = true;//배달요청
                        btn_06.Visible = true;//->
                        btn_07.Visible = true;//배달 중 

                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20180928
                        //기존
                        //btn_08.Visible = true;//->
                        //btn_09.Visible = true;//배달완료
                        //변경
                        btn_08.Visible = false;//->
                        btn_09.Visible = false;//배달완료
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20180928


                        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 start
                        btn_01.Enabled = true;//주문접수
                        btn_03.Enabled = false;//상품준비
                        btn_05.Enabled = true;//배달요청
                        btn_07.Enabled = true;//배달 중
                        btn_09.Enabled = false;//배달완료 
                        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 end
                    }

                    // 주문취소
                    btnOrderCancel.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0429);
                    btnOrderCancel.Visible = true;
                }

                if (PosMenuKeyIn == "04" || PosMenuKeyIn == "05")
                {
                    // 오더폼 내점 or 오더폼 배달 일 경우 중량출력 버튼은 숨김
                    btnWeightPrint.Visible = false;
                }
                else
                {
                    //OPT314: 해피오더 I/C 중량 출력 여부(0:사용안함, 1:사용함)
                    if (PosMstManager.GetPosOption(POS_OPTION.OPT314) == "1")
                    {
                        btnWeightPrint.Visible = true;
                    }
                    else
                    {
                        btnWeightPrint.Visible = 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);
            }
        }
        #endregion
        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
        #region 해피오더 상태변경 버튼 이미지 로딩
        private void BtnImageLoading(string pOrderType, string pOrderStatus)
        {
            try
            {
                string sHappyOrderBtnImg = BaseCom.NxImgPath + @"HappyOrderBtnImage\";
                string sExtension = ".png";
                string sGifExtension = ".gif";

                //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 start

                bool bWin7Excess = OS_Check();

                if (bWin7Excess == true)
                {
                    sGifExtension = ".gif";
                }
                else
                {
                    sGifExtension = ".png";
                }
                //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 end

                if (pOrderType == "4" || pOrderType == "5")
                {
                    lb_title.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0423);//배달

                    btn_02.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
                    btn_04.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
                    btn_06.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20180928
                    //기존
                    //btn_08.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
                    //변경
                    btn_08.Image = null;
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20180928
                    
                    btn_01.Image = ImageManager.GetImage(sHappyOrderBtnImg, "1_off" + sExtension);//주문접수
                    btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "2_off" + sExtension);//상품준비
                    btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_off" + sExtension);//배달요청
                    btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "4_off" + sExtension);//배달중
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20180928
                    //기존
                    //btn_09.Image = ImageManager.GetImage(sHappyOrderBtnImg, "5_off" + sExtension);//배달완료
                    //변경
                    btn_09.Image = null;
                    //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20180928

                    //#17472 해피오더)직접배달 상태 추가 start
                    nm_btn_1.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_1_on" + sExtension);//배달요청
                    nm_btn_2.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_2_off" + sExtension);//배달중
                    nm_btn_3.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_3_on" + sExtension);//직접배달
                    nm_btn_4.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_4_off" + sExtension);//배달완료
                    nm_btn_5.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);//직접배달
                    nm_btn_6.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);//배달완료
                    //#17472 해피오더)직접배달 상태 추가 end


                    // 주문접수
                    if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)
                    {
                        //주문접수
                        btn_01.Image = ImageManager.GetImage(sHappyOrderBtnImg, "1_done" + sExtension);
                        // ->                                
                        btn_02.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);


                        //#17472 해피오더)직접배달 상태 추가 start
                        #region 기존소스
                        ////#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 start
                        ////기존
                        ///*
                        ////#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20180927
                        ////상품준비 미사용시 주문접수 건은 배달요청이 다음 단계로 동작 하도록 수정
                        ////기존
                        ////상품준비                           
                        ////btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "2_do" + sGifExtension);                     
                        ////변경
                        //if (PosMstManager.GetPosOption(POS_OPTION.OPT045) == "1")
                        //{
                        //    //상품준비                           
                        //    btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "2_do" + sGifExtension);
                        //}
                        //else
                        //{
                        //    //배달요청                           
                        //    btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_do" + sGifExtension);
                        //}
                        ////#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20180927
                        //*/
                        //
                        ////변경
                        //if (bWin7Excess == true)
                        //{
                        //    if (PosMstManager.GetPosOption(POS_OPTION.OPT045) == "1")
                        //    {
                        //        //상품준비                           
                        //        btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "2_do" + sGifExtension);
                        //    }
                        //    else
                        //    {
                        //        //배달요청                           
                        //        btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_do" + sGifExtension);
                        //    }
                        //}
                        //else
                        //{
                        //    if (PosMstManager.GetPosOption(POS_OPTION.OPT045) == "1")
                        //    {
                        //        //상품준비                           
                        //        btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "2_on" + sGifExtension);
                        //    }
                        //    else
                        //    {
                        //        //배달요청                           
                        //        btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_on" + sGifExtension);
                        //    }
                        //}
                        ////#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 end
                        //if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                        //{
                        //    // 직접배달 버튼 활성화...
                        //}
                        #endregion 기존소스

                        #region 변경소스
                        if (bWin7Excess == true)
                        {
                            if (PosMstManager.GetPosOption(POS_OPTION.OPT045) == "1")
                            {
                                //상품준비                           
                                btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "2_do" + sGifExtension);
                            }
                            else
                            {
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                                {
                                    nm_btn_1.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_1_do" + sGifExtension);//배달요청
                                    nm_btn_3.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_3_do" + sGifExtension);//직접배달

                                    btn_05.Visible = false;
                                    btn_06.Visible = false;
                                    btn_07.Visible = false;
                                    btn_08.Visible = false;
                                    btn_09.Visible = false;

                                    nm_pnl.Visible = true;
                                }
                                else
                                {
                                    //배달요청                           
                                    btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_do" + sGifExtension);
                                    
                                    // 
                                    nm_pnl.Visible = false;
                                }
                            }
                        }
                        else
                        {
                            if (PosMstManager.GetPosOption(POS_OPTION.OPT045) == "1")
                            {
                                //상품준비                           
                                btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "2_on" + sGifExtension);
                            }
                            else
                            {
                                if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                                {
                                    nm_btn_1.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_1_on" + sGifExtension);//배달요청
                                    nm_btn_3.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_3_on" + sGifExtension);//직접배달

                                    btn_05.Visible = false;
                                    btn_06.Visible = false;
                                    btn_07.Visible = false;
                                    btn_08.Visible = false;
                                    btn_09.Visible = false;

                                    nm_pnl.Visible = true;
                                }
                                else
                                {
                                    //배달요청                           
                                    btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_on" + sGifExtension);

                                    nm_pnl.Visible = false;
                                }
                            }
                        }
                        #endregion 변경소스
                        //#17472 해피오더)직접배달 상태 추가 end
                    }
                    // 상품준비
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                    {
                        //상품준비
                        btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "2_done" + sExtension);
                        // ->                                
                        btn_04.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);

                        //#17472 해피오더)직접배달 상태 추가 start
                        #region 기존소스
                        ////#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 start
                        ////기존
                        ///*
                        ////배달요청                           
                        //btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_do" + sGifExtension);
                        //*/
                        //
                        ////변경
                        //if (bWin7Excess == true)
                        //{
                        //    //배달요청                           
                        //    btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_do" + sGifExtension);
                        //}
                        //else
                        //{
                        //    //배달요청                           
                        //    btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_on" + sGifExtension);
                        //}
                        ////#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 end
                        //
                        //if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                        //{
                        //    // 직접배달 버튼 활성화...
                        //}
                        #endregion 기존소스

                        #region 변경소스
                        if (bWin7Excess == true)
                        {
                            if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                            {
                                nm_btn_1.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_1_do" + sGifExtension);//배달요청
                                nm_btn_3.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_3_do" + sGifExtension);//직접배달

                                btn_05.Visible = false;
                                btn_06.Visible = false;
                                btn_07.Visible = false;
                                btn_08.Visible = false;
                                btn_09.Visible = false;

                                nm_pnl.Visible = true;
                            }
                            else
                            {
                                //배달요청                           
                                btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_do" + sGifExtension);

                                nm_pnl.Visible = false;
                            }
                        }
                        else
                        {
                            if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                            {
                                nm_btn_1.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_1_on" + sGifExtension);//배달요청
                                nm_btn_3.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_3_on" + sGifExtension);//직접배달

                                btn_05.Visible = false;
                                btn_06.Visible = false;
                                btn_07.Visible = false;
                                btn_08.Visible = false;
                                btn_09.Visible = false;

                                nm_pnl.Visible = true;
                            }
                            else
                            {
                                //배달요청                           
                                btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_on" + sGifExtension);

                                nm_pnl.Visible = false;
                            }
                        }
                        #endregion 변경소스
                        //#17472 해피오더)직접배달 상태 추가 end
                    }
                    // 배달요청
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ || pOrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_REG)
                    {
                        //배달요청
                        btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "3_done" + sExtension);
                        // ->                                
                        btn_06.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);

                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 start
                        //기존
                        /*
                        //배달중                             
                        btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "4_do" + sGifExtension);
                        */

                        //변경
                        if (bWin7Excess == true)
                        {
                            //배달중                             
                            btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "4_do" + sGifExtension);
                        }
                        else
                        {
                            //배달중                             
                            btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "4_on" + sGifExtension);
                        }
                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 end
                    }
                    // 배달중
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_ING)
                    {
                        //배달중
                        btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "4_done" + sExtension);

                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20180928
                        //기존
                        /*
                        // ->                                
                        btn_08.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);
                        //배달완료                           
                        btn_09.Image = ImageManager.GetImage(sHappyOrderBtnImg, "5_do" + sGifExtension);
                        */
                        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20180928
                    }
                    // 직접배달
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT)
                    {
                        //#17472 해피오더)직접배달 상태 추가 start
                        #region 기존소스
                        ////#17197 판매POS 직접배달 옵션처리 요청 件 start
                        //if (bWin7Excess == true)
                        //{
                        //    //배달완료                           
                        //    btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "5_do" + sGifExtension);
                        //}
                        //else
                        //{
                        //    //배달완료                            
                        //    btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "5_on" + sGifExtension);
                        //}
                        ////#17197 판매POS 직접배달 옵션처리 요청 件 end
                        //
                        ////if (PosMstManager.GetPosOption(POS_OPTION.OPT550) == "1")
                        ////{
                        ////    //배달완료
                        ////    btn_07.Image = ImageManager.GetImage(@"C:\SPC\POS\IMAGE\HappyOrderBtnImage\", "5_done.jpg");
                        ////}
                        ////else
                        ////{
                        ////    //배달중
                        ////    btn_07.Image = ImageManager.GetImage(@"C:\SPC\POS\IMAGE\HappyOrderBtnImage\", "4_done.jpg");
                        ////}
                        //
                        ////배달중
                        ////btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "4_done" + sExtension);
                        //
                        ////#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20180928
                        ////기존
                        ///*
                        //// ->                                
                        //btn_08.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);
                        ////배달완료                           
                        //btn_09.Image = ImageManager.GetImage(sHappyOrderBtnImg, "5_do" + sGifExtension);
                        //*/
                        ////#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20180928
                        #endregion 기존소스

                        #region 변경소스
                        //직접배달
                        btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "10_done" + sExtension);
                        // ->                                
                        btn_06.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);

                        if (bWin7Excess == true)
                        {
                            //배달완료                           
                            btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "5_do" + sGifExtension);
                        }
                        else
                        {
                            //배달완료                            
                            btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "5_on" + sGifExtension);
                        }
                        #endregion 변경소스
                        //#17472 해피오더)직접배달 상태 추가 end
                    }
                    // 배달완료
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.DELIVERY_COMPLETED)
                    {
                        //
                    }
                }
                else
                {
                    //픽업
                    if (pOrderType == "6")
                    {
                        lb_title.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0908);
                    }
                    else
                    {
                        lb_title.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0832);
                    }

                    btn_02.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
                    btn_04.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
                    btn_06.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
                    btn_08.Image = null;

                    btn_01.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p1_off" + sExtension); //주문접수
                    btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p2_off" + sExtension); //상품준비
                    btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p3_off" + sExtension); //픽업대기
                    btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p5_off" + sExtension); //픽업완료
                    btn_09.Image = null;


                    //주문접수 
                    if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.ORDER_REG)
                    {
                        //주문접수
                        btn_01.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p1_done" + sExtension);
                        // ->                                
                        btn_02.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);

                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 start
                        //기존
                        /*
                        //상품준비                           
                        btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p2_do" + sGifExtension);
                        */

                        //변경
                        if (bWin7Excess == true)
                        {
                            //상품준비                           
                            btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p2_do" + sGifExtension);
                        }
                        else
                        {
                            //상품준비                           
                            btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p2_on" + sGifExtension);
                        }
                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 end
                    }
                    // 상품준비
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.PRODUCT_READY)
                    {
                        //상품준비
                        btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p2_done" + sExtension);
                        // ->                                
                        btn_04.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);


                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 start
                        //기존
                        /*
                        //픽업대기                           
                        btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p3_do" + sGifExtension);
                        */

                        //변경
                        if (bWin7Excess == true)
                        {
                            //픽업대기                           
                            btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p3_do" + sGifExtension);
                        }
                        else
                        {
                            //픽업대기                           
                            btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p3_on" + sGifExtension);
                        }
                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 end

                    }
                    // 사전예약
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.PRE_RESERVED)
                    {

                    }
                    // 픽업대기
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT)
                    {
                        //픽업대기
                        btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p3_done" + sExtension);
                        // ->                                
                        btn_06.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);

                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 start
                        //기존
                        /*
                        //픽업완료                           
                        btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p5_do" + sGifExtension);
                        */

                        //변경
                        if (bWin7Excess == true)
                        {
                            //픽업완료                           
                            btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p5_do" + sGifExtension);
                        }
                        else
                        {
                            //픽업완료                           
                            btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p5_on" + sGifExtension);
                        }
                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 end
                    }
                    // 픽업완료
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED)
                    {
                        //
                    }
                    // 픽업지연
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY)
                    {
                        //픽업지연
                        btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p3_done" + sExtension);
                        // ->                                
                        btn_06.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_sky" + sExtension);


                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 start
                        //기존
                        /*
                        //픽업지연완료                       
                        btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p6_do" + sGifExtension);
                        */

                        //변경
                        if (bWin7Excess == true)
                        {
                            //픽업지연완료                       
                            btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p6_do" + sGifExtension);
                        }
                        else
                        {
                            //픽업지연완료                       
                            btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p6_on" + sGifExtension);
                        }
                        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 end
                    }
                    // 픽업지연완료
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.PICKUP_COMPLETED2)
                    {
                        //
                    }
                    // 픽업지연미픽업
                    else if (pOrderStatus == ItemConst.HAPPYORDER_STATUS.NO_PICKUP_AND_DELAY)
                    {

                    }
                }
            }
            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);
            }
        }
        #endregion
        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
        #region 해피오더 상태변경 버튼 이미지 클리어
        private void BtnImageClear()
        {
            try
            {
                //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 start
                lb_title.Text = "";
                //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 end

                btn_01.Visible = false;
                btn_02.Visible = false;//
                btn_03.Visible = false;
                btn_04.Visible = false;//
                btn_05.Visible = false;
                btn_06.Visible = false;//
                btn_07.Visible = false;
                btn_08.Visible = false;//
                btn_09.Visible = false;

                //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 start
                //기존
                //btn_02.Enabled = false;
                //btn_04.Enabled = false;
                //btn_06.Enabled = false;
                //btn_08.Enabled = false;
                //btn_09.Enabled = false;

                //변경
                btn_01.Enabled = false;
                btn_02.Enabled = false;
                btn_03.Enabled = false;
                btn_04.Enabled = false;
                btn_05.Enabled = false;
                btn_06.Enabled = false;
                btn_07.Enabled = false;
                btn_08.Enabled = false;
                btn_09.Enabled = false;
                //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 end

                btnOrderCancel.Visible = false;//주문취소
                btnWeightPrint.Visible = false;//중량출력

                btn_01.Image = null;
                btn_02.Image = null;
                btn_03.Image = null;
                btn_04.Image = null;
                btn_05.Image = null;
                btn_06.Image = null;
                btn_07.Image = null;
                btn_08.Image = null;
                btn_09.Image = null;

                btn_01.DefaultImage = null;
                btn_02.DefaultImage = null;
                btn_03.DefaultImage = null;
                btn_04.DefaultImage = null;
                btn_05.DefaultImage = null;
                btn_06.DefaultImage = null;
                btn_07.DefaultImage = null;
                btn_08.DefaultImage = null;
                btn_09.DefaultImage = null;

                btn_01.ClickImage = null;
                btn_02.ClickImage = null;
                btn_03.ClickImage = null;
                btn_04.ClickImage = null;
                btn_05.ClickImage = null;
                btn_06.ClickImage = null;
                btn_07.ClickImage = null;
                btn_08.ClickImage = null;
                btn_09.ClickImage = null;

                //#17472 해피오더)직접배달 상태 추가 start

                nm_btn_1.Visible = true;
                nm_btn_2.Visible = true;
                nm_btn_3.Visible = true;
                nm_btn_4.Visible = true;
                nm_btn_5.Visible = true;
                nm_btn_6.Visible = true;

                nm_btn_1.Image = null;
                nm_btn_2.Image = null;
                nm_btn_3.Image = null;
                nm_btn_4.Image = null;
                nm_btn_5.Image = null;
                nm_btn_6.Image = null;

                nm_btn_1.DefaultImage = null;
                nm_btn_2.DefaultImage = null;
                nm_btn_3.DefaultImage = null;
                nm_btn_4.DefaultImage = null;
                nm_btn_5.DefaultImage = null;
                nm_btn_6.DefaultImage = null;

                nm_btn_1.ClickImage = null;
                nm_btn_2.ClickImage = null;
                nm_btn_3.ClickImage = null;
                nm_btn_4.ClickImage = null;
                nm_btn_5.ClickImage = null;
                nm_btn_6.ClickImage = null;

                //#17472 해피오더)직접배달 상태 추가 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);
            }
        }
        #endregion
        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start
        #region 해피오더 키값구하기 
        private string OrderStatusKey(string pOrderStatus)
        {
            string sOrderStatusKey = "";
            try
            {
                foreach (var item in htStatus.Keys)
                {
                    if (pOrderStatus == htStatus[item].ToString())
                    {
                        sOrderStatusKey = item.ToString();
                        break;
                    }
                }
            }
            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 sOrderStatusKey;
        }
        #endregion 
        //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end

        private void frmHappyOrderList_Shown(object sender, EventArgs e)
        {
            //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 start, 20180928

            // 수동으로 해피오더 리스트 팝업 띄울 시 라인색상 표현안되는 현상 수정
            // load --> shown 위치이동
            
            // 상태 변경 후 리스트 재조회
            btnProc_Click(btnSearch, null);

            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20181012
            #region 기존소스
            /*
            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
            #region 해피오더 바코드 리딩 시 자동 완료 처리

            sSearchRt = false;
            sSearchOrderNum = "";
            sSearchOrderType = "";

            if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT553), "0") == "1")
            {
                //test
                //m_sInPutData = "180621935835"; // m_sInPutData.Trim();
                //m_sInPutData = "180716418415"; // m_sInPutData.Trim();
                //m_sInPutData = "180621935809"; // m_sInPutData.Trim();

                if (m_sInPutData != "")
                {
                    // 자동조회
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20180829
                    //sSearchOrderNum = m_sInPutData.Trim();
                    //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20180829
                    tbOrderBarcode.Text = m_sInPutData.Trim();
                    tbOrderBarcode_KeyDown(tbOrderBarcode, new KeyEventArgs(Keys.Enter));

                    if (sSearchRt == true)
                    {
                        // 안내팝업 오픈
                        string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD_MSG, m_sPosMenuKeyIn, sSearchOrderNum, sSearchOrderType });

                        // 예 선택 시
                        if (sRet == UserCom.RST_OK)
                        {
                            UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                                 System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                                                 System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                                                 "[주문번호: " + sSearchOrderNum + "주문타입: " + sSearchOrderType + "] 자동 완료처리에 대해 고객동의!");

                            btnStatus_Click(btnStatus3, null);
                        }
                    }

                    // 포커스조정
                    ReadyToBarcode();
                }
            }
            #endregion
            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end
            */
            #endregion

            //변경
            //HappOrderReadingAutoComplete(m_sInPutData);
            if (m_sInPutData != "")
            {
                tbOrderBarcode.Text = m_sInPutData.Trim();
                tbOrderBarcode_KeyDown(tbOrderBarcode, new KeyEventArgs(Keys.Enter));
            }
            //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20181012
          
            //#16756 판매POS 해피오더 주문내역 상태 변경 디자인 변경 end, 20180928            
        }

        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start - 20181012
        #region 해피오더 바코드 리딩 시 자동 완료 처리
        private void HappOrderReadingAutoComplete(bool OrderSearch, string Ordernum, string Ordertype)
        {
            try
            {
                if (OrderSearch == false) return;
                if (Ordernum.Trim() == "") return;
                if (Ordertype.Trim() == "") return;
                if (CmUtil.IsNull(PosMstManager.GetPosOption(POS_OPTION.OPT553), "0") != "1") return;

                //// 자동조회
                //tbOrderBarcode.Text = InputOrdernum.Trim();
                //tbOrderBarcode_KeyDown(tbOrderBarcode, new KeyEventArgs(Keys.Enter));

                //if (OrderSearch == true && Ordernum.Trim() != "" && Ordertype.Trim() != "")
                //{
                    // 안내팝업 오픈
                    string sRet = WinSale.ShowForm(new string[] { FormManager.FORM_SAL_HPORD_MSG, m_sPosMenuKeyIn, Ordernum, Ordertype });

                    // 예 선택 시
                    if (sRet == UserCom.RST_OK)
                    {
                        UserLog.WriteLogFile(UserCom.LOG_IOS, System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
                                             System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
                                             System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
                                             "[주문번호: " + Ordernum + "주문타입: " + Ordertype + "] 자동 완료처리에 대해 고객동의!");

                        if ((PosMenuKeyIn == "00" && (Ordertype == "4" || Ordertype == "5")) || PosMenuKeyIn == "02")
                        {
                            btnStatus_Click(btn_07, null);
                        }
                        else
                        {
                            btnStatus_Click(btn_07, null);
                        }                        
                    }
                //}
                // 포커스조정
                ReadyToBarcode();
            }
            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);
            }
        }
        #endregion
        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end - 20181012

        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 start
        #region OS가 WIN7 미만이면 GIF를 PNG로 변경하기 
        private bool OS_Check()
        {
            bool bRet = false;
            try
            {
                OperatingSystem OS = Environment.OSVersion;
                //if (OS.Platform == PlatformID.Win32NT && OS.Version.Major >= 6 && OS.Version.Minor >= 1)
                if (OS.Version.Major >= 6 && OS.Version.Minor >= 1)
                {
                    // win 7 이상이면 true, 아니면 false
                    bRet = true;
                }
            }
            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 bRet;
        }
        #endregion
        //#20181001 OS가 WIN7 미만이면 GIF를 PNG로 변경하기 end

        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 start
        #region 상태변경 이미지 디폴트 값 
        private void BtnImageDefault()
        {
            //디폴트는 픽업기준으로 하얀색 버튼 보이도록 설정
            lb_title.Text = MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_0832);

            btn_01.Visible = true;//주문접수
            btn_02.Visible = true;//->
            btn_03.Visible = true;//상품준비
            btn_04.Visible = true;//->
            btn_05.Visible = true;//픽업대기
            btn_06.Visible = true;//->
            btn_07.Visible = true;//픽업완료
            btn_08.Visible = false;//->
            btn_09.Visible = false;//???   

            btn_02.Enabled = false;
            btn_04.Enabled = false;
            btn_06.Enabled = false;
            btn_08.Enabled = false;


            string sExtension = ".png";
            string sHappyOrderBtnImg = BaseCom.NxImgPath + @"HappyOrderBtnImage\";

            btn_02.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
            btn_04.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
            btn_06.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);// ->
            btn_08.Image = null;

            btn_01.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p1_off" + sExtension); //주문접수
            btn_03.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p2_off" + sExtension); //상품준비
            btn_05.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p3_off" + sExtension); //픽업대기
            btn_07.Image = ImageManager.GetImage(sHappyOrderBtnImg, "p5_off" + sExtension); //픽업완료
            btn_09.Image = null;


            //#17472 해피오더)직접배달 상태 추가 start
            nm_btn_2.Enabled = false;
            nm_btn_4.Enabled = false;
            nm_btn_5.Enabled = false;
            nm_btn_6.Enabled = false; 

            nm_pnl.Visible = false;

            nm_btn_1.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_1_on" + sExtension);
            nm_btn_2.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_2_off" + sExtension);
            nm_btn_3.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_3_on" + sExtension);
            nm_btn_4.Image = ImageManager.GetImage(sHappyOrderBtnImg, "nm_btn_4_off" + sExtension);
            nm_btn_5.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);
            nm_btn_6.Image = ImageManager.GetImage(sHappyOrderBtnImg, "arrow_gray" + sExtension);

            nm_pnl.Height = pnl_Image.Height;

            //#17472 해피오더)직접배달 상태 추가 end
        }
        #endregion
        //#17292 PB 부산송정 - 해피오더 내역창 버튼 깜박이는 시점 관련 end
    }
}