mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[IMP] pms_api_rest: add payment report service
This commit is contained in:
committed by
Darío Lodeiros
parent
233c2d3e02
commit
9faa3155d6
@@ -53,6 +53,7 @@ from . import pms_account_payment_term
|
|||||||
from . import pms_room_closure_reason
|
from . import pms_room_closure_reason
|
||||||
from . import pms_report
|
from . import pms_report
|
||||||
from . import pms_cash_register
|
from . import pms_cash_register
|
||||||
|
from . import pms_payment_report_input
|
||||||
from . import pms_folio_sale_line
|
from . import pms_folio_sale_line
|
||||||
from . import pms_invoice_line
|
from . import pms_invoice_line
|
||||||
from . import pms_mail
|
from . import pms_mail
|
||||||
|
|||||||
17
pms_api_rest/datamodels/pms_payment_report_input.py
Normal file
17
pms_api_rest/datamodels/pms_payment_report_input.py
Normal 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)
|
||||||
@@ -8,4 +8,3 @@ class PmsResUsersInfo(Datamodel):
|
|||||||
id = fields.Integer(required=False, allow_none=True)
|
id = fields.Integer(required=False, allow_none=True)
|
||||||
name = fields.String(required=False, allow_none=True)
|
name = fields.String(required=False, allow_none=True)
|
||||||
userImageBase64 = fields.String(required=False, allow_none=True)
|
userImageBase64 = fields.String(required=False, allow_none=True)
|
||||||
|
|
||||||
|
|||||||
@@ -267,3 +267,37 @@ class PmsAccountPaymentService(Component):
|
|||||||
"result": False,
|
"result": False,
|
||||||
"diff": diff,
|
"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)
|
||||||
|
|||||||
@@ -107,9 +107,11 @@ class PmsPropertyService(Component):
|
|||||||
[("pms_property_ids", "in", pms_property_id)]
|
[("pms_property_ids", "in", pms_property_id)]
|
||||||
)
|
)
|
||||||
for user in users:
|
for user in users:
|
||||||
result_users.append(ResUsersInfo(
|
result_users.append(
|
||||||
id=user.id,
|
ResUsersInfo(
|
||||||
name=user.name,
|
id=user.id,
|
||||||
userImageBase64=user.partner_id.image_1024 or None
|
name=user.name,
|
||||||
))
|
userImageBase64=user.partner_id.image_1024 or None,
|
||||||
|
)
|
||||||
|
)
|
||||||
return result_users
|
return result_users
|
||||||
|
|||||||
Reference in New Issue
Block a user