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][NEW] l10n_br_mdfe: transmission #2729

Closed
wants to merge 72 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
7964043
[ADD] l10n_br_mdfe_spec generated by xsdata-odoo
rvalyi May 19, 2023
6b5faa5
[ADD] l10n_br_mdfe
ygcarvalh Jul 12, 2023
475bc2c
[FIX] l10n_br_mdfe: set correct code for document type
ygcarvalh Jul 12, 2023
5967ba1
[ADD] MDFe validations
felipezago Sep 6, 2023
b71cbd1
[ADD] MDFe fields parsing
felipezago Sep 6, 2023
48c531b
[FIX] add inherit to document related
felipezago Sep 6, 2023
5508177
[ADD] MDFe views and fields
felipezago Sep 8, 2023
1b3ce3f
[ADD] method to prepare processor params
felipezago Sep 11, 2023
d95787b
[ADD] processor default params to NFe
felipezago Sep 11, 2023
4276d04
[ADD] MDFe modal implementations
felipezago Sep 11, 2023
92ce656
[FIX] l10n_br_fiscal: reset changes on processor
felipezago Sep 15, 2023
92e7a45
[FIX] l10n_br_nfe: reset changes on processor
felipezago Sep 15, 2023
5f6d7c5
[ADD] MDFe modals mapping
felipezago Sep 15, 2023
bb39642
[FIX] l10n_br_nfe: reset changes on processor
felipezago Sep 15, 2023
41e3597
[ADD] l10n_br_fiscal: qr code generation workflow
felipezago Sep 19, 2023
d3f6203
[ADD] MDFe document supplement indo
felipezago Sep 19, 2023
d6553d3
[ADD] improvements on modal implementation
felipezago Sep 19, 2023
d28ab0a
[ADD] l10n_br_fiscal: evento de encerramento de MDFe
felipezago Sep 19, 2023
183339d
[ADD] l10n_br_mdfe: evento de encerramento de MDFe
felipezago Sep 19, 2023
a508c99
[FIX] MDFe closure button position
felipezago Sep 19, 2023
855013e
[FIX] l10n_br_nfe: changes to install l10n_br_nfe and l10n_br_mdfe to…
felipezago Sep 25, 2023
586ea6c
[FIX] problem with multiple modules overwriting _stacked property on …
felipezago Sep 26, 2023
28dc4e0
[FIX] l10n_br_fiscal: adapt code to work with multiple document types.
felipezago Sep 26, 2023
94d6c3c
[FIX] l10n_br_nfe: adapt code to work with multiple document types.
felipezago Sep 26, 2023
8e2fadd
[FIX] l10n_br_mdfe: adapt code to work with multiple document types.
felipezago Sep 26, 2023
7d6e32a
[FIX] NFe import
felipezago Sep 26, 2023
7297219
[FIX] NFe tests
felipezago Sep 26, 2023
31cbfc5
[FIX] better way to find odoo module name
felipezago Sep 27, 2023
e2f8696
[FIX] bugs on exporting data
felipezago Sep 27, 2023
a51e551
[FIX] MDFe spec export
felipezago Sep 27, 2023
361dd39
[ADD] improvements to make modal export automatic
felipezago Sep 27, 2023
9b4a556
[NEW] DAMDFe implementation
felipezago Sep 28, 2023
808d7a4
[ADD] total amount and weight to document related
felipezago Oct 2, 2023
51eec2c
[ADD] compute MDFe total weight and amount
felipezago Oct 2, 2023
910571c
[FIX] MDFe with xsdata bindings changes
felipezago Oct 2, 2023
09abb13
[FIX] remove binding module
felipezago Oct 2, 2023
c58fbf5
[ADD] l10n_br_fiscal: qr code generation workflow
felipezago Sep 19, 2023
c2d6c45
[FIX] l10n_br_nfe: qr code generation workflow
felipezago Oct 2, 2023
e7ffb25
[FIX] l10n_br_mdfe: qr code generation workflow
felipezago Oct 2, 2023
fcc55f7
[FIX] make modal relations not copiable
felipezago Oct 2, 2023
19d9604
[ADD] l10n_br_mdfe: demo data
felipezago Oct 3, 2023
ea81814
[ADD] l10n_br_fiscal: MDFe demo serie
felipezago Oct 3, 2023
cd0afe9
[ADD] l10n_br_mdfe: serialization tests
felipezago Oct 3, 2023
e1ccd06
[ADD] l10n_br_nfe: add _binding_module and _field_prefix to models
felipezago Oct 3, 2023
9f23e40
[FIX] nfelib type validation on spec import attribute building
felipezago Aug 7, 2023
8a6a8e2
[ADD] l10n_br_mdfe: ajustes nos modais
felipezago Oct 4, 2023
5ddf41f
[ADD] spec_driven_model: generic way of finding original class
felipezago Oct 4, 2023
803f7ca
[FIX] l10n_br_nfe: NFCe/NFe tests
felipezago Oct 4, 2023
9178804
[ADD] l10n_br_mdfe: MDFe import tests
felipezago Oct 4, 2023
104e11b
[ADD] l10n_br_mdfe: MDFe structure test
felipezago Oct 4, 2023
385016c
[FIX] l10n_br_fiscal: remove MDFe transmission
felipezago Oct 5, 2023
48dbb58
[FIX] l10n_br_mdfe: remove MDFe transmission
felipezago Oct 5, 2023
8920713
[ADD] l10n_br_mdfe: MDFe document tests
felipezago Oct 5, 2023
d456880
[ADD] l10n_br_mdfe: MDFe demo
felipezago Oct 5, 2023
701545b
[ADD] l10n_br_mdfe: MDFe res partner tests
felipezago Oct 5, 2023
04fc394
[ADD] l10n_br_nfe: processor tests
felipezago Oct 5, 2023
9218618
[FIX] NFCe/NFe tests
felipezago Oct 5, 2023
80c27d9
[FIX] l10n_br_cnpj_search: multiple phones test
felipezago Oct 5, 2023
a2146ab
[ADD] l10n_br_fiscal: MDFe SN serie demo
felipezago Oct 6, 2023
6f0b962
[FIX] l10n_br_mdfe: MDFe SN serie to demo documents
felipezago Oct 6, 2023
ddeebe5
[ADD] l10n_br_mdfe: README
felipezago Oct 6, 2023
d18e844
[ADD] l10n_br_fiscal: MDFe transmission
felipezago Oct 5, 2023
66c7576
[ADD] l10n_br_mdfe: MDFe transmission
felipezago Oct 5, 2023
cf45419
[ADD] l10n_br_fiscal_dfe: new erpbrasil.edoc version
felipezago Oct 2, 2023
c11c2be
[ADD] l10n_br_ie_search: new erpbrasil.edoc version
felipezago Oct 2, 2023
f3493fb
[ADD] l10n_br_mdfe: new erpbrasil.edoc version
felipezago Oct 2, 2023
19de99b
[ADD] l10n_br_nfse: new erpbrasil.edoc version
felipezago Oct 2, 2023
dbf89f3
[ADD] l10n_br_nfse_ginfes: new erpbrasil.edoc version
felipezago Oct 2, 2023
47634a6
[ADD] l10n_br_nfse_paulistana: new erpbrasil.edoc version
felipezago Oct 2, 2023
5793882
[ADD] l10n_br_nfe: new erpbrasil.edoc version
felipezago Oct 2, 2023
3739668
[ADD] l10n_br_mdfe: DAMDFe tests
felipezago Oct 6, 2023
3ceb36d
[ADD] l10n_br_mdfe: MDFe webservice tests
felipezago Oct 6, 2023
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
4 changes: 2 additions & 2 deletions l10n_br_cnpj_search/tests/test_receitaws.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,5 +53,5 @@ def test_receita_ws_multiple_phones(self):
isla.search_cnpj()

self.assertEqual(isla.name, "Isla Sementes Ltda.")
self.assertEqual(isla.phone, "(51) 9852-9561")
self.assertEqual(isla.mobile, "(51) 2136-6600")
self.assertEqual(isla.phone.strip(), "(51) 9852-9561")
self.assertEqual(isla.mobile.strip(), "(51) 2136-6600")
4 changes: 4 additions & 0 deletions l10n_br_fiscal/constants/fiscal.py
Original file line number Diff line number Diff line change
Expand Up @@ -328,6 +328,7 @@
MODELO_FISCAL_NFE = "55"
MODELO_FISCAL_NFCE = "65"
MODELO_FISCAL_NFSE = "SE"
MODELO_FISCAL_MDFE = "58"
MODELO_FISCAL_CFE = "59"
MODELO_FISCAL_CUPOM_FISCAL_ECF = "2D"
MODELO_FISCAL_CTE = "57"
Expand All @@ -354,6 +355,7 @@
LOTE_PROCESSADO = ["104"]
LOTE_EM_PROCESSAMENTO = ["105"]
CONTINGENCIA = ("108", "109")
ENCERRADO = ["132", "135"]

CANCELAMENTO_HOMOLOGADO = ["101", "151"]

Expand All @@ -377,6 +379,7 @@
SITUACAO_EDOC_CANCELADA = "cancelada"
SITUACAO_EDOC_DENEGADA = "denegada"
SITUACAO_EDOC_INUTILIZADA = "inutilizada"
SITUACAO_EDOC_ENCERRADA = "encerrada"


SITUACAO_EDOC = [
Expand All @@ -388,6 +391,7 @@
(SITUACAO_EDOC_CANCELADA, "Cancelada"),
(SITUACAO_EDOC_DENEGADA, "Denegada"),
(SITUACAO_EDOC_INUTILIZADA, "Inutilizada"),
(SITUACAO_EDOC_ENCERRADA, "Encerrada"),
]
SITUACAO_EDOC_DICT = dict(SITUACAO_EDOC)

Expand Down
2 changes: 1 addition & 1 deletion l10n_br_fiscal/data/l10n_br_fiscal.document.type.csv
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@
"document_22","22","Nota Fiscal de Serviço de Telecomunicação","False",,,"icms"
"document_23","23","GNRE","False",,,"icms"
"document_24","24","Autorização de Carregamento e Transporte","False",,,"icms"
"document_25","25","Manifesto de Carga","False","MDFe","mdf-e","icms"
"document_26","26","Conhecimento de Transporte Multimodal de Cargas","False",,,"icms"
"document_27","27","Nota Fiscal de Transporte Ferroviário de Cargas","False",,,"icms"
"document_28","28","Nota Fiscal/Conta de Fornecimento de Gás Canalizado","False",,,"icms"
"document_29","29","Nota Fiscal/Conta de Fornecimento de Água Canalizada","False",,,"icms"
"document_30","30","Bilhete/Recibo do Passageiro","False",,,"icms"
"document_55","55","Nota Fiscal Eletrônica","True","NFe","nf-e","icms"
"document_57","57","Conhecimento de Transporte Eletrônico – CT-e","True","CTe","ct-e","icms"
"document_58","58","Manifesto Eletrônico de Documentos Fiscais","True","MDFe","mdf-e","icms"
"document_59","59","Cupom Fiscal Eletrônico - CF-e","True","CFe","cf-e","icms"
"document_60","60","Cupom Fiscal Eletrônico CF-e-ECF","True",,,"icms"
"document_65","65","Nota Fiscal Eletrônica ao Consumidor Final – NFC-e","True","NFe","nfc-e","icms"
Expand Down
24 changes: 24 additions & 0 deletions l10n_br_fiscal/demo/company_demo.xml
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,22 @@
<field name="active">True</field>
</record>

<record id="empresa_lc_document_58_serie_1" model="l10n_br_fiscal.document.serie">
<field name="code">1</field>
<field name="name">Série 1</field>
<field name="document_type_id" ref="l10n_br_fiscal.document_58" />
<field name="company_id" ref="l10n_br_base.empresa_lucro_presumido" />
<field name="active">True</field>
</record>

<record id="empresa_sn_document_58_serie_1" model="l10n_br_fiscal.document.serie">
<field name="code">1</field>
<field name="name">Série 1</field>
<field name="document_type_id" ref="l10n_br_fiscal.document_58" />
<field name="company_id" ref="l10n_br_base.empresa_simples_nacional" />
<field name="active">True</field>
</record>

<record id="empresa_lc_document_65_serie_1" model="l10n_br_fiscal.document.serie">
<field name="code">1</field>
<field name="name">Série 1</field>
Expand Down Expand Up @@ -194,6 +210,14 @@
<field name="active">True</field>
</record>

<record id="empresa_sn_document_58_serie_1" model="l10n_br_fiscal.document.serie">
<field name="code">1</field>
<field name="name">Série 1</field>
<field name="document_type_id" ref="l10n_br_fiscal.document_58" />
<field name="company_id" ref="l10n_br_base.empresa_simples_nacional" />
<field name="active">True</field>
</record>

<record
id="icms_tax_definition_empresa_simples_nacional"
model="l10n_br_fiscal.tax.definition"
Expand Down
1 change: 1 addition & 0 deletions l10n_br_fiscal/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,4 @@
from . import subsequent_document
from . import document_email
from . import city_taxation_code
from . import document_supplement
2 changes: 2 additions & 0 deletions l10n_br_fiscal/models/document_event.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"12": "dist-dfe",
"13": "man",
"14": "cce",
"15": "enc-mdfe",
}


Expand Down Expand Up @@ -84,6 +85,7 @@ def _compute_display_name(self):
("12", "Distribuição DFe"),
("13", "Manifestação"),
("14", "Carta de Correção"),
("15", "Encerramento de MDFe"),
],
string="Service",
)
Expand Down
6 changes: 6 additions & 0 deletions l10n_br_fiscal/models/document_fiscal_mixin_fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -436,3 +436,9 @@ def _operation_domain(self):
)

force_compute_delivery_costs_by_total = fields.Boolean(default=False)

key_random_code = fields.Char(string="Document Key Random Code")

key_check_digit = fields.Char(string="Document Key Check Digit")

total_weight = fields.Float(string="Total Weight")
13 changes: 13 additions & 0 deletions l10n_br_fiscal/models/document_related.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,17 @@

document_date = fields.Date(string="Data")

currency_id = fields.Many2one(
comodel_name="res.currency",
default=lambda self: self.env.company.currency_id,
)

document_total_weight = fields.Float(string="Peso Total")

document_total_amount = fields.Monetary(
string="Valor Total", currency_field="currency_id"
)

@api.constrains("document_key")
def _check_key(self):
for record in self:
Expand Down Expand Up @@ -123,6 +134,8 @@
return False

self.document_type_id = related.document_type_id
self.document_total_amount = related.amount_total
self.document_total_weight = related.total_weight

Check warning on line 138 in l10n_br_fiscal/models/document_related.py

View check run for this annotation

Codecov / codecov/patch

l10n_br_fiscal/models/document_related.py#L137-L138

Added lines #L137 - L138 were not covered by tests

if related.document_type_id.electronic:
self.document_key = related.document_key
Expand Down
13 changes: 13 additions & 0 deletions l10n_br_fiscal/models/document_supplement.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright 2023 KMEE (Felipe Zago Rodrigues <[email protected]>)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).

from odoo import fields, models


class DocumentSupplement(models.Model):
_name = "l10n_br_fiscal.document.supplement"
_description = "Document Supplement Data"

qrcode = fields.Char(string="QR Code")

url_key = fields.Char(string="QR Code URL Key")
15 changes: 15 additions & 0 deletions l10n_br_fiscal/models/document_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from ..constants.fiscal import (
DOCUMENT_ISSUER_COMPANY,
MODELO_FISCAL_CTE,
MODELO_FISCAL_MDFE,
MODELO_FISCAL_NFCE,
MODELO_FISCAL_NFE,
MODELO_FISCAL_NFSE,
Expand Down Expand Up @@ -92,6 +93,7 @@
self._document_number()
self._document_comment()
self._document_check()
self._document_qrcode()
self._document_export()
return True

Expand Down Expand Up @@ -251,6 +253,7 @@
MODELO_FISCAL_NFE,
MODELO_FISCAL_NFCE,
MODELO_FISCAL_CTE,
MODELO_FISCAL_MDFE,
):
date = fields.Datetime.context_timestamp(record, record.document_date)
chave_edoc = ChaveEdoc(
Expand All @@ -267,6 +270,9 @@
numero_serie=record.document_serie or "",
validar=False,
)
record.key_random_code = chave_edoc.codigo_aleatorio
record.key_check_digit = chave_edoc.digito_verificador

# TODO: Implementar campos no Odoo
# record.key_number = chave_edoc.campos
# record.key_formated = ' '.joint(chave_edoc.partes())
Expand Down Expand Up @@ -397,3 +403,12 @@
"this fical document you are not the document issuer"
)
)

def _document_qrcode(self):
pass

def _processador(self):
pass

def _valida_xml(self, xml_file):
pass

Check warning on line 414 in l10n_br_fiscal/models/document_workflow.py

View check run for this annotation

Codecov / codecov/patch

l10n_br_fiscal/models/document_workflow.py#L414

Added line #L414 was not covered by tests
10 changes: 10 additions & 0 deletions l10n_br_fiscal/views/document_related_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,16 @@
attrs="{'invisible': [('document_type_code', '!=', '04')]}"
/>
</group>
<group
string="Totais"
attrs="{'invisible': [('document_type_code', 'not in', ('55', '57', '58'))]}"
>
<field name="document_total_weight" />
<field
name="document_total_amount"
attrs="{'invisible': [('document_related_id', '!=', False)]}"
/>
</group>
</form>
</field>
</record>
Expand Down
7 changes: 4 additions & 3 deletions l10n_br_fiscal/views/document_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@
type="object"
string="Invalidar Numeração"
groups="l10n_br_fiscal.group_user"
attrs="{'invisible': [('state_edoc', 'in', ('em_digitacao', 'autorizada', 'cancelada', 'denegada'))]}"
attrs="{'invisible': [('state_edoc', 'in', ('em_digitacao', 'autorizada', 'cancelada', 'denegada', 'encerrada'))]}"
/>
<button
name="action_document_correction"
Expand Down Expand Up @@ -203,10 +203,10 @@
<div
class="alert alert-success"
role="alert"
attrs="{'invisible': [('state_edoc','!=','autorizada')]}"
attrs="{'invisible': [('state_edoc','not in',('autorizada', 'encerrada'))]}"
>
Fiscal Document: <field name="document_type_id" readonly="1" /> is <strong
>Authorized</strong>
><field name="state_edoc" readonly="1" /></strong>
</div>
<div
class="alert alert-warning"
Expand Down Expand Up @@ -400,6 +400,7 @@
<page name="delivery" string="Delivery">
<group>
<field name="force_compute_delivery_costs_by_total" />
<field name="total_weight" />
</group>
</page>
<page name="others" string="Others">
Expand Down
2 changes: 1 addition & 1 deletion l10n_br_fiscal_dfe/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
"demo": [],
"external_dependencies": {
"python": [
"erpbrasil.edoc>=2.5.2",
"erpbrasil.edoc>=2.6.0",
"erpbrasil.transmissao>=1.1.0",
],
},
Expand Down
2 changes: 1 addition & 1 deletion l10n_br_ie_search/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"erpbrasil.base>=2.3.0",
"erpbrasil.transmissao>=1.1.0",
"erpbrasil.assinatura>=1.7.0",
"erpbrasil.edoc>=2.5.2",
"erpbrasil.edoc>=2.6.0",
]
},
}
111 changes: 111 additions & 0 deletions l10n_br_mdfe/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
====
MDFe
====

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:c7c356eef2c69c2d36d3dfea44bca958c3353c323f95319f8ec7f3e3022b7098
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
:target: https://odoo-community.org/page/development-status
:alt: Alpha
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fl10n--brazil-lightgray.png?logo=github
:target: https://github.com/OCA/l10n-brazil/tree/14.0-l10n_br_mdfe-transmission/l10n_br_mdfe
:alt: OCA/l10n-brazil
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/l10n-brazil-14-0-l10n_br_mdfe-transmission/l10n-brazil-14-0-l10n_br_mdfe-transmission-l10n_br_mdfe
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/l10n-brazil&target_branch=14.0-l10n_br_mdfe-transmission
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Este módulo permite a emissão de MDF-e.

Mais especificamente ele:
* mapea os campos de MDF-e do módulo ``l10n_br_mdfe_spec`` com os campos Odoo.
* usa a logica do módulo ``spec_driven_model`` para realizar esse mapeamento de forma dinâmica, em especial ele usa o sistema de modelos com várias camadas, ou ``StackedModel``, com os modelos ``l10n_br_fiscal.document`` e ``l10n_br_fiscal.document.related`` que tem varios niveis hierarquicos de elementos XML que estão sendo denormalizados dentro desses modelos Odoo 
* tem wizards para implementar a comunicação SOAP de MDF-e com a SEFAZ (Autorização, Cancelamento, Encerramento...)

.. IMPORTANT::
This is an alpha version, the data model and design can change at any time without warning.
Only for development or testing purpose, do not use in production.
`More details on development status <https://odoo-community.org/page/development-status>`_

**Table of contents**

.. contents::
:local:

Configuration
=============

To configure this module you need to set a digital certificate on the company, and also set the company edoc processor.

Usage
=====

To use this module, you need to:

#. Go to Fiscal menu
#. Go to Documents submenu
#. Go to MDF-e submenu

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-brazil/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/l10n-brazil/issues/new?body=module:%20l10n_br_mdfe%0Aversion:%2014.0-l10n_br_mdfe-transmission%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
~~~~~~~

* KMEE

Contributors
~~~~~~~~~~~~

* `KMEE <https://kmee.com.br>`_:

* Felipe Zago Rodrigues <[email protected]>
* Ygor Carvalho <[email protected]>

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-ygcarvalh| image:: https://github.com/ygcarvalh.png?size=40px
:target: https://github.com/ygcarvalh
:alt: ygcarvalh

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-ygcarvalh|

This module is part of the `OCA/l10n-brazil <https://github.com/OCA/l10n-brazil/tree/14.0-l10n_br_mdfe-transmission/l10n_br_mdfe>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions l10n_br_mdfe/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import models
from . import wizards
from .hooks import post_init_hook
Loading
Loading