using Cosmos.UserFrame;

/*-----------------------------------------------------------------------------------------------*/
// 설      명 : 전역 변수 선언
// 작  성  자 : 
// 변경  이력 : 
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.Common
{
    /// <summary>
    /// POS Status Information : Available for reference through StateObject  (State Server) (POS 상태 정보 : StateObject 객체를 통해 참조 가능(StateServer)
    /// </summary>
    public class PosStatus : StatusAbstract
    {
        public PosConfigInfo Base = new PosConfigInfo();        // POS 설정정보 및 마스터 정보
        public SaleFlowInfo Sale = new SaleFlowInfo();          // POS 거래정보
        public PosMasterInfo Mst = new PosMasterInfo();         // POS 마스터 기본정보
        public GlobalInfo Global = new GlobalInfo();            // 글로벌 정보
        public PosScreenMst ScnMst = new PosScreenMst();        // POS 스크린 마스터
        public TemperatureInfo Temp = new TemperatureInfo();    // 점포 온도정보
        public ProgramVerInfo Ver = new ProgramVerInfo();       // 프로그램 버전 정보

        //#20171227 인천공항 포스연동 start, phj
        public IncheonAirportInfo IncheonAirport = new IncheonAirportInfo();
        //#20171227 인천공항 포스연동 end, phj

        //#20180322 휴게소pos매출연동 start,phj
        public RestAreaPosInfo RestAreaPos = new RestAreaPosInfo();
        //#20180322 휴게소pos매출연동 end,phj

        /// <summary>
        /// ---------------------------------------------------------------------------------
        /// Data Initialization (데이타 초기화)
        /// ---------------------------------------------------------------------------------
        /// </summary>
        /// <returns></returns>
        /// 
        public override void ClearAll()
        {
            Base.Clear();
            Sale.Clear();
            Mst.Clear();
            ScnMst.Clear();
            //#20171227 인천공항 포스연동 start, phj
            IncheonAirport.Clear();
            //#20171227 인천공항 포스연동 end, phj

            //#20180322 휴게소pos매출연동 start,phj
            RestAreaPos.Clear();
            //#20180322 휴게소pos매출연동 end,phj
        }
    }

    /// <summary>
    /// Transaction Status Information : Available for reference through StateObject  (State Server) (거래 상태 정보 : StateObject 객체를 통해 참조 가능(StateServer)
    /// </summary>
    public class TranStatus : StatusAbstract
    {
        public TranHeadInfo Head = new TranHeadInfo();
        public TranSaleInfo Sale = new TranSaleInfo();

        /// <summary>
        /// ---------------------------------------------------------------------------------
        /// Data Initialization (데이타 초기화)
        /// ---------------------------------------------------------------------------------
        /// </summary>
        /// <returns></returns>
        public override void ClearAll()
        {
            Head.Clear();
            Sale.Clear();
        }
    }

    /// <summary>
    /// POS 기본 마스터 정보
    /// </summary>
    public class PosMasterInfo
    {
        public const int MAX_INFOCOUNT = 100;

        private string[] m_sInfo = new string[MAX_INFOCOUNT];
        private double[] m_dInfo = new double[MAX_INFOCOUNT];

        /// <summary>
        /// 결제금액 절삭위치
        /// </summary>
        public string PayRudDwLoc { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        /// <summary>
        /// 결제금액 절삭 방법
        /// </summary>
        public string PayRudDwLocMethd { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        /// <summary>
        /// 부가세 절삭 위치
        /// </summary>
        public string VatRudDwLoc { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }
        /// <summary>
        /// 부가세 절삭 방법
        /// </summary>
        public string VatRudDwLocMethd { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }
        /// <summary>
        /// 할인 절삭 위치
        /// </summary>
        public string DcRudDwLoc { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }
        /// <summary>
        /// 할인 절삭 방법
        /// </summary>
        public string DcRudDwLocMethd { get { return m_sInfo[5]; } set { m_sInfo[5] = value; } }
        /// <summary>
        /// 금액배분 절삭 위치
        /// </summary>
        public string ItemRudDwLoc { get { return m_sInfo[6]; } set { m_sInfo[6] = value; } }
        /// <summary>
        /// 금액배분 절삭 방법
        /// </summary>
        public string ItemRudDwLocMethd { get { return m_sInfo[7]; } set { m_sInfo[7] = value; } }
        /// <summary>
        /// 봉사료 구분(공통코드 M0029 0:적용안함, 1:율, 2:금액)
        /// </summary>
        public string SeriveFreeDiv { get { return m_sInfo[8]; } set { m_sInfo[8] = value; } }
        /// <summary>
        /// 봉사료 적용대상 구분(0:적용안함,1:상품당 봉사료 적용,2:영수증당 봉사료 적용)
        /// </summary>
        public string SeriveFreeApplyDiv { get { return m_sInfo[9]; } set { m_sInfo[9] = value; } }
        /// <summary>
        /// 봉사료세금적용구분
        /// </summary>
        public string SeriveFreeTaxAmtDiv { get { return m_sInfo[10]; } set { m_sInfo[10] = value; } }
        /// <summary>
        /// 직/가맹 구분(1:직영, 2:가맹)
        /// </summary>
        public string DrtFrcsDiv { get { return m_sInfo[11]; } set { m_sInfo[11] = value; } }
        ///// <summary>
        ///// POS 화면 타입(1:A타입, 2:B타입, 3:C타입)
        ///// </summary>
        //public string PosScrnType { get { return m_sInfo[12]; } set { m_sInfo[12] = value; } }
        /// <summary>
        /// 세금적용구분(공통코드 M0012 1:기본세율적용, 2:상품세율적용)
        /// </summary>
        public string TaxAmtApplydiv { get { return m_sInfo[13]; } set { m_sInfo[13] = value; } }
        /// <summary>
        /// 세금 포함 구분(0 : 미포함, 1: 포함)
        /// </summary>
        public string TaxAmtIncludeYn { get { return m_sInfo[14]; } set { m_sInfo[14] = value; } }
        /// <summary>
        /// 세금 계산 방법(1: 전체금액세금계산후배분 2: 상품별세금계산후합산)
        /// </summary>
        public string TaxAmtCalcMethd { get { return m_sInfo[15]; } set { m_sInfo[15] = value; } }
        /// <summary>
        /// 기본 TAKE IN 세금 코드
        /// </summary>
        public string BasicTakeInTaxCd { get { return m_sInfo[16]; } set { m_sInfo[16] = value; } }
        /// <summary>
        /// 기본 TAKE OUT 세금 코드
        /// </summary>
        public string BasicTakeOutTaxCd { get { return m_sInfo[17]; } set { m_sInfo[17] = value; } }
        /// <summary>
        /// 해피버즈 사용 여부(0:미사용,1:사용)
        /// </summary>
        public string HappyBuzzUseYn { get { return m_sInfo[18]; } set { m_sInfo[18] = value; } }

        ///// <summary>
        ///// 테마 색상(RGB 값)
        ///// </summary>
        //public string ThemeColor { get { return m_sInfo[18]; } set { m_sInfo[18] = value; } }
        /// <summary>
        /// 다문화 코드
        /// </summary>
        public string MltCultCd { get { return m_sInfo[19]; } set { m_sInfo[19] = value; } }
        /// <summary>
        /// 해피오더 동의 여부(1:동의, 0:미동의)
        /// </summary>
        public string HpyOrdAgreeYn { get { return m_sInfo[20]; } set { m_sInfo[20] = value; } }
        /// <summary>
        /// 상품권 판매 여부(1:판매, 0:미판매)
        /// </summary>
        public string GiftSaleYn { get { return m_sInfo[21]; } set { m_sInfo[21] = value; } }
        /// <summary> 
        /// 영수증 메시지 중복 허용 여부(0:미허용, 1:중복 )
        /// </summary>
        public string BillMsgDupPrmtYn { get { return m_sInfo[22]; } set { m_sInfo[22] = value; } }
        /// <summary>
        /// 영수증 메시지 출력 우선순위(1:본부/팀/매장, 2:매장/팀/본부)
        /// </summary>
        public string BillMsgDupPrtRank { get { return m_sInfo[23]; } set { m_sInfo[23] = value; } }
        /// <summary>
        /// 예약 판매 여부(0:미사용, 1:사용)
        /// </summary>
        public string ReservSaleYn { get { return m_sInfo[24]; } set { m_sInfo[24] = value; } }
        /// <summary>
        /// 복합 매장 유형(공통코드 M0069, 0:단독매장,1:복합매장구성점포,2:복합매장점포)
        /// </summary>
        public string ComplexShopType { get { return m_sInfo[25]; } set { m_sInfo[25] = value; } }
        /// <summary>
        /// 테스트 점포 여부(0:정상 점포, 1: 테스트 점포)
        /// </summary>
        public string TestStorYn { get { return m_sInfo[26]; } set { m_sInfo[26] = value; } }
        /// <summary>
        /// 점포 주 명
        /// </summary>
        public string StorOwnName { get { return m_sInfo[27]; } set { m_sInfo[27] = value; } }
        /// <summary>
        /// 점포 명
        /// </summary>
        public string StorName { get { return m_sInfo[28]; } set { m_sInfo[28] = value; } }
        /// <summary>
        /// 점포 주소
        /// </summary>
        public string StorAddr { get { return m_sInfo[29]; } set { m_sInfo[29] = value; } }
        /// <summary>
        /// 사업자 번호
        /// </summary>
        public string StorBizPsnNo { get { return m_sInfo[30]; } set { m_sInfo[30] = value; } }
        /// <summary>
        /// 전화 번호
        /// </summary>
        public string StorTelNo { get { return m_sInfo[31]; } set { m_sInfo[31] = value; } }
        /// <summary>
        /// CDP 사용여부
        /// </summary>
        public string CdpUseYn { get { return m_sInfo[32]; } set { m_sInfo[32] = value; } }
        /// <summary>
        /// CDP 메시지
        /// </summary>
        public string CdpMessage { get { return m_sInfo[33]; } set { m_sInfo[33] = value; } }
        /// <summary>
        /// 여전법 인증여부(0:MSR, 1:IC)
        /// </summary>
        public string LoanLawCertfYn { get { return m_sInfo[34]; } set { m_sInfo[34] = value; } }
        /// <summary>
        /// 브라우저 키
        /// </summary>
        public string BrowserKey { get { return m_sInfo[35]; } set { m_sInfo[35] = value; } }
        /// <summary>
        /// 회사 구분
        /// </summary>
        public string CorpDiv { get { return m_sInfo[36]; } set { m_sInfo[36] = value; } }
        /// <summary>
        /// 국가 구분
        /// </summary>
        public string CntryDiv { get { return m_sInfo[37]; } set { m_sInfo[37] = value; } }

        /// <summary>
        /// 외부 I/F 유형
        /// </summary>
        public string ETC_IF_DIV { get { return m_sInfo[38]; } set { m_sInfo[38] = value; } }
        /// <summary>
        /// 외부 I/F FTP IP
        /// </summary>
        public string ETC_IF_FTP_IP { get { return m_sInfo[39]; } set { m_sInfo[39] = value; } }
        /// <summary>
        /// 외부 I/F FTP PORT
        /// </summary>
        public string ETC_IF_FTP_PORT { get { return m_sInfo[40]; } set { m_sInfo[40] = value; } }
        /// <summary>
        /// 외부 I/F FTP ID
        /// </summary>
        public string ETC_IF_FTP_ID { get { return m_sInfo[41]; } set { m_sInfo[41] = value; } }
        /// <summary>
        /// 외부 I/F FTP PW
        /// </summary>
        public string ETC_IF_FTP_PW { get { return m_sInfo[42]; } set { m_sInfo[42] = value; } }
        /// <summary>
        /// 외부 I/F FTP PASSIVE
        /// </summary>
        public string ETC_IF_FTP_PASSIVE { get { return m_sInfo[43]; } set { m_sInfo[43] = value; } }
        /// <summary>
        /// 외부 I/F FTP PATH
        /// </summary>
        public string ETC_IF_FTP_PATH { get { return m_sInfo[44]; } set { m_sInfo[44] = value; } }
        /// <summary>
        /// 외부 I/F URL1
        /// </summary>
        public string ETC_IF_URL1 { get { return m_sInfo[45]; } set { m_sInfo[45] = value; } }
        /// <summary>
        /// 외부 I/F URL2
        /// </summary>
        public string ETC_IF_URL2 { get { return m_sInfo[46]; } set { m_sInfo[46] = value; } }
        /// <summary>
        /// 외부 I/F 사용 주체 (1:SVR, 2:POS)
        /// </summary>
        public string ETC_IF_POS_DIV { get { return m_sInfo[47]; } set { m_sInfo[47] = value; } }

        /// <summary>
        /// 외부 I/F 회사코드
        /// </summary>
        public string JOIN_CMP_CD { get { return m_sInfo[48]; } set { m_sInfo[48] = value; } }
        /// <summary>
        /// 외부 I/F 브랜드코드
        /// </summary>
        public string JOIN_BRAND_CD { get { return m_sInfo[49]; } set { m_sInfo[49] = value; } }
        /// <summary>
        /// 외부 I/F 점포코드
        /// </summary>
        public string JOIN_STOR_CD { get { return m_sInfo[50]; } set { m_sInfo[50] = value; } }
        /// <summary>
        /// 외부 I/F 상품코드
        /// </summary>
        public string JOIN_ITEM_CD { get { return m_sInfo[51]; } set { m_sInfo[51] = value; } }

        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
        
        /// <summary>
        /// 해피콕점포여부(0:미동의, 1:동의)
        /// </summary>
        public string HpyCokStorYn { get { return m_sInfo[52]; } set { m_sInfo[52] = value; } }

        /// <summary>
        /// 구매이력출력여부(0:미출력, 1:출력)
        /// </summary>
        public string BuyHistShowYn { get { return m_sInfo[53]; } set { m_sInfo[53] = value; } }

        /// <summary>
        /// 쿠폰발송여부(0:미사용, 1:사용)
        /// </summary>
        public string CpnSendYn { get { return m_sInfo[54]; } set { m_sInfo[54] = value; } }

        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180528
        //쿠폰 발송 횟수 제한 기능
        /// <summary>
        /// 일 쿠폰 발송 가능 횟수
        /// </summary>
        public string CpnSendLimitCnt { get { return m_sInfo[55]; } set { m_sInfo[55] = value; } }
        
        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180528
        
        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510

        //#15274 영수증 문구 추가 요청 start
        /// <summary>
        /// 회사명
        /// </summary>
        public string CompNm { get { return m_sInfo[56]; } set { m_sInfo[56] = value; } }
        //#15274 영수증 문구 추가 요청 end

        /// <summary>
        /// 봉사료(율 or 금액)
        /// </summary>
        public double SeriveFree { get { return m_dInfo[0]; } set { m_dInfo[0] = value; } }
        /// <summary>
        /// 해피포인트 적립율
        /// </summary>
        public double HpyPntAccumRate { get { return m_dInfo[1]; } set { m_dInfo[1] = value; } }
        /// <summary>
        /// 시차
        /// </summary>
        public double TimeGap { get { return m_dInfo[2]; } set { m_dInfo[2] = value; } }
        /// <summary>
        /// 현금 거래 금액
        /// </summary>
        public double CashAlarmAmt { get { return m_dInfo[3]; } set { m_dInfo[3] = value; } }

        /// <summary>
        /// 데이터 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_sInfo.Length; i++) { m_sInfo[i] = ""; }
            for (int j = 0; j < m_dInfo.Length; j++) { m_dInfo[j] = 0; }
        }
    }


    public class PosScreenMst
    {
        public const int MAX_INFOCOUNT = 100;

        private string[] m_sInfo = new string[MAX_INFOCOUNT];
        private double[] m_dInfo = new double[MAX_INFOCOUNT];

        /// <summary>
        /// POS 화면 타입(1:A타입, 2:B타입, 3:C타입)
        /// </summary>
        public string PosScrnType { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        /// <summary>
        /// 테마 색상(RGB 값)
        /// </summary>
        public string ThemeColor { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        /// <summary>
        /// 로그인 이미지
        /// </summary>
        public string LoginImg { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }
        /// <summary>
        /// 브랜드 CI 이미지
        /// </summary>
        public string BrandCiImg { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }
        /// <summary>
        /// 메인 이미지
        /// </summary>
        public string MainImg { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }
        /// <summary>
        /// 대기 이미지
        /// </summary>
        public string WaitImg { get { return m_sInfo[5]; } set { m_sInfo[5] = value; } }
        /// <summary>
        /// 바로가기 사용 여부
        /// </summary>
        public string BookmkUseYn { get { return m_sInfo[6]; } set { m_sInfo[6] = value; } }
        /// <summary>
        /// 바로가기 배열
        /// </summary>
        public string BookmkItemKeyArray { get { return m_sInfo[7]; } set { m_sInfo[7] = value; } }
        /// <summary>
        /// 기능버튼 방향키 사용여부
        /// </summary>
        public string FuncScrollUseYn { get { return m_sInfo[8]; } set { m_sInfo[8] = value; } }
        /// <summary>
        /// 본부 상품키 배열
        /// </summary>
        public string HqItemKeyLayout { get { return m_sInfo[9]; } set { m_sInfo[9] = value; } }
        /// <summary>
        /// 매장 상품키 배열
        /// </summary>
        public string ShopItemkeyLayout { get { return m_sInfo[10]; } set { m_sInfo[10] = value; } }
        /// <summary>
        /// 대분류 키 기본 색상
        /// </summary>
        public string LClssKeyBasicColor { get { return m_sInfo[11]; } set { m_sInfo[11] = value; } }
        /// <summary>
        /// 대분류 키 기본 FONT 색상
        /// </summary>
        public string LClssKeyBasicFontColor { get { return m_sInfo[12]; } set { m_sInfo[12] = value; } }
        /// <summary>
        /// 대분류 키 선택 색상
        /// </summary>
        public string LClssKeySelColor { get { return m_sInfo[13]; } set { m_sInfo[13] = value; } }
        /// <summary>
        /// 대분류 키 선택 FONT 색상
        /// </summary>
        public string LClssKeySelFontColor { get { return m_sInfo[14]; } set { m_sInfo[13] = value; } }
        /// <summary>
        /// 상품 키 기본 색상
        /// </summary>
        public string ItemKeyBasicColor { get { return m_sInfo[15]; } set { m_sInfo[13] = value; } }
        /// <summary>
        /// 상품 키 기본 FONT 색상
        /// </summary>
        public string ItemKeyBasicFontColor { get { return m_sInfo[16]; } set { m_sInfo[13] = value; } }
        /// <summary>
        /// 상품 키 선택 색상
        /// </summary>
        public string ItemKeySelColor { get { return m_sInfo[17]; } set { m_sInfo[13] = value; } }
        /// <summary>
        /// 상품 키 선택 FONT 색상
        /// </summary>
        public string ItemKeySelFontColor { get { return m_sInfo[18]; } set { m_sInfo[13] = value; } }
        /// <summary>
        /// 고정상품 분류수
        /// </summary>
        public string FixItemClssCnt { get { return m_sInfo[19]; } set { m_sInfo[19] = value; } }
        
        /// <summary>
        /// 데이터 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_sInfo.Length; i++) { m_sInfo[i] = ""; }
            for (int j = 0; j < m_dInfo.Length; j++) { m_dInfo[j] = 0; }
        }
    }



    /// <summary>
    /// 판매 해더 정보
    /// </summary>
    public class TranHeadInfo
    {
        public const int MAX_INFOCOUNT = 100;
        private string[] m_sInfo = new string[MAX_INFOCOUNT];
        private double[] m_dInfo = new double[MAX_INFOCOUNT];
        private long[] m_nInfo = new long[MAX_INFOCOUNT];

        /// <summary>
        /// 회사코드
        /// </summary>
        public string CmpCd { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        /// <summary>
        /// 점포번호
        /// </summary>
        public string StoreCd { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        /// <summary>
        /// 영업일자
        /// </summary>
        public string SaleDate { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }
        /// <summary>
        /// POS번호
        /// </summary>
        public string PosNo { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }
        /// <summary>
        /// 등록번호
        /// </summary>
        public string RegNo { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }
        /// <summary>
        /// 거래번호
        /// </summary>
        public string TradeNo { get { return m_sInfo[5]; } set { m_sInfo[5] = value; } }
        /// <summary>
        /// 거래구분
        /// </summary>
        public string TradeDiv { get { return m_sInfo[6]; } set { m_sInfo[6] = value; } }
        /// <summary>
        /// 연습모드여부
        /// </summary>
        public string TrainModeYn { get { return m_sInfo[7]; } set { m_sInfo[7] = value; } }
        /// <summary>
        /// 거래종별
        /// </summary>
        public string TradeKind { get { return m_sInfo[8]; } set { m_sInfo[8] = value; } }
        /// <summary>
        /// 시스템일자
        /// </summary>
        public string SysYmd { get { return m_sInfo[9]; } set { m_sInfo[9] = value; } }
        /// <summary>
        /// 주문시간
        /// </summary>
        public string OrderHms { get { return m_sInfo[10]; } set { m_sInfo[10] = value; } }
        /// <summary>
        /// 결제시간
        /// </summary>
        public string PayHms { get { return m_sInfo[11]; } set { m_sInfo[11] = value; } }
        /// <summary>
        /// 담당자(캐셔)ID
        /// </summary>
        public string CashierId { get { return m_sInfo[12]; } set { m_sInfo[12] = value; } }
        /// <summary>
        /// 주문 담당자
        /// </summary>
        public string OrderPicNo { get { return m_sInfo[13]; } set { m_sInfo[13] = value; } }
        /// <summary>
        /// 점주알바구분
        /// </summary>
        public string OwnPartDiv { get { return m_sInfo[14]; } set { m_sInfo[14] = value; } }
        /// <summary>
        /// 원거래POS번호
        /// </summary>
        public string OrgPosNo { get { return m_sInfo[15]; } set { m_sInfo[15] = value; } }
        /// <summary>
        /// 원거래영업일자
        /// </summary>
        public string OrgSaleDate { get { return m_sInfo[16]; } set { m_sInfo[16] = value; } }
        /// <summary>
        /// 원거래영수증번호
        /// </summary>
        public string OrgTradeNo { get { return m_sInfo[17]; } set { m_sInfo[17] = value; } }
        /// <summary>
        /// 사유코드(반품)
        /// </summary>
        public string RtnReasonCd { get { return m_sInfo[18]; } set { m_sInfo[18] = value; } }
        /// <summary>
        /// 사유메모(반품)
        /// </summary>
        public string RtnReasonMemo { get { return m_sInfo[19]; } set { m_sInfo[19] = value; } }
        /// <summary>
        /// 비매출 사유코드
        /// </summary>
        public string NonSaleRsnCd { get { return m_sInfo[20]; } set { m_sInfo[20] = value; } }
        /// <summary>
        /// 예약번호
        /// </summary>
        public string ReserveNo { get { return m_sInfo[21]; } set { m_sInfo[21] = value; } }
        /// <summary>
        /// 예약일자
        /// </summary>
        public string ReserveYmd { get { return m_sInfo[22]; } set { m_sInfo[22] = value; } }
        /// <summary>
        /// 고객번호
        /// </summary>
        public string MemberCustNo { get { return m_sInfo[23]; } set { m_sInfo[23] = value; } }
        /// <summary>
        /// 주문구분
        /// 0:일반, 1:배달, 2:포장 
        /// </summary>
        public string OrderFlag { get { return m_sInfo[24]; } set { m_sInfo[24] = value; } }
        /// <summary>
        /// 층코드
        /// </summary>
        public string FloorCd { get { return m_sInfo[25]; } set { m_sInfo[25] = value; } }
        /// <summary>
        /// 테이블번호
        /// </summary>
        public string TableNo { get { return m_sInfo[26]; } set { m_sInfo[26] = value; } }
        /// <summary>
        /// 객층
        /// </summary>
        public string CustFloor { get { return m_sInfo[27]; } set { m_sInfo[27] = value; } }
        /// <summary>
        /// 외국인구분
        /// </summary>
        public string ForeignFlag { get { return m_sInfo[28]; } set { m_sInfo[28] = value; } }
        /// <summary>
        /// 결제시 남녀구분
        /// </summary>
        public string PayGndrDiv { get { return m_sInfo[29]; } set { m_sInfo[29] = value; } }
        /// <summary>
        /// 금액더치페이여부
        /// </summary>
        public string AmtDutchPayYn { get { return m_sInfo[30]; } set { m_sInfo[30] = value; } }
        /// <summary>
        /// 주문번호
        /// </summary>
        public string OrderNo { get { return m_sInfo[31]; } set { m_sInfo[31] = value; } }
        
        /// <summary>
        /// 층명
        /// </summary>
        public string FloorNm { get { return m_sInfo[33]; } set { m_sInfo[33] = value; } }
        /// <summary>
        /// 테이블명
        /// </summary>
        public string TableNm { get { return m_sInfo[34]; } set { m_sInfo[34] = value; } }
        /// <summary>
        /// 주문 담당자 명
        /// </summary>
        public string OrderPicNm { get { return m_sInfo[35]; } set { m_sInfo[35] = value; } }
        /// <summary>
        /// 선불카드 고개명
        /// </summary>
        public string PpCardCustNm { get { return m_sInfo[37]; } set { m_sInfo[37] = value; } }
        /// <summary>
        /// 추가적립 추후적립 가능여부(0:불가능, 1:가능)
        /// </summary>
        public string AftSaveAddDiv { get { return m_sInfo[38]; } set { m_sInfo[38] = value; } }
        /// <summary>
        /// 추가적립 대상 정보[추가적립여부(1)+추가적립상세코드(2)+본사부담금(7)+매장부담금(7)]
        /// </summary>
        public string AftSaveAddInfo { get { return m_sInfo[39]; } set { m_sInfo[39] = value; } }
        /// <summary>
        /// 반품완료여부(서버거래호출시)
        /// </summary>
        public string RefundInfo { get { return m_sInfo[40]; } set { m_sInfo[40] = value; } }
        /// <summary>
        /// 중간 마감 순번
        /// </summary>
        public string MidCloseSeq { get { return m_sInfo[41]; } set { m_sInfo[41] = value; } }
        /// <summary>
        /// 선불카드 고개아이디
        /// </summary>
        public string PpCardCustId { get { return m_sInfo[42]; } set { m_sInfo[42] = value; } }
        /// <summary>
        /// 거래 포장 구분
        /// </summary>
        public string PackTradeDiv { get { return m_sInfo[43]; } set { m_sInfo[43] = value; } }
        /// <summary>
        /// 보류 상태
        /// </summary>
        public string HoldStat { get { return m_sInfo[44]; } set { m_sInfo[44] = value; } }
        /// <summary>
        /// 보류 원거래 번호
        /// </summary>
        public string HoldOrgRegNo { get { return m_sInfo[45]; } set { m_sInfo[45] = value; } }
        /// <summary>
        ///  VIP 여부  - 0:일반 ,1:VIP ,2:직원
        /// </summary>
        public string VipTy { get { return m_sInfo[46]; } set { m_sInfo[46] = value; } }
        /// <summary>
        /// 로스 타이틀
        /// </summary>
        public string LossTitle { get { return m_sInfo[47]; } set { m_sInfo[47] = value; } }
        
        /// <summary>
        /// 원거래 종류
        /// </summary>
        public string OrgTradeKind { get { return m_sInfo[48]; } set { m_sInfo[48] = value; } }

        //17.05.18 dkshin 쇼킹박스 추가
        /// <summary>
        /// 쇼킹박스 상태
        /// </summary>
        public string ShockingBoxStat { get { return m_sInfo[49]; } set { m_sInfo[49] = value; } }

        //17.05.18 dkshin 쇼킹박스 추가
        /// <summary>
        /// 쇼킹박스 바코드데이타(SALEDATE+REGNO)
        /// </summary>
        public string ShockingBoxBarcodeData { get { return m_sInfo[50]; } set { m_sInfo[50] = value; } }

        //2017-06-02 dkshin 해피앱 추후적립
        /// <summary>
        ///영수증 바코드데이타
        /// </summary>
        public string RcptBarcodeData { get { return m_sInfo[51]; } set { m_sInfo[51] = value; } }

        //#20170828 해피포인트 적립 제외 버튼 추가 phj, start
        /// <summary>
        /// 해피포인트 적립 제외 여부 (0: 미클릭, 1:클릭)
        /// </summary>
        public string HP_EXCLUDE_YN { get { return m_sInfo[52]; } set { m_sInfo[52] = value; } }
        //#20170828 해피포인트 적립 제외 버튼 추가 phj, end

        //20170918 dkshin 해피오더 중복 거래 완료처리 수정
        /// <summary>
        ///SS해피오더 픽업시간
        /// </summary>
        public string HPOrderPickupTime { get { return m_sInfo[53]; } set { m_sInfo[53] = value; } }


        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 start
        /// <summary>
        /// 쇼킹박스 거래종별 (99:쇼킹박스, 60:랜덤박스)
        /// </summary>
        public string ShockingBoxTradeKind { get { return m_sInfo[54]; } set { m_sInfo[54] = value; } }
        //#15746 해피오더 '쇼킹박스' 관련 POS 시스템 개발 요청 end

        /// <summary>
        /// 총매출금액
        /// </summary>
        public double TotSaleAmt { get { return m_dInfo[0]; } set { m_dInfo[0] = value; } }
        /// <summary>
        /// 총할인금액
        /// </summary>
        public double TotDcAmt { get { return m_dInfo[1]; } set { m_dInfo[1] = value; } }
        /// <summary>
        /// 순매출금액
        /// </summary>
        public double NetSaleAmt { get { return m_dInfo[2]; } set { m_dInfo[2] = value; } }
        /// <summary>
        /// POS 할인금액
        /// </summary>
        public double ItemDcAmt { get { return m_dInfo[3]; } set { m_dInfo[3] = value; } }
        /// <summary>
        /// 캠페인 할인금액
        /// </summary>
        public double CpiDcAmt { get { return m_dInfo[4]; } set { m_dInfo[4] = value; } }
        /// <summary>
        /// 제휴카드 할인금액
        /// </summary>
        public double CoopCardDcAmt { get { return m_dInfo[5]; } set { m_dInfo[5] = value; } }
        /// <summary>
        /// 포인트 할인금액
        /// </summary>
        public double PointDcAmt { get { return m_dInfo[6]; } set { m_dInfo[6] = value; } }
        /// <summary>
        /// 쿠폰 할인금액
        /// </summary>
        public double CpnDcAmt { get { return m_dInfo[7]; } set { m_dInfo[7] = value; } }
        /// <summary>
        /// 직원 할인금액
        /// </summary>
        public double EmpDcAmt { get { return m_dInfo[8]; } set { m_dInfo[8] = value; } }
        /// <summary>
        /// 세트 할인금액
        /// </summary>
        public double SetDcAmt { get { return m_dInfo[9]; } set { m_dInfo[9] = value; } }
        /// <summary>
        /// 기타 할인금액
        /// </summary>
        public double EtcDcAmt { get { return m_dInfo[10]; } set { m_dInfo[10] = value; } }
        /// <summary>
        /// 총부가세
        /// </summary>
        public double TotVatAmt { get { return m_dInfo[11]; } set { m_dInfo[11] = value; } }
        /// <summary>
        /// 봉사료금액
        /// </summary>
        public double SvcFeeAmt { get { return m_dInfo[12]; } set { m_dInfo[12] = value; } }
        /// <summary>
        /// 봉사료부가세
        /// </summary>
        public double SvcFeeVat { get { return m_dInfo[13]; } set { m_dInfo[13] = value; } }
        /// <summary>
        /// 기타부가세
        /// </summary>
        public double EtcVatAmt { get { return m_dInfo[14]; } set { m_dInfo[14] = value; } }
        /// <summary>
        /// 기본적립 대상 금액
        /// </summary>
        public double AftSavePoint { get { return m_dInfo[15]; } set { m_dInfo[15] = value; } }
        /// <summary>
        /// 예외 할인 금액
        /// </summary>
        public double ExcepDcAmt { get { return m_dInfo[16]; } set { m_dInfo[16] = value; } }
        
        /// <summary>
        /// 로스 합계 금액
        /// </summary>
        public double LossTotSaleAmt { get { return m_dInfo[17]; } set { m_dInfo[17] = value; } }       

        /// <summary>
        /// 객수
        /// </summary>
        public long CustCnt { get { return m_nInfo[0]; } set { m_nInfo[0] = value; } }
        /// <summary>
        /// 결제시연령
        /// </summary>
        public long PayAge { get { return m_nInfo[1]; } set { m_nInfo[1] = value; } }
        /// <summary>
        /// 남자동반자수
        /// </summary>
        public long ManCmpnpsnCnt { get { return m_nInfo[2]; } set { m_nInfo[2] = value; } }
        /// <summary>
        /// 여자동반자수
        /// </summary>
        public long WomanCmpnpsnCnt { get { return m_nInfo[3]; } set { m_nInfo[3] = value; } }
        /// <summary>
        /// 판매수량
        /// </summary>
        public long TotQty { get { return m_nInfo[4]; } set { m_nInfo[4] = value; } }
        /// <summary>
        /// Bill분리개수
        /// </summary>
        public long BillSplitCnt { get { return m_nInfo[5]; } set { m_nInfo[5] = value; } }


        /// <summary>
        /// 기본적립예정포인트 해피스테이션 (비회원 예상 적립포인트)
        /// </summary>
        public double SavingHpPoint { get { return m_dInfo[18]; } set { m_dInfo[18] = value; } }

        /// <summary>
        /// 진동벨 사용여부
        /// </summary>
        public string IsBellUse { get { return m_sInfo[55]; } set { m_sInfo[55] = value; } }

        public void Clear()
        {
            for (int i = 0; i < m_sInfo.Length; i++) { m_sInfo[i] = ""; }
            for (int j = 0; j < m_dInfo.Length; j++) { m_dInfo[j] = 0; }
            for (int j = 0; j < m_nInfo.Length; j++) { m_nInfo[j] = 0; }
        }

        public TranHeadInfo Clone()
        {
            TranHeadInfo TranHead = new TranHeadInfo();
            TranHead.m_dInfo = (double[])this.m_dInfo.Clone();
            TranHead.m_nInfo = (long[])this.m_nInfo.Clone();
            TranHead.m_sInfo = (string[])this.m_sInfo.Clone();
            return TranHead;
        }
    }

    /// <summary>
    /// 판매 부가 정보
    /// </summary>
    public class TranSaleInfo
    {
        public const int MAX_INFOCOUNT = 100;
        private string[] m_sInfo = new string[MAX_INFOCOUNT];
        private double[] m_dInfo = new double[MAX_INFOCOUNT];
        private long[] m_nInfo = new long[MAX_INFOCOUNT];
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];

        /// <summary>
        /// 기타트란선언(호출트란,영수증재발행)
        /// </summary>
        public string TranEtcType { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        /// <summary>
        /// 서브 점포코드
        /// </summary>
        public string SubStoreCode { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        /// <summary>
        /// 부가메뉴팝업여부
        /// </summary>
        public string SubMenuPopUpYn { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }
        /// <summary>
        /// 세트상품 세트상품코드(메인코드)
        /// </summary>
        public string SetPluSetMainCode { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }
        /// <summary>
        /// 캠페인 이미지 파일명
        /// </summary>
        public string CampaignFileName { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }
        /// <summary>
        /// 부가메뉴 부가메뉴상품코드(메인코드)
        /// </summary>
        public string SubMenuMainCode { get { return m_sInfo[5]; } set { m_sInfo[5] = value; } }
        /// <summary>
        /// 부가메뉴 구분코드
        /// </summary>
        public string SubMenuKeyDiv { get { return m_sInfo[6]; } set { m_sInfo[6] = value; } }
        /// <summary>
        /// 세트상품 세트상품그룹코드
        /// </summary>
        public string SetPluSetGroupCode { get { return m_sInfo[7]; } set { m_sInfo[7] = value; } }
        /// <summary>
        /// 해피버즈용 멤버스 번호
        /// </summary>
        public string HappyBuzzMemNo { get { return m_sInfo[8]; } set { m_sInfo[8] = value; } }
        // #20170616, 해피앱 스탬프 Start
        /// <summary>
        /// 해피앱 회원 번호
        /// </summary>
        public string HappyAppMemNo { get { return m_sInfo[8]; } set { m_sInfo[8] = value; } }
        // #20170616, 해피앱 스탬프 End
        /// <summary>
        /// 주방프린트 수동출력 사용자 선택값 
        ///     1:수동(장치선택) => 선택 장치ID(99포함) or NOPRINT
        ///     2:수동(상품선택) => 선택 상품 목록 (,분리) or NOPRINT
        /// </summary>
        /// <remarks>
        ///  POS_OPTION.OPT42 => 0:자동 1:수동(프린터선택) 2:수동(상품선택)
        /// </remarks>
        public string MenualOrderValue { get { return m_sInfo[21]; } set { m_sInfo[21] = value; } }
        /// <summary>
        /// 주방프린트 수동출력시 주방메모 => 2:수동(상품선택) 일때만 사용 
        /// 주문번호 등록시 주방메모 (추가, 2017.04.26)
        /// </summary>
        public string MenualOrderMemo { get { return m_sInfo[22]; } set { m_sInfo[22] = value; } }

        /// <summary>
        /// 면세대상 상품금액
        /// </summary>
        public double NoVatPluAmt { get { return m_dInfo[0]; } set { m_dInfo[0] = value; } }
        /// <summary>
        /// 과세대상 상품금액
        /// </summary>
        public double VatPluAmt   { get { return m_dInfo[1]; } set { m_dInfo[1] = value; } }

        /// <summary>
        /// 순매출금액(빌분리)
        /// </summary>
        public double NetSaleAmt { get { return m_dInfo[2]; } set { m_dInfo[2] = value; } }
        /// <summary>
        /// 받을금액(빌분리)
        /// </summary>
        public double RemainPayAmt { get { return m_dInfo[3]; } set { m_dInfo[3] = value; } }
        /// <summary>
        /// 받은금액(빌분리)
        /// </summary>
        public double RecvedPayAmt { get { return m_dInfo[4]; } set { m_dInfo[4] = value; } }
        /// <summary>
        /// 세트상품 업차지 금액
        /// </summary>
        public double SetPluUpSalePrc { get { return m_dInfo[5]; } set { m_dInfo[5] = value; } }
        /// <summary>
        /// 거스름돈
        /// </summary>
        public double ChangeAmt { get { return m_dInfo[6]; } set { m_dInfo[6] = value; } }
        /// <summary>
        /// 더치페이 전체 금액
        /// </summary>
        public double DutchPayTotAmt { get { return m_dInfo[7]; } set { m_dInfo[7] = value; } }
        /// <summary>
        /// 부가상품 업차지 금액
        /// </summary>
        public double SubMenuUpSalePrc { get { return m_dInfo[8]; } set { m_dInfo[8] = value; } }


        /// <summary>
        /// 빌분리 번호
        /// </summary>
        public long BillSplitNo { get { return m_nInfo[0]; } set { m_nInfo[0] = value; } }

        /// <summary>
        /// 세트상품 그룹 현재 등록 위치
        /// </summary>
        public long SetPluGroupPos { get { return m_nInfo[1]; } set { m_nInfo[1] = value; } }
        /// <summary>
        /// 세트상품 그룹 현재 등록 수량
        /// </summary>
        public long SetPluGroupCnt { get { return m_nInfo[2]; } set { m_nInfo[2] = value; } }
        
        /// <summary>
        /// 부가메뉴 현재 등록 위치
        /// </summary>
        public long SubMenuSelectPos { get { return m_nInfo[3]; } set { m_nInfo[3] = value; } }

        /// <summary>
        /// 세브란스 직원식 상품 등록 여부 (0:미등록, 1:직원식 상품 등록되어 있음)
        /// </summary>
        public bool SetSeveranceiTemUse { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }
        /// <summary>
        /// 세브란스 직원식 메뉴 결제 가능 Flag (00:무조건 직원카드만, 20:일반결제 가능)
        /// </summary>
        public bool SetSeveranceNormalPay { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }
        /// <summary>
        /// 소계전/후 구분 false : 소계전, True:소계후
        /// </summary>
        public bool SubTotalCancelDiv { get { return m_bInfo[2]; } set { m_bInfo[2] = value; } }
        //17.08.22 dkshin SS 해피오더
        /// <summary>
        /// 매출 처리 시 영수증 출력 여부
        /// </summary>
        public bool SSHappyOrderSalePrint { get { return m_bInfo[3]; } set { m_bInfo[3] = value; } }

        

        public void Clear()
        {
            for (int i = 0; i < m_sInfo.Length; i++) { m_sInfo[i] = ""; }
            for (int j = 0; j < m_dInfo.Length; j++) { m_dInfo[j] = 0; }
            for (int j = 0; j < m_nInfo.Length; j++) { m_nInfo[j] = 0; }
            for (int j = 0; j < m_bInfo.Length; j++) { m_bInfo[j] = false; }
        }

        public TranSaleInfo Clone()
        {
            TranSaleInfo TranSale = new TranSaleInfo();
            TranSale.m_dInfo = (double[])this.m_dInfo.Clone();
            TranSale.m_nInfo = (long[])this.m_nInfo.Clone();
            TranSale.m_sInfo = (string[])this.m_sInfo.Clone();
            TranSale.m_bInfo = (bool[])this.m_bInfo.Clone();
            return TranSale;
        }
    }

    /// <summary>
    /// Device 상태 정보 : StateObject 객체를 통해 참조 가능(StateServer)
    /// </summary>
    public class DeviceStatus : StatusAbstract
    {
        // Basic Device (기본장치)
        public ScannerInfo Scanner = new ScannerInfo();                                 // SCANNER
        public PrinterInfo Printer = new PrinterInfo();                                 // PRINTER
        public CdpInfo Cdp = new CdpInfo();                                             // CDP
        public MsrInfo Msr = new MsrInfo();                                             // MSR
        public CashdrawerInfo Cashdrawer = new CashdrawerInfo();                        // CASHDRAWER
        public UniDongleInfo UniDongle = new UniDongleInfo();                           // UniDongle
        public CatTerminalInfo CatTerminal = new CatTerminalInfo();                     // CAT Terminal
        public ICReaderInfo ICReader = new ICReaderInfo();                              // IC Reader
        public LineDisplayInfo LineDisplay = new LineDisplayInfo();                     // LineDisplay
        public ScaleInfo Scale = new ScaleInfo();                                       // Scale
        public ScalePoleDisplay ScalePoleDisplay = new ScalePoleDisplay();              // ScalePoleDisplay
        public LabelPrinterInfo LabelPrinter = new LabelPrinterInfo();                  // Label Printer
        public SignPadInfo SignPad = new SignPadInfo();                                 // SignPad
        // Device Event 정보
        public EventInfo Event = new EventInfo();                   // EVENT


        /// <summary>
        /// ---------------------------------------------------------------------------------
        /// Data Initialization (데이타 초기화)
        /// ---------------------------------------------------------------------------------
        /// </summary>
        /// <returns></returns>
        public override void ClearAll()
        {
            Scanner.Clear();
            Printer.Clear();
            Cdp.Clear();
            Msr.Clear();
            Cashdrawer.Clear();
            UniDongle.Clear();
            CatTerminal.Clear();
            ICReader.Clear();
            SignPad.Clear();
            LineDisplay.Clear();
            Scale.Clear();
            ScalePoleDisplay.Clear();
        }

        /// <summary>
        /// ---------------------------------------------------------------------------------
        /// 입력장치의 입력된 데이타 초기화
        /// ---------------------------------------------------------------------------------
        /// </summary>
        /// <returns></returns>
        public void DataClearAll()
        {
            Scanner.DataClear();
            Msr.DataClear();
            UniDongle.DataClear();
            Scale.DataClear();
        }
    }

    /// <summary>
    /// POS 설정 정보
    /// </summary>
    public class PosConfigInfo
    {
        public const int MAX_INFOCOUNT = 200;

        private string[] m_Info = new string[MAX_INFOCOUNT];
        private double[] m_dInfo = new double[MAX_INFOCOUNT];
        private long[] m_nInfo = new long[MAX_INFOCOUNT];
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];

        /// <summary>
        /// 회사코드
        /// </summary>
        public string CmpCd { get { return m_Info[0]; } set { m_Info[0] = value; } }
        /// <summary>
        /// 브랜드코드
        /// </summary>
        public string BrandCd { get { return m_Info[1]; } set { m_Info[1] = value; } }
        /// <summary>
        /// 점포코드
        /// </summary>
        public string StoreNo { get { return m_Info[2]; } set { m_Info[2] = value; } }              
        /// <summary>
        /// POS번호
        /// </summary>
        public string PosNo { get { return m_Info[3]; } set { m_Info[3] = value; } }
        /// <summary>
        /// POS 유형 (PosConst.POS_TYPE => 0:선불, 1:후불)
        /// </summary>
        public string PosType { get { return m_Info[4]; } set { m_Info[4] = value; } }
        /// <summary>
        /// 디자인 타입
        /// </summary>
        public string DesignType { get { return m_Info[5]; } set { m_Info[5] = value; } }
        /// <summary>
        /// 테마 컬러
        /// </summary>
        public string ThemeType { get { return m_Info[6]; } set { m_Info[6] = value; } }

        /// <summary>
        /// 문화 코드
        /// </summary>
        public string CultureID { get { return m_Info[7]; } set { m_Info[7] = value; } }
        /// <summary>
        /// 화면 폰트
        /// </summary>
        public string FONT { get { return m_Info[8]; } set { m_Info[8] = value; } }
        /// <summary>
        /// 국가(언어)
        /// </summary>
        public string Country { get { return m_Info[9]; } set { m_Info[9] = value; } }
        
        /// <summary>
        /// Local DB명(IP)
        /// </summary>
        public string LocalDbSource { get { return m_Info[10]; } set { m_Info[10] = value; } }
        /// <summary>
        /// Local 기본DB
        /// </summary>
        public string LocalDbCatalog { get { return m_Info[11]; } set { m_Info[11] = value; } }
        /// <summary>
        /// Local 사용자ID
        /// </summary>
        public string LocalDbUserID { get { return m_Info[12]; } set { m_Info[12] = value; } }
        /// <summary>
        /// Local 사용자PWD
        /// </summary>
        public string LocalDbPassword { get { return m_Info[13]; } set { m_Info[13] = value; } }


        /// <summary>
        /// 영업일자
        /// </summary>
        public string SaleDate { get { return m_Info[14]; } set { m_Info[14] = value; } }             
        /// <summary>
        /// 영업개시상태(0:오픈전,1:영업개시)
        /// </summary>
        public string OpenClose { get { return m_Info[15]; } set { m_Info[15] = value; } }           
        /// <summary>
        /// 전문순번
        /// </summary>
        public string MsgSeqNo { get { return m_Info[16]; } set { m_Info[16] = value; } }             
        /// <summary>
        /// 등록번호
        /// </summary>
        public string RegNo { get { return m_Info[17]; } set { m_Info[17] = value; } }               
        /// <summary>
        /// 시작거래번호
        /// </summary>
        public string StartTradeNo { get { return m_Info[18]; } set { m_Info[18] = value; } }
        /// <summary>
        /// 거래 번호
        /// </summary>
        public string TradeNo { get { return m_Info[19]; } set { m_Info[19] = value; } }     

        /// <summary>
        /// 담당자번호
        /// </summary>
        public string CashierNo { get { return m_Info[20]; } set { m_Info[20] = value; } }            
        /// <summary>
        /// 담당자명
        /// </summary>
        public string CashierName { get { return m_Info[21]; } set { m_Info[21] = value; } }          
        /// <summary>
        /// 담당자권한그룹
        /// </summary>
        public string CashierAuth { get { return m_Info[22]; } set { m_Info[22] = value; } }
        /// <summary>
        /// 웹업무 비밀번호
        /// </summary>
        public string CashierWebPosPwd { get { return m_Info[23]; } set { m_Info[23] = value; } }

        /// <summary>
        /// 정기마스터 다운로드 최종일자
        /// </summary>
        public string MstDownDate { get { return m_Info[24]; } set { m_Info[24] = value; } }

        /// <summary>
        /// 테이블 유형
        /// </summary>
        public string TableType { get { return m_Info[25]; } set { m_Info[25] = value; } }
        /// <summary>
        /// POS통신 유형 (PosConst.POS_COMMUNICATION_TYPE => 0:SUB_POS, 1:MAIN_POS)
        /// </summary>
        public string PosCommunicationType { get { return m_Info[26]; } set { m_Info[26] = value; } }
        /// <summary>
        /// 결제 완료 구분 (0:결제미완료, 1:결제완료)
        /// </summary>
        public string PaymentCompleteFlag { get { return m_Info[27]; } set { m_Info[27] = value; } }

        /// <summary>
        /// 해피오더 폼 반환 모드
        /// </summary>
        public string HappyOrderMode { get { return m_Info[28]; } set { m_Info[28] = value; } }

        /// <summary>
        /// 메인포스번호  (후불일때)
        /// </summary>
        public string MainPosNo { get { return m_Info[32]; } set { m_Info[32] = value; } }
        /// <summary>
        /// 서브매장코드  (복합매장일때)
        /// </summary>
        public string SubShopNo { get { return m_Info[33]; } set { m_Info[33] = value; } }
        /// <summary>
        /// 서브매장명   (복합매장일때)
        /// </summary>
        public string SubShopNm { get { return m_Info[34]; } set { m_Info[34] = value; } }

        /// <summary>
        /// FTP 접속 방식(0:Active모드, 1:Passive모드)
        /// </summary>
        public string FtpConnType { get { return m_Info[36]; } set { m_Info[36] = value; } }

        //#20171107 통제관리 start, phj - 20171113
        /// <summary>
        /// 통제 비밀번호 
        /// </summary>
        public string CashierRtnPwd { get { return m_Info[37]; } set { m_Info[37] = value; } }
        //#20171107 통제관리 end, phj - 20171113

        /// <summary>
        /// 연습모드 설정
        /// </summary>
        public string TrainingFlag { get { return m_Info[50]; } set { m_Info[50] = value; } }
        /// <summary>
        /// 점주알바구분
        /// </summary>
        public string OwnPartDiv { get { return m_Info[51]; } set { m_Info[51] = value; } }
        /// <summary>
        /// 통신서버 IP
        /// </summary>
        public string CommSvrIp { get { return m_Info[52]; } set { m_Info[52] = value; } }
        /// <summary>
        /// 디지털메뉴보드 I/F 여부
        /// </summary>
        public string DmbIf { get { return m_Info[53]; } set { m_Info[53] = value; } }
        /// <summary>
        /// 디지털메뉴보드 서버 IP
        /// </summary>
        public string DmbSvrIp { get { return m_Info[54]; } set { m_Info[54] = value; } }
       
        /// <summary>
        /// 마스터 Background 다운로드 최종일자
        /// </summary>
        public string MstBatchDownDate { get { return m_Info[55]; } set { m_Info[55] = value; } }
        /// <summary>
        /// 영수증 상단 로고메시지 사용여부(0:사용 안 함, 1:사용 함)
        /// </summary>
        public string TextLogoMsgUseYn { get { return m_Info[56]; } set { m_Info[56] = value; } }
        /// <summary>
        /// 영수증 상단 로고메시지1
        /// </summary>
        public string TextLogoMsg1 { get { return m_Info[57]; } set { m_Info[57] = value; } }
        /// <summary>
        /// 영수증 상단 로고메시지2
        /// </summary>
        public string TextLogoMsg2 { get { return m_Info[58]; } set { m_Info[58] = value; } }
         
        ///// <summary>
        ///// Main POS DB명(IP)
        ///// </summary>
        //public string MainDbSource { get { return m_Info[55]; } set { m_Info[55] = value; } }
        ///// <summary>
        ///// Main POS 기본DB
        ///// </summary>
        //public string MainDbCatalog { get { return m_Info[56]; } set { m_Info[56] = value; } }
        ///// <summary>
        ///// Main POS 사용자ID
        ///// </summary>
        //public string MainDbUserID { get { return m_Info[57]; } set { m_Info[57] = value; } }
        ///// <summary>
        ///// Main POS 사용자PWD
        ///// </summary>
        //public string MainDbPassword { get { return m_Info[58]; } set { m_Info[58] = value; } }

        /// <summary>
        /// 화면 폰트(고정:저널용)
        /// </summary>
        public string FONT_FIX { get { return m_Info[59]; } set { m_Info[59] = value; } }
        /// <summary>
        /// 고속도로 휴게소 입점POS 여부(0:일반, 1:고속도록 휴게소 입점POS)
        /// </summary>
        //public string ExPos { get { return m_Info[60]; } set { m_Info[60] = value; } }
        /// <summary>
        /// 고속도로 휴게소 매장코드 (9 byte)
        /// </summary>
        //public string ExStoreCd { get { return m_Info[61]; } set { m_Info[61] = value; } }
        /// <summary>
        /// 고속도로 휴게소 코너코드 (4 byte)
        /// </summary>
        //public string ExCornerCd { get { return m_Info[62]; } set { m_Info[62] = value; } }
        /// <summary>
        /// 개점일시 
        /// </summary>
        public string OpenDateTime { get { return m_Info[63]; } set { m_Info[63] = value; } }
        /// <summary>
        /// 마감일시
        /// </summary>
        public string CloseDateTime { get { return m_Info[64]; } set { m_Info[64] = value; } }
        /// <summary>
        /// 한국공항공사 관리 공항 입점POS 여부(0:일반, 1:한국공항공사 관리 공항 입점POS)
        /// </summary>
        //public string KacPos { get { return m_Info[65]; } set { m_Info[65] = value; } }
        /// <summary>
        /// 한국공항공사 관리 공항 ERP상의 계약번호
        /// </summary>
        //public string KacConNo { get { return m_Info[66]; } set { m_Info[66] = value; } }
        /// <summary>
        /// KDS 전송 구분(0:전송 안 함, 1:전송 함)
        /// </summary>
        //public string KDSSend { get { return m_Info[67]; } set { m_Info[67] = value; } }
        /// <summary>
        /// KDS Server IP
        /// </summary>
        public string KDSSvrIp { get { return m_Info[68]; } set { m_Info[68] = value; } }
        /// <summary>
        /// 브랜드구분
        /// </summary>
        public string BrandDiv { get { return m_Info[69]; } set { m_Info[69] = value; } }
        /// <summary>
        /// 영수증로고이미지 프린터 업로드 여부(0:업로드 안 함, 1:업로드 함, 2:항상 업로드 함)
        /// (1일 경우 업로드 이후 0으로 변경 됨)
        /// </summary>
        public string LogoUpload { get { return m_Info[70]; } set { m_Info[70] = value; } }

        /// <summary>
        /// 시스템오픈일자 
        /// (이행시입력 하지만 무시하고, POS 기동시 IRT 조회 한다.)
        /// </summary>
        public string SysOpenDate { get { return m_Info[71]; } set { m_Info[71] = value; } }
        /// <summary>
        /// 마스터 다운 여부(0:마스터 다운 안 함, 1:마스터 다운)
        /// </summary>
        public string MasterDown { get { return m_Info[72]; } set { m_Info[72] = value; } }
        ///// <summary>
        ///// 외부업체 계약번호(도로공사, 공항공사 등)
        ///// </summary>
        //public string OutSDVendConNo { get { return m_Info[73]; } set { m_Info[73] = value; } }
        ///// <summary>
        ///// 외부업체 코너코드(도로공사)
        ///// </summary>
        //public string OutSDVendCrnrCd { get { return m_Info[74]; } set { m_Info[74] = value; } }
        
        /// <summary>
        /// POS프린터 제어 구분
        /// <para>1:RS232, 2:OPOS</para>
        /// </summary>
        public string OlePosPrinterController { get { return m_Info[101]; } set { m_Info[101] = value; } }
        /// <summary>
        /// Serial Port 번호
        /// </summary>
        public string OlePosPrinterSerialPortNumber { get { return m_Info[102]; } set { m_Info[102] = value; } }

        //#20171212 프린터 상태 체크 여부 추가 start
        /// <summary>
        /// POS프린터 상태체크 여부
        /// <para>0: 체크, 1: 체크안함</para>
        /// </summary>
        public string OlePosPrinterCheckYn { get { return m_Info[151]; } set { m_Info[151] = value; } }
        //#20171212 프린터 상태 체크 여부 추가 end

        /// <summary>
        /// POS프린터 모델
        /// <para>0:Epson, 1:Toshiba</para>
        /// </summary>
        public string OlePosPrinterModel { get { return m_Info[103]; } set { m_Info[103] = value; } }
        /// <summary>
        /// 프린터사이즈(0:42Byte)
        /// </summary>
        public string OptBillPrintSize { get { return m_Info[104]; } set { m_Info[104] = value; } }
        //===================================================================================================
        /// <summary>
        /// IC READER COM PORT 번호
        /// </summary>
        public string OlePosICReaderSerialPortNumber { get { return m_Info[105]; } set { m_Info[105] = value; } }
        /// <summary>
        /// IC READER  Model
        /// </summary>
        public string OlePosICReaderModel { get { return m_Info[106]; } set { m_Info[106] = value; } }
        /// <summary>
        /// IC READER 단말기 번호
        /// </summary>
        public string OlePosICReaderSerialNumber { get { return m_Info[107]; } set { m_Info[107] = value; } }
        /// <summary>
        /// CAT 단말기 Serial Port 번호
        /// </summary>
        public string OlePosCATSerialPortNumber { get { return m_Info[108]; } set { m_Info[108] = value; } }
        //===================================================================================================
        /// <summary>
        /// CashDrawer 타입(1:프린터, 2:OPOS-IBM, 3:DLL-TPS8700, 4:DLL-VPS9700, 5:IBM-본체)
        /// </summary>
        public string OlePosCashDrawerType { get { return m_Info[109]; } set { m_Info[109] = value; } }
        //===================================================================================================
        /// <summary>
        /// 유선저울 Serial Port 번호
        /// </summary>
        public string OlePosScaleSerialPortNumber { get { return m_Info[110]; } set { m_Info[110] = value; } }
        //===================================================================================================
        /// <summary>
        /// 사인패드 Serial Port 번호
        /// </summary>
        public string OlePosSignPadSerialPortNumber { get { return m_Info[111]; } set { m_Info[111] = value; } }
        /// <summary>
        ///
        /// </summary>
        public string OlePosSignPadAutoFlag { get { return m_Info[112]; } set { m_Info[112] = value; } }
        /// <summary>
        /// 서명패드 모델(Model)
        /// </summary>
        public string OlePosSignPadModel { get { return m_Info[113]; } set { m_Info[113] = value; } }
        //===================================================================================================
        /// <summary>
        /// 라벨프린터 Serial Port 번호
        /// </summary>
        public string OlePosLabelPrinterSerialPortNumber { get { return m_Info[115]; } set { m_Info[115] = value; } }
        /// <summary>
        /// 라벨프린터 모델 (0:구형, 1:신형)
        /// </summary>
        public string OlePosLabelPrinterModel { get { return m_Info[116]; } set { m_Info[116] = value; } }
        /// <summary>
        /// 일반공지 업데이트 일자
        /// </summary>
        public string RegularNoticeUpdateDT { get { return m_Info[117]; } set { m_Info[117] = value; } }
        /// <summary>
        /// 긴급공지 업데이트 일자
        /// </summary>
        public string EmergencyNoticeUpdateDT { get { return m_Info[118]; } set { m_Info[118] = value; } }
        /// <summary>
        /// 영업공지-오늘의 할 일 업데이트 일자
        /// </summary>
        public string SaleNoticeUpdateDT1 { get { return m_Info[119]; } set { m_Info[119] = value; } }
        /// <summary>
        /// 영업공지-식품안전메시지 업데이트 일자
        /// </summary>
        public string SaleNoticeUpdateDT2 { get { return m_Info[120]; } set { m_Info[120] = value; } }

        //===================================================================================================
        /// <summary>
        /// CDP 연결유형(1:RS-232)
        /// </summary>
        public string OleCdpController { get { return m_Info[121]; } set { m_Info[121] = value; } }
        /// <summary>
        /// CDP 시리얼포트 번호
        /// </summary>
        public string OleCdpSerialPortNumber { get { return m_Info[122]; } set { m_Info[122] = value; } }
        /// <summary>
        /// CDP 모델
        /// </summary>
        public string OleCdpModel { get { return m_Info[123]; } set { m_Info[123] = value; } }
        //===================================================================================================
        /// <summary>
        /// CashDrawer 
        /// </summary>
        public string OlePosCashDrawerSerialPortNumber { get { return m_Info[124]; } set { m_Info[124] = value; } }
        //===================================================================================================
        /// <summary>
        /// ScalePoleDisplay
        /// </summary>
        public string OleScalePoleDisplayPortNumber { get { return m_Info[125]; } set { m_Info[125] = value; } }

        /// <summary>
        /// POS 프린터 POS PRINTER (상태)
        /// </summary>
        public string OlePosPrinterStatus { get { return m_Info[131]; } set { m_Info[131] = value; } }
        /// <summary>
        /// 스캐너 SCANNER (상태)
        /// </summary>
        public string OlePosScannerStatus { get { return m_Info[132]; } set { m_Info[132] = value; } }
        /// <summary>
        /// ICREADER (상태)
        /// </summary>
        public string OlePosICReaderStatus { get { return m_Info[133]; } set { m_Info[133] = value; } }
        /// <summary>
        /// CAT 단말기 (상태)
        /// </summary>
        public string OlePosCATStatus { get { return m_Info[134]; } set { m_Info[134] = value; } }
        /// <summary>
        /// 돈통 CASHDRAWER (상태)
        /// </summary>
        public string OlePosCashDrawerStatus { get { return m_Info[135]; } set { m_Info[135] = value; } }
        /// <summary>
        /// 저울 SCALE (상태)
        /// </summary>
        public string OlePosScaleStatus { get { return m_Info[136]; } set { m_Info[136] = value; } }
        /// <summary>
        /// 서명패드 SIGNPAD (상태)
        /// </summary>
        public string OlePosSignPadStatus { get { return m_Info[138]; } set { m_Info[138] = value; } }
        /// <summary>
        /// 라벨프린터 LABELPRINTER (상태)
        /// </summary>
        public string OlePosLabelPrinterStatus { get { return m_Info[139]; } set { m_Info[139] = value; } }
        /// <summary>
        /// 카드리더 MSR (상태)
        /// </summary>
        public string OlePosMsrStatus { get { return m_Info[140]; } set { m_Info[140] = value; } }
        

        /// <summary>
        /// 여전법 인증버전
        /// </summary>
        public string Auth_POS_SW_Ver { get { return m_Info[141]; } set { m_Info[141] = value; } }
        /// <summary>
        /// KSN_IC_Download
        /// </summary>
        public string KSN_IC_Download { get { return m_Info[142]; } set { m_Info[142] = value; } }
        /// <summary>
        /// KSN_Signpad_Download
        /// </summary>
        public string KSN_SignPad_Download { get { return m_Info[143]; } set { m_Info[143] = value; } }

        /// <summary>
        /// 서버연결상태 Network (상태)
        /// </summary>
        public string OlePosNetworkStatus { get { return m_Info[144]; } set { m_Info[144] = value; } }

        /// <summary>
        /// 중간마감 차수
        /// </summary>
        public string MidCloseSeq { get { return m_Info[145]; } set { m_Info[145] = value; } }

        /// <summary>
        /// 폴디스플레이 (상태)
        /// </summary>
        public string OlePosScalePoleDispStatus { get { return m_Info[146]; } set { m_Info[146] = value; } }

        /// <summary>
        /// CAT Terminal Model
        /// </summary>
        public string OlePosCATModel { get { return m_Info[147]; } set { m_Info[147] = value; } }
        /// <summary>
        /// MSR 제어 구분
        /// 1:USB(KeybordWedge), 2:Serial(에뮬레이터)
        /// </summary>
        public string OlePosMsrController { get { return m_Info[148]; } set { m_Info[148] = value; } }
        /// <summary>
        /// MSR SerialPort Number
        /// </summary>
        public string OlePosMsrSerialPortNumber { get { return m_Info[149]; } set { m_Info[149] = value; } }
        /// <summary>
        /// MSR Modle
        /// </summary>
        public string OlePosMsrModel { get { return m_Info[150]; } set { m_Info[150] = value; } }

        //#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 start

        /// <summary>
        /// 제조음료 Take In/Out 사용여부(0:미사용, 1:사용)
        /// </summary>
        public string ProdTakeInOutUse { get { return m_Info[151]; } set { m_Info[151] = value; } }

        /// <summary>
        /// 제조음료 Take In/Out 기본값(1:Take In, 2:Take Out)
        /// </summary>
        public string ProdTakeInOutDiv { get { return m_Info[152]; } set { m_Info[152] = value; } }

        //#16232 환경부 1회용컵 사용줄이기 관련 테이크인아웃 설정 end

        /// <summary>
        ///  2019-03-21 - 1997fx11 : Kiosk 관련 신상품 마지막업데이트일자 추가
        /// </summary>
        public string NewProductUpdateDT { get { return m_Info[153]; } set { m_Info[153] = value; } }


        /// <summary>
        /// CMS 서버 IP
        /// </summary>
        /// <remarks>2019-02-25 - 1997fx11</remarks>
        public string CmsSvrIp { get { return m_Info[154]; } set { m_Info[154] = value; } }
        



        public string LastRcptBarcodeData { get { return m_Info[199]; } set { m_Info[199] = value; } }


        #region 주석 처리...CHOCY 2016/05/13
        ///// <summary>
        ///// 핸드스캐너
        ///// </summary>
        //public string OleGunScan { get { return m_Info[21]; } set { m_Info[21] = value; } }
        ///// <summary>
        ///// POS프린터
        ///// </summary>
        //public string OlePosPrint { get { return m_Info[22]; } set { m_Info[22] = value; } }
        ///// <summary>
        ///// 캐셔돈통
        ///// <para>0.미사용 1.프린터</para>
        ///// </summary>
        //public string OleCashDrawer { get { return m_Info[23]; } set { m_Info[23] = value; } }
        ///// <summary>
        ///// MSR
        ///// </summary>
        //public string OleMsr { get { return m_Info[24]; } set { m_Info[24] = value; } }
        ///// <summary>
        ///// 통합동글 사용여부(0:미사용,1:사용) = CONTROL에서 이동
        ///// </summary>
        //public string OleUniDongle { get { return m_Info[25]; } set { m_Info[25] = value; } }
        ///// <summary>
        ///// 통합동글 PORT
        ///// </summary>
        //public string OleUniDonglePort { get { return m_Info[26]; } set { m_Info[26] = value; } }
        #endregion

        /// <summary>
        /// 트란 송신 PORT
        /// </summary>
        public long TranPort { get { return m_nInfo[0]; } set { m_nInfo[0] = value; } }
        /// <summary>
        /// 트란 송신 Timeout
        /// </summary>
        public long TranTimeout { get { return m_nInfo[1]; } set { m_nInfo[1] = value; } }
        /// <summary>
        /// 저널 송신 PORT
        /// </summary>
        public long JrnlPort { get { return m_nInfo[2]; } set { m_nInfo[2] = value; } }
        /// <summary>
        /// 저널 송신 Timeout
        /// </summary>
        public long JrnlTimeout { get { return m_nInfo[3]; } set { m_nInfo[3] = value; } }
        /// <summary>
        /// SYSTEM INFO 설정 / 긴급메시지 조회 요청 IRT PORT
        /// </summary>
        public long SysInfoPort { get { return m_nInfo[4]; } set { m_nInfo[4] = value; } }
        /// <summary>
        /// 트란 조회 요청 IRT PORT
        /// </summary>
        public long TranInqPort { get { return m_nInfo[5]; } set { m_nInfo[5] = value; } }
        /// <summary>
        /// 결락 조회 요청 IRT PORT
        /// </summary>
        public long MissChkPort { get { return m_nInfo[6]; } set { m_nInfo[6] = value; } }
        /// <summary>
        /// 결제 / 할인 조회 요청 IRT PORT
        /// </summary>
        public long PayInqPort { get { return m_nInfo[7]; } set { m_nInfo[7] = value; } }
        /// <summary>
        /// 메시지 조회 요청 / 점포 업무 서비스 요청 IRT PORT
        /// </summary>
        public long BizInqPort { get { return m_nInfo[8]; } set { m_nInfo[8] = value; } }
        /// <summary>
        /// 전자 사인 로그 수신 IRT PORT
        /// </summary>
        public long SignLogPort { get { return m_nInfo[9]; } set { m_nInfo[9] = value; } }
        /// <summary>
        /// 결제 승인 및 취소 로그 수신 IRT PORT
        /// </summary>
        public long PayLogPort { get { return m_nInfo[10]; } set { m_nInfo[10] = value; } }
        /// <summary>
        /// 기타 APP LOG 수신 IRT PORT
        /// </summary>
        public long AppLogPort { get { return m_nInfo[11]; } set { m_nInfo[11] = value; } }
        /// <summary>
        /// IC READER  Serial Baudrate
        /// </summary>
        public long OlePosICReaderSerialBaudRate { get { return m_nInfo[12]; } set { m_nInfo[12] = value; } }
        /// <summary>
        /// 로그 레벨
        /// </summary>
        public long LogLevel { get { return m_nInfo[13]; } set { m_nInfo[13] = value; } }           
        /// <summary>
        /// Serial Baud Rate
        /// </summary>
        public long OlePosPrinterSerialBaudRate { get { return m_nInfo[14]; } set { m_nInfo[14] = value; } }
        /// <summary>
        /// CAT 단말기 Serial Baudrate
        /// </summary>
        public long OlePosCATSerialBaudRate { get { return m_nInfo[15]; } set { m_nInfo[15] = value; } }
        /// <summary>
        /// CAT 단말기 Timeout
        /// </summary>
        public long OlePosCATTimeout { get { return m_nInfo[16]; } set { m_nInfo[16] = value; } }
        /// <summary>
        /// 저울 Serial Baudrate
        /// </summary>
        public long OlePosScaleSerialBaudRate { get { return m_nInfo[17]; } set { m_nInfo[17] = value; } }
        /// <summary>
        /// 사인패드 Serial Baudrate
        /// </summary>
        public long OlePosSignPadSerialBaudRate { get { return m_nInfo[18]; } set { m_nInfo[18] = value; } }
        /// <summary>
        /// 
        /// </summary>
        public long OlePosSignPadMinCnt { get { return m_nInfo[19]; } set { m_nInfo[19] = value; } }
        /// <summary>
        /// 
        /// </summary>
        public long OlePosSignPadTimeOut { get { return m_nInfo[20]; } set { m_nInfo[20] = value; } }
        /// <summary>
        /// 서명패드 업데이트 파일 생성일자
        /// </summary>
        public long OlePosSignPadFileDate { get { return m_nInfo[21]; } set { m_nInfo[21] = value; } }
        /// <summary>
        /// 라벨프린터 Serial Baudrate
        /// </summary>
        public long OlePosLabelPrinterSerialBaudRate { get { return m_nInfo[23]; } set { m_nInfo[23] = value; } }
        /// <summary>
        /// 마스터 전송 요청 IRT 포트
        /// </summary>
        public long MstPort { get { return m_nInfo[24]; } set { m_nInfo[24] = value; } }
        /// <summary>
        /// 2019-02-25 - 1997fx11 : Kiosk 전송 요청 IRT 포트
        /// </summary>
        public long CmsPort { get { return m_nInfo[33]; } set { m_nInfo[33] = value; } }
        /// <summary>
        /// 2019-03-20 - 1997fx11 : Kiosk 전송 요청 IRT 포트2
        /// </summary>
        public long KioskPort { get { return m_nInfo[34]; } set { m_nInfo[34] = value; } }
        /// <summary>
        /// ETC 트란 송신 PORT
        /// </summary>
        public long EtcTranPort { get { return m_nInfo[25]; } set { m_nInfo[25] = value; } }
        /// <summary>
        /// KDS Server PORT
        /// </summary>
        public long KDSSvrPort { get { return m_nInfo[26]; } set { m_nInfo[26] = value; } }
        /// <summary>
        /// 디지털메뉴보드 서버 Port
        /// </summary>
        public long DmbIfPort { get { return m_nInfo[27]; } set { m_nInfo[27] = value; } }
        /// <summary>
        /// CDP Serial Baudrate
        /// </summary>
        public long OleCdpSerialBaudRate { get { return m_nInfo[28]; } set { m_nInfo[28] = value; } }
        /// <summary>
        /// SCALE LOG 송신 PORT
        /// </summary>
        public long ScaleLogPort { get { return m_nInfo[29]; } set { m_nInfo[29] = value; } }
        /// <summary>
        /// CashDrawer Serial Baudrate
        /// </summary>
        public long OlePosCashDrawerBaudRate { get { return m_nInfo[30]; } set { m_nInfo[30] = value; } }
        /// <summary>
        /// ScalePoleDisplay Serial Baudrate
        /// </summary>
        public long OleScalePoleDisplayBaudRate { get { return m_nInfo[31]; } set { m_nInfo[31] = value; } }
        /// <summary>
        /// MSR Serial Baudrate
        /// </summary>
        public long OlePosMsrSerialBaudRate { get { return m_nInfo[32]; } set { m_nInfo[32] = value; } }

        /// <summary>
        /// 데이터 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_Info.Length; i++) { m_Info[i] = ""; }
            for (int i = 0; i < m_dInfo.Length; i++) { m_dInfo[i] = 0; }
            for (int i = 0; i < m_nInfo.Length; i++) { m_nInfo[i] = 0; }
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
        }
    }

    /// <summary>
    /// POS 상태 정보
    /// </summary>
    public class SaleFlowInfo
    {
        public const int MAX_INFOCOUNT = 100;

        private string[] m_sInfo = new string[MAX_INFOCOUNT];
        private double[] m_dInfo = new double[MAX_INFOCOUNT];
        private long[] m_nInfo = new long[MAX_INFOCOUNT];
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];

        /// <summary>
        /// 판매진행상태
        /// </summary>
        public string SaleFlow { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        /// <summary>
        /// ONLINE 상태(0:OFF, 1:ON)
        /// </summary>
        public string OnLineStatus { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        /// <summary>
        /// 테이블 선택 정보 (미사용)
        /// </summary>
        public string TableInfo { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }
        /// <summary>
        /// 프로그램 종료 형태 정보(SYS_SHUTDOWN)
        /// </summary>
        public string SysShutDown { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }
        /// <summary>
        /// 더치페이 플래그 1:상품, 2:금액, 그외 아님!
        /// </summary>
        public string DutchPayFlg { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }
        /// <summary>
        /// 화면보호기 작동대기시간
        /// </summary>
        public string ScreenSaverTime { get { return m_sInfo[5]; } set { m_sInfo[5] = value; } }
        /// <summary>
        /// 해피오더 일반 주문접수 Count
        /// </summary>
        public string HappyOrderRegCnt { get { return m_sInfo[6]; } set { m_sInfo[6] = value; } }
        /// <summary>
        /// 해피오더 상품준비 Count
        /// </summary>
        public string HappyOrderProductReadyCnt { get { return m_sInfo[7]; } set { m_sInfo[7] = value; } }
        /// <summary>
        /// 해피오더 픽업대기 Count
        /// </summary>
        public string HappyOrderPickupWaitCnt { get { return m_sInfo[8]; } set { m_sInfo[8] = value; } }
        /// <summary>
        /// 해피오더 픽업지연 Count
        /// </summary>
        public string HappyOrderPickupDelayCnt { get { return m_sInfo[9]; } set { m_sInfo[9] = value; } }
        /// <summary>
        /// 해피오더 픽업지연미픽업 Count
        /// </summary>
        public string HappyOrderNoPickupAndDelayCnt { get { return m_sInfo[10]; } set { m_sInfo[10] = value; } }
        /// <summary>
        /// 해피오더 배달요청 Count
        /// </summary>
        public string HappyOrderDeliveryRequestCnt { get { return m_sInfo[11]; } set { m_sInfo[11] = value; } }
        /// <summary>
        /// 해피오더 배달 주문접수 Count("status"="9005")
        /// </summary>
        public string HappyOrderDeliveryRegCnt { get { return m_sInfo[12]; } set { m_sInfo[12] = value; } }
        /// <summary>
        /// 해피오더 배달중 Count
        /// </summary>
        public string HappyOrderDeliveryingCnt { get { return m_sInfo[13]; } set { m_sInfo[13] = value; } }
        /// <summary>
        /// 빚은몰 주문 Count
        /// </summary>
        public string BizeunOrderCnt { get { return m_sInfo[14]; } set { m_sInfo[14] = value; } }
        /// <summary>
        /// 이지웰 주문 Count
        /// </summary>
        public string EzwelOrderCnt { get { return m_sInfo[15]; } set { m_sInfo[15] = value; } }
        /// <summary>
        /// 기타모드 (후불POS 판매화면 조작)
        /// </summary>
        public string EtcOperateMode { get { return m_sInfo[16]; } set { m_sInfo[16] = value; } }
        /// <summary>
        /// 선택 층코드 
        /// </summary>
        public string SelectFloorCd { get { return m_sInfo[17]; } set { m_sInfo[17] = value; } }
        /// <summary>
        /// 선택 층명
        /// </summary>
        public string SelectFloorNm { get { return m_sInfo[18]; } set { m_sInfo[18] = value; } }
        /// <summary>
        /// 선택 테이블번호 
        /// </summary>
        public string SelectTableNo { get { return m_sInfo[19]; } set { m_sInfo[19] = value; } }
        /// <summary>
        /// 결제스텝
        /// </summary>
        public string SaleMainPayStep { get { return m_sInfo[20]; } set { m_sInfo[20] = value; } }
        /// <summary>
        /// 주방프린터 출력 오류코드 
        /// Blank:정상 
        /// 0001:Print Open Error 
        /// 0002:Print Claim Error
        /// 0003:Print Power Off Error
        /// 0004:Cover Open Error
        /// 0005:No Paper Error
        /// 9999:Etc Error
        /// XXXX:주방프린터와 영수증프린터가 동일장비일때
        /// </summary>
        public string KtchPrintErrorCode { get { return m_sInfo[21]; } set { m_sInfo[21] = value; } }

        /// <summary>
        /// 해피오더 예약 주문접수 Count
        /// </summary>
        public string HappyOrderReservedRegCnt { get { return m_sInfo[22]; } set { m_sInfo[22] = value; } }
        /// <summary>
        /// 해피오더 총 주문접수 Count
        /// </summary>
        public string HappyOrderTotRegCnt { get { return m_sInfo[23]; } set { m_sInfo[23] = value; } }
        /// <summary>
        /// 해피오더 배달접수 Count("status"="4")
        /// </summary>
        public string HappyOrderDeliveryOrderRegCnt { get { return m_sInfo[24]; } set { m_sInfo[24] = value; } }
        /// <summary>
        /// 더치페이진행중 플래그(1:진행중 그외 최초등록중)
        /// </summary>
        public string PayingDutchFlag { get { return m_sInfo[25]; } set { m_sInfo[25] = value; } }
        /// <summary>
        /// 웹포스 접속후 마스터 다운 여부
        /// </summary>
        public string WebPosAfterDown { get { return m_sInfo[26]; } set { m_sInfo[26] = value; } }
        /// <summary>
        /// 선택 테이블명 
        /// </summary>
        public string SelectTableNm { get { return m_sInfo[27]; } set { m_sInfo[27] = value; } }

        //grayber@20180306 해피오더 주문가능 상태 추가 start - 전역변수 추가
        /// <summary>
        /// 해피오더 배달 가능 상태 여부
        /// :"" , 값없음
        /// :"Y", 해피오더 주문 가능
        /// :"N", 해피오더 주문 불가
        /// </summary>
        public string DeliverySupport { get { return m_sInfo[28]; } set { m_sInfo[28] = value; } }
        //grayber@20180306 해피오더 주문가능 상태 추가 end

        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 start
        /// <summary>
        /// 해피오더 직접배달 Count
        /// </summary>
        public string HappyOrderDeliveryDirectCnt { get { return m_sInfo[29]; } set { m_sInfo[29] = value; } }
        //#20180328 직접배달 처리 후 배달완료시 매출 생성 안되는 증상 수정 end

        //#20180605 해피오더 개선 start
         
        //즉시주문, 예약주문 알림
        /// <summary>
        /// 해피오더 즉시픽업 Count
        /// </summary>
        public string HappyOrderDirectCnt { get { return m_sInfo[30]; } set { m_sInfo[30] = value; } }

        /// <summary>
        /// 해피오더 즉시배달 Count
        /// </summary>
        public string HappyOrderReservCnt { get { return m_sInfo[31]; } set { m_sInfo[31] = value; } }
        
        //#20180605 해피오더 개선 end

        //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 start
        /// <summary>
        /// 해피오더 실시간 추가재고 알림
        /// </summary>
        public string HappyOrderInventoryYN { get { return m_sInfo[32]; } set { m_sInfo[32] = value; } }
        //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 end

        //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 start
        /// <summary>
        /// 해피오더 배달 상품준비
        /// </summary>
        public string HappyOrderDeliveryProductReadyCnt { get { return m_sInfo[33]; } set { m_sInfo[33] = value; } }
        //#20180910 배달의 상품준비가 픽업 건들으로 집계되는 현상 수정 end
         
        /// <summary>
        /// 받은 금액
        /// </summary>
        public double PayRecvedAmt { get { return m_dInfo[0]; } set { m_dInfo[0] = value; } }
        /// <summary>
        /// 현금 거스름돈
        /// </summary>
        public double ChangeCashAmt { get { return m_dInfo[1]; } set { m_dInfo[1] = value; } }

        /// <summary>
        /// 거래보류 건수
        /// </summary>
        public long PosSaveCount { get { return m_nInfo[0]; } set { m_nInfo[0] = value; } }
        /// <summary>
        /// 트란 발생건수
        /// </summary>
        public long TranTotCount { get { return m_nInfo[1]; } set { m_nInfo[1] = value; } }
        /// <summary>
        /// 트란 전송건수
        /// </summary>
        public long TranSndCount { get { return m_nInfo[2]; } set { m_nInfo[2] = value; } }
        /// <summary>
        /// 저널 발생건수
        /// </summary>
        public long JourTotCount { get { return m_nInfo[3]; } set { m_nInfo[3] = value; } }
        /// <summary>
        /// 저널 전송건수
        /// </summary>
        public long JourSndCount { get { return m_nInfo[4]; } set { m_nInfo[4] = value; } }
        /// <summary>
        /// 캐셔화면 사이즈
        /// </summary>
        public long ScreenSizeUser { get { return m_nInfo[5]; } set { m_nInfo[5] = value; } }
        /// <summary>
        /// 고객화면 사이즈
        /// </summary>
        public long ScreenSizeCust { get { return m_nInfo[6]; } set { m_nInfo[6] = value; } }


        /// <summary>
        /// 해피오더 신규주문 알람 여부
        /// </summary>
        public bool HappyOrderAlarm { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }

        //#20180605 해피오더 개선 start - 20180618
        public bool bPayCompleteYN { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }
        //#20180605 해피오더 개선 end - 20180618

        /// <summary>
        /// ---------------------------------------------------------------------------------
        /// Data Initialization (데이타 초기화)
        /// ---------------------------------------------------------------------------------
        /// </summary>
        /// <returns></returns>
        public void Clear()
        {
            for (int i = 0; i < m_sInfo.Length; i++) { m_sInfo[i] = ""; }
            for (int i = 0; i < m_dInfo.Length; i++) { m_dInfo[i] = 0; }
            for (int i = 0; i < m_nInfo.Length; i++) { m_nInfo[i] = 0; }
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
        }

        //******************************************************************
        // (2017.11.01) 해피포인트 제휴할인 선리딩 처리를 위한 전역변수 선언
        //------------------------------------------------------------------
        // - 선리딩 내역 : string[] strPriorReading_Title = new string[2]
        // - 해피포인트 카드 번호 : string strHappyPointCardNo
        //                          string strHappyPointCardNo_Title 
        // - 제휴할인 카드 번호 : string strMobileUnityCardNo
        //                        string strMobileUnityCardNo_Title 
        //******************************************************************
        #region 해피포인트 제휴할인 선리딩 처리를 위한 전역변수 선언

        /// <summary>
        /// 선리딩 내역
        /// </summary>
        public bool blnPriorDisplay = false;
        public string[] strPriorReading_Title = new string[2];
        /// <summary>
        /// 해피포인트 카드 번호
        /// </summary>
        public string strHappyPointCardNo = "";
        public string strHappyPointCardNo_Title = "";
        /// <summary>
        /// 제휴할인 카드 번호
        /// </summary>
        public string strMobileUnityCardNo = "";
        public string strMobileUnityCardNo_Title = "";

        #endregion

        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start
        #region 고객 구매이력 정보 표시 위한 전역변수 선언
        /// <summary>
        /// 고객 구매이력 정보
        /// </summary>
        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
        //기존
        //public string[] strBuyHist = new string[7];
        //변경

        //#15525 고객구매이력 수정 요청 start
        //VIP 여부 안내 표시
        //기존
        //public string[] strBuyHist = new string[10];
        //변경
        public string[] strBuyHist = new string[11];
        //#15525 고객구매이력 수정 요청 end

        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510

        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start, 20180510
        /// <summary>
        /// 단골고객여부
        /// </summary>
        public string sRegularYN = "";
        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end, 20180510
        
        #endregion
        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end

        //#15608 모바일쿠폰해피기프트카드 자동인식 기능 도입요청 start
        #region 모바일쿠폰 해피기프트카드 자동인식 기능
        public string strMobileCpnNo = "";
        public string strHappyGiftCardNo = "";
        #endregion
        //#15608 모바일쿠폰해피기프트카드 자동인식 기능 도입요청 end

        //#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 start
        /// <summary>
        /// SPC 임직원 여부('3A'이면 임직원)
        /// </summary>
        public string strEmpInfo = "";
        //#15169 임직원 해피App 바코드리딩 시 자동할인적용 개선요청 end
    }

    /// <summary> 
    /// Device Event Information (Device Event 정보)
    /// </summary>
    public class EventInfo
    {
        private const int MAX_INFOCOUNT = 8;
        private int[] m_nInfo = new int[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        public int EventHwnd { get { return m_nInfo[0]; } set { m_nInfo[0] = value; } }         //Event Notice Handle (이벤트 통지핸들)
        public string EventType { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }      //Event Type (이벤트 타입)

        public void Clear()
        {
            for (int i = 0; i < m_nInfo.Length; i++) { m_nInfo[i] = 0; }
            for (int i = 0; i < m_sInfo.Length; i++) { m_sInfo[i] = ""; }
        }
    }

    /// <summary>
    /// Printer Information (프린터 정보)
    /// </summary>
    public class PrinterInfo
    {
        public const int MAX_INFOCOUNT = 5;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }                 //Printer Open Yes/No (프린터 OPEN여부)
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }                //사용 여부

        public string TopLogoFileName { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }    //Top Logo Image Filename (상단로고 이미지파일명)
        public string ErrorStatus { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }        //Printer Error Status (프린터 에러 상태)
        public string DeviceName { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }         //DeviceName
        public string Status { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }             //Printer Status (프린터 상태)
        public string BottomLogoFileName { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } } //Bottom Logo Image Filename (하단로고 이미지파일명)

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
        }
    }

    //#20171227 인천공항 포스연동 start, phj
    public class IncheonAirportInfo
    {
        public const int MAX_INFOCOUNT = 99;
        private string[] m_sInfo = new string[MAX_INFOCOUNT];
        public string AirportIP { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        public string AirportUser { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        public string AirportPass { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }
        public string AirportComp { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }
        public string AirportStore { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }
        public string AirportPosNo { get { return m_sInfo[5]; } set { m_sInfo[5] = value; } }

        public void Clear()
        {
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
        }
    }
    //#20171227 인천공항 포스연동 end, phj

    //#20180322 휴게소pos매출연동 start,phj
    public class RestAreaPosInfo
    {
        public const int MAX_INFOCOUNT = 5;
        private string[] m_sInfo = new string[MAX_INFOCOUNT];
        public string RestAreaPosDir { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        public string RestAreaPosGroupCd { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        public string RestAreaPosPosGroupCd { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }
        public string RestAreaPosCd { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }
        public string RestAreaPosPosNo { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }


        public void Clear()
        {
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
        }
    }
    //#20180322 휴게소pos매출연동 end,phj

    public class CdpInfo
    {
        public const int MAX_INFOCOUNT = 5;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }

        public string Status { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }

        /// <summary>
        /// 데이터 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
        }
    }

    /// <summary>
    /// MSR Information (MSR 정보)
    /// </summary>
    public class MsrInfo
    {
        public const int MAX_INFOCOUNT = 7;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }         //MSR OPEN여부
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }        //사용 여부

        public string Track1Data { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }     //Track1 Data (트랙1데이터)
        public string Track2Data { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }     //Track2 Data (트랙2데이터)
        public string Track3Data { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }     //Track3 Data (트랙3데이터)
        public string Status { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }         //MSR Status (MSR 상태)
        public string DeviceName { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }     //MSR Device Name (MSR Device Name)
        public string STX { get { return m_sInfo[5]; } set { m_sInfo[5] = value; } }            //TrackII STX Character
        public string ETX { get { return m_sInfo[6]; } set { m_sInfo[6] = value; } }            //TrackII ETX Character

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
        }

        /// <summary>
        /// 장비에서 입력된 데이타 초기화
        /// </summary>
        public void DataClear()
        {
            Track1Data = string.Empty;
            Track2Data = string.Empty;
            Track3Data = string.Empty;
        }
    }

    /// <summary>
    /// UniDongle Information (프린터 정보)
    /// </summary>
    public class UniDongleInfo
    {
        public const int MAX_INFOCOUNT = 5;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }     //Open Yes/No (OPEN여부)
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }       //사용 여부

        public string Data { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }      //Data - 입력받은데이터
        public string EtcData { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }      //EtcData - 부가정보
        public string Status { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }      //Status (상태)
        public string State { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }      //State - UniDongle에서 입력받은 State
        public string ErrorMessage { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }      //ErrorMessage - UniDongle에서 발생되는 에러메세지

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
        }

        /// <summary>
        /// 장비에서 입력된 데이타 초기화
        /// </summary>
        public void DataClear()
        {
            Data = string.Empty;
            EtcData = string.Empty;
            State = string.Empty;
        }
    }

    /// <summary>
    /// CAT 단말기 정보
    /// </summary>
    public class CatTerminalInfo
    {
        public const int MAX_INFOCOUNT = 5;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }

        public string Data { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        public string Count { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        public string Status { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = string.Empty; }
        }

        /// <summary>
        /// 장비에서 입력된 데이타 초기화
        /// </summary>
        public void DataClear()
        {
            Data = string.Empty;
            Count = string.Empty;
        }
    }

    /// <summary>
    /// IC 리더기 정보
    /// </summary>
    public class ICReaderInfo
    {
        public const int MAX_INFOCOUNT = 5;
        public const int MAX_DATACOUNT = 10;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        public string[] Data = new string[MAX_DATACOUNT];
        
        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }

        public string DataCnt { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        public string RespCd { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        public string Status { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }
        public string VanIP { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }
        public string VanPort { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }

        /// <summary>
        /// IC리더기 무결성 검사 상태값
        /// </summary>
        public bool Integrity_IC_Status { get { return m_bInfo[2]; } set { m_bInfo[2] = value; } }
        /// <summary>
        /// 서명패드 무결성 검사 상태값
        /// </summary>
        public bool Integrity_SignPad_Status { get { return m_bInfo[3]; } set { m_bInfo[3] = value; } }

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = string.Empty; }
        }

        /// <summary>
        /// 장비에서 입력된 데이타 초기화
        /// </summary>
        public void DataClear()
        {
            for(int i = 0;i < MAX_DATACOUNT;i++)
            {
                Data[i] = string.Empty;
            }
        }
    }

    /// <summary>
    /// LineDisplay 정보
    /// </summary>
    public class LineDisplayInfo
    {
        public const int MAX_INFOCOUNT = 5;
        public const int MAX_DATACOUNT = 5;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }

        public string Status { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        public string DeviceName { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = string.Empty; }
        }
    }

    /// <summary>
    /// Scale 정보
    /// </summary>
    public class ScaleInfo
    {
        public const int MAX_INFOCOUNT = 5;
        public const int MAX_DATACOUNT = 5;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_DATACOUNT];

        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }

        public string Data { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        public string Status { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }
        public string Unit { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = string.Empty; }
        }

        /// <summary>
        /// 장비에서 입력된 데이타 초기화
        /// </summary>
        public void DataClear()
        {
            Data = string.Empty;
            Status = string.Empty;
            Unit = string.Empty;
        }
    }

    /// <summary>
    /// SclaePoleDisplay 정보
    /// </summary>
    public class ScalePoleDisplay
    {
        public const int MAX_INFOCOUNT = 5;
        public const int MAX_DATACOUNT = 5;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_DATACOUNT];

        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }

        public string Data { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }

        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = string.Empty; }
        }
    }

    /// <summary>
    /// 라벨프린터 정보
    /// </summary>
    public class LabelPrinterInfo
    {
        public const int MAX_INFOCOUNT = 5;
        public const int MAX_DATACOUNT = 10;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }

        public string Data { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        public string Status { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = string.Empty; }
        }

        /// <summary>
        /// 장비에서 입력된 데이타 초기화
        /// </summary>
        public void DataClear()
        {
            Data = string.Empty;
            Status = string.Empty;
        }
    }

    /// <summary>
    /// Alternate Scanner Information (Alternate Scanner 정보)
    /// </summary>
    public class ScannerInfo
    {
        private const int MAX_INFOCOUNT = 5;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }      //Scanner Open Yes/No (스캐너 Open여부)
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }       //사용 여부

        public string DataType { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }      //Scan Data Type (스캔데이터 타입)
        public string Data { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }      //Scan Data (All) (스캔데이터(전체))
        public string DataLabel { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }      //Scan Data Code (스캔데이터(코드))
        public string Status { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }      //Scanner Status (스캐너1 상태)
        public string DeviceName { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }      //Scanner Device Name (스캐너1 Device Name)

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
        }

        /// <summary>
        /// 장비에서 입력된 데이타 초기화
        /// </summary>
        public void DataClear()
        {
            Data = string.Empty;
            DataType = string.Empty;
            DataLabel = string.Empty;
        }
    }

    /// <summary>
    /// cashdrawer Information (cashdrawer 정보)
    /// </summary>
    public class CashdrawerInfo
    {
        public const int MAX_INFOCOUNT = 2;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }      //cashdrawer OPEN Yes/No (cashdrawer OPEN여부)
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }       //사용 여부

        public string Status { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }      //cashdrawer Status (cashdrawer 상태)
        public string DeviceName { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }      //cashdrawer Device Name
        /// <summary>
        /// Data Initialization (데이타 초기화)
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
        }
    }

    /// <summary>
    /// SignPad 정보
    /// </summary>
    public class SignPadInfo
    {
        public const int MAX_INFOCOUNT = 2;
        private bool[] m_bInfo = new bool[MAX_INFOCOUNT];
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        /// <summary>
        /// 상태정보
        /// </summary>
        public bool Open { get { return m_bInfo[0]; } set { m_bInfo[0] = value; } }
        public bool UseYn { get { return m_bInfo[1]; } set { m_bInfo[1] = value; } }

        public string Data { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        public string Status { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }

        /// <summary>
        /// 데이타 초기화
        /// </summary>
        public void Clear()
        {
            for (int i = 0; i < m_bInfo.Length; i++) { m_bInfo[i] = false; }
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = string.Empty; }
        }

        /// <summary>
        /// 장비에서 입력된 데이타 초기화
        /// </summary>
        public void DataClear()
        {
            Data = string.Empty;
            Status = string.Empty;
        }
    }

    /// <summary>
    /// 온도정보
    /// </summary>
    public class TemperatureInfo
    {
        public const int MAX_INFOCOUNT = 21;
        private string[] m_sInfo = new string[MAX_INFOCOUNT];

        /// <summary>
        /// 온도정보1
        /// </summary>
        public string Code1 { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }             //코드1
        public string Name1 { get { return m_sInfo[1]; } set { m_sInfo[1] = value; } }             //이름1
        public string Temperature1 { get { return m_sInfo[2]; } set { m_sInfo[2] = value; } }      //온도1
        public string Alarm1 { get { return m_sInfo[3]; } set { m_sInfo[3] = value; } }            //알람1
        public string Warning1 { get { return m_sInfo[4]; } set { m_sInfo[4] = value; } }          //경고1
        public string receiveYN1 { get { return m_sInfo[5]; } set { m_sInfo[5] = value; } }        //미수신1
        public string CollectionTime1 { get { return m_sInfo[6]; } set { m_sInfo[6] = value; } }   //최종온도수집1

        /// <summary>
        /// 온도정보2
        /// </summary>
        public string Code2 { get { return m_sInfo[7]; } set { m_sInfo[7] = value; } }             //코드2
        public string Name2 { get { return m_sInfo[8]; } set { m_sInfo[8] = value; } }             //이름2
        public string Temperature2 { get { return m_sInfo[9]; } set { m_sInfo[9] = value; } }      //온도2
        public string Alarm2 { get { return m_sInfo[10]; } set { m_sInfo[10] = value; } }            //알람2
        public string Warning2 { get { return m_sInfo[11]; } set { m_sInfo[11] = value; } }          //경고2
        public string receiveYN2 { get { return m_sInfo[12]; } set { m_sInfo[12] = value; } }        //미수신2
        public string CollectionTime2 { get { return m_sInfo[13]; } set { m_sInfo[13] = value; } }   //최종온도수집2

        /// <summary>
        /// 온도정보3
        /// </summary>
        public string Code3 { get { return m_sInfo[14]; } set { m_sInfo[14] = value; } }             //코드3
        public string Name3 { get { return m_sInfo[15]; } set { m_sInfo[15] = value; } }             //이름3
        public string Temperature3 { get { return m_sInfo[16]; } set { m_sInfo[16] = value; } }      //온도3
        public string Alarm3 { get { return m_sInfo[17]; } set { m_sInfo[17] = value; } }            //알람3
        public string Warning3 { get { return m_sInfo[18]; } set { m_sInfo[18] = value; } }          //경고3
        public string receiveYN3 { get { return m_sInfo[19]; } set { m_sInfo[19] = value; } }        //미수신3
        public string CollectionTime3 { get { return m_sInfo[20]; } set { m_sInfo[20] = value; } }   //최종온도수집3

        /// <summary>
        /// Data Initialization (데이타 초기화)
        /// </summary>
        public void Clear()
        {
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
        }
    }
    
    /// <summary>
    /// 프로그램 버전 정보
    /// </summary>
    public class ProgramVerInfo
    {
        public const int MAX_INFOCOUNT = 99;

        private string[] m_sInfo = new string[MAX_INFOCOUNT];
        private string[] m_svInfo = new string[MAX_INFOCOUNT]; 

        /// <summary>
        /// 프로그램 버전
        /// </summary>
        public string ProgramVer { get { return m_sInfo[0]; } set { m_sInfo[0] = value; } }
        /// <summary>
        /// 프로그램 버전 Seq
        /// </summary>
        public string ProgramVerSeq { get { return m_svInfo[0]; } set { m_svInfo[0] = value; } }
         
        /// <summary>
        /// Data Initialization (데이타 초기화)
        /// </summary>
        public void Clear()
        {
            for (int j = 0; j < m_sInfo.Length; j++) { m_sInfo[j] = ""; }
            for (int j = 0; j < m_svInfo.Length; j++) { m_svInfo[j] = ""; }
        }
    }

    /*-----------------------------------------------------------------------------------------------*/
    /* File    (파      일) : Globalization.cs
     * Class   (클  래  스) : GlobalInfo / ST_CULTURE_MASTER
     * Description (설  명) : Global 기능 지원 클래스 (StateServer 등록)
     * Writer  (작  성  자) : S.R.YOON
     * Revision History (변 경 이 력) : 
    /*-----------------------------------------------------------------------------------------------*/
    /// <summary>
    /// Global 정보
    /// </summary>
    public class GlobalInfo : Globalbase
    {
        #region ### User Definition Region ###


        #endregion
    }

}
