mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[FIX]pms: fixed computes so that res.partner fields are not overwritten
This commit is contained in:
@@ -198,14 +198,14 @@ class PmsCheckinPartner(models.Model):
|
|||||||
compute="_compute_incongruences",
|
compute="_compute_incongruences",
|
||||||
)
|
)
|
||||||
|
|
||||||
@api.depends("partner_id", "partner_id.id_numbers")
|
@api.depends("partner_id")
|
||||||
def _compute_document_number(self):
|
def _compute_document_number(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
if not record.document_number:
|
if not record.document_number:
|
||||||
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")
|
@api.depends("partner_id")
|
||||||
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:
|
||||||
@@ -217,7 +217,6 @@ class PmsCheckinPartner(models.Model):
|
|||||||
|
|
||||||
@api.depends(
|
@api.depends(
|
||||||
"partner_id",
|
"partner_id",
|
||||||
"partner_id.id_numbers",
|
|
||||||
)
|
)
|
||||||
def _compute_document_expedition_date(self):
|
def _compute_document_expedition_date(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
@@ -227,44 +226,55 @@ class PmsCheckinPartner(models.Model):
|
|||||||
0
|
0
|
||||||
].valid_from
|
].valid_from
|
||||||
|
|
||||||
@api.depends("partner_id", "partner_id.firstname")
|
@api.depends("partner_id")
|
||||||
def _compute_firstname(self):
|
def _compute_firstname(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
if not record.firstname or record.partner_id.firstname:
|
if not record.firstname and record.partner_id.firstname:
|
||||||
record.firstname = record.partner_id.firstname
|
record.firstname = record.partner_id.firstname
|
||||||
|
elif not record.firstname:
|
||||||
|
record.firstname = False
|
||||||
|
|
||||||
@api.depends("partner_id", "partner_id.lastname")
|
@api.depends("partner_id")
|
||||||
def _compute_lastname(self):
|
def _compute_lastname(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
if not record.lastname or record.partner_id.lastname:
|
if not record.lastname and record.partner_id.lastname:
|
||||||
record.lastname = record.partner_id.lastname
|
record.lastname = record.partner_id.lastname
|
||||||
|
elif not record.lastname:
|
||||||
|
record.lastname = False
|
||||||
|
|
||||||
@api.depends("partner_id", "partner_id.lastname2")
|
@api.depends("partner_id")
|
||||||
def _compute_lastname2(self):
|
def _compute_lastname2(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
if not record.lastname2 or record.partner_id.lastname2:
|
if not record.lastname2 and record.partner_id.lastname2:
|
||||||
record.lastname2 = record.partner_id.lastname2
|
record.lastname2 = record.partner_id.lastname2
|
||||||
|
elif not record.lastname2:
|
||||||
|
record.lastname2 = False
|
||||||
|
|
||||||
@api.depends("partner_id", "partner_id.birthdate_date")
|
@api.depends("partner_id")
|
||||||
def _compute_birth_date(self):
|
def _compute_birth_date(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
if not record.birthdate_date or record.partner_id.birthdate_date:
|
if not record.birthdate_date and record.partner_id.birthdate_date:
|
||||||
record.birthdate_date = record.partner_id.birthdate_date
|
record.birthdate_date = record.partner_id.birthdate_date
|
||||||
|
elif not record.birthdate_date:
|
||||||
|
record.birthdate_date = False
|
||||||
|
|
||||||
@api.depends(
|
@api.depends(
|
||||||
"partner_id",
|
"partner_id",
|
||||||
"partner_id.gender",
|
|
||||||
)
|
)
|
||||||
def _compute_gender(self):
|
def _compute_gender(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
if not record.gender or record.partner_id.gender:
|
if not record.gender and record.partner_id.gender:
|
||||||
record.gender = record.partner_id.gender
|
record.gender = record.partner_id.gender
|
||||||
|
elif not record.gender:
|
||||||
|
record.gender = False
|
||||||
|
|
||||||
@api.depends("partner_id", "partner_id.lastname")
|
@api.depends("partner_id")
|
||||||
def _compute_nationality(self):
|
def _compute_nationality(self):
|
||||||
for record in self:
|
for record in self:
|
||||||
if not record.nationality_id or record.partner_id.nationality_id:
|
if not record.nationality_id and record.partner_id.nationality_id:
|
||||||
record.nationality_id = record.partner_id.nationality_id
|
record.nationality_id = record.partner_id.nationality_id
|
||||||
|
elif not record.nationality_id:
|
||||||
|
record.nationality_id = False
|
||||||
|
|
||||||
@api.depends("reservation_id", "folio_id", "reservation_id.preferred_room_id")
|
@api.depends("reservation_id", "folio_id", "reservation_id.preferred_room_id")
|
||||||
def _compute_identifier(self):
|
def _compute_identifier(self):
|
||||||
@@ -514,6 +524,11 @@ class PmsCheckinPartner(models.Model):
|
|||||||
return ["reservation_id.state", "name"]
|
return ["reservation_id.state", "name"]
|
||||||
mandatory_fields = [
|
mandatory_fields = [
|
||||||
"name",
|
"name",
|
||||||
|
"birthdate_date",
|
||||||
|
"gender",
|
||||||
|
"document_number",
|
||||||
|
"document_type",
|
||||||
|
"document_expedition_date",
|
||||||
]
|
]
|
||||||
|
|
||||||
return mandatory_fields
|
return mandatory_fields
|
||||||
@@ -560,6 +575,7 @@ class PmsCheckinPartner(models.Model):
|
|||||||
raise ValidationError(_("It is not yet checkin day!"))
|
raise ValidationError(_("It is not yet checkin day!"))
|
||||||
if record.reservation_id.checkout <= fields.Date.today():
|
if record.reservation_id.checkout <= fields.Date.today():
|
||||||
raise ValidationError(_("Its too late to checkin"))
|
raise ValidationError(_("Its too late to checkin"))
|
||||||
|
|
||||||
if any(
|
if any(
|
||||||
not getattr(record, field) for field in self._checkin_mandatory_fields()
|
not getattr(record, field) for field in self._checkin_mandatory_fields()
|
||||||
):
|
):
|
||||||
|
|||||||
@@ -115,72 +115,122 @@ class ResPartner(models.Model):
|
|||||||
if hasattr(super(), "_compute_gender"):
|
if hasattr(super(), "_compute_gender"):
|
||||||
super()._compute_field()
|
super()._compute_field()
|
||||||
for record in self:
|
for record in self:
|
||||||
gender = record.pms_checkin_partner_ids.mapped("gender")
|
if not record.gender and record.pms_checkin_partner_ids:
|
||||||
if gender:
|
gender = list(set(record.pms_checkin_partner_ids.mapped("gender")))
|
||||||
record.gender = gender[0]
|
if len(gender) == 1:
|
||||||
|
record.gender = gender[0]
|
||||||
|
else:
|
||||||
|
record.gender = False
|
||||||
|
elif not record.gender:
|
||||||
|
record.gender = False
|
||||||
|
|
||||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.birthdate_date")
|
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.birthdate_date")
|
||||||
def _compute_birthdate_date(self):
|
def _compute_birthdate_date(self):
|
||||||
if hasattr(super(), "_compute_birthdate_date"):
|
if hasattr(super(), "_compute_birthdate_date"):
|
||||||
super()._compute_field()
|
super()._compute_field()
|
||||||
for record in self:
|
for record in self:
|
||||||
birthdate = record.pms_checkin_partner_ids.mapped("birthdate_date")
|
if not record.birthdate_date and record.pms_checkin_partner_ids:
|
||||||
if birthdate:
|
birthdate = list(
|
||||||
record.birthdate_date = birthdate[0]
|
set(record.pms_checkin_partner_ids.mapped("birthdate_date"))
|
||||||
|
)
|
||||||
|
if len(birthdate) == 1:
|
||||||
|
record.birthdate_date = birthdate[0]
|
||||||
|
else:
|
||||||
|
record.birthdate_date = False
|
||||||
|
elif not record.birthdate_date:
|
||||||
|
record.birthdate_date = False
|
||||||
|
|
||||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.nationality_id")
|
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.nationality_id")
|
||||||
def _compute_nationality_id(self):
|
def _compute_nationality_id(self):
|
||||||
if hasattr(super(), "_compute_nationality_id"):
|
if hasattr(super(), "_compute_nationality_id"):
|
||||||
super()._compute_field()
|
super()._compute_field()
|
||||||
for record in self:
|
for record in self:
|
||||||
nationality = record.pms_checkin_partner_ids.nationality_id
|
if not record.nationality_id and record.pms_checkin_partner_ids:
|
||||||
if nationality:
|
nationality_id = list(
|
||||||
record.nationality_id = nationality[0]
|
set(record.pms_checkin_partner_ids.mapped("nationality_id"))
|
||||||
|
)
|
||||||
|
if len(nationality_id) == 1:
|
||||||
|
record.nationality_id = nationality_id[0]
|
||||||
|
else:
|
||||||
|
record.nationality_id = False
|
||||||
|
elif not record.nationality_id:
|
||||||
|
record.nationality_id = False
|
||||||
|
|
||||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.email")
|
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.email")
|
||||||
def _compute_email(self):
|
def _compute_email(self):
|
||||||
if hasattr(super(), "_compute_email"):
|
if hasattr(super(), "_compute_email"):
|
||||||
super()._compute_field()
|
super()._compute_field()
|
||||||
for record in self:
|
for record in self:
|
||||||
email = record.pms_checkin_partner_ids.mapped("email")
|
if not record.email and record.pms_checkin_partner_ids:
|
||||||
if email:
|
email = list(set(record.pms_checkin_partner_ids.mapped("email")))
|
||||||
record.email = email[0]
|
if len(email) == 1:
|
||||||
|
record.email = email[0]
|
||||||
|
else:
|
||||||
|
record.email = False
|
||||||
|
elif not record.email:
|
||||||
|
record.email = False
|
||||||
|
|
||||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.mobile")
|
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.mobile")
|
||||||
def _compute_mobile(self):
|
def _compute_mobile(self):
|
||||||
if hasattr(super(), "_compute_mobile"):
|
if hasattr(super(), "_compute_mobile"):
|
||||||
super()._compute_field()
|
super()._compute_field()
|
||||||
for record in self:
|
for record in self:
|
||||||
mobile = record.pms_checkin_partner_ids.mapped("mobile")
|
if not record.mobile and record.pms_checkin_partner_ids:
|
||||||
if mobile:
|
mobile = list(set(record.pms_checkin_partner_ids.mapped("mobile")))
|
||||||
record.mobile = mobile[0]
|
if len(mobile) == 1:
|
||||||
|
record.mobile = mobile[0]
|
||||||
|
else:
|
||||||
|
record.mobile = False
|
||||||
|
elif not record.mobile:
|
||||||
|
record.mobile = False
|
||||||
|
|
||||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.firstname")
|
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.firstname")
|
||||||
def _compute_firstname(self):
|
def _compute_firstname(self):
|
||||||
if hasattr(super(), "_compute_firstname"):
|
if hasattr(super(), "_compute_firstname"):
|
||||||
super()._compute_field()
|
super()._compute_field()
|
||||||
for record in self:
|
for record in self:
|
||||||
firstname = record.pms_checkin_partner_ids.mapped("firstname")
|
if not record.firstname and record.pms_checkin_partner_ids:
|
||||||
if firstname:
|
firstname = list(
|
||||||
record.firstname = firstname[0]
|
set(record.pms_checkin_partner_ids.mapped("firstname"))
|
||||||
|
)
|
||||||
|
if len(firstname) == 1:
|
||||||
|
record.firstname = firstname[0]
|
||||||
|
else:
|
||||||
|
record.firstname = False
|
||||||
|
elif not record.firstname:
|
||||||
|
record.firstname = False
|
||||||
|
|
||||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname")
|
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname")
|
||||||
def _compute_lastname(self):
|
def _compute_lastname(self):
|
||||||
if hasattr(super(), "_compute_lastname"):
|
if hasattr(super(), "_compute_lastname"):
|
||||||
super()._compute_field()
|
super()._compute_field()
|
||||||
for record in self:
|
for record in self:
|
||||||
lastname = record.pms_checkin_partner_ids.mapped("lastname")
|
if not record.lastname and record.pms_checkin_partner_ids:
|
||||||
if lastname:
|
lastname = list(
|
||||||
record.lastname = lastname[0]
|
set(record.pms_checkin_partner_ids.mapped("lastname"))
|
||||||
|
)
|
||||||
|
if len(lastname) == 1:
|
||||||
|
record.lastname = lastname[0]
|
||||||
|
else:
|
||||||
|
record.lastname = False
|
||||||
|
elif not record.lastname:
|
||||||
|
record.lastname = False
|
||||||
|
|
||||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname2")
|
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname2")
|
||||||
def _compute_lastname2(self):
|
def _compute_lastname2(self):
|
||||||
if hasattr(super(), "_compute_lastname2"):
|
if hasattr(super(), "_compute_lastname2"):
|
||||||
super()._compute_field()
|
super()._compute_field()
|
||||||
for record in self:
|
for record in self:
|
||||||
lastname2 = record.pms_checkin_partner_ids.mapped("lastname2")
|
if not record.lastname2 and record.pms_checkin_partner_ids:
|
||||||
if lastname2:
|
lastname2 = list(
|
||||||
record.lastname2 = lastname2[0]
|
set(record.pms_checkin_partner_ids.mapped("lastname2"))
|
||||||
|
)
|
||||||
|
if len(lastname2) == 1:
|
||||||
|
record.lastname2 = lastname2[0]
|
||||||
|
else:
|
||||||
|
record.lastname2 = False
|
||||||
|
elif not record.lastname2:
|
||||||
|
record.lastname2 = False
|
||||||
|
|
||||||
def _compute_reservations_count(self):
|
def _compute_reservations_count(self):
|
||||||
# TODO: recuperar las reservas de los folios del partner
|
# TODO: recuperar las reservas de los folios del partner
|
||||||
|
|||||||
@@ -27,11 +27,20 @@ class ResPartnerIdNumber(models.Model):
|
|||||||
if hasattr(super(), "_compute_valid_from"):
|
if hasattr(super(), "_compute_valid_from"):
|
||||||
super()._compute_field()
|
super()._compute_field()
|
||||||
for record in self:
|
for record in self:
|
||||||
expedition_date = record.partner_id.pms_checkin_partner_ids.mapped(
|
if not record.valid_from and record.pms_checkin_partner_ids:
|
||||||
"document_expedition_date"
|
document_expedition_date = list(
|
||||||
)
|
set(
|
||||||
if expedition_date:
|
record.pms_checkin_partner_ids.mapped(
|
||||||
record.valid_from = expedition_date[0]
|
"document_expedition_date"
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if len(document_expedition_date) == 1:
|
||||||
|
record.valid_from = document_expedition_date[0]
|
||||||
|
else:
|
||||||
|
record.valid_from = False
|
||||||
|
elif not record.valid_from:
|
||||||
|
record.valid_from = False
|
||||||
|
|
||||||
@api.constrains("partner_id", "category_id")
|
@api.constrains("partner_id", "category_id")
|
||||||
def _check_category_id_unique(self):
|
def _check_category_id_unique(self):
|
||||||
|
|||||||
Reference in New Issue
Block a user