[IMP] pms_api_rest: add payment report service

This commit is contained in:
Sara Lago
2022-11-03 12:58:01 +01:00
committed by Darío Lodeiros
parent 233c2d3e02
commit 9faa3155d6
5 changed files with 59 additions and 6 deletions

View File

@@ -53,6 +53,7 @@ from . import pms_account_payment_term
from . import pms_room_closure_reason
from . import pms_report
from . import pms_cash_register
from . import pms_payment_report_input
from . import pms_folio_sale_line
from . import pms_invoice_line
from . import pms_mail

View File

@@ -0,0 +1,17 @@
from marshmallow import fields
from odoo.addons.datamodel.core import Datamodel
from odoo.addons.datamodel.fields import NestedModel
class PmsPaymentReportSearchParam(Datamodel):
_name = "pms.payment.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 PmsPaymentReportInput(Datamodel):
_name = "pms.payment.report"
fileName = fields.String(required=False, allow_none=True)
binary = fields.String(required=False, allow_none=True)

View File

@@ -8,4 +8,3 @@ class PmsResUsersInfo(Datamodel):
id = fields.Integer(required=False, allow_none=True)
name = fields.String(required=False, allow_none=True)
userImageBase64 = fields.String(required=False, allow_none=True)

View File

@@ -267,3 +267,37 @@ class PmsAccountPaymentService(Component):
"result": False,
"diff": diff,
}
@restapi.method(
[
(
[
"/payment-report",
],
"GET",
)
],
input_param=Datamodel("pms.payment.report.search.param", is_list=False),
output_param=Datamodel("pms.payment.report", is_list=False),
auth="jwt_api_pms",
)
def payment_report(self, pms_payment_report_search_param):
pms_property_id = pms_payment_report_search_param.pmsPropertyId
date_from = pms_payment_report_search_param.dateFrom
date_to = pms_payment_report_search_param.dateTo
report_wizard = self.env["cash.daily.report.wizard"].create(
{
"date_start": date_from,
"date_end": date_to,
"pms_property_id": pms_property_id,
}
)
result = report_wizard._export()
file_name = result["xls_filename"]
base64EncodedStr = result["xls_binary"]
PmsResponse = self.env.datamodels["pms.payment.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...)
return PmsResponse(fileName=file_name, binary=base64EncodedStr)

View File

@@ -107,9 +107,11 @@ class PmsPropertyService(Component):
[("pms_property_ids", "in", pms_property_id)]
)
for user in users:
result_users.append(ResUsersInfo(
id=user.id,
name=user.name,
userImageBase64=user.partner_id.image_1024 or None
))
result_users.append(
ResUsersInfo(
id=user.id,
name=user.name,
userImageBase64=user.partner_id.image_1024 or None,
)
)
return result_users