From 0fcd8ef49e17f59706ceae85b738602c5fb50b1c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Lodeiros?= Date: Sat, 13 Apr 2024 12:42:13 +0200 Subject: [PATCH] [ADD]pms_api_rest: service traveller report --- pms_api_rest/services/pms_property_service.py | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/pms_api_rest/services/pms_property_service.py b/pms_api_rest/services/pms_property_service.py index daea48b1a..fa0e770f8 100644 --- a/pms_api_rest/services/pms_property_service.py +++ b/pms_api_rest/services/pms_property_service.py @@ -1,3 +1,7 @@ +import base64 + +from odoo import fields + from odoo.addons.base_rest import restapi from odoo.addons.base_rest_datamodel.restapi import Datamodel from odoo.addons.component.core import Component @@ -133,3 +137,35 @@ class PmsPropertyService(Component): ) ) return result_users + + @restapi.method( + [ + ( + [ + "/traveller-report", + ], + "GET", + ) + ], + input_param=Datamodel("pms.report.search.param", is_list=False), + output_param=Datamodel("pms.report", is_list=False), + auth="jwt_api_pms", + ) + def transactions_report(self, pms_report_search_param): + pms_property_id = pms_report_search_param.pmsPropertyId + pms_property = self.env["pms.property"].search([("id", "=", pms_property_id)]) + date_from = fields.Date.from_string(pms_report_search_param.dateFrom) + report_wizard = self.env["traveller.report.wizard"].create( + { + "date_target": date_from, + "pms_property_id": pms_property_id, + } + ) + content = report_wizard.generate_checkin_list( + pms_property_id=pms_property_id, + date_target=date_from, + ) + file_name = pms_property.institution_property_id + ".999" + base64EncodedStr = base64.b64encode(str.encode(content)) + PmsResponse = self.env.datamodels["pms.report"] + return PmsResponse(fileName=file_name, binary=base64EncodedStr)