diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py
index e7b57a003..3f4e816fc 100644
--- a/pms/models/pms_folio.py
+++ b/pms/models/pms_folio.py
@@ -38,6 +38,9 @@ class PmsFolio(models.Model):
external_reference = fields.Char(
string="External Reference",
help="Reference of this folio in an external system",
+ compute="_compute_external_reference",
+ readonly=False,
+ store=True,
)
pms_property_id = fields.Many2one(
string="Property",
@@ -711,6 +714,20 @@ class PmsFolio(models.Model):
]
return res
+ @api.depends("reservation_ids", "reservation_ids.external_reference")
+ def _compute_external_reference(self):
+ for folio in self:
+ folio.external_reference = folio._get_folio_external_reference()
+
+ def _get_folio_external_reference(self):
+ self.ensure_one()
+ references = list(set(self.reservation_ids.mapped("external_reference")))
+ references = list(filter(bool, references))
+ if references:
+ return ",".join(references)
+ else:
+ return False
+
@api.depends("partner_id", "invoice_status", "last_checkout", "partner_invoice_ids")
def _compute_autoinvoice_date(self):
self.autoinvoice_date = False
diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py
index 82db73d6b..13d92c2ba 100644
--- a/pms/models/pms_reservation.py
+++ b/pms/models/pms_reservation.py
@@ -26,6 +26,13 @@ class PmsReservation(models.Model):
help="Reservation Code Identification",
readonly=True,
)
+ external_reference = fields.Char(
+ string="External Reference",
+ help="Reference of this folio in an external system",
+ compute="_compute_external_reference",
+ store=True,
+ readonly=False,
+ )
folio_sequence = fields.Integer(
string="Folio Sequence",
help="Techinal field to get reservation name",
@@ -668,6 +675,22 @@ class PmsReservation(models.Model):
string="Language", comodel_name="res.lang", compute="_compute_lang"
)
+ @api.depends("folio_id", "folio_id.external_reference")
+ def _compute_external_reference(self):
+ for reservation in self:
+ if not reservation.external_reference:
+ reservation.external_reference = (
+ reservation._get_reservation_external_reference()
+ )
+
+ def _get_reservation_external_reference(self):
+ self.ensure_one()
+ folio = self.folio_id
+ if folio and folio.external_reference:
+ return folio.external_reference
+ else:
+ return False
+
def _compute_date_order(self):
for record in self:
record.date_order = datetime.datetime.today()
diff --git a/pms/views/pms_reservation_views.xml b/pms/views/pms_reservation_views.xml
index fd93fbdd6..17188ed8b 100644
--- a/pms/views/pms_reservation_views.xml
+++ b/pms/views/pms_reservation_views.xml
@@ -436,6 +436,10 @@
name="agency_id"
attrs="{'invisible': [('reservation_type', '!=', 'normal')]}"
/>
+