diff --git a/pms/__manifest__.py b/pms/__manifest__.py
index 6258e2f22..e29bbbed2 100644
--- a/pms/__manifest__.py
+++ b/pms/__manifest__.py
@@ -25,6 +25,7 @@
"partner_contact_gender",
"partner_contact_birthdate",
"partner_contact_nationality",
+ "partner_identification_unique_by_category",
],
"data": [
"security/pms_security.xml",
diff --git a/pms/data/pms_data.xml b/pms/data/pms_data.xml
index cd852159b..093e75332 100644
--- a/pms/data/pms_data.xml
+++ b/pms/data/pms_data.xml
@@ -56,10 +56,12 @@
Passport
P
+ True
Driving License
C
+ True
Identification Document
I
+ True
Spanish Residence permit
N
+ True
European Residence permit
X
+ True
diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py
index 647f8e9f9..da35d241b 100644
--- a/pms/models/pms_checkin_partner.py
+++ b/pms/models/pms_checkin_partner.py
@@ -189,6 +189,7 @@ class PmsCheckinPartner(models.Model):
store=True,
comodel_name="res.partner.id_number",
compute="_compute_document_id",
+ ondelete="restrict",
)
incongruences = fields.Char(
@@ -356,7 +357,9 @@ class PmsCheckinPartner(models.Model):
else:
record.document_id = False
- @api.depends("document_number", "document_type", "firstname")
+ @api.depends(
+ "document_number", "document_type", "firstname", "lastname", "lastname2"
+ )
def _compute_partner_id(self):
for record in self:
if not record.partner_id:
@@ -465,9 +468,7 @@ class PmsCheckinPartner(models.Model):
for number in record.partner_id.id_numbers:
if record.document_type == number.category_id:
if record.document_number != number.name:
- raise ValidationError(
- _("Document_type e document_number not match(DN)")
- )
+ raise ValidationError(_("Document_type has already exists"))
@api.model
def create(self, vals):
diff --git a/pms_l10n_es/data/pms_data.xml b/pms_l10n_es/data/pms_data.xml
index b609ca96f..69347bd45 100644
--- a/pms_l10n_es/data/pms_data.xml
+++ b/pms_l10n_es/data/pms_data.xml
@@ -4,6 +4,7 @@
DNI
D
+ True
diff --git a/pms_l10n_es/tests/test_partner.py b/pms_l10n_es/tests/test_partner.py
deleted file mode 100644
index 5e526ff35..000000000
--- a/pms_l10n_es/tests/test_partner.py
+++ /dev/null
@@ -1,149 +0,0 @@
-import datetime
-
-from freezegun import freeze_time
-
-from odoo import fields
-from odoo.exceptions import ValidationError
-from odoo.tests import common
-
-
-@freeze_time("2011-03-16")
-class TestResPartner(common.SavepointCase):
- def create_common_scenario(self):
- self.folio_sequence = self.env["ir.sequence"].create(
- {
- "name": "PMS Folio",
- "code": "pms.folio",
- "padding": 4,
- "company_id": self.env.ref("base.main_company").id,
- }
- )
- self.reservation_sequence = self.env["ir.sequence"].create(
- {
- "name": "PMS Reservation",
- "code": "pms.reservation",
- "padding": 4,
- "company_id": self.env.ref("base.main_company").id,
- }
- )
- self.checkin_sequence = self.env["ir.sequence"].create(
- {
- "name": "PMS Checkin",
- "code": "pms.checkin.partner",
- "padding": 4,
- "company_id": self.env.ref("base.main_company").id,
- }
- )
- self.property_test = self.property = self.env["pms.property"].create(
- {
- "name": "My property test",
- "company_id": self.env.ref("base.main_company").id,
- "default_pricelist_id": self.env.ref("product.list0").id,
- "folio_sequence_id": self.folio_sequence.id,
- "reservation_sequence_id": self.reservation_sequence.id,
- "checkin_sequence_id": self.checkin_sequence.id,
- }
- )
-
- def test_check_precheckin_state(self):
- # arrange
- self.create_common_scenario()
- today = fields.date.today()
- partner = self.env["res.partner"].create(
- {
- "name": "name1",
- # "lastname": "lastname1",
- "lastname2": "secondlastname",
- "document_expedition_date": "2011-02-20",
- "birthdate_date": "1995-12-10",
- "gender": "male",
- "document_type": "D",
- "document_number": "30065089H",
- }
- )
- reservation_vals = {
- "checkin": today,
- "checkout": today + datetime.timedelta(days=3),
- "partner_id": partner.id,
- "adults": 1,
- "pms_property_id": self.property_test.id,
- }
- # action
- reservation = self.env["pms.reservation"].create(reservation_vals)
- checkin = self.env["pms.checkin.partner"].create(
- {
- "partner_id": partner.id,
- "reservation_id": reservation.id,
- }
- )
-
- # assert
-
- self.assertEqual(
- checkin.state, "precheckin", "partner's fields weren't checked"
- )
-
- def test_error_action_on_board(self):
- # arrange
- self.create_common_scenario()
- today = fields.date.today()
- partner = self.env["res.partner"].create(
- {
- "name": "partner1",
- }
- )
- reservation_vals = {
- "checkin": today,
- "checkout": today + datetime.timedelta(days=3),
- "partner_id": partner.id,
- "adults": 1,
- "pms_property_id": self.property_test.id,
- }
- # action
- reservation = self.env["pms.reservation"].create(reservation_vals)
- checkin = self.env["pms.checkin.partner"].create(
- {
- "partner_id": partner.id,
- "reservation_id": reservation.id,
- }
- )
-
- # arrange
- with self.assertRaises(ValidationError):
- checkin.action_on_board()
-
- def test_right_action_on_board(self):
- # arrange
- self.create_common_scenario()
- today = fields.date.today()
- partner = self.env["res.partner"].create(
- {
- "name": "name1",
- # "lastname": "lastname1",
- "lastname2": "secondlastname",
- "document_expedition_date": "2011-02-20",
- "birthdate_date": "1995-12-10",
- "gender": "male",
- "document_type": "D",
- "document_number": "30065089H",
- }
- )
- reservation_vals = {
- "checkin": today,
- "checkout": today + datetime.timedelta(days=3),
- "partner_id": partner.id,
- "adults": 1,
- "pms_property_id": self.property_test.id,
- }
- # action
- reservation = self.env["pms.reservation"].create(reservation_vals)
- checkin = self.env["pms.checkin.partner"].create(
- {
- "partner_id": partner.id,
- "reservation_id": reservation.id,
- }
- )
- checkin.action_on_board()
- # arrange
- self.assertEqual(reservation.state, "onboard", "reservation's state is wrong")
- self.assertEqual(checkin.state, "onboard", "checkin's state is wrong")