Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[14.0][REF] l10n_br_fiscal: extract l10n_br_fiscal_notification #3290

Draft
wants to merge 1 commit into
base: 14.0
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions l10n_br_fiscal/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
"security/ir.model.access.csv",
# Data
# Some data is being loaded via post_init_hook in hook file
"data/l10n_br_fiscal_email_template.xml",
"data/l10n_br_fiscal_data.xml",
"data/uom_data.xml",
"data/uom_alternative_data.xml",
Expand Down Expand Up @@ -62,7 +61,6 @@
"views/product_genre_view.xml",
"views/document_type_view.xml",
"views/document_serie_view.xml",
"views/document_email_view.xml",
"views/simplified_tax_view.xml",
"views/simplified_tax_range_view.xml",
"views/operation_view.xml",
Expand Down
1 change: 0 additions & 1 deletion l10n_br_fiscal/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,6 @@ def post_init_hook(cr, registry):
"demo/fiscal_document_nfse_demo.xml",
"demo/fiscal_operation_demo.xml",
"demo/subsequent_operation_demo.xml",
"demo/l10n_br_fiscal_document_email.xml",
"demo/res_users_demo.xml",
"demo/icms_tax_definition_demo.xml",
]
Expand Down
73 changes: 0 additions & 73 deletions l10n_br_fiscal/models/document.py
Original file line number Diff line number Diff line change
Expand Up @@ -404,36 +404,6 @@ def action_create_return(self):

return action

def _get_email_template(self, state):
self.ensure_one()
return self.document_type_id.document_email_ids.search(
[
"|",
("state_edoc", "=", False),
("state_edoc", "=", state),
("issuer", "=", self.issuer),
"|",
("document_type_id", "=", False),
("document_type_id", "=", self.document_type_id.id),
],
limit=1,
order="state_edoc, document_type_id",
).mapped("email_template_id")

def send_email(self, state):
self.ensure_one()
email_template = self._get_email_template(state)
if email_template:
email_template.with_context(
default_attachment_ids=self._get_mail_attachment()
).send_mail(self.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)
return result

@api.onchange("fiscal_operation_id")
def _onchange_fiscal_operation_id(self):
result = super()._onchange_fiscal_operation_id()
Expand Down Expand Up @@ -510,46 +480,3 @@ def cancel_edoc(self):
"associated documents have already been authorized."
)
raise UserWarning(message)

def _get_mail_attachment(self):
self.ensure_one()
attachment_ids = []
if self.state_edoc == SITUACAO_EDOC_AUTORIZADA:
if self.file_report_id:
attachment_ids.append(self.file_report_id.id)
if self.authorization_file_id:
attachment_ids.append(self.authorization_file_id.id)
return attachment_ids

def action_send_email(self):
"""Open a window to compose an email, with the fiscal document_type
template message loaded by default
"""
self.ensure_one()
template = self._get_email_template(self.state)
compose_form = self.env.ref("mail.email_compose_message_wizard_form", False)
lang = self.env.context.get("lang")
if template and template.lang:
lang = template._render_template(template.lang, self._name, [self.id])
self = self.with_context(lang=lang)
ctx = dict(
default_model="l10n_br_fiscal.document",
default_res_id=self.id,
default_use_template=bool(template),
default_attachment_ids=self._get_mail_attachment(),
default_template_id=template and template.id or False,
default_composition_mode="comment",
model_description=self.document_type_id.name or self._name,
force_email=True,
)
return {
"name": _("Send Fiscal Document Email Notification"),
"type": "ir.actions.act_window",
"view_type": "form",
"view_mode": "form",
"res_model": "mail.compose.message",
"views": [(compose_form.id, "form")],
"view_id": compose_form.id,
"target": "new",
"context": ctx,
}
4 changes: 2 additions & 2 deletions l10n_br_fiscal/views/document_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -171,13 +171,13 @@
groups="l10n_br_fiscal.group_user"
attrs="{'invisible': [('state_edoc', '!=', 'autorizada')]}"
/>
<button
<!--button
name="action_send_email"
type="object"
string="Send Email"
groups="l10n_br_fiscal.group_user"
attrs="{'invisible': [('state_edoc', 'not in', ('autorizada', 'cancelada', 'denegada'))]}"
/>
/-->
<field
name="state_edoc"
widget="statusbar"
Expand Down
19 changes: 1 addition & 18 deletions l10n_br_fiscal/views/l10n_br_fiscal_action.xml
Original file line number Diff line number Diff line change
Expand Up @@ -372,24 +372,7 @@
</field>
</record>

<!-- Fiscal Document Email -->
<record id="document_email_action" model="ir.actions.act_window">
<field name="name">Fiscal Document Email</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">l10n_br_fiscal.document.email</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="document_email_tree" />
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Add a new Fiscal Document Email Definition
</p><p>
All Document Email Definitions supported by the Brazilian
Fiscal module for Odoo.
</p>
</field>
</record>

<!-- Simplefied Tax -->
<!-- Simplified Tax -->
<record id="simplified_tax_action" model="ir.actions.act_window">
<field name="name">Simplified Tax</field>
<field name="type">ir.actions.act_window</field>
Expand Down
9 changes: 0 additions & 9 deletions l10n_br_fiscal/views/l10n_br_fiscal_menu.xml
Original file line number Diff line number Diff line change
Expand Up @@ -570,15 +570,6 @@
sequence="20"
/>

<!-- Fiscal Document Email -->
<menuitem
id="document_email_menu"
action="document_email_action"
groups="l10n_br_fiscal.group_manager"
parent="others_config_menu"
sequence="30"
/>

<!-- Comment -->
<menuitem
id="comment_menu"
Expand Down
1 change: 1 addition & 0 deletions l10n_br_fiscal_notification/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import models
28 changes: 28 additions & 0 deletions l10n_br_fiscal_notification/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

{
"name": "Fiscal Document Notifications",
"summary": "Define fiscal document notifications",
"category": "Localisation",
"license": "AGPL-3",
"author": "KMEE, Odoo Community Association (OCA)",
"maintainers": ["mileo"],
"website": "https://github.com/OCA/l10n-brazil",
"development_status": "Production/Stable",
"version": "14.0.1.0.0",
"depends": [
"l10n_br_fiscal",
],
"data": [
# Data
"data/l10n_br_fiscal_email_template.xml",
# Views
"views/document_email_view.xml",
# Actions
"views/l10n_br_fiscal_action.xml",
# Menus
"views/l10n_br_fiscal_menu.xml",
],
"demo": ["demo/l10n_br_fiscal_document_email.xml"],
"installable": True,
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<field name="issuer">company</field>
<field
name="email_template_id"
ref="l10n_br_fiscal.fiscal_document_change_state_template"
ref="l10n_br_fiscal_notification.fiscal_document_change_state_template"
/>
<field name="company_id" ref="l10n_br_base.empresa_lucro_presumido" />
</record>
Expand All @@ -22,7 +22,7 @@
<field name="issuer">company</field>
<field
name="email_template_id"
ref="l10n_br_fiscal.fiscal_document_change_state_template_nfse"
ref="l10n_br_fiscal_notification.fiscal_document_change_state_template_nfse"
/>
<field name="company_id" ref="l10n_br_base.empresa_lucro_presumido" />
</record>
Expand All @@ -34,7 +34,7 @@
<field name="issuer">company</field>
<field
name="email_template_id"
ref="l10n_br_fiscal.fiscal_document_change_state_template"
ref="l10n_br_fiscal_notification.fiscal_document_change_state_template"
/>
<field name="company_id" ref="l10n_br_base.empresa_simples_nacional" />
</record>
Expand All @@ -47,7 +47,7 @@
<field name="issuer">company</field>
<field
name="email_template_id"
ref="l10n_br_fiscal.fiscal_document_change_state_template_nfse"
ref="l10n_br_fiscal_notification.fiscal_document_change_state_template_nfse"
/>
<field name="company_id" ref="l10n_br_base.empresa_simples_nacional" />
</record>
Expand Down
1 change: 1 addition & 0 deletions l10n_br_fiscal_notification/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import document
83 changes: 83 additions & 0 deletions l10n_br_fiscal_notification/models/document.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
# Copyright (C) 2019 KMEE
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

from odoo import _, models

from odoo.addons.l10n_br_fiscal.constants.fiscal import SITUACAO_EDOC_AUTORIZADA


class Document(models.Model):
_inherit = "l10n_br_fiscal.document"

def _get_email_template(self, state):
self.ensure_one()
return self.document_type_id.document_email_ids.search(
[
"|",
("state_edoc", "=", False),
("state_edoc", "=", state),
("issuer", "=", self.issuer),
"|",
("document_type_id", "=", False),
("document_type_id", "=", self.document_type_id.id),
],
limit=1,
order="state_edoc, document_type_id",
).mapped("email_template_id")

def send_email(self, state):
self.ensure_one()
email_template = self._get_email_template(state)
if email_template:
email_template.with_context(
default_attachment_ids=self._get_mail_attachment()
).send_mail(self.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)
return result

def _get_mail_attachment(self):
self.ensure_one()
attachment_ids = []
if self.state_edoc == SITUACAO_EDOC_AUTORIZADA:
if self.file_report_id:
attachment_ids.append(self.file_report_id.id)
if self.authorization_file_id:
attachment_ids.append(self.authorization_file_id.id)
return attachment_ids

def action_send_email(self):
"""Open a window to compose an email, with the fiscal document_type
template message loaded by default
"""
self.ensure_one()
template = self._get_email_template(self.state)
compose_form = self.env.ref("mail.email_compose_message_wizard_form", False)
lang = self.env.context.get("lang")

Check warning on line 59 in l10n_br_fiscal_notification/models/document.py

View check run for this annotation

Codecov / codecov/patch

l10n_br_fiscal_notification/models/document.py#L56-L59

Added lines #L56 - L59 were not covered by tests
if template and template.lang:
lang = template._render_template(template.lang, self._name, [self.id])
self = self.with_context(lang=lang)
ctx = dict(

Check warning on line 63 in l10n_br_fiscal_notification/models/document.py

View check run for this annotation

Codecov / codecov/patch

l10n_br_fiscal_notification/models/document.py#L61-L63

Added lines #L61 - L63 were not covered by tests
default_model="l10n_br_fiscal.document",
default_res_id=self.id,
default_use_template=bool(template),
default_attachment_ids=self._get_mail_attachment(),
default_template_id=template and template.id or False,
default_composition_mode="comment",
model_description=self.document_type_id.name or self._name,
force_email=True,
)
return {

Check warning on line 73 in l10n_br_fiscal_notification/models/document.py

View check run for this annotation

Codecov / codecov/patch

l10n_br_fiscal_notification/models/document.py#L73

Added line #L73 was not covered by tests
"name": _("Send Fiscal Document Email Notification"),
"type": "ir.actions.act_window",
"view_type": "form",
"view_mode": "form",
"res_model": "mail.compose.message",
"views": [(compose_form.id, "form")],
"view_id": compose_form.id,
"target": "new",
"context": ctx,
}
21 changes: 21 additions & 0 deletions l10n_br_fiscal_notification/views/l10n_br_fiscal_action.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>

<!-- Fiscal Document Email -->
<record id="document_email_action" model="ir.actions.act_window">
<field name="name">Fiscal Document Email</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">l10n_br_fiscal.document.email</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="document_email_tree" />
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Add a new Fiscal Document Email Definition
</p><p>
All Document Email Definitions supported by the Brazilian
Fiscal module for Odoo.
</p>
</field>
</record>

</odoo>
13 changes: 13 additions & 0 deletions l10n_br_fiscal_notification/views/l10n_br_fiscal_menu.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>

<!-- Fiscal Document Email -->
<menuitem
id="document_email_menu"
action="document_email_action"
groups="l10n_br_fiscal.group_manager"
parent="l10n_br_fiscal.others_config_menu"
sequence="30"
/>

</odoo>
6 changes: 6 additions & 0 deletions setup/l10n_br_fiscal_notification/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
Loading