7b96867d89136653580e4e92c738bd287288e896.svn-base 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. BemsWebApplication.FacilityWorkHistory = function (params, viewInfo) {
  2. "use strict";
  3. var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true),
  4. workTypeDataSource = BemsWebApplication.db.createDataSource('FmsWorkCodeType'),
  5. progressDataSource = BemsWebApplication.db.createDataSource('FmsWorkCodeProgress'),
  6. businessFields = ko.observableArray(),
  7. workTypes = ko.observableArray(),
  8. progresses = ko.observableArray();
  9. var isVisibleExecutionButton = ko.observable(true);
  10. var popup, workExecutionRegisterPopup = null;
  11. var deferredForSearch = new $.Deferred();
  12. var workTypesForSearch = ko.observableArray(),
  13. businessFieldsForSearch = ko.observableArray(),
  14. progressesForSearch = ko.observableArray();
  15. var eq = BWA.DataUtil.constructEqualFilter,
  16. and = BWA.DataUtil.andFilter,
  17. noteq = BWA.DataUtil.constructNotEqualFilter;
  18. var selectedFacilityData = ko.observable(),
  19. selectedUserData = params.selectedUserData || ko.observable();
  20. var dataSourceOptions = {
  21. select: [
  22. 'SiteId',
  23. 'WorkRequestId',
  24. 'CmFacility/Name',
  25. 'CmFacility/BemsFacilityType/Name',
  26. 'FmsWorkOrder/FmsWorkRequest/WorkTypeId',
  27. 'FmsWorkOrder/Title',
  28. 'FmsWorkOrder/OrderDate',
  29. 'FmsWorkOrder/StartWorkDate',
  30. 'FmsWorkOrder/FmsWorkRequest/WorkProgressId',
  31. 'FmsWorkOrder/CmUser/Name', // 작업지시자
  32. //'CmUser1/Name', // 반려자
  33. 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType/Name',
  34. 'FmsWorkOrder/CmBusinessField/Name',
  35. 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress/Name',
  36. 'FmsWorkOrder/FmsWorkResult/CmUser/Name'
  37. ],
  38. expand: [
  39. 'FmsWorkOrder/FmsWorkRequest',
  40. 'FmsWorkOrder/FmsWorkResult',
  41. 'FmsWorkOrder/FmsWorkResult/CmUser',
  42. 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType',
  43. 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress',
  44. 'FmsWorkOrder/CmBusinessField',
  45. 'FmsWorkOrder/CmUser',
  46. 'CmFacility',
  47. 'CmFacility/BemsFacilityType',
  48. ],
  49. //expand: ['FmsWorkCodeType', 'CmBusinessField', 'FmsWorkCodeProgress', 'CmUser', 'CmUser1'],
  50. extendOptions: {
  51. forceOriginalField: true
  52. },
  53. // TODO : Filtering...
  54. //filter: [
  55. // eq('SiteId', BWA.UserInfo.SiteId()),
  56. // and,
  57. // ['FmsWorkRequest/WorkProgressId', '>=', 3],
  58. // and,
  59. // ['FmsWorkRequest/WorkProgressId', '<=', 5]
  60. //]
  61. };
  62. //'CmFacility/Name',
  63. //'CmFacility/BemsFacilityType/Name',
  64. var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsWorkOrderToFacility', {
  65. popupWidth: 1060,
  66. dataSourceOptions: dataSourceOptions,
  67. columns: [
  68. { dataField: 'WorkRequestId', caption: $G('number'), width: '8%', alignment: 'center' },
  69. { dataField: 'FmsWorkOrder/CmBusinessField/Name', caption: $G('businessFieldName'), width: '10%', alignment: 'center' },
  70. { dataField: 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType/Name', caption: $G('workTypeName'), width: '10%', alignment: 'center' },
  71. {
  72. dataField: 'FmsWorkOrder/OrderDate', caption: $G('orderedDate'), width: '12%', alignment: 'center', sortOrder: 'desc',
  73. customizeText: function (cellInfo) {
  74. return $G.date(cellInfo.value);
  75. }
  76. },
  77. { dataField: 'CmFacility/BemsFacilityType/Name', caption: '설비유형', width: '15%', alignment: 'center' },
  78. { dataField: 'CmFacility/Name', caption: '설비명칭', width: '20%', alignment: 'center' },
  79. { dataField: 'FmsWorkOrder/Title', caption: '작업명', width: '35%', alignment: 'center' },
  80. { dataField: 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress/Name', caption: $G('workProgressName'), width: '10%', alignment: 'center' },
  81. { dataField: 'FmsWorkOrder/CmUser/Name', caption: '작업지시자', width: '15%', alignment: 'center' },
  82. { dataField: 'FmsWorkOrder/FmsWorkResult/CmUser/Name', caption: '작업자', width: '15%', alignment: 'center' }
  83. ],
  84. promiseDataInSearchView: deferredForSearch.promise(),
  85. //searchViewItems: _.compact([
  86. // executionPlanViewOptions ? null : { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: businessFieldsForSearch },
  87. // executionPlanViewOptions ? null : { id: 'WorkTypeId', ignoreValue: 0, defaultValue: 0, dataSource: workTypesForSearch },
  88. // { id: 'CmUser/Name' },
  89. // { id: 'Title' },
  90. // { id: 'WorkProgressId', ignoreValue: 0, defaultValue: 0, dataSource: progressesForSearch },
  91. // { id: 'RequestDate', type: 'dateRange' }
  92. //]),
  93. handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
  94. dataGrid.clearSelection();
  95. var data = clickRow.data;
  96. var dataModel = viewModel.dataModel;
  97. isVisibleExecutionButton(false);
  98. if (popup && popup.handleBeforeShowingPopupForEdit) {
  99. popup.handleBeforeShowingPopupForEdit(data, dataModel);
  100. }
  101. popupVisible(true);
  102. },
  103. handlePopupShowing: function () {
  104. if (popup && popup.handlePopupShowing) {
  105. popup.handlePopupShowing.apply(this, arguments);
  106. }
  107. },
  108. handleViewShowing: function (dataModel) {
  109. $.when(
  110. businessFieldDataSource.load(),
  111. workTypeDataSource.load(),
  112. progressDataSource.load()
  113. ).done(function (businessFieldResult, workTypeResult, progressResult) {
  114. businessFields(businessFieldResult[0]);
  115. workTypes(workTypeResult[0]);
  116. progresses(progressResult[0]);
  117. businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', businessFields()));
  118. workTypesForSearch($SearchView.createArrayOfSelectBox('WorkTypeId', workTypes()));
  119. progressesForSearch($SearchView.createArrayOfSelectBox('ProgressId', progresses()));
  120. deferredForSearch.resolve();
  121. });
  122. },
  123. handleViewShown: function () {
  124. }
  125. });
  126. viewModel.businessFields = businessFields;
  127. viewModel.workTypes = workTypes;
  128. popup = viewModel.popup = BWA.Popup.FacilityWorkHistory.create(viewInfo, viewModel);
  129. //workExecutionRegisterPopup = viewModel.workExecutionRegisterPopup = BWA.Popup.WorkExecutionRegister.create(viewInfo, viewModel);
  130. return viewModel;
  131. };