[WIP][MIG][11.0] hotel_calendar

This commit is contained in:
QS5ELkMu
2018-09-12 15:52:48 +02:00
parent 52562f7341
commit 8258d61479
9 changed files with 45 additions and 30 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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){

View File

@@ -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,
})
}
});
});

View File

@@ -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) {

View File

@@ -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],

View File

@@ -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,
});
},
});

View File

@@ -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);
},

View File

@@ -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 {