$(function() { BemsWebApplication.Factory.WorkOrderPopup = { create: function(viewModel, targetFacilities, workOrderDataModel, popupVisible, editObservable, dataGridOptions) { var tabIndex = ko.observable(0); viewModel.tabsOptionsInWorkOrderPopup = { dataSource: [ { text: '작업지시' }, { text: '대상시설' } ], selectedIndex: tabIndex }; var id = 'gridFacilityContainerInWorkOrder'; targetFacilities.subscribe(function(value) { //$( '#gridFacilityContainerInWorkRequest' ).dxDataGrid( 'instance' ).refresh(); }); viewModel.multiViewOptionsInWorkOrderPopup = { dataSource: [ { viewModel: viewModel, dataModel: workOrderDataModel, template: 'workOrder' }, { viewModel: viewModel, dataGridOptions: $.extend({ selection: { mode: 'multiple', allowSelectAll: true } }, dataGridOptions), template: 'targetFacility' } ], swipeEnabled: true, selectedIndex: tabIndex, height: '600px' }; viewModel.handleButtonAddFacility = function() { viewModel.facilitySearchPopup.show(); } viewModel.handleButtonRemoveFacility = function() { var selectedRows = utils.datagrid.getSelectedRowsData(id); selectedRows.forEach(function(row) { targetFacilities.remove(row); //var index = targetFacilities.indexOf( row ); //if( index >= 0 ) { // targetFacilities.remove( index ); //} }); } viewModel.toolbarItemsInWorkOrderPopup = [ { location: 'before', text: $G('workOrder') }, { location: 'after', widget: 'button', options: { text: $G('setup'), icon: 'save', clickAction: handleWorkOrderPopupButtonSave } }, { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: function() { popupVisible(false); } } } ]; viewModel.popupOptionsInWorkOrder = { width: '680px', height: 'auto', visible: popupVisible, closeOnOutsideClick: false, animation: utils.popup.createAnimation() }; var selectedFacilityData = ko.observableArray(); selectedFacilityData.subscribe(function(facilities) { facilities.forEach(function(f) { if (targetFacilities().some(function(x) { return f.FacilityCode() === x.FacilityCode(); }) === false) { targetFacilities.push(f); } }); }); viewModel.facilitySearchPopup = BWA.Popup.Facility.create(viewModel, selectedFacilityData, { isMultipleSelect: true, }); function handleWorkOrderPopupButtonSave() { var $$ = BemsWebApplication; var deferred = new $.Deferred(); if (editObservable()) { var keys = $$.db.extractKeysObject('FmsWorkOrder', workOrderDataModel); $$.db.FmsWorkOrder.update(keys, workOrderDataModel.toJS()).done(function() { popupVisible(false); deferred.resolve(keys); }); } else { workOrderDataModel.SiteId(BWA.UserInfo.SiteId()); workOrderDataModel.RequestId(viewModel.dataModel.RequestId()); workOrderDataModel.OrderedDate(moment().toDate()); workOrderDataModel.OrderUserId(BWA.UserInfo.UserId()); $$.db.FmsWorkOrder.insert(workOrderDataModel.toJS()).done(function(values, keys) { viewModel.dataModel.ProgressId($Code.WorkProgress.WorkOrder); viewModel.update(false); deferred.resolve(keys); popupVisible(false); viewModel.popupVisible(false); }); } deferred.promise().done(function(keys) { console.log(keys); BemsWebApplication.api.postWithArray( 'FmsWorkOrderToFacility', targetFacilities, $.extend(keys, { FacilityCode: null, ProgressId: $Code.WorkProgress.WorkStandby }), ['ProgressId']) .done(function() { utils.toast.show($G('successDatabaseProcessMsg')); }); }); } } } });