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?
-
+