| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 | 
							- BemsWebApplication.FacilityWorkHistory2 = function (params, viewInfo) {
 
-     "use strict";
 
-     var useBusinessFiltering = BWA.UserInfo.isDependBusinessField(viewInfo.viewName);
 
-     var facilityClassDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass');
 
-     var facilityClassDataSource2 = BemsWebApplication.db.createDataSource('FmsFacilityCodeClass');
 
-     var buildingDataSource = BemsWebApplication.db.createDataSource('CmBuilding', true),
 
-         floorDataSource = BemsWebApplication.db.createDataSource('CmFloor');
 
-     var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true),
 
-         workTypeDataSource = BemsWebApplication.db.createDataSource('FmsWorkCodeType'),
 
-         progressDataSource = BemsWebApplication.db.createDataSource('FmsWorkCodeProgress'),
 
-         searchBuildingId = ko.observable(),
 
-         searchBuildings = ko.observableArray(),
 
-         searchFloorId = ko.observable(),
 
-         businessFields = ko.observableArray(),
 
-         workTypes = ko.observableArray(),
 
-         progresses = ko.observableArray(), //CmFacility
 
-         facilityClass = ko.observableArray(),
 
-         searchFloors = ko.observableArray(),
 
-         floors = ko.observableArray(),
 
-         buildings = ko.observableArray();
 
-     var facilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()];
 
-     var defaultSearchBuildingArray = $SearchView.createDefaultArray('BuildingId'),
 
-         defaultSearchFloorArray = $SearchView.createDefaultArray('FloorId');
 
-     var isVisibleExecutionButton = ko.observable(true);
 
-     var handleBuildingInSearchView = function (e) {
 
-         if (e.value === 0) {
 
-             searchFloors(defaultSearchFloorArray.slice(0));
 
-             searchFloorId(0);
 
-             return 0;
 
-         }
 
-         BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', e.value, searchFloors, defaultSearchFloorArray);
 
-     }
 
-     var FmsMaterialExdataSource = new DevExpress.data.DataSource({
 
-         store: BemsWebApplication.odata.FmsMaterialEx,
 
-         requireTotalCount: true,
 
-         pageSize: 100
 
-     });
 
-     var isWorkDone = ko.observable(false);
 
-     var isWorkHold = ko.observable(false);
 
-     var searchFacilityClasses = [ko.observableArray(), ko.observableArray(), ko.observableArray()],
 
-      searchFacilityClassValues = [ko.observable(), ko.observable(), ko.observable()];
 
-     var isAddHistoryButton = ko.observable(false);
 
-     var defaultSearchClassArray = $SearchView.createDefaultArray('FacilityClassId');
 
-     var imagefileUrl1 = ko.observable(), imagefileUrl2 = ko.observable();
 
-     var popup, addWorkResultCheckItemPopup = null, workExecutionRegisterPopup = null;
 
-     var deferredForSearch = new $.Deferred();
 
-     var workTypesForSearch = ko.observableArray(),
 
-         facilityClassForSearch = 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',
 
-             'FacilityCode',
 
-             'CmFacility/FirstClassId',
 
-             'CmFacility/SecondClassId',
 
-             'CmFacility/ThirdClassId',
 
-             'CmFacility/Name',
 
-             'CmFacility/BuildingId',
 
-             'CmFacility/FloorId',
 
-             'CmFacility/BemsFacilityType/Name',
 
-             'FmsWorkOrder/FmsWorkRequest/WorkTypeId',
 
-             'FmsWorkOrder/FmsWorkRequest/BusinessFieldId',
 
-             'FmsWorkOrder/Title',
 
-             'FmsWorkOrder/OrderDate',
 
-             'FmsWorkOrder/StartWorkDate',
 
-             'FmsWorkOrder/FmsWorkResult/StartDate',
 
-             'FmsWorkOrder/FmsWorkResult/EndDate',
 
-             'FmsWorkOrder/FmsWorkResult/ConfirmedUserId',
 
-             'FmsWorkOrder/FmsWorkResult/ConfirmedDate',
 
-             'FmsWorkOrder/FmsWorkRequest/WorkProgressId',
 
-             'FmsWorkOrder/FmsWorkRequest/StartWorkDate',
 
-             'FmsWorkOrder/FmsWorkRequest/CmBusinessField/Name',
 
-             'FmsWorkOrder/CmUser/Name', // 작업지시자
 
-             //'CmUser1/Name', // 반려자
 
-             'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType/Name',
 
-             'FmsWorkOrder/CmBusinessField/Name',
 
-             'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress/Name',
 
-             'FmsWorkOrder/FmsWorkResult/CmUser/Name', // 작업자
 
-             'FmsWorkOrder/FmsWorkResult/CmUser1/Name', // 승인자
 
-             'FmsWorkOrder/Content', // 2016 05 30 추가
 
-         ],
 
-         expand: [
 
-             'CmFacility/BuildingId',
 
-             'CmFacility/FloorId',
 
-             'FmsWorkOrder/FmsWorkRequest',
 
-             'FmsWorkOrder/FmsWorkResult',
 
-             'FmsWorkOrder/FmsWorkResult/CmUser',
 
-             'FmsWorkOrder/FmsWorkResult/CmUser1',
 
-             'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType',
 
-             'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeProgress',
 
-             'FmsWorkOrder/FmsWorkRequest/CmBusinessField',
 
-             'FmsWorkOrder/CmBusinessField',
 
-             'FmsWorkOrder/CmUser',
 
-             'CmFacility',
 
-             'CmFacility/BemsFacilityType',
 
-         ],
 
-         extendOptions: {
 
-             forceOriginalField: true
 
-         }
 
-     };
 
-     if (!useBusinessFiltering) {
 
-         dataSourceOptions.filter = [
 
-             eq('SiteId', BWA.UserInfo.SiteId()),
 
-             and,
 
-             ['FmsWorkOrder/FmsWorkRequest/WorkProgressId', '=', 6]
 
-         ];
 
-     }
 
-     else {
 
-         dataSourceOptions.filter = [
 
-             eq('SiteId', BWA.UserInfo.SiteId()),
 
-             and,
 
-             ['FmsWorkOrder/FmsWorkRequest/WorkProgressId', '=', 6],
 
-             and,
 
-             [eq('FmsWorkOrder/FmsWorkRequest/BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('FmsWorkOrder/FmsWorkRequest/BusinessFieldId', 1)]];
 
-     }
 
-     var searchFirstClassId = false, searchSecondClassId = false, searchThirdClassId = false;
 
-     var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsWorkOrderToFacility', {
 
-         popupWidth: 1060,
 
-         //번호/설비유형/설비명/작업구분/작업명/작업시작일/작업완료일/작업자/승인자"로
 
-         dataSourceOptions: dataSourceOptions,
 
-         columns: [
 
-             { dataField: 'WorkRequestId', caption: $G('number'), width: '5%', alignment: 'center' },
 
-             { dataField: 'FmsWorkOrder/FmsWorkRequest/FmsWorkCodeType/Name', caption: $G('workTypeName'), width: '7%', alignment: 'center' },
 
-             {
 
-                 dataField: 'FmsWorkOrder/FmsWorkResult/StartDate', caption: '시작일', width: '9%', alignment: 'center',
 
-                 customizeText: function (cellInfo) { return $G.date(cellInfo.value); }
 
-             },
 
-             {
 
-                 dataField: 'FmsWorkOrder/FmsWorkResult/EndDate', caption: '종료일', width: '9%', alignment: 'center', sortOrder: 'desc',
 
-                 customizeText: function (cellInfo) { return $G.date(cellInfo.value); }
 
-             },
 
-             {
 
-                 dataField: 'CmFacility/FirstClassId', caption: '대분류', width: '14%', alignment: 'center',
 
-                 customizeText: function (cellInfo) {
 
-                     for (var i = 1; i < facilityClassForSearch().length; i++) {
 
-                         if (facilityClassForSearch()[i].FacilityClassId() == cellInfo.value) {
 
-                             return facilityClassForSearch()[i].Name();
 
-                         }
 
-                     }
 
-                 }
 
-             },
 
-             {
 
-                 dataField: 'CmFacility/SecondClassId', caption: '중분류', width: '14%', alignment: 'center', customizeText: function (cellInfo) {
 
-                     for (var i = 1; i < facilityClassForSearch().length; i++) {
 
-                         if (facilityClassForSearch()[i].FacilityClassId() == cellInfo.value) {
 
-                             return facilityClassForSearch()[i].Name();
 
-                         }
 
-                     }
 
-                 }
 
-             },
 
-             {
 
-                 dataField: 'CmFacility/ThirdClassId', caption: '소분류', width: '14%', alignment: 'center', customizeText: function (cellInfo) {
 
-                     for (var i = 1; i < facilityClassForSearch().length; i++) {
 
-                         if (facilityClassForSearch()[i].FacilityClassId() == cellInfo.value) {
 
-                             return facilityClassForSearch()[i].Name();
 
-                         }
 
-                     }
 
-                 }
 
-             },
 
-             { dataField: 'CmFacility/BemsFacilityType/Name', caption: '설비유형', width: '14%', alignment: 'center', visible: false },
 
-             { dataField: 'CmFacility/Name', caption: '설비명칭', width: '20%', alignment: 'center' },
 
-             { dataField: 'FmsWorkOrder/Title', caption: '작업명', width: '38%', alignment: 'center' },
 
-             { dataField: 'FmsWorkOrder/FmsWorkResult/CmUser/Name', caption: '작업자', width: '10%', alignment: 'center', visible: false },
 
-             { dataField: 'FmsWorkOrder/FmsWorkResult/CmUser1/Name', caption: '승인자', width: '10%', alignment: 'center', visible: false }
 
-         ],
 
-         searchViewItems: [
 
-             { id: 'FmsWorkOrder/FmsWorkRequest/BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: businessFieldsForSearch },
 
-             // 2016 03 09 이처럼 id가 CmFacility/FirstClassId 같이 관계키인 경우 이벤트가 연결되지 않는다. handleFirstClassChangedValueInSearchView를 직접연결한다.
 
-             { id: 'CmFacility/FirstClassId', ignoreValue: 0, defaultValue: 0, value: searchFacilityClassValues[0], dataSource: searchFacilityClasses[0], handleChangedValue: handleFirstClassChangedValueInSearchView },
 
-             { id: 'CmFacility/SecondClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'CmFacility/FirstClassId', value: searchFacilityClassValues[1], dataSource: searchFacilityClasses[1], handleChangedValue: handleSecondClassChangedValueInSearchView },
 
-             { id: 'CmFacility/ThirdClassId', ignoreValue: 0, defaultValue: 0, withCheckId: 'CmFacility/FirstClassId', value: searchFacilityClassValues[2], dataSource: searchFacilityClasses[2] },
 
-             { id: 'CmFacility/Name' },
 
-             { id: 'FmsWorkOrder/Title' },
 
-             { id: 'FmsWorkOrder/FmsWorkRequest/WorkProgressId' },
 
-             { id: 'CmFacility/BuildingId', ignoreValue: 0, defaultValue: 0, value: searchBuildingId, dataSource: searchBuildings, handleChangedValue: handleBuildingInSearchView },
 
-             { id: 'CmFacility/FloorId', ignoreValue: 0, defaultValue: 0, withCheckId: 'CmFacility/BuildingId', value: searchFloorId, dataSource: searchFloors },
 
-             { id: 'FmsWorkOrder/FmsWorkResult/StartDate', type: 'dateRange', isOnlyDate: true },
 
-             //{ id: 'FmsWorkOrder/FmsWorkResult/EndDate', type: 'dateRange' },
 
-             { id: 'FmsWorkOrder/FmsWorkResult/EndDate', type: 'dateRange', isOnlyDate: true },
 
-             { id: 'FmsWorkOrder/FmsWorkResult/CmUser/Name' },
 
-             { id: 'FmsWorkOrder/FmsWorkResult/CmUser1/Name' },
 
-             { id: 'FmsWorkOrder/FmsWorkRequest/WorkTypeId', ignoreValue: 0, defaultValue: 0, dataSource: workTypesForSearch },
 
-         ],
 
-         promiseDataInSearchView: deferredForSearch.promise(),
 
-         handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
 
-             dataGrid.clearSelection();
 
-             var data = clickRow.data;
 
-             var dataModel = viewModel.dataModel;
 
-             if (data['FmsWorkOrder/FmsWorkRequest/WorkProgressId']() >= $Code.WorkProgress.WORK_COMPLETE)
 
-                 isWorkDone(true);
 
-             else
 
-                 isWorkDone(false);
 
-             if (data['FmsWorkOrder/FmsWorkRequest/WorkProgressId']() == $Code.WorkProgress.WORK_HOLD) {
 
-                 isWorkHold(true);
 
-                 isWorkDone(false);
 
-             }
 
-             else {
 
-                 isWorkHold(false);
 
-             }
 
-             isVisibleExecutionButton(false);
 
-             if (popup && popup.handleBeforeShowingPopupForEdit) {
 
-                 popup.handleBeforeShowingPopupForEdit(data, dataModel);
 
-             }
 
-             popupVisible(true);
 
-         },
 
-         handlePopupShowing: function () {
 
-             viewModel.visibleEditButton(false);
 
-             viewModel.visibleDeleteButton(false);
 
-             if (popup && popup.handlePopupShowing) {
 
-                 popup.handlePopupShowing.apply(this, arguments);
 
-             }
 
-         },
 
-         handlePopupShown: function (editMode, isNewInPopup, dataModel) {
 
-             if (popup && popup.handlePopupShown) {
 
-                 popup.handlePopupShown.apply(this, arguments);
 
-             }
 
-         },
 
-         handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {
 
-             //if (isNewInPopup() == false) {
 
-             //    BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', dataViewModel.FirstClassId(), facilityClasses[1]).done(function () {
 
-             //        BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', dataViewModel.SecondClassId(), facilityClasses[2]);
 
-             //    });
 
-             //    BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', dataViewModel.BuildingId(), floors).done(function () {
 
-             //        BWA.DataUtil.setArrayDataSourceFilter(zoneDataSource, 'FloorId', dataViewModel.FloorId(), zones);
 
-             //    });
 
-             //}
 
-         },
 
-         handleViewShowing: function (dataModel) {
 
-             FmsMaterialExdataSource.filter([
 
-                 ["SiteId", "=", BWA.UserInfo.SiteId()]
 
-             ]);
 
-             FmsMaterialExdataSource.load().done(function (result) {
 
-                 if (result != null) {
 
-                     viewModel.dataModel.MaterialExdataSource(result);
 
-                 }
 
-             }).fail(function (error) {
 
-                 utils.toast.show(error);
 
-             });
 
-             facilityClassDataSource.filter([
 
-                     ['SiteId', '=', BWA.UserInfo.SiteId()],
 
-                     'and',
 
-                     ['ParentFacilityClassId', '=', null]
 
-             ]);
 
-             facilityClassDataSource2.filter([
 
-                     ['SiteId', '=', BWA.UserInfo.SiteId()]
 
-             ]);
 
-             if (useBusinessFiltering) {
 
-                 businessFieldDataSource.filter([
 
-                   eq('SiteId', BWA.UserInfo.SiteId()),
 
-                   and,
 
-                   [eq('BusinessFieldId', BWA.UserInfo.BusinessFieldId()), 'or', eq('BusinessFieldId', 1)]
 
-                 ]);
 
-             }
 
-             $.when(
 
-                 businessFieldDataSource.load(),
 
-                 workTypeDataSource.load(),
 
-                 progressDataSource.load(),
 
-                 facilityClassDataSource.load(),
 
-                 buildingDataSource.load(),
 
-                 facilityClassDataSource2.load()
 
-             ).done(function (businessFieldResult, workTypeResult, progressResult, facilityClassResult, result2, facilityClassResult2) {
 
-                 businessFields(businessFieldResult[0]);
 
-                 workTypes(workTypeResult[0]);
 
-                 progresses(progressResult[0]);
 
-                 facilityClass(facilityClassResult2[0]);
 
-                 facilityClassForSearch($SearchView.createArrayOfSelectBox('FacilityClassId', facilityClass()));
 
-                 businessFieldsForSearch($SearchView.createArrayOfSelectBox('BusinessFieldId', businessFields()));
 
-                 workTypesForSearch($SearchView.createArrayOfSelectBox('WorkTypeId', workTypes()));
 
-                 progressesForSearch($SearchView.createArrayOfSelectBox('ProgressId', progresses()));
 
-                 facilityClasses[0](facilityClassResult[0]);
 
-                 searchFacilityClasses[0](defaultSearchClassArray.slice(0).concat(facilityClassResult[0]));
 
-                 initializeSearchClasses();
 
-                 buildings(result2[0]);
 
-                 searchFloors(defaultSearchFloorArray.slice(0));
 
-                 searchBuildings(defaultSearchBuildingArray.slice(0).concat(result2[0]));
 
-                 deferredForSearch.resolve();
 
-                 viewModel.gridView().refresh();
 
-             });
 
-         },
 
-         handleViewShown: function () {
 
-         }
 
-     });
 
-     floorDataSource.filter('CmFacility/BuildingId', -1);
 
-     var handleFirstClassChangedValueInSearchView = function (e) {
 
-         if (e.value === 0) {
 
-             initializeSearchClasses();
 
-             return;
 
-         }
 
-         BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[1], defaultSearchClassArray);
 
-     };
 
-     var handleSecondClassChangedValueInSearchView = function (e) {
 
-         if (e.value === 0) {
 
-             initializeSearchClasses(true);
 
-             return;
 
-         }
 
-         BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, searchFacilityClasses[2], defaultSearchClassArray);
 
-     };
 
-     function initializeSearchClasses(onlyThird) {
 
-         if (onlyThird === undefined || onlyThird === false) {
 
-             searchFacilityClasses[1](defaultSearchClassArray.slice(0));
 
-             searchFacilityClassValues[1](0);
 
-         }
 
-         searchFacilityClasses[2](defaultSearchClassArray.slice(0));
 
-         searchFacilityClassValues[2](0);
 
-     }
 
-     viewModel.handleSelectBoxChangeFirstClass = function (e) {
 
-         BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[1]);
 
-         viewModel.dataModel.SecondClassId(null);
 
-         viewModel.dataModel.ThirdClassId(null);
 
-     };
 
-     viewModel.handleSelectBoxChangeSecondClass = function (e) {
 
-         BWA.DataUtil.setArrayDataSourceFilter(facilityClassDataSource, 'ParentFacilityClassId', e.value, facilityClasses[2]);
 
-         viewModel.dataModel.ThirdClassId(null);
 
-     };
 
-     addWorkResultCheckItemPopup = viewModel.addWorkResultCheckItemPopup = BWA.Popup.AddWorkResultCheckItem.create(viewInfo, viewModel);
 
-     viewModel.businessFields = businessFields;
 
-     viewModel.workTypes = workTypes;
 
-     //viewModel.handleFirstClassChangedValueInSearchView = handleFirstClassChangedValueInSearchView;
 
-     //viewModel.dataModel.ParentFacilityName = $KoSet(viewModel.dataModel.ParentFacilityName, '');
 
-     viewModel.searchFacilityClasses = searchFacilityClasses;
 
-     // 2016 03 09 이처럼 id가 CmFacility/FirstClassId 같이 관계키인 경우 이벤트가 연결되지 않는다. handleFirstClassChangedValueInSearchView를 직접연결한다. dxview도 수정했다.
 
-     viewModel.handleFirstClassChangedValueInSearchView = handleFirstClassChangedValueInSearchView;
 
-     viewModel.imagefileUrl1 = imagefileUrl1;
 
-     viewModel.imagefileUrl2 = imagefileUrl2;
 
-     viewModel.isAddHistoryButton = isAddHistoryButton;
 
-     popup = viewModel.popup = BWA.Popup.FacilityWorkHistory2.create(viewInfo, viewModel);
 
-     //workExecutionRegisterPopup = viewModel.workExecutionRegisterPopup = BWA.Popup.WorkExecutionRegister.create(viewInfo, viewModel);
 
-     viewModel.isWorkDone = isWorkDone;
 
-     viewModel.isWorkHold = isWorkHold;
 
-     viewModel.buildings = buildings;
 
-     viewModel.floors = floors;
 
-     viewModel.facilityClasses = facilityClasses;
 
-     viewModel.dataModel.MaterialExdataSource = ko.observable();
 
-     viewModel.handleSecondClassChangedValueInSearchView = handleSecondClassChangedValueInSearchView;
 
-     return viewModel;
 
- };
 
 
  |