123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- BemsWebApplication.MaterialStoredApproval = function (params, viewInfo) {
- 'use strict';
- var viewModel, gridView, options;
- var visibleApprovalButton = ko.observable();
- function postMaterialStoredApproval(materialStoredList) {
- var progressId = $Code.PurchaseProgress.MATERIAL_STORED_APPROVAL;
- var list = _.reject(materialStoredList, function (x) {
- try {
- return x.IsApproval();
- } catch (e) {
- return x.IsApproval;
- }
- });
- if (_.isEmpty(list)) {
- utils.toast.show('승인 할 입고 항목이 없습니다. 이미 승인되었거나 선택된 항목이 없습니다.', 'error');
- return;
- }
- var postData = undefined;
- try {
- postData = {
- UserId: BWA.UserInfo.UserId(),
- MaterialStoredList: _.map(list, function (x) {
- return {
- SiteId: x.SiteId(),
- BusinessFieldId: x.BusinessFieldId(),
- MaterialStoredId: x.MaterialStoredId(),
- PurchaseOrderId: x.PurchaseOrderId()
- }
- })
- };
- } catch (e) {
- postData = {
- UserId: BWA.UserInfo.UserId(),
- MaterialStoredList: _.map(list, function (x) {
- return {
- SiteId: x.SiteId,
- BusinessFieldId: x.BusinessFieldId,
- MaterialStoredId: x.MaterialStoredId,
- PurchaseOrderId: x.PurchaseOrderId
- }
- })
- };
- }
- return BWA.api.post('FmsMaterialStored/Approval', postData).then(function () {
- // 자재 테이블 업데이트 필요, 입고정보 승인 API 에서 처리
- viewModel.refreshList();
- utils.toast.show('성공적으로 승인 처리되었습니다.');
- });
- };
- function handleApproveSelectedItem() {
- var rows = gridView().getSelectedRowsData();
- postMaterialStoredApproval(rows);
- }
- options = {
- viewOptions: {
- isModifiable: false,
- selection: { mode: 'multiple', allowSelectAll: false },
- handleBeforeShowingPopupForEdit: function (data, dataModel) {
- visibleApprovalButton(!data.IsApproval());
- // 툴바에 버튼이 추가되지 않아 강제로 수정함
- viewModel.materialStoredPopupToolbarItems[1].options.text = $G('approval');
- viewModel.materialStoredPopupToolbarItems[1].options.icon = 'save';
- viewModel.materialStoredPopupToolbarItems[1].options.type = 'success';
- viewModel.materialStoredPopupToolbarItems[1].options.visible = visibleApprovalButton;
- viewModel.materialStoredPopupToolbarItems[1].options.disabled = viewModel.hasnotModificationPermission;
- viewModel.materialStoredPopupToolbarItems[1].options.clickAction = this.handlePopupButtonSave;
- },
- handlePopupButtonSave: function () {
- var promise = postMaterialStoredApproval([viewModel.dataModel]);
- promise.then(function () {
- viewModel.popupVisible(false);
- });
- },
- getAddedToolbarItemsInPopup: function (e) {
- var hasnotModificationPermission = e.hasnotModificationPermission,
- dataViewModel = e.dataViewModel,
- popupVisible = e.popupVisible;
- return [{
- location: 'after',
- widget: 'button',
- options: {
- text: $G('approval'), icon: 'save', type: 'success',
- visible: visibleApprovalButton,
- disabled: hasnotModificationPermission,
- clickAction: function () {
- var promise = postMaterialStoredApproval([dataViewModel]);
- promise.then(function () {
- popupVisible(false);
- });
- }
- }
- },
- {
- location: 'after', widget: 'button', options: {
- text: $G('close'), icon: 'close',
- clickAction: function () { popupVisible(false); }
- }
- }
- ];
- },
- },
- popupOptions: {
- }
- }
- viewModel = BWA.MaterialStored2(params, viewInfo, options);
- gridView = viewModel.gridView;
- viewModel.approvalButtonOptions = {
- icon: 'add',
- id: 'create',
- title: $G('approval'),
- action: handleApproveSelectedItem,
- disabled: viewModel.hasnotModificationPermission
- };
- viewModel.visibleApprovalButton = visibleApprovalButton;
- return viewModel;
- };
|