65f82d661412f30967cb112ac0086256d1fcf4aa.svn-base 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. $(function () {
  2. 'use strict';
  3. BemsWebApplication.Popup.CurrentWork = {
  4. create: function (viewInfo, viewModel) {
  5. var facilitiesInView = ko.observableArray();
  6. var facilityFactory = BWA.Factory.Facility;
  7. var popupVisible = ko.observable();
  8. var IsConfirmJob = ko.observable(false);
  9. var eq = BWA.DataUtil.constructEqualFilter;
  10. var and = BWA.DataUtil.andFilter;
  11. var facilityDataSource = facilityFactory.getBasicDataSourceRef({
  12. dbModeIId: 'FmsWorkResultToFacility',
  13. primaryKeyDataField: 'WorkRequestId'
  14. });
  15. //var workResultCheckItemDataSource = BemsWebApplication.db.createDataSource('FmsWorkResultCheckItem', true, true, false, true); // 2018 01 29 hcLee
  16. var workResultCheckItemDataSource = BWA.DataUtil.createDataSource({ // 2018 01 29 hcLee -->
  17. dataSourceOptions: {
  18. paginate: false,
  19. select: [
  20. 'SiteId', 'WorkRequestId',
  21. 'FacilityCode',
  22. 'CheckItemId',
  23. 'BoolResult',
  24. 'TextResult',
  25. 'CheckDate',
  26. 'FileId1',
  27. 'FileId2',
  28. 'CmFile/Name',
  29. 'CmFile1/Name',
  30. ],
  31. expand: [
  32. 'CmFile',
  33. 'CmFile1'],
  34. extendOptions: {
  35. forceOriginalField: true
  36. },
  37. }
  38. }, 'FmsWorkResultCheckItem'); // <-- 2018 01 29 hcLee
  39. var workResultCheckItems = ko.observableArray();
  40. //var selectedItemCheckDate = ko.observable();
  41. //var selectedItemTextResult = ko.observable();
  42. function onItemClick(e) {
  43. if (viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel !== undefined) {
  44. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.CheckItemId(e.itemData.CheckItemId());
  45. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.CheckDate(e.itemData.CheckDate());
  46. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.TextResult(e.itemData.TextResult());
  47. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.SiteId(e.itemData.SiteId());
  48. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.WorkRequestId(e.itemData.WorkRequestId());
  49. // hcLee 2018 01 29 -->
  50. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.FileId1(e.itemData.FileId1());
  51. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.FileId2(e.itemData.FileId2());
  52. //viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName1(e.itemData['CmFile/Name']());
  53. (e.itemData.FileId1() != null) ? viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName1(e.itemData['CmFile/Name']()) : viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName1(null);
  54. (e.itemData.FileId2() != null) ? viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName2(e.itemData['CmFile1/Name']()) : viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.AttachmentFileName2(null);
  55. // <-- hcLee 2018 01 29
  56. viewModel.addWorkResultCheckItemPopup.isNew(false);
  57. viewModel.isAddHistoryButton(false);
  58. viewModel.isEditHistoryButton(true);
  59. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(viewModel.isWorkDone());
  60. if (viewModel.isWorkHold != undefined)
  61. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold(viewModel.isWorkHold());
  62. /*
  63. if (viewModel.isWorkDone()) {
  64. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(true);
  65. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold(false);
  66. }
  67. if (viewModel.isAddHistoryButton()) {
  68. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(false);
  69. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold(false);
  70. }
  71. else {
  72. if (viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkHold())
  73. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(false);
  74. else
  75. viewModel.addWorkResultCheckItemPopup.workCheckItemViewModel.IsWorkDone(true);
  76. }*/
  77. viewModel.addWorkResultCheckItemPopup.show();
  78. }
  79. }
  80. function handleBeforePopupShowingPromise(isNewInPopup, dataViewModel, clickRowData) {
  81. var workProgressId;
  82. if (isNewInPopup()) {
  83. workProgressId = $Code.WorkProgress.WORK_PLAN;
  84. }
  85. else {
  86. workProgressId = clickRowData['FmsWorkRequest/WorkProgressId'](); // clickRowData.WorkProgressId();
  87. dataViewModel.WorkProgressId = ko.observable();
  88. dataViewModel.WorkProgressId(workProgressId);
  89. }
  90. }
  91. function handlePopupShowing(isNewInPopup, dataModel, selectedData) {
  92. viewModel.dataModel.selectedItemCheckDate("");
  93. viewModel.dataModel.selectedItemTextResult("");
  94. viewModel.dataModel.selectedItemCheckItemId(0);
  95. viewModel.dataModel.FacilityList("");
  96. viewModel.dataModel.FacilityListValueOnOff(false);
  97. viewModel.imagefileUrl1(null);
  98. viewModel.imagefileUrl2(null);
  99. //if (viewModel.workResultCheckItemMaterialPopup === undefined) { return; }
  100. //viewModel.workResultCheckItemMaterialPopup.materials2([]);
  101. }
  102. function handlePopupShown(isEditMode, isNew, dataViewModel) {
  103. viewModel.imagefileUrl1(null);
  104. viewModel.imagefileUrl2(null);
  105. }
  106. function searchpopup() {
  107. viewModel.WorkResultCheckItemFacilityPopup.selectedFacility(viewModel.dataModel);
  108. viewModel.WorkResultCheckItemFacilityPopup.visible(true);
  109. }
  110. function handleAfterLoadingModelByKey(data, dataViewModel, isNewInPopup) {
  111. // 작업지시 세부 내용은 수정/삭제 할 수 없음
  112. viewModel.visibleEditButton(false);
  113. viewModel.visibleDeleteButton(false);
  114. facilityDataSource.filter([
  115. eq('SiteId', dataViewModel.SiteId()),
  116. and,
  117. eq('WorkRequestId', dataViewModel.WorkRequestId())
  118. ]);
  119. facilityDataSource.load().done(function (dbFacilities) {
  120. facilitiesInView(dbFacilities);
  121. var facilityList = "";
  122. for (var i = 0; i < dbFacilities.length; i++) {
  123. facilityList += (i + 1) + ". " + dbFacilities[i].Name();
  124. if (i + 1 == dbFacilities.length) { break; }
  125. facilityList += '\n';
  126. }
  127. if (facilityList == "") {
  128. viewModel.dataModel.FacilityListValueOnOff(false);
  129. }
  130. else {
  131. viewModel.dataModel.FacilityListValueOnOff(true);
  132. }
  133. viewModel.dataModel.FacilityList(facilityList);
  134. });
  135. refreshListData();
  136. refreshMaterialGrid();
  137. }
  138. function refreshMaterialGrid() {
  139. viewModel.workResultCheckItemMaterialPopup.refreshMaterialGrid();
  140. }
  141. function refreshListData() {
  142. // hcLee 2018 01 29
  143. workResultCheckItemDataSource.filter([
  144. eq('SiteId', viewModel.dataModel.SiteId()),
  145. and,
  146. eq('WorkRequestId', viewModel.dataModel.WorkRequestId())
  147. ]);
  148. $.when(workResultCheckItemDataSource.load())
  149. .done(function (dbWorkCheckItems) {
  150. workResultCheckItems(dbWorkCheckItems);
  151. });
  152. /*
  153. workResultCheckItemDataSource.load().done(function (dbWorkCheckItems) {
  154. workResultCheckItems(dbWorkCheckItems);
  155. });*/
  156. // <-- hcLee 2018 01 29
  157. // 해결방안 : 이전에 수정하고 있던 이력항목을 "작업이력수정" 버튼을 누른 이후에도 계속 화면에 표시하였으면 함.
  158. // 위 건으로 인하여 데이터 초기화 하지 않음
  159. //viewModel.dataModel.selectedItemCheckDate("");
  160. //viewModel.dataModel.selectedItemTextResult("");
  161. //viewModel.dataModel.selectedItemCheckItemId(0);
  162. }
  163. function handleBeforeShowingPopupForEdit(rowData, dataViewModel) {
  164. dataViewModel.Title(rowData['FmsWorkOrder/Title']());
  165. dataViewModel.BusinessFieldName(rowData['FmsWorkRequest/CmBusinessField/Name']());
  166. dataViewModel.WorkTypeName(rowData['FmsWorkRequest/FmsWorkCodeType/Name']());
  167. dataViewModel.WorkerUserName(rowData['CmUser/Name']());
  168. dataViewModel.workDueDate(rowData['FmsWorkRequest/StartWorkDate']());
  169. if (rowData['CmUser1/Name'] !== undefined) {
  170. dataViewModel.ConfirmedUserName(rowData['CmUser1/Name']());
  171. }
  172. dataViewModel.WorkProgressName(rowData['FmsWorkRequest/FmsWorkCodeProgress/Name']());
  173. dataViewModel.OrderDate(rowData['FmsWorkOrder/OrderDate']());
  174. if (rowData['FmsWorkOrder/Content'] !== undefined) {
  175. dataViewModel.OrderContent(rowData['FmsWorkOrder/Content']());
  176. }
  177. if (rowData['FmsWorkRequest/Content'] !== undefined) {
  178. dataViewModel.RequestContent(rowData['FmsWorkRequest/Content']());
  179. }
  180. }
  181. viewModel.dataModel.Title = ko.observable();
  182. viewModel.dataModel.BusinessFieldName = ko.observable();
  183. viewModel.dataModel.WorkTypeName = ko.observable();
  184. viewModel.dataModel.WorkerUserName = ko.observable();
  185. viewModel.dataModel.OrderContent = ko.observable();
  186. viewModel.dataModel.RequestContent = ko.observable();
  187. viewModel.dataModel.workDueDate = ko.observable();
  188. viewModel.dataModel.ConfirmedUserName = ko.observable();
  189. viewModel.dataModel.WorkProgressName = ko.observable();
  190. viewModel.dataModel.OrderDate = ko.observable();
  191. viewModel.dataModel.FacilityListValueOnOff = ko.observable();
  192. viewModel.dataModel.FacilityList = ko.observable();
  193. viewModel.dataModel.selectedItemCheckDate = ko.observable();
  194. viewModel.dataModel.selectedItemTextResult = ko.observable();
  195. viewModel.dataModel.selectedItemCheckItemId = ko.observable();
  196. viewModel.workResultCheckItems = workResultCheckItems;
  197. viewModel.onItemClick = onItemClick;
  198. viewModel.IsConfirmJob = IsConfirmJob;
  199. //viewModel.refreshListData = refreshListData;
  200. viewModel.searchpopup = searchpopup;
  201. function sleep(ms) {
  202. var ts1, ts2 = null;
  203. ts1 = new Date().getTime() + ms;
  204. do ts2 = new Date().getTime(); while (ts2 < ts1);
  205. }
  206. return {
  207. workResultCheckItems: workResultCheckItems,
  208. refreshListData: refreshListData,
  209. popupVisible: popupVisible,
  210. handleAfterLoadingModelByKey: handleAfterLoadingModelByKey,
  211. handlePopupShowing: handlePopupShowing,
  212. handlePopupShown: handlePopupShown,
  213. handleBeforeShowingPopupForEdit: handleBeforeShowingPopupForEdit,
  214. handleBeforePopupShowingPromise: handleBeforePopupShowingPromise,
  215. IsConfirmJob: IsConfirmJob
  216. };
  217. }
  218. }
  219. });