diff --git a/pms_api_rest/datamodels/pms_invoice.py b/pms_api_rest/datamodels/pms_invoice.py index b0a65b770..db7de7b0a 100644 --- a/pms_api_rest/datamodels/pms_invoice.py +++ b/pms_api_rest/datamodels/pms_invoice.py @@ -20,3 +20,7 @@ class PmsAccountInvoiceInfo(Datamodel): narration = fields.String(required=False, allow_none=True) portalUrl = fields.String(required=False, allow_none=True) moveType = fields.String(required=False, allow_none=True) + isReversed = fields.Boolean(required=False, allow_none=True) + isDownPaymentInvoice = fields.Boolean(required=False, allow_none=True) + isSimplifiedInvoice = fields.Boolean(required=False, allow_none=True) + reversedEntryId = fields.Integer(required=False, allow_none=True) diff --git a/pms_api_rest/datamodels/pms_transaction.py b/pms_api_rest/datamodels/pms_transaction.py index 3d9da640d..ee5f356a0 100644 --- a/pms_api_rest/datamodels/pms_transaction.py +++ b/pms_api_rest/datamodels/pms_transaction.py @@ -13,7 +13,6 @@ class PmsTransactionSearchParam(Datamodel): dateEnd = fields.String(required=False, allow_none=True) transactionMethodId = fields.Integer(required=False, allow_none=True) transactionType = fields.String(required=False, allow_none=True) - # REVIEW: Fields to avoid?: class PmsTransactionsResults(Datamodel): @@ -38,6 +37,7 @@ class PmsTransactionInfo(Datamodel): pmsPropertyId = fields.Integer(required=False, allow_none=True) createUid = fields.Integer(required=False, allow_none=True) transactionType = fields.String(required=False, allow_none=True) + isReconcilied = fields.Boolean(required=False, allow_none=True) + downPaymentInvoiceId = fields.Integer(required=False, allow_none=True) # REVIEW: Fields to avoid?: partnerName = fields.String(required=False, allow_none=True) - isReconcilied = fields.Boolean(required=False, allow_none=True) diff --git a/pms_api_rest/services/pms_folio_service.py b/pms_api_rest/services/pms_folio_service.py index f533c9779..72e7fad5c 100644 --- a/pms_api_rest/services/pms_folio_service.py +++ b/pms_api_rest/services/pms_folio_service.py @@ -214,9 +214,9 @@ class PmsFolioService(Component): if payment.partner_id else None, reference=payment.ref if payment.ref else None, - isReconcilied=( - payment.reconciled_statements_count > 0 - or payment.reconciled_invoices_count > 0 + isReconcilied=(payment.reconciled_statements_count > 0), + downPaymentInvoiceId=payment.reconciled_invoice_ids.filtered( + lambda inv: inv._is_downpayment() ), ) ) @@ -606,6 +606,9 @@ class PmsFolioService(Component): moveLines=move_lines if move_lines else None, portalUrl=portal_url, moveType=move.move_type, + isReverse=move.payment_state == "reversed", + isDownPaymentInvoice=move._is_downpayment(), + isSimpleInvoice=move.journal_id.is_simplified_invoice, ) ) return invoices diff --git a/pms_api_rest/services/pms_partner_service.py b/pms_api_rest/services/pms_partner_service.py index c065c5a02..a43241df9 100644 --- a/pms_api_rest/services/pms_partner_service.py +++ b/pms_api_rest/services/pms_partner_service.py @@ -224,14 +224,29 @@ class PmsPartnerService(Component): PmsTransactiontInfo = self.env.datamodels["pms.transaction.info"] payments = [] for payment in partnerPayments: + if payment.is_internal_transfer: + destination_journal_id = ( + payment.pms_api_counterpart_payment_id.journal_id.id + ) payments.append( PmsTransactiontInfo( id=payment.id, - amount=round(payment.amount, 2), - journalId=payment.journal_id.id, - date=payment.date.strftime("%d/%m/%Y"), - reference=payment.ref, - transactionType=payment.pms_api_transaction_type, + name=payment.name if payment.name else None, + amount=payment.amount, + journalId=payment.journal_id.id if payment.journal_id else None, + destinationJournalId=destination_journal_id or None, + date=datetime.combine( + payment.date, datetime.min.time() + ).isoformat(), + partnerId=payment.partner_id.id if payment.partner_id else None, + partnerName=payment.partner_id.name if payment.partner_id else None, + reference=payment.ref if payment.ref else None, + createUid=payment.create_uid.id if payment.create_uid else None, + transactionType=payment.pms_api_transaction_type or None, + isReconcilied=(payment.reconciled_statements_count > 0), + downPaymentInvoiceId=payment.reconciled_invoice_ids.filtered( + lambda inv: inv._is_downpayment() + ), ) ) return payments diff --git a/pms_api_rest/services/pms_transaction_service.py b/pms_api_rest/services/pms_transaction_service.py index 6b872816f..3a4ac1e11 100644 --- a/pms_api_rest/services/pms_transaction_service.py +++ b/pms_api_rest/services/pms_transaction_service.py @@ -179,9 +179,9 @@ class PmsTransactionService(Component): if transaction.create_uid else None, transactionType=transaction.pms_api_transaction_type or None, - isReconcilied=( - transaction.reconciled_statements_count > 0 - or transaction.reconciled_invoices_count > 0 + isReconcilied=(transaction.reconciled_statements_count > 0), + downPaymentInvoiceId=transaction.reconciled_invoice_ids.filtered( + lambda inv: inv._is_downpayment() ), ) ) @@ -223,9 +223,9 @@ class PmsTransactionService(Component): reference=transaction.ref if transaction.ref else None, createUid=transaction.create_uid.id if transaction.create_uid else None, transactionType=transaction.pms_api_transaction_type or None, - isReconcilied=( - transaction.reconciled_statements_count > 0 - or transaction.reconciled_invoices_count > 0 + isReconcilied=(transaction.reconciled_statements_count > 0), + downPaymentInvoiceId=transaction.reconciled_invoice_ids.filtered( + lambda inv: inv._is_downpayment() ), )