mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
@@ -452,6 +452,7 @@ class PmsCheckinPartner(models.Model):
|
|||||||
for field in record._checkin_mandatory_fields(
|
for field in record._checkin_mandatory_fields(
|
||||||
residence_country=record.residence_country_id,
|
residence_country=record.residence_country_id,
|
||||||
document_type=record.document_type,
|
document_type=record.document_type,
|
||||||
|
birthdate_date=record.birthdate_date,
|
||||||
)
|
)
|
||||||
):
|
):
|
||||||
record.state = "draft"
|
record.state = "draft"
|
||||||
@@ -782,7 +783,9 @@ class PmsCheckinPartner(models.Model):
|
|||||||
dummy_checkins = reservation.checkin_partner_ids.filtered(
|
dummy_checkins = reservation.checkin_partner_ids.filtered(
|
||||||
lambda c: c.state == "dummy"
|
lambda c: c.state == "dummy"
|
||||||
)
|
)
|
||||||
if len(reservation.checkin_partner_ids) < reservation.adults:
|
if len(reservation.checkin_partner_ids) < (
|
||||||
|
reservation.adults + reservation.children
|
||||||
|
):
|
||||||
return super(PmsCheckinPartner, self).create(vals)
|
return super(PmsCheckinPartner, self).create(vals)
|
||||||
if len(dummy_checkins) > 0:
|
if len(dummy_checkins) > 0:
|
||||||
dummy_checkins[0].write(vals)
|
dummy_checkins[0].write(vals)
|
||||||
@@ -825,6 +828,8 @@ class PmsCheckinPartner(models.Model):
|
|||||||
"residence_city",
|
"residence_city",
|
||||||
"residence_country_id",
|
"residence_country_id",
|
||||||
"residence_state_id",
|
"residence_state_id",
|
||||||
|
"document_country_id",
|
||||||
|
"document_type",
|
||||||
]
|
]
|
||||||
return manual_fields
|
return manual_fields
|
||||||
|
|
||||||
@@ -835,10 +840,10 @@ class PmsCheckinPartner(models.Model):
|
|||||||
return manual_fields
|
return manual_fields
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _checkin_mandatory_fields(self, residence_country=False, document_type=False):
|
def _checkin_mandatory_fields(
|
||||||
mandatory_fields = [
|
self, residence_country=False, document_type=False, birthdate_date=False
|
||||||
"name",
|
):
|
||||||
]
|
mandatory_fields = []
|
||||||
return mandatory_fields
|
return mandatory_fields
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
|
|||||||
@@ -1096,10 +1096,14 @@ class PmsReservation(models.Model):
|
|||||||
else:
|
else:
|
||||||
reservation.show_update_pricelist = False
|
reservation.show_update_pricelist = False
|
||||||
|
|
||||||
@api.depends("adults")
|
@api.depends("adults", "children")
|
||||||
def _compute_checkin_partner_ids(self):
|
def _compute_checkin_partner_ids(self):
|
||||||
for reservation in self:
|
for reservation in self:
|
||||||
adults = reservation.adults if reservation.reservation_type != "out" else 0
|
occupancy = (
|
||||||
|
reservation.adults + reservation.children
|
||||||
|
if reservation.reservation_type != "out"
|
||||||
|
else 0
|
||||||
|
)
|
||||||
assigned_checkins = reservation.checkin_partner_ids.filtered(
|
assigned_checkins = reservation.checkin_partner_ids.filtered(
|
||||||
lambda c: c.state in ("precheckin", "onboard", "done")
|
lambda c: c.state in ("precheckin", "onboard", "done")
|
||||||
)
|
)
|
||||||
@@ -1107,18 +1111,18 @@ class PmsReservation(models.Model):
|
|||||||
lambda c: c.state in ("dummy", "draft")
|
lambda c: c.state in ("dummy", "draft")
|
||||||
)
|
)
|
||||||
leftover_unassigneds_count = (
|
leftover_unassigneds_count = (
|
||||||
len(assigned_checkins) + len(unassigned_checkins) - adults
|
len(assigned_checkins) + len(unassigned_checkins) - occupancy
|
||||||
)
|
)
|
||||||
if len(assigned_checkins) > adults:
|
if len(assigned_checkins) > occupancy:
|
||||||
raise UserError(
|
raise UserError(
|
||||||
_("Remove some of the leftover assigned checkins first")
|
_("Remove some of the leftover assigned checkins first")
|
||||||
)
|
)
|
||||||
elif leftover_unassigneds_count > 0:
|
elif leftover_unassigneds_count > 0:
|
||||||
for i in range(0, leftover_unassigneds_count):
|
for i in range(0, leftover_unassigneds_count):
|
||||||
reservation.checkin_partner_ids = [(2, unassigned_checkins[i].id)]
|
reservation.checkin_partner_ids = [(2, unassigned_checkins[i].id)]
|
||||||
elif adults > len(reservation.checkin_partner_ids):
|
elif occupancy > len(reservation.checkin_partner_ids):
|
||||||
checkins_lst = []
|
checkins_lst = []
|
||||||
count_new_checkins = adults - len(reservation.checkin_partner_ids)
|
count_new_checkins = occupancy - len(reservation.checkin_partner_ids)
|
||||||
for _i in range(0, count_new_checkins):
|
for _i in range(0, count_new_checkins):
|
||||||
checkins_lst.append(
|
checkins_lst.append(
|
||||||
(
|
(
|
||||||
@@ -1130,7 +1134,7 @@ class PmsReservation(models.Model):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
reservation.checkin_partner_ids = checkins_lst
|
reservation.checkin_partner_ids = checkins_lst
|
||||||
elif adults == 0:
|
elif occupancy == 0:
|
||||||
reservation.checkin_partner_ids = False
|
reservation.checkin_partner_ids = False
|
||||||
|
|
||||||
@api.depends("checkin_partner_ids", "checkin_partner_ids.state")
|
@api.depends("checkin_partner_ids", "checkin_partner_ids.state")
|
||||||
@@ -1145,11 +1149,10 @@ class PmsReservation(models.Model):
|
|||||||
@api.depends("count_pending_arrival")
|
@api.depends("count_pending_arrival")
|
||||||
def _compute_checkins_ratio(self):
|
def _compute_checkins_ratio(self):
|
||||||
self.checkins_ratio = 0
|
self.checkins_ratio = 0
|
||||||
for reservation in self.filtered(lambda r: r.adults > 0):
|
for reservation in self.filtered(lambda r: (r.adults + r.children) > 0):
|
||||||
|
occupancy = reservation.adults + reservation.children
|
||||||
reservation.checkins_ratio = (
|
reservation.checkins_ratio = (
|
||||||
(reservation.adults - reservation.count_pending_arrival)
|
(occupancy - reservation.count_pending_arrival) * 100 / occupancy
|
||||||
* 100
|
|
||||||
/ reservation.adults
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@api.depends("checkin_partner_ids", "checkin_partner_ids.state")
|
@api.depends("checkin_partner_ids", "checkin_partner_ids.state")
|
||||||
@@ -1165,12 +1168,11 @@ class PmsReservation(models.Model):
|
|||||||
def _compute_ratio_checkin_data(self):
|
def _compute_ratio_checkin_data(self):
|
||||||
self.ratio_checkin_data = 0
|
self.ratio_checkin_data = 0
|
||||||
for reservation in self.filtered(
|
for reservation in self.filtered(
|
||||||
lambda r: r.adults > 0 and r.state != "cancel"
|
lambda r: (r.adults + r.children) > 0 and r.state != "cancel"
|
||||||
):
|
):
|
||||||
|
occupancy = reservation.adults + reservation.children
|
||||||
reservation.ratio_checkin_data = (
|
reservation.ratio_checkin_data = (
|
||||||
(reservation.adults - reservation.pending_checkin_data)
|
(occupancy - reservation.pending_checkin_data) * 100 / occupancy
|
||||||
* 100
|
|
||||||
/ reservation.adults
|
|
||||||
)
|
)
|
||||||
|
|
||||||
def _compute_allowed_checkin(self):
|
def _compute_allowed_checkin(self):
|
||||||
@@ -1550,8 +1552,9 @@ class PmsReservation(models.Model):
|
|||||||
def _compute_checkin_partner_count(self):
|
def _compute_checkin_partner_count(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
if record.reservation_type != "out" and record.overnight_room:
|
if record.reservation_type != "out" and record.overnight_room:
|
||||||
|
occupancy = record.adults + record.children
|
||||||
record.checkin_partner_count = len(record.checkin_partner_ids)
|
record.checkin_partner_count = len(record.checkin_partner_ids)
|
||||||
record.checkin_partner_pending_count = record.adults - len(
|
record.checkin_partner_pending_count = occupancy - len(
|
||||||
record.checkin_partner_ids
|
record.checkin_partner_ids
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
@@ -1739,7 +1742,9 @@ class PmsReservation(models.Model):
|
|||||||
return [
|
return [
|
||||||
("state", "in", ("draft", "confirm", "arrival_delayed")),
|
("state", "in", ("draft", "confirm", "arrival_delayed")),
|
||||||
("checkin", "<=", today),
|
("checkin", "<=", today),
|
||||||
|
"|",
|
||||||
("adults", ">", 0),
|
("adults", ">", 0),
|
||||||
|
("children", ">", 0),
|
||||||
]
|
]
|
||||||
|
|
||||||
def _search_allowed_checkout(self, operator, value):
|
def _search_allowed_checkout(self, operator, value):
|
||||||
@@ -1757,7 +1762,9 @@ class PmsReservation(models.Model):
|
|||||||
return [
|
return [
|
||||||
("state", "in", ("onboard", "departure_delayed")),
|
("state", "in", ("onboard", "departure_delayed")),
|
||||||
("checkout", ">=", today),
|
("checkout", ">=", today),
|
||||||
|
"|",
|
||||||
("adults", ">", 0),
|
("adults", ">", 0),
|
||||||
|
("children", ">", 0),
|
||||||
]
|
]
|
||||||
|
|
||||||
def _search_allowed_cancel(self, operator, value):
|
def _search_allowed_cancel(self, operator, value):
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ class TestPmsReservations(TestPms):
|
|||||||
)
|
)
|
||||||
cls.agency1 = cls.env["res.partner"].create(
|
cls.agency1 = cls.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner1",
|
"firstname": "partner1",
|
||||||
"is_agency": True,
|
"is_agency": True,
|
||||||
"invoice_to_agency": "always",
|
"invoice_to_agency": "always",
|
||||||
"default_commission": 15,
|
"default_commission": 15,
|
||||||
@@ -1666,7 +1666,7 @@ class TestPmsReservations(TestPms):
|
|||||||
# ARRANGE
|
# ARRANGE
|
||||||
host = self.env["res.partner"].create(
|
host = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Miguel",
|
"firstname": "Miguel",
|
||||||
"mobile": "654667733",
|
"mobile": "654667733",
|
||||||
"email": "miguel@example.com",
|
"email": "miguel@example.com",
|
||||||
"birthdate_date": "1995-12-10",
|
"birthdate_date": "1995-12-10",
|
||||||
@@ -1679,6 +1679,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"name": "30065089H",
|
"name": "30065089H",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": host.id,
|
"partner_id": host.id,
|
||||||
|
"country_id": self.env.ref("base.es").id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
r1 = self.env["pms.reservation"].create(
|
r1 = self.env["pms.reservation"].create(
|
||||||
@@ -1821,7 +1822,7 @@ class TestPmsReservations(TestPms):
|
|||||||
)
|
)
|
||||||
agency = self.env["res.partner"].create(
|
agency = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner1",
|
"firstname": "partner1",
|
||||||
"is_agency": True,
|
"is_agency": True,
|
||||||
"sale_channel_id": sale_channel1.id,
|
"sale_channel_id": sale_channel1.id,
|
||||||
"invoice_to_agency": "always",
|
"invoice_to_agency": "always",
|
||||||
@@ -1867,7 +1868,7 @@ class TestPmsReservations(TestPms):
|
|||||||
)
|
)
|
||||||
agency = self.env["res.partner"].create(
|
agency = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner1",
|
"firstname": "partner1",
|
||||||
"is_agency": True,
|
"is_agency": True,
|
||||||
"sale_channel_id": sale_channel1.id,
|
"sale_channel_id": sale_channel1.id,
|
||||||
"apply_pricelist": True,
|
"apply_pricelist": True,
|
||||||
@@ -1924,7 +1925,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Miguel",
|
"firstname": "Miguel",
|
||||||
"mobile": "654667733",
|
"mobile": "654667733",
|
||||||
"email": "miguel@example.com",
|
"email": "miguel@example.com",
|
||||||
"birthdate_date": "1995-12-10",
|
"birthdate_date": "1995-12-10",
|
||||||
@@ -1937,11 +1938,12 @@ class TestPmsReservations(TestPms):
|
|||||||
"name": "30065000H",
|
"name": "30065000H",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.host1.id,
|
"partner_id": self.host1.id,
|
||||||
|
"country_id": self.env.ref("base.es").id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.host2 = self.env["res.partner"].create(
|
self.host2 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Brais",
|
"firstname": "Brais",
|
||||||
"mobile": "654437733",
|
"mobile": "654437733",
|
||||||
"email": "brais@example.com",
|
"email": "brais@example.com",
|
||||||
"birthdate_date": "1995-12-10",
|
"birthdate_date": "1995-12-10",
|
||||||
@@ -1954,6 +1956,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"name": "30065089H",
|
"name": "30065089H",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.host2.id,
|
"partner_id": self.host2.id,
|
||||||
|
"country_id": self.env.ref("base.es").id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.reservation = self.env["pms.reservation"].create(
|
self.reservation = self.env["pms.reservation"].create(
|
||||||
@@ -1999,7 +2002,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
with self.assertRaises(UserError):
|
with self.assertRaises(UserError):
|
||||||
@@ -2025,7 +2028,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
with self.assertRaises(ValidationError):
|
with self.assertRaises(ValidationError):
|
||||||
@@ -2051,7 +2054,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
with self.assertRaises(ValidationError):
|
with self.assertRaises(ValidationError):
|
||||||
@@ -2075,7 +2078,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
with self.assertRaises(ValidationError):
|
with self.assertRaises(ValidationError):
|
||||||
@@ -2108,7 +2111,7 @@ class TestPmsReservations(TestPms):
|
|||||||
)
|
)
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.room_type_double.pms_property_ids = [
|
self.room_type_double.pms_property_ids = [
|
||||||
@@ -2138,7 +2141,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.reservation = self.env["pms.reservation"].create(
|
self.reservation = self.env["pms.reservation"].create(
|
||||||
@@ -2173,7 +2176,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.reservation = self.env["pms.reservation"].create(
|
self.reservation = self.env["pms.reservation"].create(
|
||||||
@@ -2203,7 +2206,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
reservation = self.env["pms.reservation"].create(
|
reservation = self.env["pms.reservation"].create(
|
||||||
@@ -2250,7 +2253,7 @@ class TestPmsReservations(TestPms):
|
|||||||
)
|
)
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -2305,7 +2308,7 @@ class TestPmsReservations(TestPms):
|
|||||||
)
|
)
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -2359,7 +2362,7 @@ class TestPmsReservations(TestPms):
|
|||||||
)
|
)
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Host1",
|
"firstname": "Host1",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -2390,14 +2393,14 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Miguel",
|
"firstname": "Miguel",
|
||||||
"mobile": "654667733",
|
"mobile": "654667733",
|
||||||
"email": "miguel@example.com",
|
"email": "miguel@example.com",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.host2 = self.env["res.partner"].create(
|
self.host2 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Brais",
|
"firstname": "Brais",
|
||||||
"mobile": "654437733",
|
"mobile": "654437733",
|
||||||
"email": "brais@example.com",
|
"email": "brais@example.com",
|
||||||
}
|
}
|
||||||
@@ -2451,14 +2454,14 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
self.host1 = self.env["res.partner"].create(
|
self.host1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Miguel",
|
"firstname": "Miguel",
|
||||||
"mobile": "654667733",
|
"mobile": "654667733",
|
||||||
"email": "miguel@example.com",
|
"email": "miguel@example.com",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.host2 = self.env["res.partner"].create(
|
self.host2 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Brais",
|
"firstname": "Brais",
|
||||||
"mobile": "654437733",
|
"mobile": "654437733",
|
||||||
"email": "brais@example.com",
|
"email": "brais@example.com",
|
||||||
}
|
}
|
||||||
@@ -2513,7 +2516,7 @@ class TestPmsReservations(TestPms):
|
|||||||
"""
|
"""
|
||||||
host = self.env["res.partner"].create(
|
host = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Miguel",
|
"firstname": "Miguel",
|
||||||
"mobile": "654667733",
|
"mobile": "654667733",
|
||||||
"email": "miguel@example.com",
|
"email": "miguel@example.com",
|
||||||
}
|
}
|
||||||
@@ -2587,7 +2590,7 @@ class TestPmsReservations(TestPms):
|
|||||||
)
|
)
|
||||||
agency = self.env["res.partner"].create(
|
agency = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner1",
|
"firstname": "partner1",
|
||||||
"is_agency": True,
|
"is_agency": True,
|
||||||
"sale_channel_id": sale_channel1.id,
|
"sale_channel_id": sale_channel1.id,
|
||||||
}
|
}
|
||||||
@@ -3053,7 +3056,7 @@ class TestPmsReservations(TestPms):
|
|||||||
# ARRANGE
|
# ARRANGE
|
||||||
checkin = fields.date.today()
|
checkin = fields.date.today()
|
||||||
checkout = fields.date.today() + datetime.timedelta(days=3)
|
checkout = fields.date.today() + datetime.timedelta(days=3)
|
||||||
self.partner1 = self.env["res.partner"].create({"name": "Ana"})
|
self.partner1 = self.env["res.partner"].create({"firstname": "Ana"})
|
||||||
folio1 = self.env["pms.folio"].create(
|
folio1 = self.env["pms.folio"].create(
|
||||||
{
|
{
|
||||||
"pms_property_id": self.pms_property1.id,
|
"pms_property_id": self.pms_property1.id,
|
||||||
@@ -3269,7 +3272,7 @@ class TestPmsReservations(TestPms):
|
|||||||
'staff'.
|
'staff'.
|
||||||
"""
|
"""
|
||||||
# ARRANGE AND ACT
|
# ARRANGE AND ACT
|
||||||
self.partner1 = self.env["res.partner"].create({"name": "Ana"})
|
self.partner1 = self.env["res.partner"].create({"firstname": "Ana"})
|
||||||
folio1 = self.env["pms.folio"].create(
|
folio1 = self.env["pms.folio"].create(
|
||||||
{
|
{
|
||||||
"pms_property_id": self.pms_property1.id,
|
"pms_property_id": self.pms_property1.id,
|
||||||
@@ -3379,7 +3382,7 @@ class TestPmsReservations(TestPms):
|
|||||||
# ARRANGE
|
# ARRANGE
|
||||||
partner = self.env["res.partner"].create(
|
partner = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Enrique",
|
"firstname": "Enrique",
|
||||||
"mobile": "654667733",
|
"mobile": "654667733",
|
||||||
"email": "enrique@example.com",
|
"email": "enrique@example.com",
|
||||||
}
|
}
|
||||||
@@ -3430,7 +3433,7 @@ class TestPmsReservations(TestPms):
|
|||||||
# ARRANGE
|
# ARRANGE
|
||||||
partner = self.env["res.partner"].create(
|
partner = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Simon",
|
"firstname": "Simon",
|
||||||
"mobile": "654667733",
|
"mobile": "654667733",
|
||||||
"email": "simon@example.com",
|
"email": "simon@example.com",
|
||||||
}
|
}
|
||||||
@@ -3479,7 +3482,7 @@ class TestPmsReservations(TestPms):
|
|||||||
# ARRANGE
|
# ARRANGE
|
||||||
partner = self.env["res.partner"].create(
|
partner = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Courtney Campbell",
|
"firstname": "Courtney Campbell",
|
||||||
"email": "courtney@example.com",
|
"email": "courtney@example.com",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -3517,7 +3520,7 @@ class TestPmsReservations(TestPms):
|
|||||||
# ARRANGE
|
# ARRANGE
|
||||||
partner = self.env["res.partner"].create(
|
partner = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Ledicia Sandoval",
|
"firstname": "Ledicia Sandoval",
|
||||||
"mobile": "615369231",
|
"mobile": "615369231",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -3557,7 +3560,7 @@ class TestPmsReservations(TestPms):
|
|||||||
# ARRANGE
|
# ARRANGE
|
||||||
partner = self.env["res.partner"].create(
|
partner = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Serafín Rivas",
|
"firstname": "Serafín Rivas",
|
||||||
"email": "serafin@example.com",
|
"email": "serafin@example.com",
|
||||||
"mobile": "60595595",
|
"mobile": "60595595",
|
||||||
}
|
}
|
||||||
@@ -3607,14 +3610,14 @@ class TestPmsReservations(TestPms):
|
|||||||
# ARRANGE
|
# ARRANGE
|
||||||
partner1 = self.env["res.partner"].create(
|
partner1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Serafín Rivas",
|
"firstname": "Serafín Rivas",
|
||||||
"email": "serafin@example.com",
|
"email": "serafin@example.com",
|
||||||
"mobile": "60595595",
|
"mobile": "60595595",
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
partner2 = self.env["res.partner"].create(
|
partner2 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "Simon",
|
"firstname": "Simon",
|
||||||
"mobile": "654667733",
|
"mobile": "654667733",
|
||||||
"email": "simon@example.com",
|
"email": "simon@example.com",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
from dateutil.relativedelta import relativedelta
|
||||||
|
|
||||||
from odoo import api, fields, models
|
from odoo import api, fields, models
|
||||||
|
|
||||||
from ..wizards.traveller_report import CREATE_OPERATION_CODE
|
from ..wizards.traveller_report import CREATE_OPERATION_CODE
|
||||||
@@ -65,7 +67,9 @@ class PmsCheckinPartner(models.Model):
|
|||||||
record.support_number = False
|
record.support_number = False
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _checkin_mandatory_fields(self, residence_country=False, document_type=False):
|
def _checkin_mandatory_fields(
|
||||||
|
self, residence_country=False, document_type=False, birthdate_date=False
|
||||||
|
):
|
||||||
mandatory_fields = super(PmsCheckinPartner, self)._checkin_mandatory_fields(
|
mandatory_fields = super(PmsCheckinPartner, self)._checkin_mandatory_fields(
|
||||||
residence_country, document_type
|
residence_country, document_type
|
||||||
)
|
)
|
||||||
@@ -73,9 +77,6 @@ class PmsCheckinPartner(models.Model):
|
|||||||
[
|
[
|
||||||
"birthdate_date",
|
"birthdate_date",
|
||||||
"gender",
|
"gender",
|
||||||
"document_number",
|
|
||||||
"document_type",
|
|
||||||
"document_expedition_date",
|
|
||||||
"nationality_id",
|
"nationality_id",
|
||||||
"residence_street",
|
"residence_street",
|
||||||
"residence_city",
|
"residence_city",
|
||||||
@@ -84,6 +85,27 @@ class PmsCheckinPartner(models.Model):
|
|||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if birthdate_date:
|
||||||
|
# Checkins with age greater than 14 must have an identity document
|
||||||
|
if birthdate_date <= fields.Date.today() - relativedelta(years=14):
|
||||||
|
mandatory_fields.extend(
|
||||||
|
[
|
||||||
|
"document_number",
|
||||||
|
"document_type",
|
||||||
|
"document_expedition_date",
|
||||||
|
"document_country_id",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
# Checkins with age lower than 18 must have a relationship with
|
||||||
|
# another checkin partner
|
||||||
|
if birthdate_date > fields.Date.today() - relativedelta(years=18):
|
||||||
|
mandatory_fields.extend(
|
||||||
|
[
|
||||||
|
"ses_partners_relationship",
|
||||||
|
"ses_related_checkin_partner_id",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
if residence_country and residence_country.code == CODE_SPAIN:
|
if residence_country and residence_country.code == CODE_SPAIN:
|
||||||
mandatory_fields.extend(
|
mandatory_fields.extend(
|
||||||
[
|
[
|
||||||
@@ -107,7 +129,13 @@ class PmsCheckinPartner(models.Model):
|
|||||||
@api.model
|
@api.model
|
||||||
def _checkin_manual_fields(self, country=False):
|
def _checkin_manual_fields(self, country=False):
|
||||||
manual_fields = super(PmsCheckinPartner, self)._checkin_manual_fields()
|
manual_fields = super(PmsCheckinPartner, self)._checkin_manual_fields()
|
||||||
manual_fields.extend(["support_number"])
|
manual_fields.extend(
|
||||||
|
[
|
||||||
|
"support_number",
|
||||||
|
"ses_partners_relationship",
|
||||||
|
"ses_related_checkin_partner_id",
|
||||||
|
]
|
||||||
|
)
|
||||||
return manual_fields
|
return manual_fields
|
||||||
|
|
||||||
def get_document_vals(self):
|
def get_document_vals(self):
|
||||||
|
|||||||
@@ -102,7 +102,7 @@ class TestWizardINE(TestPms):
|
|||||||
# Create partner 1 (italy)
|
# Create partner 1 (italy)
|
||||||
self.partner_1 = self.env["res.partner"].create(
|
self.partner_1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner1",
|
"firstname": "partner1",
|
||||||
"country_id": self.country_italy.id,
|
"country_id": self.country_italy.id,
|
||||||
"nationality_id": self.country_italy.id,
|
"nationality_id": self.country_italy.id,
|
||||||
"residence_country_id": self.country_italy.id,
|
"residence_country_id": self.country_italy.id,
|
||||||
@@ -116,13 +116,14 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "55103354T",
|
"name": "55103354T",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_1.id,
|
"partner_id": self.partner_1.id,
|
||||||
|
"country_id": self.country_italy.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create partner 2 (russia)
|
# Create partner 2 (russia)
|
||||||
self.partner_2 = self.env["res.partner"].create(
|
self.partner_2 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner2",
|
"firstname": "partner2",
|
||||||
"country_id": self.country_russia.id,
|
"country_id": self.country_russia.id,
|
||||||
"nationality_id": self.country_russia.id,
|
"nationality_id": self.country_russia.id,
|
||||||
"residence_country_id": self.country_russia.id,
|
"residence_country_id": self.country_russia.id,
|
||||||
@@ -136,12 +137,13 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "45437298Q",
|
"name": "45437298Q",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_2.id,
|
"partner_id": self.partner_2.id,
|
||||||
|
"country_id": self.country_russia.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# Create partner 3 (italy)
|
# Create partner 3 (italy)
|
||||||
self.partner_3 = self.env["res.partner"].create(
|
self.partner_3 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner3",
|
"firstname": "partner3",
|
||||||
"country_id": self.country_italy.id,
|
"country_id": self.country_italy.id,
|
||||||
"nationality_id": self.country_italy.id,
|
"nationality_id": self.country_italy.id,
|
||||||
"residence_country_id": self.country_italy.id,
|
"residence_country_id": self.country_italy.id,
|
||||||
@@ -155,12 +157,13 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "81534086Y",
|
"name": "81534086Y",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_3.id,
|
"partner_id": self.partner_3.id,
|
||||||
|
"country_id": self.country_italy.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# Create partner 4 (italy)
|
# Create partner 4 (italy)
|
||||||
self.partner_4 = self.env["res.partner"].create(
|
self.partner_4 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner4",
|
"firstname": "partner4",
|
||||||
"country_id": self.country_italy.id,
|
"country_id": self.country_italy.id,
|
||||||
"nationality_id": self.country_italy.id,
|
"nationality_id": self.country_italy.id,
|
||||||
"residence_country_id": self.country_italy.id,
|
"residence_country_id": self.country_italy.id,
|
||||||
@@ -174,12 +177,13 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "00807643K",
|
"name": "00807643K",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_4.id,
|
"partner_id": self.partner_4.id,
|
||||||
|
"country_id": self.country_italy.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# Create partner 5 (afghanistan)
|
# Create partner 5 (afghanistan)
|
||||||
self.partner_5 = self.env["res.partner"].create(
|
self.partner_5 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner5",
|
"firstname": "partner5",
|
||||||
"country_id": self.country_afghanistan.id,
|
"country_id": self.country_afghanistan.id,
|
||||||
"nationality_id": self.country_afghanistan.id,
|
"nationality_id": self.country_afghanistan.id,
|
||||||
"residence_country_id": self.country_afghanistan.id,
|
"residence_country_id": self.country_afghanistan.id,
|
||||||
@@ -193,12 +197,13 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "54564399G",
|
"name": "54564399G",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_5.id,
|
"partner_id": self.partner_5.id,
|
||||||
|
"country_id": self.country_afghanistan.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# Create partner 6 (afghanistan)
|
# Create partner 6 (afghanistan)
|
||||||
self.partner_6 = self.env["res.partner"].create(
|
self.partner_6 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner6",
|
"firstname": "partner6",
|
||||||
"country_id": self.country_afghanistan.id,
|
"country_id": self.country_afghanistan.id,
|
||||||
"nationality_id": self.country_afghanistan.id,
|
"nationality_id": self.country_afghanistan.id,
|
||||||
"residence_country_id": self.country_afghanistan.id,
|
"residence_country_id": self.country_afghanistan.id,
|
||||||
@@ -212,12 +217,13 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "39854152M",
|
"name": "39854152M",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_6.id,
|
"partner_id": self.partner_6.id,
|
||||||
|
"country_id": self.country_afghanistan.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
# Create partner 7 (afghanistan)
|
# Create partner 7 (afghanistan)
|
||||||
self.partner_7 = self.env["res.partner"].create(
|
self.partner_7 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner7",
|
"firstname": "partner7",
|
||||||
"country_id": self.country_afghanistan.id,
|
"country_id": self.country_afghanistan.id,
|
||||||
"nationality_id": self.country_afghanistan.id,
|
"nationality_id": self.country_afghanistan.id,
|
||||||
"residence_country_id": self.country_afghanistan.id,
|
"residence_country_id": self.country_afghanistan.id,
|
||||||
@@ -231,6 +237,7 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "39854152O",
|
"name": "39854152O",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_7.id,
|
"partner_id": self.partner_7.id,
|
||||||
|
"country_id": self.country_afghanistan.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -405,7 +412,7 @@ class TestWizardINE(TestPms):
|
|||||||
# Create 3 checkin partners from russia
|
# Create 3 checkin partners from russia
|
||||||
self.partner_russia_1 = self.env["res.partner"].create(
|
self.partner_russia_1 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner1",
|
"firstname": "partner1",
|
||||||
"country_id": self.country_russia.id,
|
"country_id": self.country_russia.id,
|
||||||
"nationality_id": self.country_russia.id,
|
"nationality_id": self.country_russia.id,
|
||||||
"residence_country_id": self.country_russia.id,
|
"residence_country_id": self.country_russia.id,
|
||||||
@@ -418,7 +425,7 @@ class TestWizardINE(TestPms):
|
|||||||
)
|
)
|
||||||
self.partner_russia_2 = self.env["res.partner"].create(
|
self.partner_russia_2 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner2",
|
"firstname": "partner2",
|
||||||
"country_id": self.country_russia.id,
|
"country_id": self.country_russia.id,
|
||||||
"nationality_id": self.country_russia.id,
|
"nationality_id": self.country_russia.id,
|
||||||
"residence_country_id": self.country_russia.id,
|
"residence_country_id": self.country_russia.id,
|
||||||
@@ -431,7 +438,7 @@ class TestWizardINE(TestPms):
|
|||||||
)
|
)
|
||||||
self.partner_russia_3 = self.env["res.partner"].create(
|
self.partner_russia_3 = self.env["res.partner"].create(
|
||||||
{
|
{
|
||||||
"name": "partner3",
|
"firstname": "partner3",
|
||||||
"country_id": self.country_russia.id,
|
"country_id": self.country_russia.id,
|
||||||
"nationality_id": self.country_russia.id,
|
"nationality_id": self.country_russia.id,
|
||||||
"residence_country_id": self.country_russia.id,
|
"residence_country_id": self.country_russia.id,
|
||||||
@@ -449,6 +456,7 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "15103354T",
|
"name": "15103354T",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_russia_1.id,
|
"partner_id": self.partner_russia_1.id,
|
||||||
|
"country_id": self.country_russia.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.env["res.partner.id_number"].create(
|
self.env["res.partner.id_number"].create(
|
||||||
@@ -457,6 +465,7 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "25103354T",
|
"name": "25103354T",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_russia_2.id,
|
"partner_id": self.partner_russia_2.id,
|
||||||
|
"country_id": self.country_russia.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
self.env["res.partner.id_number"].create(
|
self.env["res.partner.id_number"].create(
|
||||||
@@ -465,6 +474,7 @@ class TestWizardINE(TestPms):
|
|||||||
"name": "35103354T",
|
"name": "35103354T",
|
||||||
"valid_from": datetime.date.today(),
|
"valid_from": datetime.date.today(),
|
||||||
"partner_id": self.partner_russia_3.id,
|
"partner_id": self.partner_russia_3.id,
|
||||||
|
"country_id": self.country_russia.id,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user