Merge PR #290 into 14.0

Signed-off-by DarioLodeiros
This commit is contained in:
OCA-git-bot
2024-10-11 07:40:58 +00:00
2 changed files with 39 additions and 14 deletions

View File

@@ -35,7 +35,10 @@ class PmsReservation(models.Model):
@api.model @api.model
def create(self, vals): def create(self, vals):
reservation = super(PmsReservation, self).create(vals) reservation = super(PmsReservation, self).create(vals)
if reservation.pms_property_id.institution == "ses": if (
reservation.pms_property_id.institution == "ses"
and reservation.reservation_type != "out"
):
self.create_communication(reservation.id, CREATE_OPERATION_CODE, "RH") self.create_communication(reservation.id, CREATE_OPERATION_CODE, "RH")
return reservation return reservation

View File

@@ -37,11 +37,20 @@ DELETE_OPERATION_CODE = "B"
# requests.packages.urllib3.disable_warnings(InsecureRequestWarning) # requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
def clean_string_ses(string): def replace_multiple_spaces(text: str) -> str:
clean_string = re.sub(r"[^a-zA-Z0-9\s]", "", string).upper() # Replace 2 or more consecutive spaces with a single space
return re.sub(r"\s{2,}", " ", text)
def clean_string_only_letters(string):
clean_string = re.sub(r"[^a-zA-Z\s]", "", string).upper()
clean_string = " ".join(clean_string.split()) clean_string = " ".join(clean_string.split())
return
def clean_string_only_numbers_and_letters(string):
clean_string = re.sub(r"[^a-zA-Z0-9\s]", "", string).upper()
clean_string = " ".join(clean_string.split())
return clean_string return clean_string
@@ -104,9 +113,13 @@ def _ses_xml_person_names_elements(persona, reservation, checkin_partner):
if reservation: if reservation:
ses_firstname = False ses_firstname = False
if reservation.partner_id.firstname: if reservation.partner_id.firstname:
ses_firstname = clean_string_ses(reservation.partner_id.firstname) ses_firstname = clean_string_only_letters(reservation.partner_id.firstname)[
:50
]
elif reservation.partner_name: elif reservation.partner_name:
ses_firstname = clean_string_ses(reservation.partner_name).split(" ")[0] ses_firstname = clean_string_only_letters(
replace_multiple_spaces(reservation.partner_name)
).split(" ")[0][:50]
_ses_xml_text_element_and_validate( _ses_xml_text_element_and_validate(
persona, persona,
"nombre", "nombre",
@@ -115,9 +128,16 @@ def _ses_xml_person_names_elements(persona, reservation, checkin_partner):
) )
if reservation.partner_id.lastname: if reservation.partner_id.lastname:
ses_lastname = clean_string_ses(reservation.partner_id.lastname) ses_lastname = clean_string_only_letters(reservation.partner_id.lastname)[
elif reservation.partner_name and len(reservation.partner_name.split(" ")) > 1: :50
ses_lastname = clean_string_ses(reservation.partner_name).split(" ")[1] ]
elif (
reservation.partner_name
and len(replace_multiple_spaces(reservation.partner_name).split(" ")) > 1
):
ses_lastname = clean_string_only_letters(
replace_multiple_spaces(reservation.partner_name)
).split(" ")[1][:50]
else: else:
ses_lastname = "No aplica" ses_lastname = "No aplica"
ET.SubElement(persona, "apellido1").text = ses_lastname ET.SubElement(persona, "apellido1").text = ses_lastname
@@ -126,13 +146,13 @@ def _ses_xml_person_names_elements(persona, reservation, checkin_partner):
_ses_xml_text_element_and_validate( _ses_xml_text_element_and_validate(
persona, persona,
"nombre", "nombre",
clean_string_ses(checkin_partner.firstname), clean_string_only_letters(checkin_partner.firstname)[:50],
_("The guest does not have a name."), _("The guest does not have a name."),
) )
_ses_xml_text_element_and_validate( _ses_xml_text_element_and_validate(
persona, persona,
"apellido1", "apellido1",
clean_string_ses(checkin_partner.lastname), clean_string_only_letters(checkin_partner.lastname)[:50],
_("The guest does not have a lastname."), _("The guest does not have a lastname."),
) )
@@ -140,7 +160,7 @@ def _ses_xml_person_names_elements(persona, reservation, checkin_partner):
_ses_xml_text_element_and_validate( _ses_xml_text_element_and_validate(
persona, persona,
"apellido2", "apellido2",
clean_string_ses(checkin_partner.partner_id.lastname2), clean_string_only_letters(checkin_partner.partner_id.lastname2)[:50],
_("The guest does not have a second lastname."), _("The guest does not have a second lastname."),
) )
@@ -1121,9 +1141,11 @@ class TravellerReport(models.TransientModel):
] ]
): ):
try: try:
if ( time_difference = fields.Datetime.now() - communication.create_date
fields.Datetime.now() - communication.create_date hours_difference = (
).hours > hours_after_first_checkin_to_inform: time_difference.days * 24 + time_difference.seconds // 3600
)
if hours_difference > hours_after_first_checkin_to_inform:
# add a note to the reservation # add a note to the reservation
communication.reservation_id.sudo().message_post( communication.reservation_id.sudo().message_post(
body=_( body=_(