123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557 |
- BemsWebApplication.PatrolCourse = function (params, viewInfo) {
- "use strict";
- // Permission Index
- var PI_SEARCH = 0,
- PI_MODIFICATION = 1,
- PI_BUSINESS_FIELD = 2;
- var CmPatrolCourseDataSource = BemsWebApplication.db.createDataSource('CmPatrolCourse');
- var PatrolCourseInfo = ko.observableArray();
- var RowName;
- /*
- var commandButtonOptions = [ {
- icon: 'edit',
- id: 'create1',
- title: '순찰코스 순서저장',
- disabled: disableOrderUpdate,
- action: handleOrderUpdate
- }];*/
- /*
- var selectedPatrolPosData = ko.observable();
- selectedPatrolPosData.subscribe(function (value) {
- if (isMainContactor) {
- viewModel.dataModel.MainContactorlPosId(value.UserId);
- viewModel.dataModel.MainContactorUserName(value.Name);
- }
- else {
- viewModel.dataModel.SubContactorUserId(value.UserId);
- viewModel.dataModel.SubContactorUserName(value.Name);
- }
- });*/
- var PatrolCourseDataSource = BWA.db.createDataSource('CmPatrolCourse'),
- // PatrolCoursePosDataSource = BWA.db.createDataSource('CmPatrolCoursePos'),
- PatrolCoursePosDataSource = BWA.DataUtil.createDataSource({
- dataSourceOptions: {
- select: ['SiteId', 'PatrolCourseId', 'PosId', 'CourseOrder', 'CmPatrolCourse/Name', 'CmPatrolPos/Name', 'CmPatrolPos/CmBuilding/Name', 'CmPatrolPos/CmFloor/Name'],
- //select: ['SiteId', 'PatrolCourseId', 'PosId', 'CourseOrder', 'CmPatroPos/Name', 'CmPatroPos/CmBuilding/Name', 'CmPatroPos/CmFloor/Name'],
- expand: ['CmPatrolCourse', 'CmPatrolPos', 'CmPatrolPos/CmBuilding', 'CmPatrolPos/CmFloor'],
- extendOptions: {
- forceOriginalField: true
- },
- filter: [
- ['SiteId', '=', BWA.UserInfo.SiteId()] // 4
- //eq('SiteId', 0), // 초기화를 위해서 0
- // eq('SiteId', BWA.UserInfo.SiteId()),
- // and,
- // ['FmsWorkRequest/WorkProgressId', '=', $Code.WorkProgress.WORKING] // 4
- // //, and, ['FmsWorkRequest/WorkProgressId', '<=', 5]
- ]
- }
- }, 'CmPatrolCoursePos'),
- possInView = ko.observableArray(),
- //PatrolCoursePermissionDataArray = ko.observableArray(),
- deleteDisabled = ko.observable(true),
- popupVisible = ko.observable(false),
- upDisabled = ko.observable(true),
- downDisabled = ko.observable(true),
- reSelectRow = ko.observable(false),
- disableOrderUpdate = ko.observable(true),
- selectedPatrolCourse = ko.observable(null),
- selectedCoursePos = ko.observable(null),
- rowIndex,
- viewModel,
- //gridView,
- sidemenuHashSet;
- //var datagrid = $('#EnergySavingControlDataGridViewInSearchView').dxDataGrid('instance');
- //var gridView = $('#gridContainer2').dxDataGrid('instance');
- //var headerCheckBoxValues = [ko.observable(false), ko.observable(false), ko.observable(false)];
- //gridView = $('#gridContainer2').dxDataGrid('instance');
- // var dataGrid = $('#gridContainer').dxDataGrid('instance');
- // menuDataGridOptions -> PatrolCoursePos
- var menuDataGridOptions = utils.datagrid.defaultOptions({
- //dataSource: PatrolCoursePosDataSource,
- dataSource: possInView,
- width: '100%',
- //height: 706,
- height: 685,
- datagridId: 'gridContainer2',
- dbId: 'CmPatrolCoursePos',
- //useNumberColumn: true,
- columns: [
- { dataField: 'CourseOrder', caption: '순서', width: '15%', alignment: 'center', sortOrder: 'asc' },
- // { dataField: 'PosId', caption: '순찰지점', width: '35%', },
- // { dataField: 'CmPatrolCourse/Name', caption: '순찰코스명', width: '35%', },
- { dataField: 'CmPatrolPos/Name', caption: '순찰지점명', width: '35%', },
- { dataField: 'CmPatrolPos/CmBuilding/Name', caption: '빌딩', width: '25%',},
- { dataField: 'CmPatrolPos/CmFloor/Name', caption: '층', width: '25%'},
- // { dataField: 'CourseOrder', caption: '순서', width: '25%' },
- ],
- paging: {
- enabled: true,
- pageSize: 19
- },
- pager: {
- },
- selection: {
- mode: 'multiple',
- allowSelectAll: true,
- },
- /*
- handleShowPopup:function(clickdata){
- },*/
- rowPrepared: function (rowElement, rowInfo) {
- if (rowInfo.rowType == 'data' && reSelectRow()) {
- var dataGrid = $('#gridContainer2').dxDataGrid('instance');
- if (dataGrid.totalCount() - 1 == rowInfo.dataIndex) {
- dataGrid.selectRowsByIndexes(rowIndex);
- upDisabled(rowIndex == 0 ? true : false);
- downDisabled(rowIndex == dataGrid.totalCount() - 1 ? true : false);
- reSelectRow(false);
- }
- }
- },
- //byKey(key)
- //getKeyByRowIndex(rowIndex)
- selectionChanged: function (clickRow) {
- var array = utils.datagrid.getSelectedRowsData('gridContainer2');
- deleteDisabled(!(array.length > 0));
- if (array.length == 1) {
- selectedCoursePos(array[0]);
- var dataGrid = $('#gridContainer2').dxDataGrid('instance');
- //var index = dataGrid.getRowIndexByKey(dataGrid.getSelectedRowKeys());
- rowIndex = dataGrid.getRowIndexByKey(clickRow.currentSelectedRowKeys[0]);
- //dataGrid.selectRowsByIndexes(rowIndexes);
- upDisabled(rowIndex == 0 ? true : false);
- downDisabled(rowIndex == dataGrid.totalCount() - 1 ? true : false);
- }
- else {
- if (reSelectRow() == false) {
- upDisabled(true);
- downDisabled(true);
- }
- }
- //$('#gridContainer2').dxDataGrid('instance').selectRowsByIndexes(0);
- /*
- if (reSelectRow()) {
- $('#gridContainer2').dxDataGrid('instance').selectRowsByIndexes(rowIndex);
- reSelectRow(false);
- }*/
- },
- /*
- contentReadyAction: function(e) {
- //gridView = e.component;
- //datagrid.filter(null);
- },*/
- });
- var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'CmPatrolCourse', {
- dataSourceOptions: {
- select: ['SiteId', 'PatrolCourseId', 'Name',],
- extendOptions: {
- forceOriginalField: true
- },
- filter: [
- ['SiteId', '=', BWA.UserInfo.SiteId()]
- ]
- },
- height: 685,
- popupWidth: 480,
- columns: [
- { dataField: 'Number', caption: $G('number'), width: '20%', allowSorting: false },
- { dataField: 'Name', caption: '순찰코스명', width: '80%' }
- ],
- paging: {
- enabled: true,
- pageSize: 19
- },
- pager: {
- },
- NoSearchView: true, // 2019.07.25 kgpark 검색버튼 삭제
- handleViewShown: function () {
- sidemenuHashSet = $SideMenu.getSidemenuHashSet();
- //$SearchView.setPopupVisibleObservable(null);
- $SearchView.visibleObservable(false);
- },
- handlePopupShowing2: function (selectedId) {
- var data = selectedPatrolCourse();
- selectedId.SiteId = data.SiteId();
- selectedId.PatrolCourseId = data.PatrolCourseId();
- selectedId.Name = data.Name();
- },
- /*
- handleAfterLoadingModelByKey: function(data, dataViewModel, isNewInPopup) {
- },*/
-
- handlePopupShowing: function (that) {
- CmPatrolCourseDataSource.filter([
- ["SiteId", "=", BWA.UserInfo.SiteId()]
- ]);
- CmPatrolCourseDataSource.load().done(function (result) {
- PatrolCourseInfo(result);
- });
- },
- handleDataGridRowClick: function (id, dataGrid, clickRow, popupVisible) {
- var data = clickRow.data;
- selectedPatrolCourse(data);
- LoadCoursePos();
- RowName = data.Name;
- //$('#gridContainer2').dxDataGrid('instance').selectRowsByIndexes(1);
- },
- beforeInsertingDataViewModel: function (dataModel, dbModelId) {
- var dfd = $.Deferred();
- var isDuplicated = false;
- for (var i = 0; i < PatrolCourseInfo().length; i++) {
- if (dataModel.Name() == PatrolCourseInfo()[i].Name()) {
- isDuplicated = true;
- }
- }
- if (!BWA.DataUtil.isValidInputValue(dataModel.Name()))
- return dfd.resolve(false, '저장 혹은 수정 반드시 필수 입력 정보(*)를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)');
- else {
- if (isDuplicated)
- return dfd.resolve(false, '이미 동일 정보가 존재합니다.');
- else
- return dfd.resolve(true);
- }
- },
- beforeUpdateDataViewModel: function () {
- var isDuplicated = false;
- for (var i = 0; i < PatrolCourseInfo().length; i++) {
- if (viewModel.dataModel.Name() == PatrolCourseInfo()[i].Name() && (RowName() != PatrolCourseInfo()[i].Name())) {
- isDuplicated = true;
- }
- }
- if (!BWA.DataUtil.isValidInputValue(viewModel.dataModel.Name())) {
- utils.toast.show('저장 혹은 수정 반드시 필수 입력 정보(*)를 모두 입력하셔야 합니다 (앞뒤공백 허용안함)', 'error');
- return 0;
- }
- else {
- if (isDuplicated) {
- utils.toast.show('이미 동일 이름이 존재합니다.', 'error');
- return 0;
- }
- else
- return 2;
- }
- },
- });
- function handleOrderUp() {
- disableOrderUpdate(false);
- var dataGrid = $('#gridContainer2').dxDataGrid('instance');
- //rowIndex--;
- //dataGrid.selectRowsByIndexes(rowIndex);
- //return;
- var data = selectedCoursePos();
- var oldOrder = data.CourseOrder();
- rowIndex--;
- //dataGrid.selectRowsByIndexes(rowIndex);
- //var data2 = dataGrid.byKey(dataGrid.getKeyByRowIndex(rowIndex))
- dataGrid.byKey(dataGrid.getKeyByRowIndex(rowIndex)).done(function (dataObject) {
- data.CourseOrder(dataObject.CourseOrder());
- //data.CourseOrder(100);
- dataObject.CourseOrder(oldOrder);
- reSelectRow(true);
- $('#gridContainer2').dxDataGrid('instance').refresh();
- });
- //dataGrid.selectRowsByIndexes(rowIndex);
- //var data2 = dataGrid.getSelectedRowsData();
- // data.CourseOrder(data2[0].CourseOrder());
- //data.CourseOrder(100);
- // data2[0].CourseOrder(oldOrder);
- //dataGrid.selectRowsByIndexes(rowIndex);
- //dataGrid.selectRowsByIndexes(-1);
- //dataGrid.selectRowsByIndexes(rowIndex);
- /*
- var chage = new Array();
- var dataGrid = $('#gridContainer2').dxDataGrid('instance');
- var data = selectedCoursePos();
- chage.push({
- SiteId: data.SiteId(),
- PatrolCourseId: data.PatrolCourseId(),
- PosId: data.PosId(),
- CourseOrder: data.CourseOrder()
- });
-
- rowIndex--;
- dataGrid.selectRowsByIndexes(rowIndex);
- data = dataGrid.getSelectedRowsData();
-
- chage.push({
- SiteId: data[0].SiteId(),
- PatrolCourseId: data[0].PatrolCourseId(),
- PosId: data[0].PosId(),
- CourseOrder: data[0].CourseOrder()
- });
-
- reSelectRow(true);
- BWA.api.post('CmPatrolCourse/ChangeCourseOrder', chage).done(function () {
- // 재로드하는 걸로
- utils.toast.show($G('successDatabaseProcessMsg'));
- LoadCoursePos();
- });
- */
- }
- function handleOrderDown() {
- disableOrderUpdate(false);
- var dataGrid = $('#gridContainer2').dxDataGrid('instance');
- var data = selectedCoursePos();
- var oldOrder = data.CourseOrder();
- rowIndex++;
- dataGrid.byKey(dataGrid.getKeyByRowIndex(rowIndex)).done(function (dataObject) {
- data.CourseOrder(dataObject.CourseOrder());
- dataObject.CourseOrder(oldOrder);
- reSelectRow(true);
- $('#gridContainer2').dxDataGrid('instance').refresh();
- });
- //dataGrid.selectRowsByIndexes(rowIndex);
- //var data2 = dataGrid.getSelectedRowsData();
- // data.CourseOrder(data2[0].CourseOrder());
- //data.CourseOrder(100);
- // data2[0].CourseOrder(oldOrder);
- //dataGrid.selectRowsByIndexes(rowIndex);
- //dataGrid.selectRowsByIndexes(-1);
- return;
- var chage = new Array();
- var dataGrid = $('#gridContainer2').dxDataGrid('instance');
- var data = selectedCoursePos();
- chage.push({
- SiteId: data.SiteId(),
- PatrolCourseId: data.PatrolCourseId(),
- PosId: data.PosId(),
- CourseOrder: data.CourseOrder()
- });
- rowIndex++
- dataGrid.selectRowsByIndexes(rowIndex);
- data = dataGrid.getSelectedRowsData();
- chage.push({
- SiteId: data[0].SiteId(),
- PatrolCourseId: data[0].PatrolCourseId(),
- PosId: data[0].PosId(),
- CourseOrder: data[0].CourseOrder()
- });
- reSelectRow(true);
- BWA.api.post('CmPatrolCourse/ChangeCourseOrder', chage).done(function () {
- // 재로드하는 걸로
- utils.toast.show($G('successDatabaseProcessMsg'));
- LoadCoursePos();
- });
- }
- function handleDelete() {
- DevExpress.ui.dialog.confirm($G('deleteConfirmMsg'), "삭제").then(function (result) {
- if (result) {
- var array = utils.datagrid.getSelectedRowsData('gridContainer2');
- var data = selectedPatrolCourse();
- var PatrolCourseId = data.PatrolCourseId();
- var postData;
- postData = _.map(array, function (m) {
- return {
- SiteId: m.SiteId(),
- PatrolCourseId: PatrolCourseId,
- PosId: m.PosId(),
- };
- });
- BWA.api.post('CmPatrolCourse/DeleteCoursePos', postData).done(function () {
- utils.toast.show($G('successDatabaseProcessMsg'));
- PatrolCoursePosDataSource.load().done(function (poss) {
- possInView(poss);
- $('#gridContainer2').dxDataGrid('instance').refresh();
- });
- });
- }
- });
- }
- // GroupUser 추가
- function handlePosAdd() {
- viewModel.PatrolPosSearchPopup.show();
- }
- function handleEdit() {
- /*
- var data = selectedPatrolCourse();
- viewModel.dataModel = data;
-
- viewModel.dataModel.SiteId = $KoSet(viewModel.dataModel.SiteId, data['SiteId']);
- viewModel.dataModel.PatrolCourseId = $KoSet(viewModel.dataModel.PatrolCourseId, data['PatrolCourseId']);
- viewModel.dataModel.Name = $KoSet(viewModel.dataModel.Name, data['Name']); */
- //viewModel.popupVisible(false);
- viewModel.popupVisible(true);
- //viewModel.popupVisible(true);
- }
- //onSelectedMaterials: function(selectedMaterials) {
- function onSelectedposs(selectedposs) {
- if (selectedposs.length <= 0) return;
- var data = selectedPatrolCourse();
- var PatrolCourseId = data.PatrolCourseId();
- $('#gridContainer2').dxDataGrid('instance').refresh();
- // 여기서 바로 저장 하자 !!
- var postData;
- try {
- postData = _.map(selectedposs, function (m) {
- return {
- SiteId: m.SiteId(),
- PatrolCourseId: PatrolCourseId,
- BuildingId: m.BuildingId(),
- FloorId: m.FloorId(),
- PosId: m.PosId(),
- };
- });
- } catch (e) {
- postData = _.map(selectedposs, function (m) {
- return {
- SiteId: m.SiteId,
- PatrolCourseId: PatrolCourseId,
- BuildingId: m.BuildingId,
- FloorId: m.FloorId,
- PosId: m.PosId,
- };
- });
- }
- BWA.api.post('CmPatrolCourse/AddCoursePos', postData).done(function () {
- // 재로드하는 걸로
- LoadCoursePos();
- utils.toast.show($G('successDatabaseProcessMsg'));
- });
- }
- function handleOrderUpdate() {
- var dataGrid = $('#gridContainer2').dxDataGrid('instance');
- var chage = new Array();
- var total = dataGrid.totalCount();
- for (var i = 0; i < total; i++) {
- dataGrid.byKey(dataGrid.getKeyByRowIndex(i)).done(function (data) {
- chage.push({
- SiteId: data.SiteId(),
- PatrolCourseId: data.PatrolCourseId(),
- PosId: data.PosId(),
- CourseOrder: data.CourseOrder()
- });
- });
- }
- BWA.api.post('CmPatrolCourse/UpdateCourseOrder', chage).done(function () {
- utils.toast.show($G('successDatabaseProcessMsg'));
- //LoadCoursePos();
- disableOrderUpdate(true);
- });
- }
- function LoadCoursePos() {
- var eq = BWA.DataUtil.constructEqualFilter;
- var and = BWA.DataUtil.andFilter;
- var data = selectedPatrolCourse();
- PatrolCoursePosDataSource.filter([
- eq('SiteId', data.SiteId()),
- and,
- eq('PatrolCourseId', data.PatrolCourseId()),
- ]);
- PatrolCoursePosDataSource.load().done(function (poss) {
- possInView(poss);
- $('#gridContainer2').dxDataGrid('instance').refresh();
- });
- disableOrderUpdate(true);
- }
- viewModel.popupVisible.subscribe(function (visible) {
- var i = {};
- });
- viewModel.menuDataGridOptions = menuDataGridOptions;
- viewModel.handlePosAdd = handlePosAdd;
- viewModel.handleEdit = handleEdit;
- viewModel.handleDelete = handleDelete;
- viewModel.handleOrderUpdate = handleOrderUpdate;
- viewModel.handleOrderUp = handleOrderUp;
- viewModel.handleOrderDown = handleOrderDown;
- viewModel.selectedPatrolCourse = selectedPatrolCourse;
- viewModel.selectedCoursePos = selectedCoursePos;
- viewModel.deleteDisabled = deleteDisabled;
- viewModel.upDisabled = upDisabled;
- viewModel.downDisabled = downDisabled;
- viewModel.reSelectRow = reSelectRow;
- viewModel.disableOrderUpdate = disableOrderUpdate;
- //viewModel.handleSearchInSearchView = handleSearchInSearchView;
- viewModel.PatrolPosSearchPopup = $PatrolPosSearchPopup(viewModel, null, true, onSelectedposs);
- //viewModel.userSearchPopup = $UserSearchPopup(viewModel, selectedUserData, true, onSelectedposs);
- //viewModel.toolbarItems.push({location: 'after', widget: 'button', options: { text: $G('close'), icon: 'save', clickAction: handleOrderUpdate } });
- // viewModel.commandButtonOptions = commandButtonOptions;
- viewModel.handleSearchInSearchView2 = function (filter) {
- var filterA = [];
- _.each(filter, function (x) {
- filterA.push(x);
- });
- PatrolCoursePosDataSource.filter(filterA);
- PatrolCoursePosDataSource.load().done(function (result) {
- //PatrolCoursePermissionDataArray.load().done(function (result) {
- //PatrolCoursePermissionDataArray(result);
- });
- };
- return viewModel;
- };
|