From 6044500c4d55400b9de0ad2d3b5c28a458270b15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo=20Lodeiros?= Date: Tue, 17 Jan 2023 17:43:33 +0100 Subject: [PATCH] [IMP]pms_api_rest: add compose to mail service --- pms_api_rest/services/pms_folio_service.py | 40 +++++++++++++++++--- pms_api_rest/services/pms_invoice_service.py | 21 +++++++--- 2 files changed, 50 insertions(+), 11 deletions(-) diff --git a/pms_api_rest/services/pms_folio_service.py b/pms_api_rest/services/pms_folio_service.py index d5f4d1b99..3eef314c4 100644 --- a/pms_api_rest/services/pms_folio_service.py +++ b/pms_api_rest/services/pms_folio_service.py @@ -695,13 +695,41 @@ class PmsFolioService(Component): output_param=Datamodel("pms.mail.info", is_list=False), auth="jwt_api_pms", ) - def get_folio_mail(self, folio_id): - PmsMailInfo = self.env.datamodels["pms.mail.info"] - - return PmsMailInfo( - bodyMail="Oaosiaosi ", - subject="Aasdadsasd" + def get_folio_mail(self, folio_id, pms_mail_info): + folio = self.env["pms.folio"].browse(folio_id) + if pms_mail_info.mailType == "confirm": + compose_vals = { + "template_id": folio.pms_property_id.property_confirmed_template.id, + "model": "pms.folio", + "res_ids": folio.id, + } + elif pms_mail_info.mailType == "done": + compose_vals = { + "template_id": folio.pms_property_id.property_exit_template.id, + "model": "pms.folio", + "res_ids": folio.id, + } + elif pms_mail_info.mailType == "cancel": + # TODO: only send first cancel reservation, not all + # the template is not ready for multiple reservations + compose_vals = { + "template_id": folio.pms_property_id.property_canceled_template.id, + "model": "pms.reservation", + "res_ids": folio.reservation_ids.filtered( + lambda r: r.state == "cancel" + )[0].id, + } + values = self.env["mail.compose.message"].generate_email_for_composer( + template_id=compose_vals["template_id"], + res_ids=compose_vals["res_ids"], + fields=["subject", "body_html"], ) + PmsMailInfo = self.env.datamodels["pms.mail.info"] + return PmsMailInfo( + bodyMail=values["body"], + subject=values["subject"], + ) + @restapi.method( [ ( diff --git a/pms_api_rest/services/pms_invoice_service.py b/pms_api_rest/services/pms_invoice_service.py index 964b4cd1b..4b83427ee 100644 --- a/pms_api_rest/services/pms_invoice_service.py +++ b/pms_api_rest/services/pms_invoice_service.py @@ -203,12 +203,23 @@ class PmsInvoiceService(Component): auth="jwt_api_pms", ) def get_invoice_mail(self, invoice_id): - PmsMailInfo = self.env.datamodels["pms.mail.info"] - - return PmsMailInfo( - bodyMail="Jaskdjh kaksjdh", - subject="Aasdadsasd", + invoice = self.env["account.move"].browse(invoice_id) + compose_vals = { + "template_id": self.env.ref("account.email_template_edi_invoice").id, + "model": "account.move", + "res_ids": invoice.id, + } + values = self.env["mail.compose.message"].generate_email_for_composer( + template_id=compose_vals["template_id"], + res_ids=compose_vals["res_ids"], + fields=["subject", "body_html"], ) + PmsMailInfo = self.env.datamodels["pms.mail.info"] + return PmsMailInfo( + bodyMail=values["body"], + subject=values["subject"], + ) + @restapi.method( [ (