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;
- };
|