BemsWebApplication.FacilityWorkHistory = function (params, viewInfo) { "use strict"; var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true), workTypeDataSource = BemsWebApplication.db.createDataSource('FmsWorkCodeType'), progressDataSource = BemsWebApplication.db.createDataSource('FmsWorkCodeProgress'), businessFields = ko.observableArray(), workTypes = ko.observableArray(), progresses = ko.observableArray(); var isVisibleExecutionButton = ko.observable(true); var popup, workExecutionRegisterPopup = null; var deferredForSearch = new $.Deferred(); var workTypesForSearch = ko.observableArray(), businessFieldsForSearch = ko.observableArray(), progressesForSearch = ko.observableArray(); var eq = BWA.DataUtil.constructEqualFilter, and = BWA.DataUtil.andFilter, noteq = BWA.DataUtil.constructNotEqualFilter; var selectedFacilityData = ko.observable(), selectedUserData = params.selectedUserData || ko.observable(); var dataSourceOptions = { select: [ 'SiteId', 'WorkRequestId', 'CmFacility/Name', 'CmFacility/BemsFacilityType/Name', 'FmsWorkOrder/FmsWorkRequest/WorkTypeId', 'FmsWorkOrder/Title', 'FmsWorkOrder/OrderDate', 'FmsWorkOrder/StartWorkDate', 'FmsWorkOrder/FmsWorkRequest/WorkProgressId', 'FmsWorkOrder/CmUser/Name', // 작업지시자 //'CmUser1/Name', // 반려자 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType/Name', 'FmsWorkOrder/CmBusinessField/Name', 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress/Name', 'FmsWorkOrder/FmsWorkResult/CmUser/Name' ], expand: [ 'FmsWorkOrder/FmsWorkRequest', 'FmsWorkOrder/FmsWorkResult', 'FmsWorkOrder/FmsWorkResult/CmUser', 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType', 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress', 'FmsWorkOrder/CmBusinessField', 'FmsWorkOrder/CmUser', 'CmFacility', 'CmFacility/BemsFacilityType', ], //expand: ['FmsWorkCodeType', 'CmBusinessField', 'FmsWorkCodeProgress', 'CmUser', 'CmUser1'], extendOptions: { forceOriginalField: true }, // TODO : Filtering... //filter: [ // eq('SiteId', BWA.UserInfo.SiteId()), // and, // ['FmsWorkRequest/WorkProgressId', '>=', 3], // and, // ['FmsWorkRequest/WorkProgressId', '<=', 5] //] }; //'CmFacility/Name', //'CmFacility/BemsFacilityType/Name', var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsWorkOrderToFacility', { popupWidth: 1060, dataSourceOptions: dataSourceOptions, columns: [ { dataField: 'WorkRequestId', caption: $G('number'), width: '8%', alignment: 'center' }, { dataField: 'FmsWorkOrder/CmBusinessField/Name', caption: $G('businessFieldName'), width: '10%', alignment: 'center' }, { dataField: 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType/Name', caption: $G('workTypeName'), width: '10%', alignment: 'center' }, { dataField: 'FmsWorkOrder/OrderDate', caption: $G('orderedDate'), width: '12%', alignment: 'center', sortOrder: 'desc', customizeText: function (cellInfo) { return $G.date(cellInfo.value); } }, { dataField: 'CmFacility/BemsFacilityType/Name', caption: '설비유형', width: '15%', alignment: 'center' }, { dataField: 'CmFacility/Name', caption: '설비명칭', width: '20%', alignment: 'center' }, { dataField: 'FmsWorkOrder/Title', caption: '작업명', width: '35%', alignment: 'center' }, { dataField: 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress/Name', caption: $G('workProgressName'), width: '10%', alignment: 'center' }, { dataField: 'FmsWorkOrder/CmUser/Name', caption: '작업지시자', width: '15%', alignment: 'center' }, { dataField: 'FmsWorkOrder/FmsWorkResult/CmUser/Name', caption: '작업자', width: '15%', alignment: 'center' } ], promiseDataInSearchView: deferredForSearch.promise(), //searchViewItems: _.compact([ // executionPlanViewOptions ? null : { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: businessFieldsForSearch }, // executionPlanViewOptions ? null : { id: 'WorkTypeId', ignoreValue: 0, defaultValue: 0, dataSource: workTypesForSearch }, // { id: 'CmUser/Name' }, // { id: 'Title' }, // { id: 'WorkProgressId', ignoreValue: 0, defaultValue: 0, dataSource: progressesForSearch }, // { id: 'RequestDate', type: 'dateRange' } //]), handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) { dataGrid.clearSelection(); var data = clickRow.data; var dataModel = viewModel.dataModel; isVisibleExecutionButton(false); if (popup && popup.handleBeforeShowingPopupForEdit) { popup.handleBeforeShowingPopupForEdit(data, dataModel); } popupVisible(true); }, handlePopupShowing: function () { if (popup && popup.handlePopupShowing) { popup.handlePopupShowing.apply(this, arguments); } }, handleViewShowing: function (dataModel) { $.when( businessFieldDataSource.load(), workTypeDataSource.load(), progressDataSource.load() ).done(function (businessFieldResult, workTypeResult, progressResult) { businessFields(businessFieldResult[0]); workTypes(workTypeResult[0]); progresses(progressResult[0]); businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', businessFields())); workTypesForSearch($SearchView.createArrayOfSelectBox('WorkTypeId', workTypes())); progressesForSearch($SearchView.createArrayOfSelectBox('ProgressId', progresses())); deferredForSearch.resolve(); }); }, handleViewShown: function () { } }); viewModel.businessFields = businessFields; viewModel.workTypes = workTypes; popup = viewModel.popup = BWA.Popup.FacilityWorkHistory.create(viewInfo, viewModel); //workExecutionRegisterPopup = viewModel.workExecutionRegisterPopup = BWA.Popup.WorkExecutionRegister.create(viewInfo, viewModel); return viewModel; };