1a1878d55c7270d0dd6c2a870cdaf07c686bfbe9.svn-base 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. BemsWebApplication.PurchaseRequestApproval = function (params, viewInfo) {
  2. 'use strict';
  3. var viewModel,
  4. gridView,
  5. options;
  6. function postPurchaseRequestApproval(purchaseRequests) {
  7. var progressId = $Code.PurchaseProgress.PURCHASE_REQUEST;
  8. var list = _.reject(purchaseRequests, function (x) {
  9. return x.ProgressId() !== progressId;
  10. });
  11. if (_.isEmpty(list)) {
  12. utils.toast.show('승인 할 구매신청 항목이 없습니다. 이미 승인되었거나 선택된 항목이 없습니다.', 'error');
  13. return;
  14. }
  15. var postData = {
  16. UserId: BWA.UserInfo.UserId(),
  17. PurchaseRequests: _.map(list, function (x) {
  18. return {
  19. SiteId: x.SiteId(),
  20. BusinessFieldId: x.BusinessFieldId(),
  21. PurchaseRequestId: x.PurchaseRequestId()
  22. }
  23. })
  24. };
  25. return BWA.api.post('FmsMaterialPurchaseRequest/Approval', postData).then(function () {
  26. viewModel.refreshList();
  27. utils.toast.show('성공적으로 승인 처리되었습니다.');
  28. });
  29. };
  30. function handleApproveSelectedItem() {
  31. var rows = gridView().getSelectedRowsData();
  32. postPurchaseRequestApproval(rows);
  33. }
  34. options = {
  35. viewOptions: {
  36. isModifiable: false,
  37. selection: { mode: 'multiple', allowSelectAll: true },
  38. getAddedToolbarItemsInPopup: function (e) {
  39. var hasnotModificationPermission = e.hasnotModificationPermission,
  40. dataViewModel = e.dataViewModel,
  41. popupVisible = e.popupVisible;
  42. var visibleApprovalButton = ko.observable();
  43. dataViewModel.ProgressId.subscribe(function (progressId) {
  44. visibleApprovalButton(progressId === $Code.PurchaseProgress.PURCHASE_REQUEST);
  45. });
  46. return [{
  47. location: 'after',
  48. widget: 'button',
  49. options: {
  50. text: $G('approval'), icon: 'save', type: 'success',
  51. visible: visibleApprovalButton,
  52. disabled: hasnotModificationPermission,
  53. clickAction: function () {
  54. var promise = postPurchaseRequestApproval([dataViewModel]);
  55. promise.then(function () {
  56. popupVisible(false);
  57. });
  58. }
  59. }
  60. }];
  61. },
  62. },
  63. popupOptions: {
  64. }
  65. }
  66. viewModel = BWA.PurchaseRequest(params, viewInfo, options);
  67. gridView = viewModel.gridView;
  68. viewModel.approvalButtonOptions = {
  69. icon: 'add',
  70. id: 'create',
  71. title: $G('approval'),
  72. action: handleApproveSelectedItem,
  73. disabled: viewModel.hasnotModificationPermission
  74. };
  75. return viewModel;
  76. };