| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317 | BemsWebApplication.DailyReport = function (params, viewInfo) {    'use strict';    var CmBusinessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField');    var CmUserDataSource = BemsWebApplication.db.createDataSource('CmUser');    var SiteId = BWA.UserInfo.SiteId();    var ELECTRICITY = $Code.FacilityType.ELECTRICITY;    var GAS = $Code.FacilityType.GAS;    var style = 'class="jh-width-2-10 jh-multi-line-item" style="width:231px;height:35px;text-align:right"';    var colorstyle = 'class="jh-width-2-10 jh-multi-line-item" style="width:231px;height:35px;background-color:#FFFFCC;text-align:right"';    var borderstyle = "1px solid #CCCCCC";    var endpointSelector = "";    if (BemsWebApplication.config.mode == "production") {        endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.production;    } else {        endpointSelector = new DevExpress.EndpointSelector(BemsWebApplication.config.endpoints).config.db.local;    }    var isVisibleApproalButton = ko.observable(false);    var Datecnt = 0, changeDate = false;    var WATER = $Code.FacilityType.WATER;    var MainFormulaId = 1;    var init;    var temptotalcnt = 0, temptempcnt = 0;    var fuelarray = new Array(ELECTRICITY, GAS, WATER);    var fueltotalarray = new Array(3);    var BemsFormulaDataSource = BemsWebApplication.db.createDataSource('BemsFormula');    var BemsFormulaParameterDataSource = BemsWebApplication.db.createDataSource('BemsFormulaParameter');    var BemsMonitoringPointDataSource = BemsWebApplication.db.createDataSource('BemsMonitoringPoint');    var click = false;    var BusinessFieldArray;    var MaterialCodeClassDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeClass');    var materialClass = ko.observableArray();    var materialClassForSearch = ko.observableArray();    var week = new Array('일', '월', '화', '수', '목', '금', '토');    var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter;    var popupGridInfo = {        'gridContainerCommon': 'workCommon',        'gridContainerMaterialUsage': 'fmsMaterial'    };    var tempseq = BemsWebApplication.config.Report.BusinessFieldSeq.Value;    var tempseqEnable = BemsWebApplication.config.Report.BusinessFieldSeq.Enable;    var tempApprove = BemsWebApplication.config.Report.UserSeq.Value;    var tempApproveEnable = BemsWebApplication.config.Report.UserSeq.Enable;    var businessFieldId = BWA.UserInfo.BusinessFieldId();    var commonbusinessFieldId;    var filter = [        eq('SiteId', SiteId),    ];    var dataSourceOptions = {        select: [            'SiteId',            'DailyReportId',            'Name',            'Contents',            'RegisterUserId',            'AddDate',            'ApproverUserId',            'ApproveDate',            'ApproverUserId2',            'ApproveDate2',            'ApproverUserId3',            'ApproveDate3',            'ApproverUserId4',            'ApproveDate4',            'ApproverUserId5',            'ApproveDate5',            'CmUser/Name', // 등록자            'BusinessFieldId',            'CmBusinessField/Name',            'Datas',        ],        expand: [            'CmUser', 'CmBusinessField'        ],        extendOptions: {            forceOriginalField: true        },        filter: filter    };    var viewModel = self.viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsDailyReport', {        dataSourceOptions: dataSourceOptions,        columns: [            { dataField: 'DailyReportId', caption: '번호', width: '8%', alignment: 'center', allowFiltering: false },            { dataField: 'CmBusinessField/Name', caption: $G('businessFieldName'), width: '8%', alignment: 'center', visible: false },            { dataField: 'Name', caption: '제목', width: '52%', alignment: 'center' },            { dataField: 'CmUser/Name', caption: '등록자', width: '10%', alignment: 'center' },            {                dataField: 'AddDate', caption: '보고일', width: '10%', alignment: 'center', sortOrder: 'desc',                customizeText: function (cellInfo) {                    return $G.date(cellInfo.value);                }            },            { dataField: 'ApproverUserId', caption: '결재자', width: '10%', alignment: 'center', visible: false },            //{            //    dataField: 'ApproveDate', caption: '결재일', width: '10%', alignment: 'center', visible: false,            //    customizeText: function (cellInfo) {            //        return $G.date(cellInfo.value);            //    }            //},            { dataField: 'ApproverUserId2', caption: '결재자2', width: '10%', alignment: 'center', visible: false },            //{            //    dataField: 'ApproveDate2', caption: '결재일2', width: '10%', alignment: 'center', visible: false,            //    customizeText: function (cellInfo) {            //        return $G.date(cellInfo.value);            //    }            //},            { dataField: 'ApproverUserId3', caption: '결재자3', width: '10%', alignment: 'center', visible: false },            //{            //    dataField: 'ApproveDate3', caption: '결재일3', width: '10%', alignment: 'center', visible: false,            //    customizeText: function (cellInfo) {            //        return $G.date(cellInfo.value);            //    }            //},            { dataField: 'ApproverUserId4', caption: '결재자4', width: '10%', alignment: 'center', visible: false },            //{            //    dataField: 'ApproveDate4', caption: '결재일4', width: '10%', alignment: 'center', visible: false,            //    customizeText: function (cellInfo) {            //        return $G.date(cellInfo.value);            //    }            //},            { dataField: 'ApproverUserId5', caption: '결재자5', width: '10%', alignment: 'center', visible: false },            //{            //    dataField: 'ApproveDate5', caption: '결재일5', width: '10%', alignment: 'center', visible: false,            //    customizeText: function (cellInfo) {            //        return $G.date(cellInfo.value);            //    }            //}        ],        searchViewItems: [            { id: 'Name' },            { id: 'AddDate', type: 'dateRange', isOnlyDate: true },        ],        handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {        },        handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {            click = true;            dataGrid.clearSelection();            var data = clickRow.data;            var dataModel = viewModel.dataModel;            self.businessFieldId = data.BusinessFieldId();            dataModel.DailyReportId(data.DailyReportId());            popupVisible(true);            if (tempApproveEnable) {                var temp = tempApprove.split(';')                for (var i = 0; i < temp.length; i++) {                    if (temp[i] == BWA.UserInfo.UserId()) {                        switch (i) {                            case 0:                                if (data.ApproverUserId() == null) {                                    isVisibleApproalButton(true);                                    viewModel.visibleEditButton(true);                                }                                else {                                    isVisibleApproalButton(false);                                    viewModel.visibleEditButton(false);                                }                                break;                            case 1:                                if (data.ApproverUserId2() == null) {                                    isVisibleApproalButton(true);                                    viewModel.visibleEditButton(true);                                }                                else {                                    isVisibleApproalButton(false);                                    viewModel.visibleEditButton(false);                                }                                break;                            case 2:                                if (data.ApproverUserId3() == null) {                                    isVisibleApproalButton(true);                                    viewModel.visibleEditButton(true);                                }                                else {                                    isVisibleApproalButton(false);                                    viewModel.visibleEditButton(false);                                }                                break;                            case 3:                                if (data.ApproverUserId4() == null) {                                    isVisibleApproalButton(true);                                    viewModel.visibleEditButton(true);                                }                                else {                                    isVisibleApproalButton(false);                                    viewModel.visibleEditButton(false);                                }                                break;                            case 4:                                if (data.ApproverUserId5() == null) {                                    isVisibleApproalButton(true);                                    viewModel.visibleEditButton(true);                                }                                else {                                    isVisibleApproalButton(false);                                    viewModel.visibleEditButton(false);                                }                                break;                        }                        break;                    }                }            }            else {                if (data.ApproverUserId() == null) {                    isVisibleApproalButton(true);                    viewModel.visibleEditButton(true);                }                else {                    isVisibleApproalButton(false);                    viewModel.visibleEditButton(false);                }            }        },        handleViewShowing: function (dataModel) {            for (var i = 0; i < 3; i++) {                BemsFormulaDataSource.filter([                    ['SiteId', '=', SiteId],                    'and',                    ['FacilityTypeId', '=', fuelarray[i]],                    'and',                    ['FormulaId', '=', MainFormulaId]                ]);                $.when(                    BemsFormulaDataSource.load()                ).done(function (result) {                    var FacilityCode = result[0].FacilityCode();                    BemsFormulaParameterDataSource.filter([                        ['SiteId', '=', SiteId],                        'and',                        ['FacilityCode', '=', FacilityCode],                        'and',                        ['FormulaId', '=', MainFormulaId]                    ]);                    $.when(                        BemsFormulaParameterDataSource.load()                    ).done(function (result1) {                        for (var i = 0; i < fuelarray.length; i++) {                            if (fuelarray[i] == result1[0].FacilityTypeId()) {                                fueltotalarray[i] = new Array(result1.length);                                break;                            }                        }                        var ParameterResult = new Array(result1.length);                        for (var i = 0; i < result1.length; i++) {                            ParameterResult[i] = {                                ParameterFacilityCode: result1[i].ParameterFacilityCode(),                                ParameterPropertyId: result1[i].ParameterPropertyId()                            }                        }                        var cnt = 0;                        for (var i = 0; i < result1.length; i++) {                            BemsMonitoringPointDataSource.filter([                                ['SiteId', '=', SiteId],                                'and',                                ['FacilityCode', '=', ParameterResult[i].ParameterFacilityCode],                                'and',                                ['PropertyId', '=', ParameterResult[i].ParameterPropertyId]                            ]);                            $.when(                                BemsMonitoringPointDataSource.load()                                ).done(function (result3) {                                    fueltotalarray[result3[0].FuelTypeId() - 1][cnt] = {                                        FacilityCode: result3[0].FacilityCode(),                                        PropertyId: result3[0].PropertyId(),                                        Name: result3[0].Name(),                                        FuelTypeId: result3[0].FuelTypeId(),                                        Today: 0,                                        Daybefore: 0,                                        Dailyusage: 0                                    }                                    cnt++                                });                        }                    });                });            }            CmBusinessFieldDataSource.filter([             ['SiteId', '=', SiteId],             'and',             ['IsUse', '=', true]            ]);            $.when(                CmBusinessFieldDataSource.load()            ).done(function (result) {                BusinessFieldArray = new Array(result.length);                commonbusinessFieldId = result[0].BusinessFieldId();                if (tempseqEnable == false) {                    for (var i = 0; i < result.length; i++) {                        BusinessFieldArray[i] = {                            BusinessFieldId: result[i].BusinessFieldId,                            BusinessFieldName: result[i].Name                        }                    }                }                else {                    var tempseqsplit = tempseq.split(';');                    for (var i = 0; i < tempseqsplit.length; i++) {                        for (var j = 0; j < result.length; j++) {                            if (parseInt(tempseqsplit[i]) == result[j].BusinessFieldId()) {                                BusinessFieldArray[i] = {                                    BusinessFieldId: result[j].BusinessFieldId,                                    BusinessFieldName: result[j].Name                                }                                break;                            }                        }                    }                }            });            MaterialCodeClassDataSource.filter([                ['SiteId', '=', SiteId]            ]);            $.when(                MaterialCodeClassDataSource.load()            ).done(function (Result) {                materialClass = ko.observableArray();                var cnt = 0;                for (var i = 0; i < Result.length; i++) {                    materialClass.push(Result[i]);                }                materialClassForSearch($SearchView.createArrayOfSelectBox('MaterialClassId', materialClass()));            });            // 계속 push되는 현상을 막기위해 필터 초기화            //dataSourceOptions.filter.splice(0, dataSourceOptions.filter.length);            //dataSourceOptions.filter.push([eq('SiteId', SiteId)]);        },        handlePopupShowing: function (isNewInPopup, dataViewModel) {            Datecnt = 0;            var $BusinessDataCommon = $('#BusinessDataCommon'); // finds the <detail> element            $('#BusinessDataCommon').empty();            for (var i = 1; i < BusinessFieldArray.length; i++) {                var tempworkCommon = 'workCommon' + i;                popupGridInfo['gridContainerCommon' + i] = tempworkCommon;                $('<div id = componentcommon' + i + ' class="jh-popup-group" style="padding-top:10px"><div class="jh-popup-label fold_btn">' + BusinessFieldArray[i].BusinessFieldName() + " 작업관리" + '</div><div class="act_folding"><div id="gridContainerCommon' + i + '" class="jh-grid-in-popup" style="height:200px"/></div></div>')                   .appendTo($BusinessDataCommon)            }            var $BusinessDataMaterial = $('#BusinessDataMaterial'); // finds the <detail> element            $('#BusinessDataMaterial').empty();            for (var i = 1; i < BusinessFieldArray.length; i++) {                var tempfmsMaterial = 'fmsMaterial' + i;                popupGridInfo['gridContainerMaterialUsage' + i] = tempfmsMaterial;                $('<div id = componentmaterial' + i + ' class="jh-popup-group" style="padding-top:10px"><div class="jh-popup-label fold_btn">' + BusinessFieldArray[i].BusinessFieldName() + " 자재사용내역" + '</div><div class="act_folding"><div id="gridContainerMaterialUsage' + i + '" class="jh-grid-in-popup" style="height:200px;;padding-top:3px"/></div></div>')                   .appendTo($BusinessDataMaterial)            }            // 신규등록인 경우             init = isNewInPopup();            if (isNewInPopup()) {                isVisibleApproalButton(false);                self.businessFieldId = BWA.UserInfo.BusinessFieldId();                var urlHeader = BemsWebApplication.config.endpoints.api[BemsWebApplication.config.mode];                $.get(urlHeader + '/DailyReport/CurrentDate', function (date) {                    var day = new Date();//var day = new Date(date);                    dataViewModel.RegisterDate(day);                    day.setDate(day.getDate() - 1);                    dataViewModel.AddDate(day);                    dataViewModel.Name("[" + new Date(day).format("yyyy-MM-dd") + " " + week[day.getDay()] + "] 일간 보고서");                    dataViewModel.RegisterUserId(BWA.UserInfo.UserId());                    dataViewModel.ReportUrl('');                    if (tempseqEnable)                        dataViewModel.dataseq(tempseq);                    if (tempApproveEnable) {                        dataViewModel.Approveseq(tempApprove);                        dataViewModel.ApproveCnt(tempApprove.split(';').length);                    }                    loadBasicInfos();                });            }            else {                EnergyTableCreate();            }        },        handlePopupShown: function () {            setReportLink();            if (!init) {                setPopupGridViewAll();            }            else {                EnergyDataTable();            }            handlePopupShowingExtra();        },        handleViewShown: function (dataViewModel, isEditModeInPopup) {            if (tempApproveEnable) {                var temp = tempApprove.split(';')                for (var i = 2; i <= temp.length; i++) {                    $("#gridContainer").dxDataGrid("columnOption", "ApproverUserId" + i, "visible", true);                }            }            $("#gridContainer").dxDataGrid("columnOption", "ApproverUserId", "visible", true);            viewModel.refreshList();        },        handleCancelInPopup: function (dataModel) {            for (var i = 1; i <= temptempcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("viewmode" + i + j).style.display = "inline-block";                }            }            for (var i = 1; i <= temptotalcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("vitotal" + i + j).style.display = "inline-block";                }            }            for (var i = 1; i <= temptempcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("editmode" + i + j).style.display = "none";                }            }            for (var i = 1; i <= temptotalcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("edtotal" + i + j).style.display = "none";                }            }        },        handlePopupButtonEdit: function (dataModel) {            //document.getElementById("Viewdate").style.display = "inline-block";            //document.getElementById("Editdate").style.display = "none";            for (var i = 1; i <= temptempcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("viewmode" + i + j).style.display = "none";                }            }            for (var i = 1; i <= temptotalcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("vitotal" + i + j).style.display = "none";                }            }            for (var i = 1; i <= temptempcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("editmode" + i + j).style.display = "inline-block";                }            }            for (var i = 1; i <= temptotalcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("edtotal" + i + j).style.display = "inline-block";                }            }        },        getAddedToolbarItemsInPopup: function (e) {            return [            {                location: 'after', widget: 'button', options: {                    text: '결재', icon: 'add', type: 'success', visible: isVisibleApproalButton,                    clickAction: Approve                }            }];        },        popupWidth: '1200px'    });    function Approve() {        if (tempApproveEnable) {            var temp = tempApprove.split(';')            for (var i = 0; i < temp.length; i++) {                if (temp[i] == BWA.UserInfo.UserId()) {                    switch (i) {                        case 0:                            viewModel.dataModel.ApproverUserId(BWA.UserInfo.Name());                            viewModel.dataModel.ApproveDate(new Date());                            break;                        case 1:                            if (viewModel.dataModel.ApproverUserId() == null) {                                utils.toast.show("결재가 실패하였습니다. 선행결재가 필요합니다.", "error");                                return;                            }                            else {                                viewModel.dataModel.ApproverUserId2(BWA.UserInfo.Name());                                viewModel.dataModel.ApproveDate2(new Date());                            }                            break;                        case 2:                            if (viewModel.dataModel.ApproverUserId2() == null) {                                utils.toast.show("결재가 실패하였습니다. 선행결재가 필요합니다.", "error");                                return;                            }                            else {                                viewModel.dataModel.ApproverUserId3(BWA.UserInfo.Name());                                viewModel.dataModel.ApproveDate3(new Date());                            }                            break;                        case 3:                            if (viewModel.dataModel.ApproverUserId3() == null) {                                utils.toast.show("결재가 실패하였습니다. 선행결재가 필요합니다.", "error");                                return;                            }                            else {                                viewModel.dataModel.ApproverUserId4(BWA.UserInfo.Name());                                viewModel.dataModel.ApproveDate4(new Date());                            }                            break;                        case 4:                            if (viewModel.dataModel.ApproverUserId4() == null) {                                utils.toast.show("결재가 실패하였습니다. 선행결재가 필요합니다.", "error");                                return;                            }                            else {                                viewModel.dataModel.ApproverUserId5(BWA.UserInfo.Name());                                viewModel.dataModel.ApproveDate5(new Date());                            }                            break;                    }                    var keys = BWA.db.extractKeysObject('FmsDailyReport', viewModel.dataModel);                    BWA.db.FmsDailyReport.update(keys, viewModel.dataModel.toJS()).done(function (res) {                        utils.toast.show("성공적으로 결재가 진행되었습니다.");                        viewModel.popupOptions.visible(false);                        viewModel.gridView().refresh();                    }).fail(function (error) {                        utils.toast.show("결재가 실패하였습니다.", "error");                    });                }            }        }        else {            viewModel.dataModel.ApproverUserId(BWA.UserInfo.Name());            viewModel.dataModel.ApproveDate(new Date());            var keys = BWA.db.extractKeysObject('FmsDailyReport', viewModel.dataModel);            BWA.db.FmsDailyReport.update(keys, viewModel.dataModel.toJS()).done(function (res) {                utils.toast.show("성공적으로 결재가 진행되었습니다.");                viewModel.popupOptions.visible(false);                viewModel.gridView().refresh();            }).fail(function (error) {                utils.toast.show("결재가 실패하였습니다.", "error");            });        }    }    function DateChange(e) {        if (e.value != null) {            if (init) {                if (Datecnt != 0) {                    changeDate = true;                    var $BusinessDataCommon = $('#BusinessDataCommon'); // finds the <detail> element                    $('#BusinessDataCommon').empty();                    for (var i = 1; i < BusinessFieldArray.length; i++) {                        var tempworkCommon = 'workCommon' + i;                        popupGridInfo['gridContainerCommon' + i] = tempworkCommon;                        $('<div id = componentcommon' + i + ' class="jh-popup-group" style="padding-top:10px"><div class="jh-popup-label fold_btn">' + BusinessFieldArray[i].BusinessFieldName() + " 작업관리" + '</div><div class="act_folding"><div id="gridContainerCommon' + i + '" class="jh-grid-in-popup" style="height:200px"/></div></div>')                           .appendTo($BusinessDataCommon)                    }                    var $BusinessDataMaterial = $('#BusinessDataMaterial'); // finds the <detail> element                    $('#BusinessDataMaterial').empty();                    for (var i = 1; i < BusinessFieldArray.length; i++) {                        var tempfmsMaterial = 'fmsMaterial' + i;                        popupGridInfo['gridContainerMaterialUsage' + i] = tempfmsMaterial;                        $('<div id = componentmaterial' + i + ' class="jh-popup-group" style="padding-top:10px"><div class="jh-popup-label fold_btn">' + BusinessFieldArray[i].BusinessFieldName() + " 자재사용내역" + '</div><div class="act_folding"><div id="gridContainerMaterialUsage' + i + '" class="jh-grid-in-popup" style="height:200px;;padding-top:3px"/></div></div>')                           .appendTo($BusinessDataMaterial)                    }                    self.businessFieldId = BWA.UserInfo.BusinessFieldId();                    var urlHeader = BemsWebApplication.config.endpoints.api[BemsWebApplication.config.mode];                    $.get(urlHeader + '/DailyReport/CurrentDate', function (date) {                        viewModel.dataModel.AddDate(new Date(e.value));                        viewModel.dataModel.Name("[" + new Date(e.value).format("yyyy-MM-dd") + " " + week[e.value.getDay()] + "] 일간 보고서");                        viewModel.dataModel.RegisterUserId(BWA.UserInfo.UserId());                        viewModel.dataModel.ReportUrl('');                        loadBasicInfos();                    });                    Datecnt = 0;                }                Datecnt++;            }        }    }    function EnergyTableCreate() {        var totalcnt = 0, tempcnt = 0;        var Name = "", FuelId = 0;        var totaladd = false;        var dataModel = viewModel.dataModel;        for (var i = 0; i < 2; i++) {            tempcnt += fueltotalarray[i].length;        }        var $EnergyData = $('#EnergyData');        $('#EnergyData').empty();        for (var i = 1; i <= tempcnt; i++) {            if (i <= fueltotalarray[0].length) {                var Name = fueltotalarray[0][i - 1].Name;                var FuelId = fueltotalarray[0][i - 1].FuelTypeId;                if (i == fueltotalarray[0].length)                    totaladd = true;            }            else {                var Name = fueltotalarray[1][i - 3].Name;                var FuelId = fueltotalarray[1][i - 3].FuelTypeId;                if (i == fueltotalarray[0].length + fueltotalarray[1].length)                    totaladd = true;            }            var FuelName = "";            var UnitName = "";            switch (FuelId) {                case 1:                    FuelName = "전력";                    UnitName = "(kwh)";                    break;                case 2:                    FuelName = "가스";                    UnitName = "(m3)";                    break;                case 3:                    FuelName = "상수도";                    break;            }            //수정 창            $('<div id="editmode' + i + '1" class="jh-width-2-10 jh-multi-line-item" style="width:231px;height:35px;">' + Name +                '</div><div id="editmode' + i + '2" ' + style + ' data-bind="dxTextArea: { value: dataModel.resultEnergy' + i + 'Today}">' + //dataModel.resultEnergy' + i + '.Today                '</div><div id="editmode' + i + '3" ' + style + ' data-bind="dxTextArea: { value: dataModel.resultEnergy' + i + 'Daybefore}">' + //dataModel.resultEnergy' + i + '.Daybefore}                '</div><div id="editmode' + i + '4" ' + style + ' data-bind="dxTextArea: { value: dataModel.resultEnergy' + i + 'Dailyusage}">' +// dataModel.resultEnergy' + i + '.Dailyusage                '</div><div id="editmode' + i + '5" ' + style + ' data-bind="dxTextArea: { value: dataModel.resultEnergy' + i + 'Monthusage}"></div>')//dataModel.resultEnergy' + i + '.Monthusage                .appendTo($EnergyData)            //보는창            $('<div id="viewmode' + i + '1" class="jh-width-2-10 jh-multi-line-item" style="width:231px;height:35px;">' + Name +                '</div><div id="viewmode' + i + '2" ' + style + ' data-bind="text: dataModel.resultEnergy' + i + 'Today">' +                '</div><div id="viewmode' + i + '3" ' + style + ' data-bind="text: dataModel.resultEnergy' + i + 'Daybefore">' +                '</div><div id="viewmode' + i + '4" ' + style + ' data-bind="text: dataModel.resultEnergy' + i + 'Dailyusage">' +                '</div><div id="viewmode' + i + '5" ' + style + ' data-bind="text: dataModel.resultEnergy' + i + 'Monthusage"></div>')                .appendTo($EnergyData)            dataModel['resultEnergy' + i + 'Name'](Name);            dataModel['resultEnergy' + i + 'Today'](0);            dataModel['resultEnergy' + i + 'Daybefore'](0);            dataModel['resultEnergy' + i + 'Dailyusage'](0);            dataModel['resultEnergy' + i + 'Monthusage'](0);            if (i == tempcnt) {                for (var j = tempcnt + 1; j <= 9; j++) {                    dataModel['resultEnergy' + j + 'Name']("");                    dataModel['resultEnergy' + j + 'Today'](0);                    dataModel['resultEnergy' + j + 'Daybefore'](0);                    dataModel['resultEnergy' + j + 'Dailyusage'](0);                    dataModel['resultEnergy' + j + 'Monthusage'](0);                }            }            if (totaladd == true) {                totalcnt++;                //수정창                $('<div id="edtotal' + totalcnt + '1" class="jh-width-2-10 jh-multi-line-item" style="width:231px;height:35px;background-color:#FFFFCC;">' + FuelName + " 합계" + UnitName +               '</div><div id="edtotal' + totalcnt + '2" ' + colorstyle + ' data-bind="dxTextArea: { value: dataModel.resultEnergytotal' + totalcnt + 'Today}">' +               '</div><div id="edtotal' + totalcnt + '3" ' + colorstyle + ' data-bind="dxTextArea: { value: dataModel.resultEnergytotal' + totalcnt + 'Daybefore}">' +               '</div><div id="edtotal' + totalcnt + '4" ' + colorstyle + ' data-bind="dxTextArea: { value: dataModel.resultEnergytotal' + totalcnt + 'Dailyusage}">' +               '</div><div id="edtotal' + totalcnt + '5" ' + colorstyle + ' data-bind="dxTextArea: { value: dataModel.resultEnergytotal' + totalcnt + 'Monthusage}"></div>')               .appendTo($EnergyData)                //보는창                $('<div id="vitotal' + totalcnt + '1" class="jh-width-2-10 jh-multi-line-item" style="width:231px;height:35px;background-color:#FFFFCC;">' + FuelName + " 합계" + UnitName +              '</div><div id="vitotal' + totalcnt + '2" ' + colorstyle + ' data-bind="text: dataModel.resultEnergytotal' + totalcnt + 'Today">' +              '</div><div id="vitotal' + totalcnt + '3" ' + colorstyle + ' data-bind="text: dataModel.resultEnergytotal' + totalcnt + 'Daybefore">' +              '</div><div id="vitotal' + totalcnt + '4" ' + colorstyle + ' data-bind="text: dataModel.resultEnergytotal' + totalcnt + 'Dailyusage">' +              '</div><div id="vitotal' + totalcnt + '5" ' + colorstyle + ' data-bind="text: dataModel.resultEnergytotal' + totalcnt + 'Monthusage"></div>')              .appendTo($EnergyData)                totaladd = false;                dataModel['resultEnergytotal' + totalcnt + 'Name'](FuelName + " 합계" + UnitName);                dataModel['resultEnergytotal' + totalcnt + 'Today'](0);                dataModel['resultEnergytotal' + totalcnt + 'Daybefore'](0);                dataModel['resultEnergytotal' + totalcnt + 'Dailyusage'](0);                dataModel['resultEnergytotal' + totalcnt + 'Monthusage'](0);            }            if (i == tempcnt && fueltotalarray[2].length != 0) {                totalcnt++;                //수정창                $('<div id="edtotal' + totalcnt + '1" class="jh-width-2-10 jh-multi-line-item" style="width:231px;height:35px;background-color:#FFFFCC;">' + "상수도 합계(m3)" +               '</div><div id="edtotal' + totalcnt + '2" ' + colorstyle + ' data-bind="dxTextArea: { value: dataModel.resultEnergytotal' + totalcnt + 'Today}">' +               '</div><div id="edtotal' + totalcnt + '3" ' + colorstyle + ' data-bind="dxTextArea: { value: dataModel.resultEnergytotal' + totalcnt + 'Daybefore}">' +               '</div><div id="edtotal' + totalcnt + '4" ' + colorstyle + ' data-bind="dxTextArea: { value: dataModel.resultEnergytotal' + totalcnt + 'Dailyusage}">' +               '</div><div id="edtotal' + totalcnt + '5" ' + colorstyle + ' data-bind="dxTextArea: { value: dataModel.resultEnergytotal' + totalcnt + 'Monthusage}"></div>')               .appendTo($EnergyData)                //보는창                $('<div id="vitotal' + totalcnt + '1" class="jh-width-2-10 jh-multi-line-item" style="width:231px;height:35px;background-color:#FFFFCC;">' + "상수도 합계(m3)" +               '</div><div id="vitotal' + totalcnt + '2" ' + colorstyle + ' data-bind="text: dataModel.resultEnergytotal' + totalcnt + 'Today">' +               '</div><div id="vitotal' + totalcnt + '3" ' + colorstyle + ' data-bind="text: dataModel.resultEnergytotal' + totalcnt + 'Daybefore">' +               '</div><div id="vitotal' + totalcnt + '4" ' + colorstyle + ' data-bind="text: dataModel.resultEnergytotal' + totalcnt + 'Dailyusage">' +               '</div><div id="vitotal' + totalcnt + '5" ' + colorstyle + ' data-bind="text: dataModel.resultEnergytotal' + totalcnt + 'Monthusage"></div>')               .appendTo($EnergyData)                dataModel['resultEnergytotal' + totalcnt + 'Name']("상수도 합계(m3)");                dataModel['resultEnergytotal' + totalcnt + 'Today'](0);                dataModel['resultEnergytotal' + totalcnt + 'Daybefore'](0);                dataModel['resultEnergytotal' + totalcnt + 'Dailyusage'](0);                dataModel['resultEnergytotal' + totalcnt + 'Monthusage'](0);            }        }        temptempcnt = tempcnt;        temptotalcnt = totalcnt;        var cnt = tempcnt + totalcnt - 1;        document.getElementById("EnergyDataup3").style.height = 109 + (cnt * 35) + "px";        document.getElementById("EnergyDataup2").style.height = 72 + (cnt * 35) + "px";        document.getElementById("EnergyDataup1").style.height = 36 + (cnt * 35) + "px";        document.getElementById("EnergyData").style.height = 36 + (cnt * 35) + "px";        for (var i = 1; i <= tempcnt; i++) {            for (var j = 1; j <= 5; j++) {                document.getElementById("editmode" + i + j).style.border = borderstyle;                ko.applyBindings(viewModel, $("#editmode" + i + j)[0]);                document.getElementById("viewmode" + i + j).style.border = borderstyle;                ko.applyBindings(viewModel, $("#viewmode" + i + j)[0]);            }        }        for (var i = 1; i <= totalcnt; i++) {            for (var j = 1; j <= 5; j++) {                document.getElementById("edtotal" + i + j).style.border = borderstyle;                ko.applyBindings(viewModel, $("#edtotal" + i + j)[0]);                document.getElementById("vitotal" + i + j).style.border = borderstyle;                ko.applyBindings(viewModel, $("#vitotal" + i + j)[0]);            }        }        if (click) {            for (var i = 1; i <= temptempcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("editmode" + i + j).style.display = "none";                }            }            for (var i = 1; i <= totalcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("edtotal" + i + j).style.display = "none";                }            }            click = false;        }        else {            for (var i = 1; i <= temptempcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("viewmode" + i + j).style.display = "none";                }            }            for (var i = 1; i <= totalcnt; i++) {                for (var j = 1; j <= 5; j++) {                    document.getElementById("vitotal" + i + j).style.display = "none";                }            }            click = false;            for (var i = 1; i < 4; i++) {                dataModel['resultEnergytotal' + i + 'Today'](0);                dataModel['resultEnergytotal' + i + 'Daybefore'](0);                dataModel['resultEnergytotal' + i + 'Dailyusage'](0);                dataModel['resultEnergytotal' + i + 'Monthusage'](0);            }        }        if (changeDate) {            setReportLink();            EnergyDataTable();            handlePopupShowingExtra();            changeDate = false;        }    }    function setReportLink() {        var addDate = $G.date(viewModel.dataModel.AddDate());        var urlHeader = BemsWebApplication.config.endpoints.service[BemsWebApplication.config.mode];        var reportUrl = urlHeader + '/Report/DailyReportView.aspx?SiteId=' + SiteId + '&AddDate=' + addDate + '&BusinessFieldId=' + self.businessFieldId;        viewModel.dataModel.ReportUrl(reportUrl);    }    function handlePopupShowingExtra() {        // 메뉴 접기 기능        $('.fold_btn').unbind('click');        $('.fold_btn').click(function () {            $(this).siblings('.act_folding').slideToggle();            $(this).siblings().find('.act_folding').slideToggle();        });        // 마우스 휠 이벤트        $('.cw-wordwrap, .dx-popup-content').unbind('dxmousewheel');        $('.cw-wordwrap, .dx-popup-content').on("dxmousewheel", function (e) {            e.stopPropagation();        });    }    function initCap(str) {        var str = str.substring(0, 1).toUpperCase() + str.substring(1, str.length);        return str;    }    function makeUrl(SiteId, businessFieldId) {        var AddDate = $G.date(viewModel.dataModel.AddDate());        var urlHeader = BemsWebApplication.config.endpoints.api[BemsWebApplication.config.mode];        var url = {            workStatus: urlHeader + '/DailyReport/WorkStatus?&SiteId=' + SiteId + '&addDate=' + AddDate + '&BusinessFieldId=' + businessFieldId,            workCommon: urlHeader + '/DailyReport/FmsWorkRequestForDailyReport?&SiteId=' + SiteId + '&addDate=' + AddDate + '&BusinessFieldId=' + businessFieldId,            fmsMaterial: urlHeader + '/DailyReport/FmsMaterialForDailyReport?&SiteId=' + SiteId + '&addDate=' + AddDate + '&BusinessFieldId=' + businessFieldId,        }        for (var i = 1; i < BusinessFieldArray.length; i++) {            url['workCommon' + i] = urlHeader + '/DailyReport/FmsWorkRequestForDailyReport?&SiteId=' + SiteId + '&addDate=' + AddDate + '&BusinessFieldId=' + BusinessFieldArray[i].BusinessFieldId();            url['fmsMaterial' + i] = urlHeader + '/DailyReport/FmsMaterialForDailyReport?&SiteId=' + SiteId + '&addDate=' + AddDate + '&BusinessFieldId=' + BusinessFieldArray[i].BusinessFieldId();        }        return url;    }    function loadBasicInfos() {        var init = true;        var userId = BWA.UserInfo.UserId();        viewModel.dataModel.BusinessFieldId(commonbusinessFieldId);        var urls = makeUrl(SiteId, commonbusinessFieldId);        var cnt = 0;        var dataModel = viewModel.dataModel;        for (var i = 1; i < BusinessFieldArray.length; i++) {            $.when($.get(urls['workCommon' + i]),                $.get(urls['fmsMaterial' + i])                ).done(function (tempworkCommon, tempfmsMaterial) {                    if (init) {                        if (tempworkCommon[0].length == 0) {                            for (var i = 1; i < BusinessFieldArray.length; i++) {                                dataModel['resultWorkCommon' + i](tempworkCommon[0]);                                dataModel['resultFmsMaterial' + i](tempfmsMaterial[0]);                            }                        }                        else {                            var k = 0;                            for (var i = 0; i < BusinessFieldArray.length; i++) {                                if (BusinessFieldArray[i].BusinessFieldId() == tempworkCommon[0][0].BusinessFieldId) {                                    break;                                }                                else {                                    k++;                                }                            }                            dataModel['resultWorkCommon' + k](tempworkCommon[0]);                            for (var i = 0; i < tempfmsMaterial[0].length; i++) {                                for (var j = 1; j < materialClassForSearch().length; j++) {                                    if (tempfmsMaterial[0][i].FirstClassId == materialClassForSearch()[j].MaterialClassId()) {                                        tempfmsMaterial[0][i].StringFirstClassId = materialClassForSearch()[j].Name();                                        break;                                    }                                }                                for (var j = 1; j < materialClassForSearch().length; j++) {                                    if (tempfmsMaterial[0][i].SecondClassId == materialClassForSearch()[j].MaterialClassId()) {                                        tempfmsMaterial[0][i].StringSecondClassId = materialClassForSearch()[j].Name();                                        break;                                    }                                }                                for (var j = 1; j < materialClassForSearch().length; j++) {                                    if (tempfmsMaterial[0][i].ThirdClassId == materialClassForSearch()[j].MaterialClassId()) {                                        tempfmsMaterial[0][i].StringThirdClassId = materialClassForSearch()[j].Name();                                        break;                                    }                                }                            }                            dataModel['resultFmsMaterial' + k](tempfmsMaterial[0]);                        }                        init = false;                    }                    else {                        if (tempworkCommon[0].length == 0) {                            for (var i = 1; i < BusinessFieldArray.length; i++) {                                if (dataModel['resultWorkCommon' + i]() == null) {                                    dataModel['resultWorkCommon' + i](tempworkCommon[0]);                                    dataModel['resultFmsMaterial' + i](tempfmsMaterial[0]);                                }                            }                        }                        else {                            var k = 0;                            for (var i = 0; i < BusinessFieldArray.length; i++) {                                if (BusinessFieldArray[i].BusinessFieldId() == tempworkCommon[0][0].BusinessFieldId) {                                    break;                                }                                else {                                    k++;                                }                            }                            dataModel['resultWorkCommon' + k](tempworkCommon[0]);                            for (var i = 0; i < tempfmsMaterial[0].length; i++) {                                for (var j = 1; j < materialClassForSearch().length; j++) {                                    if (tempfmsMaterial[0][i].FirstClassId == materialClassForSearch()[j].MaterialClassId()) {                                        tempfmsMaterial[0][i].StringFirstClassId = materialClassForSearch()[j].Name();                                        break;                                    }                                }                                for (var j = 1; j < materialClassForSearch().length; j++) {                                    if (tempfmsMaterial[0][i].SecondClassId == materialClassForSearch()[j].MaterialClassId()) {                                        tempfmsMaterial[0][i].StringSecondClassId = materialClassForSearch()[j].Name();                                        break;                                    }                                }                                for (var j = 1; j < materialClassForSearch().length; j++) {                                    if (tempfmsMaterial[0][i].ThirdClassId == materialClassForSearch()[j].MaterialClassId()) {                                        tempfmsMaterial[0][i].StringThirdClassId = materialClassForSearch()[j].Name();                                        break;                                    }                                }                            }                            dataModel['resultFmsMaterial' + k](tempfmsMaterial[0]);                        }                    }                    cnt++;                    if (cnt == BusinessFieldArray.length - 1) {                        $.when($.get(urls.workStatus),                            $.get(urls.workCommon),                            $.get(urls.fmsMaterial)                            ).done(function (resultWorkStatus, resultWorkCommon, resultFmsMaterial) {                                dataModel.WorkStatusTypeOccasional(resultWorkStatus[0].WorkStatusTypeOccasional);                                dataModel.WorkStatusTypePeriodicInspection(resultWorkStatus[0].WorkStatusTypePeriodicInspection);                                dataModel.WorkStatusTypeForensicExamination(resultWorkStatus[0].WorkStatusTypeForensicExamination);                                dataModel.WorkStatusTypeEtc(resultWorkStatus[0].WorkStatusTypeEtc);                                dataModel.WorkStatusTypeTotal(resultWorkStatus[0].WorkStatusTypeTotal);                                dataModel.WorkStatusPending(resultWorkStatus[0].WorkStatusPending);                                dataModel.WorkStatusInProgress(resultWorkStatus[0].WorkStatusInProgress);                                dataModel.WorkStatusDeferred(resultWorkStatus[0].WorkStatusDeferred);                                dataModel.WorkStatusComplete(resultWorkStatus[0].WorkStatusComplete);                                dataModel.WorkStatusApproved(resultWorkStatus[0].WorkStatusApproved);                                dataModel.WorkStatusTotal(resultWorkStatus[0].WorkStatusTotal);                                dataModel.resultWorkCommon(resultWorkCommon[0]);                                for (var i = 0; i < resultFmsMaterial[0].length; i++) {                                    for (var j = 1; j < materialClassForSearch().length; j++) {                                        if (resultFmsMaterial[0][i].FirstClassId == materialClassForSearch()[j].MaterialClassId()) {                                            resultFmsMaterial[0][i].StringFirstClassId = materialClassForSearch()[j].Name();                                            break;                                        }                                    }                                    for (var j = 1; j < materialClassForSearch().length; j++) {                                        if (resultFmsMaterial[0][i].SecondClassId == materialClassForSearch()[j].MaterialClassId()) {                                            resultFmsMaterial[0][i].StringSecondClassId = materialClassForSearch()[j].Name();                                            break;                                        }                                    }                                    for (var j = 1; j < materialClassForSearch().length; j++) {                                        if (resultFmsMaterial[0][i].ThirdClassId == materialClassForSearch()[j].MaterialClassId()) {                                            resultFmsMaterial[0][i].StringThirdClassId = materialClassForSearch()[j].Name();                                            break;                                        }                                    }                                }                                dataModel.resultFmsMaterial(resultFmsMaterial[0]);                                setPopupGridViewAll();                                EnergyTableCreate();                            });                    }                });        }    }    function setPopupGridViewAll() {        for (var gridId in popupGridInfo) {            setPopupGridView(gridId);        }    }    function setPopupGridView(gridId) {        if (gridId.substring(13, 19) == 'Common') {            var grid = handleGridViewInPopup(gridId, {                dataSource: getDataSource(gridId)(),                columns: getColumns(gridId),                onSelectionChanged: function (e) {                    e.component.collapseAll(-1);                    e.component.expandRow(e.currentSelectedRowKeys[0]);                },                masterDetail: {                    enabled: true,                    autoExpandAll: false,                    template: function (container, options) {                        var checkitemData = options.data;                        var temptext = checkitemData.TextResult;                        var tempdate = checkitemData.TextResultDate;                        if (temptext != null) {                            for (var i = 0; i < temptext.length; i++) {                                var result = temptext[i].replace(/\n/gi, '</p><p>        ');                                result = result.replace(/\?-/g, " -");                                container.append($('<p class id="temptext" style="padding-left:17px">' + new Date(tempdate[i]).format("yyyy-MM-dd") + " - " + result + '</p>'));                                //container.append($('<p class id="temptext" style="padding-left:17px">' + new Date(tempdate[i]).format("yyyy-MM-dd") + " - " + temptext[i] + '</p>'));                                                  }                        }                    }                }            });        }        else {            var grid = handleGridViewInPopup(gridId, {                dataSource: getDataSource(gridId)(),                columns: getColumns(gridId),            });        }        grid.refresh();    }    function getColumns(gridId) {        if (gridId.substring(13, 19) == 'Common') {            return [                    { dataField: 'No', caption: '번호', width: '5%', alignment: 'center' },                    { dataField: 'WorkTypeId', caption: '작업구분', width: '7%', alignment: 'center' },                    { dataField: 'RequestDate', caption: '민원접수일시', width: '20%', alignment: 'center', dataType: 'date', format: 'yyyy-MM-dd HH:mm', visible: false },                    { dataField: 'WorkProgressId', caption: '작업상태', width: '8%', alignment: 'center' },                    { dataField: 'Title', caption: '작업명', width: '80%', alignment: 'center' }            ];        } else {            return [                    { dataField: 'No', caption: '번호', width: '5%', alignment: 'center', allowFiltering: false },                    { dataField: 'ReleaseType', caption: '출고구분', width: '7%', alignment: 'center' },                    {                        dataField: 'FirstClassId', caption: '자재(대)', width: '8%', alignment: 'center',                        customizeText: function (cellInfo) {                            for (var i = 1; i < materialClassForSearch().length; i++) {                                if (materialClassForSearch()[i].MaterialClassId() == cellInfo.value) {                                    return materialClassForSearch()[i].Name();                                }                            }                        }                    },                    {                        dataField: 'SecondClassId', caption: '자재(중)', width: '8%', alignment: 'center',                        customizeText: function (cellInfo) {                            for (var i = 1; i < materialClassForSearch().length; i++) {                                if (materialClassForSearch()[i].MaterialClassId() == cellInfo.value) {                                    return materialClassForSearch()[i].Name();                                }                            }                        }                    },                    {                        dataField: 'ThirdClassId', caption: '자재(소)', width: '8%', alignment: 'center',                        customizeText: function (cellInfo) {                            for (var i = 1; i < materialClassForSearch().length; i++) {                                if (materialClassForSearch()[i].MaterialClassId() == cellInfo.value) {                                    return materialClassForSearch()[i].Name();                                }                            }                        }                    },                    { dataField: 'MaterialCode', caption: '자재코드', width: '17%', alignment: 'center', visible: false },                    { dataField: 'MaterialName', caption: '자재명', width: '17%', alignment: 'center' },                    { dataField: 'Standard', caption: '규격', width: '18%', alignment: 'center' },                    { dataField: 'WorkName', caption: '작업명', width: '19%', alignment: 'center' },                    { dataField: 'Unit', caption: '단위', width: '5%', alignment: 'center' },                    { dataField: 'MaterialCount', caption: '수량', width: '5%', alignment: 'center', allowFiltering: false, format: 'currency' },                    { dataField: 'WorkerName', caption: '작업자', width: '10%', alignment: 'center', allowFiltering: false, visible: false },            ];        }    }    function EnergyDataTable() {        var TodayDate = new Date(viewModel.dataModel.AddDate());        var tempcnt = 0;        var FacilityCode = 0, PropertyId = 0;        var Today = 0, Daybefore = 0, Dailyusage = 0, Monthusage = 0;        for (var i = 0; i < 3; i++) {            tempcnt += fueltotalarray[i].length;        }        var datacnt = 0;        var EnergtDate = new Array(tempcnt);        for (var i = 0; i < tempcnt; i++) {            if (i < fueltotalarray[0].length) {                EnergtDate[i] = {                    Name: fueltotalarray[0][i].Name,                    Fuel: fueltotalarray[0][i].FuelTypeId,                    FacilityCode: fueltotalarray[0][i].FacilityCode,                    PropertyId: fueltotalarray[0][i].PropertyId,                    Today: 0,                    Daybefore: 0,                    Dailyusage: 0,                    Monthusage: 0                }            }            else if (i < fueltotalarray[0].length + fueltotalarray[1].length) {                EnergtDate[i] = {                    Name: fueltotalarray[1][i - fueltotalarray[0].length].Name,                    Fuel: fueltotalarray[1][i - fueltotalarray[0].length].FuelTypeId,                    FacilityCode: fueltotalarray[1][i - fueltotalarray[0].length].FacilityCode,                    PropertyId: fueltotalarray[1][i - fueltotalarray[0].length].PropertyId,                    Today: 0,                    Daybefore: 0,                    Dailyusage: 0,                    Monthusage: 0                }            }            else {                EnergtDate[i] = {                    Name: fueltotalarray[2][i - (fueltotalarray[0].length + fueltotalarray[1].length)].Name,                    Fuel: fueltotalarray[2][i - (fueltotalarray[0].length + fueltotalarray[1].length)].FuelTypeId,                    FacilityCode: fueltotalarray[2][i - (fueltotalarray[0].length + fueltotalarray[1].length)].FacilityCode,                    PropertyId: fueltotalarray[2][i - (fueltotalarray[0].length + fueltotalarray[1].length)].PropertyId,                    Today: 0,                    Daybefore: 0,                    Dailyusage: 0,                    Monthusage: 0                }            }        }        for (var i = 0; i < EnergtDate.length; i++) {            var dataSource = new DevExpress.data.DataSource({ //금일                store: new DevExpress.data.ODataStore({                    url: endpointSelector + "/BemsMonitoringPointHistory15minRawData"                }),                requireTotalCount: true,                pageSize: 1            });            dataSource.filter([                ["SiteId", "=", SiteId],                "and",                ["CreatedDateTime", ">=", new Date(TodayDate.getFullYear(), TodayDate.getMonth(), TodayDate.getDate(), 0, 0, 0)],                "and",                ["CreatedDateTime", "<=", new Date(TodayDate.getFullYear(), TodayDate.getMonth(), TodayDate.getDate(), 23, 59, 59)],                "and",                ["FacilityCode", "=", EnergtDate[i].FacilityCode],                "and",                ["PropertyId", "=", EnergtDate[i].PropertyId],            ]);            dataSource.sort({ getter: "CreatedDateTime", desc: true });            dataSource.load()            .done(function (result) {                if (result != null && result.length != 0) {                    for (var i = 0; i < EnergtDate.length; i++) {                        if (result[0].FacilityCode == EnergtDate[i].FacilityCode && result[0].PropertyId == EnergtDate[i].PropertyId) {                            EnergtDate[i].Today = result[0].CurrentValue;                            break;                        }                    }                    var dataSource1 = new DevExpress.data.DataSource({ //전일                        store: new DevExpress.data.ODataStore({                            url: endpointSelector + "/BemsMonitoringPointHistory15minRawData"                        }),                        requireTotalCount: true,                        pageSize: 1                    });                    dataSource1.filter([                        ["SiteId", "=", SiteId],                        "and",                        ["CreatedDateTime", ">=", new Date(TodayDate.getFullYear(), TodayDate.getMonth(), TodayDate.getDate() - 1, 0, 0, 0)],                        "and",                        ["CreatedDateTime", "<=", new Date(TodayDate.getFullYear(), TodayDate.getMonth(), TodayDate.getDate() - 1, 23, 59, 59)],                        "and",                        ["FacilityCode", "=", EnergtDate[i].FacilityCode],                        "and",                        ["PropertyId", "=", EnergtDate[i].PropertyId],                    ]);                    dataSource1.sort({ getter: "CreatedDateTime", desc: true });                    dataSource1.load()                    .done(function (result1) {                        if (result1 != null) {                            for (var i = 0; i < EnergtDate.length; i++) {                                if (result1[0].FacilityCode == EnergtDate[i].FacilityCode && result1[0].PropertyId == EnergtDate[i].PropertyId) {                                    EnergtDate[i].Daybefore = result1[0].CurrentValue;                                    EnergtDate[i].Dailyusage = EnergtDate[i].Today - result1[0].CurrentValue;                                    break;                                }                            }                            var dataSource2 = new DevExpress.data.DataSource({ //월사용량                                store: new DevExpress.data.ODataStore({                                    url: endpointSelector + "/BemsMonitoringPointHistoryDaily"                                }),                                requireTotalCount: true,                                pageSize: 31                            });                            dataSource2.filter([                                ["SiteId", "=", SiteId],                                "and",                                ["CreatedDateTime", ">=", new Date(TodayDate.getFullYear(), TodayDate.getMonth(), 1, 0, 0, 0)],                                "and",                                ["CreatedDateTime", "<", new Date(TodayDate.getFullYear(), TodayDate.getMonth(), TodayDate.getDate() + 1, 0, 0, 0)],                                "and",                                ["FacilityCode", "=", EnergtDate[i].FacilityCode],                                "and",                                ["PropertyId", "=", EnergtDate[i].PropertyId],                            ]);                            dataSource2.sort({ getter: "CreatedDateTime", desc: true });                            dataSource2.load()                            .done(function (result2) {                                var temp = 0;                                datacnt = datacnt + 1;                                if (result2 != null) {                                    for (var j = 0; j < result2.length; j++) {                                        temp += result2[j].DailyValue                                    }                                    for (var i = 0; i < EnergtDate.length; i++) {                                        if (result2[0].FacilityCode == EnergtDate[i].FacilityCode && result2[0].PropertyId == EnergtDate[i].PropertyId) {                                            EnergtDate[i].Monthusage = temp;                                            break;                                        }                                    }                                }                                if (datacnt == EnergtDate.length) {                                    var dataModel = viewModel.dataModel;                                    var powerToday = 0, powerDaybefore = 0, powerDailyusage = 0, powerMonthusage = 0;                                    var gasToday = 0, gasDaybefore = 0, gasDailyusage = 0, gasMonthusage = 0;                                    var waterToday = 0, waterDaybefore = 0, waterDailyusage = 0, waterMonthusage = 0;                                    var fuelcnt = 0;                                    var power = 0, gas = 0, water = 0;                                    for (var i = 0; i < EnergtDate.length; i++) {                                        switch (EnergtDate[i].Fuel) {                                            case 1:                                                power++;                                                break;                                            case 2:                                                gas++;                                                break;                                            case 3:                                                water++;                                                break;                                        }                                        if (EnergtDate[i].Fuel != 3) {                                            var tempnum = i + 1;                                            dataModel['resultEnergy' + tempnum + 'Today'](numberWithCommas(EnergtDate[i].Today.toFixed(2)));                                            dataModel['resultEnergy' + tempnum + 'Daybefore'](numberWithCommas(EnergtDate[i].Daybefore.toFixed(2)));                                            dataModel['resultEnergy' + tempnum + 'Dailyusage'](numberWithCommas(EnergtDate[i].Dailyusage.toFixed(2)));                                            dataModel['resultEnergy' + tempnum + 'Monthusage'](numberWithCommas(EnergtDate[i].Monthusage.toFixed(2)));                                        }                                        else {                                            waterToday += EnergtDate[i].Today;                                            waterDaybefore += EnergtDate[i].Daybefore;                                            waterDailyusage += EnergtDate[i].Dailyusage;                                            waterMonthusage += EnergtDate[i].Monthusage;                                        }                                    }                                    if (power != 0) {                                        fuelcnt++;                                        for (var j = 0; j < power; j++) {                                            powerToday += EnergtDate[j].Today;                                            powerDaybefore += EnergtDate[j].Daybefore;                                            powerDailyusage += EnergtDate[j].Dailyusage;                                            powerMonthusage += EnergtDate[j].Monthusage;                                        }                                        dataModel['resultEnergytotal' + fuelcnt + 'Today'](numberWithCommas(powerToday.toFixed(2)));                                        dataModel['resultEnergytotal' + fuelcnt + 'Daybefore'](numberWithCommas(powerDaybefore.toFixed(2)));                                        dataModel['resultEnergytotal' + fuelcnt + 'Dailyusage'](numberWithCommas(powerDailyusage.toFixed(2)));                                        dataModel['resultEnergytotal' + fuelcnt + 'Monthusage'](numberWithCommas(powerMonthusage.toFixed(2)));                                    }                                    if (gas != 0) {                                        fuelcnt++;                                        for (var j = power; j < power + gas; j++) {                                            gasToday += EnergtDate[j].Today;                                            gasDaybefore += EnergtDate[j].Daybefore;                                            gasDailyusage += EnergtDate[j].Dailyusage;                                            gasMonthusage += EnergtDate[j].Monthusage;                                        }                                        dataModel['resultEnergytotal' + fuelcnt + 'Today'](numberWithCommas(gasToday.toFixed(2)));                                        dataModel['resultEnergytotal' + fuelcnt + 'Daybefore'](numberWithCommas(gasDaybefore.toFixed(2)));                                        dataModel['resultEnergytotal' + fuelcnt + 'Dailyusage'](numberWithCommas(gasDailyusage.toFixed(2)));                                        dataModel['resultEnergytotal' + fuelcnt + 'Monthusage'](numberWithCommas(gasMonthusage.toFixed(2)));                                    }                                    if (water != 0) {                                        fuelcnt++;                                        dataModel['resultEnergytotal' + fuelcnt + 'Today'](numberWithCommas(waterToday.toFixed(2)));                                        dataModel['resultEnergytotal' + fuelcnt + 'Daybefore'](numberWithCommas(waterDaybefore.toFixed(2)));                                        dataModel['resultEnergytotal' + fuelcnt + 'Dailyusage'](numberWithCommas(waterDailyusage.toFixed(2)));                                        dataModel['resultEnergytotal' + fuelcnt + 'Monthusage'](numberWithCommas(waterMonthusage.toFixed(2)));                                    }                                }                            }).fail(function (error) {                                utils.toast.show("[BemsMonitoringPointHistoryDaily] 월 사용량 정보를 읽어올수 없습니다.");                            });                        }                    }).fail(function (error) {                        utils.toast.show("[BemsMonitoringPointHistoryDaily] 전일 정보를 읽어올수 없습니다.");                    });                }            }).fail(function (error) {                utils.toast.show("[BemsMonitoringPointHistoryDaily] 금일 정보를 읽어올수 없습니다.");            });        }    }    function numberWithCommas(x) {        return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");    }    function getDataSource(gridId) {        var urlId = popupGridInfo[gridId];        if (self.viewModel.dataModel['resultWorkCommon']() != null) {            if (self.viewModel.dataModel['resultWorkCommon']().length == 0) {                $("#componentcommon").hide();            }            else {                $("#componentcommon").show();            }            if (self.viewModel.dataModel['resultFmsMaterial']().length == 0) {                $("#componentmaterial").hide();            }            else {                $("#componentmaterial").show();            }        }        for (var i = 1; i < BusinessFieldArray.length; i++) {            if (self.viewModel.dataModel['resultWorkCommon' + i]() != null) {                if (self.viewModel.dataModel['resultWorkCommon' + i]().length == 0) {                    $("#componentcommon" + i).hide();                }                else {                    $("#componentcommon" + i).show();                }            }            if (self.viewModel.dataModel['resultFmsMaterial' + i]() != null) {                if (self.viewModel.dataModel['resultFmsMaterial' + i]().length == 0) {                    $("#componentmaterial" + i).hide();                }                else {                    $("#componentmaterial" + i).show();                }            }        }        return self.viewModel.dataModel['result' + initCap(urlId)];    }    function handleGridViewInPopup(gridId, options) {        var mode = 'single';        $.extend(options, {            pager: { visible: false },            selection: {                mode: mode            }        });        return $("#" + gridId).dxDataGrid(utils.datagrid.defaultOptions(options)).dxDataGrid("instance");    };    viewModel.dataModel.ReportUrl = ko.observable();    viewModel.DateChange = DateChange;    return viewModel;};
 |