mirror of
https://github.com/OCA/pms.git
synced 2025-01-29 00:17:45 +02:00
[WIP] pms_api_rest: rebase
This commit is contained in:
committed by
Darío Lodeiros
parent
08bc00d7df
commit
046d26ade4
@@ -13,6 +13,7 @@
|
||||
"auth_signup",
|
||||
"auth_jwt_login",
|
||||
"base_location",
|
||||
"l10n_es_aeat",
|
||||
],
|
||||
"external_dependencies": {
|
||||
"python": ["jwt", "simplejson", "marshmallow", "jose"],
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user