a9259ecdb5cb9eefb4e80b0f2fcbc7c0c01698cb.svn-base 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. BemsWebApplication.PatrolSchedule = function( params, viewInfo) {
  2. "use strict";
  3. var patrolgroupDataSource = BemsWebApplication.db.createDataSource( 'CmPatrolGroup', true ),
  4. patrolcourseDataSource = BemsWebApplication.db.createDataSource('CmPatrolCourse', true),
  5. patrolplanDataSource = BemsWebApplication.db.createDataSource('CmPatrolPlan', true);
  6. var patrolgroups = ko.observableArray(),
  7. patrolcourses = ko.observableArray(),
  8. patrolplans = ko.observableArray();
  9. var patrolgroupsForSearch = ko.observableArray(),
  10. patrolcoursesForSearch = ko.observableArray(),
  11. patrolplansForSearch = ko.observableArray(),
  12. patrolgroupIdForSerach = ko.observable(),
  13. patrolcourseIdForSerach = ko.observable(),
  14. patrolplanIdForSerach = ko.observable(),
  15. defaultSearchPatrolGroupArray = $SearchView.createDefaultArray('PatrolGroupId'),
  16. defaultSearchPatrolCourseArray = $SearchView.createDefaultArray('PatrolCourseId'),
  17. defaultSearchPatrolPlanArray = $SearchView.createDefaultArray('PatrolPlanId');
  18. var deferredForSearch = new $.Deferred();
  19. /*
  20. function handleBuildingInSearchView(e) {
  21. if( e.value === 0 ) {
  22. floorsForSearch( getDefaultFloorForSearch() );
  23. }
  24. else {
  25. BWA.DataUtil.setArrayDataSourceFilter( floorDataSource, 'BuildingId', e.value, floorsForSearch, getDefaultFloorForSearch() );
  26. }
  27. floorIdForSerach( 0 );
  28. }*/
  29. var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'CmPatrolSchedule', {
  30. rowAlternationEnabled: true,
  31. /*
  32. editing: {
  33. editMode: 'batch',
  34. editEnabled: true,
  35. //removeEnabled: true,
  36. //insertEnabled: true
  37. },*/
  38. dataSourceOptions: {
  39. select: ['SiteId', 'PlanId', 'ScheduleId', 'Name', 'ScheduleDesc', 'inDate', 'patrolDateTime', 'CmPatrolPlan/Name', 'CmPatrolPlan/CmPatrolGroup/Name', 'CmPatrolPlan/CmPatrolCourse/Name'],
  40. //select: ['SiteId', 'PlanId', 'ScheduleId', 'Name', 'ScheduleDesc', 'inDate', 'patrolDateTime', 'CmPatrolPlan/Name', 'CmPatrolPlan/CmPatrolGroup/Name', 'CmPatrolPlan/CmPatrolCourse/Name'],
  41. expand: ['CmPatrolPlan', 'CmPatrolPlan/CmPatrolGroup', 'CmPatrolPlan/CmPatrolCourse'],
  42. extendOptions: {
  43. forceOriginalField: true,
  44. }
  45. },
  46. columns: [
  47. { dataField: 'ScheduleId', caption: $G('number'), width: '10%', alignment: 'center', sortOrder: 'desc' },
  48. { dataField: 'Name', caption: '순찰일정명', width: '30%', alignment: 'center' },
  49. {
  50. dataField: 'patrolDateTime', caption: '순찰예정시각', width: '25%', alignment: 'center',
  51. customizeText: function (cellInfo) {
  52. return $G.dateTime(cellInfo.value);
  53. }
  54. },
  55. { dataField: 'CmPatrolPlan/Name', caption: '순찰계획명', width: '20%', alignment: 'center' },
  56. //{ dataField: 'CmPatrolPlan/CmPatrolGroup/Name', caption: '순찰조', width: '20%', alignment: 'center' },
  57. //{ dataField: 'CmPatrolPlan/CmPatrolCourse/Name', caption: '순찰코스', width: '20%', alignment: 'center' },
  58. { dataField: 'ScheduleDesc', caption: '비고', width: '30%', alignment: 'center' },
  59. /* {
  60. dataField: 'inDate', caption: '최종변경일', width: '10%', alignment: 'center',
  61. customizeText: function (cellInfo) {
  62. return $G.date(cellInfo.value);
  63. }
  64. },*/
  65. ],
  66. popupWidth: 580,
  67. promiseDataInSearchView: deferredForSearch.promise(),
  68. searchViewItems: [
  69. //{ id: 'PatrolGroupId', ignoreValue: 0, defaultValue: 0, value: patrolgroupIdForSerach, dataSource: patrolgroupsForSearch, handleChangedValue: handleBuildingInSearchView },
  70. { id: 'PlanId', ignoreValue: 0, defaultValue: 0, value: patrolplanIdForSerach, dataSource: patrolplansForSearch },
  71. //{ id: 'CourseId', ignoreValue: 0, defaultValue: 0, value: patrolcourseIdForSerach, dataSource: patrolcoursesForSearch },
  72. { id: 'Name' }
  73. ],
  74. handleViewShowing: function () {
  75. patrolplanDataSource.load().done(function (pgResults) {
  76. patrolplans(pgResults);
  77. patrolplansForSearch(defaultSearchPatrolPlanArray.slice(0).concat(pgResults));
  78. patrolplanIdForSerach(0);
  79. patrolgroupDataSource.load().done( function( pgResults ) {
  80. patrolgroups ( pgResults );
  81. patrolgroupsForSearch(defaultSearchPatrolGroupArray.slice(0).concat(pgResults));
  82. patrolgroupIdForSerach(0);
  83. patrolcourseDataSource.load().done(function (pgResults) {
  84. patrolcourses(pgResults);
  85. patrolcoursesForSearch(defaultSearchPatrolCourseArray.slice(0).concat(pgResults));
  86. patrolcourseIdForSerach(0);
  87. deferredForSearch.resolve();
  88. });
  89. });
  90. });
  91. },
  92. handleDataGridRowClick: function (id,dataGrid,clickRow,popupVisible) {
  93. dataGrid.clearSelection();
  94. viewModel.isNewInPopup(false); //
  95. var data = clickRow.data;
  96. var dataModel = viewModel.dataModel;
  97. dataModel.PatrolPlanName = $KoSet(dataModel.PatrolPlanName, data['CmPatrolPlan/Name']);
  98. //dataModel.PatrolGroupName = $KoSet(dataModel.PatrolGroupName, data['CmPatrolGroup/Name']);
  99. //dataModel.PatrolCourseName = $KoSet(dataModel.PatrolCourseName, data['CmPatrolCourse/Name']);
  100. popupVisible(true);
  101. },
  102. handleAfterLoadingModelByKey: function( data, dataViewModel, isNewInPopup ) {
  103. //if( isNewInPopup() == false ) {
  104. // BWA.DataUtil.setArrayDataSourceFilter(patrolgroupDataSource, 'GroupId', dataViewModel.GroupId(), patrolgroups);
  105. //BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', dataViewModel.BuildingId(), floors);
  106. //}
  107. },
  108. viewHidden: function()
  109. {
  110. $SearchView.visibleObservable(false);
  111. visiblePopup(false);
  112. },
  113. handlePopupShowing: function (isNewInPopup, dataViewModel, selectedData) {
  114. if (isNewInPopup()) {
  115. dataViewModel.patrolDateTime(new Date());
  116. }
  117. },
  118. handleBeforeDelete: function (db)
  119. {
  120. /* var dataViewModel = new BemsWebApplication['CmZoneTempHumiSetViewModel']();
  121. dataViewModel.SiteId = db.SiteId;
  122. dataViewModel.BuildingId = db.BuildingId;
  123. dataViewModel.FloorId = db.FloorId;
  124. dataViewModel.ZoneId = db.ZoneId;
  125. var promise = BemsWebApplication.api.post('BemsMonitoringPoint/RemoveZoneTempHumiSet', dataViewModel);
  126. promise.done(function () {
  127. ;
  128. });*/
  129. },
  130. beforeInsertingDataViewModel: function (dataModel, dbModelId) {
  131. dataModel.inDate(new Date());
  132. var dfd = $.Deferred();
  133. //alert(dataModel.Name());
  134. if (_.isEmpty(dataModel.Name()) || dataModel.patrolDateTime() == null || dataModel.PlanId() == null)
  135. dfd.resolve(false, '(*) 표시 항목은 필수 입력 사항 입니다!');
  136. return dfd.resolve(true);
  137. },
  138. beforeUpdateDataViewModel: function () {
  139. //handlePopupButtonSave: function () {
  140. if (_.isEmpty(viewModel.dataModel.Name())) {
  141. utils.toast.show('순찰일정명이 공백입니다.', 'error');
  142. return 0;
  143. }
  144. if (viewModel.dataModel.patrolDateTime() == null) {
  145. utils.toast.show('순찰시간이 공백입니다.', 'error');
  146. return 0;
  147. }
  148. if (viewModel.dataModel.PlanId() == null) {
  149. utils.toast.show('순찰계획이 공백입니다.', 'error');
  150. return 0;
  151. }
  152. // 수정시에 시간변경
  153. viewModel.dataModel.inDate(new Date());
  154. return 2;
  155. },
  156. handleAfterInsert: function (db) {
  157. /*
  158. var dataViewModel = new BemsWebApplication['CmZoneTempHumiSetViewModel']();
  159. dataViewModel.SiteId = db.SiteId;
  160. dataViewModel.BuildingId = db.BuildingId;
  161. dataViewModel.FloorId = db.FloorId;
  162. dataViewModel.ZoneId = db.ZoneId;
  163. var promise = BemsWebApplication.api.post('BemsMonitoringPoint/AddZoneTempHumiSet', dataViewModel);
  164. promise.done(function () {
  165. ;
  166. });*/
  167. },
  168. } );
  169. /*
  170. function getDefaultFloorForSearch() {
  171. return $SearchView.createDefaultArray( 'FloorId' );
  172. }
  173. floorDataSource.filter('BuildingId', -1); */
  174. // 콤보, text 등록먼저후 생기는 팝업에서 안보이는 문제해결
  175. viewModel.dataModel.PatrolPlanName = ko.observable();
  176. //viewModel.dataModel.PatrolGroupName = ko.observable();
  177. //viewModel.dataModel.PatrolCourseName = ko.observable();
  178. viewModel.patrolgroups = patrolgroups;
  179. viewModel.patrolcourses = patrolcourses;
  180. viewModel.patrolplans = patrolplans;
  181. /*
  182. viewModel.popupInsertButtonOptions.action = function () {
  183. alert('insett');
  184. }*/
  185. return viewModel;
  186. };