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