mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[WIP][MIG][11.0] hotel_calendar
This commit is contained in:
@@ -46,7 +46,7 @@ class HotelCalendarManagement(models.TransientModel):
|
||||
}
|
||||
return vals
|
||||
|
||||
@api.multi
|
||||
@api.model
|
||||
def save_changes(self, pricelist_id, restriction_id, pricelist,
|
||||
restrictions, availability):
|
||||
room_type_obj = self.env['hotel.room.type']
|
||||
@@ -133,7 +133,7 @@ class HotelCalendarManagement(models.TransientModel):
|
||||
room.name,
|
||||
room.get_capacity(),
|
||||
room.list_price,
|
||||
room.max_real_rooms,
|
||||
room.total_rooms_count,
|
||||
))
|
||||
return json_data
|
||||
|
||||
@@ -201,7 +201,7 @@ class HotelCalendarManagement(models.TransientModel):
|
||||
json_data[room_type.id].append({
|
||||
'id': False,
|
||||
'date': cur_date_str,
|
||||
'avail': room_type.max_real_rooms,
|
||||
'avail': room_type.total_rooms_count,
|
||||
'no_ota': False,
|
||||
})
|
||||
return json_data
|
||||
|
||||
@@ -304,9 +304,9 @@ class HotelReservation(models.Model):
|
||||
raise ValidationError(_("Invalid swap parameters"))
|
||||
|
||||
max_from_persons = max(
|
||||
from_reservs.mapped(lambda x: x.adults + x.children))
|
||||
from_reservs.mapped(lambda x: x.adults))
|
||||
max_to_persons = max(
|
||||
to_reservs.mapped(lambda x: x.adults + x.children))
|
||||
to_reservs.mapped(lambda x: x.adults))
|
||||
|
||||
from_room = from_reservs[0].room_id
|
||||
to_room = to_reservs[0].room_id
|
||||
|
||||
@@ -19,7 +19,8 @@ var PMSCalendarController = AbstractController.extend({
|
||||
onUpdateButtonsCounter: '_onUpdateButtonsCounter',
|
||||
onReloadCalendar: '_onReloadCalendar',
|
||||
onUpdateReservations: '_onUpdateReservations',
|
||||
onSwapReservations: '_onSwapReservations'
|
||||
onSwapReservations: '_onSwapReservations',
|
||||
onSaveChanges: '_onSaveChanges'
|
||||
}),
|
||||
|
||||
init: function (parent, model, renderer, params) {
|
||||
@@ -47,6 +48,14 @@ var PMSCalendarController = AbstractController.extend({
|
||||
//--------------------------------------------------------------------------
|
||||
// Handlers
|
||||
//--------------------------------------------------------------------------
|
||||
_onSaveChanges: function (ev) {
|
||||
var self = this;
|
||||
this.model.save_changes(_.toArray(ev.data)).then(function(results){
|
||||
$(self.renderer._hcalendar.btnSaveChanges).removeClass('need-save');
|
||||
self.renderer.$el.find('.hcal-input-changed').removeClass('hcal-input-changed');
|
||||
});
|
||||
},
|
||||
|
||||
_onUpdateReservations: function (ev) {
|
||||
var self = this;
|
||||
return this.model.update_records(ev.data.ids, ev.data.values).then(function(result){
|
||||
|
||||
@@ -115,5 +115,14 @@ return AbstractModel.extend({
|
||||
context: Session.user_context,
|
||||
});
|
||||
},
|
||||
|
||||
save_changes: function(params) {
|
||||
return this._rpc({
|
||||
model: 'hotel.calendar.management',
|
||||
method: 'save_changes',
|
||||
args: params,
|
||||
context: Session.user_context,
|
||||
})
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -135,16 +135,8 @@ var HotelCalendarView = AbstractRenderer.extend({
|
||||
var self = this;
|
||||
this._hcalendar.addEventListener('hcalOnSavePricelist', function(ev){
|
||||
var pricelist = self._hcalendar.getPricelist();
|
||||
var oparams = [false, self._hcalendar._pricelist_id, false, pricelist, {}, {}];
|
||||
self._rpc({
|
||||
model: 'hotel.calendar.management',
|
||||
method: 'save_changes',
|
||||
args: oparams,
|
||||
context: Session.user_context,
|
||||
}).then(function(results){
|
||||
$(self._hcalendar.btnSaveChanges).removeClass('need-save');
|
||||
$('.hcal-input-changed').removeClass('hcal-input-changed');
|
||||
});
|
||||
var oparams = [self._hcalendar._pricelist_id, false, pricelist, {}, {}];
|
||||
self.trigger_up('onSaveChanges', oparams);
|
||||
});
|
||||
this._hcalendar.addEventListener('hcalOnMouseEnterReservation', function(ev){
|
||||
if (ev.detail.reservationObj) {
|
||||
|
||||
@@ -56,8 +56,9 @@ var MPMSCalendarController = AbstractController.extend({
|
||||
// Handlers
|
||||
//--------------------------------------------------------------------------
|
||||
_onSaveChanges: function (ev) {
|
||||
this.model.save_changes(ev.data).then(function(results){
|
||||
this.renderer.resetSaveState();
|
||||
var self = this;
|
||||
this.model.save_changes(_.toArray(ev.data)).then(function(results){
|
||||
self.renderer.resetSaveState();
|
||||
});
|
||||
},
|
||||
|
||||
@@ -91,7 +92,6 @@ var MPMSCalendarController = AbstractController.extend({
|
||||
})
|
||||
|
||||
self.renderer.create_calendar(rooms);
|
||||
console.log(results);
|
||||
self.renderer.setCalendarData(results['prices'], results['restrictions'], results['availability'], results['count_reservations']);
|
||||
});
|
||||
},
|
||||
@@ -99,11 +99,12 @@ var MPMSCalendarController = AbstractController.extend({
|
||||
_onLoadCalendarSettings: function (ev) {
|
||||
var self = this;
|
||||
this.model.get_hcalendar_settings().then(function(results){
|
||||
console.log(results);
|
||||
self.renderer.setHCalendarSettings(results);
|
||||
});
|
||||
},
|
||||
|
||||
_onBusNotification: function () {
|
||||
_onBusNotification: function (notifications) {
|
||||
if (!this.renderer._hcalendar) {
|
||||
return;
|
||||
}
|
||||
@@ -117,7 +118,7 @@ var MPMSCalendarController = AbstractController.extend({
|
||||
var dt = HotelCalendarManagement.toMoment(day);
|
||||
var availability = {};
|
||||
availability[room_type] = [{
|
||||
'date': dt.format(ODOO_DATE_MOMENT_FORMAT),
|
||||
'date': dt.format(HotelConstants.ODOO_DATE_MOMENT_FORMAT),
|
||||
'avail': avail[room_type][day][0],
|
||||
'no_ota': avail[room_type][day][1],
|
||||
'id': avail[room_type][day][2]
|
||||
@@ -134,7 +135,7 @@ var MPMSCalendarController = AbstractController.extend({
|
||||
for (var day of days) {
|
||||
var dt = HotelCalendarManagement.toMoment(day);
|
||||
pr[price['room']].push({
|
||||
'date': dt.format(ODOO_DATE_MOMENT_FORMAT),
|
||||
'date': dt.format(HotelConstants.ODOO_DATE_MOMENT_FORMAT),
|
||||
'price': price['days'][day],
|
||||
'id': price['id']
|
||||
});
|
||||
@@ -150,7 +151,7 @@ var MPMSCalendarController = AbstractController.extend({
|
||||
var dt = HotelCalendarManagement.toMoment(day);
|
||||
var rest = {};
|
||||
rest[room_type] = [{
|
||||
'date': dt.format(ODOO_DATE_MOMENT_FORMAT),
|
||||
'date': dt.format(HotelConstants.ODOO_DATE_MOMENT_FORMAT),
|
||||
'min_stay': restriction[room_type][day][0],
|
||||
'min_stay_arrival': restriction[room_type][day][1],
|
||||
'max_stay': restriction[room_type][day][2],
|
||||
|
||||
@@ -21,6 +21,7 @@ return AbstractModel.extend({
|
||||
},
|
||||
|
||||
save_changes: function (params) {
|
||||
console.log(params);
|
||||
return this._rpc({
|
||||
model: this.modelName,
|
||||
method: 'save_changes',
|
||||
@@ -59,9 +60,8 @@ return AbstractModel.extend({
|
||||
get_hcalendar_settings: function () {
|
||||
return this._rpc({
|
||||
model: this.modelName,
|
||||
method: 'search_read',
|
||||
method: 'get_hcalendar_settings',
|
||||
args: [false],
|
||||
context: Session.user_context,
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
@@ -81,7 +81,11 @@ var HotelCalendarManagementView = AbstractRenderer.extend({
|
||||
var availability = this._hcalendar.getAvailability(true);
|
||||
|
||||
var params = this.generate_params();
|
||||
var oparams = [false, params['prices'], params['restrictions'], pricelist, restrictions, availability];
|
||||
console.log("---- PARAMS");
|
||||
console.log(params);
|
||||
var oparams = [params['prices'], params['restrictions'], pricelist, restrictions, availability];
|
||||
console.log("---- OPARAMS");
|
||||
console.log(oparams);
|
||||
this.trigger_up('onSaveChanges', oparams);
|
||||
},
|
||||
|
||||
|
||||
@@ -90,19 +90,19 @@
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.table-vrooms {
|
||||
float: left;
|
||||
.table-room_types {
|
||||
flex: 1 1 auto;
|
||||
margin-top: 1.6em;
|
||||
}
|
||||
|
||||
#hcal_management_widget {
|
||||
overflow: auto;
|
||||
height: 84vh;
|
||||
display:flex;
|
||||
}
|
||||
|
||||
#hcal-management-container-dd {
|
||||
overflow: auto;
|
||||
position: relative;
|
||||
flex: 1 1 auto;
|
||||
}
|
||||
|
||||
#btn_save_changes, #btn_massive_changes {
|
||||
|
||||
Reference in New Issue
Block a user