| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 | BemsWebApplication.WorkRequest = function(params, viewInfo) {    "use strict";    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),        businessFields = ko.observableArray(),        workTypes = ko.observableArray(),        companies = ko.observableArray(),        progresses = ko.observableArray();    var deferredForSearch = new $.Deferred();    var workTypesForSearch = ko.observableArray(),        companiesForSearch = ko.observableArray(),        businessFieldsForSearch = ko.observableArray(),        progressesForSearch = ko.observableArray();    var selectedFacilityData = ko.observable(),        selectedUserData = params.selectedUserData || ko.observable();    var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsWorkRequest', {        dataSourceOptions: {            select: ['SiteId', 'RequestId', 'FmsWorkCodeType/Name', 'CmBusinessField/Name', 'CmCompany/Name', 'CmCompany1/Name', 'Title', 'RequesterName', 'RequestedDate', 'FmsWorkCodeProgress/Name', 'CmFacility/Name'],            expand: ['FmsWorkCodeType', 'CmBusinessField', 'FmsWorkCodeProgress', 'CmFacility'],            extendOptions: {                multipleItems: [{ id: 'CompanyId', entries: ['CmCompany', 'CmCompany1'], fields: ['ChargeCompanyId', 'RequesterCompanyId'] }]            }        },        columns: [            { dataField: 'Number', caption: $G('number'), width: '10%', alignment: 'center' },            { dataField: 'FmsWorkCodeType_Name', caption: $G('workTypeName'), width: '15%', alignment: 'center' },            { dataField: 'CmBusinessField_Name', caption: $G('businessFieldName'), width: '12%', alignment: 'center' },            { dataField: 'Title', caption: $G('requestTitle'), width: '25%', alignment: 'center' },            { dataField: 'RequesterName', caption: $G('requesterName'), width: '13%', alignment: 'center' },            { dataField: 'RequestedDate', caption: $G('requestedDate'), width: '13%', alignment: 'center' },            { dataField: 'FmsWorkCodeProgress_Name', caption: $G('workProgressName'), width: '12%', alignment: 'center' }        ],        promiseDataInSearchView: deferredForSearch.promise(),        searchViewItems: [            { id: 'WorkTypeId', ignoreValue: 0, defaultValue: 0, dataSource: workTypesForSearch },            { id: 'RequesterName' },            { id: 'RequesterPost' },            { id: 'Title' },            { id: 'ChargeCompanyId', ignoreValue: 0, defaultValue: 0, dataSource: companiesForSearch },            { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: businessFieldsForSearch },            { id: 'ProgressId', ignoreValue: 0, defaultValue: 0, dataSource: progressesForSearch },            { id: 'RequestedDate', type: 'dateRange', isOnlyDate: true}        ],        handleDataGridRowClick: function(id, dataGrid, clickRow, popupVisible) {            dataGrid.clearSelection();            var data = clickRow.data;            var dataModel = viewModel.dataModel;            dataModel.BusinessFieldName = $KoSet(dataModel.BusinessFieldName, data.CmBusinessField_Name);            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);            popupVisible(true);        },        handleAfterLoadingModelByKey: function(data, dataViewModel) {            if (typeof viewInfo.handleAfterLoadingModelByKey === 'function') {                viewInfo.handleAfterLoadingModelByKey(data, dataViewModel);            }        },        beforeInsertingDataViewModel: function(dataModel) {            dataModel.ProgressId($Code.WorkProgress.Request);            dataModel.RequestedDate(moment().toDate());            // hcLee 2015 11 30            return true;        },        handleViewShowing: function(dataModel) {            $.when(                businessFieldDataSource.load(),                workTypeDataSource.load(),                companyDataSource.load(),                progressDataSource.load())            .done(function(businessFieldResult, workTypeResult, companyResult, progressResult) {                businessFields(businessFieldResult[0]);                workTypes(workTypeResult[0]);                companies(companyResult[0]);                progresses(progressResult[0]);                businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', businessFields()));                workTypesForSearch($SearchView.createArrayOfSelectBox('WorkTypeId', workTypes()));                companiesForSearch($SearchView.createArrayOfSelectBox('CompanyId', companies()));                progressesForSearch($SearchView.createArrayOfSelectBox('ProgressId', progresses()));                deferredForSearch.resolve();            });            dataModel.FacilityName = $KoSet(dataModel.FacilityName);            if (typeof viewInfo.handleViewShowing === 'function') {                viewInfo.handleViewShowing();            }        },        handleViewShown: function() {        }    });    viewModel.facilitySearchPopup = BWA.Popup.Facility.create(viewModel, selectedFacilityData);    viewModel.handleButtonSearchFacility = function() {        viewModel.facilitySearchPopup.show();    };    viewModel.userSearchPopup = $UserSearchPopup(viewModel, params.selectedUserData || selectedUserData);    viewModel.handleButtonSearchUser = function() {        viewModel.userSearchPopup.show();    };    selectedFacilityData.subscribe(function(value) {        viewModel.dataModel.FacilityCode(value.FacilityCode);        viewModel.dataModel.FacilityName(value.Name);    });    if (selectedUserData) {        selectedUserData.subscribe(function(value) {            viewModel.dataModel.RequesterUserId(value.UserId);            viewModel.dataModel.RequesterName(value.Name);            viewModel.dataModel.RequesterCompanyId(value.CompanyId);            viewModel.dataModel.RequesterDepartmentId(value.DepartmentId);            viewModel.dataModel.RequesterPost('{0} / {1}'.formati(value.CompanyName, value.DepartmentName));        });    }    viewModel.businessFields = businessFields;    viewModel.workTypes = workTypes;    viewModel.companies = companies;    viewModel.progresses = progresses;    var tabIndex = ko.observable(0);    //    viewModel.currentTabIndex = currentTabIndex;    viewModel.tabsOptionsInWorkRequestPopup = {        dataSource: [            { text: '작업요청' },            { text: '작업지시' },            { text: '대상시설' }        ],        selectedIndex: tabIndex,        visible: params.workOrderVisible || false    };    viewModel.multiViewOptionsInWorkRequestPopup = {        dataSource: [            {                viewModel: viewModel,                dataModel: viewModel.dataModel,                template: 'workRequest'            },            {                viewModel: viewModel,                dataModel: params.workOrderDataModel || {},                template: 'workOrder'            },            {                viewModel: viewModel,                dataGridOptions: params.facilityDataGridOptions || {},                template: 'targetFacility'            }        ],        swipeEnabled: true,        selectedIndex: tabIndex,        height: '600px'    };    viewModel.workOrderVisible = params.workOrderVisible || false;    return viewModel;};
 |