From fb027d42d313afe71da1301fb32e7872d6d600d0 Mon Sep 17 00:00:00 2001 From: Sara Lago Date: Tue, 8 Jun 2021 12:13:34 +0200 Subject: [PATCH] [FIX] pms: computed fields and duplicate document_id solved --- pms/models/pms_checkin_partner.py | 43 +++++++++++++++++++------------ pms/models/res_partner.py | 14 +++++----- 2 files changed, 33 insertions(+), 24 deletions(-) diff --git a/pms/models/pms_checkin_partner.py b/pms/models/pms_checkin_partner.py index be266b564..647f8e9f9 100644 --- a/pms/models/pms_checkin_partner.py +++ b/pms/models/pms_checkin_partner.py @@ -204,7 +204,7 @@ class PmsCheckinPartner(models.Model): if record.partner_id.id_numbers: record.document_number = record.partner_id.id_numbers[0].name - @api.depends("partner_id", "partner_id.id_numbers", "document_type") + @api.depends("partner_id", "partner_id.id_numbers") def _compute_document_type(self): for record in self: if record.partner_id and record.partner_id.id_numbers: @@ -229,25 +229,25 @@ class PmsCheckinPartner(models.Model): @api.depends("partner_id", "partner_id.firstname") def _compute_firstname(self): for record in self: - if not record.firstname: + if not record.firstname or record.partner_id.firstname: record.firstname = record.partner_id.firstname @api.depends("partner_id", "partner_id.lastname") def _compute_lastname(self): for record in self: - if not record.lastname: + if not record.lastname or record.partner_id.lastname: record.lastname = record.partner_id.lastname @api.depends("partner_id", "partner_id.lastname2") def _compute_lastname2(self): for record in self: - if not record.lastname2: + if not record.lastname2 or record.partner_id.lastname2: record.lastname2 = record.partner_id.lastname2 @api.depends("partner_id", "partner_id.birthdate_date") def _compute_birth_date(self): for record in self: - if not record.birthdate_date: + if not record.birthdate_date or record.partner_id.birthdate_date: record.birthdate_date = record.partner_id.birthdate_date @api.depends( @@ -256,13 +256,13 @@ class PmsCheckinPartner(models.Model): ) def _compute_gender(self): for record in self: - if not record.gender and record.partner_id.gender: + if not record.gender or record.partner_id.gender: record.gender = record.partner_id.gender @api.depends("partner_id", "partner_id.lastname") def _compute_nationality(self): for record in self: - if not record.nationality_id: + if not record.nationality_id or record.partner_id.nationality_id: record.nationality_id = record.partner_id.nationality_id @api.depends("reservation_id", "folio_id", "reservation_id.preferred_room_id") @@ -311,19 +311,19 @@ class PmsCheckinPartner(models.Model): ) def _compute_name(self): for record in self: - if not record.name: + if not record.name or record.partner_id.name: record.name = record.partner_id.name @api.depends("partner_id", "partner_id.email") def _compute_email(self): for record in self: - if not record.email: + if not record.email or record.partner_id.email: record.email = record.partner_id.email @api.depends("partner_id", "partner_id.mobile") def _compute_mobile(self): for record in self: - if not record.mobile: + if not record.mobile or record.partner_id.mobile: record.mobile = record.partner_id.mobile @api.depends("partner_id") @@ -335,14 +335,23 @@ class PmsCheckinPartner(models.Model): and record.document_number and record.document_type ): - id_number_id = self.env["res.partner.id_number"].create( - { - "partner_id": record.partner_id.id, - "name": record.document_number, - "category_id": record.document_type.id, - "valid_from": record.document_expedition_date, - } + id_number_id = self.env["res.partner.id_number"].search( + [ + ("partner_id", "=", record.partner_id.id), + ("name", "=", record.document_number), + ("category_id", "=", record.document_type.id), + ] ) + if not id_number_id: + id_number_id = self.env["res.partner.id_number"].create( + { + "partner_id": record.partner_id.id, + "name": record.document_number, + "category_id": record.document_type.id, + "valid_from": record.document_expedition_date, + } + ) + record.document_id = id_number_id else: record.document_id = False diff --git a/pms/models/res_partner.py b/pms/models/res_partner.py index ca20dcd2a..04045a6e9 100644 --- a/pms/models/res_partner.py +++ b/pms/models/res_partner.py @@ -116,7 +116,7 @@ class ResPartner(models.Model): super()._compute_field() for record in self: gender = record.pms_checkin_partner_ids.mapped("gender") - if not record.gender and gender: + if gender: record.gender = gender[0] @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.birthdate_date") @@ -134,7 +134,7 @@ class ResPartner(models.Model): super()._compute_field() for record in self: nationality = record.pms_checkin_partner_ids.nationality_id - if not record.nationality_id and nationality: + if nationality: record.nationality_id = nationality[0] @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.email") @@ -143,7 +143,7 @@ class ResPartner(models.Model): super()._compute_field() for record in self: email = record.pms_checkin_partner_ids.mapped("email") - if not record.email and email: + if email: record.email = email[0] @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.mobile") @@ -152,7 +152,7 @@ class ResPartner(models.Model): super()._compute_field() for record in self: mobile = record.pms_checkin_partner_ids.mapped("mobile") - if not record.mobile and mobile: + if mobile: record.mobile = mobile[0] @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.firstname") @@ -161,7 +161,7 @@ class ResPartner(models.Model): super()._compute_field() for record in self: firstname = record.pms_checkin_partner_ids.mapped("firstname") - if not record.firstname and firstname: + if firstname: record.firstname = firstname[0] @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname") @@ -170,7 +170,7 @@ class ResPartner(models.Model): super()._compute_field() for record in self: lastname = record.pms_checkin_partner_ids.mapped("lastname") - if not record.lastname and lastname: + if lastname: record.lastname = lastname[0] @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname2") @@ -179,7 +179,7 @@ class ResPartner(models.Model): super()._compute_field() for record in self: lastname2 = record.pms_checkin_partner_ids.mapped("lastname2") - if not record.lastname2 and lastname2: + if lastname2: record.lastname2 = lastname2[0] def _compute_reservations_count(self):