BemsWebApplication.ControlValueSet = function (params, viewInfo) { "use strict"; /* var facilityViewModel = new BWA.CmFacilityViewModel(); var cmFacilityDataSource = BemsWebApplication.db.createDataSource('CmFacility', true); var m_Facility; var facilityDataSource = BWA.db.createDataSource('CmFacility'), facilitiesForSearch = ko.observableArray(), facilityCodeForSearch = ko.observable(0); */ var deferredForSearch = new $.Deferred(); var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter; var visiblePopup = ko.observable(false); var CurrentValueGet = new BWA.Chart.PointHistory_CurrentValueGet(BWA.UserInfo.SiteId()); //var FacilityName = ko.observable(); //var paraValues = ko.observableArray([]); //var paraValues = ko.observable(); //var paraValues = []; var fName = ko.observable(); var Name = ko.observable(); var Energy = ko.observable(); var Type = ko.observable(); var getValue = ko.observable(0); // 현재값 var setValue = ko.observable(0); var selData; //BWA.UserInfo.SiteId() //var dataGrid = $('#gridContainer').dxDataGrid('instance'); /* //var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true), // floorDataSource = BemsWebApplication.db.createDataSource('CmFloor'), //zoneDataSource = BemsWebApplication.db.createDataSource('CmZone'); var facilityClassDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass'); // 설비분류 데이터소스 var facilityTypeDataSource = BemsWebApplication.db.createDataSource('BemsFacilityType'); //var testDataSource = BemsWebApplication.db.createDataSource('BemsMonitoringPoint'); 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(); /* selectedFacilityDataInSearchParentPopup.subscribe(function (value) { viewModel.dataModel.ParentFacilityCode(value.FacilityCode); viewModel.dataModel.ParentFacilityName(value.Name); }); selectedUserData.subscribe(function (value) { if (isMainContactor) { viewModel.dataModel.MainContactorUserId(value.UserId); viewModel.dataModel.MainContactorUserName(value.Name); } else { viewModel.dataModel.SubContactorUserId(value.UserId); viewModel.dataModel.SubContactorUserName(value.Name); } });*/ /* 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); } var facilityOptions = BemsWebApplication.Factory.Facility; */ var searchViewOptions = { searchViewItems: [ //{ id: 'FuelTypeId', ignoreValue: 0, defaultValue: $Code.FuelType.ELECTRICITY, value: fuelTypeIdForSearch, dataSource: fuelTypesForSearch } { id: 'CmFacility/Name' }, { id: 'Name' }, ], promiseDataInSearchView: searchDeferred.promise() }; var works = ko.observableArray(); //db.createDataSource var workDataSource = BWA.DataUtil.createDataSource({ //var workDataSource = BemsWebApplication.db.createDataSource({ dataSourceOptions: { select: ['SiteId', 'FacilityCode', 'CmFacility/Name', 'Name', 'BemsFuelType/Name', 'BemsServiceType/Name', 'FacilityTypeId', 'PropertyId'], expand: ['CmFacility', 'BemsFuelType', 'BemsServiceType'], extendOptions: { forceOriginalField: true, }, filter: [ ['FacilityCode', "<>", 0], ] }, }, 'BemsMonitoringPoint'); function handleSearchInSearchView(filter, searchViewItems) { var filterA = []; filterA.push(['FacilityCode', "<>", 0]); //filterA.push(['ValueType', ">", 0]); // 2016 01 18 filterA.push([['ValueType', "=", 1], 'or', ['ValueType', "=", 3]]); // // 2016 01 18 AO,DO만 처리 _.each(filter, function (x) { filterA.push(x); }); workDataSource.filter(filterA); //workDataSource._storeLoadOptions.filter.push(filter); //workDataSource._paginate = false; workDataSource.load().done(function (workResult) { //viewModel.dataSource.load().done(function (workResult) { var param = { SiteId: BWA.UserInfo.SiteId(), }; var promises = []; promises.push(CurrentValueGet.apiGet(_.extend(param, { ValueType: 0 }))); // ValueType이 정해져야 한다 현재는 모두 0 $.when.apply(this, promises).done(function (c) { var i = 0; _.each(workResult, function (x) { x[6] = 'CV'; x.CV = (c[i][0].Value == -9999) ? '' : c[i][0].Value; x[7] = 'SV'; x.SV = (c[i][1].Value == -9999) ? '' : c[i][1].Value; i++; //works.push(x); //alert(x.Name()); }); works(workResult); }).fail(function (error) { //alert(error); //visiblePopup(false); visibleHourPopup이 필요 }); //datas = workResult; //viewModel.dataSource = works; }); //viewModel.dataSource = null; //viewModel.refreshList(); } function handleViewShown () { //setupDropZone(isEditModeInPopup, dataViewModel); handleSearchInSearchView(); } function handleSearchViewInitializeUpdate() { } function refreshList() { //dataSource.pageIndex(0); //dataSource.load(); } function handleViewShowing() { //dataSource.pageIndex(0); //dataSource.load(); } function handleViewHidden() { $SearchView.visibleObservable(false); // hcLee 2015 03 23 //visiblePopup(false); } //var tempDate = new Date(); var paramDate = new Date(2015,8,17, 15,0, 0); //var viewModel = $.extend(BWA.CommonView.create( //var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'BemsMonitoringPoint', { //var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, null, { var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null, handleSearchInSearchView, handleSearchViewInitializeUpdate), { refreshList: refreshList, viewShowing: handleViewShowing, viewHidden: handleViewHidden, // hcLee 2015 03 23 //viewDisposing: handleViewHidden, // hcLee 2015 03 23 //locationEnableForSearch: locationEnableForSearch, workDataGridOptions: utils.datagrid.defaultOptions({ //handleDataGridRowClick: function (id, dataGrid, clickRow) { // function () { rowClick: function (row) { //alert(row.data.PropertyId()); selData = row.data; //viewModel.popupOptions.paraValues[1] = row.values[1]; //viewModel.popupOptions.paraValues[2] = row.values[2]; //viewModel.popupOptions.paraValues[3] = row.values[3]; //viewModel.popupOptions.paraValues[4] = row.values[4]; //viewModel.popupOptions.paraValues(row.values); fName(row.values[1]); Name(row.values[2]); Energy(row.values[3]); Type(row.values[4]); getValue(row.values[5]); setValue(row.values[6]); //alert(paraValues[2]); //var dataModel = viewModel.dataModel; visiblePopup(true); }, rowAlternationEnabled: true, /* editing: { editMode: 'cell', // 14.1은 batch, row 두가지 밖에 없다. cell->row로 동작중이다. 2015 07 15 hcLee editEnabled: true, },*/ dataSource: works, columns: [ { dataField: 'FacilityCode', caption: $G('number'), width: '4%', alignment: 'center' }, // ? { dataField: 'CmFacility/Name', caption: '설비명칭', width: '25%', alignment: 'center', allowEditing: false }, { dataField: 'Name', caption: '관제점명', width: '25%', alignment: 'center', allowEditing: false }, { dataField: 'BemsFuelType/Name', caption: '에너지원', width: '10%', alignment: 'center', allowEditing: false, }, { dataField: 'BemsServiceType/Name', caption: '용도', width: '10%', alignment: 'center', allowEditing: false }, { dataField: 'CV', caption: '현재값', width: '8%', alignment: 'center', }, { dataField: 'SV', caption: '설정값', width: '8%', alignment: 'center', }, ], }), //promiseDataInSearchView: searchDeferred.promise(), setValue: function () { //alert(setValue()); selData.SV = setValue(); visiblePopup(false); var param; var promises = []; param = { SiteId: BWA.UserInfo.SiteId(), FacilityTypeId: selData.FacilityTypeId(), FacilityCode: selData.FacilityCode(), PropertyId: selData.PropertyId(), ControlValue: setValue(), }; promises.push(BWA.api.post('BemsMonitoringPointHistory/ControlPoint', null, param)); $.when.apply(this, promises).done(function () { utils.toast.show(Name() + ' 설정 완료'); $('#gridContainer').dxDataGrid('instance').refresh(); }) }, closePopUp: function () { //var f = m_Facility.toJS(); visiblePopup(false); }, }); viewModel.popupOptions = { width: 420, height: 'auto', visible: visiblePopup, dragEnabled: false, shading: false, fName : fName, Name : Name, Energy : Energy, Type : Type, getValue: getValue, setValue: setValue, //paraValues : paraValues, closeOnOutsideClick: false }; return viewModel; };