[FIX] pms: computed fields and duplicate document_id solved

This commit is contained in:
Sara Lago
2021-06-08 12:13:34 +02:00
parent ac8274d8bd
commit fb027d42d3
2 changed files with 33 additions and 24 deletions

View File

@@ -204,7 +204,7 @@ class PmsCheckinPartner(models.Model):
if record.partner_id.id_numbers: if record.partner_id.id_numbers:
record.document_number = record.partner_id.id_numbers[0].name 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): def _compute_document_type(self):
for record in self: for record in self:
if record.partner_id and record.partner_id.id_numbers: 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") @api.depends("partner_id", "partner_id.firstname")
def _compute_firstname(self): def _compute_firstname(self):
for record in self: for record in self:
if not record.firstname: if not record.firstname or record.partner_id.firstname:
record.firstname = record.partner_id.firstname record.firstname = record.partner_id.firstname
@api.depends("partner_id", "partner_id.lastname") @api.depends("partner_id", "partner_id.lastname")
def _compute_lastname(self): def _compute_lastname(self):
for record in self: for record in self:
if not record.lastname: if not record.lastname or record.partner_id.lastname:
record.lastname = record.partner_id.lastname record.lastname = record.partner_id.lastname
@api.depends("partner_id", "partner_id.lastname2") @api.depends("partner_id", "partner_id.lastname2")
def _compute_lastname2(self): def _compute_lastname2(self):
for record in self: for record in self:
if not record.lastname2: if not record.lastname2 or record.partner_id.lastname2:
record.lastname2 = record.partner_id.lastname2 record.lastname2 = record.partner_id.lastname2
@api.depends("partner_id", "partner_id.birthdate_date") @api.depends("partner_id", "partner_id.birthdate_date")
def _compute_birth_date(self): def _compute_birth_date(self):
for record in 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 record.birthdate_date = record.partner_id.birthdate_date
@api.depends( @api.depends(
@@ -256,13 +256,13 @@ class PmsCheckinPartner(models.Model):
) )
def _compute_gender(self): def _compute_gender(self):
for record in 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 record.gender = record.partner_id.gender
@api.depends("partner_id", "partner_id.lastname") @api.depends("partner_id", "partner_id.lastname")
def _compute_nationality(self): def _compute_nationality(self):
for record in 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 record.nationality_id = record.partner_id.nationality_id
@api.depends("reservation_id", "folio_id", "reservation_id.preferred_room_id") @api.depends("reservation_id", "folio_id", "reservation_id.preferred_room_id")
@@ -311,19 +311,19 @@ class PmsCheckinPartner(models.Model):
) )
def _compute_name(self): def _compute_name(self):
for record in self: for record in self:
if not record.name: if not record.name or record.partner_id.name:
record.name = record.partner_id.name record.name = record.partner_id.name
@api.depends("partner_id", "partner_id.email") @api.depends("partner_id", "partner_id.email")
def _compute_email(self): def _compute_email(self):
for record in self: for record in self:
if not record.email: if not record.email or record.partner_id.email:
record.email = record.partner_id.email record.email = record.partner_id.email
@api.depends("partner_id", "partner_id.mobile") @api.depends("partner_id", "partner_id.mobile")
def _compute_mobile(self): def _compute_mobile(self):
for record in self: for record in self:
if not record.mobile: if not record.mobile or record.partner_id.mobile:
record.mobile = record.partner_id.mobile record.mobile = record.partner_id.mobile
@api.depends("partner_id") @api.depends("partner_id")
@@ -335,14 +335,23 @@ class PmsCheckinPartner(models.Model):
and record.document_number and record.document_number
and record.document_type and record.document_type
): ):
id_number_id = self.env["res.partner.id_number"].create( id_number_id = self.env["res.partner.id_number"].search(
{ [
"partner_id": record.partner_id.id, ("partner_id", "=", record.partner_id.id),
"name": record.document_number, ("name", "=", record.document_number),
"category_id": record.document_type.id, ("category_id", "=", record.document_type.id),
"valid_from": record.document_expedition_date, ]
}
) )
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 record.document_id = id_number_id
else: else:
record.document_id = False record.document_id = False

View File

@@ -116,7 +116,7 @@ class ResPartner(models.Model):
super()._compute_field() super()._compute_field()
for record in self: for record in self:
gender = record.pms_checkin_partner_ids.mapped("gender") gender = record.pms_checkin_partner_ids.mapped("gender")
if not record.gender and gender: if gender:
record.gender = gender[0] record.gender = gender[0]
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.birthdate_date") @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.birthdate_date")
@@ -134,7 +134,7 @@ class ResPartner(models.Model):
super()._compute_field() super()._compute_field()
for record in self: for record in self:
nationality = record.pms_checkin_partner_ids.nationality_id nationality = record.pms_checkin_partner_ids.nationality_id
if not record.nationality_id and nationality: if nationality:
record.nationality_id = nationality[0] record.nationality_id = nationality[0]
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.email") @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.email")
@@ -143,7 +143,7 @@ class ResPartner(models.Model):
super()._compute_field() super()._compute_field()
for record in self: for record in self:
email = record.pms_checkin_partner_ids.mapped("email") email = record.pms_checkin_partner_ids.mapped("email")
if not record.email and email: if email:
record.email = email[0] record.email = email[0]
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.mobile") @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.mobile")
@@ -152,7 +152,7 @@ class ResPartner(models.Model):
super()._compute_field() super()._compute_field()
for record in self: for record in self:
mobile = record.pms_checkin_partner_ids.mapped("mobile") mobile = record.pms_checkin_partner_ids.mapped("mobile")
if not record.mobile and mobile: if mobile:
record.mobile = mobile[0] record.mobile = mobile[0]
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.firstname") @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.firstname")
@@ -161,7 +161,7 @@ class ResPartner(models.Model):
super()._compute_field() super()._compute_field()
for record in self: for record in self:
firstname = record.pms_checkin_partner_ids.mapped("firstname") firstname = record.pms_checkin_partner_ids.mapped("firstname")
if not record.firstname and firstname: if firstname:
record.firstname = firstname[0] record.firstname = firstname[0]
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname") @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname")
@@ -170,7 +170,7 @@ class ResPartner(models.Model):
super()._compute_field() super()._compute_field()
for record in self: for record in self:
lastname = record.pms_checkin_partner_ids.mapped("lastname") lastname = record.pms_checkin_partner_ids.mapped("lastname")
if not record.lastname and lastname: if lastname:
record.lastname = lastname[0] record.lastname = lastname[0]
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname2") @api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname2")
@@ -179,7 +179,7 @@ class ResPartner(models.Model):
super()._compute_field() super()._compute_field()
for record in self: for record in self:
lastname2 = record.pms_checkin_partner_ids.mapped("lastname2") lastname2 = record.pms_checkin_partner_ids.mapped("lastname2")
if not record.lastname2 and lastname2: if lastname2:
record.lastname2 = lastname2[0] record.lastname2 = lastname2[0]
def _compute_reservations_count(self): def _compute_reservations_count(self):