diff --git a/pms_api_rest/__manifest__.py b/pms_api_rest/__manifest__.py index 0664236b5..c55bf7683 100644 --- a/pms_api_rest/__manifest__.py +++ b/pms_api_rest/__manifest__.py @@ -13,6 +13,7 @@ "auth_signup", "auth_jwt_login", "base_location", + "l10n_es_aeat", ], "external_dependencies": { "python": ["jwt", "simplejson", "marshmallow", "jose"], diff --git a/pms_api_rest/datamodels/pms_account_payment.py b/pms_api_rest/datamodels/pms_account_payment.py index 5723e3d8c..45025b669 100644 --- a/pms_api_rest/datamodels/pms_account_payment.py +++ b/pms_api_rest/datamodels/pms_account_payment.py @@ -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): diff --git a/pms_api_rest/datamodels/pms_partner.py b/pms_api_rest/datamodels/pms_partner.py index e1765fb66..ae8078c21 100644 --- a/pms_api_rest/datamodels/pms_partner.py +++ b/pms_api_rest/datamodels/pms_partner.py @@ -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) diff --git a/pms_api_rest/datamodels/pms_payment.py b/pms_api_rest/datamodels/pms_payment.py deleted file mode 100644 index ade3dcbcc..000000000 --- a/pms_api_rest/datamodels/pms_payment.py +++ /dev/null @@ -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) diff --git a/pms_api_rest/services/pms_account_journal_service.py b/pms_api_rest/services/pms_account_journal_service.py index d39215bf6..69d211d29 100644 --- a/pms_api_rest/services/pms_account_journal_service.py +++ b/pms_api_rest/services/pms_account_journal_service.py @@ -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 diff --git a/pms_api_rest/services/pms_partner_service.py b/pms_api_rest/services/pms_partner_service.py index 2771a19af..842b3c025 100644 --- a/pms_api_rest/services/pms_partner_service.py +++ b/pms_api_rest/services/pms_partner_service.py @@ -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(