BemsWebApplication.Department = function( params , viewInfo ) { "use strict"; var companyDataSource = BemsWebApplication.db.createDataSource( 'CmCompany', true ); var companies = ko.observableArray(); var CmDepartmentDataSource = BemsWebApplication.db.createDataSource('CmDepartment'); var DepartmentInfo = ko.observableArray(); var RowName, RowCompanyId; var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'CmDepartment', { dataSourceOptions: { select: [ 'SiteId' , 'CompanyId' , 'DepartmentId' , 'Name' , 'Name', 'PhoneNo', 'IsUse' , 'CmCompany/Name' ], expand: ["CmCompany"], extendOptions: { forceOriginalField: true } }, columns: [ { dataField: 'DepartmentId', caption: $G('number'), width: '10%', alignment: 'center' ,sortOrder: 'desc'}, { dataField: 'CmCompany/Name', caption: $G( 'companyName' ), width: '15%', alignment: 'center' }, { dataField: 'Name', caption: $G( 'departmentName' ), width: '35%', alignment: 'center' }, { dataField: 'PhoneNo', caption: $G( 'departmentPhoneNo' ), width: '15%', alignment: 'center' }, utils.datagrid.columnIsUse( '10%' ) ], searchViewItems: [ { id: 'CmCompany/Name' }, { id: 'Name' } ], popupWidth: 480, handleDataGridRowClick: function( id, dataGrid, clickRow, popupVisible ) { dataGrid.clearSelection(); var data = clickRow.data; var dataModel = viewModel.dataModel; dataModel.CompanyName = $KoSet(dataModel.CompanyName, data.CmCompany_Name); RowName = data.Name; RowCompanyId = data.CompanyId; popupVisible( true ); }, // 이름 중복 방지 handlePopupShowing: function (that) { companyDataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()] ]); companyDataSource.load().done(function (result) { companies(result); }); CmDepartmentDataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()] ]); CmDepartmentDataSource.load().done(function (result) { DepartmentInfo(result); }); }, beforeInsertingDataViewModel: function (dataModel, dbModelId) { var dfd = $.Deferred(); var isDuplicated = false; for (var i = 0; i < DepartmentInfo().length; i++) { if (dataModel.Name() == DepartmentInfo()[i].Name() && dataModel.CompanyId() == DepartmentInfo()[i].CompanyId()) { isDuplicated = true; } } if (!BWA.DataUtil.isValidInputValue(dataModel.Name()) || !BWA.DataUtil.isValidInputValue(dataModel.CompanyId())) return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)'); else { if (isDuplicated) return dfd.resolve(false, '이미 동일 정보가 존재합니다 (회사 명칭, 부서 명칭 확인 필요)'); else return dfd.resolve(true); } }, beforeUpdateDataViewModel: function () { var isDuplicated = false; for (var i = 0; i < DepartmentInfo().length; i++) { if (viewModel.dataModel.Name() == DepartmentInfo()[i].Name() && viewModel.dataModel.CompanyId() == DepartmentInfo()[i].CompanyId() && (RowName() != DepartmentInfo()[i].Name() || RowCompanyId() != DepartmentInfo()[i].CompanyId())) { isDuplicated = true; } } if (!BWA.DataUtil.isValidInputValue(viewModel.dataModel.Name())) { utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error'); return 0; } else { if (isDuplicated) { utils.toast.show('이미 동일 정보가 존재합니다 (회사 명칭, 부서 명칭 확인 필요)', 'error'); return 0; } else return 2; } } }); var handleSelectBoxCompany = function( e ) { viewModel.dataModel.CompanyId(e.value); }; viewModel.companyDataSource = companies; viewModel.handleSelectBoxCompany = handleSelectBoxCompany; return viewModel; };