Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
10 changes: 8 additions & 2 deletions l10n_br_account/views/account_move_view.xml
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@
<field name="cfop_id" optional="hide" />
<field name="tax_classification_id" optional="hide" />
<field name="city_taxation_code_id" optional="hide" />
<field name="national_taxation_code_id" optional="hide" />
<field name="service_type_id" optional="hide" />
<field name="cnae_id" optional="hide" />
<field name="ncm_id" optional="hide" />
Expand Down Expand Up @@ -223,6 +224,7 @@
<field name="fiscal_operation_line_id" optional="hide" />
<field name="cfop_id" optional="hide" />
<field name="city_taxation_code_id" optional="hide" />
<field name="national_taxation_code_id" optional="hide" />
<field name="service_type_id" optional="hide" />
<field name="cnae_id" optional="hide" />
<field name="ncm_id" optional="hide" />
Expand Down Expand Up @@ -425,11 +427,15 @@
/>
<field
name="city_taxation_code_id"
attrs="{'invisible': ['|', ('document_type_id', '=', False), ('tax_icms_or_issqn', '=', 'icms')], 'required': [('document_type_id', '!=', False), ('tax_icms_or_issqn', '=', 'issqn'),('fiscal_operation_type','=','out')]}"
attrs="{'invisible': ['|', ('document_type_id', '=', False), ('tax_icms_or_issqn', '=', 'icms')]}"
/>
<field
name="national_taxation_code_id"
attrs="{'invisible': ['|', ('document_type_id', '=', False), ('tax_icms_or_issqn', '=', 'icms')]}"
/>
<field
name="service_type_id"
attrs="{'invisible': ['|', ('document_type_id', '=', False), ('tax_icms_or_issqn', '=', 'icms')], 'required': [('document_type_id', '!=', False), ('tax_icms_or_issqn', '=', 'issqn'),('fiscal_operation_type','=','out')]}"
attrs="{'invisible': ['|', ('document_type_id', '=', False), ('tax_icms_or_issqn', '=', 'icms')]}"
/>
<field
name="cnae_id"
Expand Down
5 changes: 5 additions & 0 deletions l10n_br_contract/views/contract_line.xml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,11 @@
attrs="{'invisible': ['|', '|', ('tax_icms_or_issqn', '=', 'icms'), ('country_id', '!=', %(base.br)d), ('fiscal_operation_id', '=', False)]}"
options="{'no_create': True}"
/>
<field
name="national_taxation_code_id"
attrs="{'invisible': ['|', '|', ('tax_icms_or_issqn', '=', 'icms'), ('country_id', '!=', %(base.br)d), ('fiscal_operation_id', '=', False)]}"
options="{'no_create': True}"
/>
<field
name="cnae_id"
attrs="{'invisible': ['|', '|', ('tax_icms_or_issqn', '=', 'icms'), ('country_id', '!=', %(base.br)d), ('fiscal_operation_id', '=', False)]}"
Expand Down
6 changes: 1 addition & 5 deletions l10n_br_fiscal/README.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

========================
Módulo fiscal brasileiro
========================
Expand All @@ -17,7 +13,7 @@ Módulo fiscal brasileiro
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
:target: https://odoo-community.org/page/development-status
:alt: Production/Stable
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
.. |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
Expand Down
1 change: 1 addition & 0 deletions l10n_br_fiscal/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@
"views/uom_uom.xml",
"views/invalidate_number_view.xml",
"views/city_taxation_code.xml",
"views/national_taxation_code.xml",
"views/operation_dashboard_view.xml",
# Actions
"views/l10n_br_fiscal_action.xml",
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 @@ -57,6 +57,7 @@
from . import subsequent_document
from . import document_email
from . import city_taxation_code
from . import national_taxation_code
from . import document_supplement
from . import tax_classification
from . import operation_indicator
13 changes: 12 additions & 1 deletion l10n_br_fiscal/models/document_line_mixin.py
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,18 @@ def _operation_domain(self):
)

city_taxation_code_id = fields.Many2one(
comodel_name="l10n_br_fiscal.city.taxation.code", string="City Taxation Code"
comodel_name="l10n_br_fiscal.city.taxation.code",
string="City Taxation Code",
help=(
"City Taxation Code for Municipal NFS-e or "
"ISS Municipal Taxation Code for National NFS-e."
),
)

national_taxation_code_id = fields.Many2one(
comodel_name="l10n_br_fiscal.national.taxation.code",
string="ISS National Taxation Code",
help="National Taxation Code for the ISS tax (National NFS-e)",
)

operation_indicator_id = fields.Many2one(
Expand Down
6 changes: 6 additions & 0 deletions l10n_br_fiscal/models/document_line_mixin_methods.py
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,7 @@ def _onchange_fiscal_operation_line_id(self):
nbs=self.nbs_id,
cest=self.cest_id,
city_taxation_code=self.city_taxation_code_id,
national_taxation_code=self.national_taxation_code_id,
service_type=self.service_type_id,
ind_final=self.ind_final,
)
Expand Down Expand Up @@ -456,6 +457,10 @@ def _onchange_product_id_fiscal(self):
if city_id:
self.city_taxation_code_id = city_id
self.issqn_fg_city_id = company_city_id
if self.product_id.national_taxation_code_id:
self.national_taxation_code_id = (
self.product_id.national_taxation_code_id
)
else:
self.name = False
self.fiscal_type = False
Expand All @@ -470,6 +475,7 @@ def _onchange_product_id_fiscal(self):
self.service_type_id = False
self.operation_indicator_id = False
self.city_taxation_code_id = False
self.national_taxation_code_id = False
self.uot_id = False

self._get_product_price()
Expand Down
19 changes: 19 additions & 0 deletions l10n_br_fiscal/models/national_taxation_code.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Copyright 2025 Marcel Savegnago <https://escodoo.com.br>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import fields, models


class NationalTaxationCode(models.Model):
_name = "l10n_br_fiscal.national.taxation.code"
_inherit = "l10n_br_fiscal.data.abstract"
_description = "National Taxation Code"

tax_definition_ids = fields.Many2many(
comodel_name="l10n_br_fiscal.tax.definition",
relation="tax_definition_national_taxation_code_rel",
column1="national_taxation_code_id",
column2="tax_definition_id",
readonly=True,
string="Tax Definition",
)
5 changes: 5 additions & 0 deletions l10n_br_fiscal/models/operation_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,7 @@ def map_fiscal_taxes(
nbs=None,
cest=None,
city_taxation_code=None,
national_taxation_code=None,
service_type=None,
ind_final=None,
):
Expand Down Expand Up @@ -244,6 +245,7 @@ def map_fiscal_taxes(
nbs=nbs,
cest=cest,
city_taxation_code=city_taxation_code,
national_taxation_code=national_taxation_code,
service_type=service_type,
):
self._build_mapping_result(mapping_result, tax_definition)
Expand Down Expand Up @@ -298,6 +300,7 @@ def map_fiscal_taxes(
nbs=nbs,
cest=cest,
city_taxation_code=city_taxation_code,
national_taxation_code=national_taxation_code,
service_type=service_type,
):
self._build_mapping_result(mapping_result, tax_definition)
Expand All @@ -314,6 +317,7 @@ def map_fiscal_taxes(
nbs=nbs,
cest=cest,
city_taxation_code=city_taxation_code,
national_taxation_code=national_taxation_code,
service_type=service_type,
):
self._build_mapping_result(mapping_result, tax_definition)
Expand All @@ -330,6 +334,7 @@ def map_fiscal_taxes(
nbs=nbs,
cest=cest,
city_taxation_code=city_taxation_code,
national_taxation_code=national_taxation_code,
service_type=service_type,
):
self._build_mapping_result(mapping_result, tax_definition)
Expand Down
5 changes: 5 additions & 0 deletions l10n_br_fiscal/models/product_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,11 @@ def _get_default_ncm_id(self):
comodel_name="l10n_br_fiscal.city.taxation.code", string="City Taxation Code"
)

national_taxation_code_id = fields.Many2one(
comodel_name="l10n_br_fiscal.national.taxation.code",
string="National Taxation Code",
)

fiscal_genre_code = fields.Char(
related="fiscal_genre_id.code", store=True, string="Fiscal Product Genre Code"
)
Expand Down
12 changes: 12 additions & 0 deletions l10n_br_fiscal/models/tax_definition.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,14 @@ def name_get(self):
string="City Taxation Codes",
)

national_taxation_code_ids = fields.Many2many(
comodel_name="l10n_br_fiscal.national.taxation.code",
relation="tax_definition_national_taxation_code_rel",
column1="tax_definition_id",
column2="national_taxation_code_id",
string="National Taxation Codes",
)

service_type_ids = fields.Many2many(
comodel_name="l10n_br_fiscal.service.type",
relation="tax_definition_service_type_rel",
Expand Down Expand Up @@ -431,6 +439,7 @@ def map_tax_definition(
nbs=None,
cest=None,
city_taxation_code=None,
national_taxation_code=None,
service_type=None,
):
if not ncm:
Expand Down Expand Up @@ -461,6 +470,9 @@ def map_tax_definition(
("city_taxation_code_ids", "=", False),
("city_taxation_code_ids", "=", city_taxation_code.id),
"|",
("national_taxation_code_ids", "=", False),
("national_taxation_code_ids", "=", national_taxation_code.id),
"|",
("service_type_ids", "=", False),
("service_type_ids", "=", service_type.id),
"|",
Expand Down
2 changes: 2 additions & 0 deletions l10n_br_fiscal/security/ir.model.access.csv
Original file line number Diff line number Diff line change
Expand Up @@ -108,5 +108,7 @@
"l10n_br_fiscal_invalidate_number_manager","manager_l10n_br_fiscal_invalidate_number","model_l10n_br_fiscal_invalidate_number","l10n_br_fiscal.group_manager",1,1,1,1
"l10n_br_fiscal_city_taxation_code_user","Fiscal City Taxation Code for User","model_l10n_br_fiscal_city_taxation_code","l10n_br_fiscal.group_user",1,1,1,0
"l10n_br_fiscal_city_taxation_code_manager","Fiscal City Taxation Code for Manager","model_l10n_br_fiscal_city_taxation_code","l10n_br_fiscal.group_user",1,1,1,1
"l10n_br_fiscal_national_taxation_code_user","Fiscal National Taxation Code for User","model_l10n_br_fiscal_national_taxation_code","l10n_br_fiscal.group_user",1,1,1,0
"l10n_br_fiscal_national_taxation_code_manager","Fiscal National Taxation Code for Manager","model_l10n_br_fiscal_national_taxation_code","l10n_br_fiscal.group_user",1,1,1,1
"l10n_br_fiscal_base_wizard_mixin_user",l10n_br_fiscal_base_wizard_mixin,model_l10n_br_fiscal_base_wizard_mixin,base.group_user,1,1,1,1
"l10n_br_fiscal_document_status_wizard_user",l10n_br_fiscal_document_status_wizard,model_l10n_br_fiscal_document_status_wizard,base.group_user,1,1,1,1
Loading