-
+
Current maintainers:

This module is part of the Engenere/engenere-addons project on GitHub.
diff --git a/account_punctuality_discount/README.rst b/account_punctuality_discount/README.rst
index 9eb0f2c2d..c9271c60b 100644
--- a/account_punctuality_discount/README.rst
+++ b/account_punctuality_discount/README.rst
@@ -10,9 +10,9 @@ Account Punctuality Discount
!! source digest: sha256:5540d312fd89004975a7efd4bf5b126203352a10d15aacbed9a4fc47fd73d7a9
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
- :alt: Alpha
+ :alt: Beta
.. |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
@@ -24,11 +24,6 @@ Account Punctuality Discount
Permite aplicar desconto de pontualidade nas faturas
-.. 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
`_
-
**Table of contents**
.. contents::
diff --git a/account_punctuality_discount/static/description/index.html b/account_punctuality_discount/static/description/index.html
index 0c66b6a52..ef5c780d2 100644
--- a/account_punctuality_discount/static/description/index.html
+++ b/account_punctuality_discount/static/description/index.html
@@ -8,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {
@@ -368,14 +369,8 @@ Account Punctuality Discount
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:5540d312fd89004975a7efd4bf5b126203352a10d15aacbed9a4fc47fd73d7a9
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

Permite aplicar desconto de pontualidade nas faturas
-
-
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
-
Table of contents
diff --git a/eng_account_reconcile_usability/README.rst b/eng_account_reconcile_usability/README.rst
index d3c2e7060..927f5b4cd 100644
--- a/eng_account_reconcile_usability/README.rst
+++ b/eng_account_reconcile_usability/README.rst
@@ -32,11 +32,10 @@ conferência dos lançamentos.
Principais características:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Torna clara a exibição dos valores de **débito e crédito**
- associados.
-- Facilita a identificação de lançamentos relacionados.
-- Melhora a experiência do usuário ao revisar as movimentações
- contábeis.
+- Torna clara a exibição dos valores de **débito e crédito** associados.
+- Facilita a identificação de lançamentos relacionados.
+- Melhora a experiência do usuário ao revisar as movimentações
+ contábeis.
Ideal para contadores e usuários do Odoo que desejam uma visão mais
organizada e intuitiva das movimentações financeiras.
diff --git a/eng_account_reconcile_usability/static/description/index.html b/eng_account_reconcile_usability/static/description/index.html
index d4a66af55..c47f72415 100644
--- a/eng_account_reconcile_usability/static/description/index.html
+++ b/eng_account_reconcile_usability/static/description/index.html
@@ -378,8 +378,7 @@ Debit & Credit Matching Display
Principais características:
-- Torna clara a exibição dos valores de débito e crédito
-associados.
+- Torna clara a exibição dos valores de débito e crédito associados.
- Facilita a identificação de lançamentos relacionados.
- Melhora a experiência do usuário ao revisar as movimentações
contábeis.
diff --git a/eng_customer_fiscal_comments/static/description/index.html b/eng_customer_fiscal_comments/static/description/index.html
index 8fc32da17..d611e2de0 100644
--- a/eng_customer_fiscal_comments/static/description/index.html
+++ b/eng_customer_fiscal_comments/static/description/index.html
@@ -8,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {
diff --git a/eng_l10n_br_account_tax_engine_disable/static/description/index.html b/eng_l10n_br_account_tax_engine_disable/static/description/index.html
index d714d4dad..12928a50a 100644
--- a/eng_l10n_br_account_tax_engine_disable/static/description/index.html
+++ b/eng_l10n_br_account_tax_engine_disable/static/description/index.html
@@ -8,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {
diff --git a/engenere_danfe_boleto/static/description/index.html b/engenere_danfe_boleto/static/description/index.html
index 6c3be41e1..b9d2fe087 100644
--- a/engenere_danfe_boleto/static/description/index.html
+++ b/engenere_danfe_boleto/static/description/index.html
@@ -8,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {
diff --git a/engenere_partner_sales_info/static/description/index.html b/engenere_partner_sales_info/static/description/index.html
index 1f654069d..dec2958a8 100644
--- a/engenere_partner_sales_info/static/description/index.html
+++ b/engenere_partner_sales_info/static/description/index.html
@@ -8,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {
diff --git a/l10n_br_base_allows_duplicate_cnpj_ie/static/description/index.html b/l10n_br_base_allows_duplicate_cnpj_ie/static/description/index.html
index f81a2389c..b6f316a66 100644
--- a/l10n_br_base_allows_duplicate_cnpj_ie/static/description/index.html
+++ b/l10n_br_base_allows_duplicate_cnpj_ie/static/description/index.html
@@ -8,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {
diff --git a/l10n_br_trade_import/README.rst b/l10n_br_trade_import/README.rst
new file mode 100644
index 000000000..a56a27cbb
--- /dev/null
+++ b/l10n_br_trade_import/README.rst
@@ -0,0 +1,96 @@
+=============================
+Import Declaration Management
+=============================
+
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:7888c532b6fe0f1684c1e9c6fdcb4db7a55ab51989d5ec0170ef64200228501b
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |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-Engenere%2Fengenere--addons-lightgray.png?logo=github
+ :target: https://github.com/Engenere/engenere-addons/tree/16.0/l10n_br_trade_import
+ :alt: Engenere/engenere-addons
+
+|badge1| |badge2| |badge3|
+
+
+
+**Table of contents**
+
+.. contents::
+ :local:
+
+Configuration
+=============
+
+
+
+Usage
+=====
+
+
+
+Known issues / Roadmap
+======================
+
+
+
+Changelog
+=========
+
+14.0.0.0.0 (2023-07-25)
+-----------------------
+
+- [NEW] Primeira versão
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub 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 `_.
+
+Do not contact contributors directly about support or help with technical issues.
+
+Credits
+=======
+
+Authors
+-------
+
+* Engenere
+
+Contributors
+------------
+
+- `Engenere `__:
+
+ - Antônio S. Pereira Neto
+
+Maintainers
+-----------
+
+.. |maintainer-antoniospneto| image:: https://github.com/antoniospneto.png?size=40px
+ :target: https://github.com/antoniospneto
+ :alt: antoniospneto
+.. |maintainer-felipemotter| image:: https://github.com/felipemotter.png?size=40px
+ :target: https://github.com/felipemotter
+ :alt: felipemotter
+
+Current maintainers:
+
+|maintainer-antoniospneto| |maintainer-felipemotter|
+
+This module is part of the `Engenere/engenere-addons `_ project on GitHub.
+
+You are welcome to contribute.
diff --git a/l10n_br_trade_import/__init__.py b/l10n_br_trade_import/__init__.py
new file mode 100644
index 000000000..0650744f6
--- /dev/null
+++ b/l10n_br_trade_import/__init__.py
@@ -0,0 +1 @@
+from . import models
diff --git a/l10n_br_trade_import/__manifest__.py b/l10n_br_trade_import/__manifest__.py
new file mode 100644
index 000000000..98cbf930b
--- /dev/null
+++ b/l10n_br_trade_import/__manifest__.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2023-Today - Engenere ().
+# @author Antônio S. Pereira Neto
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+{
+ "name": "Import Declaration Management",
+ "summary": "Managing Brazilian Import Declarations",
+ "category": "Localisation",
+ "license": "AGPL-3",
+ "author": "Engenere," "Odoo Community Association (OCA)",
+ "maintainers": ["antoniospneto", "felipemotter"],
+ "website": "https://github.com/Engenere/engenere-addons",
+ "version": "16.0.0.0.0",
+ "development_status": "Beta",
+ "depends": [
+ "l10n_br_nfe",
+ "l10n_br_account",
+ ],
+ "data": [
+ "security/ir.model.access.csv",
+ "views/menu.xml",
+ "views/import_declaration.xml",
+ "views/import_addition.xml",
+ "views/account_move_views.xml",
+ "views/nfe_adi_view.xml",
+ "views/nfe_di_view.xml",
+ "views/nfe_document_view.xml",
+ ],
+ "installable": True,
+}
diff --git a/l10n_br_trade_import/i18n/pt_BR.po b/l10n_br_trade_import/i18n/pt_BR.po
new file mode 100644
index 000000000..cad7723e1
--- /dev/null
+++ b/l10n_br_trade_import/i18n/pt_BR.po
@@ -0,0 +1,480 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * l10n_br_trade_import
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 14.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2023-07-26 22:20+0000\n"
+"PO-Revision-Date: 2023-07-26 22:20+0000\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__afrmm_value
+msgid "AFRMM"
+msgstr "AFRMM"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__third_party_partner_id
+msgid "Acquirer or the Orderer"
+msgstr "Adiquirinte ou Encomendante"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_declaration__third_party_partner_id
+msgid ""
+"Acquirer or the Orderer Partner.\n"
+"Required when intermediation is 'Conta e Ordem' or 'Encomenda'"
+msgstr ""
+"Parceiro adquirente ou encomendante.\n"
+"Obrigatório quando a forma de intermediação for 'Conta e Ordem' ou 'Encomenda'"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_declaration__afrmm_value
+msgid "Additional Freight for Merchant Navy Renewal"
+msgstr "Adicional ao Frete para Renovação da Marinha Mercante"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__addition_ids
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.import_declaration_form
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.view_move_form_inherit
+msgid "Additions"
+msgstr "Adições"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_tree_view
+msgid "Adi"
+msgstr "Adi"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_form_view
+msgid "Adição"
+msgstr "Adição"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__aerial
+msgid "Aerial"
+msgstr "Aérea"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__towing
+msgid "By towing."
+msgstr "Por reboque"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__intermediary_type__conta_propria
+msgid "Conta Própria"
+msgstr "Conta Própria"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__intermediary_type__conta_ordem
+msgid "Conta e Ordem"
+msgstr "Conta e Ordem"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__courier
+msgid "Courier"
+msgstr "Courier"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__create_uid
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__create_uid
+msgid "Created by"
+msgstr "Criado por"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__create_date
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__create_date
+msgid "Created on"
+msgstr "Criado em"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.import_declaration_form
+msgid "Customs Clearance"
+msgstr "Desembaraço Aduaneiro"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__customs_clearance_date
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_declaration__customs_clearance_date
+msgid "Customs Clearance Date"
+msgstr "Data do Desembaraço"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__customs_clearance_location
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_declaration__customs_clearance_location
+msgid "Customs Clearance Location"
+msgstr "Local do Desembaraço"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__customs_clearance_state_id
+msgid "Customs Clearance State"
+msgstr "Estado do Desembaraço"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_form_view
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_tree_view
+msgid "Código do Fabricante"
+msgstr "Código do Fabricante"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_di_tree_view
+msgid "DI"
+msgstr "DI"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__import_declaration_date
+msgid "DI Date"
+msgstr "Data da DI"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__import_declaration_number
+msgid "DI Number"
+msgstr "Número da DI"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_di_tree_view
+msgid "Data de Registro"
+msgstr "Data de Registro"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_di_tree_view
+msgid "Data do desembaraço"
+msgstr "Data do desembaraço"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.import_declaration_form
+msgid "Date"
+msgstr "Data"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_addition__import_declaration_date
+msgid "Date of Import Declaration"
+msgstr "Data da Declaração de Importação"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_account_move_line__nfe40_DI
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_fiscal_document_line__nfe40_DI
+msgid "Delcaração de Importação"
+msgstr "Delcaração de Importação"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_account_move_line__nfe40_DI
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_fiscal_document_line__nfe40_DI
+msgid ""
+"Delcaração de Importação\n"
+"(NT 2011/004)"
+msgstr ""
+"Delcaração de Importação\n"
+"(NT 2011/004)"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__discount_value
+msgid "Discount"
+msgstr "Desconto"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_addition__discount_value
+msgid "Discount value of the DI item - Addition"
+msgstr "Valor do desconto do item da DI – Adição"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_account_move_line__display_name
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_fiscal_document_line__display_name
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__display_name
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__display_name
+msgid "Display Name"
+msgstr "Nome exibido"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__document_date
+msgid "Document Date"
+msgstr "Data do Documento"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__document_number
+msgid "Document Number"
+msgstr "Número do Documento"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_declaration__document_date
+msgid "Document Registration Date"
+msgstr "Data de Registro do Documento"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_di_form_view
+msgid "Documento de Importação"
+msgstr "Documento de Importação"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__drawback
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_form_view
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_tree_view
+msgid "Drawback"
+msgstr "Drawback"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_addition__drawback
+msgid "Drawback concession act number"
+msgstr "Número do ato concessório de Drawback"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__intermediary_type__encomenda
+msgid "Encomenda"
+msgstr "Encomenda"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__exporting_partner_id
+msgid "Exporting"
+msgstr "Exportador"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__fict_in_out
+msgid "Fictitious In/Out"
+msgstr "Entrada/Saída Ficta"
+
+#. module: l10n_br_trade_import
+#: model:ir.model,name:l10n_br_trade_import.model_l10n_br_fiscal_document_line
+msgid "Fiscal Document Line"
+msgstr "Linha do Documento Fiscal"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__fluvial
+msgid "Fluvial"
+msgstr "Fluvial"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_addition__manufacturer_id
+msgid "Foreign Manufacturer"
+msgstr "Frabicante estrangeiro"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_declaration__intermediary_type
+msgid "Form of import regarding intermediation"
+msgstr "Forma de importação quanto a intermediação"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_account_move_line__id
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_fiscal_document_line__id
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__id
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__id
+msgid "ID"
+msgstr "ID"
+
+#. module: l10n_br_trade_import
+#: model:ir.model,name:l10n_br_trade_import.model_l10n_br_trade_import_addition
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.import_addition_form
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.import_addition_search
+msgid "Import Addition"
+msgstr "Adição de Importação"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_account_move_line__import_addition_ids
+msgid "Import Additions"
+msgstr "Adições de Importação"
+
+#. module: l10n_br_trade_import
+#: model:ir.actions.act_window,name:l10n_br_trade_import.action_import_declaration
+#: model:ir.model,name:l10n_br_trade_import.model_l10n_br_trade_import_declaration
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__import_declaration_id
+#: model:ir.ui.menu,name:l10n_br_trade_import.menu_import_declaration
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.import_declaration_form
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.import_declaration_search
+msgid "Import Declaration"
+msgstr "Declaração de Importação"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.document_line_form_import_inherit
+msgid "Import Documents"
+msgstr "Documentos de Importação"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__in_hands
+msgid "In hands"
+msgstr "Em mãos"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__intermediary_type
+msgid "Intermediation"
+msgstr "Intermediação"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__transportation_type
+msgid "International Transport Route"
+msgstr "Via de transporte internacional"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_declaration__transportation_type
+msgid "International transport route reported in the Import Declaration (DI)"
+msgstr "Via de transporte internacional informada na Declaração de Importação (DI)"
+
+#. module: l10n_br_trade_import
+#: model:ir.model,name:l10n_br_trade_import.model_account_move_line
+msgid "Journal Item"
+msgstr "Item de Diário"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__lacustrine
+msgid "Lacustrine"
+msgstr "Lacustre"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_account_move_line____last_update
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_fiscal_document_line____last_update
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition____last_update
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration____last_update
+msgid "Last Modified on"
+msgstr "Última modificação em"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__write_uid
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__write_uid
+msgid "Last Updated by"
+msgstr "Ultima atualização por"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__write_date
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__write_date
+msgid "Last Updated on"
+msgstr "Ultima atualização em"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_di_tree_view
+msgid "Local do desembaraço"
+msgstr "Local do desembaraço"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.import_declaration_form
+msgid "Local"
+msgstr ""
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__manufacturer_id
+msgid "Manufacturer"
+msgstr "Fabricante"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__maritime
+msgid "Maritime"
+msgstr "Marítima"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__addition_number
+msgid "Number"
+msgstr "Número"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_addition__addition_number
+msgid "Number of Import Addition"
+msgstr "Número da Adição de Importação"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_addition__import_declaration_number
+msgid "Number of Import Declaration"
+msgstr "Número da Declaração de Importação"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_declaration__document_number
+msgid "Number of Import Document"
+msgstr "Numero do Documento de Importação"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_form_view
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_tree_view
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_di_tree_view
+msgid "Número"
+msgstr "Número"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__own_means
+msgid "Own Means"
+msgstr "Meios Próprios"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__postal
+msgid "Postal"
+msgstr "Postal"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__rail
+msgid "Rail"
+msgstr "Ferroviária"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__road
+msgid "Road"
+msgstr "Rodoviária"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__addtion_sequence
+msgid "Sequence"
+msgstr "Sequencia"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_addition__addtion_sequence
+msgid "Sequential number of the item within the Addition"
+msgstr "Número sequencial do item dentro da Adição"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_form_view
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_tree_view
+msgid "Sequência"
+msgstr "Sequência"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_account_move_line__smart_search
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_fiscal_document_line__smart_search
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_addition__smart_search
+#: model:ir.model.fields,field_description:l10n_br_trade_import.field_l10n_br_trade_import_declaration__smart_search
+msgid "Smart Search"
+msgstr "Busca Inteligente"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.import_declaration_form
+msgid "State"
+msgstr "UF"
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields,help:l10n_br_trade_import.field_l10n_br_trade_import_declaration__customs_clearance_state_id
+msgid "State where Customs Clearance occurred"
+msgstr "UF onde ocorreu o Desembaraço Aduaneiro"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_di_tree_view
+msgid "UF do desembaraço"
+msgstr "UF do desembaraço"
+
+#. module: l10n_br_trade_import
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_form_view
+#: model_terms:ir.ui.view,arch_db:l10n_br_trade_import.l10n_br_nfe_adi_tree_view
+msgid "Valor do Desconto"
+msgstr "Valor do Desconto"
+
+#. module: l10n_br_trade_import
+#: code:addons/l10n_br_trade_import/models/l10n_br_import_declaration.py:0
+#, python-format
+msgid ""
+"When the intermediation is 'Conta e Ordem' or 'Encomenda' you must provide "
+"the Acquirer or Orderer's information"
+msgstr ""
+"Quando a forma de intermediação for 'Conta e Ordem' ou 'Encomenda' você deve "
+"informar os dados do Adiquirinte ou Encomendante"
+
+#. module: l10n_br_trade_import
+#: code:addons/l10n_br_trade_import/models/l10n_br_import_declaration.py:0
+#, python-format
+msgid ""
+"When the international transport route is 'Maritime'\n"
+"You must inform the AFRMM value."
+msgstr ""
+"Quando a via de transporte internacional for 'Marítima'\n"
+"Você deve informar o valor do AFRMM."
+
+#. module: l10n_br_trade_import
+#: model:ir.model.fields.selection,name:l10n_br_trade_import.selection__l10n_br_trade_import_declaration__transportation_type__conduit
+msgid "Conduct/Transmission Network"
+msgstr "Conduto/Rede Transmissão"
diff --git a/l10n_br_trade_import/models/__init__.py b/l10n_br_trade_import/models/__init__.py
new file mode 100644
index 000000000..b63f7e9bb
--- /dev/null
+++ b/l10n_br_trade_import/models/__init__.py
@@ -0,0 +1,4 @@
+from . import l10n_br_import_declaration
+from . import l10n_br_import_addition
+from . import account_move_line
+from . import fiscal_document_line
diff --git a/l10n_br_trade_import/models/account_move_line.py b/l10n_br_trade_import/models/account_move_line.py
new file mode 100644
index 000000000..a0bc76fef
--- /dev/null
+++ b/l10n_br_trade_import/models/account_move_line.py
@@ -0,0 +1,16 @@
+# Copyright (C) 2022-Today - Engenere ().
+# @author Antônio S. Pereira Neto
+
+from odoo import fields, models
+
+
+class AccountMoveLine(models.Model):
+ _inherit = "account.move.line"
+
+ import_addition_ids = fields.Many2many(
+ comodel_name="l10n_br_trade_import.addition",
+ relation="l10n_br_account_import_addition_move_line_rel",
+ column1="move_line_id",
+ column2="import_addition_id",
+ string="Import Additions",
+ )
diff --git a/l10n_br_trade_import/models/fiscal_document_line.py b/l10n_br_trade_import/models/fiscal_document_line.py
new file mode 100644
index 000000000..b2b3646a7
--- /dev/null
+++ b/l10n_br_trade_import/models/fiscal_document_line.py
@@ -0,0 +1,92 @@
+# Copyright (C) 2022-Today - Engenere ().
+# @author Antônio S. Pereira Neto
+
+from odoo import api, fields, models
+
+
+class FiscalDocumentLine(models.Model):
+ _inherit = "l10n_br_fiscal.document.line"
+
+ ##########################
+ # NF-e tag: DI
+ ##########################
+
+ nfe40_DI = fields.One2many(
+ comodel_name="nfe.40.di",
+ inverse_name="nfe40_DI_prod_id",
+ compute="_compute_nfe40_DI",
+ store=True,
+ )
+
+ @api.depends("account_line_ids.import_addition_ids", "document_id.state_edoc")
+ def _compute_nfe40_DI(self):
+ for line in self:
+ if line.document_id._need_compute_nfe_tags:
+ import_declarations = line.account_line_ids.import_addition_ids.mapped(
+ "import_declaration_id"
+ )
+
+ map_intermediary_type = {
+ "conta_propria": "1",
+ "conta_ordem": "2",
+ "encomenda": "3",
+ }
+
+ map_transportation_type = {
+ "maritime": "1",
+ "fluvial": "2",
+ "lacustrine": "3",
+ "aerial": "4",
+ "postal": "5",
+ "rail": "6",
+ "road": "7",
+ "conduit": "8",
+ "own_means": "9",
+ "fict_in_out": "10",
+ "courier": "11",
+ "in_hands": "12",
+ "towing": "13",
+ }
+
+ for di in import_declarations:
+ addition = di.addition_ids.filtered(
+ lambda a, line=line: a
+ in line.account_line_ids.import_addition_ids
+ )
+
+ # Prepare the nfe40_nAdicao dicts
+ nfe40_nAdicao_dicts = []
+ for add in addition:
+ nfe40_nAdicao_dict = {
+ "nfe40_nAdicao": add.addition_number,
+ "nfe40_nSeqAdic": add.addtion_sequence,
+ "nfe40_cFabricante": add.manufacturer_id.id,
+ "nfe40_vDescDI": add.discount_value,
+ "nfe40_nDraw": add.drawback,
+ }
+ nfe40_nAdicao_dicts.append((0, 0, nfe40_nAdicao_dict))
+
+ # Prepare the nfe40_DI dict
+ nfe40_DI_dict = {
+ "nfe40_DI_prod_id": line.id,
+ "nfe40_nDI": di.document_number,
+ "nfe40_dDI": di.document_date,
+ "nfe40_xLocDesemb": di.customs_clearance_location,
+ "nfe40_UFDesemb": di.customs_clearance_state_id.code,
+ "nfe40_dDesemb": di.customs_clearance_date,
+ "nfe40_tpViaTransp": map_transportation_type[
+ di.transportation_type
+ ],
+ "nfe40_vAFRMM": di.afrmm_value,
+ "nfe40_tpIntermedio": map_intermediary_type[
+ di.intermediary_type
+ ],
+ "nfe40_CNPJ": di.third_party_partner_id.cnpj_cpf,
+ "nfe40_UFTerceiro": di.third_party_partner_id.state_id.code,
+ "nfe40_cExportador": di.exporting_partner_id.id,
+ "nfe40_adi": nfe40_nAdicao_dicts,
+ # Link to the nfe40_nAdicao records
+ }
+
+ line.nfe40_DI = [(2, d, 0) for d in line.nfe40_DI.ids]
+ line.nfe40_DI = [(0, 0, nfe40_DI_dict)]
diff --git a/l10n_br_trade_import/models/l10n_br_import_addition.py b/l10n_br_trade_import/models/l10n_br_import_addition.py
new file mode 100644
index 000000000..e99df957b
--- /dev/null
+++ b/l10n_br_trade_import/models/l10n_br_import_addition.py
@@ -0,0 +1,49 @@
+# Copyright (C) 2022-Today - Engenere ().
+# @author Antônio S. Pereira Neto
+
+from odoo import fields, models
+
+
+class ImportAddition(models.Model):
+ _name = "l10n_br_trade_import.addition"
+ _description = "Import Addition"
+
+ import_declaration_id = fields.Many2one(
+ comodel_name="l10n_br_trade_import.declaration",
+ string="Import Declaration",
+ required=True,
+ )
+
+ import_declaration_number = fields.Char(
+ string="DI Number",
+ related="import_declaration_id.document_number",
+ help="Number of Import Declaration",
+ )
+
+ import_declaration_date = fields.Date(
+ string="DI Date",
+ related="import_declaration_id.document_date",
+ help="Date of Import Declaration",
+ )
+
+ addition_number = fields.Char(
+ string="Number", required=True, help="Number of Import Addition"
+ )
+
+ addtion_sequence = fields.Integer(
+ string="Sequence",
+ required=True,
+ help="Sequential number of the item within the Addition",
+ )
+
+ manufacturer_id = fields.Many2one(
+ comodel_name="res.partner",
+ required=True,
+ help="Foreign Manufacturer",
+ )
+
+ discount_value = fields.Float(
+ string="Discount", help="Discount value of the DI item - Addition"
+ )
+
+ drawback = fields.Char(help="Drawback concession act number")
diff --git a/l10n_br_trade_import/models/l10n_br_import_declaration.py b/l10n_br_trade_import/models/l10n_br_import_declaration.py
new file mode 100644
index 000000000..7e4d9b20e
--- /dev/null
+++ b/l10n_br_trade_import/models/l10n_br_import_declaration.py
@@ -0,0 +1,118 @@
+# Copyright (C) 2022-Today - Engenere ().
+# @author Antônio S. Pereira Neto
+
+from odoo import _, api, fields, models
+from odoo.exceptions import UserError
+
+
+class ImportDeclaration(models.Model):
+ _name = "l10n_br_trade_import.declaration"
+ _description = "Import Declaration"
+ _rec_name = "document_number"
+ _order = "document_date desc, document_number desc, id desc"
+
+ document_number = fields.Char(required=True, help="Number of Import Document")
+
+ document_date = fields.Date(required=True, help="Document Registration Date")
+
+ # Local de desembaraço Aduaneiro
+ customs_clearance_location = fields.Char(
+ required=True, help="Customs Clearance Location"
+ )
+
+ # Estado onde ocorreu o Desembaraço Aduaneiro
+ customs_clearance_state_id = fields.Many2one(
+ comodel_name="res.country.state",
+ required=True,
+ domain=[("country_id.code", "=", "BR")],
+ help="State where Customs Clearance occurred",
+ )
+
+ # Data do Desembaraço Aduaneiro
+ customs_clearance_date = fields.Date(required=True, help="Customs Clearance Date")
+
+ # Via de transporte internacional informada na Declaração
+ # de Importação (DI)
+ transportation_type = fields.Selection(
+ selection=[
+ ("maritime", "Maritime"),
+ ("fluvial", "Fluvial"),
+ ("lacustrine", "Lacustrine"),
+ ("aerial", "Aerial"),
+ ("postal", "Postal"),
+ ("rail", "Rail"),
+ ("road", "Road"),
+ ("conduit", "Conduct/Transmission Network"),
+ ("own_means", "Own Means"),
+ ("fict_in_out", "Fictitious In/Out"),
+ ("courier", "Courier"),
+ ("in_hands", "In hands"),
+ ("towing", "By towing."),
+ ],
+ required=True,
+ string="International Transport Route",
+ help="International transport route reported in the Import Declaration (DI)",
+ )
+
+ # Valor da AFRMM - Adicional ao Frete para Renovação da
+ # Marinha Mercante
+ afrmm_value = fields.Float(
+ string="AFRMM", help="Additional Freight for Merchant Navy Renewal"
+ )
+
+ # Forma de importação quanto a intermediação
+ intermediary_type = fields.Selection(
+ selection=[
+ ("conta_propria", "Conta Própria"),
+ ("conta_ordem", "Conta e Ordem"),
+ ("encomenda", "Encomenda"),
+ ],
+ required=True,
+ string="Intermediation",
+ help="Form of import regarding intermediation",
+ )
+
+ # Parceiro adquirente ou encomendante
+ third_party_partner_id = fields.Many2one(
+ comodel_name="res.partner",
+ string="Acquirer or the Orderer",
+ help="Acquirer or the Orderer Partner.\n"
+ "Required when intermediation is 'Conta e Ordem' or 'Encomenda'",
+ )
+
+ # Exportador
+ exporting_partner_id = fields.Many2one(
+ comodel_name="res.partner",
+ string="Exporting",
+ )
+
+ addition_ids = fields.One2many(
+ comodel_name="l10n_br_trade_import.addition",
+ inverse_name="import_declaration_id",
+ string="Additions",
+ )
+
+ @api.constrains("intermediary_type", "third_party_partner_id")
+ def _check_third_party_partner_id(self):
+ for di in self:
+ if (
+ di.intermediary_type in ["conta_ordem", "encomenda"]
+ and not di.third_party_partner_id
+ ):
+ raise UserError(
+ _(
+ "When the intermediation is 'Conta e Ordem' or 'Encomenda' "
+ "you must provide the Acquirer or Orderer's information"
+ )
+ )
+
+ @api.constrains("transportation_type", "afrmm_value")
+ def _check_AFRMM_value(self):
+ for di in self:
+ if di.transportation_type == "maritime" and di.afrmm_value == 0:
+ raise UserError(
+ _(
+ "When the international transport route is 'Maritime'\n"
+ "You must inform the AFRMM value."
+ )
+ )
diff --git a/l10n_br_trade_import/pyproject.toml b/l10n_br_trade_import/pyproject.toml
new file mode 100644
index 000000000..4231d0ccc
--- /dev/null
+++ b/l10n_br_trade_import/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["whool"]
+build-backend = "whool.buildapi"
diff --git a/l10n_br_trade_import/readme/CONFIGURE.md b/l10n_br_trade_import/readme/CONFIGURE.md
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/l10n_br_trade_import/readme/CONFIGURE.md
@@ -0,0 +1 @@
+
diff --git a/l10n_br_trade_import/readme/CONTRIBUTORS.md b/l10n_br_trade_import/readme/CONTRIBUTORS.md
new file mode 100644
index 000000000..1d25c5dd0
--- /dev/null
+++ b/l10n_br_trade_import/readme/CONTRIBUTORS.md
@@ -0,0 +1,2 @@
+- [Engenere](https://engenere.one):
+ - Antônio S. Pereira Neto \
diff --git a/l10n_br_trade_import/readme/DESCRIPTION.md b/l10n_br_trade_import/readme/DESCRIPTION.md
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/l10n_br_trade_import/readme/DESCRIPTION.md
@@ -0,0 +1 @@
+
diff --git a/l10n_br_trade_import/readme/HISTORY.md b/l10n_br_trade_import/readme/HISTORY.md
new file mode 100644
index 000000000..70d32454c
--- /dev/null
+++ b/l10n_br_trade_import/readme/HISTORY.md
@@ -0,0 +1,3 @@
+## 14.0.0.0.0 (2023-07-25)
+
+- \[NEW\] Primeira versão
diff --git a/l10n_br_trade_import/readme/ROADMAP.md b/l10n_br_trade_import/readme/ROADMAP.md
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/l10n_br_trade_import/readme/ROADMAP.md
@@ -0,0 +1 @@
+
diff --git a/l10n_br_trade_import/readme/USAGE.md b/l10n_br_trade_import/readme/USAGE.md
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/l10n_br_trade_import/readme/USAGE.md
@@ -0,0 +1 @@
+
diff --git a/l10n_br_trade_import/security/ir.model.access.csv b/l10n_br_trade_import/security/ir.model.access.csv
new file mode 100644
index 000000000..d325a4d1e
--- /dev/null
+++ b/l10n_br_trade_import/security/ir.model.access.csv
@@ -0,0 +1,3 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+a1,a1,model_l10n_br_trade_import_declaration,account.group_account_invoice,1,1,1,1
+a2,a2,model_l10n_br_trade_import_addition,account.group_account_invoice,1,1,1,1
diff --git a/l10n_br_trade_import/static/description/index.html b/l10n_br_trade_import/static/description/index.html
new file mode 100644
index 000000000..4b56fe031
--- /dev/null
+++ b/l10n_br_trade_import/static/description/index.html
@@ -0,0 +1,445 @@
+
+
+
+
+
+Import Declaration Management
+
+
+
+
+
Import Declaration Management
+
+
+

+
Table of contents
+
+
+
+
+
+
+
+
Bugs are tracked on GitHub 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.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
Current maintainers:
+

+
This module is part of the Engenere/engenere-addons project on GitHub.
+
You are welcome to contribute.
+
+
+
+
+
diff --git a/l10n_br_trade_import/views/account_move_views.xml b/l10n_br_trade_import/views/account_move_views.xml
new file mode 100644
index 000000000..5b0d4f8bf
--- /dev/null
+++ b/l10n_br_trade_import/views/account_move_views.xml
@@ -0,0 +1,21 @@
+
+
+
+ account.move
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/l10n_br_trade_import/views/import_addition.xml b/l10n_br_trade_import/views/import_addition.xml
new file mode 100644
index 000000000..42c7f8caa
--- /dev/null
+++ b/l10n_br_trade_import/views/import_addition.xml
@@ -0,0 +1,53 @@
+
+
+
+
+ l10n_br_trade_import.addition.search
+ l10n_br_trade_import.addition
+
+
+
+
+
+
+
+
+
+
+
+
+ l10n_br_trade_import.addition.tree
+ l10n_br_trade_import.addition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ l10n_br_trade_import.addition.form
+ l10n_br_trade_import.addition
+
+
+
+
+
+
diff --git a/l10n_br_trade_import/views/import_declaration.xml b/l10n_br_trade_import/views/import_declaration.xml
new file mode 100644
index 000000000..c7a47a948
--- /dev/null
+++ b/l10n_br_trade_import/views/import_declaration.xml
@@ -0,0 +1,84 @@
+
+
+
+
+ l10n_br_trade_import.declaration.search
+ l10n_br_trade_import.declaration
+
+
+
+
+
+
+
+
+
+ l10n_br_trade_import.declaration.tree
+ l10n_br_trade_import.declaration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ l10n_br_trade_import.declaration.form
+ l10n_br_trade_import.declaration
+
+
+
+
+
+
diff --git a/l10n_br_trade_import/views/menu.xml b/l10n_br_trade_import/views/menu.xml
new file mode 100644
index 000000000..9dbeac8fc
--- /dev/null
+++ b/l10n_br_trade_import/views/menu.xml
@@ -0,0 +1,14 @@
+
+
+ Import Declaration
+ l10n_br_trade_import.declaration
+ tree,form,kanban
+
+
+
diff --git a/l10n_br_trade_import/views/nfe_adi_view.xml b/l10n_br_trade_import/views/nfe_adi_view.xml
new file mode 100644
index 000000000..b3ff88dad
--- /dev/null
+++ b/l10n_br_trade_import/views/nfe_adi_view.xml
@@ -0,0 +1,36 @@
+
+
+
+ l10n.br.nfe.adi.tree
+ nfe.40.adi
+
+
+
+
+
+
+
+
+
+
+
+ l10n.br.nfe.adi.form
+ nfe.40.adi
+
+
+
+
+
diff --git a/l10n_br_trade_import/views/nfe_di_view.xml b/l10n_br_trade_import/views/nfe_di_view.xml
new file mode 100644
index 000000000..bc15fc36c
--- /dev/null
+++ b/l10n_br_trade_import/views/nfe_di_view.xml
@@ -0,0 +1,46 @@
+
+
+
+ l10n.br.nfe.di.tree
+ nfe.40.di
+
+
+
+
+
+
+
+
+
+
+
+
+
+ l10n.br.nfe.di.form
+ nfe.40.di
+
+
+
+
+
+
diff --git a/l10n_br_trade_import/views/nfe_document_view.xml b/l10n_br_trade_import/views/nfe_document_view.xml
new file mode 100644
index 000000000..0a8466d5f
--- /dev/null
+++ b/l10n_br_trade_import/views/nfe_document_view.xml
@@ -0,0 +1,22 @@
+
+
+
+
+ l10n_br_nfe.document.line.form.import.inherit
+ l10n_br_fiscal.document.line
+ 5
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sale_order_general_client_order_ref/static/description/index.html b/sale_order_general_client_order_ref/static/description/index.html
index 931cc30fa..16bc41f90 100644
--- a/sale_order_general_client_order_ref/static/description/index.html
+++ b/sale_order_general_client_order_ref/static/description/index.html
@@ -8,10 +8,11 @@
/*
:Author: David Goodger (goodger@python.org)
-:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
+:Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
:Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils.
+Despite the name, some widely supported CSS2 features are used.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
customize this style sheet.
@@ -274,7 +275,7 @@
margin-left: 2em ;
margin-right: 2em }
-pre.code .ln { color: grey; } /* line numbers */
+pre.code .ln { color: gray; } /* line numbers */
pre.code, code { background-color: #eeeeee }
pre.code .comment, code .comment { color: #5C6576 }
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@
span.pre {
white-space: pre }
-span.problematic {
+span.problematic, pre.problematic {
color: red }
span.section-subtitle {