dce127e455f65612b2d3a0d498ea8962bfe1362d.svn-base 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. BemsWebApplication.Department = function( params , viewInfo ) {
  2. "use strict";
  3. var companyDataSource = BemsWebApplication.db.createDataSource( 'CmCompany', true );
  4. var companies = ko.observableArray();
  5. var CmDepartmentDataSource = BemsWebApplication.db.createDataSource('CmDepartment');
  6. var DepartmentInfo = ko.observableArray();
  7. var RowName, RowCompanyId;
  8. var viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'CmDepartment', {
  9. dataSourceOptions: {
  10. select: [ 'SiteId' , 'CompanyId' , 'DepartmentId' , 'Name' , 'Name', 'PhoneNo', 'IsUse' , 'CmCompany/Name' ],
  11. expand: ["CmCompany"],
  12. extendOptions: {
  13. forceOriginalField: true
  14. }
  15. },
  16. columns: [
  17. { dataField: 'DepartmentId', caption: $G('number'), width: '10%', alignment: 'center' ,sortOrder: 'desc'},
  18. { dataField: 'CmCompany/Name', caption: $G( 'companyName' ), width: '15%', alignment: 'center' },
  19. { dataField: 'Name', caption: $G( 'departmentName' ), width: '35%', alignment: 'center' },
  20. { dataField: 'PhoneNo', caption: $G( 'departmentPhoneNo' ), width: '15%', alignment: 'center' },
  21. utils.datagrid.columnIsUse( '10%' )
  22. ],
  23. searchViewItems: [ { id: 'CmCompany/Name' }, { id: 'Name' } ],
  24. popupWidth: 480,
  25. handleDataGridRowClick: function( id, dataGrid, clickRow, popupVisible ) {
  26. dataGrid.clearSelection();
  27. var data = clickRow.data;
  28. var dataModel = viewModel.dataModel;
  29. dataModel.CompanyName = $KoSet(dataModel.CompanyName, data.CmCompany_Name);
  30. RowName = data.Name;
  31. RowCompanyId = data.CompanyId;
  32. popupVisible( true );
  33. },
  34. // 이름 중복 방지
  35. handlePopupShowing: function (that) {
  36. companyDataSource.filter([
  37. ["SiteId", "=", BWA.UserInfo.SiteId()]
  38. ]);
  39. companyDataSource.load().done(function (result) {
  40. companies(result);
  41. });
  42. CmDepartmentDataSource.filter([
  43. ["SiteId", "=", BWA.UserInfo.SiteId()]
  44. ]);
  45. CmDepartmentDataSource.load().done(function (result) {
  46. DepartmentInfo(result);
  47. });
  48. },
  49. beforeInsertingDataViewModel: function (dataModel, dbModelId) {
  50. var dfd = $.Deferred();
  51. var isDuplicated = false;
  52. for (var i = 0; i < DepartmentInfo().length; i++) {
  53. if (dataModel.Name() == DepartmentInfo()[i].Name() && dataModel.CompanyId() == DepartmentInfo()[i].CompanyId()) {
  54. isDuplicated = true;
  55. }
  56. }
  57. if (!BWA.DataUtil.isValidInputValue(dataModel.Name()) || !BWA.DataUtil.isValidInputValue(dataModel.CompanyId()))
  58. return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)');
  59. else {
  60. if (isDuplicated)
  61. return dfd.resolve(false, '이미 동일 정보가 존재합니다 (회사 명칭, 부서 명칭 확인 필요)');
  62. else
  63. return dfd.resolve(true);
  64. }
  65. },
  66. beforeUpdateDataViewModel: function () {
  67. var isDuplicated = false;
  68. for (var i = 0; i < DepartmentInfo().length; i++) {
  69. if (viewModel.dataModel.Name() == DepartmentInfo()[i].Name() && viewModel.dataModel.CompanyId() == DepartmentInfo()[i].CompanyId()
  70. && (RowName() != DepartmentInfo()[i].Name() || RowCompanyId() != DepartmentInfo()[i].CompanyId())) {
  71. isDuplicated = true;
  72. }
  73. }
  74. if (!BWA.DataUtil.isValidInputValue(viewModel.dataModel.Name())) {
  75. utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');
  76. return 0;
  77. }
  78. else {
  79. if (isDuplicated) {
  80. utils.toast.show('이미 동일 정보가 존재합니다 (회사 명칭, 부서 명칭 확인 필요)', 'error');
  81. return 0;
  82. }
  83. else
  84. return 2;
  85. }
  86. }
  87. });
  88. var handleSelectBoxCompany = function( e ) {
  89. viewModel.dataModel.CompanyId(e.value);
  90. };
  91. viewModel.companyDataSource = companies;
  92. viewModel.handleSelectBoxCompany = handleSelectBoxCompany;
  93. return viewModel;
  94. };