BemsWebApplication.PurchaseRequestApproval = function (params, viewInfo) { 'use strict'; var viewModel, gridView, options; function postPurchaseRequestApproval(purchaseRequests) { var progressId = $Code.PurchaseProgress.PURCHASE_REQUEST; var list = _.reject(purchaseRequests, function (x) { return x.ProgressId() !== progressId; }); if (_.isEmpty(list)) { utils.toast.show('승인 할 구매신청 항목이 없습니다. 이미 승인되었거나 선택된 항목이 없습니다.', 'error'); return; } var postData = { UserId: BWA.UserInfo.UserId(), PurchaseRequests: _.map(list, function (x) { return { SiteId: x.SiteId(), BusinessFieldId: x.BusinessFieldId(), PurchaseRequestId: x.PurchaseRequestId() } }) }; return BWA.api.post('FmsMaterialPurchaseRequest/Approval', postData).then(function () { viewModel.refreshList(); utils.toast.show('성공적으로 승인 처리되었습니다.'); }); }; function handleApproveSelectedItem() { var rows = gridView().getSelectedRowsData(); postPurchaseRequestApproval(rows); } options = { viewOptions: { isModifiable: false, selection: { mode: 'multiple', allowSelectAll: true }, getAddedToolbarItemsInPopup: function (e) { var hasnotModificationPermission = e.hasnotModificationPermission, dataViewModel = e.dataViewModel, popupVisible = e.popupVisible; var visibleApprovalButton = ko.observable(); dataViewModel.ProgressId.subscribe(function (progressId) { visibleApprovalButton(progressId === $Code.PurchaseProgress.PURCHASE_REQUEST); }); return [{ location: 'after', widget: 'button', options: { text: $G('approval'), icon: 'save', type: 'success', visible: visibleApprovalButton, disabled: hasnotModificationPermission, clickAction: function () { var promise = postPurchaseRequestApproval([dataViewModel]); promise.then(function () { popupVisible(false); }); } } }]; }, }, popupOptions: { } } viewModel = BWA.PurchaseRequest(params, viewInfo, options); gridView = viewModel.gridView; viewModel.approvalButtonOptions = { icon: 'add', id: 'create', title: $G('approval'), action: handleApproveSelectedItem, disabled: viewModel.hasnotModificationPermission }; return viewModel; };