diff --git a/pms/models/pms_reservation.py b/pms/models/pms_reservation.py
index 3e0715b33..1859b8afa 100644
--- a/pms/models/pms_reservation.py
+++ b/pms/models/pms_reservation.py
@@ -635,11 +635,13 @@ class PmsReservation(models.Model):
ondelete="restrict",
)
- is_possible_existing_customer_id = fields.Many2one(
+ possible_existing_customer_ids = fields.One2many(
string="Possible existing customer",
readonly=False,
store=True,
- compute="_compute_is_possible_existing_customer_id",
+ compute="_compute_possible_existing_customer_ids",
+ comodel_name="res.partner",
+ inverse_name="reservation_possible_customer_id",
)
add_possible_customer = fields.Boolean(string="Add possible Customer")
@@ -838,7 +840,6 @@ class PmsReservation(models.Model):
"partner_name",
"email",
"mobile",
- "add_possible_customer",
)
def _compute_partner_id(self):
for reservation in self:
@@ -851,8 +852,6 @@ class PmsReservation(models.Model):
reservation.partner_id = reservation.agency_id
elif reservation.document_number and reservation.document_type:
self.env["pms.folio"]._create_partner(reservation)
- elif reservation.add_possible_customer:
- self.env["pms.folio"]._add_customer(reservation)
elif not reservation.partner_id:
reservation.partner_id = False
@@ -1340,7 +1339,7 @@ class PmsReservation(models.Model):
else:
record.partner_name = record.out_service_description
- @api.depends("partner_id", "partner_id.email", "agency_id", "add_possible_customer")
+ @api.depends("partner_id", "partner_id.email", "agency_id")
def _compute_email(self):
for record in self:
self.env["pms.folio"]._apply_email(record)
@@ -1436,10 +1435,21 @@ class PmsReservation(models.Model):
for record in self:
self.env["pms.folio"]._apply_document_id(record)
- @api.depends("email", "mobile")
- def _compute_is_possible_existing_customer_id(self):
+ @api.depends("email", "mobile", "partner_name")
+ def _compute_possible_existing_customer_ids(self):
for record in self:
- self.env["pms.folio"]._apply_is_possible_existing_customer_id(record)
+ if record.partner_name:
+ possible_customer = self.env[
+ "pms.folio"
+ ]._apply_possible_existing_customer_ids(
+ record.email, record.mobile, record.partner_id
+ )
+ if possible_customer:
+ record.possible_existing_customer_ids = possible_customer
+ else:
+ record.possible_existing_customer_ids = False
+ else:
+ record.possible_existing_customer_ids = False
@api.depends("checkin", "checkout")
def _compute_is_modified_reservation(self):
@@ -1746,6 +1756,21 @@ class PmsReservation(models.Model):
"context": ctx,
}
+ def open_wizard_several_partners(self):
+ ctx = dict(
+ reservation_id=self.id,
+ possible_existing_customer_ids=self.possible_existing_customer_ids.ids,
+ )
+ return {
+ "view_type": "form",
+ "view_mode": "form",
+ "name": "Several Customers",
+ "res_model": "pms.several.partners.wizard",
+ "target": "new",
+ "type": "ir.actions.act_window",
+ "context": ctx,
+ }
+
@api.model
def name_search(self, name="", args=None, operator="ilike", limit=100):
if args is None:
diff --git a/pms/views/pms_reservation_views.xml b/pms/views/pms_reservation_views.xml
index 233b62735..46f1d357a 100644
--- a/pms/views/pms_reservation_views.xml
+++ b/pms/views/pms_reservation_views.xml
@@ -140,13 +140,14 @@
class="alert alert-warning"
role="alert"
style="margin-bottom:0px;"
- attrs="{'invisible': [('is_possible_existing_customer_id','=',[])]}"
+ attrs="{'invisible': [('possible_existing_customer_ids','=',[])]}"
>
- There is a customer with this email or mobile, do you want to add it to the reservation?
-
-
+