/**
 * @TODO 로그이력 기간 조회 파라미터 없음
 */
//우측 섹션 관련
let sttsData           = [];
let sttsTable          = null;

//좌측 섹션 관련
let sttsListTable      = null;
let sttsListData       = [];
let sttsStartDate      = null;
let sttsEndDate        = null;
let sttsStartTime      = null;
let sttsEndTime        = null;
let sttsSearchBtn      = null;

//공통
let commonUri        = '/api/rse/tb_rse_ctlr_cnnc_hs';
const _pageName      = 'DSRC 로그 이력';
const pageMsg        = 'DSRC 제어기'

getData('/api/rse/tb_rse_ctlr', sttsListData);
$(()=>{
    
    //검색시작일시 년월일
    sttsStartDate =  $('.strt-date').dxDateBox({
        type                : 'date',
        value               : new Date().setDate(new Date().getDate()-1),
        width               : 130,
        height              : '28px',
        stylingMode         : 'outlined',
        displayFormat       : 'yyyy-MM-dd',
        invalidDateMessage  : '형식에 맞게 입력해주세요. ex)0000-00-00',
    }).dxDateBox('instance');

    //검색 시작일시 시간
    sttsStartTime =  $('.strt-time').dxDateBox({
        type                : 'time',
        value               : firstSettingTime,
        width               : 75,
        interval            : 10,
        height              : '28px',
        stylingMode         : 'outlined',
        displayFormat       : 'HH:mm',
        invalidDateMessage  : '형식에 맞게 입력해주세요. ex)00:00',
    }).dxDateBox('instance');
    
    //검색종료일시 년월일
    sttsEndDate =  $('.end-date').dxDateBox({
        type                : 'date',
        value               : new Date().setDate(new Date().getDate()-1),
        width               : 130,
        height              : '28px',
        stylingMode         : 'outlined',
        displayFormat       : 'yyyy-MM-dd',
        invalidDateMessage  : '형식에 맞게 입력해주세요. ex)0000-00-00',
    }).dxDateBox('instance');
    
    //검색종료일시 시간
    sttsEndTime =  $('.end-time').dxDateBox({
        type                : 'time',
        value               : endSettingTime,
        width               : 75,
        interval            : 10,
        height              : '28px',
        stylingMode         : 'outlined',
        displayFormat       : 'HH:mm',
        invalidDateMessage  : '형식에 맞게 입력해주세요. ex)00:00',
    }).dxDateBox('instance');
    

    //상단 조회 버튼
    sttsSearchBtn = $('.traf-stts-search-btn').dxButton({
        stylingMode:'outlined',
        text:'조회',
        icon:'refresh',
        width: '80px',
        onClick(){
            hsEvent();
        }
    }).dxButton("instance")
   
    //상단 닫기 버튼
    $(".cancle-button").dxButton({
        text:'닫기',
        icon:'close',
        height:'30px',
        width: '80px',
        stylingMode:'outlined',
        onClick(){
            window.close();
        }
    }).dxButton("instance")
    
     //소통정보 이력분석 테이블
     sttsListTable = $(".stts-list-talbe").width('100%').height('100%').dxDataGrid({
        dataSource              : sttsListData[0],
        allowColumnReordering   : true,
        showColumnLines         : true,
        showBorders             : true,
        allowColumnResizing     : true,
        rowAlternationEnabled   : true,
        columnAutoWidth         : true,
        focusedRowEnabled       : true,
        noDataText              : '표출할 정보가 없습니다.',
        headerFilter: {
            visible: true,
        },
        selection: {
            mode: 'multiple',
            showCheckBoxesMode:"onClick"
        },
        keyExpr : 'rse_ctlr_id',
        paging: {
            enabled: false,
            pageSize: 1000,
        },
        scrolling: {
            mode: 'standard',
        },
        columns:[
            {
                dataField    : "rse_ctlr_nmbr",
                caption      : "번호",
                alignment    : "center",
                sortIndex    : 0, 
                sortOrder    : "asc",
            },
            {
                dataField    : "rse_ctlr_id",
                caption      : "DSRC ID",
                alignment    : "center",
            },
            {
                dataField    : "rse_nm",
                caption      : "명칭",
                alignment    : "center",
                cellTemplate(c,e){
                    c.css('text-align','left');
                    c.text(e.displayValue)
                }
            },
        ],
      
        
    }).dxDataGrid("instance");

    sttsTable = $('.stts-table').width('100%').height('100%').dxDataGrid({
        dataSource              : null,
        allowColumnReordering   : true,
        showColumnLines         : true,
        showBorders             : true,
        allowColumnResizing     : true,
        rowAlternationEnabled   : true,
        columnAutoWidth         : true,
        focusedRowEnabled       : true,
        noDataText              : '표출할 정보가 없습니다.',
        keyExpr                 : 'rse_ctlr_nmbr',
        scrolling               : {
            mode : 'virtual',
        },
        headerFilter: {
            visible: true,
        },
        sorting: {
            showSortIndexes: false,
        },
        export:{
            enabled : true,
            texts   : {
                exportAll:"엑셀 파일",
            },
        },
        columns:[
            {
                dataField    : "rse_ctlr_nmbr",
                caption      : "관리번호",
                alignment    : "center",
                sortIndex    : 1, 
                sortOrder    : "asc",
            },
            {
                dataField    : "rse_ctlr_id",
                caption      : "제어기 ID",
                alignment    : "center",
                cellTemplate(c,e){
                    c.css('text-align','left');
                    c.text(e.displayValue)
                }
            },
            {
                dataField    : "istl_lctn_nm",
                caption      : "설치 위치",
                alignment    : "center",
            },
            {
                dataField    : "clct_dt",
                caption      : "수집 시각",
                alignment    : "center",
                sortIndex    : 2, 
                sortOrder    : "asc",
            },
            {
                dataField    : "log_type",
                caption      : "로그 유형",
                alignment    : "center",
            },
            {
                dataField    : "log_id",
                caption      : "로그 ID",
                alignment    : "center",
            },
            {
                dataField    : "log_address",
                caption      : "로그 Address",
                alignment    : "center",
            },
        ],
        onExporting(e){
            gridExcellExporting(e, _pageName);
        },
    }).dxDataGrid('instance');
})

 //구간별 데이터 세팅
 function hsEvent() {
     let TO_DT        = null;
     let FROM_DT      = null;
     let id           = "";
     const selectData = sttsListTable.getSelectedRowsData();
     let updateData = {};
     switch (true) {

         case selectData <= 0 :
            alertWarning( pageMsg + '가 선택 되지 않았습니다.<br>' + pageMsg + ' 목록에서 ' + pageMsg + '를 선택해주세요');
            return false;

         case !validationCheck( sttsStartDate, sttsEndDate, sttsStartTime, sttsEndTime ) :
            return false;

         case getDate( sttsStartDate.option('value'), sttsStartTime.option('value') ) > getDate( sttsEndDate.option('value'), sttsEndTime.option('value') ):
            sttsStartDate.focus();
            alertWarning('검색 시작 시각이 검색 종료 시각보다 큽니다.', null, sttsStartDate);
            return false;

         default:

            FROM_DT = getDate( sttsStartDate.option('value'), sttsStartTime.option('value') );
            TO_DT = getDate( sttsEndDate.option('value'), sttsEndTime.option('value') );
            for( idx in selectData){
                id += selectData[idx].rse_ctlr_nmbr + ",";
            }
            break;
     }
    
    updateData[ 'FROM_DT' ] = FROM_DT;
    updateData[ 'TO_DT' ]   = TO_DT;
    updateData[ 'id' ]      = id.slice(0,-1)
    sttsData = [];
    getDataAsync( commonUri, (jsonData)=>{
        sttsData = jsonData;
        if ( sttsData.length > 0) {
            sttsData.map((item)=>{
                if(nullChecker(item.clct_dt) !== ""){
                    item.clct_dt = getParseDateTime(item.clct_dt)
                }
           });
        }

        sttsTable.option( 'dataSource', sttsData );
        selResultMsg(sttsData);
    }, null, updateData );
    
 }
