048d47289b30d78e44a657645b582db5fe07425a.svn-base 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. BemsWebApplication.LegalCheckGroupManagement = function(params, viewInfo) {
  2. "use strict";
  3. var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true);
  4. var corporationDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeCorporation', true, true);
  5. var businessFields = ko.observableArray();
  6. var corporations = ko.observableArray();
  7. var searchBusinessFields = ko.observableArray();
  8. var selectedSeniorData = ko.observable();
  9. var deferredForSearch = new $.Deferred();
  10. var factory = BemsWebApplication.Factory.LegalCheckGroup;
  11. var selectedCheckGroupId;
  12. function formatSenior(seniorItemName, seniorItemPeopleCount, seniorUserName) {
  13. return '{0} / {1}({2})'.formati(seniorItemName, seniorUserName, seniorItemPeopleCount);
  14. }
  15. var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsFacilityScheduleCheckGroup', {
  16. dataSourceOptions: factory.getDataSourceOptions(),
  17. columns: factory.defaultColumns,
  18. cellPrepared: factory.cellPrepared,
  19. promiseDataInSearchView: deferredForSearch.promise(),
  20. searchViewItems: [
  21. { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: searchBusinessFields },
  22. { id: 'Name' }
  23. ],
  24. handleViewShowing: function(dataViewModel) {
  25. businessFieldDataSource.load().done(function(result) {
  26. businessFields(result);
  27. searchBusinessFields($SearchView.createDefaultArray('BusinessFieldId').slice(0).concat(businessFields()));
  28. deferredForSearch.resolve();
  29. });
  30. dataViewModel.Senior = $KoSet(dataViewModel.Senior);
  31. },
  32. handlePopupShowing: function() {
  33. corporationDataSource.load().done(function(result) {
  34. corporations(result);
  35. });
  36. //targetFacilityDataSource.load().done( function( result ) {
  37. // var targetFacilityDataGrid = $( '#gridTargetFacilityContainer' ).dxDataGrid( 'instance' );
  38. // targetFacilityDataGrid.refresh();
  39. //});
  40. },
  41. handlePopupShown: function() {
  42. var targetFacilityDataGrid = $('#gridTargetFacilityContainer').dxDataGrid('instance');
  43. targetFacilityDataGrid.filter([
  44. ['SiteId', '=', BWA.UserInfo.SiteId()],
  45. 'and',
  46. ['CheckGroupId', '=', selectedCheckGroupId]
  47. ]);
  48. // targetFacilityDataGrid.refresh();
  49. },
  50. handleDataGridRowClick: function(id, dataGrid, clickRow, popupVisible) {
  51. dataGrid.clearSelection();
  52. var data = clickRow.data;
  53. var dm = viewModel.dataModel;
  54. dm.BusinessFieldName = $KoSet(dm.BusinessFieldName, data.BusinessFieldName);
  55. dm.CorporationName = $KoSet(dm.CorporationName, data.CorporationName);
  56. dm.Senior = $KoSet(dm.Senior, formatSenior(data.SeniorItemName(),
  57. data.SeniorItemPeopleCount(),
  58. data.SeniorUserName())
  59. );
  60. //var targetFacilityDataGrid = $( '#gridTargetFacilityContainer' ).dxDataGrid( 'instance' );
  61. //targetFacilityDataGrid.filter( [
  62. // [ 'SiteId', '=', BWA.UserInfo.SiteId() ],
  63. // 'and',
  64. // [ 'CheckGroupId', '=', data.CheckGroupId() ]
  65. //] );
  66. selectedCheckGroupId = data.CheckGroupId();
  67. popupVisible(true);
  68. },
  69. handleSaveButtonInPopup: function(isInsert) {
  70. return BemsWebApplication.api.postWithDataGrid('FmsFacilityScheduleCheckGroupToFacility', 'gridFacilityContainer', {
  71. SiteId: BWA.UserInfo.SiteId(),
  72. CheckGroupId: selectedCheckGroupId,
  73. FacilityCode: null
  74. });
  75. },
  76. handleInitializeDataModelValue: function(v) {
  77. v.WorkTypeId($Code.WorkCodeType.LegalCheckGroup);
  78. }
  79. });
  80. var facilityFactory = BemsWebApplication.Factory.Facility;
  81. var targetFacilityDataSource = BWA.DataUtil.createDataSource({
  82. dataSourceOptions: {
  83. store: BemsWebApplication.odata.CheckGroupTargetFacility,
  84. select: facilityFactory.selectItemsInDataSource
  85. }
  86. });
  87. var facilityDataSource = BWA.DataUtil.createDataSource({
  88. dataSourceOptions: facilityFactory.getDataSourceForRefDataGrid()
  89. }, 'CmFacility');
  90. var cellPrepared = facilityFactory.cellPrepared;
  91. var dataGridOptions = {
  92. dxDataSource: targetFacilityDataSource,
  93. columns: facilityFactory.getColumns([
  94. /*
  95. { dataField: 'ClassName', width: '35%' },
  96. { dataField: 'Name', width: '30%' },
  97. { dataField: 'Location', width: '30%' } */
  98. /*
  99. { dataField: 'FirstClassName', caption: '대분류', width: '7%', alignment: 'center', allowFiltering: false },
  100. { dataField: 'SecondClassName', caption: '중분류', width: '10%', alignment: 'center', allowFiltering: false },
  101. { dataField: 'ThirdClassName', caption: '소분류', width: '10%', alignment: 'center', allowFiltering: false },
  102. { dataField: 'Name', width: '30%' },
  103. { dataField: 'FloorName', caption: $G('facilityLocation'), width: '20%', alignment: 'center' } */
  104. ]),
  105. height: 400,
  106. };
  107. viewModel.isNewInPopup.subscribe(function(value) {
  108. if (value) {
  109. var facilityDataGrid = $('#gridFacilityContainer').dxDataGrid('instance');
  110. if (_.isUndefined(facilityDataGrid) === false) facilityDataGrid.clearSelection();
  111. }
  112. });
  113. viewModel.isEditModeInPopup.subscribe(function(value) {
  114. var facilityDataGrid = $('#gridFacilityContainer').dxDataGrid('instance');
  115. var targetFacilityDataGrid = $('#gridTargetFacilityContainer').dxDataGrid('instance');
  116. if (facilityDataGrid !== undefined && value) {
  117. facilityDataGrid.clearSelection();
  118. var items = targetFacilityDataGrid._controllers.data._dataSource._items;
  119. var keys = [];
  120. $.each(items, function(i, item) {
  121. keys.push({
  122. FacilityCode: item.FacilityCode(),
  123. SiteId: item.SiteId()
  124. });
  125. });
  126. facilityDataGrid.selectRows(keys);
  127. }
  128. else {
  129. }
  130. });
  131. viewModel.tabsItems = [
  132. { text: '기본 정보' },
  133. { text: '대상 시설' }
  134. ];
  135. viewModel.currentTabIndex = ko.observable(0);
  136. var dataModel = viewModel.dataModel;
  137. viewModel.multiViewItems = [
  138. {
  139. dataModel: dataModel,
  140. viewModel: viewModel,
  141. template: 'generalInfo'
  142. },
  143. {
  144. dataModel: dataModel,
  145. viewModel: viewModel,
  146. facilityDataGridOptions: utils.datagrid.defaultOptions($.extend({}, dataGridOptions, {
  147. visible: viewModel.isEditModeInPopup,
  148. dxDataSource: facilityDataSource,
  149. selection: { mode: 'multiple', allowSelectAll: true },
  150. cellPrepared: cellPrepared
  151. })),
  152. targetFacilityDataGridOptions: utils.datagrid.defaultOptions($.extend({}, dataGridOptions, {
  153. visible: viewModel.isViewModeInPopup,
  154. dxDataSource: targetFacilityDataSource,
  155. cellPrepared: cellPrepared,
  156. contentReadyAction: function(e) {
  157. //console.log(e.model);
  158. }
  159. })),
  160. template: 'targetFacility'
  161. }
  162. ];
  163. selectedSeniorData.subscribe(function(value) {
  164. if (_.isEmpty(value)) return;
  165. viewModel.dataModel.SeniorId(value.SeniorId);
  166. viewModel.dataModel.Senior(formatSenior(value.SeniorItemName, value.SeniorItemPeopleCount, value.SeniorItemUserName));
  167. });
  168. viewModel.businessFields = businessFields;
  169. viewModel.corporations = corporations;
  170. viewModel.seniorSearchPopup = $SeniorSearchPopup(viewModel, selectedSeniorData);
  171. viewModel.handleButtonSearchSenior = function() {
  172. viewModel.seniorSearchPopup.show();
  173. };
  174. return viewModel;
  175. };