| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 | BemsWebApplication.MaterialStored = function(params, viewInfo, forApprovalOptions) {    'use strict';    var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true),        materialDataSource = BemsWebApplication.db.createDataSource('FmsMaterial', true, true),        warehouseDataSource = BWA.db.createDataSource('FmsMaterialWarehouse', true, true),        progressDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeProgress'),                        warehouses = ko.observableArray(),        businessFields = ko.observableArray()    ;    var eq = BWA.DataUtil.constructEqualFilter,        and = BWA.DataUtil.andFilter;    var forApprovalViewOptions,        forApprovalPopupOptions,        popup    ;    if (_.isObject(forApprovalOptions)) {        forApprovalViewOptions = forApprovalOptions.viewOptions;        forApprovalPopupOptions = forApprovalOptions.popupOptions;    }    var deferredForSearch = new $.Deferred();    var businessFieldsForSearch = ko.observableArray(),        progressesForSearch = ko.observableArray()            ;    var viewModel;    var viewOptions = {        popupWidth: 1300,        dataSourceOptions: {            select: [                'SiteId', 'BusinessFieldId', 'StoredDate', 'MaterialStoredId', 'PurchaseRequestId',                'StoredCount', 'ApprovalDate', 'IsApproval',                'CmBusinessField/Name', 'FmsMaterialWarehouse/Name',                'FmsMaterialPurchaseRequest/Title',                'FmsMaterialPurchaseRequest/ProgressId',                'FmsMaterialPurchaseRequest/FmsMaterialCodeProgress/Name',                'FmsMaterial/MaterialCode', 'FmsMaterial/Name', 'FmsMaterial/Unit', 'FmsMaterial/Standard',                 'CmUser/Name', 'CmUser1/Name'            ],            expand: [                'CmBusinessField', 'FmsMaterial', 'FmsMaterialWarehouse', 'FmsMaterialPurchaseRequest',                'FmsMaterialPurchaseRequest/FmsMaterialCodeProgress', 'CmUser', 'CmUser1'            ],            extendOptions: {                forceOriginalField: true,                // FK 순서상 CmUser : StoredUserId, CmUser1: ApprovalUserId            }        },        columns: [            { dataField: 'MaterialStoredId', caption: $G('number'), width: '8%', alignment: 'center', sortOrder: 'desc' },            { dataField: 'CmBusinessField/Name', caption: $G('businessFieldName'), width: '10%', alignment: 'center' },            { dataField: 'StoredDate', caption: $G('storedDateTime'), width: '20%', alignment: 'center', customizeText: utils.datagrid.customizeTextForDateTimeFunc },            { dataField: 'FmsMaterialPurchaseRequest/FmsMaterialCodeProgress/Name', caption: $G('progressStatus'), width: '10%', alignment: 'center' },            { dataField: 'FmsMaterial/MaterialCode', caption: $G('materialCode'), width: '20%', alignment: 'center' },            { dataField: 'FmsMaterial/Name', caption: $G('materialName'), width: '20%', alignment: 'center' },            { dataField: 'FmsMaterial/Unit', caption: $G('unit'), width: '8%', alignment: 'center' },            { dataField: 'StoredCount', caption: $G('storedCount'), width: '8%', alignment: 'center' },            { dataField: 'ApprovalDate', caption: $G('approvalDate'), width: '20%', alignment: 'center', customizeText: utils.datagrid.customizeTextForDateTimeFunc },            { dataField: 'CmUser1/Name', caption: $G('approvalUserName'), width: '8%', alignment: 'center' }        ],        promiseDataInSearchView: deferredForSearch.promise(),        searchViewItems: [            { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: businessFieldsForSearch },            { id: 'StoredDate', type: 'dateRange', isOnlyDate: true },            { id: 'FmsMaterial/MaterialTypeId' },            { id: 'FmsMaterial/Name' , filterFormatString: 'FmsMaterialPurchaseRequestMaterial/any(c: substringof(\'{0}\', c/FmsMaterial/Name))', type: 'formatting' },            { id: 'CmUser/Name' },            { id: 'ProgressId', ignoreValue: 0, defaultValue: 0, dataSource: progressesForSearch },        ],        handleDataGridRowClick: function(id, dataGrid, clickRow, popupVisible) {            dataGrid.clearSelection();            var data = clickRow.data;            var dataModel = viewModel.dataModel;            if (forApprovalViewOptions && forApprovalViewOptions.handleBeforeShowingPopupForEdit) {                forApprovalViewOptions.handleBeforeShowingPopupForEdit(data, dataModel);            }            if (popup && popup.handleBeforeShowingPopupForEdit) {                                popup.handleBeforeShowingPopupForEdit(data, dataModel);            }            popupVisible(true);        },        handleAfterLoadingModelByKey: function(data, dataViewModel) {            if (popup && popup.handleAfterLoadingModelByKey) {                popup.handleAfterLoadingModelByKey(data, dataViewModel);            }        },        handlePopupShowing: function(isNewInPopup, dataViewModel) {            if (popup && popup.handlePopupShowing) {                popup.handlePopupShowing(isNewInPopup, dataViewModel);            }        },        handlePopupShown: function(editMode, isNew, dataViewModel) {            if (popup && popup.handlePopupShown) {                popup.handlePopupShown(editMode, isNew, dataViewModel);            }        },        handleViewShowing: function(dataModel) {            warehouseDataSource.filter([                eq('SiteId', BWA.UserInfo.SiteId()),                and,                eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()),                and,                eq('IsUse', true),                and,                ['BusinessFieldId', '<>', 1],            ])            $.when(                businessFieldDataSource.load(),                warehouseDataSource.load(),                progressDataSource.load())            .done(function(dbBusinessField, dbWarehouses, dbProgresses) {                dbBusinessField = dbBusinessField[0];                dbWarehouses = dbWarehouses[0];                dbProgresses = dbProgresses[0];                businessFields(dbBusinessField);                warehouses(dbWarehouses);                businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', dbBusinessField));                progressesForSearch($SearchView.createArrayOfSelectBox('ProgressId', dbProgresses));                deferredForSearch.resolve();            });        },        handleViewShown: function() {        }    };    if (_.isObject(forApprovalViewOptions)) {        _.extend(viewOptions, forApprovalViewOptions);    }    else {        // 승인 화면이 아니면 수정에 관련 기능이 필요없다.        _.extend(viewOptions, {            isValidateWithFunction: function(errorMessage) {                if (popup && popup.isValidateWithFunction) {                    return popup.isValidateWithFunction(errorMessage);                }                return true;            },            mandatoryFields: [                { dataField: 'PurchaseRequestId', name: $G('purchaseRequest') },                { dataField: 'MaterialId', name: $G('materialName') },                { dataField: 'WarehouseId', name: $G('warehouseName') },                { dataField: 'StoredCount', name: $G('storedCount') }            ],            handleSaveButtonInPopup: function(isInsert) {                if (isInsert === false) {                    if (popup && popup.handleAfterSave) {                        popup.handleAfterSave(undefined);                    }                }            },            handleAfterSaveInPopup: function(responseKey, response) {                if (popup && popup.handleAfterSave) {                    popup.handleAfterSave(responseKey, response);                }            },        });    }    viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsMaterialStored', viewOptions);    viewModel.businessFields = businessFields;    viewModel.warehouses = warehouses;    var isUsePopup = forApprovalPopupOptions && forApprovalPopupOptions.isUsePopup !== false;    if ((forApprovalPopupOptions && _.isFunction(forApprovalPopupOptions.popupCreatorFunc))) {                popup = viewModel.popup = forApprovalPopupOptions.popupCreatorFunc(viewInfo, viewModel, forApprovalPopupOptions);    }    else {            popup = viewModel.popup = BWA.Popup.MaterialStored.create(viewInfo, viewModel, forApprovalPopupOptions);    }    return viewModel;};
 |