| 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;};
 |