/*
         * 검색조건에 해당하는 현금영수증을 조회합니다. (조회기간 단위 : 최대 6개월)
         * - https://docs.popbill.com/cashbill/dotnetcore/api#Search
         */
        public IActionResult Search()
        {
            // 일자 유형 ("R" , "T" , "I" 중 택 1)
            // └ R = 등록일자 , T = 거래일자 , I = 발행일자
            string DType = "T";

            // 시작일자, 날짜형식(yyyyMMdd)
            string SDate = "20220501";

            // 종료일자, 날짜형식(yyyyMMdd)
            string EDate = "20220531";

            // 상태코드 배열 (2,3번째 자리에 와일드카드(*) 사용 가능)
            // - 미입력시 전체조회
            string[] State = new string[3];
            State[0] = "1**";
            State[1] = "3**";
            State[2] = "4**";

            // 문서형태 배열 ("N" , "C" 중 선택, 다중 선택 가능)
            // - N = 일반 현금영수증 , C = 취소 현금영수증
            // - 미입력시 전체조회
            string[] TradeType = new string[2];
            TradeType[0] = "N";
            TradeType[1] = "C";

            // 거래구분 배열 ("P" , "C" 중 선택, 다중 선택 가능)
            // - P = 소득공제용 , C = 지출증빙용
            // - 미입력시 전체조회
            string[] TradeUsage = new string[2];
            TradeUsage[0] = "P";
            TradeUsage[1] = "C";

            // 거래유형 배열 ("N" , "B" , "T" 중 선택, 다중 선택 가능)
            // - N = 일반 , B = 도서공연 , T = 대중교통
            // - 미입력시 전체조회
            string[] TradeOpt = new string[3];
            TradeOpt[0] = "N";
            TradeOpt[1] = "B";
            TradeOpt[2] = "T";

            // 과세형태 배열 ("T" , "N" 중 선택, 다중 선택 가능)
            // - T = 과세 , N = 비과세
            // - 미입력시 전체조회
            string[] TaxationType = new string[2];
            TaxationType[0] = "T";
            TaxationType[1] = "N";

            // 페이지 번호, 기본값 '1'
            int Page = 1;

            // 페이지당 검색개수, 기본값 '500', 최대 '1000'
            int PerPage = 30;

            // 정렬방향, D-내림차순, A-오름차순
            string Order = "D";

            // 식별번호 조회, 공백시 전체조회
            string QString = "";

            // 가맹점 종사업장 번호
            // └ 다수건 검색시 콤마(",")로 구분. 예) "1234,1000"
            // └ 미입력시 전제조회
            string FranchiseTaxRegID = "";

            try
            {
                var response = _cashbillService.Search(corpNum, DType, SDate, EDate, State, TradeType, TradeUsage,
                                                       TradeOpt, TaxationType, Page, PerPage, Order, QString, userID, FranchiseTaxRegID);
                return(View("Search", response));
            }
            catch (PopbillException pe)
            {
                return(View("Exception", pe));
            }
        }
        /*
         * 검색조건을 사용하여 현금영수증 목록을 조회합니다.
         * - 응답항목에 대한 자세한 사항은 "[현금영수증 API 연동매뉴얼] > 4.2. 현금영수증 상태정보 구성" 을 참조하시기 바랍니다.
         * - https://docs.popbill.com/cashbill/dotnetcore/api#Search
         */
        public IActionResult Search()
        {
            // 검색일자 유형, R-등록일자, T-거래일자, I-발행일자
            string DType = "T";

            // 시작일자, 날짜형식(yyyyMMdd)
            string SDate = "20190101";

            // 종료일자, 날짜형식(yyyyMMdd)
            string EDate = "20190115";

            // 상태코드 배열, 미기재시 전체 상태조회, 상태코드(stateCode)값 3자리의 배열, 2,3번째 자리에 와일드카드 가능
            // - 상태코드에 대한 자세한 사항은 "[현금영수증 API 연동매뉴얼] > 5.1 현금영수증 상태코드" 를 참조하시기 바랍니다.
            string[] State = new string[3];
            State[0] = "1**";
            State[1] = "3**";
            State[2] = "4**";

            // 문서형태 배열, N-일반 현금영수증, C-취소 현금영수증
            string[] TradeType = new string[2];
            TradeType[0] = "N";
            TradeType[1] = "C";

            // 거래구분 배열, P-소득공제용, C-지출증빙용
            string[] TradeUsage = new string[2];
            TradeUsage[0] = "P";
            TradeUsage[1] = "C";

            // 거래유형 배열, N-일반, B-도서공연, T-대중교통
            string[] TradeOpt = new string[3];
            TradeOpt[0] = "N";
            TradeOpt[1] = "B";
            TradeOpt[2] = "T";

            // 과세형태 배열, T-과세, N-비과세
            string[] TaxationType = new string[2];
            TaxationType[0] = "T";
            TaxationType[1] = "N";

            // 페이지 번호, 기본값 '1'
            int Page = 1;

            // 페이지당 검색개수, 기본값 '500', 최대 '1000'
            int PerPage = 30;

            // 정렬방향, D-내림차순, A-오름차순
            string Order = "D";

            // 식별번호 조회, 공백시 전체조회
            string QString = "";

            try
            {
                var response = _cashbillService.Search(corpNum, DType, SDate, EDate, State, TradeType, TradeUsage,
                                                       TradeOpt, TaxationType, Page, PerPage, Order, QString, userID);
                return(View("Search", response));
            }
            catch (PopbillException pe)
            {
                return(View("Exception", pe));
            }
        }