123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- BemsWebApplication.ConfirmCheckSchedule = function( params, viewInfo ) {
- "use strict";
- var selectedScheduleId;
- var selectedScheduleName = ko.observable();
- var scheduleCalendar = null;
- var checkScheduleManager = utils.checkSchedule.createScheduleManager();
- var confirmButtonVisible = ko.observable( true );
- var cancelConfirmButtonVisible = ko.observable( false );
- var cycleTypeClassDataSource = BemsWebApplication.db.createDataSource( 'FmsFacilityCodeCycleType', true, true ),
- cycleUnitClassDataSource = BemsWebApplication.db.createDataSource( 'FmsFacilityCodeCycleUnit', true, true ),
- holidayClassDataSource = BemsWebApplication.db.createDataSource( 'FmsFacilityCodeHoliday', true, true ),
- orderClassDataSource = BemsWebApplication.db.createDataSource( 'FmsFacilityCodeOrder', true, true ),
- businessFieldDataSource = BemsWebApplication.db.createDataSource( 'CmBusinessField', true, true );
- var searchCycleTypes = ko.observableArray(),
- searchCycleUnits = ko.observableArray(),
- searchBusinessFields = ko.observableArray(),
- searchHolidayClasses = ko.observableArray(),
- searchOrderClasses = ko.observableArray(),
- searchConfirmStrings = ko.observableArray( [ $G( 'selectAll' ), $G( 'confirm' ), $G( 'notConfirm' ) ] );
- var deferredForSearch = new $.Deferred();
- confirmButtonVisible.subscribe( function( value ) {
- cancelConfirmButtonVisible( !value );
- } );
- var scheduleCalendarOptions = {
- selectable: false,
- editable: false,
- changedMonth: function( view ) {
- if( scheduleCalendar === null ) return;
- var date = view.calendar.getDate();
- var events = checkScheduleManager.generateScheduleEvents( date, viewModel.dataModel );
- scheduleCalendar.updateEvents( events );
- }
- };
- var viewModel = null;
- viewModel = BWA.DataGrid.createViewWithDataGrid( params, viewInfo, 'FmsFacilitySchedule', {
- dataSourceOptions: {
- select: [ 'SiteId', 'ScheduleId', 'BusinessFieldId', 'Name', 'ConfirmedUserId', 'IsUse', 'CycleSize', 'StartDate', 'CmBusinessField/Name', 'FmsFacilityCodeCycleType/Name', 'FmsFacilityCodeCycleUnit/Name', 'FmsFacilityCodeHoliday/Name', 'FmsFacilityCodeOrder/Name' ],
- expand: [ 'CmBusinessField', 'FmsFacilityCodeCycleType', 'FmsFacilityCodeCycleUnit', 'FmsFacilityCodeHoliday', 'FmsFacilityCodeOrder' ]
- },
- columns: [
- { dataField: 'Name', caption: $G( 'facilityCheckScheduleName' ), width: '18%', alignment: 'center', allowFiltering: false },
- { dataField: 'CmBusinessField_Name', caption: $G( 'businessFieldName' ), width: '10%', alignment: 'center', allowFiltering: false },
- { dataField: 'FmsFacilityCodeCycleType_Name', caption: $G( 'facilityCheckScheduleCycleTypeName' ), width: '10%', alignment: 'center' },
- { dataField: 'FmsFacilityCodeCycleUnit_Name', caption: $G( 'facilityCheckScheduleCycleUnitName' ), width: '10%', alignment: 'center' },
- { dataField: 'FmsFacilityCodeHoliday_Name', caption: $G( 'facilityCheckScheduleHolidayName' ), width: '10%', alignment: 'center' },
- { dataField: 'FmsFacilityCodeOrder_Name', caption: $G( 'facilityCheckScheduleOrderName' ), width: '12%', alignment: 'center' },
- {
- dataField: 'StartDate',
- caption: $G( 'facilityCheckScheduleStartDate' ),
- width: '10%',
- alignment: 'center',
- allowFiltering: false,
- customizeText: function( cellInfo ) {
- return $G.date( cellInfo.value );
- }
- },
- {
- dataField: 'ConfirmedUserId',
- caption: $G( 'facilityCheckScheduleIsConfirm' ),
- width: '10%',
- alignment: 'center',
- allowFiltering: false,
- customizeText: function( cellInfo ) {
- return $G.isConfirm( cellInfo.value );
- }
- },
- utils.datagrid.columnIsUse( '10%' )
- ],
- promiseDataInSearchView: deferredForSearch.promise(),
- searchViewItems: [
- { id: 'CycleTypeId', ignoreValue: 0, defaultValue: 0, dataSource: searchCycleTypes },
- { id: 'CycleUnitId', ignoreValue: 0, defaultValue: 0, dataSource: searchCycleUnits },
- { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: searchBusinessFields },
- { id: 'HolidayId', ignoreValue: 0, defaultValue: 0, dataSource: searchHolidayClasses },
- { id: 'OrderId', ignoreValue: 0, defaultValue: 0, dataSource: searchOrderClasses },
- { id: 'StartDate', type: 'dateRange', isOnlyDate: true },
- { id: 'ConfirmedUserId', ignoreValue: 0, defaultValue: 0, dataSource: searchConfirmStrings, type: 'checkNull' },
- { id: 'Name' } ],
- useNumberColumn: false,
- popupWidth: '740px',
- wordWrapEnabled: true,
- cellPrepared: function( cellElement, cellInfo ) {
- switch( cellInfo.columnIndex ) {
- case 4:
- {
- $( cellElement ).text( cellInfo.data.CycleSize() + ' ' + cellInfo.data.FmsFacilityCodeCycleUnit_Name() );
- break;
- }
- }
- },
- selection: { mode: 'multiple', allowSelectAll: true },
- handleViewShowing: function() {
- $.when( cycleTypeClassDataSource.load(),
- cycleUnitClassDataSource.load(),
- businessFieldDataSource.load(),
- holidayClassDataSource.load(),
- orderClassDataSource.load() )
- .done( function( result1, result2, result3, result4, result5 ) {
- searchCycleTypes( $SearchView.createArrayOfSelectBox( 'CycleTypeId', result1[0] ) );
- searchCycleUnits( $SearchView.createArrayOfSelectBox( 'CycleUnitId', result2[0] ) );
- searchBusinessFields( $SearchView.createArrayOfSelectBox( 'BusinessFieldId', result3[0] ) );
- searchHolidayClasses( $SearchView.createArrayOfSelectBox( 'HolidayId', result4[0] ) );
- searchOrderClasses( $SearchView.createArrayOfSelectBox( 'OrderId', result5[0] ) );
- deferredForSearch.resolve();
- } );
- },
- handlePopupShowing: function( that ) {
- selectedCheckGroupDataSource.load().done( function( result ) {
- var dataGrid = $( '#gridSelectedCheckGroupContainer' ).dxDataGrid( 'instance' );
- dataGrid.refresh();
- } );
- },
- handleAfterLoadingModelByKey: function( data ) {
- var dataModel = viewModel.dataModel;
- dataModel.CycleSizeText( data.CycleSize + ' ' + dataModel.CycleUnitName() );
- },
- handleDataGridRowClick: function( id, dataGrid, clickRow, popupVisible ) {
- dataGrid.clearSelection();
- var data = clickRow.data;
- var dataModel = viewModel.dataModel;
- dataModel.CycleTypeName = $KoSet( dataModel.CycleTypeName, data.FmsFacilityCodeCycleType_Name );
- dataModel.CycleUnitName = $KoSet( dataModel.CycleUnitName, data.FmsFacilityCodeCycleUnit_Name );
- dataModel.HolidayName = $KoSet( dataModel.HolidayName, data.FmsFacilityCodeHoliday_Name );
- dataModel.OrderName = $KoSet( dataModel.OrderName, data.FmsFacilityCodeOrder_Name );
- dataModel.BusinessFieldName = $KoSet( dataModel.OrderName, data.CmBusinessField_Name );
- selectedScheduleId = data.ScheduleId();
- selectedScheduleName = $KoSet( selectedScheduleName, data.Name() );
- selectedCheckGroupDataSource.filter( [
- [ 'SiteId', '=', BWA.UserInfo.SiteId() ],
- 'and',
- [ 'ScheduleId', '=', selectedScheduleId ]
- ] );
- popupVisible( true );
- },
- handleSaveButtonInPopup: function( isInsert ) {
- },
- handlePopupShown: function() {
- if( scheduleCalendar === null ) {
- scheduleCalendar = utils.fullCalendar.create( 'scheduleCalendar', scheduleCalendarOptions );
- //scheduleCalendar = $( '#scheduleCalendar' );
- //scheduleCalendar.fullCalendar( calendarOption );
- }
- confirmButtonVisible( dataModel.ConfirmedUserId() === undefined || dataModel.ConfirmedUserId() === null );
- checkScheduleManager.load( scheduleCalendar.getDate(), dataModel ).done( function( events ) {
- scheduleCalendar.updateEvents( events );
- } );
- },
- toolbarItemsInPopup: [
- { location: 'before', text: $G('checkScheduleConfirm') },
- { location: 'after', widget: 'button', options: { text: $G( 'confirm' ), icon: 'save', visible: confirmButtonVisible, clickAction: handlePopupButtonConfirm } },
- { location: 'after', widget: 'button', options: { text: $G( 'cancelConfirm' ), icon: 'save', visible: cancelConfirmButtonVisible, clickAction: handlePopupButtonCancelConfirm } }
- ]
- } );
- function handlePopupButtonConfirm() {
- postConfirm( [ getPostData( dataModel.SiteId(), dataModel.ScheduleId() ) ] );
- viewModel.popupVisible( false );
- }
- function handlePopupButtonCancelConfirm() {
- postCancelConfirm( [ getPostData( dataModel.SiteId(), dataModel.ScheduleId() ) ] );
- viewModel.popupVisible( false );
- }
- viewModel.dataModel.CycleSizeText = ko.observable();
- var selectedCheckGroupDataSource = $DataSource( {
- dataSourceOptions: {
- store: BemsWebApplication.db.FmsFacilityScheduleToCheckGroup,
- select: [ 'SiteId', 'ScheduleId', 'CheckGroupId', 'FmsFacilityScheduleCheckGroup/Name' ],
- expand: [ 'FmsFacilityScheduleCheckGroup' ]
- }
- });
- var selectedFactory = {
- dxDataSource: selectedCheckGroupDataSource,
- columns: [
- { dataField: 'FmsFacilityScheduleCheckGroup_Name',caption: $G('facilityCheckScheduleCheckGroupName'),width: '45%',alignment: 'center',allowFiltering: false }
- ],
- };
- viewModel.tabsItems = [
- { text: '기본 정보' },
- { text: '점검 그룹' },
- { text: '계획 일정' }
- ];
- viewModel.currentTabIndex = ko.observable( 0 );
- var dataModel = viewModel.dataModel;
- viewModel.multiViewItems = [
- {
- dataModel: dataModel,
- viewModel: viewModel,
- template: 'generalInfo'
- },
- {
- dataModel: dataModel,
- viewModel: viewModel,
- selectedCheckGroupFactory: utils.datagrid.defaultOptions($.extend({},selectedFactory,{
- visible: viewModel.viewModeInPopup,
- dxDataSource: selectedCheckGroupDataSource,
- })),
- template: 'checkGroup'
- },
- {
- dataModel: dataModel,
- viewModel: viewModel,
- template: 'schedule'
- }
- ];
- function getPostDataFromSelectedItem() {
- var items = viewModel.gridView().getSelectedRowsData();
- var postData = [];
- $.each( items, function( i, item ) {
- postData.push( getPostData( $KoValue( item.SiteId ), $KoValue( item.ScheduleId ) ) );
- } );
- console.log( postData );
- return postData;
- }
- function getPostData(siteId, scheduleId) {
- return {
- SiteId: siteId,
- ScheduleId: scheduleId,
- UserId: BWA.UserInfo.UserId(),
- };
- }
- function postConfirm(postData) {
- BemsWebApplication.api.post( 'FmsFacilitySchedule/Confirm', postData ).done( function() {
- utils.toast.show( '확정 작업이 성공하였습니다.' );
- viewModel.refreshList();
- });
- }
- function postCancelConfirm(postData) {
- BemsWebApplication.api.post( 'FmsFacilitySchedule/CancelConfirmed', postData ).done( function() {
- utils.toast.show( '확정 취소 작업이 성공하였습니다.' );
- viewModel.refreshList();
- });
- }
- viewModel.buttonConfirmSelection = function() {
- var postData = getPostDataFromSelectedItem();
- postConfirm( postData );
- };
- viewModel.buttonCancelSelection = function() {
- var postData = getPostDataFromSelectedItem();
- postCancelConfirm( postData );
- };
- return viewModel;
- };
|