c69591d4201dd56875be9fc0c997abc25a45b5cc.svn-base 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. $(function () {
  2. 'use strict';
  3. BWA.Popup.PurchaseRequestSearch = BWA.Popup.PurchaseRequestSearch || {};
  4. BWA.Popup.PurchaseRequestSearch.create = function (viewModel, options) {
  5. options = options || {};
  6. options.datagridId = options.datagridId || 'purchaseRequestDataGridForSearch';
  7. var onSelectedPurchaseRequest = options.onSelectedPurchaseRequest;
  8. var dataViewModel = new BemsWebApplication.FmsMaterialPurchaseRequestViewModel(),
  9. initialized = false,
  10. gridView,
  11. popupVisible = ko.observable(false),
  12. purchaseRequestFactory = BemsWebApplication.Factory.PurchaseRequest,
  13. dataSource = BWA.DataUtil.createDataSource({
  14. dataSourceOptions: purchaseRequestFactory.getDataSourceForDataGrid()
  15. }, 'FmsMaterialPurchaseRequest');
  16. dataSource.filter(options.filter);
  17. var dataGridOptions = utils.datagrid.defaultOptions({
  18. dxDataSource: dataSource,
  19. selectedSourceItem: dataViewModel,
  20. datagridId: options.datagridId,
  21. dbId: 'FmsPurchaseRequest',
  22. handleDataGridRowClick: function () {
  23. },
  24. columns: purchaseRequestFactory.getColumns([
  25. { dataField: 'PurchaseRequestId', width: '15%' },
  26. { dataField: 'RequestDate', width: '20%' },
  27. { dataField: 'Title', width: '60%' },
  28. { dataField: 'CmUser/Name', width: '15%' }
  29. ]),
  30. wordWrapEnabled: true
  31. });
  32. dataGridOptions.handleDataGridRowClick = function (id, dataGrid, clickRow) {
  33. var data = clickRow.data;
  34. if (!_.isUndefined(onSelectedPurchaseRequest)) {
  35. onSelectedPurchaseRequest({
  36. SiteId: data.SiteId(),
  37. BusinessFieldId: data.BusinessFieldId(),
  38. PurchaseRequestId: data.PurchaseRequestId(),
  39. Title: data.Title(),
  40. Reason: data.Reason(),
  41. });
  42. }
  43. popupVisible(false);
  44. };
  45. function handlePopupShown() {
  46. $("#purchaseRequestDataGridForSearch").dxDataGrid({
  47. paging: {
  48. pageSize: 14,
  49. enabled: true
  50. },
  51. pager: {
  52. allowedPageSizes: false,
  53. visible: true
  54. }
  55. });
  56. if (initialized === false) {
  57. gridView = $('#purchaseRequestDataGridForSearch').dxDataGrid('instance');
  58. initialized = true;
  59. }
  60. gridView.refresh();
  61. // refreshList();
  62. searchView.show();
  63. }
  64. function handlePopupButtonClose() {
  65. popupVisible(false);
  66. }
  67. var toolbarItems = [
  68. { location: 'before', text: '구매요청 선택' },
  69. { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handlePopupButtonClose } }
  70. ];
  71. var popupOptions = {
  72. width: '680px',
  73. height: '580px',
  74. visible: popupVisible,
  75. closeOnOutsideClick: true,
  76. //showingAction: handlePopupShowing,
  77. shownAction: handlePopupShown,
  78. animation: window.utils.popup.createAnimation()
  79. };
  80. var searchView = BWA.Popup.SearchView.create({
  81. parentPopupId: 'popupSearchPurchaseRequest',
  82. parentPopupVisible: popupVisible,
  83. searchItems: [
  84. { id: 'RequestDate', type: 'dateRange', isOnlyDate: true },
  85. { id: 'Title' },
  86. { id: 'CmUser/Name' },
  87. //{ id: 'FmsMaterial/Name', filterFormatString: 'FmsMaterialPurchaseRequestMaterial/any(c: substringof(\'{0}\', c/FmsMaterial/Name))', type: 'formatting' },
  88. ],
  89. handleInitializeUpdate: function () {
  90. },
  91. handleSearch: function (filter, searchItems) {
  92. var eq = BWA.DataUtil.constructEqualFilter;
  93. var and = BWA.DataUtil.andFilter;
  94. filter = [
  95. eq('SiteId', BWA.UserInfo.SiteId()),
  96. and,
  97. eq('ProgressId', $Code.PurchaseProgress.PURCHASE_REQUEST_APPROVAL)
  98. ].concat(filter);
  99. gridView.filter(filter);
  100. }
  101. });
  102. return {
  103. dataModel: dataViewModel,
  104. dataSource: dataSource,
  105. popupOptions: popupOptions,
  106. toolbarItems: toolbarItems,
  107. dataGridOptions: dataGridOptions,
  108. searchView: searchView,
  109. show: function () {
  110. popupVisible(true);
  111. }
  112. };
  113. };
  114. });