odoo-addon-l10n-br-fiscal-edi 15.0.1.0.0.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/l10n_br_fiscal_edi/README.rst +124 -0
- odoo/addons/l10n_br_fiscal_edi/__init__.py +2 -0
- odoo/addons/l10n_br_fiscal_edi/__manifest__.py +41 -0
- odoo/addons/l10n_br_fiscal_edi/i18n/l10n_br_fiscal_edi.pot +896 -0
- odoo/addons/l10n_br_fiscal_edi/models/__init__.py +4 -0
- odoo/addons/l10n_br_fiscal_edi/models/document.py +294 -0
- odoo/addons/l10n_br_fiscal_edi/models/document_event.py +392 -0
- odoo/addons/l10n_br_fiscal_edi/models/document_workflow.py +387 -0
- odoo/addons/l10n_br_fiscal_edi/models/invalidate_number.py +53 -0
- odoo/addons/l10n_br_fiscal_edi/readme/CONTRIBUTORS.md +5 -0
- odoo/addons/l10n_br_fiscal_edi/readme/DESCRIPTION.md +6 -0
- odoo/addons/l10n_br_fiscal_edi/readme/ROADMAP.md +6 -0
- odoo/addons/l10n_br_fiscal_edi/readme/USAGE.md +7 -0
- odoo/addons/l10n_br_fiscal_edi/security/ir.model.access.csv +7 -0
- odoo/addons/l10n_br_fiscal_edi/static/description/icon.png +0 -0
- odoo/addons/l10n_br_fiscal_edi/static/description/index.html +460 -0
- odoo/addons/l10n_br_fiscal_edi/tests/__init__.py +1 -0
- odoo/addons/l10n_br_fiscal_edi/tests/test_fiscal_document_generic.py +1191 -0
- odoo/addons/l10n_br_fiscal_edi/tests/test_tax_benefit.py +74 -0
- odoo/addons/l10n_br_fiscal_edi/tests/test_workflow.py +118 -0
- odoo/addons/l10n_br_fiscal_edi/views/document_event_report.xml +15 -0
- odoo/addons/l10n_br_fiscal_edi/views/document_event_template.xml +114 -0
- odoo/addons/l10n_br_fiscal_edi/views/document_event_view.xml +68 -0
- odoo/addons/l10n_br_fiscal_edi/views/document_view.xml +77 -0
- odoo/addons/l10n_br_fiscal_edi/views/invalidate_number_view.xml +19 -0
- odoo/addons/l10n_br_fiscal_edi/views/l10n_br_fiscal_action.xml +38 -0
- odoo/addons/l10n_br_fiscal_edi/views/l10n_br_fiscal_menu.xml +23 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/__init__.py +7 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/base_wizard_mixin.py +13 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/document_cancel_wizard.py +20 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/document_cancel_wizard.xml +30 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/document_correction_wizard.py +17 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/document_correction_wizard.xml +30 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/document_import_wizard_mixin.py +132 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/document_import_wizard_mixin.xml +44 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/document_status_wizard.xml +58 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/invalidate_number_wizard.py +33 -0
- odoo/addons/l10n_br_fiscal_edi/wizards/invalidate_number_wizard.xml +30 -0
- odoo_addon_l10n_br_fiscal_edi-15.0.1.0.0.2.dist-info/METADATA +141 -0
- odoo_addon_l10n_br_fiscal_edi-15.0.1.0.0.2.dist-info/RECORD +42 -0
- odoo_addon_l10n_br_fiscal_edi-15.0.1.0.0.2.dist-info/WHEEL +5 -0
- odoo_addon_l10n_br_fiscal_edi-15.0.1.0.0.2.dist-info/top_level.txt +1 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<!-- Copyright 2019 KMEE
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
4
|
+
<odoo>
|
5
|
+
|
6
|
+
<record id="document_correction_wizard_form" model="ir.ui.view">
|
7
|
+
<field name="name">l10n_br_fiscal.document.correction.wizard.form</field>
|
8
|
+
<field name="model">l10n_br_fiscal.document.correction.wizard</field>
|
9
|
+
<field name="arch" type="xml">
|
10
|
+
<form string="Carta de Correção">
|
11
|
+
<group>
|
12
|
+
<field name="justification" />
|
13
|
+
</group>
|
14
|
+
<footer>
|
15
|
+
<button name="doit" string="OK" class="btn-primary" type="object" />
|
16
|
+
<button string="Cancel" class="btn-default" special="cancel" />
|
17
|
+
</footer>
|
18
|
+
</form>
|
19
|
+
</field>
|
20
|
+
</record>
|
21
|
+
|
22
|
+
<record id="document_correction_wizard_action" model="ir.actions.act_window">
|
23
|
+
<field name="name">Carta de Correção</field>
|
24
|
+
<field name="res_model">l10n_br_fiscal.document.correction.wizard</field>
|
25
|
+
<field name="view_mode">form</field>
|
26
|
+
<field name="context">{}</field>
|
27
|
+
<field name="target">new</field>
|
28
|
+
</record>
|
29
|
+
|
30
|
+
</odoo>
|
@@ -0,0 +1,132 @@
|
|
1
|
+
# Copyright (C) 2023 Felipe Zago Rodrigues - Kmee
|
2
|
+
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
|
3
|
+
|
4
|
+
import base64
|
5
|
+
import logging
|
6
|
+
|
7
|
+
from odoo import _, api, fields, models
|
8
|
+
from odoo.exceptions import UserError
|
9
|
+
|
10
|
+
from odoo.addons.l10n_br_fiscal.constants.fiscal import FISCAL_IN_OUT_ALL
|
11
|
+
|
12
|
+
_logger = logging.getLogger(__name__)
|
13
|
+
|
14
|
+
try:
|
15
|
+
from xsdata.formats.dataclass.parsers import XmlParser
|
16
|
+
except ImportError:
|
17
|
+
_logger.error(_("xsdata Python lib not installed!"))
|
18
|
+
|
19
|
+
|
20
|
+
class DocumentImportWizardMixin(models.TransientModel):
|
21
|
+
_name = "l10n_br_fiscal.document.import.wizard.mixin"
|
22
|
+
_description = "Wizard Import Document Mixin"
|
23
|
+
_inherit = "l10n_br_fiscal.base.wizard.mixin"
|
24
|
+
|
25
|
+
company_id = fields.Many2one(
|
26
|
+
comodel_name="res.company",
|
27
|
+
string="Company",
|
28
|
+
default=lambda self: self.env.company.id,
|
29
|
+
)
|
30
|
+
|
31
|
+
file = fields.Binary(string="File to Import")
|
32
|
+
|
33
|
+
fiscal_operation_id = fields.Many2one(
|
34
|
+
comodel_name="l10n_br_fiscal.operation",
|
35
|
+
string="Fiscal Operation",
|
36
|
+
domain="[('fiscal_operation_type', '=', fiscal_operation_type)]",
|
37
|
+
)
|
38
|
+
|
39
|
+
document_type = fields.Char()
|
40
|
+
|
41
|
+
fiscal_operation_type = fields.Selection(selection=FISCAL_IN_OUT_ALL)
|
42
|
+
|
43
|
+
def _import_edoc(self):
|
44
|
+
self._find_existing_document()
|
45
|
+
if not self.document_id:
|
46
|
+
binding, self.document_id = self._create_edoc_from_file()
|
47
|
+
else:
|
48
|
+
binding = self._parse_file()
|
49
|
+
return binding, self.document_id
|
50
|
+
|
51
|
+
def action_import_and_open_document(self):
|
52
|
+
self._import_edoc()
|
53
|
+
return self.action_open_document()
|
54
|
+
|
55
|
+
def _create_edoc_from_file(self):
|
56
|
+
pass # meant to be overriden
|
57
|
+
|
58
|
+
@api.onchange("file")
|
59
|
+
def _onchange_file(self):
|
60
|
+
if self.file:
|
61
|
+
self._fill_wizard_from_binding()
|
62
|
+
|
63
|
+
def _fill_wizard_from_binding(self):
|
64
|
+
pass # meant to be overriden
|
65
|
+
|
66
|
+
def action_open_document(self):
|
67
|
+
return {
|
68
|
+
"name": _("Document Imported"),
|
69
|
+
"type": "ir.actions.act_window",
|
70
|
+
"target": "current",
|
71
|
+
"views": [[False, "form"]],
|
72
|
+
"res_id": self.document_id.id,
|
73
|
+
"res_model": "l10n_br_fiscal.document",
|
74
|
+
}
|
75
|
+
|
76
|
+
def _document_key_from_binding(self, binding):
|
77
|
+
pass # meant to be overriden
|
78
|
+
|
79
|
+
def _find_existing_document(self):
|
80
|
+
document_key = self._document_key_from_binding(self._parse_file())
|
81
|
+
self.document_id = self.env["l10n_br_fiscal.document"].search(
|
82
|
+
[("document_key", "=", document_key.chave)],
|
83
|
+
limit=1,
|
84
|
+
)
|
85
|
+
|
86
|
+
def _find_document_type(self, code):
|
87
|
+
return self.env["l10n_br_fiscal.document.type"].search(
|
88
|
+
[("code", "=", code)],
|
89
|
+
limit=1,
|
90
|
+
)
|
91
|
+
|
92
|
+
def _find_fiscal_operation(self, cfop, nat_op, fiscal_operation_type):
|
93
|
+
"""try to find a matching fiscal operation via an operation line"""
|
94
|
+
operation_lines = self.env["l10n_br_fiscal.operation.line"].search(
|
95
|
+
[
|
96
|
+
("state", "=", "approved"),
|
97
|
+
("fiscal_type", "=", fiscal_operation_type),
|
98
|
+
("cfop_external_id", "=", cfop),
|
99
|
+
],
|
100
|
+
)
|
101
|
+
for line in operation_lines:
|
102
|
+
if line.fiscal_operation_id.name == nat_op:
|
103
|
+
return line.fiscal_operation_id
|
104
|
+
if operation_lines:
|
105
|
+
return operation_lines[0].fiscal_operation_id
|
106
|
+
|
107
|
+
def _parse_file(self):
|
108
|
+
return self._parse_file_data(self.file)
|
109
|
+
|
110
|
+
@api.model
|
111
|
+
def _parse_file_data(self, file_data):
|
112
|
+
try:
|
113
|
+
binding = XmlParser().from_bytes(base64.b64decode(file_data))
|
114
|
+
except Exception as e:
|
115
|
+
raise UserError(_("Invalid file!")) from e
|
116
|
+
return binding
|
117
|
+
|
118
|
+
@api.model
|
119
|
+
def _detect_binding(self, binding):
|
120
|
+
"""
|
121
|
+
A pluggable method were each specialized fiscal document
|
122
|
+
importation wizard can register itself and return a tuple
|
123
|
+
with (the_fiscal_document_type_code, the_name_of_the_importation_wizard)
|
124
|
+
"""
|
125
|
+
raise UserError(
|
126
|
+
_("Importation not implemented for %s!")
|
127
|
+
% (
|
128
|
+
type(
|
129
|
+
binding,
|
130
|
+
)
|
131
|
+
)
|
132
|
+
)
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<!-- Copyright 2023 KMEE
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
4
|
+
<odoo>
|
5
|
+
|
6
|
+
<record id="l10n_br_fiscal_document_import_wizard_mixin_form" model="ir.ui.view">
|
7
|
+
<field name="name">l10n_br_fiscal.document.import.wizard.mixin.form</field>
|
8
|
+
<field name="model">l10n_br_fiscal.document.import.wizard.mixin</field>
|
9
|
+
<field name="arch" type="xml">
|
10
|
+
<form string="Import Document">
|
11
|
+
<group>
|
12
|
+
<field name="file" required="1" />
|
13
|
+
</group>
|
14
|
+
<separator
|
15
|
+
string="Preview Data"
|
16
|
+
attrs="{'invisible': [('file', '=', False)]}"
|
17
|
+
/>
|
18
|
+
<group id="document_info" attrs="{'invisible': [('file', '=', False)]}">
|
19
|
+
<group>
|
20
|
+
<field name="fiscal_operation_id" required="1" />
|
21
|
+
<field name="fiscal_operation_type" invisible="1" />
|
22
|
+
<field name="document_key" readonly="1" />
|
23
|
+
<field name="document_number" readonly="1" />
|
24
|
+
<field name="document_serie" readonly="1" />
|
25
|
+
</group>
|
26
|
+
|
27
|
+
<group>
|
28
|
+
<field name="partner_id" readonly="1" />
|
29
|
+
</group>
|
30
|
+
</group>
|
31
|
+
<footer>
|
32
|
+
<button
|
33
|
+
name="action_import_and_open_document"
|
34
|
+
string="Import Fiscal Document"
|
35
|
+
class="btn-primary"
|
36
|
+
type="object"
|
37
|
+
/>
|
38
|
+
<button string="Cancel" class="btn-default" special="cancel" />
|
39
|
+
</footer>
|
40
|
+
</form>
|
41
|
+
</field>
|
42
|
+
</record>
|
43
|
+
|
44
|
+
</odoo>
|
@@ -0,0 +1,58 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<!-- Copyright 2020 KMEE
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
4
|
+
<odoo>
|
5
|
+
|
6
|
+
<record model="ir.ui.view" id="wizard_document_status_form">
|
7
|
+
<field
|
8
|
+
name="name"
|
9
|
+
>wizard.l10n_br_fiscal.base.wizard.mixin (in l10n_br_fiscal)</field>
|
10
|
+
<field name="model">l10n_br_fiscal.document.status.wizard</field>
|
11
|
+
<field name="arch" type="xml">
|
12
|
+
<form string="Document Status">
|
13
|
+
<field invisible="1" name="state" />
|
14
|
+
<group name="document_info">
|
15
|
+
<group name="document_info_right">
|
16
|
+
<field name="partner_id" readonly="1" />
|
17
|
+
<field name="document_id" readonly="1" />
|
18
|
+
</group>
|
19
|
+
<group name="document_info_left">
|
20
|
+
<field name="document_type" invisible="1" />
|
21
|
+
<field name="document_type_id" readonly="1" />
|
22
|
+
<field name="document_serie" readonly="1" />
|
23
|
+
<field name="document_number" readonly="1" />
|
24
|
+
<field
|
25
|
+
name="rps_number"
|
26
|
+
attrs="{'invisible': [('document_type', '!=', 'SE')]}"
|
27
|
+
readonly="1"
|
28
|
+
/>
|
29
|
+
</group>
|
30
|
+
</group>
|
31
|
+
<group name="document_key_group">
|
32
|
+
<field name="document_key" readonly="1" />
|
33
|
+
</group>
|
34
|
+
<group states="done" name="document_status">
|
35
|
+
<field name="document_status" />
|
36
|
+
</group>
|
37
|
+
<footer>
|
38
|
+
<button
|
39
|
+
name="doit"
|
40
|
+
string="Get Status"
|
41
|
+
class="btn-primary"
|
42
|
+
type="object"
|
43
|
+
/>
|
44
|
+
<button string="Close" class="btn-default" special="cancel" />
|
45
|
+
</footer>
|
46
|
+
</form>
|
47
|
+
</field>
|
48
|
+
</record>
|
49
|
+
|
50
|
+
<record model="ir.actions.act_window" id="wizard_document_status_act_multi">
|
51
|
+
<field name="name">Document Status</field>
|
52
|
+
<field name="res_model">l10n_br_fiscal.document.status.wizard</field>
|
53
|
+
<field name="view_mode">form</field>
|
54
|
+
<field name="binding_model_id" ref="model_l10n_br_fiscal_document" />
|
55
|
+
<field name="target">new</field>
|
56
|
+
</record>
|
57
|
+
|
58
|
+
</odoo>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# Copyright 2019 KMEE
|
2
|
+
# Copyright (C) 2020 Renato Lima - Akretion <renato.lima@akretion.com.br>
|
3
|
+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
4
|
+
|
5
|
+
from odoo import models
|
6
|
+
|
7
|
+
|
8
|
+
class InvalidateNumberWizard(models.TransientModel):
|
9
|
+
_name = "l10n_br_fiscal.invalidate.number.wizard"
|
10
|
+
_description = "Invalidate Number Wizard"
|
11
|
+
_inherit = "l10n_br_fiscal.base.wizard.mixin"
|
12
|
+
|
13
|
+
def do_invalidate(self):
|
14
|
+
invalidate = self.env["l10n_br_fiscal.invalidate.number"].create(
|
15
|
+
{
|
16
|
+
"company_id": self.document_id.company_id.id,
|
17
|
+
"document_type_id": self.document_id.document_type_id.id,
|
18
|
+
"document_serie_id": self.document_id.document_serie_id.id,
|
19
|
+
"number_start": self.document_id.document_number,
|
20
|
+
"number_end": self.document_id.document_number,
|
21
|
+
"justification": self.justification,
|
22
|
+
}
|
23
|
+
)
|
24
|
+
invalidate._invalidate(self.document_id)
|
25
|
+
if hasattr(self.document_id, "cancel_move_ids"):
|
26
|
+
# cancel moves if l10n_br_account is installed
|
27
|
+
# (thus l10n_br_account doesn't need to depend on l10n_br_fiscal_edi)
|
28
|
+
self.document_id.cancel_move_ids()
|
29
|
+
|
30
|
+
def doit(self):
|
31
|
+
for wizard in self:
|
32
|
+
wizard.do_invalidate()
|
33
|
+
self._close()
|
@@ -0,0 +1,30 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8" ?>
|
2
|
+
<!-- Copyright 2019 KMEE
|
3
|
+
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -->
|
4
|
+
<odoo>
|
5
|
+
|
6
|
+
<record id="invalidate_number_wizard" model="ir.ui.view">
|
7
|
+
<field name="name">l10n_br_fiscal.invalidate.number.wizard</field>
|
8
|
+
<field name="model">l10n_br_fiscal.invalidate.number.wizard</field>
|
9
|
+
<field name="arch" type="xml">
|
10
|
+
<form string="Inutilização de documento fiscal">
|
11
|
+
<group>
|
12
|
+
<field name="justification" />
|
13
|
+
</group>
|
14
|
+
<footer>
|
15
|
+
<button name="doit" string="OK" class="btn-primary" type="object" />
|
16
|
+
<button string="Cancel" class="btn-default" special="cancel" />
|
17
|
+
</footer>
|
18
|
+
</form>
|
19
|
+
</field>
|
20
|
+
</record>
|
21
|
+
|
22
|
+
<record id="invalidate_number_wizard_action" model="ir.actions.act_window">
|
23
|
+
<field name="name">Inutilização de documento fiscal</field>
|
24
|
+
<field name="res_model">l10n_br_fiscal.invalidate.number.wizard</field>
|
25
|
+
<field name="view_mode">form</field>
|
26
|
+
<field name="context">{}</field>
|
27
|
+
<field name="target">new</field>
|
28
|
+
</record>
|
29
|
+
|
30
|
+
</odoo>
|
@@ -0,0 +1,141 @@
|
|
1
|
+
Metadata-Version: 2.1
|
2
|
+
Name: odoo-addon-l10n_br_fiscal_edi
|
3
|
+
Version: 15.0.1.0.0.2
|
4
|
+
Requires-Python: >=3.8
|
5
|
+
Requires-Dist: odoo-addon-l10n_br_fiscal>=15.0dev,<15.1dev
|
6
|
+
Requires-Dist: odoo>=15.0a,<15.1dev
|
7
|
+
Summary: Common EDI fiscal features
|
8
|
+
Home-page: https://github.com/OCA/l10n-brazil
|
9
|
+
License: AGPL-3
|
10
|
+
Author: Akretion, KMEE, Odoo Community Association (OCA)
|
11
|
+
Author-email: support@odoo-community.org
|
12
|
+
Classifier: Programming Language :: Python
|
13
|
+
Classifier: Framework :: Odoo
|
14
|
+
Classifier: Framework :: Odoo :: 15.0
|
15
|
+
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
|
16
|
+
Classifier: Development Status :: 4 - Beta
|
17
|
+
|
18
|
+
==========================
|
19
|
+
Common EDI fiscal features
|
20
|
+
==========================
|
21
|
+
|
22
|
+
..
|
23
|
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
24
|
+
!! This file is generated by oca-gen-addon-readme !!
|
25
|
+
!! changes will be overwritten. !!
|
26
|
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
27
|
+
!! source digest: sha256:2aef138ea880eef26ea27fdbf1da1ce3e5bb9992bebe8a52c807e00d0303406f
|
28
|
+
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
29
|
+
|
30
|
+
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
31
|
+
:target: https://odoo-community.org/page/development-status
|
32
|
+
:alt: Beta
|
33
|
+
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
34
|
+
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
35
|
+
:alt: License: AGPL-3
|
36
|
+
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--brazil-lightgray.png?logo=github
|
37
|
+
:target: https://github.com/OCA/l10n-brazil/tree/15.0/l10n_br_fiscal_edi
|
38
|
+
:alt: OCA/l10n-brazil
|
39
|
+
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
40
|
+
:target: https://translation.odoo-community.org/projects/l10n-brazil-15-0/l10n-brazil-15-0-l10n_br_fiscal_edi
|
41
|
+
:alt: Translate me on Weblate
|
42
|
+
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
43
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-brazil&target_branch=15.0
|
44
|
+
:alt: Try me on Runboat
|
45
|
+
|
46
|
+
|badge1| |badge2| |badge3| |badge4| |badge5|
|
47
|
+
|
48
|
+
Este módulo estende o módulo ``l10n_br_fiscal`` e cuida da parte de EDI
|
49
|
+
(Electronic Data Interchange) que é comum entre os vários documentos
|
50
|
+
fiscais no Brasil. Ele introduz os modelos de eventos de transmissão, de
|
51
|
+
correções... Alem disso ele cuida das possíveis transições de estado do
|
52
|
+
documento fiscal em função dos retornos dos webservices (campo
|
53
|
+
``state_edoc``).
|
54
|
+
|
55
|
+
**Table of contents**
|
56
|
+
|
57
|
+
.. contents::
|
58
|
+
:local:
|
59
|
+
|
60
|
+
Usage
|
61
|
+
=====
|
62
|
+
|
63
|
+
Use os botões na barra de header do documento fiscal para alterar o
|
64
|
+
estado do documento fiscal, para abrir os wizards e para interagir com a
|
65
|
+
fazenda... Quando o módulo ``l10n_br_account`` ou alguns módulos de
|
66
|
+
documentos fiscais específicos como ``l10n_br_nfe`` ou ``l10n_br_nfse``
|
67
|
+
são instalados, alguns métodos de transição de estado do módulo
|
68
|
+
``l10n_br_fiscal_edi`` são chamados automaticamente, por exemplo ao
|
69
|
+
confirmar ou cancelar uma nota.
|
70
|
+
|
71
|
+
Known issues / Roadmap
|
72
|
+
======================
|
73
|
+
|
74
|
+
O código deste módulo foi feito antes dos repos ``OCA/edi`` e
|
75
|
+
``OCA/edi-framework``. O código do ``document_workflow.py`` por exemplo
|
76
|
+
foi uma espécie de tradução em código do "workflow de state machine" que
|
77
|
+
tinha sido customizado para a NFe na versão 8.0 mas que teve que ser
|
78
|
+
re-escrito quando o engine de workflow foi removido na versão 10.0.
|
79
|
+
Nisso o código deste módulo tem bastante possibilidades de melhorias...
|
80
|
+
|
81
|
+
Bug Tracker
|
82
|
+
===========
|
83
|
+
|
84
|
+
Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-brazil/issues>`_.
|
85
|
+
In case of trouble, please check there if your issue has already been reported.
|
86
|
+
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
87
|
+
`feedback <https://github.com/OCA/l10n-brazil/issues/new?body=module:%20l10n_br_fiscal_edi%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
88
|
+
|
89
|
+
Do not contact contributors directly about support or help with technical issues.
|
90
|
+
|
91
|
+
Credits
|
92
|
+
=======
|
93
|
+
|
94
|
+
Authors
|
95
|
+
-------
|
96
|
+
|
97
|
+
* Akretion
|
98
|
+
* KMEE
|
99
|
+
|
100
|
+
Contributors
|
101
|
+
------------
|
102
|
+
|
103
|
+
- `Akretion <https://www.akretion.com/pt-BR>`__:
|
104
|
+
|
105
|
+
- Renato Lima <renato.lima@akretion.com.br>
|
106
|
+
- Raphaël Valyi <raphael.valyi@akretion.com.br>
|
107
|
+
|
108
|
+
- `KMEE <https://www.kmee.com.br>`__:
|
109
|
+
|
110
|
+
- Luis Felipe Mileo <mileo@kmee.com.br>
|
111
|
+
|
112
|
+
Maintainers
|
113
|
+
-----------
|
114
|
+
|
115
|
+
This module is maintained by the OCA.
|
116
|
+
|
117
|
+
.. image:: https://odoo-community.org/logo.png
|
118
|
+
:alt: Odoo Community Association
|
119
|
+
:target: https://odoo-community.org
|
120
|
+
|
121
|
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
|
122
|
+
mission is to support the collaborative development of Odoo features and
|
123
|
+
promote its widespread use.
|
124
|
+
|
125
|
+
.. |maintainer-renatonlima| image:: https://github.com/renatonlima.png?size=40px
|
126
|
+
:target: https://github.com/renatonlima
|
127
|
+
:alt: renatonlima
|
128
|
+
.. |maintainer-rvalyi| image:: https://github.com/rvalyi.png?size=40px
|
129
|
+
:target: https://github.com/rvalyi
|
130
|
+
:alt: rvalyi
|
131
|
+
.. |maintainer-mileo| image:: https://github.com/mileo.png?size=40px
|
132
|
+
:target: https://github.com/mileo
|
133
|
+
:alt: mileo
|
134
|
+
|
135
|
+
Current `maintainers <https://odoo-community.org/page/maintainer-role>`__:
|
136
|
+
|
137
|
+
|maintainer-renatonlima| |maintainer-rvalyi| |maintainer-mileo|
|
138
|
+
|
139
|
+
This module is part of the `OCA/l10n-brazil <https://github.com/OCA/l10n-brazil/tree/15.0/l10n_br_fiscal_edi>`_ project on GitHub.
|
140
|
+
|
141
|
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
@@ -0,0 +1,42 @@
|
|
1
|
+
odoo/addons/l10n_br_fiscal_edi/README.rst,sha256=Xi8m2VtgypwhFk8iBkkSvlu0jqjdP9mAtjmvtOFwWV8,4852
|
2
|
+
odoo/addons/l10n_br_fiscal_edi/__init__.py,sha256=0XNpxETgFdVxFDEw03O8oL3NtTSk3we-HEZW2sPKzIU,43
|
3
|
+
odoo/addons/l10n_br_fiscal_edi/__manifest__.py,sha256=uSCy8MF9vspT8zzNAhsTuG7B_fSccJU1CfBtwJQwD2s,1332
|
4
|
+
odoo/addons/l10n_br_fiscal_edi/i18n/l10n_br_fiscal_edi.pot,sha256=Q_dhnRojfE80SpqnQ8nNWmi46mw7ERoqV9Y3pYBAWwc,37905
|
5
|
+
odoo/addons/l10n_br_fiscal_edi/models/__init__.py,sha256=Zz-kP7XRE72a4jf5pfkNr_MHaaHJx9V5WEdQZGuncGg,116
|
6
|
+
odoo/addons/l10n_br_fiscal_edi/models/document.py,sha256=ThbbVY2F2XXRnnJs7ZAChSt0ehEKZAAgGks9ETmDeFU,8975
|
7
|
+
odoo/addons/l10n_br_fiscal_edi/models/document_event.py,sha256=R5iMjlHJVx44Gqcf3y9Zrp--5Z2I3zxpjzmVOW2BR5A,11361
|
8
|
+
odoo/addons/l10n_br_fiscal_edi/models/document_workflow.py,sha256=3mCc3Er_NtSfzpRKjniEEyUGcoc912I54P3RpPx4QT0,14583
|
9
|
+
odoo/addons/l10n_br_fiscal_edi/models/invalidate_number.py,sha256=Nh1xrgSc120lKfj03bFxldqIv2GofifLCMNcynHf724,1540
|
10
|
+
odoo/addons/l10n_br_fiscal_edi/readme/CONTRIBUTORS.md,sha256=m5_7QJFuw9MsgV-sdQMPVWDBXQvaqnl8TbyBvdBnwIM,232
|
11
|
+
odoo/addons/l10n_br_fiscal_edi/readme/DESCRIPTION.md,sha256=TWp8jJZ2mwnBXHhdYI9A5HD_pF12eOJRO4_SPNmBVuA,374
|
12
|
+
odoo/addons/l10n_br_fiscal_edi/readme/ROADMAP.md,sha256=m63hi9coIwXI0oDmvu6XmdEoSv4t3fOJDAIK8WbXAi8,421
|
13
|
+
odoo/addons/l10n_br_fiscal_edi/readme/USAGE.md,sha256=2UZfDrf29LJ8y6c17XzwNOvi5JEpcfxNi_pKjpKbJPg,447
|
14
|
+
odoo/addons/l10n_br_fiscal_edi/security/ir.model.access.csv,sha256=y56uRGO-2bz45keACWY32ZcCop6KsZk_9om8jj5jk-4,1030
|
15
|
+
odoo/addons/l10n_br_fiscal_edi/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
16
|
+
odoo/addons/l10n_br_fiscal_edi/static/description/index.html,sha256=YfHrmnoTS1Or31N7_ezWIzE9L4iccUJLkgW7YFCHK9Y,15176
|
17
|
+
odoo/addons/l10n_br_fiscal_edi/tests/__init__.py,sha256=4Q04RgcX7CPzogoxW39Muu0BAMmpfaRZKp67SpjYOBU,28
|
18
|
+
odoo/addons/l10n_br_fiscal_edi/tests/test_fiscal_document_generic.py,sha256=7TCfWXhjOcJlKu_ZJWpn81NVJa9bHUZOsgn6WPC3QEA,44083
|
19
|
+
odoo/addons/l10n_br_fiscal_edi/tests/test_tax_benefit.py,sha256=UVUZVAv5JeJmZ_htq3cieyGuEZNn6-Satfpwhjs-OJI,2772
|
20
|
+
odoo/addons/l10n_br_fiscal_edi/tests/test_workflow.py,sha256=x9R7em-prpncCphy4xsBafOzsRniZpKqnI0i1ZRD6gU,4476
|
21
|
+
odoo/addons/l10n_br_fiscal_edi/views/document_event_report.xml,sha256=64D6JlIIO7AvhFFsXpn75WTEjm_RgFUAnMB8jIej6GE,735
|
22
|
+
odoo/addons/l10n_br_fiscal_edi/views/document_event_template.xml,sha256=jDFhkpGnb2uJrTme2-c58FA1cC2GGG9VR5vH5nMUxxE,4055
|
23
|
+
odoo/addons/l10n_br_fiscal_edi/views/document_event_view.xml,sha256=qIgWNvmidGjGZvrNTtOxZzYkvNHI0PbFQqdREFvjDeU,2712
|
24
|
+
odoo/addons/l10n_br_fiscal_edi/views/document_view.xml,sha256=yyFnj3NHd_dTlqj3A_ZHOWX_RjcKlYDqp9-j5PLeBHc,3479
|
25
|
+
odoo/addons/l10n_br_fiscal_edi/views/invalidate_number_view.xml,sha256=jJBxSieDjjGT1n4MGBA8T4V8AuD6Cg0OUFtzo7Pp79I,619
|
26
|
+
odoo/addons/l10n_br_fiscal_edi/views/l10n_br_fiscal_action.xml,sha256=7iRk6WUE0KLfl3QQw5yry8zHcpkdt1yUSyCLdOTZHEc,1405
|
27
|
+
odoo/addons/l10n_br_fiscal_edi/views/l10n_br_fiscal_menu.xml,sha256=WE2rCoiTXbwcTc3QLX7YZN96ZxzAyJllVoZn6HZ2X-w,567
|
28
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/__init__.py,sha256=gLEnCWcPzAJSpG6fxyXFpiv1WGh_bGxDZULRWj6Zw34,258
|
29
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/base_wizard_mixin.py,sha256=05dVbE45HxuODOnF31hvX6CKYsa1yEo0-B_fvwH0TT8,385
|
30
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/document_cancel_wizard.py,sha256=A0A6lgGTpEsi4l-Yj2kVLReH0yprU38dCiKnZhgvMog,621
|
31
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/document_cancel_wizard.xml,sha256=VFmCwJxW6zlwzRK6WGztT-5at60E_DBfRe0YYvny7d4,1206
|
32
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/document_correction_wizard.py,sha256=pVrt5lHJcZmKzXLVFHJ3tdFkHmxFD0ejW3-3HedVacY,588
|
33
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/document_correction_wizard.xml,sha256=QyhtIS4oAXumjoHGDPXIsOnEH7r3IMZ1p_FJEtHmdE8,1205
|
34
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/document_import_wizard_mixin.py,sha256=99yffOvBK73m3MfvE3eLd5nk_X-eMn7Ng3LkO3NMDWo,4201
|
35
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/document_import_wizard_mixin.xml,sha256=h19vP1YvC4hLPvCvA6E1goqre0AAGy0CF4a2R6B78Y4,1833
|
36
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/document_status_wizard.xml,sha256=S9hSkgbBKCt78bTe3sRupfnIcmZZ8KWhaZ9q_PKYvgc,2483
|
37
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/invalidate_number_wizard.py,sha256=o9eXRV-iWUsgsozBzM193C4J_8aurGl1aIICdYthpXA,1328
|
38
|
+
odoo/addons/l10n_br_fiscal_edi/wizards/invalidate_number_wizard.xml,sha256=H0JzzzbJmWziLZjZ8acQsqJcgsaYD3M6I3OydoNFuUc,1215
|
39
|
+
odoo_addon_l10n_br_fiscal_edi-15.0.1.0.0.2.dist-info/METADATA,sha256=04qs52lLziU6saPhxSJhPRC1JIDA2bdwPlCRYUQrIZE,5477
|
40
|
+
odoo_addon_l10n_br_fiscal_edi-15.0.1.0.0.2.dist-info/WHEEL,sha256=8Rd4enx1PCuyDWP4SABqO5Fv8rpaknqp3VzjoFFLa6c,83
|
41
|
+
odoo_addon_l10n_br_fiscal_edi-15.0.1.0.0.2.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
42
|
+
odoo_addon_l10n_br_fiscal_edi-15.0.1.0.0.2.dist-info/RECORD,,
|
@@ -0,0 +1 @@
|
|
1
|
+
odoo
|