f74c84b808a268068b255da915613c0c5dd0d0d7.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316
  1. BemsWebApplication.ControlValueSet = function (params, viewInfo) {
  2. "use strict";
  3. /*
  4. var facilityViewModel = new BWA.CmFacilityViewModel();
  5. var cmFacilityDataSource = BemsWebApplication.db.createDataSource('CmFacility', true);
  6. var m_Facility;
  7. var facilityDataSource = BWA.db.createDataSource('CmFacility'),
  8. facilitiesForSearch = ko.observableArray(),
  9. facilityCodeForSearch = ko.observable(0); */
  10. var deferredForSearch = new $.Deferred();
  11. var eq = BWA.DataUtil.constructEqualFilter,
  12. and = BWA.DataUtil.andFilter;
  13. var visiblePopup = ko.observable(false);
  14. var CurrentValueGet = new BWA.Chart.PointHistory_CurrentValueGet(BWA.UserInfo.SiteId());
  15. //var FacilityName = ko.observable();
  16. //var paraValues = ko.observableArray([]);
  17. //var paraValues = ko.observable();
  18. //var paraValues = [];
  19. var fName = ko.observable();
  20. var Name = ko.observable();
  21. var Energy = ko.observable();
  22. var Type = ko.observable();
  23. var getValue = ko.observable(0); // 현재값
  24. var setValue = ko.observable(0);
  25. var selData;
  26. //BWA.UserInfo.SiteId()
  27. //var dataGrid = $('#gridContainer').dxDataGrid('instance');
  28. /*
  29. //var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true),
  30. // floorDataSource = BemsWebApplication.db.createDataSource('CmFloor'),
  31. //zoneDataSource = BemsWebApplication.db.createDataSource('CmZone');
  32. var facilityClassDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass');
  33. // 설비분류 데이터소스
  34. var facilityTypeDataSource = BemsWebApplication.db.createDataSource('BemsFacilityType');
  35. //var testDataSource = BemsWebApplication.db.createDataSource('BemsMonitoringPoint');
  36. var facilityTypes = ko.observableArray();
  37. var facilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()];
  38. var buildings = ko.observableArray(),
  39. floors = ko.observableArray(),
  40. zones = ko.observableArray();
  41. var searchFacilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()],
  42. searchFacilityClassValues = [ko.observable(), ko.observable(), ko.observable()],
  43. searchBuildings = ko.observableArray(),
  44. searchFloors = ko.observableArray(),
  45. searchBuildingId = ko.observable(),
  46. searchFloorId = ko.observable();*/
  47. // var defaultSearchClassArray = $SearchView.createDefaultArray('FacilityClassId'),
  48. // defaultSearchBuildingArray = $SearchView.createDefaultArray('BuildingId'),
  49. // defaultSearchFloorArray = $SearchView.createDefaultArray('FloorId');
  50. var searchDeferred = new $.Deferred();
  51. /*
  52. selectedFacilityDataInSearchParentPopup.subscribe(function (value) {
  53. viewModel.dataModel.ParentFacilityCode(value.FacilityCode);
  54. viewModel.dataModel.ParentFacilityName(value.Name);
  55. });
  56. selectedUserData.subscribe(function (value) {
  57. if (isMainContactor) {
  58. viewModel.dataModel.MainContactorUserId(value.UserId);
  59. viewModel.dataModel.MainContactorUserName(value.Name);
  60. }
  61. else {
  62. viewModel.dataModel.SubContactorUserId(value.UserId);
  63. viewModel.dataModel.SubContactorUserName(value.Name);
  64. }
  65. });*/
  66. /*
  67. var handleFirstClassChangedValueInSearchView = function (e) {
  68. if (e.value === 0) {
  69. initializeSearchClasses();
  70. return;
  71. }
  72. BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[1], defaultSearchClassArray);
  73. };
  74. var handleSecondClassChangedValueInSearchView = function (e) {
  75. if (e.value === 0) {
  76. initializeSearchClasses(true);
  77. return;
  78. }
  79. BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[2], defaultSearchClassArray);
  80. };*/
  81. /*
  82. var handleBuildingInSearchView = function (e) {
  83. if (e.value === 0) {
  84. searchFloors(defaultSearchFloorArray.slice(0));
  85. searchFloorId(0);
  86. return 0;
  87. }
  88. BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, searchFloors, defaultSearchFloorArray);
  89. }*/
  90. /*
  91. function initializeSearchClasses(onlyThird) {
  92. if (onlyThird === undefined || onlyThird === false) {
  93. searchFacilityClasses[1](defaultSearchClassArray.slice(0));
  94. searchFacilityClassValues[1](0);
  95. }
  96. searchFacilityClasses[2](defaultSearchClassArray.slice(0));
  97. searchFacilityClassValues[2](0);
  98. }
  99. var facilityOptions = BemsWebApplication.Factory.Facility;
  100. */
  101. var searchViewOptions = {
  102. searchViewItems: [
  103. //{ id: 'FuelTypeId', ignoreValue: 0, defaultValue: $Code.FuelType.ELECTRICITY, value: fuelTypeIdForSearch, dataSource: fuelTypesForSearch }
  104. { id: 'CmFacility/Name' },
  105. { id: 'Name' },
  106. ],
  107. promiseDataInSearchView: searchDeferred.promise()
  108. };
  109. var works = ko.observableArray();
  110. //db.createDataSource
  111. var workDataSource = BWA.DataUtil.createDataSource({
  112. //var workDataSource = BemsWebApplication.db.createDataSource({
  113. dataSourceOptions: {
  114. select: ['SiteId', 'FacilityCode', 'CmFacility/Name', 'Name', 'BemsFuelType/Name', 'BemsServiceType/Name', 'FacilityTypeId', 'PropertyId'],
  115. expand: ['CmFacility', 'BemsFuelType', 'BemsServiceType'],
  116. extendOptions: {
  117. forceOriginalField: true,
  118. },
  119. filter: [
  120. ['FacilityCode', "<>", 0],
  121. ]
  122. },
  123. }, 'BemsMonitoringPoint');
  124. function handleSearchInSearchView(filter, searchViewItems) {
  125. var filterA = [];
  126. filterA.push(['FacilityCode', "<>", 0]);
  127. //filterA.push(['ValueType', ">", 0]); // 2016 01 18
  128. filterA.push([['ValueType', "=", 1], 'or', ['ValueType', "=", 3]]); // // 2016 01 18 AO,DO만 처리
  129. _.each(filter, function (x) {
  130. filterA.push(x);
  131. });
  132. workDataSource.filter(filterA);
  133. //workDataSource._storeLoadOptions.filter.push(filter);
  134. //workDataSource._paginate = false;
  135. workDataSource.load().done(function (workResult) {
  136. //viewModel.dataSource.load().done(function (workResult) {
  137. var param = {
  138. SiteId: BWA.UserInfo.SiteId(),
  139. };
  140. var promises = [];
  141. promises.push(CurrentValueGet.apiGet(_.extend(param, { ValueType: 0 }))); // ValueType이 정해져야 한다 현재는 모두 0
  142. $.when.apply(this, promises).done(function (c) {
  143. var i = 0;
  144. _.each(workResult, function (x) {
  145. x[6] = 'CV';
  146. x.CV = (c[i][0].Value == -9999) ? '' : c[i][0].Value;
  147. x[7] = 'SV';
  148. x.SV = (c[i][1].Value == -9999) ? '' : c[i][1].Value;
  149. i++;
  150. //works.push(x);
  151. //alert(x.Name());
  152. });
  153. works(workResult);
  154. }).fail(function (error) {
  155. //alert(error);
  156. //visiblePopup(false); visibleHourPopup이 필요
  157. });
  158. //datas = workResult;
  159. //viewModel.dataSource = works;
  160. });
  161. //viewModel.dataSource = null;
  162. //viewModel.refreshList();
  163. }
  164. function handleViewShown () {
  165. //setupDropZone(isEditModeInPopup, dataViewModel);
  166. handleSearchInSearchView();
  167. }
  168. function handleSearchViewInitializeUpdate() {
  169. }
  170. function refreshList() {
  171. //dataSource.pageIndex(0);
  172. //dataSource.load();
  173. }
  174. function handleViewShowing() {
  175. //dataSource.pageIndex(0);
  176. //dataSource.load();
  177. }
  178. function handleViewHidden() {
  179. $SearchView.visibleObservable(false); // hcLee 2015 03 23
  180. //visiblePopup(false);
  181. }
  182. //var tempDate = new Date();
  183. var paramDate = new Date(2015,8,17, 15,0, 0);
  184. //var viewModel = $.extend(BWA.CommonView.create(
  185. //var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'BemsMonitoringPoint', {
  186. //var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, null, {
  187. var viewModel = $.extend(BWA.CommonView.create(params, viewInfo, searchViewOptions, ko.observable(null), handleViewShown, null,
  188. handleSearchInSearchView, handleSearchViewInitializeUpdate), {
  189. refreshList: refreshList,
  190. viewShowing: handleViewShowing,
  191. viewHidden: handleViewHidden, // hcLee 2015 03 23
  192. //viewDisposing: handleViewHidden, // hcLee 2015 03 23
  193. //locationEnableForSearch: locationEnableForSearch,
  194. workDataGridOptions: utils.datagrid.defaultOptions({
  195. //handleDataGridRowClick: function (id, dataGrid, clickRow) { // function () {
  196. rowClick: function (row) {
  197. //alert(row.data.PropertyId());
  198. selData = row.data;
  199. //viewModel.popupOptions.paraValues[1] = row.values[1];
  200. //viewModel.popupOptions.paraValues[2] = row.values[2];
  201. //viewModel.popupOptions.paraValues[3] = row.values[3];
  202. //viewModel.popupOptions.paraValues[4] = row.values[4];
  203. //viewModel.popupOptions.paraValues(row.values);
  204. fName(row.values[1]);
  205. Name(row.values[2]);
  206. Energy(row.values[3]);
  207. Type(row.values[4]);
  208. getValue(row.values[5]);
  209. setValue(row.values[6]);
  210. //alert(paraValues[2]);
  211. //var dataModel = viewModel.dataModel;
  212. visiblePopup(true);
  213. },
  214. rowAlternationEnabled: true,
  215. /*
  216. editing: {
  217. editMode: 'cell', // 14.1은 batch, row 두가지 밖에 없다. cell->row로 동작중이다. 2015 07 15 hcLee
  218. editEnabled: true,
  219. },*/
  220. dataSource: works,
  221. columns: [
  222. { dataField: 'FacilityCode', caption: $G('number'), width: '4%', alignment: 'center' }, // ?
  223. { dataField: 'CmFacility/Name', caption: '설비명칭', width: '25%', alignment: 'center', allowEditing: false },
  224. { dataField: 'Name', caption: '관제점명', width: '25%', alignment: 'center', allowEditing: false },
  225. { dataField: 'BemsFuelType/Name', caption: '에너지원', width: '10%', alignment: 'center', allowEditing: false, },
  226. { dataField: 'BemsServiceType/Name', caption: '용도', width: '10%', alignment: 'center', allowEditing: false },
  227. { dataField: 'CV', caption: '현재값', width: '8%', alignment: 'center', },
  228. { dataField: 'SV', caption: '설정값', width: '8%', alignment: 'center', },
  229. ],
  230. }),
  231. //promiseDataInSearchView: searchDeferred.promise(),
  232. setValue: function () {
  233. //alert(setValue());
  234. selData.SV = setValue();
  235. visiblePopup(false);
  236. var param;
  237. var promises = [];
  238. param = {
  239. SiteId: BWA.UserInfo.SiteId(),
  240. FacilityTypeId: selData.FacilityTypeId(),
  241. FacilityCode: selData.FacilityCode(),
  242. PropertyId: selData.PropertyId(),
  243. ControlValue: setValue(),
  244. };
  245. promises.push(BWA.api.post('BemsMonitoringPointHistory/ControlPoint', null, param));
  246. $.when.apply(this, promises).done(function () {
  247. utils.toast.show(Name() + ' 설정 완료');
  248. $('#gridContainer').dxDataGrid('instance').refresh();
  249. })
  250. },
  251. closePopUp: function () {
  252. //var f = m_Facility.toJS();
  253. visiblePopup(false);
  254. },
  255. });
  256. viewModel.popupOptions = {
  257. width: 420,
  258. height: 'auto',
  259. visible: visiblePopup,
  260. dragEnabled: false,
  261. shading: false,
  262. fName : fName,
  263. Name : Name,
  264. Energy : Energy,
  265. Type : Type,
  266. getValue: getValue,
  267. setValue: setValue,
  268. //paraValues : paraValues,
  269. closeOnOutsideClick: false
  270. };
  271. return viewModel;
  272. };