cc68f3fda639efc12eb9be55f2282092a55ec250.svn-base 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. BemsWebApplication.MaterialCodeType = function(params, viewInfo) {
  2. 'use strict';
  3. var MaterialTypeInfo = ko.observableArray();
  4. var FmsMaterialCodeTypeDataSource = BemsWebApplication.db.createDataSource('FmsMaterialCodeType');
  5. var RowName;
  6. var eq = BWA.DataUtil.constructEqualFilter;
  7. var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsMaterialCodeType', {
  8. dataSourceOptions: {
  9. store: BemsWebApplication.odata.FmsMaterialCodeType,
  10. select: [
  11. 'SiteId',
  12. 'MaterialTypeId',
  13. 'Name',
  14. 'Nickname',
  15. 'IsUse'
  16. ],
  17. filter: [eq('SiteId', BWA.UserInfo.SiteId())], //**kgpark
  18. },
  19. columns: [
  20. { dataField: 'MaterialTypeId', caption: '번호', width: '20%', alignment: 'center', sortOrder: 'desc' },
  21. { dataField: 'Name', caption: $G('materialTypeName'), width: '60%', alignment: 'center' },
  22. { dataField: 'Nickname', caption: $G('materialTypeNickname'), width: '60%', alignment: 'center' },
  23. utils.datagrid.columnIsUse('20%')
  24. ],
  25. isUseSiteId: false,
  26. notDeleteInPopup: true,
  27. popupWidth: 480,
  28. NoSearchView: true, // 2019.07.25 kgpark 검색버튼 삭제
  29. // 이름 중복 방지
  30. handlePopupShowing: function () {
  31. FmsMaterialCodeTypeDataSource.filter([
  32. ["SiteId", "=", BWA.UserInfo.SiteId()]
  33. ]);
  34. FmsMaterialCodeTypeDataSource.load().done(function (result) {
  35. MaterialTypeInfo(result);
  36. });
  37. },
  38. handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
  39. dataGrid.clearSelection();
  40. var data = clickRow.data;
  41. var dataModel = viewModel.dataModel;
  42. RowName = data.Name;
  43. popupVisible(true);
  44. },
  45. beforeInsertingDataViewModel: function (dataModel, dbModelId) {
  46. var dfd = $.Deferred();
  47. var isDuplicated = false;
  48. for (var i = 0; i < MaterialTypeInfo().length; i++) {
  49. if (dataModel.Name() == MaterialTypeInfo()[i].Name() || dataModel.Nickname() == MaterialTypeInfo()[i].Nickname()) {
  50. isDuplicated = true;
  51. break;
  52. }
  53. }
  54. if (!BWA.DataUtil.isValidInputValue(dataModel.Name()) || !BWA.DataUtil.isValidInputValue(dataModel.Nickname()))
  55. return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)');
  56. else {
  57. if (isDuplicated)
  58. return dfd.resolve(false, '이미 동일 정보가 존재합니다.');
  59. else
  60. return dfd.resolve(true);
  61. }
  62. },
  63. beforeUpdateDataViewModel: function () {
  64. var isDuplicated = false;
  65. console.log(RowName());
  66. for (var i = 0; i < MaterialTypeInfo().length; i++) {
  67. if (MaterialTypeInfo()[i].Name() != RowName() && (viewModel.dataModel.Name() == MaterialTypeInfo()[i].Name() || viewModel.dataModel.Nickname() == MaterialTypeInfo()[i].Nickname())) {
  68. isDuplicated = true;
  69. break;
  70. }
  71. }
  72. if (!BWA.DataUtil.isValidInputValue(viewModel.dataModel.Name()) || !BWA.DataUtil.isValidInputValue(viewModel.dataModel.Nickname())) {
  73. utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');
  74. return 0;
  75. }
  76. else {
  77. if (isDuplicated) {
  78. utils.toast.show('이미 동일 정보가 존재합니다.', 'error');
  79. return 0;
  80. }
  81. else
  82. return 2;
  83. }
  84. }
  85. });
  86. return viewModel;
  87. };