From fd37f63776cddcddc198ee7ddbad7c173d773c55 Mon Sep 17 00:00:00 2001 From: miguelpadin Date: Thu, 5 Sep 2024 09:12:24 +0100 Subject: [PATCH] [IMP] pms: assure coherence between residence state and residence country (checkin partner & partner) --- pms/models/pms_checkin_partner.py | 13 +++++++++++++ pms/models/res_partner.py | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py index 8c394e817..d0a7b1b9f 100644 --- a/pms/models/pms_checkin_partner.py +++ b/pms/models/pms_checkin_partner.py @@ -750,6 +750,19 @@ class PmsCheckinPartner(models.Model): _("Document type and country of document do not match") ) + @api.constrains("residence_state_id", "residence_country_id") + def _check_residence_state_id_residence_country_id_consistence(self): + for record in self: + if record.residence_state_id and record.residence_country_id: + if ( + record.residence_state_id.country_id + and record.residence_country_id + not in record.residence_state_id.country_id + ): + raise ValidationError( + _("State and country of residence do not match") + ) + @api.model def create(self, vals): # The checkin records are created automatically from adult depends diff --git a/pms/models/res_partner.py b/pms/models/res_partner.py index 47f604e33..52499d13d 100644 --- a/pms/models/res_partner.py +++ b/pms/models/res_partner.py @@ -685,6 +685,19 @@ class ResPartner(models.Model): # ) # ) + @api.constrains("residence_state_id", "residence_country_id") + def _check_residence_state_id_residence_country_id_consistence(self): + for record in self: + if record.residence_state_id and record.residence_country_id: + if ( + record.residence_state_id.country_id + and record.residence_country_id + not in record.residence_state_id.country_id + ): + raise ValidationError( + _("State and country of residence do not match") + ) + def _search_duplicated(self): self.ensure_one() partner = False