mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[FIX]pms: Fixed email field when add customer with boolean
This commit is contained in:
@@ -683,43 +683,14 @@ class PmsFolio(models.Model):
|
||||
)
|
||||
def _compute_partner_id(self):
|
||||
for folio in self:
|
||||
if folio.add_possible_customer:
|
||||
folio.partner_id = folio.is_possible_existing_customer_id.id
|
||||
elif folio.reservation_type == "out":
|
||||
if folio.reservation_type == "out":
|
||||
folio.partner_id = False
|
||||
elif folio.agency_id and folio.agency_id.invoice_to_agency:
|
||||
folio.partner_id = folio.agency_id.id
|
||||
elif folio.document_number and folio.document_type:
|
||||
number = self.env["res.partner.id_number"].search(
|
||||
[
|
||||
("name", "=", folio.document_number),
|
||||
("category_id", "=", folio.document_type.id),
|
||||
]
|
||||
)
|
||||
partner = self.env["res.partner"].search(
|
||||
[("id", "=", number.partner_id.id)]
|
||||
)
|
||||
if partner:
|
||||
folio.partner_id = partner.id
|
||||
else:
|
||||
if (
|
||||
folio.partner_name
|
||||
and folio.document_number
|
||||
and folio.document_type
|
||||
):
|
||||
partner_values = {
|
||||
"name": folio.partner_name,
|
||||
"email": folio.email,
|
||||
"mobile": folio.mobile,
|
||||
}
|
||||
partner = self.env["res.partner"].create(partner_values)
|
||||
number_values = {
|
||||
"partner_id": partner.id,
|
||||
"name": folio.document_number,
|
||||
"category_id": folio.document_type.id,
|
||||
}
|
||||
self.env["res.partner.id_number"].create(number_values)
|
||||
folio.partner_id = partner
|
||||
self._create_partner(folio)
|
||||
elif folio.add_possible_customer:
|
||||
self._add_customer(folio)
|
||||
elif not folio.partner_id:
|
||||
folio.partner_id = False
|
||||
|
||||
@@ -1859,3 +1830,38 @@ class PmsFolio(models.Model):
|
||||
if not record.document_type:
|
||||
if record.partner_id.id_numbers:
|
||||
record.document_type = record.partner_id.id_numbers[0].category_id
|
||||
|
||||
@api.model
|
||||
def _create_partner(self, record):
|
||||
number = self.env["res.partner.id_number"].search(
|
||||
[
|
||||
("name", "=", record.document_number),
|
||||
("category_id", "=", record.document_type.id),
|
||||
]
|
||||
)
|
||||
partner = self.env["res.partner"].search([("id", "=", number.partner_id.id)])
|
||||
if not partner:
|
||||
if record.partner_name and record.document_number and record.document_type:
|
||||
partner_values = {
|
||||
"name": record.partner_name,
|
||||
"email": record.email,
|
||||
"mobile": record.mobile,
|
||||
}
|
||||
partner = self.env["res.partner"].create(partner_values)
|
||||
number_values = {
|
||||
"partner_id": partner.id,
|
||||
"name": record.document_number,
|
||||
"category_id": record.document_type.id,
|
||||
}
|
||||
self.env["res.partner.id_number"].create(number_values)
|
||||
record.partner_id = partner
|
||||
|
||||
# REVIEW: we should not force the email and mobile computes,
|
||||
# but if we do not do so,the cache sets the partner_id to False
|
||||
# and therefore also the document_number, email or mobile
|
||||
@api.model
|
||||
def _add_customer(self, record):
|
||||
record.partner_id = record.is_possible_existing_customer_id.id
|
||||
record._compute_document_number()
|
||||
record._compute_email()
|
||||
record._compute_mobile()
|
||||
|
||||
@@ -830,47 +830,16 @@ class PmsReservation(models.Model):
|
||||
def _compute_partner_id(self):
|
||||
for reservation in self:
|
||||
if not reservation.partner_id:
|
||||
if reservation.add_possible_customer:
|
||||
reservation.partner_id = (
|
||||
reservation.is_possible_existing_customer_id.id
|
||||
)
|
||||
elif reservation.reservation_type == "out":
|
||||
if reservation.reservation_type == "out":
|
||||
reservation.partner_id = False
|
||||
elif reservation.folio_id and reservation.folio_id.partner_id:
|
||||
reservation.partner_id = reservation.folio_id.partner_id
|
||||
elif reservation.agency_id and reservation.agency_id.invoice_to_agency:
|
||||
reservation.partner_id = reservation.agency_id
|
||||
elif reservation.document_number and reservation.document_type:
|
||||
number = self.env["res.partner.id_number"].search(
|
||||
[
|
||||
("name", "=", reservation.document_number),
|
||||
("category_id", "=", reservation.document_type.id),
|
||||
]
|
||||
)
|
||||
partner = self.env["res.partner"].search(
|
||||
[("id", "=", number.partner_id.id)]
|
||||
)
|
||||
if partner:
|
||||
reservation.partner_id = partner.id
|
||||
else:
|
||||
if (
|
||||
reservation.partner_name
|
||||
and reservation.document_number
|
||||
and reservation.document_type
|
||||
):
|
||||
partner_values = {
|
||||
"name": reservation.partner_name,
|
||||
"email": reservation.email,
|
||||
"mobile": reservation.mobile,
|
||||
}
|
||||
partner = self.env["res.partner"].create(partner_values)
|
||||
number_values = {
|
||||
"partner_id": partner.id,
|
||||
"name": reservation.document_number,
|
||||
"category_id": reservation.document_type.id,
|
||||
}
|
||||
self.env["res.partner.id_number"].create(number_values)
|
||||
reservation.partner_id = partner
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user