[IMP]14.0-pms_api_rest: origin input data field in checkin partner modal

This commit is contained in:
braisab
2024-03-22 18:48:33 +01:00
committed by Darío Lodeiros
parent 142cb883e8
commit b07a113fd5
5 changed files with 51 additions and 27 deletions

View File

@@ -29,3 +29,4 @@ class PmsCheckinPartnerInfo(Datamodel):
countryId = fields.Integer(required=False, allow_none=True) countryId = fields.Integer(required=False, allow_none=True)
checkinPartnerState = fields.String(required=False, allow_none=True) checkinPartnerState = fields.String(required=False, allow_none=True)
actionOnBoard = fields.Boolean(required=False, allow_none=True) actionOnBoard = fields.Boolean(required=False, allow_none=True)
originInputData = fields.String(required=False, allow_none=True)

View File

@@ -8,3 +8,4 @@ from . import product_template
from . import ota_property_settings from . import ota_property_settings
from . import pms_api_log from . import pms_api_log
from . import pms_folio from . import pms_folio
from . import pms_checkin_partner

View File

@@ -0,0 +1,13 @@
from odoo import fields, models
class PmsCheckinPartner(models.Model):
_inherit = 'pms.checkin.partner'
origin_input_data = fields.Selection([
('wizard', 'Wizard'),
('form', 'Form'),
('regular_customer', 'Regular Customer'),
('ocr', 'OCR'),
('precheckin', 'Precheckin'),
], string='Origin Input Data')

View File

@@ -507,15 +507,7 @@ class PmsPartnerService(Component):
doc_number = partner.id_numbers.filtered( doc_number = partner.id_numbers.filtered(
lambda doc: doc.category_id.id == doc_type.id lambda doc: doc.category_id.id == doc_type.id
) )
PmsCheckinPartnerInfo = self.env.datamodels["pms.checkin.partner.info"] PmsCheckinPartnerInfo = self.env.datamodels["pms.checkin.partner.info"]
document_expedition_date = False
if doc_number.valid_from:
document_expedition_date = doc_number.valid_from.strftime("%d/%m/%Y")
birthdate_date = False
if partner.birthdate_date:
birthdate_date = partner.birthdate_date.strftime("%d/%m/%Y")
partners.append( partners.append(
PmsCheckinPartnerInfo( PmsCheckinPartnerInfo(
partnerId=partner.id or None, partnerId=partner.id or None,
@@ -527,10 +519,14 @@ class PmsPartnerService(Component):
mobile=partner.mobile or None, mobile=partner.mobile or None,
documentType=doc_type.id or None, documentType=doc_type.id or None,
documentNumber=doc_number.name or None, documentNumber=doc_number.name or None,
documentExpeditionDate=document_expedition_date or None, documentExpeditionDate=datetime.combine(
doc_number.valid_from, datetime.min.time()
).isoformat() if doc_number.valid_from else None,
documentSupportNumber=doc_number.support_number or None, documentSupportNumber=doc_number.support_number or None,
gender=partner.gender or None, gender=partner.gender or None,
birthdate=birthdate_date or None, birthdate=datetime.combine(
partner.birthdate_date, datetime.min.time()
).isoformat() if partner.birthdate_date else None,
residenceStreet=partner.residence_street or None, residenceStreet=partner.residence_street or None,
zip=partner.residence_zip or None, zip=partner.residence_zip or None,
residenceCity=partner.residence_city or None, residenceCity=partner.residence_city or None,

View File

@@ -564,12 +564,6 @@ class PmsReservationService(Component):
# lambda ch: ch.state != "dummy" # lambda ch: ch.state != "dummy"
# ) # )
for checkin_partner in reservation.checkin_partner_ids: for checkin_partner in reservation.checkin_partner_ids:
if checkin_partner.document_expedition_date:
document_expedition_date = (
checkin_partner.document_expedition_date.strftime("%d/%m/%Y")
)
if checkin_partner.birthdate_date:
birthdate_date = checkin_partner.birthdate_date.strftime("%d/%m/%Y")
checkin_partners.append( checkin_partners.append(
PmsCheckinPartnerInfo( PmsCheckinPartnerInfo(
id=checkin_partner.id, id=checkin_partner.id,
@@ -592,14 +586,18 @@ class PmsReservationService(Component):
documentNumber=checkin_partner.document_number documentNumber=checkin_partner.document_number
if checkin_partner.document_number if checkin_partner.document_number
else None, else None,
documentExpeditionDate=document_expedition_date documentExpeditionDate=datetime.combine(
checkin_partner.document_expedition_date, datetime.min.time()
).isoformat()
if checkin_partner.document_expedition_date if checkin_partner.document_expedition_date
else None, else None,
documentSupportNumber=checkin_partner.support_number documentSupportNumber=checkin_partner.support_number
if checkin_partner.support_number if checkin_partner.support_number
else None, else None,
gender=checkin_partner.gender if checkin_partner.gender else "", gender=checkin_partner.gender if checkin_partner.gender else "",
birthdate=birthdate_date birthdate=datetime.combine(
checkin_partner.birthdate_date, datetime.min.time()
).isoformat()
if checkin_partner.birthdate_date if checkin_partner.birthdate_date
else None, else None,
residenceStreet=checkin_partner.residence_street residenceStreet=checkin_partner.residence_street
@@ -653,9 +651,16 @@ class PmsReservationService(Component):
and pms_checkin_partner_info.actionOnBoard is not None and pms_checkin_partner_info.actionOnBoard is not None
): ):
checkin_partner.action_on_board() checkin_partner.action_on_board()
return checkin_partner.id
checkin_partner.write( checkin_partner.write(
self.mapping_checkin_partner_values(pms_checkin_partner_info) self.mapping_checkin_partner_values(
pms_checkin_partner_info,
checkin_partner.partner_id.id if checkin_partner.partner_id else False
)
) )
# if not partner_id we need to force compute to create partner
if not checkin_partner.partner_id:
checkin_partner._compute_partner_id()
return checkin_partner.id return checkin_partner.id
@restapi.method( @restapi.method(
@@ -850,8 +855,14 @@ class PmsReservationService(Component):
checkin_partner_last_id checkin_partner_last_id
) )
checkin_partner.write( checkin_partner.write(
self.mapping_checkin_partner_values(pms_checkin_partner_info) self.mapping_checkin_partner_values(
pms_checkin_partner_info,
checkin_partner.partner_id.id if checkin_partner.partner_id else False
)
) )
# if not partner_id we need to force compute to create partner
if not checkin_partner.partner_id:
checkin_partner._compute_partner_id()
return checkin_partner.id return checkin_partner.id
@restapi.method( @restapi.method(
@@ -870,9 +881,8 @@ class PmsReservationService(Component):
if checkin_partner: if checkin_partner:
checkin_partner.unlink() checkin_partner.unlink()
def mapping_checkin_partner_values(self, pms_checkin_partner_info): def mapping_checkin_partner_values(self, pms_checkin_partner_info, partner_id=False):
vals = dict() vals = {
checkin_partner_fields = {
"firstname": pms_checkin_partner_info.firstname, "firstname": pms_checkin_partner_info.firstname,
"lastname": pms_checkin_partner_info.lastname, "lastname": pms_checkin_partner_info.lastname,
"lastname2": pms_checkin_partner_info.lastname2, "lastname2": pms_checkin_partner_info.lastname2,
@@ -888,22 +898,26 @@ class PmsReservationService(Component):
"residence_city": pms_checkin_partner_info.residenceCity, "residence_city": pms_checkin_partner_info.residenceCity,
"residence_state_id": pms_checkin_partner_info.countryState, "residence_state_id": pms_checkin_partner_info.countryState,
"residence_country_id": pms_checkin_partner_info.countryId, "residence_country_id": pms_checkin_partner_info.countryId,
"origin_input_data": pms_checkin_partner_info.originInputData,
} }
if pms_checkin_partner_info.partnerId != partner_id:
vals.update({"partner_id": pms_checkin_partner_info.partnerId})
if pms_checkin_partner_info.documentExpeditionDate: if pms_checkin_partner_info.documentExpeditionDate:
document_expedition_date = datetime.strptime( document_expedition_date = datetime.strptime(
pms_checkin_partner_info.documentExpeditionDate, "%d/%m/%Y" pms_checkin_partner_info.documentExpeditionDate, "%d/%m/%Y"
) )
document_expedition_date = document_expedition_date.strftime("%Y-%m-%d") document_expedition_date = document_expedition_date.strftime("%Y-%m-%d")
vals.update({"document_expedition_date": document_expedition_date}) vals.update({"document_expedition_date": document_expedition_date})
else:
vals.update({"document_expedition_date": False})
if pms_checkin_partner_info.birthdate: if pms_checkin_partner_info.birthdate:
birthdate = datetime.strptime( birthdate = datetime.strptime(
pms_checkin_partner_info.birthdate, "%d/%m/%Y" pms_checkin_partner_info.birthdate, "%d/%m/%Y"
) )
birthdate = birthdate.strftime("%Y-%m-%d") birthdate = birthdate.strftime("%Y-%m-%d")
vals.update({"birthdate_date": birthdate}) vals.update({"birthdate_date": birthdate})
for k, v in checkin_partner_fields.items(): else:
if v: vals.update({"birthdate_date": False})
vals.update({k: v})
return vals return vals
@restapi.method( @restapi.method(
@@ -1306,4 +1320,3 @@ class PmsReservationService(Component):
text='', text='',
) )