mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP] Extra rows management
This commit is contained in:
@@ -88,6 +88,7 @@ function HotelCalendar(/*String*/querySelector, /*Dictionary*/options, /*List*/p
|
|||||||
this._lazyModeReservationsSelection = false; // Store Info About Timer for Selection Action
|
this._lazyModeReservationsSelection = false; // Store Info About Timer for Selection Action
|
||||||
this._domains = {}; // Store domains for filter rooms & reservations
|
this._domains = {}; // Store domains for filter rooms & reservations
|
||||||
this._divideDivs = false;
|
this._divideDivs = false;
|
||||||
|
this._extraRowIndicators = ['EX-', '/#'];
|
||||||
|
|
||||||
// Support
|
// Support
|
||||||
var self = this;
|
var self = this;
|
||||||
@@ -691,13 +692,8 @@ HotelCalendar.prototype = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
getRealExtraRoomInfo: function(/*HRoomObject*/room) {
|
getRealExtraRoomInfo: function(/*HRoomObject*/room) {
|
||||||
// Obtain real id
|
|
||||||
var isf = room.number.search('EX-');
|
|
||||||
var isfb = room.number.search('/#');
|
|
||||||
var cnumber = room.number;
|
|
||||||
if (isf != -1 && isfb != -1) { cnumber = cnumber.substr(isf+3, isfb-(isf+3)); }
|
|
||||||
|
|
||||||
// Obtain the original room row
|
// Obtain the original room row
|
||||||
|
var cnumber = this.getExtraRoomRealNumber(room);
|
||||||
var mainRoomRowId = this._sanitizeId(`ROW_${cnumber}_${room.type}`);
|
var mainRoomRowId = this._sanitizeId(`ROW_${cnumber}_${room.type}`);
|
||||||
var mainRoomRow = this.e.querySelector('#'+mainRoomRowId);
|
var mainRoomRow = this.e.querySelector('#'+mainRoomRowId);
|
||||||
if (!mainRoomRow) {
|
if (!mainRoomRow) {
|
||||||
@@ -707,12 +703,16 @@ HotelCalendar.prototype = {
|
|||||||
return [this.getRoom(mainRoomRow.dataset.hcalRoomObjId), mainRoomRow];
|
return [this.getRoom(mainRoomRow.dataset.hcalRoomObjId), mainRoomRow];
|
||||||
},
|
},
|
||||||
|
|
||||||
getExtraRoomRow: function(/*HReservationObject*/ex_reserv) {
|
getExtraRoomRealNumber: function(/*HRoomObject*/room) {
|
||||||
// Obtain real id
|
var isf = room.number.search(this._extraRowIndicators[0]);
|
||||||
var isf = ex_reserv.room.number.search('EX-');
|
var isfb = room.number.search(this._extraRowIndicators[1]);
|
||||||
var isfb = ex_reserv.room.number.search('/#');
|
var cnumber = room.number;
|
||||||
var cnumber = ex_reserv.room.number;
|
|
||||||
if (isf != -1 && isfb != -1) { cnumber = cnumber.substr(isf+3, isfb-(isf+3)); }
|
if (isf != -1 && isfb != -1) { cnumber = cnumber.substr(isf+3, isfb-(isf+3)); }
|
||||||
|
return cnumber;
|
||||||
|
},
|
||||||
|
|
||||||
|
getExtraRoomRow: function(/*HReservationObject*/ex_reserv) {
|
||||||
|
var cnumber = this.getExtraRoomRealNumber(ex_reserv.room);
|
||||||
return this.e.querySelector(`#${this._sanitizeId(`ROW_${cnumber}_${ex_reserv.room.type}_EXTRA${ex_reserv.id}`)}`);
|
return this.e.querySelector(`#${this._sanitizeId(`ROW_${cnumber}_${ex_reserv.room.type}_EXTRA${ex_reserv.id}`)}`);
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -727,7 +727,7 @@ HotelCalendar.prototype = {
|
|||||||
var exr = this.getExtraRooms(mainRoom.id);
|
var exr = this.getExtraRooms(mainRoom.id);
|
||||||
var ex_room = mainRoom.clone();
|
var ex_room = mainRoom.clone();
|
||||||
ex_room.id = `${reservId}@${mainRoom.id}`;
|
ex_room.id = `${reservId}@${mainRoom.id}`;
|
||||||
ex_room.number = `EX-${mainRoom.number}/#${exr.length}`;
|
ex_room.number = `${this._extraRowIndicators[0]}${mainRoom.number}${this._extraRowIndicators[1]}${exr.length}`;
|
||||||
for (var key in extraData) {
|
for (var key in extraData) {
|
||||||
ex_room[key] = extraData[key];
|
ex_room[key] = extraData[key];
|
||||||
}
|
}
|
||||||
@@ -1143,10 +1143,7 @@ HotelCalendar.prototype = {
|
|||||||
row.classList.add('hcal-row-room-type-group-item');
|
row.classList.add('hcal-row-room-type-group-item');
|
||||||
if ((this.options.showOverbookings && itemRoom.overbooking) || (this.options.showCancelled && itemRoom.cancelled)) {
|
if ((this.options.showOverbookings && itemRoom.overbooking) || (this.options.showCancelled && itemRoom.cancelled)) {
|
||||||
var reservId = this.parseExtraRoomId(itemRoom.id)[0];
|
var reservId = this.parseExtraRoomId(itemRoom.id)[0];
|
||||||
var cnumber = itemRoom.number;
|
var cnumber = this.getExtraRoomRealNumber(itemRoom);
|
||||||
var isf = cnumber.search('EX-');
|
|
||||||
var isfb = cnumber.search('/#');
|
|
||||||
if (isf != -1 && isfb != -1) { cnumber = cnumber.substr(isf+3, isfb-(isf+3)); }
|
|
||||||
row.setAttribute('id', this._sanitizeId(`ROW_${cnumber}_${itemRoom.type}_EXTRA${reservId}`));
|
row.setAttribute('id', this._sanitizeId(`ROW_${cnumber}_${itemRoom.type}_EXTRA${reservId}`));
|
||||||
row.classList.add('hcal-row-room-type-group-overbooking-item');
|
row.classList.add('hcal-row-room-type-group-overbooking-item');
|
||||||
} else {
|
} else {
|
||||||
@@ -1821,12 +1818,7 @@ HotelCalendar.prototype = {
|
|||||||
refToRoomNewId = `${refFromReservs.id}@${refToRoomNewId}`;
|
refToRoomNewId = `${refFromReservs.id}@${refToRoomNewId}`;
|
||||||
|
|
||||||
if (refFromRoom.overbooking || refFromRoom.cancelled) {
|
if (refFromRoom.overbooking || refFromRoom.cancelled) {
|
||||||
// Obtain real id
|
var cnumber = this.getExtraRoomRealNumber(refFromRoom);
|
||||||
var isf = refFromReservs.room.number.search('EX-');
|
|
||||||
var isfb = refFromReservs.room.number.search('/#');
|
|
||||||
var cnumber = refFromReservs.room.number;
|
|
||||||
if (isf != -1 && isfb != -1) { cnumber = cnumber.substr(isf+3, isfb-(isf+3)); }
|
|
||||||
|
|
||||||
refFromRoom.id = refFromRoomNewId;
|
refFromRoom.id = refFromRoomNewId;
|
||||||
var newRowId = `${this._sanitizeId(`ROW_${cnumber}_${refToRoom.type}_EXTRA${refToReservs.id}`)}`;
|
var newRowId = `${this._sanitizeId(`ROW_${cnumber}_${refToRoom.type}_EXTRA${refToReservs.id}`)}`;
|
||||||
var elms = fromRoomRow.querySelectorAll(`td[data-hcal-parent-row='${fromRoomRow.id}']`);
|
var elms = fromRoomRow.querySelectorAll(`td[data-hcal-parent-row='${fromRoomRow.id}']`);
|
||||||
@@ -1835,12 +1827,7 @@ HotelCalendar.prototype = {
|
|||||||
fromRoomRow.dataset.hcalRoomObjId = refFromRoom.id;
|
fromRoomRow.dataset.hcalRoomObjId = refFromRoom.id;
|
||||||
}
|
}
|
||||||
if (refToRoom.overbooking || refToRoom.cancelled) {
|
if (refToRoom.overbooking || refToRoom.cancelled) {
|
||||||
// Obtain real id
|
var cnumber = this.getExtraRoomRealNumber(refToRoom);
|
||||||
var isf = refToReservs.room.number.search('EX-');
|
|
||||||
var isfb = refToReservs.room.number.search('/#');
|
|
||||||
var cnumber = refToReservs.room.number;
|
|
||||||
if (isf != -1 && isfb != -1) { cnumber = cnumber.substr(isf+3, isfb-(isf+3)); }
|
|
||||||
|
|
||||||
refToRoom.id = refToRoomNewId;
|
refToRoom.id = refToRoomNewId;
|
||||||
var newRowId = `${this._sanitizeId(`ROW_${cnumber}_${refFromRoom.type}_EXTRA${refFromReservs.id}`)}`;
|
var newRowId = `${this._sanitizeId(`ROW_${cnumber}_${refFromRoom.type}_EXTRA${refFromReservs.id}`)}`;
|
||||||
var elms = toRoomRow.querySelectorAll(`td[data-hcal-parent-row='${toRoomRow.id}']`);
|
var elms = toRoomRow.querySelectorAll(`td[data-hcal-parent-row='${toRoomRow.id}']`);
|
||||||
|
|||||||
Reference in New Issue
Block a user