84b1b00f7c6759464bbf2a9a4439a36fe7ab84ad.svn-base 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. $(function () {
  2. 'use strict';
  3. BemsWebApplication.Popup.FacilityWorkHistory2 = {
  4. create: function (viewInfo, viewModel) {
  5. var eq = BWA.DataUtil.constructEqualFilter;
  6. var and = BWA.DataUtil.andFilter;
  7. var popupVisible = ko.observable();
  8. //var workResultCheckItemDataSource = BemsWebApplication.db.createDataSource('FmsWorkResultCheckItem', true, true, false, true);
  9. var workResultCheckItemDataSource = BWA.DataUtil.createDataSource({
  10. dataSourceOptions: {
  11. select: [
  12. 'SiteId',
  13. 'WorkRequestId',
  14. 'FacilityCode',
  15. 'CheckItemId',
  16. 'BoolResult',
  17. 'TextResult',
  18. 'CheckDate',
  19. 'FileId1',
  20. 'FileId2',
  21. 'CmFile/Name',
  22. 'FmsWorkResult/CmUser/Name',
  23. ],
  24. expand: ["FmsWorkResult", "FmsWorkResult/CmUser", 'CmFile', 'CmFile1'],
  25. extendOptions: {
  26. forceOriginalField: true,
  27. alterNames: {
  28. 'FmsWorkResult/CmUser/Name': 'WorkerUserName'
  29. }
  30. },
  31. }
  32. }, 'FmsWorkResultCheckItem');
  33. var workResultCheckItems = ko.observableArray();
  34. function isValidateWithFunction(errorMessage) {
  35. if (_.isEmpty(facilities())) {
  36. errorMessage.message = '점검을 위한 시설이 없습니다.';
  37. return false;
  38. }
  39. return true;
  40. }
  41. function onItemClick(e) {
  42. if (viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel !== undefined) {
  43. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.CheckItemId(e.itemData.CheckItemId());
  44. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.CheckDate(e.itemData.CheckDate());
  45. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.TextResult(e.itemData.TextResult());
  46. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.SiteId(e.itemData.SiteId());
  47. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.WorkRequestId(e.itemData.WorkRequestId());
  48. // hcLee 2018 01 29 -->
  49. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.FileId1(e.itemData.FileId1());
  50. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.FileId2(e.itemData.FileId2());
  51. (e.itemData.FileId1() != null) ? viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName1(e.itemData['CmFile/Name']()) : viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName1(null);
  52. (e.itemData.FileId2() != null) ? viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName2(e.itemData['CmFile1/Name']()) : viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName2(null);
  53. // <-- hcLee 2018 01 29
  54. viewModel.addWorkResultCheckItemPopup.isNew(false);
  55. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(viewModel.isWorkDone());// hcLee 2016 04 04
  56. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold(viewModel.isWorkHold());// hcLee 2016 04 04
  57. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.isAddHistoryButton = ko.observable(false);
  58. viewModel.addWorkResultCheckItemPopup.show();
  59. }
  60. }
  61. function handlePopupShowing(isNewInPopup, dataModel, selectedData) {
  62. viewModel.dataModel.selectedItemCheckDate("");
  63. viewModel.dataModel.selectedItemTextResult("");
  64. viewModel.dataModel.selectedItemCheckItemId(0);
  65. viewModel.dataModel.FacilityList("");
  66. }
  67. function handlePopupShown(isEditMode, isNew, dataViewModel) {
  68. workResultCheckItemDataSource.filter([
  69. eq('SiteId', dataViewModel.SiteId()),
  70. and,
  71. eq('WorkRequestId', dataViewModel.WorkRequestId())
  72. ]);
  73. workResultCheckItemDataSource.load().done(function (dbWorkCheckItems) {
  74. workResultCheckItems(dbWorkCheckItems);
  75. });
  76. }
  77. function refreshListData() {
  78. workResultCheckItemDataSource.filter([
  79. eq('SiteId', viewModel.dataModel.SiteId()),
  80. and,
  81. eq('WorkRequestId', viewModel.dataModel.WorkRequestId())
  82. ]);
  83. workResultCheckItemDataSource.load().done(function (dbWorkCheckItems) {
  84. workResultCheckItems(dbWorkCheckItems);
  85. });
  86. viewModel.dataModel.selectedItemCheckDate("");
  87. viewModel.dataModel.selectedItemTextResult("");
  88. viewModel.dataModel.selectedItemCheckItemId(0);
  89. }
  90. function handleAfterLoadingModelByKey(data, dataViewModel, isNewInPopup) {
  91. // 작업지시 세부 내용은 수정/삭제 할 수 없음
  92. viewModel.visibleEditButton(false);
  93. viewModel.visibleDeleteButton(false);
  94. facilityDataSource.filter([
  95. eq('SiteId', dataViewModel.SiteId()),
  96. and,
  97. eq('WorkRequestId', dataViewModel.WorkRequestId())
  98. ]);
  99. facilityDataSource.load().done(function (dbFacilities) {
  100. facilitiesInView(dbFacilities);
  101. var facilityList = "";
  102. for (var i = 0; i < dbFacilities.length; i++) {
  103. facilityList += dbFacilities[i].Name();
  104. if (i + 1 == dbFacilities.length) { break; }
  105. facilityList += " , ";
  106. }
  107. viewModel.dataModel.FacilityList(facilityList);
  108. });
  109. refreshListData();
  110. viewModel.workResultCheckItemMaterialPopup.refreshMaterialGrid();
  111. }
  112. function handleBeforeShowingPopupForEdit(rowData, dataViewModel) {
  113. dataViewModel.workDueDate($KoValue(rowData['FmsWorkOrder/FmsWorkRequest/StartWorkDate']));
  114. dataViewModel.WorkerUserName(rowData['FmsWorkOrder/FmsWorkResult/CmUser/Name']());
  115. dataViewModel.FacilityName(rowData['CmFacility/Name']());
  116. dataViewModel.BusinessFieldName(rowData['FmsWorkOrder/FmsWorkRequest/CmBusinessField/Name']());
  117. dataViewModel.WorkTypeName(rowData['FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType/Name']());
  118. dataViewModel.WorkProgressName(rowData['FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress/Name']());
  119. dataViewModel.OrderUserName(rowData['FmsWorkOrder/CmUser/Name']());
  120. dataViewModel.RejectUserName($KoValue(rowData['FmsWorkOrder/CmUser1/Name']));
  121. dataViewModel.OrderDate = $KoSet(dataViewModel.OrderDate, rowData['FmsWorkOrder/OrderDate']);
  122. dataViewModel.StartWorkDate = $KoSet(dataViewModel.StartWorkDate, rowData['FmsWorkOrder/StartWorkDate']);
  123. dataViewModel.EndDate = $KoSet(dataViewModel.EndDate, rowData['FmsWorkOrder/FmsWorkResult/EndDate']);
  124. dataViewModel.Title = $KoSet(dataViewModel.Title, rowData['FmsWorkOrder/Title']);
  125. dataViewModel.Content = $KoSet(dataViewModel.Content, rowData['FmsWorkOrder/Content']);
  126. }
  127. //viewModel.popupVisible.subscribe(function (visible) {
  128. // //if (!visible) { facilitiesInView([]); }
  129. //});
  130. viewModel.dataModel.workDueDate = ko.observable();
  131. viewModel.dataModel.WorkerUserName = ko.observable();
  132. viewModel.dataModel.FacilityName = ko.observable();
  133. viewModel.dataModel.selectedItemCheckDate = ko.observable();
  134. viewModel.dataModel.selectedItemTextResult = ko.observable();
  135. viewModel.dataModel.selectedItemCheckItemId = ko.observable();
  136. viewModel.dataModel.WorkTypeName = ko.observable();
  137. viewModel.dataModel.BusinessFieldName = ko.observable();
  138. viewModel.dataModel.OrderUserName = ko.observable();
  139. viewModel.dataModel.RejectUserName = ko.observable();
  140. viewModel.dataModel.WorkProgressName = ko.observable();
  141. viewModel.refreshListData = refreshListData;
  142. viewModel.workResultCheckItems = workResultCheckItems;
  143. viewModel.onItemClick = onItemClick;
  144. viewModel.dataModel.FacilityList = ko.observable();
  145. viewModel.addWorkResultCheckItemPopup.popupVisible.subscribe(function (visible) {
  146. if (!visible) {
  147. refreshListData();
  148. }
  149. });
  150. return {
  151. workResultCheckItems: workResultCheckItems,
  152. isValidateWithFunction: isValidateWithFunction,
  153. handlePopupShowing: handlePopupShowing,
  154. handlePopupShown: handlePopupShown,
  155. popupVisible: popupVisible,
  156. handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit,
  157. refreshListData: refreshListData,
  158. handleAfterLoadingModelByKey: handleAfterLoadingModelByKey,
  159. };
  160. }
  161. }
  162. });