From 334fbe1adeca72b2a0161417f8929f0d758896e0 Mon Sep 17 00:00:00 2001 From: miguelpadin Date: Mon, 21 Feb 2022 16:20:42 +0000 Subject: [PATCH] [IMP] pms: mandatory closure reason if reservation is out & fix mandatory partner --- pms/models/pms_folio.py | 2 +- pms/models/pms_reservation.py | 15 +++++++++++++-- pms/views/pms_reservation_views.xml | 2 +- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py index 6f3302fdb..1c42808c5 100644 --- a/pms/models/pms_folio.py +++ b/pms/models/pms_folio.py @@ -1137,7 +1137,7 @@ class PmsFolio(models.Model): @api.constrains("name") def _check_required_partner_name(self): for record in self: - if not record.partner_name: + if not record.partner_name and record.reservation_type != 'out': raise models.ValidationError(_("You must assign a customer name")) @api.model diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py index 9367b7ea3..588797fe7 100644 --- a/pms/models/pms_reservation.py +++ b/pms/models/pms_reservation.py @@ -125,6 +125,7 @@ class PmsReservation(models.Model): help="Reason why the reservation cannot be made", related="folio_id.closure_reason_id", check_pms_properties=True, + readonly=False, ) company_id = fields.Many2one( string="Company", @@ -1670,6 +1671,16 @@ class PmsReservation(models.Model): record, record.service_ids.service_line_ids ) + @api.constrains("closure_reason_id") + def _check_closure_reason_id(self): + for record in self: + if record.reservation_type == "out" and not record.closure_reason_id: + raise ValidationError( + _( + "A closure reason is mandatory when reservation type is 'out of service'" + ) + ) + @api.constrains("reservation_type") def _check_same_reservation_type(self): for record in self: @@ -1802,7 +1813,7 @@ class PmsReservation(models.Model): default_vals["partner_name"] = folio.partner_name default_vals["mobile"] = folio.mobile default_vals["email"] = folio.email - else: + elif vals.get("reservation_type") != "out": raise ValidationError(_("Partner contact name is required")) vals.update(default_vals) elif "pms_property_id" in vals and ( @@ -1819,7 +1830,7 @@ class PmsReservation(models.Model): folio_vals["partner_name"] = vals.get("partner_name") folio_vals["mobile"] = vals.get("mobile") folio_vals["email"] = vals.get("email") - else: + elif vals.get("reservation_type") != "out": raise ValidationError(_("Partner contact name is required")) # Create the folio in case of need # (To allow to create reservations direct) diff --git a/pms/views/pms_reservation_views.xml b/pms/views/pms_reservation_views.xml index 07bb9ad15..8d0dcad5e 100644 --- a/pms/views/pms_reservation_views.xml +++ b/pms/views/pms_reservation_views.xml @@ -351,7 +351,7 @@ - +