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_signup",
|
||||||
"auth_jwt_login",
|
"auth_jwt_login",
|
||||||
"base_location",
|
"base_location",
|
||||||
|
"l10n_es_aeat",
|
||||||
],
|
],
|
||||||
"external_dependencies": {
|
"external_dependencies": {
|
||||||
"python": ["jwt", "simplejson", "marshmallow", "jose"],
|
"python": ["jwt", "simplejson", "marshmallow", "jose"],
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ class PmsPaymentInfo(Datamodel):
|
|||||||
journalId = fields.Integer(required=False, allow_none=True)
|
journalId = fields.Integer(required=False, allow_none=True)
|
||||||
date = fields.String(required=False, allow_none=True)
|
date = fields.String(required=False, allow_none=True)
|
||||||
paymentType = 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):
|
class PmsAccountPaymentInfo(Datamodel):
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ class PmsPartnerSearchParam(Datamodel):
|
|||||||
_name = "pms.partner.search.param"
|
_name = "pms.partner.search.param"
|
||||||
_inherit = "pms.rest.metadata"
|
_inherit = "pms.rest.metadata"
|
||||||
id = fields.Integer(required=False, allow_none=True)
|
id = fields.Integer(required=False, allow_none=True)
|
||||||
|
vatNumber = fields.String(required=False, allow_none=True)
|
||||||
documentType = fields.Integer(required=False, allow_none=True)
|
documentType = fields.Integer(required=False, allow_none=True)
|
||||||
documentNumber = fields.String(required=False, allow_none=True)
|
documentNumber = fields.String(required=False, allow_none=True)
|
||||||
name = 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",
|
auth="jwt_api_pms",
|
||||||
)
|
)
|
||||||
def get_method_payments(self, account_journal_search_param):
|
def get_method_payments(self, account_journal_search_param):
|
||||||
domain = []
|
pms_property = self.env["pms.property"].search(
|
||||||
if account_journal_search_param.pmsPropertyId:
|
[("id", "=", account_journal_search_param.pmsPropertyId)]
|
||||||
domain.extend(
|
)
|
||||||
[
|
|
||||||
"|",
|
|
||||||
(
|
|
||||||
"pms_property_ids",
|
|
||||||
"in",
|
|
||||||
account_journal_search_param.pmsPropertyId,
|
|
||||||
),
|
|
||||||
("pms_property_ids", "=", False),
|
|
||||||
]
|
|
||||||
)
|
|
||||||
PmsAccountJournalInfo = self.env.datamodels["pms.account.journal.info"]
|
PmsAccountJournalInfo = self.env.datamodels["pms.account.journal.info"]
|
||||||
result_account_journals = []
|
result_account_journals = []
|
||||||
for account_journal in self.env["account.journal"].search(
|
if not pms_property:
|
||||||
domain,
|
pass
|
||||||
):
|
else:
|
||||||
result_account_journals.append(
|
for method in pms_property._get_payment_methods(automatic_included=True):
|
||||||
PmsAccountJournalInfo(
|
payment_method = self.env["account.journal"].search(
|
||||||
id=account_journal.id,
|
[("id", "=", method.id)]
|
||||||
name=account_journal.name,
|
|
||||||
allowedPayments=account_journal.allowed_pms_payments,
|
|
||||||
)
|
)
|
||||||
)
|
result_account_journals.append(
|
||||||
|
PmsAccountJournalInfo(
|
||||||
|
id=payment_method.id,
|
||||||
|
name=payment_method.name,
|
||||||
|
allowedPayments=payment_method.allowed_pms_payments,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
return result_account_journals
|
return result_account_journals
|
||||||
|
|||||||
@@ -1,9 +1,10 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
|
from odoo.odoo.osv import expression
|
||||||
|
|
||||||
from odoo.addons.base_rest import restapi
|
from odoo.addons.base_rest import restapi
|
||||||
from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
from odoo.addons.base_rest_datamodel.restapi import Datamodel
|
||||||
from odoo.addons.component.core import Component
|
from odoo.addons.component.core import Component
|
||||||
from odoo.odoo.osv import expression
|
|
||||||
|
|
||||||
|
|
||||||
class PmsPartnerService(Component):
|
class PmsPartnerService(Component):
|
||||||
@@ -32,8 +33,11 @@ class PmsPartnerService(Component):
|
|||||||
if pms_partner_search_params.name:
|
if pms_partner_search_params.name:
|
||||||
domain_fields.append(("name", "ilike", pms_partner_search_params.name))
|
domain_fields.append(("name", "ilike", pms_partner_search_params.name))
|
||||||
if pms_partner_search_params.housed:
|
if pms_partner_search_params.housed:
|
||||||
partners_housed = self.env["pms.checkin.partner"].search([("state", "=", "onboard")]).mapped(
|
partners_housed = (
|
||||||
"partner_id")
|
self.env["pms.checkin.partner"]
|
||||||
|
.search([("state", "=", "onboard")])
|
||||||
|
.mapped("partner_id")
|
||||||
|
)
|
||||||
domain_fields.append(("id", "in", partners_housed.ids))
|
domain_fields.append(("id", "in", partners_housed.ids))
|
||||||
domain_filter = list()
|
domain_filter = list()
|
||||||
if pms_partner_search_params.filter:
|
if pms_partner_search_params.filter:
|
||||||
@@ -56,7 +60,7 @@ class PmsPartnerService(Component):
|
|||||||
domain,
|
domain,
|
||||||
order=pms_partner_search_params.orderBy,
|
order=pms_partner_search_params.orderBy,
|
||||||
limit=pms_partner_search_params.limit,
|
limit=pms_partner_search_params.limit,
|
||||||
offset=pms_partner_search_params.offset
|
offset=pms_partner_search_params.offset,
|
||||||
):
|
):
|
||||||
checkouts = (
|
checkouts = (
|
||||||
self.env["pms.checkin.partner"]
|
self.env["pms.checkin.partner"]
|
||||||
@@ -141,16 +145,11 @@ class PmsPartnerService(Component):
|
|||||||
invoiceToAgency=partner.invoice_to_agency
|
invoiceToAgency=partner.invoice_to_agency
|
||||||
if partner.invoice_to_agency
|
if partner.invoice_to_agency
|
||||||
else None,
|
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 [],
|
tagIds=partner.category_id.ids if partner.category_id else [],
|
||||||
lastStay=max(checkouts).strftime("%d/%m/%Y") if checkouts else "",
|
lastStay=max(checkouts).strftime("%d/%m/%Y") if checkouts else "",
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return PmsPartnerResults(
|
return PmsPartnerResults(partners=result_partners, total=total_partners)
|
||||||
partners=result_partners,
|
|
||||||
total=total_partners
|
|
||||||
)
|
|
||||||
|
|
||||||
@restapi.method(
|
@restapi.method(
|
||||||
[
|
[
|
||||||
@@ -210,7 +209,7 @@ class PmsPartnerService(Component):
|
|||||||
amount=round(payment.amount, 2),
|
amount=round(payment.amount, 2),
|
||||||
journalId=payment.journal_id.id,
|
journalId=payment.journal_id.id,
|
||||||
date=payment.date.strftime("%d/%m/%Y"),
|
date=payment.date.strftime("%d/%m/%Y"),
|
||||||
memo=payment.ref,
|
reference=payment.ref,
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return payments
|
return payments
|
||||||
@@ -384,7 +383,7 @@ class PmsPartnerService(Component):
|
|||||||
("aeat_identification", "=", pms_partner_search_params.vatNumber),
|
("aeat_identification", "=", pms_partner_search_params.vatNumber),
|
||||||
]
|
]
|
||||||
partner = self.env["res.partner"].search(domain)
|
partner = self.env["res.partner"].search(domain)
|
||||||
if not partner:
|
if not partner or len(partner) > 1:
|
||||||
return PmsPartnerInfo()
|
return PmsPartnerInfo()
|
||||||
else:
|
else:
|
||||||
return PmsPartnerInfo(
|
return PmsPartnerInfo(
|
||||||
|
|||||||
Reference in New Issue
Block a user