BemsWebApplication.BusinessField = function(params, viewInfo) { "use strict"; var companyDataSource = BemsWebApplication.db.createDataSource('CmCompany', true); var BusinessFieldInfo = ko.observableArray(); var CmBusinessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField'); var RowName; var companies = ko.observableArray(); var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmBusinessField', { dataSourceOptions: { select: ['SiteId', 'BusinessFieldId', 'Name', 'IsUse'], }, columns: [ { dataField: 'BusinessFieldId', caption: '번호', width: '20%', alignment: 'center' , sortOrder: 'desc'}, { dataField: 'Name', caption: $G('businessFieldName'), width: '60%', alignment: 'center' }, utils.datagrid.columnIsUse('20%') ], NoSearchView: true, // 2019.07.25 kgpark 검색버튼 삭제 handleViewShowing: function () { }, handlePopupShowing: function () { CmBusinessFieldDataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()] ]); CmBusinessFieldDataSource.load().done(function (result) { BusinessFieldInfo(result); }); }, handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) { dataGrid.clearSelection(); companyDataSource.load().done(function(result) { companies(result); }); var data = clickRow.data; var dataModel = viewModel.dataModel; dataModel.CompanyName = $KoSet(dataModel.CompanyName, data.CmCompany_Name); RowName = data.Name; popupVisible(true); }, // 이름 중복 방지 beforeInsertingDataViewModel: function (dataModel, dbModelId) { var dfd = $.Deferred(); var isDuplicated = false; for (var i = 0; i < BusinessFieldInfo().length; i++) { if (dataModel.Name() == BusinessFieldInfo()[i].Name()) { isDuplicated = true; } } if (!BWA.DataUtil.isValidInputValue(dataModel.Name())) 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 < BusinessFieldInfo().length; i++) { if (viewModel.dataModel.Name() == BusinessFieldInfo()[i].Name() && RowName() != BusinessFieldInfo()[i].Name()) { 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; } }, popupWidth: 480, }); viewModel.dataModel.CompanyName = ko.observable(); viewModel.companies = companies; return viewModel; };