From 2f28920aca7914dbfe7110fa348855a6956b04b3 Mon Sep 17 00:00:00 2001 From: braisab Date: Fri, 4 Nov 2022 18:42:20 +0100 Subject: [PATCH] [IMP]pms_api_rest: added datamodel and service header to mail invoice --- pms_api_rest/datamodels/__init__.py | 1 + pms_api_rest/datamodels/pms_mail.py | 11 +++++++++++ pms_api_rest/services/pms_folio_service.py | 4 ---- pms_api_rest/services/pms_invoice_service.py | 15 +++++++++++++++ 4 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 pms_api_rest/datamodels/pms_mail.py diff --git a/pms_api_rest/datamodels/__init__.py b/pms_api_rest/datamodels/__init__.py index 9128d5a9d..186d4d7bf 100644 --- a/pms_api_rest/datamodels/__init__.py +++ b/pms_api_rest/datamodels/__init__.py @@ -54,3 +54,4 @@ from . import pms_room_closure_reason from . import pms_report from . import pms_folio_sale_line from . import pms_invoice_line +from . import pms_mail diff --git a/pms_api_rest/datamodels/pms_mail.py b/pms_api_rest/datamodels/pms_mail.py new file mode 100644 index 000000000..211335834 --- /dev/null +++ b/pms_api_rest/datamodels/pms_mail.py @@ -0,0 +1,11 @@ +from marshmallow import fields + +from odoo.addons.datamodel.core import Datamodel + + +class PmsMailInfo(Datamodel): + _name = "pms.mail.info" + subject = fields.String(required=False, allow_none=True) + bodyMail = fields.String(required=False, allow_none=True) + partnerIds = fields.List(fields.Integer(), required=False) + emailAddresses = fields.List(fields.String(), required=False) diff --git a/pms_api_rest/services/pms_folio_service.py b/pms_api_rest/services/pms_folio_service.py index 2c5dc963d..1dc409521 100644 --- a/pms_api_rest/services/pms_folio_service.py +++ b/pms_api_rest/services/pms_folio_service.py @@ -573,9 +573,6 @@ class PmsFolioService(Component): # - date format is in invoice_info but dont save # - invoice comment is in invoice_info but dont save - date_invoice = fields.Date.from_string(invoice_info.date) - if not date_invoice: - raise MissingError(_("Date is required")) lines_to_invoice_dict = dict() for item in invoice_info.saleLines: if item.qtyToInvoice: @@ -586,7 +583,6 @@ class PmsFolioService(Component): ) folios_to_invoice = sale_lines_to_invoice.folio_id invoices = folios_to_invoice._create_invoices( - date=date_invoice, lines_to_invoice=lines_to_invoice_dict, partner_invoice_id=invoice_info.partnerId, ) diff --git a/pms_api_rest/services/pms_invoice_service.py b/pms_api_rest/services/pms_invoice_service.py index ece8c30e8..4412f313d 100644 --- a/pms_api_rest/services/pms_invoice_service.py +++ b/pms_api_rest/services/pms_invoice_service.py @@ -116,3 +116,18 @@ class PmsInvoiceService(Component): if previus_state == "posted": invoice.action_post() return invoice + + @restapi.method( + [ + ( + [ + "//send-mail", + ], + "POST", + ) + ], + input_param=Datamodel("pms.mail.info"), + auth="jwt_api_pms", + ) + def send_invoice_mail(self, invoice_id, pms_mail_info): + return True