BemsWebApplication.SeniorItem = function( params, viewInfo ) { "use strict"; var businessFieldDataSource = BemsWebApplication.db.createDataSource( 'CmBusinessField', true, true ), businessFields = ko.observableArray(), businessFieldsForSearch = ko.observableArray(); var deferredForSearch = new $.Deferred(); var selectedSeniorItemId; var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'FmsBusinessSeniorItem', { columns: [ { dataField: 'Number', caption: $G( 'number' ), width: '15%', alignment: 'center' }, { dataField: 'Name', caption: $G( 'seniorItemName' ), width: '55%', alignment: 'center', dataType: 'string' }, { dataField: 'PeopleCount', caption: $G( 'seniorPeopleCount' ), width: '20%', alignment: 'center' }, utils.datagrid.columnIsUse( '10%' ) ], promiseDataInSearchView: deferredForSearch.promise(), searchViewItems: [ { id: 'Name' } , { id: 'Qualification' } ], handleViewShowing: function() { }, handleViewShown: function() { }, handleDataGridRowClick: function( id, dataGrid, clickRow, popupVisible ) { dataGrid.clearSelection(); selectedSeniorItemId = clickRow.data.SeniorItemId(); popupVisible( true ); }, handlePopupShown: function() { var targetLicenseDataGrid = $( '#gridTargetLicenseContainer' ).dxDataGrid( 'instance' ); targetLicenseDataGrid.filter( [ [ 'SiteId', '=', BWA.UserInfo.SiteId() ], 'and', [ 'SeniorItemId', '=', selectedSeniorItemId ] ] ); }, handleSaveButtonInPopup: function( isInsert ) { return BemsWebApplication.api.postWithDataGrid( 'FmsBusinessSeniorItemToLicense', 'gridLicenseContainer', { SiteId: BWA.UserInfo.SiteId(), SeniorItemId: selectedSeniorItemId, LicenseId: null } ); }, } ); var targetLicenseDataSource = $DataSource( { dataSourceOptions: { store: BemsWebApplication.db.FmsBusinessSeniorItemToLicense, select: [ 'SiteId' , 'LicenseId' , 'FmsBusinessLicense/Name' , 'FmsBusinessLicense/IssuingOffice', 'FmsBusinessLicense/EducationalInstitute' ], expand: [ "FmsBusinessLicense" ] } } ); var licenseDataSource = $DataSource( { dataSourceOptions: { store: BemsWebApplication.db.FmsBusinessLicense, select: [ 'SiteId' , 'LicenseId' , 'CmBusinessField/Name' , 'Name' , 'IssuingOffice', 'EducationalInstitute' ], expand: [ "CmBusinessField" ] } } ); var licenseFactory = { dataSourceOptions: targetLicenseDataSource, columns: [ { dataField: 'CmBusinessField_Name', caption: $G( 'businessFieldName' ), width: '15%', alignment: 'center' }, { dataField: 'Name', caption: $G( 'licenseName' ), width: '25%', alignment: 'center' }, { dataField: 'IssuingOffice', caption: $G( 'issuingOffice' ), width: '25%', alignment: 'center' }, { dataField: 'EducationalInstitute', caption: $G( 'educationalInstitute' ), width: '15%', alignment: 'center' } ], height:320 }; var targetLicenseFactory = { dataSourceOptions: targetLicenseDataSource, columns: [ { dataField: 'FmsBusinessLicense_Name', caption: $G( 'licenseName' ), width: '40%', alignment: 'center' }, { dataField: 'FmsBusinessLicense_IssuingOffice', caption: $G( 'issuingOffice' ), width: '30%', alignment: 'center' }, { dataField: 'FmsBusinessLicense_EducationalInstitute', caption: $G( 'educationalInstitute' ), width: '30%', alignment: 'center' } ], height:320 }; viewModel.tabsItems = [ { text: '기본 정보' }, { text: '필요 자격' } ]; viewModel.isNewInPopup.subscribe( function( value ) { if( value ) { var licenseDataGrid = $( '#gridLicenseContainer' ).dxDataGrid( 'instance' ); if( licenseDataGrid !== undefined ) licenseDataGrid.clearSelection(); } } ); viewModel.isEditModeInPopup.subscribe( function( value ) { var licenseDataGrid = $( '#gridLicenseContainer' ).dxDataGrid( 'instance' ); var targetLicenseDataGrid = $( '#gridTargetLicenseContainer' ).dxDataGrid( 'instance' ); if( licenseDataGrid !== undefined && value ) { licenseDataGrid.clearSelection(); var items = targetLicenseDataGrid._controllers.data._dataSource._items; var keys = []; $.each( items, function( i, item ) { keys.push( { LicenseId: item.LicenseId(), SiteId: item.SiteId() }); } ); licenseDataGrid.selectRows( keys ); } else { } } ); viewModel.currentTabIndex = ko.observable( 0 ); var dataModel = viewModel.dataModel; viewModel.multiViewItems = [ { dataModel: dataModel, viewModel: viewModel, template: 'generalInfo' }, { dataModel: dataModel, viewModel: viewModel, licenseFactory: utils.datagrid.defaultOptions( $.extend( licenseFactory, { visible: viewModel.isEditModeInPopup, dxDataSource: licenseDataSource, selection: { mode: 'multiple', allowSelectAll: true } } ) ), targetLicenseFactory: utils.datagrid.defaultOptions( $.extend( targetLicenseFactory, { visible: viewModel.isViewModeInPopup, dxDataSource: targetLicenseDataSource, contentReadyAction: function( e ) { console.log( e.model ); } } ) ), template: 'targetLicense' } ]; return viewModel; };