| 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;};
 |