[IMP] Cancelled & Days Option

This commit is contained in:
QS5ELkMu
2018-12-20 03:01:08 +01:00
parent 843e01677c
commit d041f64ade
6 changed files with 108 additions and 93 deletions

View File

@@ -16,7 +16,6 @@ var AbstractController = require('web.AbstractController'),
var PMSCalendarController = AbstractController.extend({
custom_events: _.extend({}, AbstractController.prototype.custom_events, {
onLoadCalendarSettings: '_onLoadCalendarSettings',
onLoadViewFilters: '_onLoadViewFilters',
onUpdateButtonsCounter: '_onUpdateButtonsCounter',
onSwapReservations: '_onSwapReservations',
@@ -24,6 +23,8 @@ var PMSCalendarController = AbstractController.extend({
onApplyFilters: '_onApplyFilters',
}),
_last_dates: [],
init: function (parent, model, renderer, params) {
this._super.apply(this, arguments);
this.displayName = params.displayName;
@@ -40,17 +41,11 @@ var PMSCalendarController = AbstractController.extend({
var self = this;
this._multi_calendar.setElement(this.renderer.$el.find('#hcal_widget'));
this._multi_calendar.on('tab_changed', function(ev, active_index){
if (active_index) {
self._refresh_filters(active_index);
}
});
this._multi_calendar.reset();
this._multi_calendar.start();
this._assign_multi_calendar_events();
this._load_calendars();
this._assign_view_events();
this._load_calendar_settings();
},
//--------------------------------------------------------------------------
@@ -128,8 +123,8 @@ var PMSCalendarController = AbstractController.extend({
}
var options = {
startDate: HotelCalendar.toMomentUTC(self.renderer._last_dates[0], HotelConstants.ODOO_DATETIME_MOMENT_FORMAT),
days: self._view_options['days'] + 1,
startDate: HotelCalendar.toMomentUTC(self._last_dates[0], HotelConstants.ODOO_DATETIME_MOMENT_FORMAT),
days: self._view_options['days'],
rooms: rooms,
endOfWeek: parseInt(self._view_options['eday_week']) || 6,
divideRoomsByCapacity: self._view_options['divide_rooms_by_capacity'] || false,
@@ -173,6 +168,35 @@ var PMSCalendarController = AbstractController.extend({
return domain;
},
_load_calendar_settings: function (ev) {
var self = this;
return this.model.get_hcalendar_settings().then(function(options){
self._view_options = options;
if (['xs', 'md'].indexOf(self._find_bootstrap_environment()) >= 0) {
self._view_options['days'] = 7;
}
var date_begin = moment().startOf('day');
var days = self._view_options['days'];
if (self._view_options['days'] === 'month') {
days = date_begin.daysInMonth();
}
self._last_dates[0] = date_begin.clone();
self._last_dates[1] = date_begin.clone().add(days, 'd');
var $dateTimePickerBegin = self.renderer.$el.find('#pms-menu #date_begin');
var $dateEndDays = self.renderer.$el.find('#pms-menu #date_end_days');
$dateTimePickerBegin.data("ignore_onchange", true);
$dateTimePickerBegin.data("DateTimePicker").date(date_begin);
$dateEndDays.val(self._view_options['days']);
//self.renderer.init_calendar_view();
self._load_calendars();
self._assign_view_events();
});
},
_reload_active_calendar: function() {
var self = this;
var filterDates = this.renderer.get_view_filter_dates();
@@ -180,10 +204,11 @@ var PMSCalendarController = AbstractController.extend({
// Clip dates
var dfrom = filterDates[0].clone(),
dto = filterDates[1].clone();
if (filterDates[0].isBetween(this.renderer._last_dates[0], this.renderer._last_dates[1], 'days') && filterDates[1].isAfter(this.renderer._last_dates[1], 'day')) {
dfrom = this.renderer._last_dates[1].clone().local().startOf('day').utc();
} else if (this.renderer._last_dates[0].isBetween(filterDates[0], filterDates[1], 'days') && this.renderer._last_dates[1].isAfter(filterDates[0], 'day')) {
dto = this.renderer._last_dates[0].clone().local().endOf('day').utc();
if (filterDates[0].isBetween(this._last_dates[0], this._last_dates[1], 'days') && filterDates[1].isAfter(this._last_dates[1], 'day')) {
dfrom = this._last_dates[1].clone().local().startOf('day').utc();
} else if (this._last_dates[0].isBetween(filterDates[0], filterDates[1], 'days') && this._last_dates[1].isAfter(filterDates[0], 'day')) {
dto = this._last_dates[0].clone().local().endOf('day').utc();
}
var oparams = [
@@ -210,7 +235,7 @@ var PMSCalendarController = AbstractController.extend({
self._multi_calendar._assign_extra_info(active_calendar);
}.bind(this)).then(function(){
self.renderer._last_dates = filterDates;
self._last_dates = filterDates;
});
},
@@ -314,6 +339,12 @@ var PMSCalendarController = AbstractController.extend({
self._multi_calendar.update_active_tab_name(active_calendar_record.name);
});
});
this._multi_calendar.on('tab_changed', function(ev, active_index){
if (active_index) {
self._refresh_filters(active_index);
}
});
},
_assign_multi_calendar_events: function() {
@@ -561,7 +592,7 @@ var PMSCalendarController = AbstractController.extend({
this._multi_calendar.on_calendar('hcalOnDateChanged', function(ev){
var $dateTimePickerBegin = this.renderer.$el.find('#pms-menu #date_begin');
$dateTimePickerBegin.data("ignore_onchange", true);
$dateTimePickerBegin.data("DateTimePicker").date(ev.detail.date_begin.local().add(1, 'd'));
$dateTimePickerBegin.data("DateTimePicker").date(ev.detail.date_begin.local());
this._reload_active_calendar();
}.bind(this));
},
@@ -588,20 +619,6 @@ var PMSCalendarController = AbstractController.extend({
});
},
_onLoadCalendarSettings: function (ev) {
var self = this;
return this.model.get_hcalendar_settings().then(function(options){
self._view_options = options;
var date_begin = moment().startOf('day');
if (['xs', 'md'].indexOf(self._find_bootstrap_environment()) >= 0) {
self._view_options['days'] = 7;
} else {
self._view_options['days'] = 30;
}
self.renderer.load_hcalendar_options(self._view_options);
});
},
_onViewAttached: function (ev) {
this._multi_calendar.recalculate_reservation_positions();
},
@@ -769,9 +786,12 @@ var PMSCalendarController = AbstractController.extend({
var active_calendar = this._multi_calendar.get_active_calendar();
if (active_calendar && date_begin) {
var days = $dateEndDays.val();
if (days === 'month') {
days = date_begin.daysInMonth();
}
var date_end = date_begin.clone().add(days, 'd');
if (!date_begin.isSame(this.renderer._last_dates[0].clone().utc(), 'd') || !date_end.isSame(this.renderer._last_dates[1].clone().utc(), 'd')) {
active_calendar.setStartDate(date_begin, days, false, function(){
if (!date_begin.isSame(this._last_dates[0].clone().utc(), 'd') || !date_end.isSame(this._last_dates[1].clone().utc(), 'd')) {
active_calendar.setStartDate(date_begin, $dateEndDays.val(), false, function(){
this._reload_active_calendar();
}.bind(this));
}
@@ -791,9 +811,7 @@ var PMSCalendarController = AbstractController.extend({
$dateTimePickerBegin.data("ignore_onchange", true);
$dateTimePickerBegin.data("DateTimePicker").date(start_date.local());
$dateEndDays.data("ignore_onchange", true);
console.log("---- LLL");
console.log(active_calendar.getOptions('days'));
$dateEndDays.val(active_calendar.getOptions('days'));
$dateEndDays.val(active_calendar.getOptions('orig_days'));
$dateEndDays.trigger('change');
/* Overbooking Led */

View File

@@ -25,7 +25,6 @@ var HotelCalendarView = AbstractRenderer.extend({
searchview_hidden: true,
// Custom Options
_view_options: {},
_reserv_tooltips: {},
_days_tooltips: [],
_last_dates: [false, false],
@@ -55,27 +54,14 @@ var HotelCalendarView = AbstractRenderer.extend({
var $dateTimePickerBegin = this.$el.find('#pms-menu #date_begin');
var $dateEndDays = this.$el.find('#pms-menu #date_end_days');
var date_begin = $dateTimePickerBegin.data("DateTimePicker").date().set({'hour': 0, 'minute': 0, 'second': 0}).clone().utc();
var date_end = date_begin.clone().add($dateEndDays.val(), 'd').set({'hour': 23, 'minute': 59, 'second': 59}).clone().utc();
console.log("---- YEAH");
console.log(date_end.format("DD-MM-YYYY"));
var days = $dateEndDays.val();
if (days === 'month') {
days = date_begin.daysInMonth();
}
var date_end = date_begin.clone().add(days, 'd').set({'hour': 23, 'minute': 59, 'second': 59}).clone().utc();
return [date_begin, date_end];
},
load_hcalendar_options: function(options) {
// View Options
this._view_options = options;
var date_begin = moment().startOf('day');
var $dateTimePickerBegin = this.$el.find('#pms-menu #date_begin');
var $dateEndDays = this.$el.find('#pms-menu #date_end_days');
//$dateTimePickerBegin.data("ignore_onchange", true);
$dateTimePickerBegin.data("DateTimePicker").date(date_begin);
//$dateTimePickerEnd.data("ignore_onchange", true);
$dateEndDays.val(30);
$dateEndDays.trigger('change');
this._last_dates = this.get_view_filter_dates();
},
update_buttons_counter: function(ncheckouts, ncheckins, noverbookings, ncancelled) {
var self = this;
// Checkouts Button
@@ -135,25 +121,18 @@ var HotelCalendarView = AbstractRenderer.extend({
var $dateTimePickerBegin = this.$el.find('#pms-menu #date_begin');
var $dateEndDays = this.$el.find('#pms-menu #date_end_days');
$dateTimePickerBegin.datetimepicker(DTPickerOptions);
// $dateEndDays.select2({
// data: [
// {id:7, text: '1 Week'},
// {id:12, text: '2 Weeks'},
// {id:21, text: '3 Weeks'},
// {id:30, text: '1 Month'},
// {id:60, text: '2 Months'},
// {id:90, text: '3 Months'},
// ],
// allowClear: true
// });
var date_begin = moment().startOf('day');
$dateTimePickerBegin.data("ignore_onchange", true);
$dateTimePickerBegin.data("DateTimePicker").date(date_begin);
$dateEndDays.val(30);
$dateEndDays.trigger('change');
this._last_dates = this.get_view_filter_dates();
$dateEndDays.select2({
data: [
{id:7, text: '1w'},
{id:12, text: '2w'},
{id:21, text: '3w'},
{id:'month', text: '1m'},
{id:60, text: '2m'},
{id:90, text: '3m'},
],
allowClear: true,
minimumResultsForSearch: -1
});
/* TOUCH EVENTS */
this.$el.on('touchstart', function(ev){
@@ -201,7 +180,6 @@ var HotelCalendarView = AbstractRenderer.extend({
});
return $.when(
this.trigger_up('onLoadCalendarSettings'),
this.trigger_up('onUpdateButtonsCounter'),
this.trigger_up('onLoadViewFilters'),
);