455f5fa1968d473ab4f3126f4e635d276c9075cb.svn-base 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. BemsWebApplication.EquipCodeType = function (params, viewInfo) {
  2. "use strict";
  3. var EquipCodeInfo = ko.observableArray();
  4. var FmsEquipmentCodeTypeDataSource = BemsWebApplication.db.createDataSource('FmsEquipmentCodeType');
  5. var RowName;
  6. var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsEquipmentCodeType', {
  7. columns: [
  8. { dataField: 'EquipmentTypeId', caption: $G('number'), width: '20%', alignment: 'center', sortOrder: 'desc' },
  9. { dataField: 'Name', caption: '공기구분류', width: '40%', alignment: 'center' },
  10. { dataField: 'Description', caption: '설명', width: '40%', alignment: 'center' },
  11. ],
  12. popupWidth: 480,
  13. searchViewItems: [{ id: 'Name' }],
  14. handleViewShown: function () {
  15. },
  16. NoSearchView: true, // 2019.07.25 kgpark 검색버튼 삭제
  17. handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
  18. var data = clickRow.data;
  19. RowName = data.Name;
  20. popupVisible(true);
  21. },
  22. // 이름 중복 방지
  23. handlePopupShowing: function () {
  24. FmsEquipmentCodeTypeDataSource.filter([
  25. ["SiteId", "=", BWA.UserInfo.SiteId()]
  26. ]);
  27. FmsEquipmentCodeTypeDataSource.load().done(function (result) {
  28. EquipCodeInfo(result);
  29. });
  30. },
  31. beforeInsertingDataViewModel: function (dataModel, dbModelId) {
  32. var dfd = $.Deferred();
  33. if (!BWA.DataUtil.isValidInputValue(dataModel.Name()))
  34. return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)');
  35. $.when(BWA.api.post('BemsMonitoringPoint/CheckSameEquipCodeType', dataModel.toJS()))
  36. .done(function (isCheck) {
  37. if (isCheck == 0) {
  38. dfd.resolve(true); // hcLee OK good, (true, false 또는 객체로 리턴가능함) 2015 11 19
  39. }
  40. else dfd.resolve(false, '중복된 공기구명이 존재합니다!'); // hcLee OK good, (true, false 또는 객체로 리턴가능함) 2015 11 19
  41. });
  42. return dfd.promise();
  43. },
  44. beforeUpdateDataViewModel: function () {
  45. var isDuplicated = false;
  46. for (var i = 0; i < EquipCodeInfo().length; i++) {
  47. if (viewModel.dataModel.Name() == EquipCodeInfo()[i].Name() && RowName() != EquipCodeInfo()[i].Name()) {
  48. isDuplicated = true;
  49. break;
  50. }
  51. }
  52. if (!BWA.DataUtil.isValidInputValue(viewModel.dataModel.Name())) {
  53. utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');
  54. return 0;
  55. }
  56. else {
  57. if (isDuplicated) {
  58. utils.toast.show('이미 동일 정보가 존재합니다.', 'error');
  59. return 0;
  60. }
  61. else
  62. return 2;
  63. }
  64. }
  65. });
  66. return viewModel;
  67. };