diff --git a/pms/i18n/es.po b/pms/i18n/es.po
index ab4d76cfb..23fa1ab61 100644
--- a/pms/i18n/es.po
+++ b/pms/i18n/es.po
@@ -3788,8 +3788,8 @@ msgid "Income Account"
msgstr "Cuenta de Ingresos"
#. module: pms
-#: model:ir.model.fields,field_description:pms.field_pms_checkin_partner__incongruences
-msgid "Incongruences"
+#: model:ir.model.fields,field_description:pms.field_pms_checkin_partner__partner_incongruences
+msgid "partner_incongruences"
msgstr ""
#. module: pms
@@ -7963,7 +7963,7 @@ msgstr "Computación técnica"
#. module: pms
#: model:ir.model.fields,help:pms.field_pms_checkin_partner__document_id
-#: model:ir.model.fields,help:pms.field_pms_checkin_partner__incongruences
+#: model:ir.model.fields,help:pms.field_pms_checkin_partner__partner_incongruences
#, fuzzy
msgid "Technical field"
msgstr "Computación técnica"
diff --git a/pms/i18n/pms.pot b/pms/i18n/pms.pot
index 8af8bffd3..75d34e9ee 100644
--- a/pms/i18n/pms.pot
+++ b/pms/i18n/pms.pot
@@ -3582,8 +3582,8 @@ msgid "Income Account"
msgstr ""
#. module: pms
-#: model:ir.model.fields,field_description:pms.field_pms_checkin_partner__incongruences
-msgid "Incongruences"
+#: model:ir.model.fields,field_description:pms.field_pms_checkin_partner__partner_incongruences
+msgid "partner_incongruences"
msgstr ""
#. module: pms
@@ -7586,7 +7586,7 @@ msgstr ""
#. module: pms
#: model:ir.model.fields,help:pms.field_pms_checkin_partner__document_id
-#: model:ir.model.fields,help:pms.field_pms_checkin_partner__incongruences
+#: model:ir.model.fields,help:pms.field_pms_checkin_partner__partner_incongruences
msgid "Technical field"
msgstr ""
diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py
index 2e9e3e8f7..5931d2d9e 100644
--- a/pms/models/pms_checkin_partner.py
+++ b/pms/models/pms_checkin_partner.py
@@ -192,10 +192,12 @@ class PmsCheckinPartner(models.Model):
ondelete="restrict",
)
- incongruences = fields.Char(
- string="Incongruences",
- help="Technical field",
- compute="_compute_incongruences",
+ partner_incongruences = fields.Char(
+ string="partner_incongruences",
+ help="indicates that some partner fields \
+ on the checkin do not correspond to that of \
+ the associated partner",
+ compute="_compute_partner_incongruences",
)
@api.depends("partner_id")
@@ -405,25 +407,29 @@ class PmsCheckinPartner(models.Model):
"nationality_id",
"email",
"mobile",
+ "partner_id",
)
- def _compute_incongruences(self):
+ def _compute_partner_incongruences(self):
for record in self:
- incongruous_fields = ""
+ incongruous_fields = False
if record.partner_id:
for field in record._checkin_partner_fields():
if (
record.partner_id[field]
and record.partner_id[field] != record[field]
):
- incongruous_fields += record._fields[field].string + ", "
+ if not incongruous_fields:
+ incongruous_fields = record._fields[field].string
+ else:
+ incongruous_fields += ", " + record._fields[field].string
if incongruous_fields:
- record.incongruences = (
- incongruous_fields + "field/s don't correspond to saved host"
+ record.partner_incongruences = (
+ incongruous_fields + " field/s don't correspond to saved host"
)
else:
- record.incongruences = False
+ record.partner_incongruences = False
else:
- record.incongruences = False
+ record.partner_incongruences = False
@api.constrains("departure", "arrival")
def _check_departure(self):
diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py
index 642799a72..96b5cb342 100644
--- a/pms/models/pms_folio.py
+++ b/pms/models/pms_folio.py
@@ -338,6 +338,13 @@ class PmsFolio(models.Model):
readonly=False,
compute="_compute_mobile",
)
+ partner_incongruences = fields.Char(
+ string="partner_incongruences",
+ help="indicates that some partner fields \
+ on the folio do not correspond to that of \
+ the associated partner",
+ compute="_compute_partner_incongruences",
+ )
partner_internal_comment = fields.Text(
string="Internal Partner Notes",
help="Internal notes of the partner",
@@ -770,6 +777,36 @@ class PmsFolio(models.Model):
elif not record.mobile:
record.mobile = False
+ @api.depends(
+ "partner_name",
+ "email",
+ "mobile",
+ "partner_id",
+ )
+ def _compute_partner_incongruences(self):
+ fields_mapping = {
+ "partner_name": "name",
+ "email": "email",
+ "mobile": "mobile",
+ }
+ for record in self:
+ incongruous_fields = False
+ if record.partner_id:
+ for k, v in fields_mapping.items():
+ if record.partner_id[v] and record.partner_id[v] != record[k]:
+ if not incongruous_fields:
+ incongruous_fields = v
+ else:
+ incongruous_fields += ", " + v
+ if incongruous_fields:
+ record.partner_incongruences = (
+ incongruous_fields + " field/s don't correspond to saved host"
+ )
+ else:
+ record.partner_incongruences = False
+ else:
+ record.partner_incongruences = False
+
@api.depends("sale_line_ids.price_total")
def _compute_amount_all(self):
"""
@@ -978,6 +1015,20 @@ class PmsFolio(models.Model):
"target": "new",
}
+ def open_partner(self):
+ """ Utility method used to add an "View Customer" button in folio views """
+ self.ensure_one()
+ partner_form_id = self.env.ref("base.view_partner_address_form").id
+ return {
+ "type": "ir.actions.act_window",
+ "res_model": "res.partner",
+ "view_mode": "form",
+ "views": [(partner_form_id, "form")],
+ "res_id": self.partner_id.id,
+ "target": "new",
+ "flags": {"form": {"action_buttons": True}},
+ }
+
def open_moves_folio(self):
invoices = self.mapped("move_ids")
action = self.env.ref("account.action_move_out_invoice_type").sudo().read()[0]
diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py
index 39f422934..44b3b1a29 100644
--- a/pms/models/pms_reservation.py
+++ b/pms/models/pms_reservation.py
@@ -480,6 +480,13 @@ class PmsReservation(models.Model):
readonly=False,
compute="_compute_mobile",
)
+ partner_incongruences = fields.Char(
+ string="partner_incongruences",
+ help="indicates that some partner fields \
+ on the reservation do not correspond to that of \
+ the associated partner",
+ compute="_compute_partner_incongruences",
+ )
partner_internal_comment = fields.Text(
string="Internal Partner Notes",
help="Internal reservation comment",
@@ -1176,6 +1183,36 @@ class PmsReservation(models.Model):
elif not record.partner_mobile:
record.partner_mobile = False
+ @api.depends(
+ "partner_name",
+ "partner_email",
+ "partner_mobile",
+ "partner_id",
+ )
+ def _compute_partner_incongruences(self):
+ fields_mapping = {
+ "partner_name": "name",
+ "partner_email": "email",
+ "partner_mobile": "mobile",
+ }
+ for record in self:
+ incongruous_fields = False
+ if record.partner_id:
+ for k, v in fields_mapping.items():
+ if record.partner_id[v] and record.partner_id[v] != record[k]:
+ if not incongruous_fields:
+ incongruous_fields = v
+ else:
+ incongruous_fields += ", " + v
+ if incongruous_fields:
+ record.partner_incongruences = (
+ incongruous_fields + " field/s don't correspond to saved host"
+ )
+ else:
+ record.partner_incongruences = False
+ else:
+ record.partner_incongruences = False
+
def _compute_checkin_partner_count(self):
for record in self:
if record.reservation_type != "out":
@@ -1369,6 +1406,20 @@ class PmsReservation(models.Model):
raise ValidationError(_("booking agency with wrong configuration: "))
# Action methods
+ def open_partner(self):
+ """ Utility method used to add an "View Customer" button in folio views """
+ self.ensure_one()
+ partner_form_id = self.env.ref("base.view_partner_address_form").id
+ return {
+ "type": "ir.actions.act_window",
+ "res_model": "res.partner",
+ "view_mode": "form",
+ "views": [(partner_form_id, "form")],
+ "res_id": self.partner_id.id,
+ "target": "new",
+ "flags": {"form": {"action_buttons": True}},
+ }
+
def print_all_checkins(self):
checkins = self.env["pms.checkin.partner"]
for record in self:
diff --git a/pms/views/pms_checkin_partner_views.xml b/pms/views/pms_checkin_partner_views.xml
index b7852748f..2fd7a1d4d 100644
--- a/pms/views/pms_checkin_partner_views.xml
+++ b/pms/views/pms_checkin_partner_views.xml
@@ -29,9 +29,9 @@
class="alert alert-danger"
role="danger"
style="margin-bottom:0px;"
- attrs="{'invisible': [('incongruences','=',False)]}"
+ attrs="{'invisible': [('partner_incongruences','=',False)]}"
>
-
+
diff --git a/pms/views/pms_folio_views.xml b/pms/views/pms_folio_views.xml
index bc1c01aa4..35cb9cdf7 100644
--- a/pms/views/pms_folio_views.xml
+++ b/pms/views/pms_folio_views.xml
@@ -39,6 +39,22 @@
statusbar_visible="draft,sent,sale,done"
/>
+
+
+
+
+
+
+
+
+
+
+
+