| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 | BemsWebApplication.PatrolPlan = function (params, viewInfo) {    "use strict";    var eq = BWA.DataUtil.constructEqualFilter;    var and = BWA.DataUtil.andFilter;    var SiteId = BWA.UserInfo.SiteId();    var patrolgroupDataSource = BemsWebApplication.db.createDataSource('CmPatrolGroup', true),        patrolcourseDataSource = BemsWebApplication.db.createDataSource('CmPatrolCourse', true);    patrolgroupDataSource.filter([        eq('SiteId', SiteId)    ]);    patrolcourseDataSource.filter([        eq('SiteId', SiteId)    ]);    var CmPatrolPlanDataSource = BemsWebApplication.db.createDataSource('CmPatrolPlan');    var PatrolPlanInfo = ko.observableArray();    var RowName;    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 viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmPatrolPlan', {        rowAlternationEnabled: true,        /*                    editing: {                        editMode: 'batch',                        editEnabled: true,                        //removeEnabled: true,                        //insertEnabled: true                    },*/        dataSourceOptions: {            select: ['SiteId', 'PatrolPlanId', 'GroupId', 'CourseId', 'Name', 'PlanDesc', 'term', 'inDate', 'CmPatrolGroup/Name', 'CmPatrolCourse/Name'],            expand: ['CmPatrolGroup', 'CmPatrolCourse'],            extendOptions: {                forceOriginalField: true,            },            filter: [                    ['SiteId', '=', SiteId]            ]        },        columns: [            { dataField: 'PatrolPlanId', caption: $G('number'), width: '10%', alignment: 'center', sortOrder: 'desc' },            { dataField: 'Name', caption: '순찰계획명', width: '30%', alignment: 'center' },            { dataField: 'CmPatrolGroup/Name', caption: '순찰조', width: '20%', alignment: 'center' },            { dataField: 'CmPatrolCourse/Name', caption: '순찰코스', width: '20%', alignment: 'center' },    //        { dataField: 'term', caption: '순찰주기(시간)', width: '10%', alignment: 'center' },            { dataField: 'PlanDesc', caption: '주요점검사항', width: '30%', alignment: 'center' },            {                dataField: 'inDate', caption: '최종변경일', width: '10%', alignment: 'center',                customizeText: function (cellInfo) {                    return $G.date(cellInfo.value);                }            },        ],        popupWidth: 580,        promiseDataInSearchView: deferredForSearch.promise(),        searchViewItems: [            //{ id: 'PatrolGroupId', ignoreValue: 0, defaultValue: 0, value: patrolgroupIdForSerach, dataSource: patrolgroupsForSearch, handleChangedValue: handleBuildingInSearchView },            { id: 'GroupId', ignoreValue: 0, defaultValue: 0, value: patrolgroupIdForSerach, dataSource: patrolgroupsForSearch },            { id: 'CourseId', ignoreValue: 0, defaultValue: 0, value: patrolcourseIdForSerach, dataSource: patrolcoursesForSearch },            { id: '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['CmPatrolGroup/Name']);            dataModel.PatrolCourseName = $KoSet(dataModel.PatrolCourseName, data['CmPatrolCourse/Name']);            //dataModel.CourseId = $KoSet(dataModel.CourseId, data.CourseId);            //dataModel.GroupId = $KoSet(dataModel.GroupId, data.GroupId);            RowName = data.Name;            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) {            /*                if (isNewInPopup()) {                                dataViewModel.inDate(new Date());                            }*/            CmPatrolPlanDataSource.filter([                ["SiteId", "=", BWA.UserInfo.SiteId()]            ]);            CmPatrolPlanDataSource.load().done(function (result) {                PatrolPlanInfo(result);            });        },        handleBeforeDelete: function (db) {            //var parameters = {            //    SiteId: db.SiteId,            //    ScheduleId: db.ScheduleId            //};            //BWA.api.post('CmPatrolSchedule/Delete', null, parameters).done(function () {            //});        },        beforeInsertingDataViewModel: function (dataModel, dbModelId) {            dataModel.inDate(new Date());            var dfd = $.Deferred();            var isDuplicated = false;            for (var i = 0; i < PatrolPlanInfo().length; i++) {                if (dataModel.Name() == PatrolPlanInfo()[i].Name()) {                    isDuplicated = true;                }            }            if (!BWA.DataUtil.isValidInputValue(dataModel.Name()) || dataModel.term() == null)                return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보(*)를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)');            else {                if (isDuplicated)                    return dfd.resolve(false, '이미 동일 정보가 존재합니다.');                else                    return dfd.resolve(true);            }        },        beforeUpdateDataViewModel: function () {            // 수정시에 시간변경            viewModel.dataModel.inDate(new Date());            var isDuplicated = false;            for (var i = 0; i < PatrolPlanInfo().length; i++) {                if (viewModel.dataModel.Name() == PatrolPlanInfo()[i].Name() && (RowName() != PatrolPlanInfo()[i].Name())) {                    isDuplicated = true;                }            }            if (!BWA.DataUtil.isValidInputValue(viewModel.dataModel.Name()) || _.isEmpty(viewModel.dataModel.Name()) || viewModel.dataModel.term() == null) {                utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보(*)를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');                return 0;            }            else {                if (isDuplicated) {                    utils.toast.show('이미 동일 이름이 존재합니다.', 'error');                    return 0;                }                else                    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.GroupId = ko.observable();    //viewModel.dataModel.CourseId= ko.observable();    viewModel.patrolgroups = patrolgroups;    viewModel.patrolcourses = patrolcourses;    /*        viewModel.popupInsertButtonOptions.action = function () {            alert('insett');        }*/    return viewModel;};
 |