using System.Collections;
using System.Data;

using Cosmos.Common;
/*-----------------------------------------------------------------------------------------------*/
// 설      명 : POS 옵션 및 기본 마스터 관리
// 작  성  자 : 
// 변경  이력 : 
/*-----------------------------------------------------------------------------------------------*/
namespace Cosmos.CommonManager
{
    #region POS 옵션 정의
    /// <summary>
    /// POS 옵션 정의
    /// </summary>
    public class POS_OPTION
    {
        #region POS 구동 옵션, 상품등록 옵션

        ///// <summary>
        ///// 개점시 준비점검 사용 여부(0:미사용, 1:사용)
        ///// </summary>
        //public const string OPT001 = "OPT001";
        ///// <summary>
        ///// 마감시 준비점검 입력 여부(0:사용안함, 1:사용함)
        ///// </summary>
        //public const string OPT002 = "OPT002";
        /// <summary>
        /// 
        /// </summary>
        public const string OPT003 = "OPT003";
        /// <summary>
        /// 고객수 입력 시기(0:미사용,1:결제시,2:결제완료시,3:주문시,4:주문완료시)
        /// </summary>
        public const string OPT004 = "OPT004";
        /// <summary>
        /// Take In/out Default(0 : Take out Default / 1 : Take in Default)
        /// </summary>
        public const string OPT005 = "OPT005";
        /// <summary>
        /// 현금 영수증 자진발급 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT006 = "OPT006";
        /// <summary>
        /// 신용카드 무서명 금액(0:사용안함, 그외 금액 이하 무서명)
        /// </summary>
        public const string OPT007 = "OPT007";
        /// <summary>
        /// 주문번호입력여부(0:미사용, 1:사용)
        /// </summary>
        public const string OPT008 = "OPT008";
        /// <summary>
        /// 마감-권종별 현금 시재 입력 여부(0 : 총액 입력, 1 : 권종별 입력)
        /// </summary>
        public const string OPT009 = "OPT009";
        /// <summary>
        /// 마감-외환 마감 시재 입력 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT010 = "OPT010";
        /// <summary>
        /// 초기화면생략여부(0:생략안함, 1:생략함)
        /// </summary>
        public const string OPT011 = "OPT011";
        /// <summary>
        /// 준비금 권종/합계 입력 구분(0:합계, 1:권종)
        /// </summary>
        public const string OPT012 = "OPT012";
        /// <summary>
        /// 스크린세이버 기능(0: 사용안함. 1:사용함, 2:사용함(LOGON))
        /// </summary>
        public const string OPT013 = "OPT013";
        /// <summary>
        /// 스크린세이버 대기시간(초)
        /// </summary>
        public const string OPT014 = "OPT014";
        /// <summary>
        /// 추후적립 사용 제한시간(0:사용안함, 그외 시간)
        /// </summary>
        public const string OPT016 = "OPT016";
        /// <summary>
        /// 보류 가능 횟수(0:무제한, 3 : 3회/ 5 : 5회/ 7 : 7회)
        /// </summary>
        public const string OPT017 = "OPT017";
        /// <summary>
        /// 보류 삭제 시간(0:제한없음, 1 : 1시간/ 3 : 3시간/ 5 : 5시간)
        /// </summary>
        public const string OPT018 = "OPT018";
        /// <summary>
        /// 점주알바 점수 표시 사용 유무(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT019 = "OPT019";
        /// <summary>
        /// 기념일 표시 사용 유무(0:사용안함, 그외 시간)
        /// </summary>
        public const string OPT020 = "OPT020";
        /// <summary>
        /// 판매완료시 돈통열림 설정(0:안열림, 1:현금성거래만, 2:전체열림)
        /// </summary>
        public const string OPT021 = "OPT021";
        /// <summary>
        /// 
        /// </summary>
        public const string OPT022 = "OPT022";
        /// <summary>
        /// 삼성페이 사용 유무(0:미사용,1:사용)
        /// </summary>
        public const string OPT023 = "OPT023";
        /// <summary>
        /// 미국 X-XCHARGE 사용 여부(0:미사용,1:사용)
        /// </summary>
        public const string OPT024 = "OPT024";
        /// <summary>
        /// 지정취소 항목 삭제(0:미삭제, 1:삭제)
        /// </summary>
        public const string OPT025 = "OPT025";
        /// <summary>
        /// 판매 등록 화면 MOT 화면 사용 여부(0 : 사용 안 함/1 : 사용 함)
        /// </summary>
        public const string OPT026 = "OPT026";
        /// <summary>
        /// KDS 부가 정보 사용 여부 [고객명/VIP 구분](0:사용안함, 1:사용함)
        /// (KDS 전송 사용 여부)
        /// </summary>
        public const string OPT027 = "OPT027";
        /// <summary>
        /// 플레이버 화면 사용 여부(0:사용안함, 1:사용함(복수), 2:사용함(단일))
        /// </summary>
        public const string OPT028 = "OPT028";
        /// <summary>
        /// HP 적립확인 처리(0:사용안함, 1:사용함) => 미사용
        /// </summary>
        public const string OPT029 = "OPT029";
        /// <summary>
        /// HP 자동적립 처리(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT030 = "OPT030";
        /// <summary>
        /// 상품등록 수량 합산(0:미합산, 1:최종상품합산, 2:전체상품합산)
        /// </summary>
        public const string OPT031 = "OPT031";
        /// <summary>
        /// 부가메뉴 등록 방법(0:복수등록, 1:단일등록)
        /// </summary>
        public const string OPT032 = "OPT032";
        /// <summary>
        /// 결제 고객 입력 형식 구분 0:미사용, 1:결제고객, 2:상세고객수, 3:고객수
        /// </summary>
        public const string OPT033 = "OPT033";
        /// <summary>
        /// 세브란스 할인/결제 사용여부(0: 미사용, 1:사용)
        /// </summary>
        public const string OPT034 = "OPT034";
        /// <summary>
        /// 해피오더 주문 알림 사용여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT035 = "OPT035";
        /// <summary>
        /// 빚은몰 주문 알림 사용여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT036 = "OPT036";
        /// <summary>
        /// 이지웰 주문 알림 사용여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT037 = "OPT037";
        /// <summary>
        /// 해피오더 바코드 등록 팝업 사용여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT038 = "OPT038";
        /// <summary>
        /// 상단 온도 표시 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT039 = "OPT039";
        /// <summary>
        /// 환율 수기 등록 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT040 = "OPT040";
        /// <summary>
        /// 상품 판매중지 체크 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT041 = "OPT041";
        /// <summary>
        /// 대기번호 자동채번 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT042 = "OPT042";
        /// <summary>
        /// 해피오더 사전예약TAB 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT043 = "OPT043";
        /// <summary>
        /// 해피오더 사전예약 픽업대기 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT044 = "OPT044";
        /// <summary>
        /// 해피오더 딜리버리 상품준비 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT045 = "OPT045";
        /// <summary>
        /// 선불카드 판매 - 중국 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT046 = "OPT046";
        /// <summary>
        /// HP 적립화면 거래완료시 사용여부(0:사용안함, 1:사용함)(2017.06.05)
        /// </summary>
        public const string OPT047 = "OPT047";
        //17.08.22 dkshin SS 해피오더
        /// <summary>
        /// 쉑쉑 해피오더 백그라운드 사용여부(0:사용안함, 1:POS번호)
        /// </summary>
        public const string OPT048 = "OPT048";
        /// <summary>
        /// 쉑쉑 해피오더 수기처리 사용여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT049 = "OPT049";
        //#20170905 미군기지 환율 표시 start
        /// <summary>
        /// 미군기지 달러 표시 사용여부(0:사용안함 그외 환율금액)
        /// </summary>
        public const string OPT509 = "OPT509";
        //#20170905 미군기지 환율 표시 end

        //#20170913 해피오더 알림 팝업 여부 옵션 처리 start
        /// <summary>
        /// 해피오더 알림팝업 사용여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT510 = "OPT510";
        //#20170913 해피오더 알림 팝업 여부 옵션 처리 end

        //#20171227 인천공항 포스연동 start, phj
        /// <summary>
        /// 인천공항 통합POS 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT512 = "OPT512";
        //#20171227 인천공항 포스연동 end, phj

        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 start
        /// <summary>
        /// 해피쿠폰 발송 사용여부 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT513 = "OPT513";

        /// <summary>
        /// 구매이력정보 표시여부 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT514 = "OPT514";
        //#20180418 고객 구매이력 정보 표시 및 해피쿠폰 발송 end

        //#20180509 해피앱 추후적립 사용여부 옵션 처리 start
        /// <summary>
        /// 해피앱 추후적립 사용여부 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT515 = "OPT515";
        //#20180509 해피앱 추후적립 사용여부 옵션 처리 end


        //#20180413 웰컴카드 신규기능 추가 start,phj
        /// <summary>
        /// 멤버십 발급/할인 사용여부 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT516 = "OPT516";
        //#20180413 웰컴카드 신규기능 추가 end,phj 

        //20180718 O2SKIOSK.EXE start
        //변경
        /// <summary>
        /// 해피스테이션(O2SKIOSK.exe) 자동 실행 여부 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT517 = "OPT517";
        //20180718 O2SKIOSK.EXE end

        //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 start
        /// <summary>
        /// 해피오더 실시간 재고 알람 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT518 = "OPT518";
        //#15884 해피오더 실시간 추가재고 등록메뉴 및 알람기능 개발 end

        //#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 start
        /// <summary>
        /// 당월누계 건 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT519 = "OPT519";

        /// <summary>
        /// 당일픽업 건 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT520 = "OPT520";
        //#16366 해피오더 당월누적주문내역 + 당일 해피오더주문 상세내역 자동 출력기능 end

        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 start
        /// <summary>
        /// 해피오더 바코드 리딩 시 자동 완료처리 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT553 = "OPT553";
        //#16401 해피오더)주문내역 바코드 리딩 시 자동 완료처리 end

        #region (2017.11.01) 선릉진선 해피포인트 사용 창 결제버튼 클릭 시 자동으로 띄우는 기능 사용 여부
        /// <summary>
        /// 선릉진선 해피포인트 사용 창 결제버튼 클릭 시 자동 표시 사용여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT511 = "OPT511";
        #endregion

        #endregion

        #region 화면 설정
        //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
        /// <summary>
        /// 고객용동영상 관련(0:사용안함, 1:사용함, 2:사용함(가변), 3:사용함(DT))
        /// </summary>
        public const string OPT103 = "OPT103";
        //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end

        /// <summary>
        /// 메뉴키 이미지 표시구분(0:미표시, 1:표시)
        /// </summary>
        public const string OPT105 = "OPT105";
        /// <summary>
        /// 
        /// </summary>
        public const string OPT104 = "OPT104";
        /// <summary>
        /// 캠페인 컨텐츠 사용유무(0:미사용, 1:사용)
        /// </summary>
        public const string OPT106 = "OPT106";
        /// <summary>
        /// 플레이버 이미지 표시구분(0:미표시, 1:표시)
        /// </summary>
        public const string OPT107 = "OPT107";
        /// <summary>
        /// 고객용화면 거스름 표시 시간(초)
        /// </summary>
        public const string OPT108 = "OPT108";
        #endregion

        #region 후불 옵션
        ///// <summary>
        ///// 매장공지사항 사용 여부(0:미사용, 1:사용) 
        /////     => 미사용, 삭제요망 !! 
        ///// </summary>
        //public const string OPT202 = "OPT202";

        /// <summary>
        /// 주문 시 담당자 선택(0:미사용, 1:사용)
        /// </summary>
        public const string OPT203 = "OPT203";

        ///// <summary>
        ///// 테이블화면 - 고객 수, 메뉴 명 Display 여부(0 : 미 출력/ 1 : 출력) 
        /////     => 미사용, 삭제요망!!
        ///// </summary>
        //public const string OPT204 = "OPT204";

        /// <summary>
        /// 좌석메모 기능 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT205 = "OPT205";
        #endregion

        #region 기능설정 옵션

        /// <summary>
        /// 연습모드 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT301 = "OPT301";
        /// <summary>
        /// 익일개점허용여부(0: 미사용, 1:사용)
        /// </summary>
        public const string OPT302 = "OPT302";
        /// <summary>
        /// 
        /// </summary>
        public const string OPT303 = "OPT303";
        /// <summary>
        /// TAKE IN / OUT 사용 여부(0: 미사용, 1:사용)
        /// </summary>
        public const string OPT304 = "OPT304";
        /// <summary>
        /// 외환 사용 여부 기능 설정(0: 미사용, 1:사용)
        /// </summary>
        public const string OPT305 = "OPT305";
        /// <summary>
        /// (빚은) 예약 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT306 = "OPT306";
        /// <summary>
        /// 근태(출퇴근) 허용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT307 = "OPT307";
        /// <summary>
        /// 직원방문 허용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT308 = "OPT308";
        /// <summary>
        /// 결제 금액 TTS 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT309 = "OPT309";
        /// <summary>
        /// 현금 알림 기능 설정(0: 미사용, 그외 설정 금액)
        /// </summary>
        public const string OPT310 = "OPT310";
        /// <summary>
        /// 개점처리 후 POS 재기동 여부 옵션(0 : 메인화면/ 1 : 판매화면)
        /// </summary>
        public const string OPT311 = "OPT311";
        /// <summary>
        /// 도로공사 매출 전송(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT312 = "OPT312";
        /// <summary>
        /// 공항공사 매출 전송(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT313 = "OPT313";
        /// <summary>
        /// 해피오더 I/C 중량 출력 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT314 = "OPT314";
        /// <summary>
        /// 현금영수증 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT315 = "OPT315";
        /// <summary>
        /// 해피포인트 사용 여부(0:사용안함, 1:사용함(한국), 2:사용함(중국))
        /// </summary>
        public const string OPT316 = "OPT316";
        /// <summary>
        /// 승인업체 마스터 수신불가(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT317 = "OPT317";
        /// <summary>
        /// 양재오더 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT318 = "OPT318";
        /// <summary>
        /// T페이 BLE동글 사용 여부 (0:사용안함, 1: 사용함)
        /// </summary>
        public const string OPT319 = "OPT319";
        /// <summary>
        /// 반품사유코드 POS자체관리 사용 여부 (0:사용안함, 1: 사용함)
        /// </summary>
        public const string OPT320 = "OPT320";
        /// <summary>
        /// 중간점검 사용 여부 (0:사용안함, 1: 사용함, 2:사용함[차수별])
        /// </summary>
        public const string OPT321 = "OPT321";
        /// <summary>
        /// 결제완료 버튼 사용 여부 (0:사용안함, 1: 사용함)
        /// </summary>
        public const string OPT322 = "OPT322";
        /// <summary>
        /// 해피포인트사용 임의등록 사용여부(0:사용안함, 1: 사용함)
        /// </summary>
        public const string OPT323 = "OPT323";
        /// <summary>
        /// 해피포인트쿠폰 상품선택 사용여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT324 = "OPT324";
        /// <summary>
        /// 외부 I/F 사용 여부 (0:사용안함, CHN_01:무역센터-중국, CHN_02:상해쩡따광장, CHN_03:왕진활현-중국, CHN_04:조양따훼청, CHN_05:풍란, CHN_06:닝보인상청)
        /// </summary>
        public const string OPT325 = "OPT325";
        /// <summary>
        /// OCB 직통신 사용 여부 - 0:미사용, 사용함(VAN ID)
        /// </summary>
        public const string OPT326 = "OPT326";
        // #20170616, 해피앱 스탬프 Start
        /// <summary>
        /// 해피스탬프 사용 여부 - 0:미사용, 1:사용함)
        /// </summary>
        public const string OPT327 = "OPT327";

        //#20171102 판매POS 옵션(해피머니 상품권 사용유무)에 따라 해피머니 상품권 표시/미표시 start
        /// <summary>
        /// 해피머니 상품권 사용유무 - 0:미사용, 1:사용함)
        /// </summary>
        public const string OPT329 = "OPT329";
        //#20171102 판매POS 옵션(해피머니 상품권 사용유무)에 따라 해피머니 상품권 표시/미표시 end

        /// <summary>
        /// Payment 버튼 클릭 후 TAKE IN / OUT 사용 여부(0: 미사용, 1:사용)
        /// </summary>
        public const string OPT330 = "OPT330";//2018.01.31;girak.kim 추가

        //#13753 POS MOT음성 기능 추가 개발요청 - 20180222 음성MOT 옵션처리 start,phj
        /// <summary>
        /// 음성mot pos설정(0:사용안함,1:사용함)
        /// </summary>
        public const string OPT331 = "OPT331";
        //#13753 POS MOT음성 기능 추가 개발요청 - 20180222 음성MOT 옵션처리 end,phj


        //#14231 KT 웰컴기프트 카드 기능 개발, PHJ START
        /// <summary>
        /// KT 웰컴기프트 사용설정 (0:사용안함,1:사용함)
        /// </summary>
        public const string OPT332 = "OPT332";
        //#14231 KT 웰컴기프트 카드 기능 개발, PHJ END

        #region 해피오더 직접배달
        //grayber@20171123 해피오더 직접배달 start
        /// <summary>
        /// 해피오더 직접배달 사용여부. (0:사용안함,1:사용함)
        /// </summary>
        public const string OPT550 = "OPT550";
        //grayber@20171123 해피오더 직접배달 end
        #endregion

        //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 start
        /// <summary>
        /// PAS DT 사용여부. (0:사용안함,1:사용함)
        /// </summary>
        public const string OPT554 = "OPT554";
        //#16569 파스쿠찌 드라이브 스루 기능 개발 요청 end

        //#16577 결제창 내부 봉투 추가 기능 도입 start
        /// <summary>
        /// 결제창 봉투추가 기능 사용유무 (0:사용안함,1:사용함)
        /// </summary>
        public const string OPT555 = "OPT555";
        //#16577 결제창 내부 봉투 추가 기능 도입 end

        //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 start
        /// <summary>
        /// 화면보호기 이미지 표시 
        /// </summary>
        public const string OPT556 = "OPT556";
        //#17045 긴급)판매POS 대기 시 해피오더 안내 이미지 표시 end

        //#17142 [해피오더]POS로그인 시 영수증프린터로 장부재고 자동 출력 start
        /// <summary>
        /// 최초 로그인 시 장부재고 품목 영수증 출력 (0:사용안함,1:사용함)
        /// </summary>
        public const string OPT557 = "OPT557";
        //#17142 [해피오더]POS로그인 시 영수증프린터로 장부재고 자동 출력 end

        //#20181016 업무마감(일마감) 후 포스종료하기 start
        /// <summary>
        /// 업무마감(일마감) 시 판매포스 종료 (0:사용안함,1:사용함)
        /// </summary>
        public const string OPT558 = "OPT558";
        //#20181016 업무마감(일마감) 후 포스종료하기 end

        #endregion

        #region 영수증 출력 옵션
        /// <summary>
        /// 상하단 출력유형마스터 사용 유무(0 : 미사용, 1 : 사용)
        /// </summary>
        public const string OPT401 = "OPT401";
        /// <summary>
        /// 과세/부가세 출력 유무(0 : 미 출력, 1 : 출력)
        /// </summary>
        public const string OPT402 = "OPT402";
        /// <summary>
        /// 바코드 사용 여부(0 : 미 출력, 1 : 출력)
        /// </summary>
        public const string OPT403 = "OPT403";
        /// <summary>
        /// 신용카드 승인 영수증 매수 설정(0 : 미 출력, 1 : 1장 출력, 2 : 2장 출력, 3 : 3장 출력)	
        /// </summary>
        public const string OPT404 = "OPT404";
        /// <summary>
        /// 전자 서명 출력 유무(0 : 미 출력, 1 : 출력)
        /// </summary>
        public const string OPT405 = "OPT405";
        ///// <summary>
        ///// 대기번호 사용시 주문내역서 출력 여부(0 : 미 출력, 1 : 출력)	- 미사용 2017.01.31
        ///// </summary>
        //public const string OPT406 = "OPT406";
        /// <summary>
        /// 단말기 사용시 단말기 영수증 출력 여부(0 : 미 출력, 1 : 출력)	
        /// </summary>
        public const string OPT407 = "OPT407";
        ///// <summary>
        ///// 주방 주문메시지 출력 여부(0 : 미 출력, 1 : 출력)
        ///// </summary>
        //public const string OPT408 = "OPT408";
        /// <summary>
        /// 프린터 상단 이미지 출력(0 : 미 출력, 1 : 출력)
        /// </summary>
        public const string OPT409 = "OPT409";
        /// <summary>
        /// 프린터 하단 이미지 출력(0 : 미 출력, 1 : 출력)	
        /// </summary>
        public const string OPT410 = "OPT410";
        /// <summary>
        /// 프린터 상단 텍스트 출력(0 : 미 출력, 1 : 출력)
        /// </summary>
        public const string OPT411 = "OPT411";
        /// <summary>
        /// 프린터 하단 텍스트 출력	(0 : 미 출력, 1 : 출력)
        /// </summary>
        public const string OPT412 = "OPT412";
        /// <summary>
        /// 정산지 출력(0 : 미 출력, 1 : 출력)
        /// </summary>
        public const string OPT413 = "OPT413";
        /// <summary>
        /// 영수증 제품명 두줄 출력(1 : 1줄 출력, 2 : 2줄 출력)	
        /// </summary>
        public const string OPT414 = "OPT414";
        /// <summary>
        /// 상품 단가 출력(0 : 미 출력, 1 : 출력) 두줄출력일때만 가능
        /// </summary>
        public const string OPT415 = "OPT415";
        /// <summary>
        /// 영수증 발행 유무(0 : 미 출력, 1 : 출력, 2: 확인)
        /// </summary>
        public const string OPT416 = "OPT416";
        /// <summary>
        /// 영수증 미출력시 대상금액  
        /// </summary>
        public const string OPT417 = "OPT417";
        /// <summary>
        /// 합계 출력유형마스터 사용 유무(0 : 미사용, 1 : 사용)
        /// </summary>
        public const string OPT419 = "OPT419";
        /// <summary>
        /// 결제 출력유형마스터 사용 유무(0 : 미사용, 1 : 사용)
        /// </summary>
        public const string OPT420 = "OPT420";
        /// <summary>
        /// 마감 정산지 출력 유무(0 : 미 출력, 1 : 출력)
        /// </summary>
        public const string OPT421 = "OPT421";
        /// <summary>
        /// 세트하위메뉴 영수증 출력 여부(0: 금액0일때 미출력, 1: 출력)
        /// </summary>
        public const string OPT423 = "OPT423";
        /// <summary>
        /// 부가메뉴 영수증 출력 여부(0: 금액0일때 미출력, 1: 출력)
        /// </summary>
        public const string OPT424 = "OPT424";
        /// <summary>
        /// 주방프린터 자동/수동 출력 여부 (0:자동 1:수동(프린터선택) 2:수동(상품선택))
        /// </summary>
        /// <remarks>
        /// 후불POS는 메인POS설정이 우선한다.
        /// </remarks>
        public const string OPT425 = "OPT425";
        /// <summary>
        /// 주차 바코드 출력 사용 여부(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT426 = "OPT426";

        //#20171017 전자영수증 발행 start, phj
        /// <summary>
        /// 해피앱 전자영수증 설정 시 판매 영수증 출력 유무 체크. (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT429 = "OPT429";

        //#Rhee, 20180221 End Break 이미지 출력여부 start
        /// <summary>
        /// 미주 End Break 이미지 출력 유무 체크. (0:미출력, 1:출력)
        /// </summary>
        public const string OPT430 = "OPT430";
        //#Rhee, 20180221 End Break 이미지 출력여부 end

        //grayber@20171214 캠페인 리펀드 쿠폰 start
        /// <summary>
        /// 캠페인 리펀드 출력 유무 체크 (0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT431 = "OPT431";
        //grayber@20171214 캠페인 리펀드 쿠폰 end

		//grayber@20180227 대기번호표 출력 옵션 추가 start
        /// <summary>
        /// 대기번호표 출력 옵션
        /// </summary>
        public const string OPT432 = "OPT432";
        //grayber@20180227 대기번호표 출력 옵션 추가 end

        //#15485 PB 강남일원 - 제품명이 길어 짤리는 증상 수정 요청 start
        /// <summary>
        /// 해피오더 주문내역 제품명 두줄 출력(1 : 1줄 출력, 2 : 2줄 출력)
        /// </summary>
        public const string OPT433 = "OPT433";
        //#15485 PB 강남일원 - 제품명이 길어 짤리는 증상 수정 요청 end

        #endregion

        #region 주변기기
        /// <summary>
        /// CAT단말기 연동(0 : 미사용, 1 : 사용)
        /// </summary>
        public const string OPT505 = "OPT505";
        /// <summary>
        /// 주방프린트 사용(0 : 미사용, 1 : 사용)
        /// </summary>
        /// <remarks>
        /// 후불POS는 메인POS설정이 우선한다.
        /// </remarks>
        public const string OPT506 = "OPT506";
        /// <summary>
        /// 주방모니터 사용(0:사용안함, 1:사용함)
        /// </summary>
        public const string OPT507 = "OPT507";
        #endregion

       
    }
    #endregion
    
    /// <summary>
    /// PosMst Manager
    /// </summary>
    public class PosMstManager
    {
        /// <summary>
        /// 옵션 값 저장
        /// </summary>
        private static Hashtable g_htOptionMst = new Hashtable();

        /// <summary>
        /// 점포마스터
        /// </summary>
        private static DataRow g_drMstStore = null;


        /// <summary>
        /// 스크린 마스터
        /// </summary>
        private static DataRow g_drMstScreen = null;

        /// <summary>
        /// POS 마스터
        /// </summary>
        private static DataRow g_drMstPos = null;

        /// <summary>
        /// 결제 할인 마스터
        /// </summary>
        private static DataTable g_dtMstPayDc = null;
        private static Hashtable g_htMstPayDc = new Hashtable();

        /// <summary>
        /// VAN 마스터
        /// </summary>
        private static Hashtable g_htMstVAN = new Hashtable();

        /// <summary>
        /// 담당자권한 마스터
        /// </summary>
        private static DataTable g_dtMstPicAuth = null;
        private static Hashtable g_htMstPicAuth = new Hashtable();

        static PosMstManager()
        {
            
        }

        /// <summary>
        /// Clear
        /// </summary>
        public static void OptionClear()
        {
            try
            {
                g_htOptionMst.Clear();
            }
            catch { }
        }

        /// <summary>
        /// 옵션값 설정
        /// </summary>
        /// <param name="sOptCode"></param>
        /// <param name="sOptValue"></param>
        /// <param name="sOptName"></param>
        /// <param name="sOptNote"></param>
        public static void SetPosOption(string sOptCode, string sOptValue, string sOptName, string sOptNote)
        {
            try
            {
                if (g_htOptionMst.Contains(sOptCode) == false)
                {
                    g_htOptionMst.Add(sOptCode, new string[] { sOptValue, sOptName, sOptNote });
                }
                else
                {
                    // 2017.02.03, 옵션정보 덮어쓰기 
                    g_htOptionMst[sOptCode] = new string[] { sOptValue, sOptName, sOptNote };
                }
            }
            catch { }
        }

        /// <summary>
        /// 옵션값 획득
        /// </summary>
        /// <param name="sOptCode"></param>
        /// <returns></returns>
        public static string GetPosOption(string sOptCode)
        {
            return GetPosOption(sOptCode, 0);
        }
        /// <summary> GetPosOption </summary>
        public static string GetPosOption(string sOptCode, int nPos)
        {
            try
            {
                if (g_htOptionMst.Contains(sOptCode) == true)
                {
                    string[] saOptMst = (string[])g_htOptionMst[sOptCode];
                    return saOptMst[nPos];
                }
            }
            catch { }

            return "";
        }

        /// <summary>
        /// 점포마스터 설정
        /// </summary>
        /// <param name="dr"></param>
        public static void SetMstStore(DataRow dr)
        {
            try
            {
                g_drMstStore = dr;
            }
            catch { }
        }

        /// <summary>
        /// 점포마스터 획득
        /// </summary>
        /// <returns></returns>
        public static DataRow GetMstStore()
        {
            try
            {
                return g_drMstStore;
            }
            catch { }
            return null;
        }


        /// <summary>
        /// 스크린 마스터 설정
        /// </summary>
        /// <param name="dr"></param>
        public static void SetMstScreen(DataRow dr)
        {
            try
            {
                g_drMstScreen = dr;
            }
            catch { }
        }

        /// <summary>
        /// 스크린 마스터 획득
        /// </summary>
        /// <returns></returns>
        public static DataRow GetMstScreen()
        {
            try
            {
                return g_drMstScreen;
            }
            catch { }
            return null;
        }



        /// <summary>
        /// POS 마스터 설정
        /// </summary>
        /// <param name="dr"></param>
        public static void SetMstPos(DataRow dr)
        {
            try
            {
                g_drMstPos = dr;
            }
            catch { }
        }

        /// <summary>
        /// POS 마스터 획득
        /// </summary>
        /// <returns></returns>
        public static DataRow GetMstPos()
        {
            try
            {
                return g_drMstPos;
            }
            catch { }
            return null;
        }


        /// <summary>
        /// 결제 할인 마스터 셋팅
        /// </summary>
        /// <param name="dtPayDc"></param>
        public static void SetMstPayDc(DataTable dtPayDc)
        {
            try
            {
                g_dtMstPayDc = dtPayDc;

                g_htMstPayDc.Clear();
                if ( dtPayDc != null && dtPayDc.Rows.Count > 0)
                {
                    foreach(DataRow dr in dtPayDc.Rows)
                    {
                        g_htMstPayDc.Add(CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.PAY_DC_GRP_TYPE) + CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.PAY_DC_CD), dr);
                    }
                }
            }
            catch { }
        }

        /// <summary>
        /// 결제 할인 마스터 획득
        /// </summary>
        /// <returns></returns>
        public static DataRow GetMstPayDc(string[] aParam)
        {
            try
            {
                string sSQL = string.Empty;

                sSQL = " CMP_CD = '" + aParam[0] + "'" ;
                sSQL += " AND STOR_CD = '" + aParam[1] + "'";
                if (aParam[2] != "")
                    sSQL += " AND PAY_DC_GRP_TYPE = '" + aParam[2] + "'";
                if (aParam[3] != "")
                    sSQL += " AND PAY_DC_CD = '" + aParam[3] + "'";

                DataRow[] Adr = g_dtMstPayDc.Select(sSQL);

                return Adr[0];

            }
            catch { }
            return null;
        }

        /// <summary>
        /// 결제할인 마스터 전체 획득
        /// </summary>
        /// <returns></returns>
        public static DataTable GetMstPayDc()
        {
            return g_dtMstPayDc;
        }

        /// <summary>
        /// 결제할인 마스터 컬럼 획득
        /// </summary>
        /// <returns></returns>
        public static string GetMstPayDc(string sPayDcGrpType, string sPayDcCd, string sColumnName)
        {
            try
            {
                if (g_htMstPayDc.Contains(sPayDcGrpType + sPayDcCd) == true)
                {
                    DataRow dr = (DataRow)g_htMstPayDc[sPayDcGrpType + sPayDcCd];
                    return CmUtil.GetDataRowStr(dr, sColumnName);
                }
            }
            catch { }
            return "";
        }

        /// <summary>
        /// VAN 마스터 셋팅
        /// </summary>
        /// <param name="dtVan"></param>
        public static void SetMstVan(DataTable dtVan)
        {
            try
            {
                g_htMstVAN.Clear();
                if (dtVan != null && dtVan.Rows.Count > 0)
                {
                    foreach (DataRow dr in dtVan.Rows)
                    {
                        g_htMstVAN.Add(CmUtil.GetDataRowStr(dr, PosMst.MST_VAN.DATA.APPR_VEND_CD), dr);
                    }
                }
            }
            catch { }
        }

        /// <summary>
        /// VAN 마스터 컬럼 획득
        /// </summary>
        /// <returns></returns>
        public static string GetMstVan(string sVanCd, string sColumnName)
        {
            try
            {
                if (g_htMstVAN.Contains(sVanCd) == true)
                {
                    DataRow dr = (DataRow)g_htMstVAN[sVanCd];
                    return CmUtil.GetDataRowStr(dr, sColumnName);
                }
            }
            catch { }
            return "";
        }
        /// <summary>
        /// VAN 마스터 컬럼 획득
        /// </summary>
        /// <param name="sPayDcGrpType"></param>
        /// <param name="sPayDcCd"></param>
        /// <param name="sColumnName"></param>
        /// <returns></returns>
        public static string GetMstVan(string sPayDcGrpType, string sPayDcCd, string sColumnName)
        {
            try
            {
                string sVanCd = GetMstPayDc(sPayDcGrpType, sPayDcCd, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD);
                if (sVanCd.Trim() == "") return "";

                return GetMstVan(sVanCd, sColumnName);
            }
            catch { }
            return "";
        }
        
        /// <summary>
        /// 담당자 권한 마스터 셋팅
        /// </summary>
        /// <param name="dtPicAuth"></param>
        public static void SetMstPicAuth(DataTable dtPicAuth)
        {
            try
            {
                try
                {
                    g_dtMstPicAuth = dtPicAuth;

                    g_htMstPicAuth.Clear();
                    if (dtPicAuth != null && dtPicAuth.Rows.Count > 0)
                    {
                        foreach (DataRow dr in dtPicAuth.Rows)
                        {
                            g_htMstPicAuth.Add(CmUtil.GetDataRowStr(dr, PosMst.MST_PIC_AUTH.DATA.CASHIER_ID) + CmUtil.GetDataRowStr(dr, PosMst.MST_PIC_AUTH.DATA.FUNC_ID), dr);
                        }
                    }
                }
                catch { }
            }
            catch { }
        }

        /// <summary>
        /// 담당자 권한 마스터 획득
        /// </summary>
        /// <returns></returns>
        public static DataRow GetMstPicAuth(string[] aParam)
        {
            try
            {
                string sSQL = string.Empty;

                sSQL = " CMP_CD = '" + aParam[0] + "'";
                sSQL += " AND STOR_CD = '" + aParam[1] + "'";
                if (aParam[2] != "")
                    sSQL += " AND CASHIER_ID = '" + aParam[2] + "'";
                if (aParam[3] != "")
                    sSQL += " AND FUNC_ID = '" + aParam[3] + "'";

                DataRow[] Adr = g_dtMstPicAuth.Select(sSQL);

                return Adr[0];

            }
            catch { }
            return null;
        }

        /// <summary>
        /// 담당자 권한 마스터 전체 획득
        /// </summary>
        /// <returns></returns>
        public static DataTable GetMstPicAuth()
        {
            return g_dtMstPicAuth;
        }

        /// <summary>
        /// 담당자 권한 마스터 관리 권한 획득
        /// </summary>
        /// <param name="sKey"></param>
        /// <returns></returns>
        public static string GetMstPicAuth(string sKey)
        {
            try
            {
                if (g_htMstPicAuth.Contains(sKey) == true)
                {
                    DataRow dr = (DataRow)g_htMstPicAuth[sKey];
                    return CmUtil.GetDataRowStr(dr, PosMst.MST_PIC_AUTH.DATA.MNG_AUTH);
                }
            }
            catch { }
            return PosConst.MNG_AUTH_DIV.PERMISSION;
        }
    }
}
