From 0e4042150f21d569458c8a9653943bbfb2b1dfb7 Mon Sep 17 00:00:00 2001 From: braisab Date: Thu, 19 Aug 2021 10:09:35 +0200 Subject: [PATCH] [REF]Change possible_existing_customer field from boolean to many2one --- pms/models/pms_folio.py | 36 ++++++++++++----------------- pms/models/pms_reservation.py | 27 +++++++++------------- pms/views/pms_folio_views.xml | 6 ++--- pms/views/pms_reservation_views.xml | 6 ++--- 4 files changed, 32 insertions(+), 43 deletions(-) diff --git a/pms/models/pms_folio.py b/pms/models/pms_folio.py index 843da4144..c0ac8cff5 100644 --- a/pms/models/pms_folio.py +++ b/pms/models/pms_folio.py @@ -469,9 +469,11 @@ class PmsFolio(models.Model): ondelete="restrict", ) - is_possible_existing_customer = fields.Boolean( + is_possible_existing_customer_id = fields.Many2one( string="Possible existing customer", - compute="_compute_is_possible_existing_customer", + readonly=False, + store=True, + compute="_compute_is_possible_existing_customer_id", ) add_possible_customer = fields.Boolean(string="Add possible Customer") @@ -682,16 +684,7 @@ class PmsFolio(models.Model): def _compute_partner_id(self): for folio in self: if folio.add_possible_customer: - partner = False - if folio.email: - partner = self.env["res.partner"].search( - [("email", "=", folio.email)] - ) - elif folio.mobile: - partner = self.env["res.partner"].search( - [("mobile", "=", folio.mobile)] - ) - folio.partner_id = partner.id + folio.partner_id = folio.is_possible_existing_customer_id.id elif folio.reservation_type == "out": folio.partner_id = False elif folio.agency_id and folio.agency_id.invoice_to_agency: @@ -1048,9 +1041,9 @@ class PmsFolio(models.Model): self._apply_document_id(record) @api.depends("email", "mobile") - def _compute_is_possible_existing_customer(self): + def _compute_is_possible_existing_customer_id(self): for record in self: - self._apply_is_possible_existing_customer(record) + self._apply_is_possible_existing_customer_id(record) def _search_invoice_ids(self, operator, value): if operator == "in" and value: @@ -1812,16 +1805,17 @@ class PmsFolio(models.Model): record.email = False @api.model - def _apply_is_possible_existing_customer(self, record): - partner = False + def _apply_is_possible_existing_customer_id(self, record): if record.email and not record.partner_id: - partner = self.env["res.partner"].search([("email", "=", record.email)]) + record.is_possible_existing_customer_id = ( + self.env["res.partner"].search([("email", "=", record.email)]).id + ) elif record.mobile and not record.partner_id: - partner = self.env["res.partner"].search([("mobile", "=", record.mobile)]) - if partner: - record.is_possible_existing_customer = True + record.is_possible_existing_customer_id = ( + self.env["res.partner"].search([("mobile", "=", record.mobile)]).id + ) else: - record.is_possible_existing_customer = False + record.is_possible_existing_customer_id = False @api.model def _apply_document_id(self, record): diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py index 00a0554d3..72b53a98d 100644 --- a/pms/models/pms_reservation.py +++ b/pms/models/pms_reservation.py @@ -635,9 +635,11 @@ class PmsReservation(models.Model): ondelete="restrict", ) - is_possible_existing_customer = fields.Boolean( + is_possible_existing_customer_id = fields.Many2one( string="Possible existing customer", - compute="_compute_is_possible_existing_customer", + readonly=False, + store=True, + compute="_compute_is_possible_existing_customer_id", ) add_possible_customer = fields.Boolean(string="Add possible Customer") @@ -829,16 +831,9 @@ class PmsReservation(models.Model): for reservation in self: if not reservation.partner_id: if reservation.add_possible_customer: - partner = False - if reservation.email: - partner = self.env["res.partner"].search( - [("email", "=", reservation.email)] - ) - elif reservation.mobile: - partner = self.env["res.partner"].search( - [("mobile", "=", reservation.mobile)] - ) - reservation.partner_id = partner.id + reservation.partner_id = ( + reservation.is_possible_existing_customer_id.id + ) elif reservation.reservation_type == "out": reservation.partner_id = False elif reservation.folio_id and reservation.folio_id.partner_id: @@ -876,7 +871,7 @@ class PmsReservation(models.Model): } self.env["res.partner.id_number"].create(number_values) reservation.partner_id = partner - else: + elif not reservation.partner_id: reservation.partner_id = False @api.depends("checkin", "checkout") @@ -1363,7 +1358,7 @@ class PmsReservation(models.Model): else: record.partner_name = record.out_service_description - @api.depends("partner_id", "partner_id.email", "agency_id") + @api.depends("partner_id", "partner_id.email", "agency_id", "add_possible_customer") def _compute_email(self): for record in self: self.env["pms.folio"]._apply_email(record) @@ -1460,9 +1455,9 @@ class PmsReservation(models.Model): self.env["pms.folio"]._apply_document_id(record) @api.depends("email", "mobile") - def _compute_is_possible_existing_customer(self): + def _compute_is_possible_existing_customer_id(self): for record in self: - self.env["pms.folio"]._apply_is_possible_existing_customer(record) + self.env["pms.folio"]._apply_is_possible_existing_customer_id(record) def _search_allowed_checkin(self, operator, value): if operator not in ("=",): diff --git a/pms/views/pms_folio_views.xml b/pms/views/pms_folio_views.xml index 710589ac6..572cbd1f1 100644 --- a/pms/views/pms_folio_views.xml +++ b/pms/views/pms_folio_views.xml @@ -59,13 +59,13 @@ class="alert alert-warning" role="alert" style="margin-bottom:0px;" - attrs="{'invisible': [('is_possible_existing_customer','=',False)]}" + attrs="{'invisible': [('is_possible_existing_customer_id','=',False)]}" > There is a customer with this email or mobile, do you want to add it to the reservation? - + diff --git a/pms/views/pms_reservation_views.xml b/pms/views/pms_reservation_views.xml index 1d03d4561..d9c3169ef 100644 --- a/pms/views/pms_reservation_views.xml +++ b/pms/views/pms_reservation_views.xml @@ -120,13 +120,13 @@ class="alert alert-warning" role="alert" style="margin-bottom:0px;" - attrs="{'invisible': [('is_possible_existing_customer','=',False)]}" + attrs="{'invisible': [('is_possible_existing_customer_id','=',False)]}" > There is a customer with this email or mobile, do you want to add it to the reservation? - +