mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP]pms_api_rest: added services and datamodels for get and patch checkin_partners
This commit is contained in:
@@ -12,6 +12,7 @@
|
|||||||
"web",
|
"web",
|
||||||
"auth_signup",
|
"auth_signup",
|
||||||
"auth_jwt_login",
|
"auth_jwt_login",
|
||||||
|
"base_location",
|
||||||
],
|
],
|
||||||
"external_dependencies": {
|
"external_dependencies": {
|
||||||
"python": ["jwt", "simplejson", "marshmallow", "jose"],
|
"python": ["jwt", "simplejson", "marshmallow", "jose"],
|
||||||
|
|||||||
@@ -21,5 +21,11 @@ from . import pms_pricelist
|
|||||||
from . import pms_pricelist_item
|
from . import pms_pricelist_item
|
||||||
from . import pms_availability_plan
|
from . import pms_availability_plan
|
||||||
from . import pms_availability_plan_rule
|
from . import pms_availability_plan_rule
|
||||||
|
|
||||||
|
from . import pms_id_categories
|
||||||
|
from . import res_country
|
||||||
|
from . import res_partner_category
|
||||||
|
from . import res_city_zip
|
||||||
|
|
||||||
from . import pms_search_param
|
from . import pms_search_param
|
||||||
from . import pms_ubication
|
from . import pms_ubication
|
||||||
|
|||||||
@@ -6,13 +6,21 @@ from odoo.addons.datamodel.core import Datamodel
|
|||||||
class PmsCheckinPartnerInfo(Datamodel):
|
class PmsCheckinPartnerInfo(Datamodel):
|
||||||
_name = "pms.checkin.partner.info"
|
_name = "pms.checkin.partner.info"
|
||||||
id = fields.Integer(required=False, allow_none=True)
|
id = fields.Integer(required=False, allow_none=True)
|
||||||
# partner = fields.String(required=False, allow_none=True)
|
|
||||||
reservationId = fields.Integer(required=False, allow_none=True)
|
reservationId = fields.Integer(required=False, allow_none=True)
|
||||||
name = fields.String(required=False, allow_none=True)
|
name = fields.String(required=False, allow_none=True)
|
||||||
|
firstname = fields.String(required=False, allow_none=True)
|
||||||
|
lastname = fields.String(required=False, allow_none=True)
|
||||||
|
lastname2 = fields.String(required=False, allow_none=True)
|
||||||
email = fields.String(required=False, allow_none=True)
|
email = fields.String(required=False, allow_none=True)
|
||||||
mobile = fields.String(required=False, allow_none=True)
|
mobile = fields.String(required=False, allow_none=True)
|
||||||
nationality = fields.String(required=False, allow_none=True)
|
|
||||||
documentType = fields.String(required=False, allow_none=True)
|
documentType = fields.String(required=False, allow_none=True)
|
||||||
documentNumber = fields.String(required=False, allow_none=True)
|
documentNumber = fields.String(required=False, allow_none=True)
|
||||||
|
documentExpeditionDate = fields.String(required=False, allow_none=True)
|
||||||
|
documentSupportNumber = fields.String(required=False, allow_none=True)
|
||||||
gender = fields.String(required=False, allow_none=True)
|
gender = fields.String(required=False, allow_none=True)
|
||||||
state = fields.String(required=False, allow_none=True)
|
birthdate = fields.String(required=False, allow_none=True)
|
||||||
|
residenceStreet = fields.String(required=False, allow_none=True)
|
||||||
|
zip = fields.String(required=False, allow_none=True)
|
||||||
|
residenceCity = fields.String(required=False, allow_none=True)
|
||||||
|
nationality = fields.String(required=False, allow_none=True)
|
||||||
|
countryState = fields.String(required=False, allow_none=True)
|
||||||
|
|||||||
9
pms_api_rest/datamodels/pms_id_categories.py
Normal file
9
pms_api_rest/datamodels/pms_id_categories.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
from odoo.addons.datamodel.core import Datamodel
|
||||||
|
|
||||||
|
|
||||||
|
class PmsIdCategoriesInfo(Datamodel):
|
||||||
|
_name = "pms.id.categories.info"
|
||||||
|
id = fields.Integer(required=False, allow_none=True)
|
||||||
|
documentType = fields.String(required=False, allow_none=True)
|
||||||
10
pms_api_rest/datamodels/res_city_zip.py
Normal file
10
pms_api_rest/datamodels/res_city_zip.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
from odoo.addons.datamodel.core import Datamodel
|
||||||
|
|
||||||
|
|
||||||
|
class ResCityZipInfo(Datamodel):
|
||||||
|
_name = "res.city.zip.info"
|
||||||
|
cityId = fields.String(required=False, allow_none=True)
|
||||||
|
stateId = fields.String(required=False, allow_none=True)
|
||||||
|
countryId = fields.String(required=False, allow_none=True)
|
||||||
15
pms_api_rest/datamodels/res_country.py
Normal file
15
pms_api_rest/datamodels/res_country.py
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
from odoo.addons.datamodel.core import Datamodel
|
||||||
|
|
||||||
|
|
||||||
|
class PmsResCountriesInfo(Datamodel):
|
||||||
|
_name = "res.country.info"
|
||||||
|
id = fields.Integer(required=False, allow_none=True)
|
||||||
|
name = fields.String(required=False, allow_none=True)
|
||||||
|
|
||||||
|
|
||||||
|
class PmsResCountryStatesInfo(Datamodel):
|
||||||
|
_name = "res.country_state.info"
|
||||||
|
id = fields.Integer(required=False, allow_none=True)
|
||||||
|
name = fields.String(required=False, allow_none=True)
|
||||||
10
pms_api_rest/datamodels/res_partner_category.py
Normal file
10
pms_api_rest/datamodels/res_partner_category.py
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
from marshmallow import fields
|
||||||
|
|
||||||
|
from odoo.addons.datamodel.core import Datamodel
|
||||||
|
|
||||||
|
|
||||||
|
class ResPartnerCategoryInfo(Datamodel):
|
||||||
|
_name = "res.partner.category.info"
|
||||||
|
id = fields.Integer(required=False, allow_none=True)
|
||||||
|
name = fields.String(required=False, allow_none=True)
|
||||||
|
parentId = fields.Integer(required=False, allow_none=True)
|
||||||
@@ -9,5 +9,9 @@ from . import pms_property_service
|
|||||||
from . import pms_login_service
|
from . import pms_login_service
|
||||||
from . import pms_pricelist_service
|
from . import pms_pricelist_service
|
||||||
from . import pms_availability_plan_service
|
from . import pms_availability_plan_service
|
||||||
|
from . import pms_id_categories_service
|
||||||
|
from . import res_country_services
|
||||||
|
from . import res_partner_category_services
|
||||||
|
from . import res_city_zip_service
|
||||||
from . import pms_room_type_class_service
|
from . import pms_room_type_class_service
|
||||||
from . import pms_ubication_service
|
from . import pms_ubication_service
|
||||||
|
|||||||
@@ -106,7 +106,13 @@ class PmsFolioService(Component):
|
|||||||
"preferredRoomId": reservation.preferred_room_id.name
|
"preferredRoomId": reservation.preferred_room_id.name
|
||||||
if reservation.preferred_room_id
|
if reservation.preferred_room_id
|
||||||
else "",
|
else "",
|
||||||
"roomTypeId": reservation.room_type_id.name
|
"preferredRoomCapacity": reservation.preferred_room_id.capacity
|
||||||
|
if reservation.preferred_room_id
|
||||||
|
else "",
|
||||||
|
"roomTypeName": reservation.room_type_id.name
|
||||||
|
if reservation.room_type_id
|
||||||
|
else "",
|
||||||
|
"roomTypeId": reservation.room_type_id.id
|
||||||
if reservation.room_type_id
|
if reservation.room_type_id
|
||||||
else "",
|
else "",
|
||||||
"priceTotal": reservation.price_total,
|
"priceTotal": reservation.price_total,
|
||||||
@@ -156,7 +162,9 @@ class PmsFolioService(Component):
|
|||||||
"departureHour": reservation.departure_hour,
|
"departureHour": reservation.departure_hour,
|
||||||
"pendingCheckinData": reservation.pending_checkin_data,
|
"pendingCheckinData": reservation.pending_checkin_data,
|
||||||
"createDate": reservation.create_date,
|
"createDate": reservation.create_date,
|
||||||
"segmentations": segmentation_ids,
|
"segmentations": segmentation_ids[0]
|
||||||
|
if segmentation_ids
|
||||||
|
else "",
|
||||||
"cancellationPolicy": reservation.pricelist_id.cancelation_rule_id.name
|
"cancellationPolicy": reservation.pricelist_id.cancelation_rule_id.name
|
||||||
if reservation.pricelist_id.cancelation_rule_id.name
|
if reservation.pricelist_id.cancelation_rule_id.name
|
||||||
else "",
|
else "",
|
||||||
|
|||||||
34
pms_api_rest/services/pms_id_categories_service.py
Normal file
34
pms_api_rest/services/pms_id_categories_service.py
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
from odoo.addons.base_rest import restapi
|
||||||
|
from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||||
|
from odoo.addons.component.core import Component
|
||||||
|
|
||||||
|
|
||||||
|
class PmsIdCategoriesService(Component):
|
||||||
|
_inherit = "base.rest.service"
|
||||||
|
_name = "pms.id.categories.services"
|
||||||
|
_usage = "id_categories"
|
||||||
|
_collection = "pms.services"
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/",
|
||||||
|
],
|
||||||
|
"GET",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output_param=Datamodel("pms.id.categories.info", is_list=True),
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def get_id_categories(self):
|
||||||
|
result_id_categories = []
|
||||||
|
PmsIdCategoriesInfo = self.env.datamodels["pms.id.categories.info"]
|
||||||
|
for id_category in self.env["res.partner.id_category"].search([]):
|
||||||
|
result_id_categories.append(
|
||||||
|
PmsIdCategoriesInfo(
|
||||||
|
id=id_category.id,
|
||||||
|
documentType=id_category.name,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return result_id_categories
|
||||||
@@ -36,3 +36,87 @@ class PmsPartnerService(Component):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
return result_partners
|
return result_partners
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/<string:documentType>/<string:documentNumber>",
|
||||||
|
],
|
||||||
|
"GET",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output_param=Datamodel("pms.partner.info", is_list=True),
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def get_partner_by_doc_number(self, document_type, document_number):
|
||||||
|
doc_type = self.env["res.partner.id_category"].search(
|
||||||
|
[("name", "=", document_type)]
|
||||||
|
)
|
||||||
|
doc_number = self.env["res.partner.id_number"].search(
|
||||||
|
[("name", "=", document_number), ("category_id", "=", doc_type.id)]
|
||||||
|
)
|
||||||
|
partners = []
|
||||||
|
PmsCheckinPartnerInfo = self.env.datamodels["pms.checkin.partner.info"]
|
||||||
|
if not doc_number:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
if doc_number.valid_from:
|
||||||
|
document_expedition_date = doc_number.valid_from.strftime("%d/%m/%Y")
|
||||||
|
if doc_number.partner_id.birthdate_date:
|
||||||
|
birthdate_date = doc_number.partner_id.birthdate_date.strftime(
|
||||||
|
"%d/%m/%Y"
|
||||||
|
)
|
||||||
|
partners.append(
|
||||||
|
PmsCheckinPartnerInfo(
|
||||||
|
# id=doc_number.partner_id.id,
|
||||||
|
name=doc_number.partner_id.name
|
||||||
|
if doc_number.partner_id.name
|
||||||
|
else "",
|
||||||
|
firstname=doc_number.partner_id.firstname
|
||||||
|
if doc_number.partner_id.firstname
|
||||||
|
else "",
|
||||||
|
lastname=doc_number.partner_id.lastname
|
||||||
|
if doc_number.partner_id.lastname
|
||||||
|
else "",
|
||||||
|
lastname2=doc_number.partner_id.lastname2
|
||||||
|
if doc_number.partner_id.lastname2
|
||||||
|
else "",
|
||||||
|
email=doc_number.partner_id.email
|
||||||
|
if doc_number.partner_id.email
|
||||||
|
else "",
|
||||||
|
mobile=doc_number.partner_id.mobile
|
||||||
|
if doc_number.partner_id.mobile
|
||||||
|
else "",
|
||||||
|
documentType=doc_type.name,
|
||||||
|
documentNumber=doc_number.name,
|
||||||
|
documentExpeditionDate=document_expedition_date
|
||||||
|
if doc_number.valid_from
|
||||||
|
else "",
|
||||||
|
documentSupportNumber=doc_number.support_number
|
||||||
|
if doc_number.support_number
|
||||||
|
else "",
|
||||||
|
gender=doc_number.partner_id.gender
|
||||||
|
if doc_number.partner_id.gender
|
||||||
|
else "",
|
||||||
|
birthdate=birthdate_date
|
||||||
|
if doc_number.partner_id.birthdate_date
|
||||||
|
else "",
|
||||||
|
residenceStreet=doc_number.partner_id.residence_street
|
||||||
|
if doc_number.partner_id.residence_street
|
||||||
|
else "",
|
||||||
|
zip=doc_number.partner_id.residence_zip
|
||||||
|
if doc_number.partner_id.residence_zip
|
||||||
|
else "",
|
||||||
|
residenceCity=doc_number.partner_id.residence_city
|
||||||
|
if doc_number.partner_id.residence_city
|
||||||
|
else "",
|
||||||
|
nationality=doc_number.partner_id.nationality_id.name
|
||||||
|
if doc_number.partner_id.nationality_id
|
||||||
|
else "",
|
||||||
|
countryState=doc_number.partner_id.residence_state_id.name
|
||||||
|
if doc_number.partner_id.residence_state_id
|
||||||
|
else "",
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return partners
|
||||||
|
|||||||
@@ -204,41 +204,204 @@ class PmsReservationService(Component):
|
|||||||
"GET",
|
"GET",
|
||||||
)
|
)
|
||||||
],
|
],
|
||||||
input_param=Datamodel("pms.search.param"),
|
|
||||||
output_param=Datamodel("pms.checkin.partner.info", is_list=True),
|
output_param=Datamodel("pms.checkin.partner.info", is_list=True),
|
||||||
auth="jwt_api_pms",
|
auth="jwt_api_pms",
|
||||||
)
|
)
|
||||||
def get_checkin_partners(self, reservation_id, pms_search_param):
|
def get_checkin_partners(self, reservation_id):
|
||||||
domain = list()
|
reservation = self.env["pms.reservation"].browse(reservation_id)
|
||||||
domain.append(("id", "=", reservation_id))
|
|
||||||
domain.append(("pms_property_id", "=", pms_search_param.pms_property_id))
|
|
||||||
reservation = self.env["pms.reservation"].search(domain)
|
|
||||||
checkin_partners = []
|
checkin_partners = []
|
||||||
PmsCheckinPartnerInfo = self.env.datamodels["pms.checkin.partner.info"]
|
PmsCheckinPartnerInfo = self.env.datamodels["pms.checkin.partner.info"]
|
||||||
if not reservation:
|
if not reservation:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
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,
|
||||||
reservationId=checkin_partner.reservation_id.id,
|
reservationId=checkin_partner.reservation_id.id,
|
||||||
name=checkin_partner.name if checkin_partner.name else "",
|
name=checkin_partner.name if checkin_partner.name else "",
|
||||||
|
firstname=checkin_partner.firstname
|
||||||
|
if checkin_partner.firstname
|
||||||
|
else "",
|
||||||
|
lastname=checkin_partner.lastname
|
||||||
|
if checkin_partner.lastname
|
||||||
|
else "",
|
||||||
|
lastname2=checkin_partner.lastname2
|
||||||
|
if checkin_partner.lastname2
|
||||||
|
else "",
|
||||||
email=checkin_partner.email if checkin_partner.email else "",
|
email=checkin_partner.email if checkin_partner.email else "",
|
||||||
mobile=checkin_partner.mobile if checkin_partner.mobile else "",
|
mobile=checkin_partner.mobile if checkin_partner.mobile else "",
|
||||||
nationality=checkin_partner.nationality_id.name
|
|
||||||
if checkin_partner.nationality_id
|
|
||||||
else "",
|
|
||||||
documentType=checkin_partner.document_type.name
|
documentType=checkin_partner.document_type.name
|
||||||
if checkin_partner.document_type
|
if checkin_partner.document_type.name
|
||||||
else "",
|
else "",
|
||||||
documentNumber=checkin_partner.document_number
|
documentNumber=checkin_partner.document_number
|
||||||
if checkin_partner.document_number
|
if checkin_partner.document_number
|
||||||
else "",
|
else "",
|
||||||
|
documentExpeditionDate=document_expedition_date
|
||||||
|
if checkin_partner.document_expedition_date
|
||||||
|
else "",
|
||||||
|
documentSupportNumber=checkin_partner.support_number
|
||||||
|
if checkin_partner.support_number
|
||||||
|
else "",
|
||||||
gender=checkin_partner.gender if checkin_partner.gender else "",
|
gender=checkin_partner.gender if checkin_partner.gender else "",
|
||||||
state=dict(
|
birthdate=birthdate_date
|
||||||
checkin_partner.fields_get(["state"])["state"]["selection"]
|
if checkin_partner.birthdate_date
|
||||||
)[checkin_partner.state],
|
else "",
|
||||||
|
residenceStreet=checkin_partner.residence_street
|
||||||
|
if checkin_partner.residence_street
|
||||||
|
else "",
|
||||||
|
zip=checkin_partner.residence_zip
|
||||||
|
if checkin_partner.residence_zip
|
||||||
|
else "",
|
||||||
|
residenceCity=checkin_partner.residence_city
|
||||||
|
if checkin_partner.residence_city
|
||||||
|
else "",
|
||||||
|
nationality=checkin_partner.residence_country_id.name
|
||||||
|
if checkin_partner.residence_country_id
|
||||||
|
else "",
|
||||||
|
countryState=checkin_partner.residence_state_id.name
|
||||||
|
if checkin_partner.residence_state_id
|
||||||
|
else "",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return checkin_partners
|
return checkin_partners
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/<int:reservation_id>/adults/<int:adults>",
|
||||||
|
],
|
||||||
|
"PATCH",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def update_reservation_adults(self, reservation_id, adults):
|
||||||
|
reservation_id = self.env["pms.reservation"].browse(reservation_id)
|
||||||
|
reservation_id.write(
|
||||||
|
{
|
||||||
|
"adults": adults,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/<int:reservation_id>/children/<int:children>",
|
||||||
|
],
|
||||||
|
"PATCH",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def update_reservation_children(self, reservation_id, children):
|
||||||
|
reservation_id = self.env["pms.reservation"].browse(reservation_id)
|
||||||
|
reservation_id.write(
|
||||||
|
{
|
||||||
|
"children": children,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/<int:reservation_id>/segmentation/<int:segmentation_id>",
|
||||||
|
],
|
||||||
|
"PATCH",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def update_segmentation_id(self, reservation_id, segmentation_id):
|
||||||
|
reservation_id = self.env["pms.reservation"].browse(reservation_id)
|
||||||
|
reservation_id.write(
|
||||||
|
{
|
||||||
|
"segmentation_ids": [segmentation_id],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/<int:reservation_id>/checkin_partner/<int:checkin_partner_id>",
|
||||||
|
],
|
||||||
|
"PATCH",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
input_param=Datamodel("pms.checkin.partner.info", is_list=False),
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def write_reservation_checkin_partner(
|
||||||
|
self, reservation_id, checkin_partner_id, pms_checkin_partner_info
|
||||||
|
):
|
||||||
|
checkin_partner = self.env["pms.checkin.partner"].search(
|
||||||
|
[("id", "=", checkin_partner_id), ("reservation_id", "=", reservation_id)]
|
||||||
|
)
|
||||||
|
if checkin_partner:
|
||||||
|
vals = dict()
|
||||||
|
if pms_checkin_partner_info.firstname:
|
||||||
|
vals.update({"firstname": pms_checkin_partner_info.firstname})
|
||||||
|
if pms_checkin_partner_info.lastname:
|
||||||
|
vals.update({"lastname": pms_checkin_partner_info.lastname})
|
||||||
|
if pms_checkin_partner_info.lastname2:
|
||||||
|
vals.update({"lastname2": pms_checkin_partner_info.lastname2})
|
||||||
|
if pms_checkin_partner_info.email:
|
||||||
|
vals.update({"email": pms_checkin_partner_info.email})
|
||||||
|
if pms_checkin_partner_info.mobile:
|
||||||
|
vals.update({"mobile": pms_checkin_partner_info.mobile})
|
||||||
|
if pms_checkin_partner_info.documentType:
|
||||||
|
document_type = self.env["res.partner.id_category"].search(
|
||||||
|
[("name", "=", pms_checkin_partner_info.documentType)]
|
||||||
|
)
|
||||||
|
vals.update({"document_type": document_type})
|
||||||
|
if pms_checkin_partner_info.documentNumber:
|
||||||
|
vals.update(
|
||||||
|
{"document_number": pms_checkin_partner_info.documentNumber}
|
||||||
|
)
|
||||||
|
if pms_checkin_partner_info.documentExpeditionDate:
|
||||||
|
document_expedition_date = datetime.strptime(
|
||||||
|
pms_checkin_partner_info.documentExpeditionDate, "%d/%m/%Y"
|
||||||
|
)
|
||||||
|
document_expedition_date = document_expedition_date.strftime("%Y-%m-%d")
|
||||||
|
vals.update({"document_expedition_date": document_expedition_date})
|
||||||
|
if pms_checkin_partner_info.documentSupportNumber:
|
||||||
|
vals.update(
|
||||||
|
{"support_number": pms_checkin_partner_info.documentSupportNumber}
|
||||||
|
)
|
||||||
|
if pms_checkin_partner_info.gender:
|
||||||
|
vals.update({"gender": pms_checkin_partner_info.gender})
|
||||||
|
if pms_checkin_partner_info.birthdate:
|
||||||
|
birthdate = datetime.strptime(
|
||||||
|
pms_checkin_partner_info.birthdate, "%d/%m/%Y"
|
||||||
|
)
|
||||||
|
birthdate = birthdate.strftime("%Y-%m-%d")
|
||||||
|
vals.update({"birthdate_date": birthdate})
|
||||||
|
if pms_checkin_partner_info.residenceStreet:
|
||||||
|
vals.update(
|
||||||
|
{"residence_street": pms_checkin_partner_info.residenceStreet}
|
||||||
|
)
|
||||||
|
if pms_checkin_partner_info.zip:
|
||||||
|
vals.update({"residence_zip": pms_checkin_partner_info.zip})
|
||||||
|
if pms_checkin_partner_info.residenceCity:
|
||||||
|
vals.update({"residence_city": pms_checkin_partner_info.residenceCity})
|
||||||
|
if pms_checkin_partner_info.nationality:
|
||||||
|
country_id = self.env["res.country"].search(
|
||||||
|
[("name", "=", pms_checkin_partner_info.nationality)]
|
||||||
|
)
|
||||||
|
vals.update({"residence_country_id": country_id})
|
||||||
|
if pms_checkin_partner_info.countryState:
|
||||||
|
country_state = self.env["res.country.state"].search(
|
||||||
|
[("name", "=", pms_checkin_partner_info.countryState)]
|
||||||
|
)
|
||||||
|
vals.update({"residence_state_id": country_state})
|
||||||
|
checkin_partner.write(vals)
|
||||||
|
|||||||
35
pms_api_rest/services/res_city_zip_service.py
Normal file
35
pms_api_rest/services/res_city_zip_service.py
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
from odoo.addons.base_rest import restapi
|
||||||
|
from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||||
|
from odoo.addons.component.core import Component
|
||||||
|
|
||||||
|
|
||||||
|
class PmsIdCategoriesService(Component):
|
||||||
|
_inherit = "base.rest.service"
|
||||||
|
_name = "res.city.zip.services"
|
||||||
|
_usage = "zip"
|
||||||
|
_collection = "pms.services"
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/<string:res_city_zip>",
|
||||||
|
],
|
||||||
|
"GET",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output_param=Datamodel("res.city.zip.info", is_list=True),
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def get_address_data_by_zip(self, res_city_zip):
|
||||||
|
result_zip_data = []
|
||||||
|
ResCityZipInfo = self.env.datamodels["res.city.zip.info"]
|
||||||
|
for zip_code in self.env["res.city.zip"].search([("name", "=", res_city_zip)]):
|
||||||
|
result_zip_data.append(
|
||||||
|
ResCityZipInfo(
|
||||||
|
cityId=zip_code.city_id.name,
|
||||||
|
stateId=zip_code.state_id.name,
|
||||||
|
countryId=zip_code.country_id.name,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return result_zip_data
|
||||||
60
pms_api_rest/services/res_country_services.py
Normal file
60
pms_api_rest/services/res_country_services.py
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
from odoo.addons.base_rest import restapi
|
||||||
|
from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||||
|
from odoo.addons.component.core import Component
|
||||||
|
|
||||||
|
|
||||||
|
class ResCountryService(Component):
|
||||||
|
_inherit = "base.rest.service"
|
||||||
|
_name = "res.country.services"
|
||||||
|
_usage = "countries"
|
||||||
|
_collection = "pms.services"
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/",
|
||||||
|
],
|
||||||
|
"GET",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output_param=Datamodel("res.country.info", is_list=True),
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def get_countries(self):
|
||||||
|
result_countries = []
|
||||||
|
ResCountriesInfo = self.env.datamodels["res.country.info"]
|
||||||
|
for country in self.env["res.country"].search([]):
|
||||||
|
result_countries.append(
|
||||||
|
ResCountriesInfo(
|
||||||
|
id=country.id,
|
||||||
|
name=country.name,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return result_countries
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/<int:country_id>/country_states",
|
||||||
|
],
|
||||||
|
"GET",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output_param=Datamodel("res.country_state.info", is_list=True),
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def get_states(self, country_id):
|
||||||
|
result_country_states = []
|
||||||
|
ResCountryStatesInfo = self.env.datamodels["res.country_state.info"]
|
||||||
|
for country_states in self.env["res.country.state"].search(
|
||||||
|
[("country_id", "=", country_id)]
|
||||||
|
):
|
||||||
|
result_country_states.append(
|
||||||
|
ResCountryStatesInfo(
|
||||||
|
id=country_states.id,
|
||||||
|
name=country_states.name,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return result_country_states
|
||||||
37
pms_api_rest/services/res_partner_category_services.py
Normal file
37
pms_api_rest/services/res_partner_category_services.py
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
from odoo.addons.base_rest import restapi
|
||||||
|
from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||||
|
from odoo.addons.component.core import Component
|
||||||
|
|
||||||
|
|
||||||
|
class PmsIdCategoriesService(Component):
|
||||||
|
_inherit = "base.rest.service"
|
||||||
|
_name = "res.partner.category.services"
|
||||||
|
_usage = "segmentations"
|
||||||
|
_collection = "pms.services"
|
||||||
|
|
||||||
|
@restapi.method(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
[
|
||||||
|
"/",
|
||||||
|
],
|
||||||
|
"GET",
|
||||||
|
)
|
||||||
|
],
|
||||||
|
output_param=Datamodel("res.partner.category.info", is_list=True),
|
||||||
|
auth="jwt_api_pms",
|
||||||
|
)
|
||||||
|
def get_parent_segmentation_ids(self):
|
||||||
|
result_segmentation_ids = []
|
||||||
|
ResPartnerCategoryInfo = self.env.datamodels["res.partner.category.info"]
|
||||||
|
for segmentation_id in self.env["res.partner.category"].search([]):
|
||||||
|
result_segmentation_ids.append(
|
||||||
|
ResPartnerCategoryInfo(
|
||||||
|
id=segmentation_id.id,
|
||||||
|
name=segmentation_id.name,
|
||||||
|
parentId=segmentation_id.parent_id.id
|
||||||
|
if segmentation_id.parent_id.id
|
||||||
|
else 0,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
return result_segmentation_ids
|
||||||
Reference in New Issue
Block a user