Skip to content

Commit

Permalink
[RFC] l10n_br_cte: general refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
marcelsavegnago committed Nov 19, 2024
1 parent c4da291 commit 2b81e67
Show file tree
Hide file tree
Showing 55 changed files with 2,659 additions and 1,033 deletions.
66 changes: 44 additions & 22 deletions l10n_br_cte/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,12 @@ CT-e

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

[ This file must be max 2-3 paragraphs, and is required. ]
Este módulo permite a emissão de CT-e (Conhecimento de Transporte).

This module extends the functionality of ... to support ...
and to allow you to ...
Mais especificamente ele:
* mapea os campos de CT-e do módulo ``l10n_br_cte_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 CT-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.
Expand All @@ -46,31 +48,27 @@ and to allow you to ...
Configuration
=============

[ This file is optional, it should explain how to configure
the module before using it; it is aimed at advanced users. ]
Para configurar este módulo, você precisa definir um certificado digital na empresa e também definir o processador edoc da empresa.

To configure this module, you need to:
Usage
=====

#. Go to ...
**Passo a Passo:**

.. figure:: https://raw.githubusercontent.com/OCA/l10n-brazil/14.0/l10n_br_cte/static/description/image.png
:alt: alternative description
:width: 600 px
1. **Criar uma Fatura:**
- Defina o tipo de documento como **57 (CTe - Conhecimento de Transporte)**.

Usage
=====
2. **Configurar o Parceiro da Fatura:**
- Configure o parceiro responsável pelo pagamento do CTe e os parceiros como Rementente, Expedidor, Destinatário e Recebedor.

[ This file must be present and contains the usage instructions
for end-users. As all other rst files included in the README,
it MUST NOT contain reStructuredText sections
only body text (paragraphs, lists, tables, etc). Should you need
a more elaborate structure to explain the addon, please create a
Sphinx documentation (which may include this file as a "quick start"
section). ]
3. **Adicionar uma Linha na Aba Produtos:**
- Adicione uma linha de fatura e selecione o produto Frete ou outro que esteja previamente configurado.

To use this module, you need to:
4. **Acesse os detalhes fiscais da fatura e informe os demais dados necessário para emissão do CT-e:**
- Preencha os campos obrigatórios para emissão do CT-e.

#. Go to ...
5. **Valide o CT-e, verifique os dados do XML e envie para a SEFAZ:**
- Após preencher todos os dados necessários, valide o CT-e e envie para a SEFAZ.

Bug Tracker
===========
Expand All @@ -89,11 +87,24 @@ Authors
~~~~~~~

* KMEE
* Escodoo

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

* Ygor Carvalho <[email protected]>

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

* Luis Felipe Mileo <[email protected]>
* Ygor Carvalho <[email protected]>

* `ESCODOO <https://escodoo.com.br>`_:

* Marcel Savegnago <[email protected]>

* `AKRETION <https://akretion.com/pt-BR/>`_:

* Raphaël Valyi <[email protected]>

Maintainers
~~~~~~~~~~~
Expand All @@ -108,6 +119,17 @@ 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-mileo| image:: https://github.com/mileo.png?size=40px
:target: https://github.com/mileo
:alt: mileo
.. |maintainer-marcelsavegnago| image:: https://github.com/marcelsavegnago.png?size=40px
:target: https://github.com/marcelsavegnago
:alt: marcelsavegnago

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

|maintainer-mileo| |maintainer-marcelsavegnago|

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

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
25 changes: 15 additions & 10 deletions l10n_br_cte/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
"version": "14.0.1.0.0",
"category": "Localisation",
"license": "AGPL-3",
"author": "KMEE, Odoo Community Association (OCA)",
"author": "KMEE,Escodoo,Odoo Community Association (OCA)",
"maintainers": ["mileo", "marcelsavegnago"],
"website": "https://github.com/OCA/l10n-brazil",
"development_status": "Alpha",
"depends": [
Expand All @@ -18,18 +19,22 @@
],
"data": [
"security/ir.model.access.csv",
# "views/document_line.xml",
# 'views/document_related.xml',
# 'views/res_partner.xml',
"modal/modal_rodoviario.xml",
"modal/modal_aquaviario.xml",
"modal/modal_ferroviario.xml",
"modal/modal_aereo.xml",
"data/ir_config_parameter.xml",
"views/document.xml",
"views/cte_action.xml",
"views/cte_menu.xml",
"views/res_company.xml",
"views/cte_document.xml",
"views/modal/modal_rodoviario.xml",
"views/modal/modal_aquaviario.xml",
"views/modal/modal_ferroviario.xml",
"views/modal/modal_aereo.xml",
"wizards/document_correction_wizard.xml",
],
# "post_init_hook": "post_init_hook",
"demo": [
"demo/company_demo.xml",
"demo/fiscal_document_demo.xml",
],
"post_init_hook": "post_init_hook",
"installable": True,
"auto_install": False,
"external_dependencies": {
Expand Down
105 changes: 105 additions & 0 deletions l10n_br_cte/constants/cte.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# Copyright (C) 2024 - TODAY, Marcel Savegnago <[email protected]>
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html

CTE_VERSIONS = [("4.00", "4.00")]

CTE_VERSION_DEFAULT = "4.00"

CTE_ENVIRONMENTS = [("1", "Produção"), ("2", "Homologação")]

CTE_ENVIRONMENT_DEFAULT = "2"

CTE_EMIT_TYPES = [
("1", "1 - Prestador de serviço de transporte"),
("2", "2 - Transportador de Carga Própria"),
("3", "3 - Prestador de serviço de transporte que emitirá CT-e Globalizado"),
]

CTE_EMIT_TYPE_DEFAULT = "2"

CTE_TRANSP_TYPE = [
("1", "Empresa de Transporte de Cargas – ETC"),
("2", "Transportador Autônomo de Cargas – TAC"),
("3", "Cooperativa de Transporte de Cargas – CTC"),
]

CTE_TRANSP_TYPE_DEFAULT = "1"

CTE_TRANSMISSIONS = [
("1", "Emissão Normal"),
("2", "Contingência Off-Line"),
("3", "Regime Especial NFF"),
]

CTE_TRANSMISSION_DEFAULT = "1"

CTE_EMISSION_PROCESSES = [("0", "Emissão de CTe com aplicativo do contribuinte")]

CTE_EMISSION_PROCESS_DEFAULT = "0"

CTE_TYPE = [
("0", "CT-e Normal"),
("1", "CT-e de Complemento de Valores"),
("3", "CT-e de Substituição"),
]

CTE_TYPE_DEFAULT = "0"

CTE_INDIETOMA = [
("1", "Contribuinte ICMS"),
("2", "Contribuinte isento de inscrição"),
("9", "Não Contribuinte"),
]

CTE_INDIETOMA_DEFAULT = "1"

CTE_TPSERV = [
("0", "Normal"),
("1", "Subcontratação"),
("2", "Redespacho"),
("3", "Redespacho Intermediário"),
("4", "Serviço Vinculado a Multimodal"),
]

CTE_TPSERV_DEFAULT = "0"

CTE_TPEMIS = [
("1", "Normal"),
("3", "Regime Especial NFF"),
("4", "EPEC pela SVC"),
("5", "Contingência FSDA"),
("7", "Autorização pela SVC-RS"),
("8", "Autorização pela SVC-SP"),
]

CTE_TPEMIS_DEFAULT = "1"

CTE_TPIMP = [
("1", "Retrato"),
("2", "Paisagem."),
]

CTE_TPIMP_DEFAULT = "1"


CTE_ICMS_SUB_TAGS = [
"ICMS00",
"ICMS20",
"ICMS45",
"ICMS60",
"ICMS90",
"ICMSOutraUF",
"ICMSSN",
]

CTE_ICMS_SELECTION = list(map(lambda tag: (f"cte40_{tag}", tag), CTE_ICMS_SUB_TAGS))

CTE_CST = [
("00", "00 - Tributação normal ICMS"),
("20", "20 - Tributação com BC reduzida do ICMS"),
("45", "45 - ICMS Isento, não Tributado ou diferido"),
("60", "60 - ICMS cobrado por substituição tributária"),
("90", "90 - ICMS outros"),
("90", "90 - ICMS Outra UF"),
("01", "01 - Simples Nacional"),
]
11 changes: 11 additions & 0 deletions l10n_br_cte/constants/modal.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
CTE_MODALS = [
("01", "Rodoviário"),
("02", "Aéreo"),
("03", "Aquaviário"),
("04", "Ferroviário"),
("05", "Dutoviário"),
("06", "Multimodal"),
]

CTE_MODAL_DEFAULT = "01"

CTE_MODAL_VERSION_DEFAULT = "4.00"

TUF = [
Expand Down
9 changes: 9 additions & 0 deletions l10n_br_cte/data/ir_config_parameter.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">

<record id="cte_version_name" model="ir.config_parameter" forcecreate="True">
<field name="key">l10n_br_cte.version.name</field>
<field name="value">Odoo Brasil OCA v14</field>
</record>

</odoo>
24 changes: 24 additions & 0 deletions l10n_br_cte/demo/company_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">

<!-- Empresa Lucro Presumido -->
<record id="l10n_br_base.empresa_lucro_presumido" model="res.company">
<field name="processador_edoc">oca</field>
</record>

<record id="l10n_br_base.lucro_presumido_partner" model="res.partner">
<field name="rntrc_code">07946021</field>
</record>


<!-- Empresa Simples Nacional -->
<record id="l10n_br_base.empresa_simples_nacional" model="res.company">
<field name="processador_edoc">oca</field>
</record>

<record id="l10n_br_base.simples_nacional_partner" model="res.partner">
<field name="rntrc_code">07946021</field>
</record>


</odoo>
Loading

0 comments on commit 2b81e67

Please sign in to comment.