diff --git a/pms/__manifest__.py b/pms/__manifest__.py
index ae7707947..6258e2f22 100644
--- a/pms/__manifest__.py
+++ b/pms/__manifest__.py
@@ -16,10 +16,15 @@
"base",
"mail",
# "account_payment_return",
- # "partner_firstname",
# "email_template_qweb",
"sale",
"multi_pms_properties",
+ "partner_identification",
+ "partner_firstname",
+ "partner_second_lastname",
+ "partner_contact_gender",
+ "partner_contact_birthdate",
+ "partner_contact_nationality",
],
"data": [
"security/pms_security.xml",
diff --git a/pms/data/pms_data.xml b/pms/data/pms_data.xml
index 685754758..bd434e6d6 100644
--- a/pms/data/pms_data.xml
+++ b/pms/data/pms_data.xml
@@ -52,5 +52,26 @@
Agency
indirect
+
+
+ Passport
+ P
+
+
+ Driving License
+ C
+
+
+ Identification Document
+ I
+
+
+ Spanish Residence permit
+ N
+
+
+ European Residence permit
+ X
+
diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py
index 8d1a846cf..ab9030b0c 100644
--- a/pms/models/pms_checkin_partner.py
+++ b/pms/models/pms_checkin_partner.py
@@ -116,7 +116,122 @@ class PmsCheckinPartner(models.Model):
compute="_compute_state",
)
+ gender = fields.Selection(
+ [("male", "Male"), ("female", "Female"), ("other", "Other")],
+ string="Gender",
+ compute="_compute_gender",
+ store=True,
+ readonly=False,
+ )
+ nationality_id = fields.Many2one(
+ string="Nationality ID",
+ compute="_compute_nationality",
+ comodel_name="res.country",
+ store=True,
+ readonly=False,
+ )
+ firstname = fields.Char(
+ "First Name",
+ compute="_compute_firstname",
+ store=True,
+ readonly=False,
+ )
+ lastname = fields.Char(
+ "Last Name",
+ compute="_compute_lastname",
+ store=True,
+ readonly=False,
+ )
+ lastname2 = fields.Char(
+ "Second Last Name",
+ compute="_compute_lastname2",
+ store=True,
+ readonly=False,
+ )
+ birthdate_date = fields.Date(
+ "Birthdate",
+ compute="_compute_birth_date",
+ store=True,
+ readonly=False,
+ )
+ document_number = fields.Char(
+ "Document Number",
+ #compute="_compute_document_number",
+ store=True,
+ readonly=False,
+ )
+ document_type = fields.Many2one(
+ string="Document Type",
+ comodel_name="res.partner.id_category",
+ help="Select a valid document type",
+ #compute="_compute_document_type",
+ store=True,
+ readonly=False,
+ )
+ document_expedition_date = fields.Date(
+ "Expedition Date",
+ #compute="_compute_document_expedition_date",
+ store=True,
+ readonly=False,
+ )
# Compute
+ # ****************************************************
+ # @api.depends("partner_id", "partner_id.document_number")
+ # def _compute_document_number(self):
+ # for record in self:
+ # if not record.document_number:
+ # record.document_number = record.partner_id.document_number
+ #
+ # @api.depends("partner_id", "partner_id.document_type")
+ # def _compute_document_type(self):
+ # for record in self:
+ # if not record.document_type:
+ # record.document_type = record.partner_id.document_type
+ #
+ # @api.depends("partner_id", "partner_id.document_expedition_date")
+ # def _compute_document_expedition_date(self):
+ # for record in self:
+ # if not record.document_expedition_date:
+ # record.document_expedition_date = (
+ # record.partner_id.document_expedition_date
+ # )
+
+ @api.depends("partner_id", "partner_id.firstname")
+ def _compute_firstname(self):
+ for record in self:
+ if not record.firstname:
+ record.firstname = record.partner_id.firstname
+
+ @api.depends("partner_id", "partner_id.lastname")
+ def _compute_lastname(self):
+ for record in self:
+ if not record.lastname:
+ record.lastname = record.partner_id.lastname
+
+ @api.depends("partner_id", "partner_id.lastname2")
+ def _compute_lastname2(self):
+ for record in self:
+ if not record.lastname2:
+ record.lastname2 = record.partner_id.lastname2
+
+ @api.depends("partner_id", "partner_id.birthdate_date")
+ def _compute_birth_date(self):
+ for record in self:
+ if not record.birthdate_date:
+ record.birthdate_date = record.partner_id.birthdate_date
+
+ @api.depends("partner_id", "partner_id.gender")
+ def _compute_gender(self):
+ for record in self:
+ if not record.gender:
+ record.gender = record.partner_id.gender
+
+ @api.depends("partner_id", "partner_id.lastname")
+ def _compute_nationality(self):
+ for record in self:
+ if not record.nationality_id:
+ record.nationality_id = record.partner_id.nationality_id
+
@api.depends("reservation_id", "folio_id", "reservation_id.preferred_room_id")
def _compute_identifier(self):
for record in self:
@@ -303,7 +418,16 @@ class PmsCheckinPartner(models.Model):
# api.depends need "reservation_id.state" in the lambda function
if depends:
return ["reservation_id.state", "name"]
- return ["name"]
+ mandatory_fields = [
+ "birthdate_date",
+ "document_number",
+ "document_type",
+ "document_expedition_date",
+ "gender",
+ "name"
+ ]
+
+ return mandatory_fields
@api.model
def _checkin_partner_fields(self):
diff --git a/pms/models/res_partner.py b/pms/models/res_partner.py
index d92865fe6..d971a0917 100644
--- a/pms/models/res_partner.py
+++ b/pms/models/res_partner.py
@@ -149,4 +149,6 @@ class ResPartner(models.Model):
@api.model
def _get_key_fields(self):
- return []
+ key_fields = super(ResPartner, self)._get_key_fields()
+ key_fields.extend(["document_number"])
+ return key_fields
diff --git a/pms/views/pms_checkin_partner_views.xml b/pms/views/pms_checkin_partner_views.xml
index 0ae652ec4..62b082a15 100644
--- a/pms/views/pms_checkin_partner_views.xml
+++ b/pms/views/pms_checkin_partner_views.xml
@@ -29,10 +29,17 @@
-
+
+
+
+
+
+
+
+
+
@@ -70,7 +77,15 @@
/>
-
+
+
+
+
+
+
+
+
+
@@ -107,7 +122,15 @@
-
+
+
+
+
+
+
+
+
+
@@ -139,7 +162,17 @@
/>
-
+
+
+
+
+
+
+
+
+
+
+
@@ -167,11 +200,21 @@
>
-
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/pms_l10n_es/__manifest__.py b/pms_l10n_es/__manifest__.py
index 1ff4d1fc9..68419783f 100644
--- a/pms_l10n_es/__manifest__.py
+++ b/pms_l10n_es/__manifest__.py
@@ -28,9 +28,8 @@
"data/queue_data.xml",
"data/queue_job_function_data.xml",
"security/ir.model.access.csv",
- "views/pms_checkin_partner_views.xml",
"views/pms_property_views.xml",
- "views/res_partner_views.xml",
+ #"views/res_partner_views.xml",
"wizards/traveller_report.xml",
],
"installable": True,
diff --git a/pms_l10n_es/data/pms_data.xml b/pms_l10n_es/data/pms_data.xml
new file mode 100644
index 000000000..a0c645281
--- /dev/null
+++ b/pms_l10n_es/data/pms_data.xml
@@ -0,0 +1,9 @@
+
+
+
+
+ DNI
+ D
+
+
+
diff --git a/pms_l10n_es/models/__init__.py b/pms_l10n_es/models/__init__.py
index ebd8614e3..96f0208e9 100644
--- a/pms_l10n_es/models/__init__.py
+++ b/pms_l10n_es/models/__init__.py
@@ -1,3 +1,3 @@
-from . import res_partner
+#from . import res_partner
from . import pms_checkin_partner
from . import pms_property
diff --git a/pms_l10n_es/models/pms_checkin_partner.py b/pms_l10n_es/models/pms_checkin_partner.py
index 1daf65134..015a43cba 100644
--- a/pms_l10n_es/models/pms_checkin_partner.py
+++ b/pms_l10n_es/models/pms_checkin_partner.py
@@ -4,140 +4,6 @@ from odoo import api, fields, models
class PmsCheckinPartner(models.Model):
_inherit = "pms.checkin.partner"
- firstname = fields.Char(
- "First Name",
- compute="_compute_firstname",
- store=True,
- readonly=False,
- )
- lastname = fields.Char(
- "Last Name",
- compute="_compute_lastname",
- store=True,
- readonly=False,
- )
lastname2 = fields.Char(
- "Second Last Name",
- compute="_compute_lastname2",
- store=True,
- readonly=False,
+ required=True,
)
- birthdate_date = fields.Date(
- "Birthdate",
- compute="_compute_birth_date",
- store=True,
- readonly=False,
- )
- document_number = fields.Char(
- "Document Number",
- compute="_compute_document_number",
- store=True,
- readonly=False,
- )
- document_type = fields.Selection(
- [
- ("D", "DNI"),
- ("P", "Passport"),
- ("C", "Driving License"),
- ("I", "Identification Document"),
- ("N", "Spanish residence permit"),
- ("X", "European residence permit"),
- ],
- string="Document Type",
- help="Select a valid document type",
- compute="_compute_document_type",
- store=True,
- readonly=False,
- )
- document_expedition_date = fields.Date(
- "Expedition Date",
- compute="_compute_document_expedition_date",
- store=True,
- readonly=False,
- )
- gender = fields.Selection(
- [("male", "Male"), ("female", "Female"), ("other", "Other")],
- string="Gender",
- compute="_compute_gender",
- store=True,
- readonly=False,
- )
- nationality_id = fields.Many2one(
- string="Nationality ID",
- compute="_compute_nationality",
- comodel_name="res.country",
- store=True,
- readonly=False,
- )
-
- @api.depends("partner_id", "partner_id.firstname")
- def _compute_firstname(self):
- for record in self:
- if not record.firstname:
- record.firstname = record.partner_id.firstname
-
- @api.depends("partner_id", "partner_id.lastname")
- def _compute_lastname(self):
- for record in self:
- if not record.lastname:
- record.lastname = record.partner_id.lastname
-
- @api.depends("partner_id", "partner_id.lastname2")
- def _compute_lastname2(self):
- for record in self:
- if not record.lastname2:
- record.lastname2 = record.partner_id.lastname2
-
- @api.depends("partner_id", "partner_id.birthdate_date")
- def _compute_birth_date(self):
- for record in self:
- if not record.birthdate_date:
- record.birthdate_date = record.partner_id.birthdate_date
-
- @api.depends("partner_id", "partner_id.document_number")
- def _compute_document_number(self):
- for record in self:
- if not record.document_number:
- record.document_number = record.partner_id.document_number
-
- @api.depends("partner_id", "partner_id.document_type")
- def _compute_document_type(self):
- for record in self:
- if not record.document_type:
- record.document_type = record.partner_id.document_type
-
- @api.depends("partner_id", "partner_id.document_expedition_date")
- def _compute_document_expedition_date(self):
- for record in self:
- if not record.document_expedition_date:
- record.document_expedition_date = (
- record.partner_id.document_expedition_date
- )
-
- @api.depends("partner_id", "partner_id.gender")
- def _compute_gender(self):
- for record in self:
- if not record.gender:
- record.gender = record.partner_id.gender
-
- @api.depends("partner_id", "partner_id.lastname")
- def _compute_nationality(self):
- for record in self:
- if not record.nationality_id:
- record.nationality_id = record.partner_id.nationality_id
-
- @api.model
- def _checkin_mandatory_fields(self, depends=False):
- mandatory_fields = super(PmsCheckinPartner, self)._checkin_mandatory_fields(
- depends
- )
- mandatory_fields.extend(
- [
- "birthdate_date",
- "document_number",
- "document_type",
- "document_expedition_date",
- "gender",
- ]
- )
- return mandatory_fields
diff --git a/pms_l10n_es/models/res_partner.py b/pms_l10n_es/models/res_partner.py
index 4dfe8fad0..829ae8e41 100644
--- a/pms_l10n_es/models/res_partner.py
+++ b/pms_l10n_es/models/res_partner.py
@@ -3,47 +3,3 @@ from odoo import _, api, fields, models
class ResPartner(models.Model):
_inherit = "res.partner"
-
- document_type = fields.Selection(
- [
- ("D", "DNI"),
- ("P", "Passport"),
- ("C", "Driving License"),
- ("I", "Identification Document"),
- ("N", "Spanish residence permit"),
- ("X", "European residence permit"),
- ],
- help="Select a valid document type",
- string="Doc. type",
- )
- document_number = fields.Char(
- string="Document number",
- )
- document_expedition_date = fields.Date(string="Document expedition date")
-
- @api.constrains("document_number", "document_type")
- def _check_document(self):
- for record in self.filtered("document_number"):
- if not record.document_type:
- raise models.ValidationError(_("Document Type field are mandatory"))
- partner = self.search(
- [
- ("document_number", "=", record.document_number),
- ("document_type", "=", record.document_type),
- ("id", "!=", record.id),
- ]
- )
- if partner:
- raise models.ValidationError(
- _(
- "Document Number Partner %s already exist (%s)",
- record.document_number,
- partner.name,
- )
- )
-
- @api.model
- def _get_key_fields(self):
- key_fields = super(ResPartner, self)._get_key_fields()
- key_fields.extend(["document_number"])
- return key_fields
diff --git a/pms_l10n_es/views/pms_checkin_partner_views.xml b/pms_l10n_es/views/pms_checkin_partner_views.xml
deleted file mode 100644
index 96a1f4de6..000000000
--- a/pms_l10n_es/views/pms_checkin_partner_views.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
-
- Checkin partner view form Spain
- pms.checkin.partner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Checkin partner view reservation tree Spain
- pms.checkin.partner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Checkin partner view reservation tree Spain
- pms.checkin.partner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Checkin partner view tree Spain
- pms.checkin.partner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Checkin partner view tree Spain
- pms.checkin.partner
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pms_l10n_es/views/res_partner_views.xml b/pms_l10n_es/views/res_partner_views.xml
index 2f2c75775..21e9dc562 100644
--- a/pms_l10n_es/views/res_partner_views.xml
+++ b/pms_l10n_es/views/res_partner_views.xml
@@ -1,19 +1,19 @@
-
-
-
- Legal Spanish information
- res.partner
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+