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