[WIP] Wizard Reservations

This commit is contained in:
Dario Lodeiros
2019-03-10 10:04:02 +01:00
parent fabe968110
commit c848e66892
5 changed files with 129 additions and 76 deletions

View File

@@ -477,6 +477,7 @@ class HotelReservation(models.Model):
line.onchange_board_service()
if 'pricelist_id' not in values:
line.onchange_partner_id()
onchange_fields.append('pricelist_id')
for field in onchange_fields:
if field not in values:
res[field] = line._fields[field].convert_to_write(line[field], line)
@@ -684,9 +685,8 @@ class HotelReservation(models.Model):
return
occupied = self.env['hotel.reservation'].get_reservations(
self.checkin,
fields.Date.from_string(self.checkout).strftime(
DEFAULT_SERVER_DATE_FORMAT)).filtered(
lambda r: r.id != self._origin.id)
(fields.Date.from_string(self.checkout) - timedelta(days=1)).
strftime(DEFAULT_SERVER_DATE_FORMAT))
rooms_occupied = occupied.mapped('room_id.id')
if self.room_id and self.room_id.id in rooms_occupied:
warning_msg = _('You tried to change \
@@ -946,7 +946,7 @@ class HotelReservation(models.Model):
def get_reservations(self, dfrom, dto):
"""
@param dfrom: range date from
@param dto: range date to
@param dto: range date to (NO CHECKOUT, only night)
@return: array with the reservations _confirmed_ between both dates `dfrom` and `dto`
"""
domain = self._get_domain_reservations_occupation(dfrom, dto)
@@ -958,7 +958,7 @@ class HotelReservation(models.Model):
('reservation_line_ids.date', '<=', dto),
('state', '!=', 'cancelled'),
('overbooking', '=', False),
('reselling', '=', False),]
('reselling', '=', False)]
return domain
# INFO: This function is not in use and should include `dto` in the search
@@ -1003,7 +1003,8 @@ class HotelReservation(models.Model):
if not self.overbooking and not self._context.get("ignore_avail_restrictions", False):
occupied = self.env['hotel.reservation'].get_reservations(
self.checkin,
self.checkout)
(fields.Date.from_string(self.checkout) - timedelta(days=1)).
strftime(DEFAULT_SERVER_DATE_FORMAT))
occupied = occupied.filtered(
lambda r: r.room_id.id == self.room_id.id
and r.id != self.id)

View File

@@ -7,7 +7,6 @@ from odoo.tools import (
float_compare,
DEFAULT_SERVER_DATE_FORMAT)
from datetime import timedelta
from odoo.exceptions import ValidationError
from odoo.addons import decimal_precision as dp
import logging
_logger = logging.getLogger(__name__)
@@ -38,7 +37,6 @@ class HotelService(models.Model):
result.append((res.id, name))
return result
@api.model
def _default_ser_room_line(self):
if self.env.context.get('room_lines'):