123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- BemsWebApplication.SearchCheckSchedule = function(params, viewInfo) {
- "use strict";
- var cycleTypeClassDataSource = BemsWebApplication.db.createDataSource('FmsFacilityCodeCycleType', true, true),
- businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true),
- checkScheduleDataSource = BemsWebApplication.db.createDataSource('FmsFacilitySchedule', true);
- var searchCycleTypes = ko.observableArray(),
- searchBusinessFields = ko.observableArray(),
- selectedDate = ko.observable(),
- selectedSchedules = ko.observableArray();
- var scheduleCalendar = null;
-
- var checkScheduleManager = utils.checkSchedule.createScheduleManager();
- function loadSchedules(searchFilter) {
- var date = scheduleCalendar.getDate().clone().endOf('month');
- defaultFilter([
- ['SiteId', '=', BWA.UserInfo.SiteId()],
- 'and',
- ['StartDate', '<=', date.toDate()],
- 'and',
- ['ConfirmedUserId', '<>', null]
- ]);
- if ($IsValid(searchFilter)) {
- checkScheduleDataSource.filter(defaultFilter().slice(0).concat(searchFilter));
- }
- $.when(checkScheduleDataSource.load(), checkScheduleManager.load(scheduleCalendar.getDate())).done(function(result) {
- var events = [];
- $.each(result[0], function(i, schedule) {
- var s = checkScheduleManager.generateScheduleEvents(date, schedule);
- events.splice.apply(events, [events.length, 0].concat(s));
- });
- scheduleCalendar.updateEvents(events);
- });
- }
- var scheduleCalendarOptions = {
- //selectable: false,
- height: 680,
- editable: false,
- select: function( start, end ) {
- var schedules = [];
- scheduleCalendar.getEvents($G.date( start ), function(event) {
- schedules.push(event);
- });
- if (schedules.length === 0) {
- utils.toast.show('예정된 점검이 없습니다.', 'wanring');
- }
- else {
- selectedSchedules(schedules);
- selectedDate(start);
- viewModel.workOrderGenerationPopup.show();
- }
- },
- changedMonth: function(view) {
- if (scheduleCalendar === null) return;
- loadSchedules();
- },
- };
- function refreshList() {
- }
- function handleViewShown() {
- if (!scheduleCalendar) {
- scheduleCalendar = utils.fullCalendar.create('scheduleCalendar', scheduleCalendarOptions);
- }
- $.when(cycleTypeClassDataSource.load(), businessFieldDataSource.load()).done(function(result1, result2) {
- searchCycleTypes($SearchView.createDefaultArray('CycleTypeId').slice(0).concat(result1[0]));
- searchBusinessFields($SearchView.createDefaultArray('BusinessFieldId').slice(0).concat(result2[0]));
- });
- loadSchedules();
- $SearchView.setPopupVisibleObservable(popupSearchViewVisible);
- $SideMenu.showSideMenuIfWill(params.view);
- }
- var defaultFilter = ko.observable();
- var popupSearchViewVisible = ko.observable();
- var viewModel = {
- viewShown: handleViewShown,
- refreshList: refreshList,
- };
- $SearchView.setupInView(viewModel, {
- searchViewItems: [
- { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: searchBusinessFields },
- { id: 'CycleTypeId', ignoreValue: 0, defaultValue: 0, dataSource: searchCycleTypes },
- { id: 'Name' }
- ],
- }, popupSearchViewVisible, null, function(filter) {
- loadSchedules(filter);
- });
- viewModel.workOrderGenerationPopup = BWA.Popup.WorkOrderGenerationPopup(viewModel, selectedDate, selectedSchedules, viewInfo);
- return viewModel;
- };
|