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][ADD] l10n_br_cte: add new module #3492

Open
wants to merge 24 commits into
base: 14.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
3e2b1ec
[REF] l10n_br_cte_spec: black 24.4.2 formatting
rvalyi Jun 19, 2024
b8856a4
[IMP] l10n_br_cte_spec: NT 2024.002
rvalyi Jun 16, 2024
7c9d7f3
[ADD] l10n_br_cte: add new module
mileo Oct 24, 2024
813810d
[RFC] l10n_br_fiscal: add service provider and transport model
mileo Oct 24, 2024
fc8b969
[RFC] l10n_br_cte: escodoo refactor
marcelsavegnago Oct 24, 2024
07652db
[RFC] l10n_br_fiscal: escodoo refactor
marcelsavegnago Oct 24, 2024
c0ae5e5
[FIX] l10n_br_cte: fix pre-commit
marcelsavegnago Oct 24, 2024
541a025
[RFC] l10n_br_cte: multi-schema refactor
marcelsavegnago Oct 25, 2024
4f5c689
[IMP] l10n_br_cte: add tests
marcelsavegnago Oct 26, 2024
b939222
[IMP] l10n_br_cte: add res_country not create
marcelsavegnago Oct 29, 2024
2c9f57e
[FIX] l10n_br_cte: fix fone field
marcelsavegnago Oct 29, 2024
c76aa85
[IMP] l10n_br_fiscal: add cte demo data
marcelsavegnago Nov 14, 2024
251d307
[IMP] l10n_br_fiscal: add cte partners fields
marcelsavegnago Nov 14, 2024
460d1e4
[RFC] l10n_br_cte: general refactor
marcelsavegnago Nov 14, 2024
ba7a927
[IMP] l10n_br_cte: add rntrc_code on company partner
marcelsavegnago Nov 19, 2024
96f9917
[FIX] l10n_br_cte: remove _stacking_points from document_comment and …
marcelsavegnago Nov 19, 2024
68b8bd7
[FIX] l10n_br_cte: fix demo data record name
marcelsavegnago Nov 19, 2024
8cffed1
[FIX] l10n_br_cte: fix fiscal document form view
marcelsavegnago Nov 20, 2024
eea4592
[TEST] l10n_br_cte: dacte print
marcelsavegnago Nov 21, 2024
207786b
[RFC] l10n_bt_cte: tests refactor
marcelsavegnago Nov 22, 2024
1341947
[RFC] l10n_br_cte_spec: rename model spec_models to spec_mixin
marcelsavegnago Oct 28, 2024
ea2c34e
[RFC] l10n_br_cte_spec: multi schema refactor
marcelsavegnago Nov 21, 2024
825b18a
[FIX] spec_driven_model: define default value if rec_name not found
marcelsavegnago Nov 22, 2024
dc75606
[RFC] l10n_br_cte: refactor dacte report
marcelsavegnago Nov 25, 2024
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
135 changes: 135 additions & 0 deletions l10n_br_cte/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
====
CT-e
====

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

.. |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_cte
: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-brazil-14-0-l10n_br_cte
: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
:alt: Try me on Runboat

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

Este módulo permite a emissão de CT-e (Conhecimento de Transporte).

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.
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
=============

Para configurar este módulo, você precisa definir um certificado digital na empresa e também definir o processador edoc da empresa.

Usage
=====

**Passo a Passo:**

1. **Criar uma Fatura:**
- Defina o tipo de documento como **57 (CTe - Conhecimento de Transporte)**.

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.

3. **Adicionar uma Linha na Aba Produtos:**
- Adicione uma linha de fatura e selecione o produto Frete ou outro que esteja previamente configurado.

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.

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
===========

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_cte%0Aversion:%2014.0%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
* Escodoo

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


* `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
~~~~~~~~~~~

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-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.
3 changes: 3 additions & 0 deletions l10n_br_cte/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .hooks import post_init_hook
from . import models
from . import report
58 changes: 58 additions & 0 deletions l10n_br_cte/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Copyright 2023 KMEE
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "CT-e",
"summary": """Brazilian Electronic Invoice CT-e""",
"version": "14.0.1.0.0",
"category": "Localisation",
"license": "AGPL-3",
"author": "KMEE,Escodoo,Odoo Community Association (OCA)",
"maintainers": ["mileo", "marcelsavegnago"],
"website": "https://github.com/OCA/l10n-brazil",
"development_status": "Alpha",
"depends": [
"l10n_br_fiscal_edi",
"l10n_br_cte_spec",
"l10n_br_fiscal_certificate",
"spec_driven_model",
],
"data": [
# Data
"data/ir_config_parameter.xml",
# Security
"security/ir.model.access.csv",
# Views
"views/document.xml",
"views/res_company.xml",
"views/modal/modal_rodoviario.xml",
"views/modal/modal_aquaviario.xml",
"views/modal/modal_ferroviario.xml",
"views/modal/modal_aereo.xml",
# Report
"report/reports.xml",
"report/dacte_cte.xml",
"report/dacte_report.xml",
# Wizards
"wizards/document_correction_wizard.xml",
# Actions
"views/cte_action.xml",
# Menus
"views/cte_menu.xml",
],
"demo": [
"demo/company_demo.xml",
"demo/fiscal_document_demo.xml",
],
"post_init_hook": "post_init_hook",
"installable": True,
"auto_install": False,
"external_dependencies": {
"python": [
"nfelib<=2.0.7",
"erpbrasil.assinatura>=1.7.0",
"erpbrasil.transmissao>=1.1.0",
"erpbrasil.edoc>=2.5.2",
],
},
}
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"),
]
43 changes: 43 additions & 0 deletions l10n_br_cte/constants/modal.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
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 = [
("AC", "AC"),
("AL", "AL"),
("AM", "AM"),
("AP", "AP"),
("BA", "BA"),
("CE", "CE"),
("DF", "DF"),
("ES", "ES"),
("GO", "GO"),
("MA", "MA"),
("MG", "MG"),
("MS", "MS"),
("MT", "MT"),
("PA", "PA"),
("PB", "PB"),
("PE", "PE"),
("PI", "PI"),
("PR", "PR"),
("RJ", "RJ"),
("RN", "RN"),
("RO", "RO"),
("RR", "RR"),
("RS", "RS"),
("SC", "SC"),
("SE", "SE"),
("SP", "SP"),
("TO", "TO"),
("EX", "EX"),
]
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>
antoniospneto marked this conversation as resolved.
Show resolved Hide resolved

</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
Loading