diff --git a/pms_api_rest/datamodels/__init__.py b/pms_api_rest/datamodels/__init__.py index 75bef6942..84fd46711 100644 --- a/pms_api_rest/datamodels/__init__.py +++ b/pms_api_rest/datamodels/__init__.py @@ -51,9 +51,8 @@ from . import res_lang from . import pms_account_payment_term from . import pms_room_closure_reason -from . import pms_report from . import pms_cash_register -from . import pms_transaction_report +from . import pms_report from . import pms_folio_sale_line from . import pms_invoice_line from . import pms_mail diff --git a/pms_api_rest/datamodels/pms_report.py b/pms_api_rest/datamodels/pms_report.py index 3fea07f6e..fc410de86 100644 --- a/pms_api_rest/datamodels/pms_report.py +++ b/pms_api_rest/datamodels/pms_report.py @@ -3,6 +3,14 @@ from marshmallow import fields from odoo.addons.datamodel.core import Datamodel -class PmsReportInfo(Datamodel): - _name = "pms.report.info" - pdf = fields.String(required=False, allow_none=True) +class PmsReportSearchParam(Datamodel): + _name = "pms.report.search.param" + dateFrom = fields.String(required=False, allow_none=True) + dateTo = fields.String(required=False, allow_none=True) + pmsPropertyId = fields.Integer(required=False, allow_none=True) + + +class PmsTransactionReportOutput(Datamodel): + _name = "pms.report" + fileName = fields.String(required=False, allow_none=True) + binary = fields.String(required=False, allow_none=True) diff --git a/pms_api_rest/datamodels/pms_transaction_report.py b/pms_api_rest/datamodels/pms_transaction_report.py deleted file mode 100644 index fb5d097fa..000000000 --- a/pms_api_rest/datamodels/pms_transaction_report.py +++ /dev/null @@ -1,16 +0,0 @@ -from marshmallow import fields - -from odoo.addons.datamodel.core import Datamodel - - -class PmsTransactionReportSearchParam(Datamodel): - _name = "pms.transaction.report.search.param" - dateFrom = fields.String(required=False, allow_none=True) - dateTo = fields.String(required=False, allow_none=True) - pmsPropertyId = fields.Integer(required=False, allow_none=True) - - -class PmsTransactionReportInput(Datamodel): - _name = "pms.transaction.report" - fileName = fields.String(required=False, allow_none=True) - binary = fields.String(required=False, allow_none=True) diff --git a/pms_api_rest/services/pms_reservation_service.py b/pms_api_rest/services/pms_reservation_service.py index 72b61fae9..a8c4affad 100644 --- a/pms_api_rest/services/pms_reservation_service.py +++ b/pms_api_rest/services/pms_reservation_service.py @@ -730,7 +730,7 @@ class PmsReservationService(Component): ) ], auth="jwt_api_pms", - output_param=Datamodel("pms.report.info", is_list=False), + output_param=Datamodel("pms.report", is_list=False), ) def print_all_checkins(self, reservation_id): reservations = False @@ -745,8 +745,8 @@ class PmsReservationService(Component): ._render_qweb_pdf(checkins.ids)[0] ) base64EncodedStr = base64.b64encode(pdf) - PmsResponse = self.env.datamodels["pms.report.info"] - return PmsResponse(pdf=base64EncodedStr) + PmsResponse = self.env.datamodels["pms.report"] + return PmsResponse(binary=base64EncodedStr) @restapi.method( [ @@ -759,7 +759,7 @@ class PmsReservationService(Component): ) ], auth="jwt_api_pms", - output_param=Datamodel("pms.report.info", is_list=False), + output_param=Datamodel("pms.report", is_list=False), ) def print_checkin(self, reservation_id, checkin_partner_id): reservations = False @@ -774,5 +774,5 @@ class PmsReservationService(Component): ._render_qweb_pdf(checkin_partner.id)[0] ) base64EncodedStr = base64.b64encode(pdf) - PmsResponse = self.env.datamodels["pms.report.info"] - return PmsResponse(pdf=base64EncodedStr) + PmsResponse = self.env.datamodels["pms.report"] + return PmsResponse(binary=base64EncodedStr) diff --git a/pms_api_rest/services/pms_transaction_service.py b/pms_api_rest/services/pms_transaction_service.py index cd7ca46cc..f455487c2 100644 --- a/pms_api_rest/services/pms_transaction_service.py +++ b/pms_api_rest/services/pms_transaction_service.py @@ -365,8 +365,8 @@ class PmsTransactionService(Component): "GET", ) ], - input_param=Datamodel("pms.transaction.report.search.param", is_list=False), - output_param=Datamodel("pms.transaction.report", is_list=False), + 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_transaction_report_search_param): @@ -383,9 +383,5 @@ class PmsTransactionService(Component): result = report_wizard._export() file_name = result["xls_filename"] base64EncodedStr = result["xls_binary"] - PmsResponse = self.env.datamodels["pms.transaction.report"] - # REVIEW: Reuse pms.report.info by modifying the fields - # to support different types of documents? - # proposal: contentBase64 = fields.String, - # fileType = fields.String (pdf, xlsx, etc...) + PmsResponse = self.env.datamodels["pms.report"] return PmsResponse(fileName=file_name, binary=base64EncodedStr)