using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

using Cosmos.BaseFrame;
using Cosmos.UserFrame;
using Cosmos.Common;
using Cosmos.CommonManager;

namespace Cosmos.Network
{
    class CheckOverDetail : ICheckOverUs
    {
        private PosStatus m_cPosStatus = new PosStatus();                               // 기본정보 참조
        private StateServer StateObject = (StateServer)StateServer.GetInstance();       // StateObject : StateServer Object (객체)

        /// <summary>
        /// 생성자
        /// </summary>
        public CheckOverDetail()
        {
            m_cPosStatus = (PosStatus)StateObject.POS;
        }

        /// <summary>
        /// 해피오더 - 주문 상태별 건수 조회
        /// </summary>
        /// <param name="sRespData"></param>
        /// <returns></returns>
        ///grayber@20180306 해피오더 주문가능 상태 추가 start - 함수 인자 추가 SelectHappyOrderCountByOrderStatus HashTable 인자추가
        /// 기존
        ///public string SelectHappyOrderCountByOrderStatus(Hashtable[] htOrderStatus)
        /// 변경
        public string SelectHappyOrderCountByOrderStatus(Hashtable[] htOrderStatus , ref Hashtable htRspData)
        //grayber@20180306 해피오더 주문가능 상태 추가 end
        {
            // 주문접수-일반
            int iOrderRegNormalCnt = 0;
            // 주문접수-배달
            int iOrderRegDeliveryCnt = 0;
            // 주문접수-예약
            int iOrderRegReservedCnt = 0;
            // 총 주문접수 건수
            int iTotOrderRegCnt = 0;
            int iProductReadyCnt = 0;
            int iPreReservedCnt = 0;
            int iPickupWaitCnt = 0;
            int iPickupDelayCnt = 0;
            int iNoPickupAndDelayCnt = 0;
            int iDeliveryRequestCnt = 0;
            int iDeliveryRegCnt = 0;
            int iDeliveryingCnt = 0;

            //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
            int iDeliveryDirectCnt = 0;
            //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end

            //#20180605 해피오더 개선 start
             
            //즉시주문, 예약주문 알림
            //즉시픽업 건수
            int iOrdCnt_Direct = 0;
            //즉시배달 건수
            int iOrdCnt_Reserv = 0;
             
            //#20180605 해피오더 개선 end

            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
            int iDeliveryProductReadyCnt = 0;
            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end

            string sRet = UserCom.RST_ERR;
            try
            {
                foreach(Hashtable htData in htOrderStatus)
                {
                    string sOrderType = htData["type"].ToString();

                    switch(htData["status"].ToString())
                    {
                        case ItemConst.HAPPYORDER_STATUS.ORDER_REG:             // "4" : 주문접수
                            // 일반 주문건수 계산
                            if(sOrderType == ItemConst.ORDER_TYPE.SHOP_DIRECT ||
                               sOrderType == ItemConst.ORDER_TYPE.SHOP_TIME)
                            {
                                iOrderRegNormalCnt += int.Parse(htData["count"].ToString());
                            }
                            // 배달 주문건수 계산
                            else if(sOrderType == ItemConst.ORDER_TYPE.INNER_DELIVERY ||
                                    sOrderType == ItemConst.ORDER_TYPE.OUTTER_DELIVERY)
                            {
                                iOrderRegDeliveryCnt += int.Parse(htData["count"].ToString());
                            }
                            // 예약 주문건수 계산
                            else if(sOrderType == ItemConst.ORDER_TYPE.RESERVED_ORDER ||
                                    sOrderType == ItemConst.ORDER_TYPE.PRE_RESERVED)
                            {
                                iOrderRegReservedCnt += int.Parse(htData["count"].ToString());
                            }

                            //#20180605 해피오더 개선 start
                            //즉시주문, 예약주문 알림
                            //즉시픽업 건수 계산
                            else if(sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER)
                            {
                                iOrdCnt_Direct += int.Parse(htData["count"].ToString());
                            }
                            //즉시배달 건수 계산
                            else if(sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)
                            {
                                iOrdCnt_Reserv += int.Parse(htData["count"].ToString());
                            }
                            //#20180605 해피오더 개선 end

                            break;
                        case ItemConst.HAPPYORDER_STATUS.PRODUCT_READY:         // "5" : 상품준비
                            //#20180905 즉시픽업,즉시배달 제외 start
                            if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
                            //#20180905 즉시픽업,즉시배달 제외 end
                            

                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
                            //기존
                            //iProductReadyCnt += int.Parse(htData["count"].ToString());
                            //변경
                            if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY)
                            {
                                iProductReadyCnt += int.Parse(htData["count"].ToString());
                            }
                            else
                            {
                                iDeliveryProductReadyCnt += int.Parse(htData["count"].ToString());
                            }
                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end

                            break;
                        case ItemConst.HAPPYORDER_STATUS.PRE_RESERVED:          // "6" : 사전예약
                            //#20180905 즉시픽업,즉시배달 제외 start
                            if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
                            //#20180905 즉시픽업,즉시배달 제외 end
                            iPreReservedCnt += int.Parse(htData["count"].ToString());
                            break;
                        case ItemConst.HAPPYORDER_STATUS.PICKUP_WAIT:           // "7" : 픽업대기
                            //#20180905 즉시픽업,즉시배달 제외 start
                            if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
                            //#20180905 즉시픽업,즉시배달 제외 end
                            iPickupWaitCnt += int.Parse(htData["count"].ToString());
                            break;
                        case ItemConst.HAPPYORDER_STATUS.PICKUP_DELAY:          // "2000" : 픽업지연
                            //#20180905 즉시픽업,즉시배달 제외 start
                            if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
                            //#20180905 즉시픽업,즉시배달 제외 end
                            iPickupDelayCnt += int.Parse(htData["count"].ToString());
                            break;
                        case ItemConst.HAPPYORDER_STATUS.NO_PICKUP_AND_DELAY:   // "2018" : 픽업지연미픽업
                            //#20180905 즉시픽업,즉시배달 제외 start
                            if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
                            //#20180905 즉시픽업,즉시배달 제외 end
                            iNoPickupAndDelayCnt += int.Parse(htData["count"].ToString());
                            break;
                        case ItemConst.HAPPYORDER_STATUS.DELIVERY_REQ:          // "9004" : 배달요청
                            //#20180905 즉시픽업,즉시배달 제외 start
                            if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
                            //#20180905 즉시픽업,즉시배달 제외 end

                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
                            if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue;
                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end

                            iDeliveryRequestCnt += int.Parse(htData["count"].ToString());
                            break;
                        case ItemConst.HAPPYORDER_STATUS.DELIVERY_REG:          // "9005" : 배달접수
                            //#20180905 즉시픽업,즉시배달 제외 start
                            if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
                            //#20180905 즉시픽업,즉시배달 제외 end

                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
                            if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue;
                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end

                            iDeliveryRegCnt += int.Parse(htData["count"].ToString());
                            break;
                        case ItemConst.HAPPYORDER_STATUS.DELIVERY_ING:          // "9007" : 배달중
                            //#20180905 즉시픽업,즉시배달 제외 start
                            if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
                            //#20180905 즉시픽업,즉시배달 제외 end

                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
                            if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue;
                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end

                            iDeliveryingCnt += int.Parse(htData["count"].ToString());
                            break;
                        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
                        case ItemConst.HAPPYORDER_STATUS.DELIVERY_DIRECT:          // "9003" : 직접배달
                            //#20180905 즉시픽업,즉시배달 제외 start
                            if ((sOrderType == ItemConst.ORDER_TYPE.DIRECT_ORDER) || (sOrderType == ItemConst.ORDER_TYPE.RESERV_ORDER)) continue;
                            //#20180905 즉시픽업,즉시배달 제외 end

                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
                            if (sOrderType != ItemConst.ORDER_TYPE.OUTTER_DELIVERY && sOrderType != ItemConst.ORDER_TYPE.INNER_DELIVERY) continue;
                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end

                            iDeliveryDirectCnt += int.Parse(htData["count"].ToString());
                            break;
                        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end
                    }
                }

                iTotOrderRegCnt = iOrderRegNormalCnt + iOrderRegDeliveryCnt + iOrderRegReservedCnt;

                // 신규 주문 알림 팝업 Show 여부
                // 최초 신규 주문 건수 가져올 시 주문 알림 팝업 Show - 문성진D 요청(BR, PC 합의 사항)
                //if((m_cPosStatus.Sale.HappyOrderRegCnt != string.Empty && int.Parse(m_cPosStatus.Sale.HappyOrderRegCnt) != iOrderRegCnt) ||
                //   (m_cPosStatus.Sale.HappyOrderPickupDelayCnt != string.Empty && int.Parse(m_cPosStatus.Sale.HappyOrderPickupDelayCnt) != iPickupDelayCnt))
                // 신규 주문 건수 타입 별 변경 체크
                //if ((int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderTotRegCnt, "0")) != iTotOrderRegCnt) ||
                //    (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderPickupDelayCnt, "0")) != iPickupDelayCnt))
                // PC, BRK 에 따라 상단 문구와 팝업알림 로직이 달라짐(2017/03/14)
                //if ((int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderRegCnt, "0")) != iOrderRegNormalCnt) ||
                //    (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRegCnt, "0")) != iOrderRegDeliveryCnt) ||
                //    (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderReservedRegCnt, "0")) != iOrderRegReservedCnt))
                //{
                //    m_cPosStatus.Sale.HappyOrderAlarm = true;
                //}
                // 연습모드일 경우에는 해피오더 알림팝업이 뜨지 않도록 처리(20170619)
                if (m_cPosStatus.Base.TrainingFlag != "1")
                {
                    if (m_cPosStatus.Mst.CorpDiv == ItemConst.CORP_DIV.PC)
                    {
                        // 신규주문 건수, 픽업미처리 건수, 배달미처리 건수 변경 시 팝업 알림
                        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
                        //기존
                        /*
                        if ((int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderTotRegCnt, "0")) != iOrderRegNormalCnt + iOrderRegReservedCnt + iOrderRegDeliveryCnt) ||
                           (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderProductReadyCnt, "0")) + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderPickupWaitCnt, "0")) != iProductReadyCnt + iPickupWaitCnt) ||
                           (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRequestCnt, "0")) + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRegCnt, "0")) + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryingCnt, "0")) != iDeliveryRequestCnt + iDeliveryRegCnt + iDeliveryingCnt))
                        {
                            m_cPosStatus.Sale.HappyOrderAlarm = true;
                        }
                        */
                        //변경
                        if ((int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderTotRegCnt, "0")) != iOrderRegNormalCnt + iOrderRegReservedCnt + iOrderRegDeliveryCnt) ||
                            (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderProductReadyCnt, "0")) + int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderPickupWaitCnt, "0")) != iProductReadyCnt + iPickupWaitCnt) ||
                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
                            //기존
                            /*
                            (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRequestCnt, "0")) + 
                             int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRegCnt, "0")) +
                             int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryingCnt, "0")) +
                             int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryDirectCnt, "0")) != iDeliveryRequestCnt + iDeliveryRegCnt + iDeliveryingCnt + iDeliveryDirectCnt))
                            */
                            //변경
                            (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRequestCnt, "0")) + 
                             int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryRegCnt, "0")) +
                             //int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryingCnt, "0")) +
                             int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryDirectCnt, "0")) +
                             int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryProductReadyCnt, "0")) != 
                             iDeliveryRequestCnt + 
                             iDeliveryRegCnt + 
                             //iDeliveryingCnt + 
                             iDeliveryDirectCnt + 
                             iDeliveryProductReadyCnt))
                            //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
                           
                        {
                            m_cPosStatus.Sale.HappyOrderAlarm = true;
                        }
                        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end

                    }
                    else
                    {
                        // 일반 건수, 배달 건수, 예약 건수 변경 시 팝업 알림
                        if (int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderRegCnt, "0")) != iOrderRegNormalCnt ||
                           int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderDeliveryOrderRegCnt, "0")) != iOrderRegDeliveryCnt ||
                           int.Parse(CmUtil.IsNull(m_cPosStatus.Sale.HappyOrderReservedRegCnt, "0")) != iOrderRegReservedCnt)
                        {
                            m_cPosStatus.Sale.HappyOrderAlarm = true;
                        }
                    }
                }

                // 해피오더 일반 주문접수 건수 갱신
                m_cPosStatus.Sale.HappyOrderRegCnt = Convert.ToString(iOrderRegNormalCnt);
                // 해피오더 예약 주문접수 건수 갱신
                m_cPosStatus.Sale.HappyOrderReservedRegCnt = Convert.ToString(iOrderRegReservedCnt);
                // 해피오더 배달 주문접수 건수 갱신
                m_cPosStatus.Sale.HappyOrderDeliveryOrderRegCnt = Convert.ToString(iOrderRegDeliveryCnt);
                // 해피오더 총 주문접수 건수 갱신
                m_cPosStatus.Sale.HappyOrderTotRegCnt = Convert.ToString(iTotOrderRegCnt);

                // 해피오더 상품준비 건수 갱신
                m_cPosStatus.Sale.HappyOrderProductReadyCnt = Convert.ToString(iProductReadyCnt);

                //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
                m_cPosStatus.Sale.HappyOrderDeliveryProductReadyCnt = Convert.ToString(iDeliveryProductReadyCnt);
                //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end

                // 해피오더 픽업대기 건수 갱신
                m_cPosStatus.Sale.HappyOrderPickupWaitCnt = Convert.ToString(iPickupWaitCnt);
                // 해피오더 픽업지연 건수 갱신
                m_cPosStatus.Sale.HappyOrderPickupDelayCnt = Convert.ToString(iPickupDelayCnt);
                // 해피오더 픽업지연미픽업 건수 갱신
                m_cPosStatus.Sale.HappyOrderNoPickupAndDelayCnt = Convert.ToString(iNoPickupAndDelayCnt);
                // 해피오더 배달요청 건수 갱신
                m_cPosStatus.Sale.HappyOrderDeliveryRequestCnt = Convert.ToString(iDeliveryRequestCnt);
                // 해피오더 배달접수 건수 갱신
                m_cPosStatus.Sale.HappyOrderDeliveryRegCnt = Convert.ToString(iDeliveryRegCnt);

                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
                // 해피오더 직접배달 건수 갱신
                m_cPosStatus.Sale.HappyOrderDeliveryDirectCnt = Convert.ToString(iDeliveryDirectCnt);
                //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end

                // 해피오더 배달중 건수 갱신
                m_cPosStatus.Sale.HappyOrderDeliveryingCnt = Convert.ToString(iDeliveryingCnt);

                //grayber@20180306 해피오더 주문가능 상태 추가 start - 해피오더 배달 가능 상태 전역변수에 값 설정
                m_cPosStatus.Sale.DeliverySupport = string.Empty;    // 기본값  string.Empty
                if (CmUtil.IsNull(htRspData) != true )
                {
                    if (CmUtil.IsNull(htRspData["deliverySupport"]) != true)
                    {// 전역변수에 값 추가
                        m_cPosStatus.Sale.DeliverySupport = htRspData["deliverySupport"].ToString();   // Y:N
                    }
                }
                //System.Diagnostics.Debug.WriteLine(DateTime.Now.ToShortTimeString() + " ▶▶▶ m_cPosStatus.Sale.DeliverySupport:" + m_cPosStatus.Sale.DeliverySupport); // Debug output console
                //grayber@20180306 해피오더 주문가능 상태 추가 end

                //#20180605 해피오더 개선 start
                 
                //즉시주문, 예약주문 알림
                // 즉시픽업 건수
                m_cPosStatus.Sale.HappyOrderDirectCnt = Convert.ToString(iOrdCnt_Direct);
                // 즉시배달 건수
                m_cPosStatus.Sale.HappyOrderReservCnt = Convert.ToString(iOrdCnt_Reserv);

                ////#15058 해피오더 버튼 변경 start,phj
                //m_cPosStatus.Sale.SaleMainRepeat = true;
                //m_cPosStatus.Sale.PosMainRepeat = true;
                //m_cPosStatus.Sale.TableMainRepeat = true;
                ////#15058 해피오더 버튼 변경 end,phj
                
                //#20180605 해피오더 개선 end


            }
            catch(Exception ex)
            {
                UserLog.WriteLogFile(UserCom.LOG_ERROR,
                                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,      // Project Name (프로젝트명)
                                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +  // Class Name (Class Name (클래스명))
                                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",                // Function Name (Function Name (함수명))
                                     ex.Message);
            }

            return sRet;
        }
        /// <summary>
        /// 빚은몰 주문 건수 조회
        /// </summary>
        /// <param name="sRespData"></param>
        /// <returns></returns>
        public string SelectBizeunOrderCount(string sRespData)
        {
            string sRet = UserCom.RST_ERR;
            try
            {
                if(CmUtil.IsNumber(sRespData.Trim()) == true)
                {
                    m_cPosStatus.Sale.BizeunOrderCnt = sRespData.Trim();
                }
                else
                {
                    m_cPosStatus.Sale.BizeunOrderCnt = "0";
                }

                sRet = UserCom.RST_OK;
            }
            catch (Exception ex)
            {
                UserLog.WriteLogFile(UserCom.LOG_ERROR,
                                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,      // Project Name (프로젝트명)
                                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +  // Class Name (Class Name (클래스명))
                                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",                // Function Name (Function Name (함수명))
                                     ex.Message);
            }

            return sRet;
        }
        /// <summary>
        /// 이지웰 주문건수 조회
        /// </summary>
        /// <param name="sRespData"></param>
        /// <returns></returns>
        public string SelectEzwelOrderCount(string sRespData)
        {
            string sRet = UserCom.RST_ERR;
            try
            {
                if (CmUtil.IsNumber(sRespData.Trim()) == true)
                {
                    m_cPosStatus.Sale.EzwelOrderCnt = sRespData.Trim();
                }
                else
                {
                    m_cPosStatus.Sale.EzwelOrderCnt = "0";
                }

                sRet = UserCom.RST_OK;
            }
            catch (Exception ex)
            {
                UserLog.WriteLogFile(UserCom.LOG_ERROR,
                                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,      // Project Name (프로젝트명)
                                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +  // Class Name (Class Name (클래스명))
                                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",                // Function Name (Function Name (함수명))
                                     ex.Message);
            }

            return sRet;
        }

        /// <summary>
        /// 온도정보 Http 통신
        /// </summary>
        /// <param name="aParam"></param>
        /// <returns></returns>
        public string SelectStoreTempInfo (string sRespData)
        {
            string sRet = UserCom.RST_ERR;
            string sTempInfo = string.Empty;
            string[] sTempSep = null;
            int iTotCnt = 0;

            int iStartCnt = 0;
            int iEndCnt = 0;

            try
            {
                string sResp = string.Empty;
                if (sRespData.Trim().Length > 0)
                {
                    iTotCnt = Convert.ToInt16(sRespData.Substring(0, 2));

                    sRespData = sRespData.Remove(0, 2);

                    if (iTotCnt > 2)
                    {
                        // 첫번째 온도 정보
                        iStartCnt = sRespData.IndexOf("[");
                        iEndCnt = sRespData.IndexOf("]");

                        if (iEndCnt != 0)
                        {
                            sTempInfo = sRespData.Substring(iStartCnt, iEndCnt + 1).Replace("[", "").Replace("]", "");
                                
                            sTempSep = sTempInfo.Split('|');

                            // 코드1
                            m_cPosStatus.Temp.Code1 = sTempSep[0];
                            // 이름1
                            m_cPosStatus.Temp.Name1 = sTempSep[1];
                            // 온도1
                            m_cPosStatus.Temp.Temperature1 = sTempSep[2];
                            // 알람1
                            m_cPosStatus.Temp.Alarm1 = sTempSep[3];
                            // 경고1
                            m_cPosStatus.Temp.Warning1 = sTempSep[4];
                            // 미수신1
                            m_cPosStatus.Temp.receiveYN1 = sTempSep[5];
                            // 최종온도수집1
                            m_cPosStatus.Temp.CollectionTime1 = sTempSep[6];

                            sRespData = sRespData.Remove(iStartCnt, iEndCnt + 1);
                        }

                        // 두번째 온도 정보
                        iStartCnt = sRespData.IndexOf("[");
                        iEndCnt = sRespData.IndexOf("]");

                        if (iEndCnt != 0)
                        {
                            sTempInfo = sRespData.Substring(iStartCnt, iEndCnt + 1).Replace("[", "").Replace("]", "");

                            sTempSep = sTempInfo.Split('|');

                            // 코드2
                            m_cPosStatus.Temp.Code2 = sTempSep[0];
                            // 이름2
                            m_cPosStatus.Temp.Name2 = sTempSep[1];
                            // 온도2
                            m_cPosStatus.Temp.Temperature2 = sTempSep[2];
                            // 알람2
                            m_cPosStatus.Temp.Alarm2 = sTempSep[3];
                            // 경고2
                            m_cPosStatus.Temp.Warning2 = sTempSep[4];
                            // 미수신2
                            m_cPosStatus.Temp.receiveYN2 = sTempSep[5];
                            // 최종온도수집2
                            m_cPosStatus.Temp.CollectionTime2 = sTempSep[6];

                            sRespData = sRespData.Remove(iStartCnt, iEndCnt + 1);
                        }

                        iStartCnt = sRespData.IndexOf("[");
                        iEndCnt = sRespData.IndexOf("]");

                        if (iEndCnt != 0)
                        {
                            sTempInfo = sRespData.Substring(iStartCnt, iEndCnt + 1).Replace("[", "").Replace("]", "");

                            sTempSep = sTempInfo.Split('|');

                            // 세번째 온도 정보
                            // 코드3
                            m_cPosStatus.Temp.Code3 = sTempSep[0];
                            // 이름3
                            m_cPosStatus.Temp.Name3 = sTempSep[1];
                            // 온도3
                            m_cPosStatus.Temp.Temperature3 = sTempSep[2];
                            // 알람3
                            m_cPosStatus.Temp.Alarm3 = sTempSep[3];
                            // 경고3
                            m_cPosStatus.Temp.Warning3 = sTempSep[4];
                            // 미수신3
                            m_cPosStatus.Temp.receiveYN3 = sTempSep[5];
                            // 최종온도수집3
                            m_cPosStatus.Temp.CollectionTime3 = sTempSep[6];

                            sRespData = sRespData.Remove(iStartCnt, iEndCnt + 1);
                        }
                    }
                }

                sRet = UserCom.RST_OK;
            }
            catch (Exception ex)
            {
                UserLog.WriteLogFile(UserCom.LOG_ERROR,
                                     System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,      // Project Name (프로젝트명)
                                     System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +  // Class Name (Class Name (클래스명))
                                     System.Reflection.MethodBase.GetCurrentMethod().Name + "()",                // Function Name (Function Name (함수명))
                                     ex.Message);
            }

            return sRet;
        }
    }
}
