From 6130ba22312b7578f622e4a0de7a12bbcc4b3eb5 Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Mon, 24 May 2021 17:15:12 -0300 Subject: [PATCH 1/7] [NEW] DF-e send email --- l10n_br_fiscal/models/res_partner.py | 5 +++++ l10n_br_fiscal/views/res_partner_view.xml | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/l10n_br_fiscal/models/res_partner.py b/l10n_br_fiscal/models/res_partner.py index b173a2944573..ca52c80890b5 100644 --- a/l10n_br_fiscal/models/res_partner.py +++ b/l10n_br_fiscal/models/res_partner.py @@ -101,6 +101,11 @@ def _default_fiscal_profile_id(self, is_company=False): string="Anonymous Consumer", ) + edoc_send_email = fields.Boolean( + string='Edoc Send', + track_visibility='onchange', + ) + def _inverse_fiscal_profile(self): for p in self: p._onchange_fiscal_profile_id() diff --git a/l10n_br_fiscal/views/res_partner_view.xml b/l10n_br_fiscal/views/res_partner_view.xml index 5171eb039d98..346e2e4e227e 100644 --- a/l10n_br_fiscal/views/res_partner_view.xml +++ b/l10n_br_fiscal/views/res_partner_view.xml @@ -4,8 +4,16 @@ l10n_br_fiscal.partner.form res.partner + 100 + + + + + + Date: Mon, 24 May 2021 17:27:54 -0300 Subject: [PATCH 2/7] [WIP] edoc send email recipients --- l10n_br_fiscal/models/document.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/l10n_br_fiscal/models/document.py b/l10n_br_fiscal/models/document.py index 7dcc0b5e6445..8f29c49bedf8 100644 --- a/l10n_br_fiscal/models/document.py +++ b/l10n_br_fiscal/models/document.py @@ -481,6 +481,10 @@ def _get_email_template(self, state): def send_email(self, state): self.ensure_one() email_template = self._get_email_template(state) + + partner_ids = self.partner_id.filtered('edoc_send_email') + partner_ids |= self.partner_id.child_ids.filtered('edoc_send_email') + if email_template: email_template.with_context( default_attachment_ids=self._get_mail_attachment() From 804e467d7bb71b2d88f31ce1feb064c02f45432f Mon Sep 17 00:00:00 2001 From: Luis Felipe Mileo Date: Tue, 15 Jun 2021 22:06:33 -0300 Subject: [PATCH 3/7] [FIX] Auto add e-doc followers --- l10n_br_fiscal/models/document.py | 25 ++++++++++------------- l10n_br_fiscal/models/res_partner.py | 4 ++-- l10n_br_fiscal/views/res_partner_view.xml | 11 ++++++---- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/l10n_br_fiscal/models/document.py b/l10n_br_fiscal/models/document.py index 8f29c49bedf8..54c99f891d7f 100644 --- a/l10n_br_fiscal/models/document.py +++ b/l10n_br_fiscal/models/document.py @@ -462,13 +462,13 @@ def exec_after_SITUACAO_EDOC_DENEGADA(self, old_state, new_state): # see https://github.com/OCA/l10n-brazil/pull/3272 pass - def _get_email_template(self, state): + def _get_email_template(self): self.ensure_one() return self.document_type_id.document_email_ids.search( [ "|", ("state_edoc", "=", False), - ("state_edoc", "=", state), + ("state_edoc", "=", self.state), ("issuer", "=", self.issuer), "|", ("document_type_id", "=", False), @@ -478,22 +478,19 @@ def _get_email_template(self, state): order="state_edoc, document_type_id", ).mapped("email_template_id") - def send_email(self, state): + def send_email(self): self.ensure_one() - email_template = self._get_email_template(state) - - partner_ids = self.partner_id.filtered('edoc_send_email') - partner_ids |= self.partner_id.child_ids.filtered('edoc_send_email') - - if email_template: - email_template.with_context( - default_attachment_ids=self._get_mail_attachment() - ).send_mail(self.id) + email_template_id = self._get_email_template() + if email_template_id: + partner_ids = self.partner_id.filtered("edoc_send_email") + partner_ids |= self.partner_id.child_ids.filtered("edoc_send_email") + self.message_subscribe(partner_ids=partner_ids.ids) + self.message_post_with_template(template_id=email_template_id.id) def _after_change_state(self, old_state, new_state): self.ensure_one() result = super()._after_change_state(old_state, new_state) - self.send_email(new_state) + self.send_email() return result @api.onchange("fiscal_operation_id") @@ -588,7 +585,7 @@ def action_send_email(self): template message loaded by default """ self.ensure_one() - template = self._get_email_template(self.state) + template = self._get_email_template() compose_form = self.env.ref("mail.email_compose_message_wizard_form", False) lang = self.env.context.get("lang") if template and template.lang: diff --git a/l10n_br_fiscal/models/res_partner.py b/l10n_br_fiscal/models/res_partner.py index ca52c80890b5..b9ef59f61665 100644 --- a/l10n_br_fiscal/models/res_partner.py +++ b/l10n_br_fiscal/models/res_partner.py @@ -102,8 +102,8 @@ def _default_fiscal_profile_id(self, is_company=False): ) edoc_send_email = fields.Boolean( - string='Edoc Send', - track_visibility='onchange', + string="Edoc Send", + track_visibility="onchange", ) def _inverse_fiscal_profile(self): diff --git a/l10n_br_fiscal/views/res_partner_view.xml b/l10n_br_fiscal/views/res_partner_view.xml index 346e2e4e227e..7c8a29f6e910 100644 --- a/l10n_br_fiscal/views/res_partner_view.xml +++ b/l10n_br_fiscal/views/res_partner_view.xml @@ -8,11 +8,14 @@ - -