mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[RFC]pms_api_rest: user unique report datamodel
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user