mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
238 lines
8.4 KiB
Python
238 lines
8.4 KiB
Python
import datetime
|
|
|
|
from freezegun import freeze_time
|
|
|
|
from .common import TestPms
|
|
|
|
|
|
@freeze_time("2021-02-01")
|
|
class TestWizardTravellerReport(TestPms):
|
|
def setUp(self):
|
|
super().setUp()
|
|
self.sale_channel_direct1 = self.env["pms.sale.channel"].create(
|
|
{
|
|
"name": "Door",
|
|
"channel_type": "direct",
|
|
}
|
|
)
|
|
|
|
# number of seats established in the property
|
|
self.pms_property1.ine_seats = 50
|
|
|
|
# create room types
|
|
self.room_type = self.env["pms.room.type"].create(
|
|
{
|
|
"name": "Room type test",
|
|
"default_code": "DBL_Test",
|
|
"class_id": self.room_type_class1.id,
|
|
}
|
|
)
|
|
# room property 1
|
|
self.room_double_1 = self.env["pms.room"].create(
|
|
{
|
|
"pms_property_id": self.pms_property1.id,
|
|
"name": "Room test 1",
|
|
"room_type_id": self.room_type.id,
|
|
"capacity": 2,
|
|
}
|
|
)
|
|
|
|
# room property 2
|
|
self.room_double_property_2 = self.env["pms.room"].create(
|
|
{
|
|
"pms_property_id": self.pms_property2.id,
|
|
"name": "Room test, property 2",
|
|
"room_type_id": self.room_type.id,
|
|
"capacity": 2,
|
|
}
|
|
)
|
|
|
|
# create document category
|
|
self.id_category_passport = self.env["res.partner.id_category"].create(
|
|
{
|
|
"name": "Passport",
|
|
"code": "P",
|
|
"active": True,
|
|
}
|
|
)
|
|
self.country_italy = self.env["res.country"].search([("code", "=", "IT")])
|
|
self.country_italy.ensure_one()
|
|
# Create partner for property 1
|
|
self.partner_1 = self.env["res.partner"].create(
|
|
{
|
|
"name": "partner1",
|
|
"country_id": self.country_italy.id,
|
|
"nationality_id": self.country_italy.id,
|
|
"residence_country_id": self.country_italy.id,
|
|
"birthdate_date": "2000-06-25",
|
|
"gender": "male",
|
|
}
|
|
)
|
|
self.env["res.partner.id_number"].create(
|
|
{
|
|
"category_id": self.id_category_passport.id,
|
|
"name": "55103354T",
|
|
"valid_from": datetime.date.today(),
|
|
"partner_id": self.partner_1.id,
|
|
}
|
|
)
|
|
|
|
# Create partner for property 2
|
|
self.partner_2 = self.env["res.partner"].create(
|
|
{
|
|
"name": "partner2",
|
|
"country_id": self.country_italy.id,
|
|
"nationality_id": self.country_italy.id,
|
|
"residence_country_id": self.country_italy.id,
|
|
"birthdate_date": "2000-06-25",
|
|
"gender": "male",
|
|
}
|
|
)
|
|
self.env["res.partner.id_number"].create(
|
|
{
|
|
"category_id": self.id_category_passport.id,
|
|
"name": "45437298Q",
|
|
"valid_from": datetime.date.today(),
|
|
"partner_id": self.partner_2.id,
|
|
}
|
|
)
|
|
|
|
def test_checkin_property_not_found(self):
|
|
"""
|
|
Checking partners are only generated for the property that corresponds to it.
|
|
Reservation 1: property 1 with its checkin partner
|
|
Reservation 2: proprerty 2 with its checkin partner
|
|
Document number of checkin 2 shouldnt be present at result
|
|
"""
|
|
|
|
# ARRANGE
|
|
# Create reservation 1
|
|
self.reservation_1 = self.env["pms.reservation"].create(
|
|
{
|
|
"checkin": datetime.date.today(),
|
|
"checkout": datetime.date.today() + datetime.timedelta(days=1),
|
|
"preferred_room_id": self.room_double_1.id,
|
|
"partner_id": self.partner_1.id,
|
|
"adults": 1,
|
|
"pms_property_id": self.pms_property1.id,
|
|
"sale_channel_origin_id": self.sale_channel_direct1.id,
|
|
}
|
|
)
|
|
self.checkin1 = self.env["pms.checkin.partner"].create(
|
|
{
|
|
"partner_id": self.partner_1.id,
|
|
"reservation_id": self.reservation_1.id,
|
|
"firstname": "John",
|
|
"lastname": "Doe",
|
|
"residence_street": "Test street 1",
|
|
"residence_city": "Test city",
|
|
"residence_zip": "08001",
|
|
}
|
|
)
|
|
# Create reservation 2
|
|
self.reservation_2 = self.env["pms.reservation"].create(
|
|
{
|
|
"checkin": datetime.date.today(),
|
|
"checkout": datetime.date.today() + datetime.timedelta(days=1),
|
|
"preferred_room_id": self.room_double_property_2.id,
|
|
"partner_id": self.partner_2.id,
|
|
"adults": 1,
|
|
"pms_property_id": self.pms_property2.id,
|
|
"sale_channel_origin_id": self.sale_channel_direct1.id,
|
|
}
|
|
)
|
|
self.checkin2 = self.env["pms.checkin.partner"].create(
|
|
{
|
|
"partner_id": self.partner_2.id,
|
|
"reservation_id": self.reservation_2.id,
|
|
"firstname": "Martha",
|
|
"lastname": "Stewart",
|
|
"residence_street": "Test street 1",
|
|
"residence_city": "Test city",
|
|
"residence_zip": "08001",
|
|
}
|
|
)
|
|
# checkin partners on board
|
|
self.checkin1.action_on_board()
|
|
self.checkin2.action_on_board()
|
|
|
|
# ACT
|
|
result_checkin_list = (
|
|
self.env["traveller.report.wizard"]
|
|
.create({})
|
|
.generate_checkin_list(self.pms_property1.id)
|
|
)
|
|
|
|
# ASSERT
|
|
self.assertNotIn(self.checkin2.document_number, result_checkin_list)
|
|
|
|
def test_checkin_property_found(self):
|
|
"""
|
|
Checking partners are only generated for the property that corresponds to it.
|
|
Reservation 1: property 1 with its checkin partner
|
|
Reservation 2: proprerty 2 with its checkin partner
|
|
Document number of checkin 1 should be present at result
|
|
"""
|
|
|
|
# ARRANGE
|
|
# Create reservation 1
|
|
self.reservation_1 = self.env["pms.reservation"].create(
|
|
{
|
|
"checkin": datetime.date.today(),
|
|
"checkout": datetime.date.today() + datetime.timedelta(days=1),
|
|
"preferred_room_id": self.room_double_1.id,
|
|
"partner_id": self.partner_1.id,
|
|
"adults": 1,
|
|
"pms_property_id": self.pms_property1.id,
|
|
"sale_channel_origin_id": self.sale_channel_direct1.id,
|
|
}
|
|
)
|
|
self.checkin1 = self.env["pms.checkin.partner"].create(
|
|
{
|
|
"partner_id": self.partner_1.id,
|
|
"reservation_id": self.reservation_1.id,
|
|
"firstname": "John",
|
|
"lastname": "Doe",
|
|
"nationality_id": self.country_italy.id,
|
|
"residence_street": "Test street 1",
|
|
"residence_city": "Test city",
|
|
"residence_zip": "08001",
|
|
}
|
|
)
|
|
# Create reservation 2
|
|
self.reservation_2 = self.env["pms.reservation"].create(
|
|
{
|
|
"checkin": datetime.date.today(),
|
|
"checkout": datetime.date.today() + datetime.timedelta(days=1),
|
|
"preferred_room_id": self.room_double_property_2.id,
|
|
"partner_id": self.partner_2.id,
|
|
"adults": 1,
|
|
"pms_property_id": self.pms_property2.id,
|
|
"sale_channel_origin_id": self.sale_channel_direct1.id,
|
|
}
|
|
)
|
|
self.checkin2 = self.env["pms.checkin.partner"].create(
|
|
{
|
|
"partner_id": self.partner_2.id,
|
|
"reservation_id": self.reservation_2.id,
|
|
"firstname": "Martha",
|
|
"lastname": "Stewart",
|
|
"residence_street": "Test street 1",
|
|
"residence_city": "Test city",
|
|
"residence_zip": "08001",
|
|
}
|
|
)
|
|
# checkin partners on board
|
|
self.checkin1.action_on_board()
|
|
self.checkin2.action_on_board()
|
|
|
|
# ACT
|
|
result_checkin_list = (
|
|
self.env["traveller.report.wizard"]
|
|
.create({})
|
|
.generate_checkin_list(self.pms_property1.id)
|
|
)
|
|
|
|
# ASSERT
|
|
self.assertIn(self.checkin1.document_number, result_checkin_list)
|