BemsWebApplication.EquipCodeType = function (params, viewInfo) { "use strict"; var EquipCodeInfo = ko.observableArray(); var FmsEquipmentCodeTypeDataSource = BemsWebApplication.db.createDataSource('FmsEquipmentCodeType'); var RowName; var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsEquipmentCodeType', { columns: [ { dataField: 'EquipmentTypeId', caption: $G('number'), width: '20%', alignment: 'center', sortOrder: 'desc' }, { dataField: 'Name', caption: '공기구분류', width: '40%', alignment: 'center' }, { dataField: 'Description', caption: '설명', width: '40%', alignment: 'center' }, ], popupWidth: 480, searchViewItems: [{ id: 'Name' }], handleViewShown: function () { }, NoSearchView: true, // 2019.07.25 kgpark 검색버튼 삭제 handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) { var data = clickRow.data; RowName = data.Name; popupVisible(true); }, // 이름 중복 방지 handlePopupShowing: function () { FmsEquipmentCodeTypeDataSource.filter([ ["SiteId", "=", BWA.UserInfo.SiteId()] ]); FmsEquipmentCodeTypeDataSource.load().done(function (result) { EquipCodeInfo(result); }); }, beforeInsertingDataViewModel: function (dataModel, dbModelId) { var dfd = $.Deferred(); if (!BWA.DataUtil.isValidInputValue(dataModel.Name())) return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)'); $.when(BWA.api.post('BemsMonitoringPoint/CheckSameEquipCodeType', dataModel.toJS())) .done(function (isCheck) { if (isCheck == 0) { dfd.resolve(true); // hcLee OK good, (true, false 또는 객체로 리턴가능함) 2015 11 19 } else dfd.resolve(false, '중복된 공기구명이 존재합니다!'); // hcLee OK good, (true, false 또는 객체로 리턴가능함) 2015 11 19 }); return dfd.promise(); }, beforeUpdateDataViewModel: function () { var isDuplicated = false; for (var i = 0; i < EquipCodeInfo().length; i++) { if (viewModel.dataModel.Name() == EquipCodeInfo()[i].Name() && RowName() != EquipCodeInfo()[i].Name()) { isDuplicated = true; break; } } 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; } } }); return viewModel; };