[RFC]pms_api_rest: user unique report datamodel

This commit is contained in:
Darío Lodeiros
2022-11-06 11:13:48 +01:00
parent 1f5e55bf37
commit c33362d754
5 changed files with 21 additions and 34 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)