mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP]pms: Add external code to reservation
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -436,6 +436,10 @@
|
||||
name="agency_id"
|
||||
attrs="{'invisible': [('reservation_type', '!=', 'normal')]}"
|
||||
/>
|
||||
<field
|
||||
name="external_reference"
|
||||
attrs="{'invisible': [('agency_id', '=', False)]}"
|
||||
/>
|
||||
<field
|
||||
name="channel_type_id"
|
||||
attrs="{'readonly':[('agency_id','!=', False)], 'invisible': [('reservation_type', '!=', 'normal')]}"
|
||||
|
||||
Reference in New Issue
Block a user