[WIP] pms_api_rest: rebase

This commit is contained in:
Sara Lago
2022-10-05 18:25:25 +02:00
committed by Darío Lodeiros
parent 08bc00d7df
commit 046d26ade4
6 changed files with 31 additions and 46 deletions

View File

@@ -13,6 +13,7 @@
"auth_signup",
"auth_jwt_login",
"base_location",
"l10n_es_aeat",
],
"external_dependencies": {
"python": ["jwt", "simplejson", "marshmallow", "jose"],

View File

@@ -10,6 +10,7 @@ class PmsPaymentInfo(Datamodel):
journalId = fields.Integer(required=False, allow_none=True)
date = fields.String(required=False, allow_none=True)
paymentType = fields.String(required=False, allow_none=True)
reference = fields.String(required=False, allow_none=True)
class PmsAccountPaymentInfo(Datamodel):

View File

@@ -8,6 +8,7 @@ class PmsPartnerSearchParam(Datamodel):
_name = "pms.partner.search.param"
_inherit = "pms.rest.metadata"
id = fields.Integer(required=False, allow_none=True)
vatNumber = fields.String(required=False, allow_none=True)
documentType = fields.Integer(required=False, allow_none=True)
documentNumber = fields.String(required=False, allow_none=True)
name = fields.String(required=False, allow_none=True)

View File

@@ -1,12 +0,0 @@
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

@@ -23,29 +23,24 @@ class PmsAccountJournalService(Component):
auth="jwt_api_pms",
)
def get_method_payments(self, account_journal_search_param):
domain = []
if account_journal_search_param.pmsPropertyId:
domain.extend(
[
"|",
(
"pms_property_ids",
"in",
account_journal_search_param.pmsPropertyId,
),
("pms_property_ids", "=", False),
]
)
pms_property = self.env["pms.property"].search(
[("id", "=", account_journal_search_param.pmsPropertyId)]
)
PmsAccountJournalInfo = self.env.datamodels["pms.account.journal.info"]
result_account_journals = []
for account_journal in self.env["account.journal"].search(
domain,
):
result_account_journals.append(
PmsAccountJournalInfo(
id=account_journal.id,
name=account_journal.name,
allowedPayments=account_journal.allowed_pms_payments,
if not pms_property:
pass
else:
for method in pms_property._get_payment_methods(automatic_included=True):
payment_method = self.env["account.journal"].search(
[("id", "=", method.id)]
)
)
result_account_journals.append(
PmsAccountJournalInfo(
id=payment_method.id,
name=payment_method.name,
allowedPayments=payment_method.allowed_pms_payments,
)
)
return result_account_journals

View File

@@ -1,9 +1,10 @@
from datetime import datetime
from odoo.odoo.osv import expression
from odoo.addons.base_rest import restapi
from odoo.addons.base_rest_datamodel.restapi import Datamodel
from odoo.addons.component.core import Component
from odoo.odoo.osv import expression
class PmsPartnerService(Component):
@@ -32,8 +33,11 @@ class PmsPartnerService(Component):
if pms_partner_search_params.name:
domain_fields.append(("name", "ilike", pms_partner_search_params.name))
if pms_partner_search_params.housed:
partners_housed = self.env["pms.checkin.partner"].search([("state", "=", "onboard")]).mapped(
"partner_id")
partners_housed = (
self.env["pms.checkin.partner"]
.search([("state", "=", "onboard")])
.mapped("partner_id")
)
domain_fields.append(("id", "in", partners_housed.ids))
domain_filter = list()
if pms_partner_search_params.filter:
@@ -56,7 +60,7 @@ class PmsPartnerService(Component):
domain,
order=pms_partner_search_params.orderBy,
limit=pms_partner_search_params.limit,
offset=pms_partner_search_params.offset
offset=pms_partner_search_params.offset,
):
checkouts = (
self.env["pms.checkin.partner"]
@@ -141,16 +145,11 @@ class PmsPartnerService(Component):
invoiceToAgency=partner.invoice_to_agency
if partner.invoice_to_agency
else None,
agencyStateId=partner.state_id.id if partner.state_id else None,
agencyCity=partner.city if partner.city else None,
tagIds=partner.category_id.ids if partner.category_id else [],
lastStay=max(checkouts).strftime("%d/%m/%Y") if checkouts else "",
)
)
return PmsPartnerResults(
partners=result_partners,
total=total_partners
)
return PmsPartnerResults(partners=result_partners, total=total_partners)
@restapi.method(
[
@@ -210,7 +209,7 @@ class PmsPartnerService(Component):
amount=round(payment.amount, 2),
journalId=payment.journal_id.id,
date=payment.date.strftime("%d/%m/%Y"),
memo=payment.ref,
reference=payment.ref,
)
)
return payments
@@ -384,7 +383,7 @@ class PmsPartnerService(Component):
("aeat_identification", "=", pms_partner_search_params.vatNumber),
]
partner = self.env["res.partner"].search(domain)
if not partner:
if not partner or len(partner) > 1:
return PmsPartnerInfo()
else:
return PmsPartnerInfo(