123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244 |
-
- BemsWebApplication.WorkResult = function(params, viewInfo) {
- "use strict";
- var facilityFactory = BemsWebApplication.Factory.Facility;
- var workResultFactory = BemsWebApplication.Factory.WorkResult;
- var workRequestDataModel = $.extend({
- 'WorkTypeName': ko.observable(),
- 'ChargeCompanyName': ko.observable(),
- 'RequesterCompanyName': ko.observable(),
- 'BusinessFieldName': ko.observable(),
- 'FacilityName': ko.observable(),
- 'ProgressName': ko.observable(),
- }, new BemsWebApplication.FmsWorkRequestViewModel()),
- workRequestDataSource = BWA.DataUtil.createDataSource({
- dataSourceOptions: {
- store: BemsWebApplication.db.FmsWorkRequest,
- select: [
- 'SiteId', 'RequestId', 'WorkTypeId', 'BusinessFieldId', 'CheckGroupId', 'ScheduleId',
- 'ProgressId', 'RequesterDepartmentId',
- 'FacilityCode', 'ChargeCompanyId', 'RequesterUserId', 'RequesterName',
- 'RequesterCompanyId', 'RequesterPost', 'RequesterMobileNo', 'IsReceiveSms',
- 'IsSendTeamSms', 'Title', 'Content', 'RequestedDate',
- 'FmsWorkCodeType/Name', 'CmCompany/Name', 'CmCompany1/Name',
- 'CmBusinessField/Name', 'CmFacility/Name', 'FmsWorkCodeProgress/Name'
- ],
- expand: ['CmBusinessField', 'CmFacility', 'FmsWorkCodeType', 'FmsWorkCodeProgress'],
- extendOptions: {
- multipleItems: [
- { id: 'CompanyId', entries: ['CmCompany', 'CmCompany1'], fields: ['ChargeCompanyId', 'RequesterCompanyId'] }
- ],
- alterNames: {
- 'CmCompany/ChargeCompanyId/Name': 'ChargeCompanyName',
- 'CmCompany/RequesterCompanyId/Name': 'RequesterCompanyName',
- 'CmBusinessField/Name': 'BusinessFieldName',
- 'CmFacility/Name': 'FacilityName',
- 'FmsWorkCodeType/Name': 'WorkTypeName',
- 'FmsWorkCodeProgress/Name': 'ProgressName'
- }
- }
- }
- }),
- facilityDataSource = facilityFactory.getDataSourceWithRelation(BemsWebApplication.db.FmsWorkOrderToFacility, {
- select: ['ProgressId', 'FmsWorkCodeProgress/Name'],
- expand: ['FmsWorkCodeProgress']
- });
- var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true),
- workTypeDataSource = BemsWebApplication.db.createDataSource('FmsWorkCodeType', true, true),
- companyDataSource = BemsWebApplication.db.createDataSource('CmCompany', true, true),
- progressDataSource = BemsWebApplication.db.createDataSource('FmsWorkCodeProgress', true, true);
- var deferredForSearch = new $.Deferred();
- var workTypesForSearch = ko.observableArray(),
- businessFieldsForSearch = ko.observableArray(),
- companiesForSearch = ko.observableArray(),
- progressesForSearch = ko.observableArray(),
- targetFacilities = ko.observableArray();
- var timer = null,
- popupElement = null,
- workContentsPopup = null;
- //params.shownActionInPopup = function( e ) {
- // console.log( $(e.element[0]).html() );
- // $( e.element ).on( 'transitioned', function( e ) {
- // console.log( e );
- // } );
- //}
- //params.popupPosition = ko.observable( { my: 'center', at: 'center', of: window } );
- //params.popupPosition.subscribe( function( value ) {
- // console.log( value );
- //} );
- params.popupPosition = { offset: '-200 0' };
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsWorkOrder', {
- dataSourceOptions: workResultFactory.getDataSourceOptionsWithFilter(params.filter || [
- ['FmsWorkRequest/FmsWorkCodeProgress/ProgressId', '<', $Code.WorkProgress.WorkConfirm]
- ]),
- columns: workResultFactory.defaultColumns,
- promiseDataInSearchView: deferredForSearch.promise(),
- searchViewItems: [
- { id: 'FmsWorkRequest/WorkTypeId', ignoreValue: 0, defaultValue: 0, dataSource: workTypesForSearch },
- { id: 'Title' },
- { id: 'OrderedDate', type: 'dateRange', isOnlyDate: true },
- { id: 'CmUser/Name' },
- { id: 'ChargeCompanyId', ignoreValue: 0, defaultValue: 0, dataSource: companiesForSearch },
- { id: 'FmsWorkRequest/CmBusinessField/BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: businessFieldsForSearch },
- { id: 'FmsWorkRequest/ProgressId', ignoreValue: 0, defaultValue: 0, dataSource: progressesForSearch },
- ],
- handleDataGridRowClick: function(id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- dataModel.BusinessFieldName = $KoSet(dataModel.BusinessFieldName, data.BusinessFieldName);
- dataModel.ChargeCompanyName = $KoSet(dataModel.ChargeCompanyName, data.CompanyName);
- dataModel.EmergencyName = $KoSet(dataModel.EmergencyName, data.EmergencyName);
- //dataModel.WorkTypeName = $KoSet( dataModel.WorkTypeName, data.FmsWorkCodeType_Name );
- //dataModel.ChargeCompanyName = $KoSet( dataModel.ChargeCompanyName, data.CmCompany_ChargeCompanyId_Name );
- //dataModel.BusinessFieldName = $KoSet( dataModel.BusinessFieldName, data.CmBusinessField_Name );
- //dataModel.FacilityName = $KoSet( dataModel.FacilityName, data.CmFacility_Name );
- if (_.isUndefined(params.selectedData) === false) {
- params.selectedData(data);
- }
- workRequestDataSource.filter(
- ['SiteId', '=', data.SiteId()],
- 'and',
- ['RequestId', '=', data.RequestId()]
- );
- workRequestDataSource.load().done(function(result) {
- if (result.length > 0) {
- BWA.DataUtil.copyViewModel(result[0], workRequestDataModel);
- }
- facilityDataSource.filter(
- ['SiteId', '=', data.SiteId()],
- 'and',
- ['OrderId', '=', data.OrderId()]
- );
- refreshFaciliyList();
- }).always(function() {
- popupVisible(true);
- });
- },
- handleAfterLoadingModelByKey: function(data, dataViewModel) {
- },
- handleViewShowing: function(dataModel) {
- $.when(
- businessFieldDataSource.load(),
- workTypeDataSource.load(),
- companyDataSource.load(),
- progressDataSource.load())
- .done(function(businessFieldResult, workTypeResult, companyResult, progressResult) {
- businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', businessFieldResult[0]));
- workTypesForSearch($SearchView.createArrayOfSelectBox('WorkTypeId', workTypeResult[0]));
- companiesForSearch($SearchView.createArrayOfSelectBox('CompanyId', companyResult[0]));
- progressesForSearch($SearchView.createArrayOfSelectBox('ProgressId', progressResult[0]));
- deferredForSearch.resolve();
- });
- },
- handleViewShown: function() {
- },
- contentReadyActionInPopup: function(e) {
- params.mainPopupElement(e.element.offsetParent());
- },
- });
- function refreshFaciliyList() {
- var deferred = new $.Deferred();
- facilityDataSource.load().done(function(facilities) {
- targetFacilities(facilities);
- deferred.resolve(targetFacilities());
- });
- return deferred.promise();
- }
- params.mainPopupElement = ko.observable();
- viewModel.refreshFaciliyList = refreshFaciliyList;
- viewModel.toolbarItems = [
- { location: 'before', text: '작업관리' },
- { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: viewModel.handlePopupButtonClose } }
- ];
- var tabIndex = ko.observable(0);
- viewModel.tabsOptions = {
- dataSource: [
- { text: '작업요청' },
- { text: '작업지시' },
- { text: '대상시설' }
- ],
- selectedIndex: tabIndex
- };
- workContentsPopup = BemsWebApplication.Factory.WorkResultContentsPopup.create(viewModel, params);
- viewModel.multiViewOptions = {
- dataSource: [
- {
- viewModel: viewModel,
- dataModel: workRequestDataModel,
- template: 'workRequest'
- },
- {
- viewModel: viewModel,
- dataModel: viewModel.dataModel,
- template: 'workOrder'
- },
- {
- viewModel: viewModel,
- dataGridOptions: {
- dataSource: targetFacilities,
- columns: facilityFactory.getColumns([
- //{ dataField: 'ClassName', width: '40%' },
- { dataField: 'FmsFacilityCodeClass/Name', width: '10%' },
- { dataField: 'FmsFacilityCodeClass1/Name', width: '15%' },
- { dataField: 'FmsFacilityCodeClass2/Name', width: '15%' },
- { dataField: 'Name', width: '40%' },
- { dataField: 'FmsWorkCodeProgress_Name', caption: $G('workProgress'), alignment: 'center', width: '20%' }
- ]),
- cellPrepared: facilityFactory.cellPrepared,
- hoverStateEnabled: true,
- selection: { mode: 'single' },
- contentReadyAction: function(e) {
- workContentsPopup.setFacilityGridViewInstance(e.component);
- },
- rowClick: function(clickRow) {
- workContentsPopup.setSelectedFacility(clickRow.data);
- workContentsPopup.visible(false);
- workContentsPopup.visible(true);
- },
- height: 400
- },
- template: 'targetFacility'
- }
- ],
- swipeEnabled: true,
- selectedIndex: tabIndex,
- height: '520px'
- };
- viewModel.workRequestDataModel = workRequestDataModel;
- return viewModel;
- };
|