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",
|
||||
"auth_signup",
|
||||
"auth_jwt_login",
|
||||
"base_location",
|
||||
],
|
||||
"external_dependencies": {
|
||||
"python": ["jwt", "simplejson", "marshmallow", "jose"],
|
||||
|
||||
@@ -21,5 +21,11 @@ from . import pms_pricelist
|
||||
from . import pms_pricelist_item
|
||||
from . import pms_availability_plan
|
||||
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_ubication
|
||||
|
||||
@@ -6,13 +6,21 @@ from odoo.addons.datamodel.core import Datamodel
|
||||
class PmsCheckinPartnerInfo(Datamodel):
|
||||
_name = "pms.checkin.partner.info"
|
||||
id = fields.Integer(required=False, allow_none=True)
|
||||
# partner = fields.String(required=False, allow_none=True)
|
||||
reservationId = fields.Integer(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)
|
||||
mobile = fields.String(required=False, allow_none=True)
|
||||
nationality = fields.String(required=False, allow_none=True)
|
||||
documentType = 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)
|
||||
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_pricelist_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_ubication_service
|
||||
|
||||
@@ -106,7 +106,13 @@ class PmsFolioService(Component):
|
||||
"preferredRoomId": reservation.preferred_room_id.name
|
||||
if reservation.preferred_room_id
|
||||
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
|
||||
else "",
|
||||
"priceTotal": reservation.price_total,
|
||||
@@ -156,7 +162,9 @@ class PmsFolioService(Component):
|
||||
"departureHour": reservation.departure_hour,
|
||||
"pendingCheckinData": reservation.pending_checkin_data,
|
||||
"createDate": reservation.create_date,
|
||||
"segmentations": segmentation_ids,
|
||||
"segmentations": segmentation_ids[0]
|
||||
if segmentation_ids
|
||||
else "",
|
||||
"cancellationPolicy": reservation.pricelist_id.cancelation_rule_id.name
|
||||
if reservation.pricelist_id.cancelation_rule_id.name
|
||||
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
|
||||
|
||||
@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",
|
||||
)
|
||||
],
|
||||
input_param=Datamodel("pms.search.param"),
|
||||
output_param=Datamodel("pms.checkin.partner.info", is_list=True),
|
||||
auth="jwt_api_pms",
|
||||
)
|
||||
def get_checkin_partners(self, reservation_id, pms_search_param):
|
||||
domain = list()
|
||||
domain.append(("id", "=", reservation_id))
|
||||
domain.append(("pms_property_id", "=", pms_search_param.pms_property_id))
|
||||
reservation = self.env["pms.reservation"].search(domain)
|
||||
def get_checkin_partners(self, reservation_id):
|
||||
reservation = self.env["pms.reservation"].browse(reservation_id)
|
||||
checkin_partners = []
|
||||
PmsCheckinPartnerInfo = self.env.datamodels["pms.checkin.partner.info"]
|
||||
if not reservation:
|
||||
pass
|
||||
else:
|
||||
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(
|
||||
PmsCheckinPartnerInfo(
|
||||
id=checkin_partner.id,
|
||||
reservationId=checkin_partner.reservation_id.id,
|
||||
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 "",
|
||||
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
|
||||
if checkin_partner.document_type
|
||||
if checkin_partner.document_type.name
|
||||
else "",
|
||||
documentNumber=checkin_partner.document_number
|
||||
if checkin_partner.document_number
|
||||
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 "",
|
||||
state=dict(
|
||||
checkin_partner.fields_get(["state"])["state"]["selection"]
|
||||
)[checkin_partner.state],
|
||||
birthdate=birthdate_date
|
||||
if checkin_partner.birthdate_date
|
||||
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
|
||||
|
||||
@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