| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 | BemsWebApplication.FacilityTempSet = function (params, viewInfo) {    "use strict";    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 facilityClassDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass');    var AIR_HANDLING = $Code.FacilityType.AIR_HANDLING;    var TEMP_SET = $Code.Formula[AIR_HANDLING].TEMP_SET;    var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true),        floorDataSource = BemsWebApplication.db.createDataSource('CmFloor'),        zoneDataSource = BemsWebApplication.db.createDataSource('CmZone');    // 설비분류 데이터소스     var facilityTypeDataSource = BemsWebApplication.db.createDataSource('BemsFacilityType');    var facilityTypes = ko.observableArray();    var facilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()];    var buildings = ko.observableArray(),        floors = ko.observableArray(),        zones = ko.observableArray();    var searchFacilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()],        searchFacilityClassValues = [ko.observable(), ko.observable(), ko.observable()],        searchBuildings = ko.observableArray(),        searchFloors = ko.observableArray(),        searchBuildingId = ko.observable(),        searchFloorId = ko.observable();    var defaultSearchClassArray = $SearchView.createDefaultArray('FacilityClassId'),        defaultSearchBuildingArray = $SearchView.createDefaultArray('BuildingId'),        defaultSearchFloorArray = $SearchView.createDefaultArray('FloorId');    var searchDeferred = new $.Deferred();    var handleFirstClassChangedValueInSearchView = function (e) {        if (e.value === 0) {            initializeSearchClasses();            return;        }        BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[1], defaultSearchClassArray);    };    var handleSecondClassChangedValueInSearchView = function (e) {        if (e.value === 0) {            initializeSearchClasses(true);            return;        }        BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[2], defaultSearchClassArray);    };    var handleBuildingInSearchView = function (e) {        if (e.value === 0) {            searchFloors(defaultSearchFloorArray.slice(0));            searchFloorId(0);            return 0;        }        BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, searchFloors, defaultSearchFloorArray);    }    function initializeSearchClasses(onlyThird) {        if (onlyThird === undefined || onlyThird === false) {            searchFacilityClasses[1](defaultSearchClassArray.slice(0));            searchFacilityClassValues[1](0);        }        searchFacilityClasses[2](defaultSearchClassArray.slice(0));        searchFacilityClassValues[2](0);    }    function setupDropZone(isEditModeInPopup, dataViewModel) {        var timer = null;        isEditModeInPopup.subscribe(function (value) {            if (value) {                if (timer) { clearInterval(timer); }                timer = setInterval(function () {                    if ($('#facilityDropZone').length) {                        if (_.isNull(dropZone)) {                            dropZone = BWA.DropZone.create({                                id: '#facilityDropZone',                                categoryId: $Code.FileCategory.FACILITY,                                uploadedFileInfo: uploadedFileInfo,                                handleRemoveBeforePromise: function () {                                    var keys = BWA.db.extractKeysObject('CmFacility', dataViewModel);                                    return BWA.db.CmFacility.update(keys, { FileId: null });                                },                                handleSuccess: function (fileInfo) {                                    dataViewModel.FileId(fileInfo.FileId);                                },                                handleRemovedFile: function () {                                    dataViewModel.FileId(null);                                },                            });                            uploadedFileInfo.SiteId = dataViewModel.SiteId();                            uploadedFileInfo.FileId = dataViewModel.FileId();                            if (uploadedFileInfo.FileId) {                                BWA.db.CmFile.byKey(uploadedFileInfo).done(function (data) {                                    dropZone.removeAllFiles();                                    dropZone.emit('addedfile', {                                        name: data.Name,                                        size: data.FileSize                                    });                                });                            }                        }                    }                }, 100);            }            else {                if (timer) {                    clearInterval(timer);                    timer = null;                }                dropZone = null;            }        });    }    var facilityOptions = BemsWebApplication.Factory.Facility;    var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'CmFacilityTempSet', {        rowUpdated: function (e) {            var PropertyId, controlvalue;            var now = new Date();            var SiteId = e.key.SiteId;            var FacilityCode = e.key.FacilityCode;            var data = e.data;            var data_columns = Object.getOwnPropertyNames(data).toString();            var nowmonth = now.getMonth() + 1;            var nowmonth = "T" + nowmonth;            if (data_columns == nowmonth) {                if (data_columns == "T1") { controlvalue = data.T1; }                else if (data_columns == "T2") { controlvalue = data.T2; }                else if (data_columns == "T3") { controlvalue = data.T3; }                else if (data_columns == "T4") { controlvalue = data.T4; }                else if (data_columns == "T5") { controlvalue = data.T5; }                else if (data_columns == "T6") { controlvalue = data.T6; }                else if (data_columns == "T7") { controlvalue = data.T7; }                else if (data_columns == "T8") { controlvalue = data.T8; }                else if (data_columns == "T9") { controlvalue = data.T9; }                else if (data_columns == "T10") { controlvalue = data.T10; }                else if (data_columns == "T11") { controlvalue = data.T11; }                else { controlvalue = data.T12; }                controlvalue = parseFloat(controlvalue);                var dataSource = new DevExpress.data.DataSource({                    store: {                        type: "odata",                        url: endpointSelector + "/BemsFormulaParameter"                    },                    requireTotalCount: true,                    pageSize: 1                });                dataSource.filter([                        ["SiteId", "=", BWA.UserInfo.SiteId()],                        "and",                        ["FacilityCode", "=", FacilityCode],                        "and",                        ["FormulaId", "=", TEMP_SET]                ]);                dataSource.load()                .done(function (result) {                    if (result.length == 0) {                        utils.toast.show("[BemsFormulaParameter] 공조기 온도 설정 데이터가 없습니다.");                    } else {                        PropertyId = result[0].ParameterPropertyId;                        var store = new DevExpress.data.ODataStore({                            url: endpointSelector + "/BemsControlPointHistory",                            key: ["CreateDateTime", "PropertyId", "FacilityCode", "SiteId"],                            keyType: { CreateDateTime: "DateTime", PropertyId: "Int32", FacilityCode: "Int32", SiteId: "Int32" }                        });                        store.insert({                            SiteId: SiteId,                            FacilityTypeId: AIR_HANDLING,                            FacilityCode: FacilityCode,                            PropertyId: PropertyId,                            CreateDateTime: now,                            ControlValue: controlvalue,                            WriteServiceName: null,                            ActionDateTime: null                        })                    }                })                .fail(function (error) {                    utils.toast.show(error);                });            }        },            rowAlternationEnabled: true,            editing: {                editMode: 'cell', // 14.1은  batch, row 두가지 밖에 없다. cell->row로 동작중이다. 2015 07 15 hcLee                editEnabled: true,            },            dataSourceOptions: {                select: ['SiteId', 'FacilityCode',  'CmFacility/Name', 'T1', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7', 'T8', 'T9', 'T10', 'T11', 'T12'],                expand: ['CmFacility'],                extendOptions: {                    forceOriginalField: true,                }            },            columns: [            { dataField: 'FacilityCode', caption: $G('number'), width: '4%', alignment: 'center' },                { dataField: 'CmFacility/Name', caption: '공조기명', width: '10%', alignment: 'center', allowEditing: false },                { dataField: 'T1', caption: '1월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T2', caption: '2월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T3', caption: '3월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T4', caption: '4월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T5', caption: '5월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T6', caption: '6월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T7', caption: '7월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T8', caption: '8월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T9', caption: '9월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T10', caption: '10월 설정온도', width: '8%', alignment: 'center' },                { dataField: 'T11', caption: '11월 설정온도', width: '8%', alignment: 'center' },            { dataField: 'T12', caption: '12월 설정온도', width: '8%', alignment: 'center' }            ],            popupWidth: 480,            searchViewItems: [                { id: 'CmFacility/BuildingId', ignoreValue: 0, defaultValue: 0, value: searchBuildingId, dataSource: searchBuildings, handleChangedValue: handleBuildingInSearchView },                { id: 'CmFacility/FloorId', ignoreValue: 0, defaultValue: 0, withCheckId: 'CmFacility/BuildingId', value: searchFloorId, dataSource: searchFloors },                { id: 'CmFacility/Name' }            ],            promiseDataInSearchView: searchDeferred.promise(),                    handleViewShowing: function () {                facilityClassDataSource.filter([                        ['SiteId', '=', BWA.UserInfo.SiteId()],                        'and',                        ['ParentFacilityClassId', '=', null]                ]);                facilityTypeDataSource.filter([                    ['FacilityTypeId', '=', 1]                ]);                // 빌딩 데이터 로드 시점                 $.when(facilityClassDataSource.load(),                    buildingDataSource.load(),                    facilityTypeDataSource.load()                ).done(function (result1, result2, result3) {                    buildings(result2[0]);                    searchBuildings(defaultSearchBuildingArray.slice(0).concat(result2[0]));                    searchFloors(defaultSearchFloorArray.slice(0));                    searchDeferred.resolve();                                    });            },                        handleViewShown: function (dataViewModel, isEditModeInPopup) {                setupDropZone(isEditModeInPopup, dataViewModel);            },            handleViewHidden: function () {                $SearchView.visibleObservable(false); // hcLee 2015 03 23                visiblePopup(false);            },            handlePopupShowing: function (that) {            },    });    floorDataSource.filter('BuildingId', -1);    zoneDataSource.filter('FloorId', -1);    viewModel.handleSelectBoxChangeFirstClass = function (e) {        BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[1]);        viewModel.dataModel.SecondClassId(null);        viewModel.dataModel.ThirdClassId(null);    };    viewModel.handleSelectBoxChangeSecondClass = function (e) {        BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[2]);        viewModel.dataModel.ThirdClassId(null);    };    viewModel.handleSelectBoxChangeBuilding = function (e) {        BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, floors);        viewModel.dataModel.FloorId(null);        viewModel.dataModel.ZoneId(null);    };    viewModel.handleSelectBoxChangeFloor = function (e) {        BWA.DataUtil.setArrayDataSourceFilter(zoneDataSource, 'FloorId', e.value, zones);        viewModel.dataModel.ZoneId(null);    };    function refreshList() {    }    viewModel.facilityTypes = facilityTypes;    viewModel.dataModel.ClassName = ko.observable();    viewModel.facilityClasses = facilityClasses;    viewModel.searchFacilityClasses = searchFacilityClasses;    viewModel.buildings = buildings;    viewModel.floors = floors;    viewModel.zones = zones;    return viewModel;};
 |