123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343 |
- BemsWebApplication.PatrolHistory = function (params, viewInfo) {
- "use strict";
- var patrolgroupDataSource = BemsWebApplication.db.createDataSource('CmPatrolGroup', true),
- patrolcourseDataSource = BemsWebApplication.db.createDataSource('CmPatrolCourse', true);
- //var possInView = ko.observableArray();
- var patrolgroups = ko.observableArray(),
- patrolcourses = ko.observableArray();
- var patrolgroupsForSearch = ko.observableArray(),
- patrolcoursesForSearch = ko.observableArray(),
- patrolgroupIdForSerach = ko.observable(),
- patrolcourseIdForSerach = ko.observable(),
- defaultSearchPatrolGroupArray = $SearchView.createDefaultArray('PatrolGroupId'),
- defaultSearchPatrolCourseArray = $SearchView.createDefaultArray('PatrolCourseId');
- var deferredForSearch = new $.Deferred();
- /*
- function handleBuildingInSearchView(e) {
- if( e.value === 0 ) {
- floorsForSearch( getDefaultFloorForSearch() );
- }
- else {
- BWA.DataUtil.setArrayDataSourceFilter( floorDataSource, 'BuildingId', e.value, floorsForSearch, getDefaultFloorForSearch() );
- }
- floorIdForSerach( 0 );
- }*/
- var PatrolCoursePosDataSource = BWA.DataUtil.createDataSource({
- dataSourceOptions: {
- select: ['SiteId', 'mId', 'PatrolHistoryId', 'PosId', 'PatrolTime', 'term', 'resultType', 'CmPatrolPos/Name', 'CmPatrolType/Name'],
- expand: ['CmPatrolPos', 'CmPatrolType', 'CmPatrolPos/CmBuilding', 'CmPatrolPos/CmFloor'],
- extendOptions: {
- forceOriginalField: true
- },
- filter: [
- ['SiteId', '=', 0] // 4
- //eq('SiteId', 0), // 초기화를 위해서 0
- // eq('SiteId', BWA.UserInfo.SiteId()),
- // and,
- // ['FmsWorkRequest/WorkProgressId', '=', $Code.WorkProgress.WORKING] // 4
- // //, and, ['FmsWorkRequest/WorkProgressId', '<=', 5]
- ]
- }
- }, 'CmPatrolHistoryPos');
- var menuDataGridOptions = utils.datagrid.defaultOptions({
- dataSource: PatrolCoursePosDataSource,
- //dataSource: possInView,
- width: '100%',
- //height: 706,
- height: 405,
- datagridId: 'gridContainer2',
- dbId: 'CmPatrolHistoryPos',
- useNumberColumn: true,
- columns: [
- { dataField: 'mId', caption: '순서', width: '12%', alignment: 'center', allowFiltering: false, sortOrder: 'asc' },
- { dataField: 'CmPatrolPos/Name', caption: '순찰지점', width: '20%', },
- {
- dataField: 'PatrolTime', caption: '순찰시각', width: '25%', alignment: 'right',
- customizeText: function (cellInfo) {
- return $G.dateTime(cellInfo.value);
- }
- },
- { dataField: 'term', caption: '이동시간(분)', width: '15%', alignment: 'left' },
- { dataField: 'CmPatrolType/Name', caption: '결과', alignment: 'center' },
- ],
- paging: {
- enabled: false,
- pageSize: 17
- },
- pager: {
- //allowedPageSizes: true,
- showPageSizeSelector: true,
- allowedPageSizes: [17, 20],
- visible: false
- },
- /*
- handleShowPopup:function(clickdata){
- },*/
- rowPrepared: function (rowElement, rowInfo) {
- if (rowInfo.rowType == 'data') {
- var dataGrid = $('#gridContainer2').dxDataGrid('instance');
- //if (dataGrid.totalCount() - 1 == rowInfo.dataIndex) {
- //}
- }
- },
- });
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmPatrolHistory', {
- rowAlternationEnabled: true,
- /*
- editing: {
- editMode: 'batch',
- editEnabled: true,
- //removeEnabled: true,
- //insertEnabled: true
- },*/
- dataSourceOptions: {
- select: ['SiteId', 'PatrolHistoryId', 'ScheduleId', 'startDate', 'endDate', 'resultTypeId', 'resultDesc', 'resultPosCnt', 'resultNormalCnt', 'resultAbnormalCnt',
- 'CmPatrolSchedule/Name', 'CmPatrolSchedule/CmPatrolPlan/Name',
- 'CmPatrolSchedule/CmPatrolPlan/CmPatrolGroup/Name', 'CmPatrolSchedule/CmPatrolPlan/CmPatrolCourse/Name', 'CmPatrolType/Name', 'CmPatrolSchedule/CmPatrolPlan/CourseId', 'CmPatrolSchedule/CmPatrolPlan/GroupId'],
- expand: ['CmPatrolSchedule', 'CmPatrolSchedule/CmPatrolPlan', 'CmPatrolSchedule/CmPatrolPlan/CmPatrolGroup',
- 'CmPatrolSchedule/CmPatrolPlan/CmPatrolCourse', 'CmPatrolType'],
- extendOptions: {
- forceOriginalField: true,
- }
- },
- columns: [
- { dataField: 'PatrolHistoryId', caption: $G('number'), width: '10%', alignment: 'center', sortOrder: 'desc' },
- { dataField: 'CmPatrolSchedule/Name', caption: '순찰일정명', width: '20%', alignment: 'center' },
- { dataField: 'CmPatrolSchedule/CmPatrolPlan/Name', caption: '순찰계획명', width: '20%', alignment: 'center' },
- { dataField: 'CmPatrolSchedule/CmPatrolPlan/CmPatrolGroup/Name', caption: '순찰조', width: '15%', alignment: 'center' },
- { dataField: 'CmPatrolSchedule/CmPatrolPlan/CmPatrolCourse/Name', caption: '순찰코스', width: '15%', alignment: 'center' },
- //{
- // dataField: 'startDate', caption: '순찰일', width: '10%', alignment: 'center',
- //customizeText: function (cellInfo) {
- // return $G.date(cellInfo.value);
- // }
- //},
- {
- dataField: 'startDate', caption: '순찰시작시간', width: '20%', alignment: 'center', dataType: "shortDate", format: "yyyy-MM-dd HH:mm:ss",
- customizeText: function (cellInfo) {
- return cellInfo.valueText;
- }
- },
- {
- dataField: 'endDate', caption: '순찰종료시간', width: '20%', alignment: 'center', dataType: "shortDate", format: "yyyy-MM-dd HH:mm:ss",
- /*
- calculateCellValue: function (data) {
- var result = $G.dateTime(data.endDate());
- if (data.resultTypeId() != 2)
- result = null;
- return result;
- },*/
- customizeText: function (cellInfo) {
- return cellInfo.valueText;
- }
- },
- { dataField: 'resultPosCnt', caption: '전체지점', width: '10%', alignment: 'center' },
- { dataField: 'resultNormalCnt', caption: '정상지점', width: '10%', alignment: 'center' },
- { dataField: 'resultAbnormalCnt', caption: '이상지점', width: '10%', alignment: 'center' },
- //{ dataField: 'CmPatrolType/Name', caption: '결과', width: '20%', alignment: 'center' },
- //{ dataField: 'resultDesc', caption: '특이사항', width: '50%', alignment: 'center' },
- ],
- paging: {
- enabled: true,
- pageSize: 18
- },
- pager: {
- },
- // 2019.04.16. 엑셀출력기능 추가 ~~~
- "export": {
- enabled: true,
- fileName: '순찰 이력',
- },
- onExporting: function (e) {
- e.component.columnOption("PatrolHistoryId", "visible", false);
- },
- onExported: function (e) {
- e.component.columnOption("PatrolHistoryId", "visible", true);
- },
- // ~~~ 2019.04.16. 엑셀출력기능 추가
- useDeleteButton: false,
- popupWidth: 720,
- promiseDataInSearchView: deferredForSearch.promise(),
- searchViewItems: _.compact([
- //{ id: 'PatrolGroupId', ignoreValue: 0, defaultValue: 0, value: patrolgroupIdForSerach, dataSource: patrolgroupsForSearch, handleChangedValue: handleBuildingInSearchView },
- { id: 'CmPatrolSchedule/CmPatrolPlan/GroupId', ignoreValue: 0, defaultValue: 0, value: patrolgroupIdForSerach, dataSource: patrolgroupsForSearch },
- { id: 'CmPatrolSchedule/CmPatrolPlan/CourseId', ignoreValue: 0, defaultValue: 0, value: patrolcourseIdForSerach, dataSource: patrolcoursesForSearch },
- { id: 'CmPatrolSchedule/CmPatrolPlan/Name' },
- { id: 'startDate', type: 'dateRange', isOnlyDate: true },
- //{ id: 'FmsWorkResult/CmUser/Name' },
- ]),
- handleViewShowing: function () {
- patrolgroupDataSource.load().done(function (pgResults) {
- patrolgroups(pgResults);
- patrolgroupsForSearch(defaultSearchPatrolGroupArray.slice(0).concat(pgResults));
- patrolgroupIdForSerach(0);
- patrolcourseDataSource.load().done(function (pgResults) {
- patrolcourses(pgResults);
- patrolcoursesForSearch(defaultSearchPatrolCourseArray.slice(0).concat(pgResults));
- patrolcourseIdForSerach(0);
- deferredForSearch.resolve();
- });
- });
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- dataGrid.clearSelection();
- viewModel.isNewInPopup(false); //
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- dataModel.PatrolGroupName = $KoSet(dataModel.PatrolGroupName, data['CmPatrolSchedule/CmPatrolPlan/CmPatrolGroup/Name']);
- dataModel.PatrolCourseName = $KoSet(dataModel.PatrolCourseName, data['CmPatrolSchedule/CmPatrolPlan/CmPatrolCourse/Name']);
- dataModel.PlanName = $KoSet(dataModel.PlanName, data['CmPatrolSchedule/CmPatrolPlan/Name']);
- dataModel.Name = $KoSet(dataModel.Name, data['CmPatrolSchedule/Name']);
- //dataModel.CourseId = $KoSet(dataModel.CourseId, data.CourseId);
- //dataModel.GroupId = $KoSet(dataModel.GroupId, data.GroupId);
- var eq = BWA.DataUtil.constructEqualFilter;
- var and = BWA.DataUtil.andFilter;
- PatrolCoursePosDataSource.filter([
- eq('SiteId', data.SiteId()),
- and,
- eq('PatrolHistoryId', data.PatrolHistoryId()),
- ]);
- PatrolCoursePosDataSource.load().done(function (poss) {
- //possInView(poss);
- //$('#gridContainer2').dxDataGrid('instance').refresh();
- //viewModel.visibleDeleteButton(false);
- popupVisible(true);
- });
- },
- handleAfterLoadingModelByKey: function (data, dataViewModel, isNewInPopup) {
- //if( isNewInPopup() == false ) {
- // BWA.DataUtil.setArrayDataSourceFilter(patrolgroupDataSource, 'GroupId', dataViewModel.GroupId(), patrolgroups);
- //BWA.DataUtil.setArrayDataSourceFilter(floorDataSource, 'BuildingId', dataViewModel.BuildingId(), floors);
- //}
- },
- viewHidden: function () {
- $SearchView.visibleObservable(false);
- visiblePopup(false);
- },
- handlePopupShowing: function (isNewInPopup, dataViewModel, selectedData) {
- //viewModel.visibleDeleteButton(false);
- /* if (isNewInPopup()) {
- dataViewModel.inDate(new Date());
- }*/
- $("#gridContainer2").dxDataGrid({
- paging: {
- pageSize: 10,
- enabled: true
- },
- pager: {
- allowedPageSizes: false,
- visible: true
- }
- });
- },
- handleBeforeDelete: function (db) {
- /* var dataViewModel = new BemsWebApplication['CmZoneTempHumiSetViewModel']();
- dataViewModel.SiteId = db.SiteId;
- dataViewModel.BuildingId = db.BuildingId;
- dataViewModel.FloorId = db.FloorId;
- dataViewModel.ZoneId = db.ZoneId;
-
- var promise = BemsWebApplication.api.post('BemsMonitoringPoint/RemoveZoneTempHumiSet', dataViewModel);
- promise.done(function () {
- ;
- });*/
- },
- /*
- beforeInsertingDataViewModel: function (dataModel, dbModelId) {
- dataModel.inDate(new Date());
- var dfd = $.Deferred();
- //alert(dataModel.Name());
- if (_.isEmpty(dataModel.Name()) || dataModel.term() == null)
- dfd.resolve(false, '(*) 표시 항목은 필수 입력 사항 입니다!');
-
- return dfd.resolve(true);
- },
-
- beforeUpdateDataViewModel: function () {
- //handlePopupButtonSave: function () {
- if (_.isEmpty(viewModel.dataModel.Name())) {
- utils.toast.show('순찰계획명이 공백입니다.', 'error');
- return 0;
- }
- if (viewModel.dataModel.term() == null) {
- utils.toast.show('순찰주기가 공백입니다.', 'error');
- return 0;
- }
- // 수정시에 시간변경
- viewModel.dataModel.inDate(new Date());
- return 2;
- },
- */
- handleAfterInsert: function (db) {
- /*
- var dataViewModel = new BemsWebApplication['CmZoneTempHumiSetViewModel']();
- dataViewModel.SiteId = db.SiteId;
- dataViewModel.BuildingId = db.BuildingId;
- dataViewModel.FloorId = db.FloorId;
- dataViewModel.ZoneId = db.ZoneId;
- var promise = BemsWebApplication.api.post('BemsMonitoringPoint/AddZoneTempHumiSet', dataViewModel);
- promise.done(function () {
- ;
- });*/
- },
- });
- /*
- function getDefaultFloorForSearch() {
- return $SearchView.createDefaultArray( 'FloorId' );
- }
- floorDataSource.filter('BuildingId', -1); */
- // 콤보, text 등록먼저후 생기는 팝업에서 안보이는 문제해결
- viewModel.dataModel.PatrolGroupName = ko.observable();
- viewModel.dataModel.PatrolCourseName = ko.observable();
- viewModel.dataModel.PlanName = ko.observable();
- viewModel.dataModel.Name = ko.observable();
- //viewModel.dataModel.GroupId = ko.observable();
- //viewModel.dataModel.CourseId= ko.observable();
- viewModel.patrolgroups = patrolgroups;
- viewModel.patrolcourses = patrolcourses;
- viewModel.menuDataGridOptions = menuDataGridOptions;
- /*
- viewModel.popupInsertButtonOptions.action = function () {
- alert('insett');
- }*/
- return viewModel;
- };
|