b58a1bbf33c5925ddc1564b7721fc6b8401fca3f.svn-base 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. BemsWebApplication.MaterialStoredApproval = function (params, viewInfo) {
  2. 'use strict';
  3. var viewModel, gridView, options;
  4. var visibleApprovalButton = ko.observable();
  5. function postMaterialStoredApproval(materialStoredList) {
  6. var progressId = $Code.PurchaseProgress.MATERIAL_STORED_APPROVAL;
  7. var list = _.reject(materialStoredList, function (x) {
  8. try {
  9. return x.IsApproval();
  10. } catch (e) {
  11. return x.IsApproval;
  12. }
  13. });
  14. if (_.isEmpty(list)) {
  15. utils.toast.show('승인 할 입고 항목이 없습니다. 이미 승인되었거나 선택된 항목이 없습니다.', 'error');
  16. return;
  17. }
  18. var postData = undefined;
  19. try {
  20. postData = {
  21. UserId: BWA.UserInfo.UserId(),
  22. MaterialStoredList: _.map(list, function (x) {
  23. return {
  24. SiteId: x.SiteId(),
  25. BusinessFieldId: x.BusinessFieldId(),
  26. MaterialStoredId: x.MaterialStoredId(),
  27. PurchaseOrderId: x.PurchaseOrderId()
  28. }
  29. })
  30. };
  31. } catch (e) {
  32. postData = {
  33. UserId: BWA.UserInfo.UserId(),
  34. MaterialStoredList: _.map(list, function (x) {
  35. return {
  36. SiteId: x.SiteId,
  37. BusinessFieldId: x.BusinessFieldId,
  38. MaterialStoredId: x.MaterialStoredId,
  39. PurchaseOrderId: x.PurchaseOrderId
  40. }
  41. })
  42. };
  43. }
  44. return BWA.api.post('FmsMaterialStored/Approval', postData).then(function () {
  45. // 자재 테이블 업데이트 필요, 입고정보 승인 API 에서 처리
  46. viewModel.refreshList();
  47. utils.toast.show('성공적으로 승인 처리되었습니다.');
  48. });
  49. };
  50. function handleApproveSelectedItem() {
  51. var rows = gridView().getSelectedRowsData();
  52. postMaterialStoredApproval(rows);
  53. }
  54. options = {
  55. viewOptions: {
  56. isModifiable: false,
  57. selection: { mode: 'multiple', allowSelectAll: false },
  58. handleBeforeShowingPopupForEdit: function (data, dataModel) {
  59. visibleApprovalButton(!data.IsApproval());
  60. // 툴바에 버튼이 추가되지 않아 강제로 수정함
  61. viewModel.materialStoredPopupToolbarItems[1].options.text = $G('approval');
  62. viewModel.materialStoredPopupToolbarItems[1].options.icon = 'save';
  63. viewModel.materialStoredPopupToolbarItems[1].options.type = 'success';
  64. viewModel.materialStoredPopupToolbarItems[1].options.visible = visibleApprovalButton;
  65. viewModel.materialStoredPopupToolbarItems[1].options.disabled = viewModel.hasnotModificationPermission;
  66. viewModel.materialStoredPopupToolbarItems[1].options.clickAction = this.handlePopupButtonSave;
  67. },
  68. handlePopupButtonSave: function () {
  69. var promise = postMaterialStoredApproval([viewModel.dataModel]);
  70. promise.then(function () {
  71. viewModel.popupVisible(false);
  72. });
  73. },
  74. getAddedToolbarItemsInPopup: function (e) {
  75. var hasnotModificationPermission = e.hasnotModificationPermission,
  76. dataViewModel = e.dataViewModel,
  77. popupVisible = e.popupVisible;
  78. return [{
  79. location: 'after',
  80. widget: 'button',
  81. options: {
  82. text: $G('approval'), icon: 'save', type: 'success',
  83. visible: visibleApprovalButton,
  84. disabled: hasnotModificationPermission,
  85. clickAction: function () {
  86. var promise = postMaterialStoredApproval([dataViewModel]);
  87. promise.then(function () {
  88. popupVisible(false);
  89. });
  90. }
  91. }
  92. },
  93. {
  94. location: 'after', widget: 'button', options: {
  95. text: $G('close'), icon: 'close',
  96. clickAction: function () { popupVisible(false); }
  97. }
  98. }
  99. ];
  100. },
  101. },
  102. popupOptions: {
  103. }
  104. }
  105. viewModel = BWA.MaterialStored2(params, viewInfo, options);
  106. gridView = viewModel.gridView;
  107. viewModel.approvalButtonOptions = {
  108. icon: 'add',
  109. id: 'create',
  110. title: $G('approval'),
  111. action: handleApproveSelectedItem,
  112. disabled: viewModel.hasnotModificationPermission
  113. };
  114. viewModel.visibleApprovalButton = visibleApprovalButton;
  115. return viewModel;
  116. };