f3eb61e8d220af9373595d05dd1e4d2e834b868c.svn-base 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. $(function() {
  2. BemsWebApplication.Factory.WorkOrderPopup = {
  3. create: function(viewModel, targetFacilities, workOrderDataModel, popupVisible, editObservable, dataGridOptions) {
  4. var tabIndex = ko.observable(0);
  5. viewModel.tabsOptionsInWorkOrderPopup = {
  6. dataSource: [
  7. { text: '작업지시' },
  8. { text: '대상시설' }
  9. ],
  10. selectedIndex: tabIndex
  11. };
  12. var id = 'gridFacilityContainerInWorkOrder';
  13. targetFacilities.subscribe(function(value) {
  14. //$( '#gridFacilityContainerInWorkRequest' ).dxDataGrid( 'instance' ).refresh();
  15. });
  16. viewModel.multiViewOptionsInWorkOrderPopup = {
  17. dataSource: [
  18. {
  19. viewModel: viewModel,
  20. dataModel: workOrderDataModel,
  21. template: 'workOrder'
  22. },
  23. {
  24. viewModel: viewModel,
  25. dataGridOptions: $.extend({
  26. selection: { mode: 'multiple', allowSelectAll: true }
  27. }, dataGridOptions),
  28. template: 'targetFacility'
  29. }
  30. ],
  31. swipeEnabled: true,
  32. selectedIndex: tabIndex,
  33. height: '600px'
  34. };
  35. viewModel.handleButtonAddFacility = function() {
  36. viewModel.facilitySearchPopup.show();
  37. }
  38. viewModel.handleButtonRemoveFacility = function() {
  39. var selectedRows = utils.datagrid.getSelectedRowsData(id);
  40. selectedRows.forEach(function(row) {
  41. targetFacilities.remove(row);
  42. //var index = targetFacilities.indexOf( row );
  43. //if( index >= 0 ) {
  44. // targetFacilities.remove( index );
  45. //}
  46. });
  47. }
  48. viewModel.toolbarItemsInWorkOrderPopup = [
  49. { location: 'before', text: $G('workOrder') },
  50. { location: 'after', widget: 'button', options: { text: $G('setup'), icon: 'save', clickAction: handleWorkOrderPopupButtonSave } },
  51. { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: function() { popupVisible(false); } } }
  52. ];
  53. viewModel.popupOptionsInWorkOrder = {
  54. width: '680px',
  55. height: 'auto',
  56. visible: popupVisible,
  57. closeOnOutsideClick: false,
  58. animation: utils.popup.createAnimation()
  59. };
  60. var selectedFacilityData = ko.observableArray();
  61. selectedFacilityData.subscribe(function(facilities) {
  62. facilities.forEach(function(f) {
  63. if (targetFacilities().some(function(x) {
  64. return f.FacilityCode() === x.FacilityCode();
  65. }) === false) {
  66. targetFacilities.push(f);
  67. }
  68. });
  69. });
  70. viewModel.facilitySearchPopup = BWA.Popup.Facility.create(viewModel, selectedFacilityData, {
  71. isMultipleSelect: true,
  72. });
  73. function handleWorkOrderPopupButtonSave() {
  74. var $$ = BemsWebApplication;
  75. var deferred = new $.Deferred();
  76. if (editObservable()) {
  77. var keys = $$.db.extractKeysObject('FmsWorkOrder', workOrderDataModel);
  78. $$.db.FmsWorkOrder.update(keys, workOrderDataModel.toJS()).done(function() {
  79. popupVisible(false);
  80. deferred.resolve(keys);
  81. });
  82. }
  83. else {
  84. workOrderDataModel.SiteId(BWA.UserInfo.SiteId());
  85. workOrderDataModel.RequestId(viewModel.dataModel.RequestId());
  86. workOrderDataModel.OrderedDate(moment().toDate());
  87. workOrderDataModel.OrderUserId(BWA.UserInfo.UserId());
  88. $$.db.FmsWorkOrder.insert(workOrderDataModel.toJS()).done(function(values, keys) {
  89. viewModel.dataModel.ProgressId($Code.WorkProgress.WorkOrder);
  90. viewModel.update(false);
  91. deferred.resolve(keys);
  92. popupVisible(false);
  93. viewModel.popupVisible(false);
  94. });
  95. }
  96. deferred.promise().done(function(keys) {
  97. console.log(keys);
  98. BemsWebApplication.api.postWithArray(
  99. 'FmsWorkOrderToFacility',
  100. targetFacilities,
  101. $.extend(keys, {
  102. FacilityCode: null,
  103. ProgressId: $Code.WorkProgress.WorkStandby
  104. }), ['ProgressId'])
  105. .done(function() {
  106. utils.toast.show($G('successDatabaseProcessMsg'));
  107. });
  108. });
  109. }
  110. }
  111. }
  112. });