Here is your confirmation code: .
Keep this code for any question about your booking order.
-
You can find the reservation details below:
+
You can find the reservation details below:
+
-
-
-
-
-
-
- If you have any questions, please do not hesitate to contact with the property's staff.
+
+
+
+ If you have any questions, please do not hesitate to contact with the property's staff.
Looking forward to seeing you at our property,
Best regards.
-
-
-
-
-
-
+
+
+
+
+
Privacy Policy: We use your Personal Information only for managing your reservation. By using the property, you
agree to the collection and use of information in accordance with this policy.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Property: Reservation Confirmed
-
- ${('%s <%s>' % (object.pms_property_id.partner_id.name, object.pms_property_id.partner_id.email) or '')|safe}
+
+ ${('%s <%s>' % (object.pms_property_id.partner_id.name, object.pms_property_id.partner_id.email) or '')|safe}${(object.email or '')|safe}${(object.partner_id.id or '')}${object.partner_id.lang}
- Your reservation ${object.name} has been confirmed by the property staff
-
+ Your reservation ${object.name} has been confirmed by the property staff
+ qweb
-
-
-
+
+
diff --git a/pms/tests/__init__.py b/pms/tests/__init__.py
index 2f32bd6cf..dc537dc29 100644
--- a/pms/tests/__init__.py
+++ b/pms/tests/__init__.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
diff --git a/pms/tests/common.py b/pms/tests/common.py
index be7844f90..dc9aa610d 100644
--- a/pms/tests/common.py
+++ b/pms/tests/common.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
@@ -20,46 +19,50 @@
# along with this program. If not, see .
#
##############################################################################
+import logging
from datetime import timedelta
+
from odoo import api, fields
from odoo.tests import common
-from odoo.tools import (
- DEFAULT_SERVER_DATE_FORMAT,
- DEFAULT_SERVER_DATETIME_FORMAT)
-import logging
+from odoo.tools import DEFAULT_SERVER_DATE_FORMAT, DEFAULT_SERVER_DATETIME_FORMAT
+
_logger = logging.getLogger(__name__)
class TestHotel(common.SavepointCase):
-
@classmethod
def _init_mock_hotel(cls):
return True
def create_folio(self, creator, partner):
# Create Folio
- folio = self.env['hotel.folio'].sudo(creator).create({
- 'partner_id': partner.id,
- })
+ folio = (
+ self.env["hotel.folio"].sudo(creator).create({"partner_id": partner.id,})
+ )
self.assertTrue(folio, "Can't create folio")
return folio
- def create_reservation(self, creator, folio, checkin, checkout, room,
- resname, adults=1, children=0):
+ def create_reservation(
+ self, creator, folio, checkin, checkout, room, resname, adults=1, children=0
+ ):
# Create Reservation (Special Room)
- reservation = self.env['hotel.reservation'].sudo(creator).create({
- 'name': resname,
- 'adults': adults,
- 'children': children,
- 'checkin': checkin.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
- 'checkout': checkout.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
- 'folio_id': folio.id,
- 'room_type_id': room.price_room_type.id,
- 'product_id': room.product_id.id,
- })
- self.assertTrue(
- reservation,
- "Hotel Calendar can't create a new reservation!")
+ reservation = (
+ self.env["hotel.reservation"]
+ .sudo(creator)
+ .create(
+ {
+ "name": resname,
+ "adults": adults,
+ "children": children,
+ "checkin": checkin.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
+ "checkout": checkout.strftime(DEFAULT_SERVER_DATETIME_FORMAT),
+ "folio_id": folio.id,
+ "room_type_id": room.price_room_type.id,
+ "product_id": room.product_id.id,
+ }
+ )
+ )
+ self.assertTrue(reservation, "Hotel Calendar can't create a new reservation!")
# Create Reservation Lines + Update Reservation Price
# days_diff = date_utils.date_diff(checkin, checkout, hours=False)
@@ -79,27 +82,26 @@ class TestHotel(common.SavepointCase):
cls._init_mock_hotel()
# Create Tests Records
- cls.main_hotel_property = cls.env.ref('hotel.main_hotel_property')
- cls.demo_hotel_property = cls.env.ref('hotel.demo_hotel_property')
+ cls.main_hotel_property = cls.env.ref("hotel.main_hotel_property")
+ cls.demo_hotel_property = cls.env.ref("hotel.demo_hotel_property")
- cls.room_type_0 = cls.env.ref('hotel.hotel_room_type_0')
- cls.room_type_1 = cls.env.ref('hotel.hotel_room_type_1')
- cls.room_type_2 = cls.env.ref('hotel.hotel_room_type_2')
- cls.room_type_3 = cls.env.ref('hotel.hotel_room_type_3')
+ cls.room_type_0 = cls.env.ref("hotel.hotel_room_type_0")
+ cls.room_type_1 = cls.env.ref("hotel.hotel_room_type_1")
+ cls.room_type_2 = cls.env.ref("hotel.hotel_room_type_2")
+ cls.room_type_3 = cls.env.ref("hotel.hotel_room_type_3")
- cls.demo_room_type_0 = cls.env.ref('hotel.demo_hotel_room_type_0')
- cls.demo_room_type_1 = cls.env.ref('hotel.demo_hotel_room_type_1')
+ cls.demo_room_type_0 = cls.env.ref("hotel.demo_hotel_room_type_0")
+ cls.demo_room_type_1 = cls.env.ref("hotel.demo_hotel_room_type_1")
- cls.room_0 = cls.env.ref('hotel.hotel_room_0')
- cls.room_1 = cls.env.ref('hotel.hotel_room_1')
- cls.room_2 = cls.env.ref('hotel.hotel_room_2')
- cls.room_3 = cls.env.ref('hotel.hotel_room_3')
- cls.room_4 = cls.env.ref('hotel.hotel_room_4')
- cls.room_5 = cls.env.ref('hotel.hotel_room_5')
- cls.room_6 = cls.env.ref('hotel.hotel_room_6')
+ cls.room_0 = cls.env.ref("hotel.hotel_room_0")
+ cls.room_1 = cls.env.ref("hotel.hotel_room_1")
+ cls.room_2 = cls.env.ref("hotel.hotel_room_2")
+ cls.room_3 = cls.env.ref("hotel.hotel_room_3")
+ cls.room_4 = cls.env.ref("hotel.hotel_room_4")
+ cls.room_5 = cls.env.ref("hotel.hotel_room_5")
+ cls.room_6 = cls.env.ref("hotel.hotel_room_6")
- cls.list0 = cls.env.ref('product.list0')
- cls.list1 = cls.env['product.pricelist'].create({
- 'name': 'Test Pricelist',
- 'pricelist_type': ''
- })
+ cls.list0 = cls.env.ref("product.list0")
+ cls.list1 = cls.env["product.pricelist"].create(
+ {"name": "Test Pricelist", "pricelist_type": ""}
+ )
diff --git a/pms/tests/test_folio.py b/pms/tests/test_folio.py
index 4c53e7912..6f5e26f5b 100644
--- a/pms/tests/test_folio.py
+++ b/pms/tests/test_folio.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
@@ -21,12 +20,13 @@
#
##############################################################################
from datetime import timedelta
-from .common import TestHotel
+
from odoo.addons.hotel import date_utils
+from .common import TestHotel
+
class TestHotelReservations(TestHotel):
-
def test_cancel_folio(self):
now_utc_dt = date_utils.now()
@@ -39,17 +39,18 @@ class TestHotelReservations(TestHotel):
org_reserv_start_utc_dt,
org_reserv_end_utc_dt,
self.hotel_room_double_200,
- "Reservation Test #1")
+ "Reservation Test #1",
+ )
reservation_b = self.create_reservation(
self.user_hotel_manager,
folio,
org_reserv_start_utc_dt,
org_reserv_end_utc_dt,
self.hotel_room_simple_100,
- "Reservation Test #2")
- self.assertEqual(len(folio.reservation_ids), 2, 'Invalid room lines count')
+ "Reservation Test #2",
+ )
+ self.assertEqual(len(folio.reservation_ids), 2, "Invalid room lines count")
folio.action_cancel()
- self.assertEqual(folio.state, 'cancel', 'Invalid folio state')
+ self.assertEqual(folio.state, "cancel", "Invalid folio state")
for rline in folio.reservation_ids:
- self.assertEqual(rline.state, 'cancelled',
- 'Invalid reservation state')
+ self.assertEqual(rline.state, "cancelled", "Invalid reservation state")
diff --git a/pms/tests/test_hotel_property.py b/pms/tests/test_hotel_property.py
index 2e4efbca4..5f01cb038 100644
--- a/pms/tests/test_hotel_property.py
+++ b/pms/tests/test_hotel_property.py
@@ -1,7 +1,8 @@
-from .common import TestHotel
from odoo import fields
from odoo.exceptions import ValidationError
+from .common import TestHotel
+
class TestHotelProperty(TestHotel):
diff --git a/pms/tests/test_hotel_room.py b/pms/tests/test_hotel_room.py
index d047b00e0..c4aa1e140 100644
--- a/pms/tests/test_hotel_room.py
+++ b/pms/tests/test_hotel_room.py
@@ -19,36 +19,36 @@
# along with this program. If not, see .
#
##############################################################################
-from .common import TestHotel
from odoo.exceptions import ValidationError
+from .common import TestHotel
+
class TestHotelRoom(TestHotel):
-
def test_rooms_by_hotel(self):
# A room cannot be created in a room type of another hotel
with self.assertRaises(ValidationError):
- record = self.env['hotel.room'].sudo().create({
- 'name': 'Test Room',
- 'hotel_id': self.demo_hotel_property.id,
- 'room_type_id': self.room_type_0.id,
- })
+ record = (
+ self.env["hotel.room"]
+ .sudo()
+ .create(
+ {
+ "name": "Test Room",
+ "hotel_id": self.demo_hotel_property.id,
+ "room_type_id": self.room_type_0.id,
+ }
+ )
+ )
# A room cannot be changed to another hotel
with self.assertRaises(ValidationError):
- self.room_0.sudo().write({
- 'hotel_id': self.demo_room_type_0.hotel_id.id
- })
+ self.room_0.sudo().write({"hotel_id": self.demo_room_type_0.hotel_id.id})
def test_rooms_by_room_type(self):
# A room cannot be changed to a room type of another hotel
with self.assertRaises(ValidationError):
- self.room_0.sudo().write({
- 'room_type_id': self.demo_room_type_1.id
- })
+ self.room_0.sudo().write({"room_type_id": self.demo_room_type_1.id})
def test_check_capacity(self):
# The capacity of the room must be greater than 0
with self.assertRaises(ValidationError):
- self.room_0.sudo().write({
- 'capacity': 0
- })
+ self.room_0.sudo().write({"capacity": 0})
diff --git a/pms/tests/test_hotel_room_type.py b/pms/tests/test_hotel_room_type.py
index a1bf6ec82..bff93c081 100644
--- a/pms/tests/test_hotel_room_type.py
+++ b/pms/tests/test_hotel_room_type.py
@@ -19,10 +19,12 @@
# along with this program. If not, see .
#
##############################################################################
-from .common import TestHotel
from psycopg2 import IntegrityError
+
from odoo.tools import mute_logger
+from .common import TestHotel
+
class TestHotelRoomType(TestHotel):
@@ -30,15 +32,12 @@ class TestHotelRoomType(TestHotel):
# code type must be unique by hotel
def test_code_type_unique_by_hotel(self):
- with self.assertRaises(IntegrityError), mute_logger('odoo.sql_db'):
- self.room_type_0.sudo().write({
- 'code_type': self.room_type_1.code_type
- })
+ with self.assertRaises(IntegrityError), mute_logger("odoo.sql_db"):
+ self.room_type_0.sudo().write({"code_type": self.room_type_1.code_type})
# code type can be used in other hotel
def test_code_type_shared_by_hotel(self):
- test_result = self.demo_room_type_0.sudo().write({
- 'code_type': self.room_type_0.code_type
- })
+ test_result = self.demo_room_type_0.sudo().write(
+ {"code_type": self.room_type_0.code_type}
+ )
self.assertEqual(test_result, True)
-
diff --git a/pms/tests/test_inherited_ir_http.py b/pms/tests/test_inherited_ir_http.py
index 63518fcf1..c3c92f698 100644
--- a/pms/tests/test_inherited_ir_http.py
+++ b/pms/tests/test_inherited_ir_http.py
@@ -1,11 +1,10 @@
-# -*- coding: utf-8 -*-
from .common import TestHotel
class TestInheritedIrHttp(TestHotel):
-
def test_user_hotel_company(self):
- admin_user = self.env.ref('base.user_root')
- self.assertTrue(admin_user.hotel_id.company_id in admin_user.company_ids,
- "Wrong hotel and company access settings for %s" % admin_user.name)
-
+ admin_user = self.env.ref("base.user_root")
+ self.assertTrue(
+ admin_user.hotel_id.company_id in admin_user.company_ids,
+ "Wrong hotel and company access settings for %s" % admin_user.name,
+ )
diff --git a/pms/tests/test_inherited_product_pricelist.py b/pms/tests/test_inherited_product_pricelist.py
index be7f56507..abfe2e408 100644
--- a/pms/tests/test_inherited_product_pricelist.py
+++ b/pms/tests/test_inherited_product_pricelist.py
@@ -1,7 +1,8 @@
-from .common import TestHotel
from odoo import fields
from odoo.exceptions import ValidationError
+from .common import TestHotel
+
class TestInheritedProductPricelist(TestHotel):
@@ -17,11 +18,13 @@ class TestInheritedProductPricelist(TestHotel):
self.list0.hotel_ids = False
# create a valid record using a daily pricelist
- test_result = self.env['product.pricelist'].create({
- 'name': 'Test Daily Pricelist',
- 'hotel_ids': [(4, self.demo_hotel_property.id)]
- })
- self.assertEqual(test_result.pricelist_type, 'daily')
+ test_result = self.env["product.pricelist"].create(
+ {
+ "name": "Test Daily Pricelist",
+ "hotel_ids": [(4, self.demo_hotel_property.id)],
+ }
+ )
+ self.assertEqual(test_result.pricelist_type, "daily")
self.assertEqual(test_result.hotel_ids, self.demo_hotel_property)
def test_pricelist_by_hotel(self):
diff --git a/pms/tests/test_massive_changes.py b/pms/tests/test_massive_changes.py
index 83b0a3ee9..1da2d6b8f 100644
--- a/pms/tests/test_massive_changes.py
+++ b/pms/tests/test_massive_changes.py
@@ -1,7 +1,8 @@
-from .common import TestHotel
from odoo import fields
from odoo.exceptions import ValidationError
+from .common import TestHotel
+
class TestMassiveChanges(TestHotel):
@@ -10,59 +11,51 @@ class TestMassiveChanges(TestHotel):
# base massive change record
def base_massive_change_vals(self, hotel_id=None):
return {
- 'hotel_id': hotel_id and hotel_id.id or self.main_hotel_property.id,
- 'date_start': fields.Date.today(),
- 'date_end': fields.Date.today(),
+ "hotel_id": hotel_id and hotel_id.id or self.main_hotel_property.id,
+ "date_start": fields.Date.today(),
+ "date_end": fields.Date.today(),
}
def pricelist_massive_change_vals(self, pricelist_id=None):
return {
- 'pricelist_id': pricelist_id and pricelist_id.id or self.list0.id,
- 'price': 50.0,
+ "pricelist_id": pricelist_id and pricelist_id.id or self.list0.id,
+ "price": 50.0,
}
def test_daily_pricelist(self):
# Only daily pricelist can be manage by a massive change
- self.list0.pricelist_type = ''
+ self.list0.pricelist_type = ""
with self.assertRaises(ValidationError):
vals = self.base_massive_change_vals()
- vals.update(
- self.pricelist_massive_change_vals()
- )
- self.env['hotel.wizard.massive.changes'].create(vals)
+ vals.update(self.pricelist_massive_change_vals())
+ self.env["hotel.wizard.massive.changes"].create(vals)
# create a valid record using a daily pricelist
- self.list0.pricelist_type = 'daily'
- test_result = self.env['hotel.wizard.massive.changes'].create(vals)
+ self.list0.pricelist_type = "daily"
+ test_result = self.env["hotel.wizard.massive.changes"].create(vals)
self.assertEqual(test_result.pricelist_id, self.list0)
def test_pricelist_by_hotel(self):
# Ensure the pricelist plan belongs to the current hotel #1
with self.assertRaises(ValidationError):
vals = self.base_massive_change_vals(self.demo_hotel_property)
- vals.update(
- self.pricelist_massive_change_vals()
- )
- self.env['hotel.wizard.massive.changes'].create(vals)
+ vals.update(self.pricelist_massive_change_vals())
+ self.env["hotel.wizard.massive.changes"].create(vals)
# Ensure the pricelist plan belongs to the current hotel #2
with self.assertRaises(ValidationError):
vals = self.base_massive_change_vals()
- vals.update(
- self.pricelist_massive_change_vals(self.list1)
- )
+ vals.update(self.pricelist_massive_change_vals(self.list1))
self.list1.hotel_ids = self.demo_hotel_property
- self.list1.pricelist_type = 'daily'
- self.env['hotel.wizard.massive.changes'].create(vals)
+ self.list1.pricelist_type = "daily"
+ self.env["hotel.wizard.massive.changes"].create(vals)
# create a valid record using the current hotel
vals = self.base_massive_change_vals()
- vals.update(
- self.pricelist_massive_change_vals(self.list1)
- )
+ vals.update(self.pricelist_massive_change_vals(self.list1))
self.list1.hotel_ids = self.main_hotel_property
- self.list1.pricelist_type = 'daily'
- test_result = self.env['hotel.wizard.massive.changes'].create(vals)
+ self.list1.pricelist_type = "daily"
+ test_result = self.env["hotel.wizard.massive.changes"].create(vals)
self.assertEqual(test_result.pricelist_id.hotel_ids, self.main_hotel_property)
def test_do_massive_change(self):
diff --git a/pms/tests/test_reservation.py b/pms/tests/test_reservation.py
index dc02750e0..acb7b7af9 100644
--- a/pms/tests/test_reservation.py
+++ b/pms/tests/test_reservation.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
@@ -21,19 +20,23 @@
#
##############################################################################
import datetime
-from datetime import timedelta
-from odoo import fields
-from openerp.tools import DEFAULT_SERVER_DATE_FORMAT
-from openerp.exceptions import ValidationError
-from .common import TestHotel
-from odoo.addons.hotel import date_utils
-import pytz
import logging
+from datetime import timedelta
+
+import pytz
+from openerp.exceptions import ValidationError
+from openerp.tools import DEFAULT_SERVER_DATE_FORMAT
+
+from odoo import fields
+
+from odoo.addons.hotel import date_utils
+
+from .common import TestHotel
+
_logger = logging.getLogger(__name__)
class TestHotelReservations(TestHotel):
-
def test_create_reservation(self):
now_utc_dt = date_utils.now()
reserv_start_utc_dt = now_utc_dt + timedelta(days=3)
@@ -45,25 +48,32 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Reservation Test #1")
+ "Reservation Test #1",
+ )
- reserv_start_dt = date_utils.dt_as_timezone(reserv_start_utc_dt,
- self.tz_hotel)
- reserv_end_dt = date_utils.dt_as_timezone(reserv_end_utc_dt -
- timedelta(days=1),
- self.tz_hotel)
- self.assertEqual(reservation.reservation_lines[0].date,
- reserv_start_dt.strftime(DEFAULT_SERVER_DATE_FORMAT),
- "Reservation lines don't start in the correct date")
- self.assertEqual(reservation.reservation_lines[-1].date,
- reserv_end_dt.strftime(DEFAULT_SERVER_DATE_FORMAT),
- "Reservation lines don't end in the correct date")
+ reserv_start_dt = date_utils.dt_as_timezone(reserv_start_utc_dt, self.tz_hotel)
+ reserv_end_dt = date_utils.dt_as_timezone(
+ reserv_end_utc_dt - timedelta(days=1), self.tz_hotel
+ )
+ self.assertEqual(
+ reservation.reservation_lines[0].date,
+ reserv_start_dt.strftime(DEFAULT_SERVER_DATE_FORMAT),
+ "Reservation lines don't start in the correct date",
+ )
+ self.assertEqual(
+ reservation.reservation_lines[-1].date,
+ reserv_end_dt.strftime(DEFAULT_SERVER_DATE_FORMAT),
+ "Reservation lines don't end in the correct date",
+ )
total_price = 0.0
for rline in reservation.reservation_lines:
total_price += rline.price
- self.assertEqual(folio.amount_untaxed, total_price,
- "Folio amount doesn't match with reservation lines")
+ self.assertEqual(
+ folio.amount_untaxed,
+ total_price,
+ "Folio amount doesn't match with reservation lines",
+ )
def test_create_reservations(self):
now_utc_dt = date_utils.now()
@@ -76,7 +86,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Reservation Test #1")
+ "Reservation Test #1",
+ )
reserv_start_utc_dt = reserv_end_utc_dt
reserv_end_utc_dt = reserv_start_utc_dt + timedelta(days=3)
@@ -87,7 +98,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Reservation Test #2")
+ "Reservation Test #2",
+ )
reserv_end_utc_dt = now_utc_dt + timedelta(days=3)
reserv_start_utc_dt = reserv_end_utc_dt - timedelta(days=1)
@@ -98,7 +110,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Reservation Test #3")
+ "Reservation Test #3",
+ )
reserv_start_utc_dt = now_utc_dt + timedelta(days=3)
reserv_end_utc_dt = reserv_start_utc_dt + timedelta(days=3)
@@ -109,7 +122,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_simple_100,
- "Reservation Test #4")
+ "Reservation Test #4",
+ )
def test_create_invalid_reservations(self):
now_utc_dt = date_utils.now()
@@ -123,7 +137,8 @@ class TestHotelReservations(TestHotel):
org_reserv_start_utc_dt,
org_reserv_end_utc_dt,
self.hotel_room_double_200,
- "Original Reservation Test #1")
+ "Original Reservation Test #1",
+ )
# Same Dates
reserv_start_utc_dt = now_utc_dt + timedelta(days=3)
@@ -136,7 +151,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Invalid Reservation Test #1")
+ "Invalid Reservation Test #1",
+ )
# Inside Org Reservation (Start Same Date)
reserv_start_utc_dt = now_utc_dt + timedelta(days=3)
@@ -149,7 +165,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Invalid Reservation Test #2")
+ "Invalid Reservation Test #2",
+ )
# Inside Org Reservation (Start after)
reserv_start_utc_dt = now_utc_dt + timedelta(days=4)
@@ -162,7 +179,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Invalid Reservation Test #3")
+ "Invalid Reservation Test #3",
+ )
# Intersect Org Reservation (Start before)
reserv_start_utc_dt = now_utc_dt + timedelta(days=2)
@@ -175,7 +193,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Invalid Reservation Test #4")
+ "Invalid Reservation Test #4",
+ )
# Intersect Org Reservation (End Same)
reserv_start_utc_dt = org_reserv_end_utc_dt - timedelta(days=2)
@@ -188,7 +207,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Invalid Reservation Test #5")
+ "Invalid Reservation Test #5",
+ )
# Intersect Org Reservation (End after)
reserv_start_utc_dt = org_reserv_end_utc_dt - timedelta(days=2)
@@ -201,7 +221,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Invalid Reservation Test #6")
+ "Invalid Reservation Test #6",
+ )
# Overlays Org Reservation
reserv_start_utc_dt = org_reserv_start_utc_dt - timedelta(days=2)
@@ -214,7 +235,8 @@ class TestHotelReservations(TestHotel):
reserv_start_utc_dt,
reserv_end_utc_dt,
self.hotel_room_double_200,
- "Invalid Reservation Test #7")
+ "Invalid Reservation Test #7",
+ )
# Checkin > Checkout
with self.assertRaises(ValidationError):
@@ -225,14 +247,17 @@ class TestHotelReservations(TestHotel):
org_reserv_end_utc_dt,
org_reserv_start_utc_dt,
self.hotel_room_simple_100,
- "Invalid Reservation Test #8")
+ "Invalid Reservation Test #8",
+ )
def test_modify_reservation(self):
now_utc_dt = date_utils.now()
# 5.0, 15.0, 15.0, 35.0, 35.0, 10.0, 10.0
- room_type_prices = self.prices_tmp[self.hotel_room_double_200.price_room_type.id]
+ room_type_prices = self.prices_tmp[
+ self.hotel_room_double_200.price_room_type.id
+ ]
org_reserv_start_utc_dt = now_utc_dt + timedelta(days=1)
org_reserv_end_utc_dt = org_reserv_start_utc_dt + timedelta(days=2)
folio = self.create_folio(self.user_hotel_manager, self.partner_2)
@@ -242,19 +267,28 @@ class TestHotelReservations(TestHotel):
org_reserv_start_utc_dt,
org_reserv_end_utc_dt,
self.hotel_room_double_200,
- "Original Reservation Test #1")
+ "Original Reservation Test #1",
+ )
ndate = org_reserv_start_utc_dt
for r_k, r_v in enumerate(reservation.reservation_lines):
self.assertEqual(r_v.date, ndate.strftime(DEFAULT_SERVER_DATE_FORMAT))
- self.assertEqual(r_v.price, room_type_prices[r_k+1])
+ self.assertEqual(r_v.price, room_type_prices[r_k + 1])
ndate = ndate + timedelta(days=1)
self.assertEqual(reservation.amount_room, 30.0)
ndate = org_reserv_start_utc_dt + timedelta(days=1)
- line = reservation.reservation_lines.filtered(lambda r: r.date == ndate.strftime(DEFAULT_SERVER_DATE_FORMAT))
- reservation.reservation_lines = [(1, line.id, {'price': 100.0})]
+ line = reservation.reservation_lines.filtered(
+ lambda r: r.date == ndate.strftime(DEFAULT_SERVER_DATE_FORMAT)
+ )
+ reservation.reservation_lines = [(1, line.id, {"price": 100.0})]
self.assertEqual(reservation.amount_room, 115.0)
- reservation.sudo(self.user_hotel_manager).write({
- 'checkin': (org_reserv_start_utc_dt + timedelta(days=1)).strftime(DEFAULT_SERVER_DATE_FORMAT),
- 'checkout': (org_reserv_end_utc_dt + timedelta(days=1)).strftime(DEFAULT_SERVER_DATE_FORMAT),
- })
+ reservation.sudo(self.user_hotel_manager).write(
+ {
+ "checkin": (org_reserv_start_utc_dt + timedelta(days=1)).strftime(
+ DEFAULT_SERVER_DATE_FORMAT
+ ),
+ "checkout": (org_reserv_end_utc_dt + timedelta(days=1)).strftime(
+ DEFAULT_SERVER_DATE_FORMAT
+ ),
+ }
+ )
self.assertEqual(reservation.amount_room, 135.0)
diff --git a/pms/views/general.xml b/pms/views/general.xml
index ac7898093..7d5672a99 100644
--- a/pms/views/general.xml
+++ b/pms/views/general.xml
@@ -1,11 +1,12 @@
-
+
-
-
+
-
diff --git a/pms/views/inherited_account_move_views.xml b/pms/views/inherited_account_move_views.xml
index 5a24507a3..1c4511719 100644
--- a/pms/views/inherited_account_move_views.xml
+++ b/pms/views/inherited_account_move_views.xml
@@ -1,22 +1,34 @@
-
+
-
account.move
-
-
-
+
+
+
-
- {'invisible': ['|',('from_folio','=',True)]}
+
+ {'invisible': ['|',('from_folio','=',True)]}
-
-
+
+
-
diff --git a/pms/views/inherited_account_payment_views.xml b/pms/views/inherited_account_payment_views.xml
index 4cef0a53a..daa7ed7dc 100644
--- a/pms/views/inherited_account_payment_views.xml
+++ b/pms/views/inherited_account_payment_views.xml
@@ -1,19 +1,17 @@
-
+
-
- account.payment
-
-
-
-
-
-
-
-
-
+ account.payment
+
+
+
+
+
+
+
+
+
-
account.payment.folio.formaccount.payment
@@ -21,37 +19,92 @@
-
account.payment.folio.treeaccount.payment20
-
+
@@ -125,11 +202,13 @@
-
+
-
diff --git a/pms/views/inherited_product_pricelist_views.xml b/pms/views/inherited_product_pricelist_views.xml
index 3715f1881..c3681e51d 100644
--- a/pms/views/inherited_product_pricelist_views.xml
+++ b/pms/views/inherited_product_pricelist_views.xml
@@ -1,23 +1,25 @@
-
+
-
product.pricelist
-
-
+
-
-
-
-
+
diff --git a/pms/views/inherited_product_template_views.xml b/pms/views/inherited_product_template_views.xml
index d41f64625..81c726b2b 100644
--- a/pms/views/inherited_product_template_views.xml
+++ b/pms/views/inherited_product_template_views.xml
@@ -1,6 +1,5 @@
-
+
-
view.product.template.form.inheritedproduct.template
@@ -10,8 +9,11 @@
-
+
@@ -19,13 +21,15 @@
-
+
-
diff --git a/pms/views/inherited_res_partner_views.xml b/pms/views/inherited_res_partner_views.xml
index 678449494..3d0395e67 100644
--- a/pms/views/inherited_res_partner_views.xml
+++ b/pms/views/inherited_res_partner_views.xml
@@ -1,47 +1,58 @@
-
+
-
Reservations
- pms.reservation
+ pms.reservation[('partner_id', '=',active_id)]
-
Folios
- pms.folio
+ pms.folio[('partner_id', '=',active_id)]
-
res.partner.view.form res.partner
-
-
-
-
-
+
-
-
-
-
+
diff --git a/pms/views/inherited_res_users_views.xml b/pms/views/inherited_res_users_views.xml
index 2e334fe07..c3799e6aa 100644
--- a/pms/views/inherited_res_users_views.xml
+++ b/pms/views/inherited_res_users_views.xml
@@ -1,17 +1,23 @@
-
+
-
res.users
-
-
+
+
-
diff --git a/pms/views/inherited_webclient_templates.xml b/pms/views/inherited_webclient_templates.xml
index 71dd12d57..b5240df34 100644
--- a/pms/views/inherited_webclient_templates.xml
+++ b/pms/views/inherited_webclient_templates.xml
@@ -1,9 +1,12 @@
-
+
-
+
diff --git a/pms/views/pms_amenity_type_views.xml b/pms/views/pms_amenity_type_views.xml
index b4a2a3d7d..fea46de23 100644
--- a/pms/views/pms_amenity_type_views.xml
+++ b/pms/views/pms_amenity_type_views.xml
@@ -1,6 +1,5 @@
-
+
-
@@ -11,8 +10,11 @@
-
+
@@ -20,7 +22,6 @@
-
pms.room_amenity_type_list
@@ -31,16 +32,17 @@
-
Room amenity Typepms.amenity.typetree,form
-
-
-
+
diff --git a/pms/views/pms_amenity_views.xml b/pms/views/pms_amenity_views.xml
index 3bc8c9cb9..5d1a8ce19 100644
--- a/pms/views/pms_amenity_views.xml
+++ b/pms/views/pms_amenity_views.xml
@@ -1,6 +1,5 @@
-
+
-
pms.amenity.formpms.amenity
@@ -17,9 +16,16 @@
-
-
+
+
@@ -61,7 +67,6 @@
-
pms.room_amenity_searchpms.amenity
@@ -79,7 +84,6 @@
-
pms.room_amenity_listpms.amenity
@@ -91,23 +95,26 @@
-
Room Amenitiespms.amenitytree,form
-
-
-
-
-
+
+
-
-
-
-
diff --git a/pms/views/pms_board_service_room_type_views.xml b/pms/views/pms_board_service_room_type_views.xml
index 0cc582266..3064644b5 100644
--- a/pms/views/pms_board_service_room_type_views.xml
+++ b/pms/views/pms_board_service_room_type_views.xml
@@ -1,17 +1,19 @@
-
+
-
pms.board.service.room.type.formpms.board.service.room.type
-
Board Servicepms.board.service.room.typeform
-
diff --git a/pms/views/pms_board_service_views.xml b/pms/views/pms_board_service_views.xml
index 9e064516f..7829e609d 100644
--- a/pms/views/pms_board_service_views.xml
+++ b/pms/views/pms_board_service_views.xml
@@ -1,19 +1,21 @@
-
+
-
pms.board.service.formpms.board.service
-
pms.board.service.treepms.board.service
@@ -32,15 +33,16 @@
-
Board Servicespms.board.servicetree,form
-
-
-
+
diff --git a/pms/views/pms_cancelation_rule_views.xml b/pms/views/pms_cancelation_rule_views.xml
index 6eddb0ed7..d24912c4d 100644
--- a/pms/views/pms_cancelation_rule_views.xml
+++ b/pms/views/pms_cancelation_rule_views.xml
@@ -1,6 +1,5 @@
-
+
-
@@ -11,8 +10,11 @@
these are the billing information associated with the booking client or the company (if a company is assigned). If you want to bill an independent contact, you can select it in the billing assistant