[IMP] pms_api_rest: add get for payments and invoices in partner service

This commit is contained in:
Sara
2022-09-13 14:54:28 +02:00
committed by Darío Lodeiros
parent 6c7afeb76c
commit 0848c0424f
4 changed files with 89 additions and 0 deletions

View File

@@ -15,6 +15,7 @@ from . import pms_partner
from . import pms_property
from . import pms_account_journal
from . import pms_account_payment
from . import pms_account_move
from . import pms_user

View File

@@ -0,0 +1,13 @@
from marshmallow import fields
from odoo.addons.datamodel.core import Datamodel
class PmsAccountMove(Datamodel):
_name = "pms.account.move.info"
id = fields.Integer(required=False, allow_none=True)
amount = fields.Float(required=False, allow_none=True)
name = fields.String(required=False, allow_none=True)
date = fields.String(required=False, allow_none=True)
paymentState = fields.String(required=False, allow_none=True)
state = fields.String(required=False, allow_none=True)

View File

@@ -0,0 +1,12 @@
from marshmallow import fields
from odoo.addons.datamodel.core import Datamodel
class PmsPaymentInfo(Datamodel):
_name = "pms.payment.info"
id = fields.Integer(required=False, allow_none=True)
amount = fields.Float(required=False, allow_none=True)
journalId = fields.Integer(required=False, allow_none=True)
date = fields.String(required=False, allow_none=True)
memo = fields.String(required=False, allow_none=True)

View File

@@ -241,6 +241,69 @@ class PmsPartnerService(Component):
)
return reservations
@restapi.method(
[
(
[
"/<int:partner_id>/payments",
],
"GET",
)
],
output_param=Datamodel("pms.payment.info", is_list=True),
auth="jwt_api_pms",
)
def get_partner_payments(self, partner_id):
partnerPayments = self.env["account.payment"].search(
[("partner_id", "=", partner_id)]
)
PmsPaymentInfo = self.env.datamodels["pms.payment.info"]
payments = []
for payment in partnerPayments:
payments.append(
PmsPaymentInfo(
id=payment.id,
amount=round(payment.amount, 2),
journalId=payment.journal_id.id,
date=payment.date.strftime("%d/%m/%Y"),
memo=payment.ref,
)
)
return payments
@restapi.method(
[
(
[
"/<int:partner_id>/invoices",
],
"GET",
)
],
output_param=Datamodel("pms.account.move.info", is_list=True),
auth="jwt_api_pms",
)
def get_partner_invoices(self, partner_id):
partnerInvoices = self.env["account.move"].search(
[("partner_id", "=", partner_id)]
)
PmsAcoountMoveInfo = self.env.datamodels["pms.account.move.info"]
invoices = []
for invoice in partnerInvoices:
invoices.append(
PmsAcoountMoveInfo(
id=invoice.id,
name=invoice.name,
amount=round(invoice.amount_total, 2),
date=invoice.date.strftime("%d/%m/%Y"),
state=invoice.state,
paymentState=invoice.payment_state
if invoice.payment_state
else None,
)
)
return invoices
@restapi.method(
[
(