mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[FIX]pms: partner field is not overwritten if the field does not exist in the last saved checkin
This commit is contained in:
@@ -315,9 +315,7 @@ class PmsProperty(models.Model):
|
||||
lambda x: x.room_type_id.overnight_room
|
||||
)
|
||||
if capacity:
|
||||
free_rooms = free_rooms.filtered(
|
||||
lambda x: x.capacity >= capacity
|
||||
)
|
||||
free_rooms = free_rooms.filtered(lambda x: x.capacity >= capacity)
|
||||
if len(free_rooms) > 0:
|
||||
pms_property.free_room_ids = free_rooms.ids
|
||||
else:
|
||||
|
||||
@@ -738,6 +738,7 @@ class PmsReservation(models.Model):
|
||||
string="Count alternative free rooms",
|
||||
compute="_compute_count_alternative_free_rooms",
|
||||
)
|
||||
|
||||
@api.depends("folio_id", "folio_id.external_reference")
|
||||
def _compute_external_reference(self):
|
||||
for reservation in self:
|
||||
@@ -1713,7 +1714,6 @@ class PmsReservation(models.Model):
|
||||
current_lines=record.reservation_line_ids.ids,
|
||||
).availability
|
||||
|
||||
|
||||
def _search_allowed_checkin(self, operator, value):
|
||||
if operator not in ("=",):
|
||||
raise UserError(
|
||||
|
||||
@@ -249,7 +249,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_gender:
|
||||
if last_update_gender and last_update_gender[0].gender:
|
||||
record.gender = last_update_gender[0].gender
|
||||
|
||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.birthdate_date")
|
||||
@@ -262,7 +262,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_birthdate:
|
||||
if last_update_birthdate and last_update_birthdate[0].birthdate_date:
|
||||
record.birthdate_date = last_update_birthdate[0].birthdate_date
|
||||
|
||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.nationality_id")
|
||||
@@ -275,7 +275,10 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_nationality:
|
||||
if (
|
||||
last_update_nationality
|
||||
and last_update_nationality[0].nationality_id
|
||||
):
|
||||
record.nationality_id = last_update_nationality[0].nationality_id
|
||||
if not record.nationality_id and record.country_id:
|
||||
record.nationality_id = record.country_id
|
||||
@@ -290,7 +293,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_phone:
|
||||
if last_update_phone and last_update_phone[0].phone:
|
||||
record.phone = last_update_phone[0].phone
|
||||
|
||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.residence_street")
|
||||
@@ -303,7 +306,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_street:
|
||||
if last_update_street and last_update_street[0].residence_street:
|
||||
record.residence_street = last_update_street[0].residence_street
|
||||
|
||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.residence_street2")
|
||||
@@ -316,7 +319,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_street2:
|
||||
if last_update_street2 and last_update_street2[0].residence_street2:
|
||||
record.residence_street2 = last_update_street2[0].residence_street2
|
||||
|
||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.residence_zip")
|
||||
@@ -329,7 +332,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_zip:
|
||||
if last_update_zip and last_update_zip[0].residence_zip:
|
||||
record.residence_zip = last_update_zip[0].residence_zip
|
||||
|
||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.residence_city")
|
||||
@@ -342,7 +345,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_city:
|
||||
if last_update_city and last_update_city[0].residence_city:
|
||||
record.residence_city = last_update_city[0].residence_city
|
||||
|
||||
@api.depends(
|
||||
@@ -359,7 +362,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_country:
|
||||
if last_update_country and last_update_country[0].residence_country_id:
|
||||
record.residence_country_id = last_update_country[
|
||||
0
|
||||
].residence_country_id
|
||||
@@ -376,7 +379,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_state:
|
||||
if last_update_state and last_update_state[0].residence_state_id:
|
||||
record.residence_state_id = last_update_state[0].residence_state_id
|
||||
|
||||
@api.depends(
|
||||
@@ -396,7 +399,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_checkin_mail:
|
||||
if last_update_checkin_mail and last_update_checkin_mail[0].email:
|
||||
record.email = last_update_checkin_mail[0].email
|
||||
|
||||
@api.depends(
|
||||
@@ -416,7 +419,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_mobile:
|
||||
if last_update_mobile and last_update_mobile[0].mobile:
|
||||
record.mobile = last_update_mobile[0].mobile
|
||||
|
||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.firstname")
|
||||
@@ -429,7 +432,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_firstname:
|
||||
if last_update_firstname and last_update_firstname[0].firstname:
|
||||
record.firstname = last_update_firstname[0].firstname
|
||||
|
||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname")
|
||||
@@ -442,7 +445,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_lastname:
|
||||
if last_update_lastname and last_update_lastname[0].lastname:
|
||||
record.lastname = last_update_lastname[0].lastname
|
||||
|
||||
@api.depends("pms_checkin_partner_ids", "pms_checkin_partner_ids.lastname2")
|
||||
@@ -455,7 +458,7 @@ class ResPartner(models.Model):
|
||||
lambda x: x.write_date
|
||||
== max(record.pms_checkin_partner_ids.mapped("write_date"))
|
||||
)
|
||||
if last_update_lastname2:
|
||||
if last_update_lastname2 and last_update_lastname2[0].lastname2:
|
||||
record.lastname2 = last_update_lastname2[0].lastname2
|
||||
|
||||
@api.depends("residence_country_id")
|
||||
|
||||
@@ -14,12 +14,39 @@ from odoo.exceptions import ValidationError
|
||||
class ResPartnerIdNumber(models.Model):
|
||||
_inherit = "res.partner.id_number"
|
||||
|
||||
name = fields.Char(
|
||||
readonly=False,
|
||||
store=True,
|
||||
compute="_compute_name",
|
||||
)
|
||||
|
||||
category_id = fields.Many2one(
|
||||
readonly=False,
|
||||
store=True,
|
||||
compute="_compute_category_id",
|
||||
)
|
||||
|
||||
valid_from = fields.Date(
|
||||
readonly=False,
|
||||
store=True,
|
||||
compute="_compute_valid_from",
|
||||
)
|
||||
|
||||
@api.depends("partner_id", "partner_id.pms_checkin_partner_ids.document_number")
|
||||
def _compute_name(self):
|
||||
if hasattr(super(), "_compute_name"):
|
||||
super()._compute_name()
|
||||
for record in self:
|
||||
if record.partner_id.pms_checkin_partner_ids:
|
||||
last_update_name = record.partner_id.pms_checkin_partner_ids.filtered(
|
||||
lambda x: x.write_date
|
||||
== max(
|
||||
record.partner_id.pms_checkin_partner_ids.mapped("write_date")
|
||||
)
|
||||
)
|
||||
if last_update_name and last_update_name[0].document_number:
|
||||
record.name = last_update_name[0].document_number
|
||||
|
||||
@api.depends(
|
||||
"partner_id", "partner_id.pms_checkin_partner_ids.document_expedition_date"
|
||||
)
|
||||
@@ -27,20 +54,43 @@ class ResPartnerIdNumber(models.Model):
|
||||
if hasattr(super(), "_compute_valid_from"):
|
||||
super()._compute_valid_from()
|
||||
for record in self:
|
||||
if not record.valid_from and record.partner_id.pms_checkin_partner_ids:
|
||||
document_expedition_date = list(
|
||||
set(
|
||||
record.partner_id.pms_checkin_partner_ids.mapped(
|
||||
"document_expedition_date"
|
||||
if record.partner_id.pms_checkin_partner_ids:
|
||||
last_update_valid_from = (
|
||||
record.partner_id.pms_checkin_partner_ids.filtered(
|
||||
lambda x: x.write_date
|
||||
== max(
|
||||
record.partner_id.pms_checkin_partner_ids.mapped(
|
||||
"write_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
|
||||
if (
|
||||
last_update_valid_from
|
||||
and last_update_valid_from[0].document_expedition_date
|
||||
):
|
||||
record.valid_from = last_update_valid_from[
|
||||
0
|
||||
].document_expedition_date
|
||||
|
||||
@api.depends("partner_id", "partner_id.pms_checkin_partner_ids.document_type")
|
||||
def _compute_category_id(self):
|
||||
if hasattr(super(), "_compute_category_id"):
|
||||
super()._compute_category_id()
|
||||
for record in self:
|
||||
if record.partner_id.pms_checkin_partner_ids:
|
||||
last_update_category_id = (
|
||||
record.partner_id.pms_checkin_partner_ids.filtered(
|
||||
lambda x: x.write_date
|
||||
== max(
|
||||
record.partner_id.pms_checkin_partner_ids.mapped(
|
||||
"write_date"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
if last_update_category_id and last_update_category_id[0].document_type:
|
||||
record.category_id = last_update_category_id[0].document_type
|
||||
|
||||
@api.constrains("partner_id", "category_id")
|
||||
def _check_category_id_unique(self):
|
||||
|
||||
Reference in New Issue
Block a user