odoo-addon-l10n-br-fiscal 17.0.1.0.0.11__py3-none-any.whl → 18.0.5.0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of odoo-addon-l10n-br-fiscal might be problematic. Click here for more details.
- odoo/addons/l10n_br_fiscal/README.rst +10 -10
- odoo/addons/l10n_br_fiscal/__init__.py +1 -0
- odoo/addons/l10n_br_fiscal/__manifest__.py +3 -2
- odoo/addons/l10n_br_fiscal/constants/fiscal.py +51 -24
- odoo/addons/l10n_br_fiscal/data/ir_cron.xml +19 -34
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.document.type.csv +1 -0
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal_cfop_data.xml +0 -2
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal_data.xml +6 -8
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal_icms_tax_definition_data.xml +4055 -4033
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal_server_action.xml +0 -2
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal_tax_icms_data.xml +54 -50
- odoo/addons/l10n_br_fiscal/data/operation_data.xml +198 -182
- odoo/addons/l10n_br_fiscal/data/product_data.xml +0 -2
- odoo/addons/l10n_br_fiscal/data/res_partner_data.xml +0 -2
- odoo/addons/l10n_br_fiscal/data/simplified_tax_data.xml +0 -2
- odoo/addons/l10n_br_fiscal/data/uom_data.xml +0 -2
- odoo/addons/l10n_br_fiscal/demo/city_taxation_code_demo.xml +0 -2
- odoo/addons/l10n_br_fiscal/demo/company_demo.xml +0 -3
- odoo/addons/l10n_br_fiscal/demo/fiscal_document_demo.xml +40 -228
- odoo/addons/l10n_br_fiscal/demo/fiscal_document_nfse_demo.xml +0 -5
- odoo/addons/l10n_br_fiscal/demo/fiscal_operation_demo.xml +2 -4
- odoo/addons/l10n_br_fiscal/demo/icms_tax_definition_demo.xml +0 -2
- odoo/addons/l10n_br_fiscal/demo/partner_demo.xml +0 -2
- odoo/addons/l10n_br_fiscal/demo/product_demo.xml +0 -1705
- odoo/addons/l10n_br_fiscal/demo/res_users_demo.xml +0 -2
- odoo/addons/l10n_br_fiscal/hooks.py +68 -0
- odoo/addons/l10n_br_fiscal/i18n/l10n_br_fiscal.pot +232 -201
- odoo/addons/l10n_br_fiscal/i18n/pt_BR.po +1272 -1344
- odoo/addons/l10n_br_fiscal/migrations/18.0.2.0.0/pre-migration.py +25 -0
- odoo/addons/l10n_br_fiscal/migrations/18.0.3.0.0/pre-migration.py +30 -0
- odoo/addons/l10n_br_fiscal/models/cfop.py +1 -1
- odoo/addons/l10n_br_fiscal/models/cnae.py +2 -2
- odoo/addons/l10n_br_fiscal/models/comment.py +12 -27
- odoo/addons/l10n_br_fiscal/models/cst.py +2 -2
- odoo/addons/l10n_br_fiscal/models/data_abstract.py +11 -24
- odoo/addons/l10n_br_fiscal/models/document.py +57 -9
- odoo/addons/l10n_br_fiscal/models/document_line.py +65 -5
- odoo/addons/l10n_br_fiscal/models/document_line_mixin.py +118 -38
- odoo/addons/l10n_br_fiscal/models/document_line_mixin_methods.py +261 -295
- odoo/addons/l10n_br_fiscal/models/document_mixin.py +8 -16
- odoo/addons/l10n_br_fiscal/models/document_mixin_methods.py +49 -177
- odoo/addons/l10n_br_fiscal/models/document_related.py +1 -1
- odoo/addons/l10n_br_fiscal/models/document_serie.py +35 -2
- odoo/addons/l10n_br_fiscal/models/document_type.py +0 -1
- odoo/addons/l10n_br_fiscal/models/ibpt.py +1 -1
- odoo/addons/l10n_br_fiscal/models/icms_regulation.py +1 -1
- odoo/addons/l10n_br_fiscal/models/invalidate_number.py +6 -7
- odoo/addons/l10n_br_fiscal/models/legal_nature.py +1 -1
- odoo/addons/l10n_br_fiscal/models/nbm.py +2 -2
- odoo/addons/l10n_br_fiscal/models/nbs.py +4 -4
- odoo/addons/l10n_br_fiscal/models/ncm.py +4 -4
- odoo/addons/l10n_br_fiscal/models/operation.py +2 -2
- odoo/addons/l10n_br_fiscal/models/operation_dashboard.py +3 -2
- odoo/addons/l10n_br_fiscal/models/operation_line.py +1 -1
- odoo/addons/l10n_br_fiscal/models/partner_profile.py +7 -1
- odoo/addons/l10n_br_fiscal/models/product_template.py +1 -1
- odoo/addons/l10n_br_fiscal/models/res_partner.py +9 -0
- odoo/addons/l10n_br_fiscal/models/tax.py +12 -4
- odoo/addons/l10n_br_fiscal/models/tax_group.py +6 -6
- odoo/addons/l10n_br_fiscal/models/tax_pis_cofins.py +4 -4
- odoo/addons/l10n_br_fiscal/models/tax_pis_cofins_base.py +3 -3
- odoo/addons/l10n_br_fiscal/models/tax_pis_cofins_credit.py +3 -3
- odoo/addons/l10n_br_fiscal/security/fiscal_security.xml +6 -18
- odoo/addons/l10n_br_fiscal/security/ir.model.access.csv +1 -2
- odoo/addons/l10n_br_fiscal/static/description/index.html +8 -8
- odoo/addons/l10n_br_fiscal/tests/__init__.py +1 -0
- odoo/addons/l10n_br_fiscal/tests/test_document_edition.py +200 -14
- odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_generic.py +16 -44
- odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_nfse.py +0 -5
- odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_serie.py +60 -0
- odoo/addons/l10n_br_fiscal/tests/test_tax_benefit.py +2 -5
- odoo/addons/l10n_br_fiscal/views/cest_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/cfop_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/city_taxation_code.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/cnae_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/comment_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/cst_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/document_line_mixin_view.xml +1 -1
- odoo/addons/l10n_br_fiscal/views/document_line_view.xml +6 -4
- odoo/addons/l10n_br_fiscal/views/document_related_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/document_serie_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/document_type_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/document_view.xml +29 -29
- odoo/addons/l10n_br_fiscal/views/icms_regulation_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/icms_relief_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/invalidate_number_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/l10n_br_fiscal_action.xml +36 -36
- odoo/addons/l10n_br_fiscal/views/l10n_br_fiscal_menu.xml +0 -9
- odoo/addons/l10n_br_fiscal/views/legal_nature_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/nbm_view.xml +5 -5
- odoo/addons/l10n_br_fiscal/views/nbs_view.xml +5 -5
- odoo/addons/l10n_br_fiscal/views/ncm_view.xml +5 -5
- odoo/addons/l10n_br_fiscal/views/operation_dashboard_view.xml +7 -8
- odoo/addons/l10n_br_fiscal/views/operation_line_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/operation_view.xml +4 -4
- odoo/addons/l10n_br_fiscal/views/partner_profile_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/product_genre_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/product_product_view.xml +38 -11
- odoo/addons/l10n_br_fiscal/views/product_template_view.xml +22 -9
- odoo/addons/l10n_br_fiscal/views/res_config_settings_view.xml +8 -8
- odoo/addons/l10n_br_fiscal/views/res_partner_view.xml +9 -0
- odoo/addons/l10n_br_fiscal/views/service_type_view.xml +5 -5
- odoo/addons/l10n_br_fiscal/views/simplified_tax_range_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/simplified_tax_view.xml +4 -4
- odoo/addons/l10n_br_fiscal/views/tax_definition_view.xml +4 -4
- odoo/addons/l10n_br_fiscal/views/tax_estimate_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/tax_group_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/tax_ipi_control_seal_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/tax_ipi_guideline_class_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/tax_ipi_guideline_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/tax_pis_cofins_base_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/tax_pis_cofins_credit_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/tax_pis_cofins_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/tax_view.xml +2 -2
- odoo/addons/l10n_br_fiscal/views/uom_uom.xml +2 -2
- odoo/addons/l10n_br_fiscal/wizards/base_wizard_mixin.py +1 -1
- {odoo_addon_l10n_br_fiscal-17.0.1.0.0.11.dist-info → odoo_addon_l10n_br_fiscal-18.0.5.0.0.1.dist-info}/METADATA +16 -16
- {odoo_addon_l10n_br_fiscal-17.0.1.0.0.11.dist-info → odoo_addon_l10n_br_fiscal-18.0.5.0.0.1.dist-info}/RECORD +120 -116
- {odoo_addon_l10n_br_fiscal-17.0.1.0.0.11.dist-info → odoo_addon_l10n_br_fiscal-18.0.5.0.0.1.dist-info}/WHEEL +0 -0
- {odoo_addon_l10n_br_fiscal-17.0.1.0.0.11.dist-info → odoo_addon_l10n_br_fiscal-18.0.5.0.0.1.dist-info}/top_level.txt +0 -0
|
@@ -40,15 +40,10 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
40
40
|
def test_nfe_same_state(self):
|
|
41
41
|
"""Test NFe same state."""
|
|
42
42
|
for line in self.nfe_same_state.fiscal_line_ids:
|
|
43
|
-
line._onchange_product_id_fiscal()
|
|
44
|
-
|
|
45
43
|
# Restore the original price_unit value,
|
|
46
44
|
# as the product change might have altered it.
|
|
47
45
|
line.price_unit = 100
|
|
48
46
|
|
|
49
|
-
line._onchange_fiscal_operation_id()
|
|
50
|
-
line._onchange_fiscal_taxes()
|
|
51
|
-
|
|
52
47
|
if "Revenda" in line.fiscal_operation_line_id.name:
|
|
53
48
|
self.assertEqual(
|
|
54
49
|
line.cfop_id.code,
|
|
@@ -77,9 +72,10 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
77
72
|
# ICMS
|
|
78
73
|
self.assertTrue(
|
|
79
74
|
is_icms_internal,
|
|
80
|
-
"Error to mapping ICMS Inernal for
|
|
75
|
+
"Error to mapping ICMS Inernal for "
|
|
76
|
+
f"{self.nfe_same_state.partner_id.state_id.name}"
|
|
81
77
|
" for Venda de Contribuinte Dentro do "
|
|
82
|
-
"Estado."
|
|
78
|
+
"Estado.",
|
|
83
79
|
)
|
|
84
80
|
self.assertEqual(
|
|
85
81
|
line.icms_cst_id.code,
|
|
@@ -162,10 +158,6 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
162
158
|
def test_nfe_other_state(self):
|
|
163
159
|
"""Test NFe other state."""
|
|
164
160
|
for line in self.nfe_other_state.fiscal_line_ids:
|
|
165
|
-
line._onchange_product_id_fiscal()
|
|
166
|
-
line._onchange_fiscal_operation_id()
|
|
167
|
-
line._onchange_fiscal_taxes()
|
|
168
|
-
|
|
169
161
|
if "Revenda" in line.fiscal_operation_line_id.name:
|
|
170
162
|
self.assertEqual(
|
|
171
163
|
line.cfop_id.code,
|
|
@@ -277,10 +269,6 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
277
269
|
def test_nfe_not_taxpayer(self):
|
|
278
270
|
"""Test NFe not taxpayer."""
|
|
279
271
|
for line in self.nfe_not_taxpayer.fiscal_line_ids:
|
|
280
|
-
line._onchange_product_id_fiscal()
|
|
281
|
-
line._onchange_fiscal_operation_id()
|
|
282
|
-
line._onchange_fiscal_taxes()
|
|
283
|
-
|
|
284
272
|
if "Revenda" in line.fiscal_operation_line_id.name:
|
|
285
273
|
self.assertEqual(
|
|
286
274
|
line.cfop_id.code,
|
|
@@ -379,10 +367,6 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
379
367
|
def test_nfe_not_taxpayer_not_company(self):
|
|
380
368
|
"""Test NFe not taxpayer not Company."""
|
|
381
369
|
for line in self.nfe_not_taxpayer_pf.fiscal_line_ids:
|
|
382
|
-
line._onchange_product_id_fiscal()
|
|
383
|
-
line._onchange_fiscal_operation_id()
|
|
384
|
-
line._onchange_fiscal_taxes()
|
|
385
|
-
|
|
386
370
|
if "Revenda" in line.fiscal_operation_line_id.name:
|
|
387
371
|
self.assertEqual(
|
|
388
372
|
line.cfop_id.code,
|
|
@@ -481,10 +465,6 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
481
465
|
def test_nfe_export(self):
|
|
482
466
|
"""Test NFe export."""
|
|
483
467
|
for line in self.nfe_export.fiscal_line_ids:
|
|
484
|
-
line._onchange_product_id_fiscal()
|
|
485
|
-
line._onchange_fiscal_operation_id()
|
|
486
|
-
line._onchange_fiscal_taxes()
|
|
487
|
-
|
|
488
468
|
if "Revenda" in line.fiscal_operation_line_id.name:
|
|
489
469
|
self.assertEqual(
|
|
490
470
|
line.cfop_id.code,
|
|
@@ -575,8 +555,6 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
575
555
|
def test_nfe_sn_same_state(self):
|
|
576
556
|
"""Test NFe Simples Nacional same state."""
|
|
577
557
|
for line in self.nfe_sn_same_state.fiscal_line_ids:
|
|
578
|
-
line._onchange_product_id_fiscal()
|
|
579
|
-
|
|
580
558
|
# set fake estimate tax
|
|
581
559
|
line.ncm_id.tax_estimate_ids.create(
|
|
582
560
|
{
|
|
@@ -587,9 +565,9 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
587
565
|
"federal_taxes_national": 33.00,
|
|
588
566
|
}
|
|
589
567
|
)
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
line.
|
|
568
|
+
# força o compute, pois não é chamado automaticamente
|
|
569
|
+
# quando uma informação externa muda.
|
|
570
|
+
line._compute_tax_fields()
|
|
593
571
|
|
|
594
572
|
if "Revenda" in line.fiscal_operation_line_id.name:
|
|
595
573
|
self.assertEqual(
|
|
@@ -688,10 +666,6 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
688
666
|
def test_nfe_sn_other_state(self):
|
|
689
667
|
"""Test NFe SN other state."""
|
|
690
668
|
for line in self.nfe_sn_other_state.fiscal_line_ids:
|
|
691
|
-
line._onchange_product_id_fiscal()
|
|
692
|
-
line._onchange_fiscal_operation_id()
|
|
693
|
-
line._onchange_fiscal_taxes()
|
|
694
|
-
|
|
695
669
|
if "Revenda" in line.fiscal_operation_line_id.name:
|
|
696
670
|
self.assertEqual(
|
|
697
671
|
line.cfop_id.code,
|
|
@@ -786,10 +760,6 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
786
760
|
def test_nfe_sn_not_taxpayer(self):
|
|
787
761
|
"""Test NFe SN not taxpayer."""
|
|
788
762
|
for line in self.nfe_sn_not_taxpayer.fiscal_line_ids:
|
|
789
|
-
line._onchange_product_id_fiscal()
|
|
790
|
-
line._onchange_fiscal_operation_id()
|
|
791
|
-
line._onchange_fiscal_taxes()
|
|
792
|
-
|
|
793
763
|
if "Revenda" in line.fiscal_operation_line_id.name:
|
|
794
764
|
self.assertEqual(
|
|
795
765
|
line.cfop_id.code,
|
|
@@ -871,10 +841,6 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
871
841
|
def test_nfe_sn_export(self):
|
|
872
842
|
"""Test NFe SN export."""
|
|
873
843
|
for line in self.nfe_sn_export.fiscal_line_ids:
|
|
874
|
-
line._onchange_product_id_fiscal()
|
|
875
|
-
line._onchange_fiscal_operation_id()
|
|
876
|
-
line._onchange_fiscal_taxes()
|
|
877
|
-
|
|
878
844
|
if "Revenda" in line.fiscal_operation_line_id.name:
|
|
879
845
|
self.assertEqual(
|
|
880
846
|
line.cfop_id.code,
|
|
@@ -982,10 +948,16 @@ class TestFiscalDocumentGeneric(TransactionCase):
|
|
|
982
948
|
def test_nfe_comments(self):
|
|
983
949
|
self.nfe_not_taxpayer._document_comment()
|
|
984
950
|
additional_data = self.nfe_not_taxpayer.fiscal_line_ids[0].additional_data
|
|
985
|
-
self.
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
951
|
+
if self.env.ref("base.lang_pt_BR").active:
|
|
952
|
+
self.assertEqual(
|
|
953
|
+
additional_data,
|
|
954
|
+
"manual comment test - Valor Aprox. dos Tributos: R$\xa00,00",
|
|
955
|
+
)
|
|
956
|
+
else: # no pt_BR amount formatting available
|
|
957
|
+
self.assertEqual(
|
|
958
|
+
additional_data,
|
|
959
|
+
"manual comment test - Valor Aprox. dos Tributos: R$\xa00.00",
|
|
960
|
+
)
|
|
989
961
|
|
|
990
962
|
def test_fields_freight_insurance_other_costs(self):
|
|
991
963
|
"""Test fields Freight, Insurance and Other Costs when
|
|
@@ -13,12 +13,7 @@ class TestFiscalDocumentNFSe(TransactionCase):
|
|
|
13
13
|
|
|
14
14
|
def test_nfse_same_state(self):
|
|
15
15
|
"""Test NFSe same state."""
|
|
16
|
-
|
|
17
16
|
for line in self.nfse_same_state.fiscal_line_ids:
|
|
18
|
-
line._onchange_product_id_fiscal()
|
|
19
|
-
line._onchange_fiscal_operation_id()
|
|
20
|
-
line._onchange_fiscal_taxes()
|
|
21
|
-
|
|
22
17
|
self.assertEqual(
|
|
23
18
|
line.fiscal_operation_line_id.name,
|
|
24
19
|
"Prestação de Serviço",
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Copyright (C) 2025 Renato Lima - Akretion <renato.lima@akretion.com.br>
|
|
2
|
+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
3
|
+
|
|
4
|
+
from psycopg2 import IntegrityError
|
|
5
|
+
|
|
6
|
+
from odoo.exceptions import ValidationError
|
|
7
|
+
from odoo.tests import TransactionCase
|
|
8
|
+
from odoo.tools import mute_logger
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class TestFiscalDocumentSerie(TransactionCase):
|
|
12
|
+
@classmethod
|
|
13
|
+
def setUpClass(cls):
|
|
14
|
+
super().setUpClass()
|
|
15
|
+
cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True))
|
|
16
|
+
|
|
17
|
+
# Company
|
|
18
|
+
cls.company_sn = cls.env.ref("l10n_br_base.empresa_simples_nacional")
|
|
19
|
+
|
|
20
|
+
# Fiscal Document Type
|
|
21
|
+
cls.document_type_nfe = cls.env.ref("l10n_br_fiscal.document_55")
|
|
22
|
+
|
|
23
|
+
cls.document_serie_nfe_5 = cls.env["l10n_br_fiscal.document.serie"].create(
|
|
24
|
+
{
|
|
25
|
+
"code": "5",
|
|
26
|
+
"name": "Serie 5",
|
|
27
|
+
"document_type_id": cls.document_type_nfe.id,
|
|
28
|
+
"company_id": cls.company_sn.id,
|
|
29
|
+
}
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
# Fiscal Document
|
|
33
|
+
cls.document = cls.env["l10n_br_fiscal.document"].create(
|
|
34
|
+
{
|
|
35
|
+
"company_id": cls.company_sn.id,
|
|
36
|
+
"document_type_id": cls.document_type_nfe.id,
|
|
37
|
+
"document_serie_id": cls.document_serie_nfe_5.id,
|
|
38
|
+
"partner_id": cls.env.ref("l10n_br_base.res_partner_cliente1_sp").id,
|
|
39
|
+
"state_edoc": "cancelada",
|
|
40
|
+
}
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
def test_document_serie_duplicated(self):
|
|
44
|
+
"""Test document serie duplicate constraint."""
|
|
45
|
+
document_serie = self.env["l10n_br_fiscal.document.serie"]
|
|
46
|
+
document_serie_values = {
|
|
47
|
+
"code": "10",
|
|
48
|
+
"name": "Serie 10",
|
|
49
|
+
"document_type_id": self.document_type_nfe.id,
|
|
50
|
+
"company_id": self.company_sn.id,
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
with self.assertRaises(IntegrityError), mute_logger("odoo.sql_db"):
|
|
54
|
+
for _ in range(2):
|
|
55
|
+
document_serie.create(document_serie_values)
|
|
56
|
+
|
|
57
|
+
def test_document_serie_code_in_use(self):
|
|
58
|
+
"""Test document serie code in use constraint."""
|
|
59
|
+
with self.assertRaises(ValidationError):
|
|
60
|
+
self.document_serie_nfe_5.write({"code": "7"})
|
|
@@ -35,15 +35,12 @@ class TestTaxBenefit(TransactionCase):
|
|
|
35
35
|
"state": "approved",
|
|
36
36
|
}
|
|
37
37
|
)
|
|
38
|
+
# force update
|
|
39
|
+
cls.nfe_tax_benefit.fiscal_line_ids._compute_fiscal_tax_ids()
|
|
38
40
|
|
|
39
41
|
def test_nfe_tax_benefit(self):
|
|
40
42
|
"""Test NFe with tax benefit."""
|
|
41
|
-
|
|
42
43
|
for line in self.nfe_tax_benefit.fiscal_line_ids:
|
|
43
|
-
line._onchange_product_id_fiscal()
|
|
44
|
-
line._onchange_fiscal_operation_id()
|
|
45
|
-
line._onchange_fiscal_taxes()
|
|
46
|
-
|
|
47
44
|
self.assertEqual(
|
|
48
45
|
line.icms_tax_benefit_id,
|
|
49
46
|
self.tax_benefit,
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
<field name="name">l10n_br_fiscal.cest.tree</field>
|
|
26
26
|
<field name="model">l10n_br_fiscal.cest</field>
|
|
27
27
|
<field name="arch" type="xml">
|
|
28
|
-
<
|
|
28
|
+
<list>
|
|
29
29
|
<field name="code" />
|
|
30
30
|
<field name="item" />
|
|
31
31
|
<field name="name" />
|
|
32
32
|
<field name="segment" />
|
|
33
|
-
</
|
|
33
|
+
</list>
|
|
34
34
|
</field>
|
|
35
35
|
</record>
|
|
36
36
|
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
<field name="name">l10n_br_fiscal.cfop.tree</field>
|
|
47
47
|
<field name="model">l10n_br_fiscal.cfop</field>
|
|
48
48
|
<field name="arch" type="xml">
|
|
49
|
-
<
|
|
49
|
+
<list>
|
|
50
50
|
<field name="code" />
|
|
51
51
|
<field name="name" />
|
|
52
52
|
<field name="type_in_out" />
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<field name="ind_anula" optional="hide" />
|
|
62
62
|
<field name="ind_remes" optional="hide" />
|
|
63
63
|
<field name="ind_comb" optional="hide" />
|
|
64
|
-
</
|
|
64
|
+
</list>
|
|
65
65
|
</field>
|
|
66
66
|
</record>
|
|
67
67
|
|
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
<field name="name">city.taxation.code.tree (in l10n_br_fiscal)</field>
|
|
22
22
|
<field name="model">l10n_br_fiscal.city.taxation.code</field>
|
|
23
23
|
<field name="arch" type="xml">
|
|
24
|
-
<
|
|
24
|
+
<list>
|
|
25
25
|
<field name="code" />
|
|
26
26
|
<field name="name" />
|
|
27
27
|
<field name="service_type_id" />
|
|
28
28
|
<field name="state_id" />
|
|
29
29
|
<field name="city_id" />
|
|
30
30
|
<field name="cnae_id" />
|
|
31
|
-
</
|
|
31
|
+
</list>
|
|
32
32
|
</field>
|
|
33
33
|
</record>
|
|
34
34
|
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
<field name="name">l10n_br_fiscal.cnae.tree</field>
|
|
24
24
|
<field name="model">l10n_br_fiscal.cnae</field>
|
|
25
25
|
<field name="arch" type="xml">
|
|
26
|
-
<
|
|
26
|
+
<list>
|
|
27
27
|
<field name="code" />
|
|
28
28
|
<field name="name" />
|
|
29
29
|
<field name="version" />
|
|
30
30
|
<field name="parent_id" />
|
|
31
|
-
</
|
|
31
|
+
</list>
|
|
32
32
|
</field>
|
|
33
33
|
</record>
|
|
34
34
|
|
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
<field name="name">l10n_br_fiscal.comment.tree</field>
|
|
23
23
|
<field name="model">l10n_br_fiscal.comment</field>
|
|
24
24
|
<field name="arch" type="xml">
|
|
25
|
-
<
|
|
25
|
+
<list>
|
|
26
26
|
<field name="sequence" />
|
|
27
27
|
<field name="name" />
|
|
28
28
|
<field name="comment_type" />
|
|
29
29
|
<field name="object" />
|
|
30
30
|
<field name="date_begin" />
|
|
31
31
|
<field name="date_end" />
|
|
32
|
-
</
|
|
32
|
+
</list>
|
|
33
33
|
</field>
|
|
34
34
|
</record>
|
|
35
35
|
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
<field name="name">l10n_br_fiscal.cst.tree</field>
|
|
26
26
|
<field name="model">l10n_br_fiscal.cst</field>
|
|
27
27
|
<field name="arch" type="xml">
|
|
28
|
-
<
|
|
28
|
+
<list>
|
|
29
29
|
<field name="code" />
|
|
30
30
|
<field name="name" />
|
|
31
31
|
<field name="cst_type" />
|
|
32
32
|
<field name="tax_group_id" />
|
|
33
|
-
</
|
|
33
|
+
</list>
|
|
34
34
|
</field>
|
|
35
35
|
</record>
|
|
36
36
|
|
|
@@ -37,6 +37,7 @@
|
|
|
37
37
|
<field name="service_type_id" force_save="1" invisible="1" />
|
|
38
38
|
<field name="city_taxation_code_id" force_save="1" invisible="1" />
|
|
39
39
|
<field name="uot_id" force_save="1" invisible="1" />
|
|
40
|
+
<field name="uom_id" force_save="1" invisible="1" />
|
|
40
41
|
<field name="fiscal_price" force_save="1" invisible="1" />
|
|
41
42
|
<field name="fiscal_quantity" force_save="1" invisible="1" />
|
|
42
43
|
<field
|
|
@@ -1081,7 +1082,6 @@
|
|
|
1081
1082
|
<group>
|
|
1082
1083
|
<field name="comment_ids" widget="many2many_tags" />
|
|
1083
1084
|
<field name="manual_additional_data" />
|
|
1084
|
-
<field name="additional_data" readonly="1" />
|
|
1085
1085
|
</group>
|
|
1086
1086
|
</page>
|
|
1087
1087
|
</notebook>
|
|
@@ -102,19 +102,21 @@
|
|
|
102
102
|
<page name="amounts" string="Amounts">
|
|
103
103
|
<group>
|
|
104
104
|
<group>
|
|
105
|
-
<field name="
|
|
105
|
+
<field name="fiscal_amount_untaxed" />
|
|
106
106
|
<field name="amount_fiscal" />
|
|
107
|
-
<field name="
|
|
107
|
+
<field name="fiscal_amount_tax" />
|
|
108
108
|
<field name="estimate_tax" />
|
|
109
109
|
</group>
|
|
110
110
|
<group>
|
|
111
|
-
<field name="
|
|
111
|
+
<field name="fiscal_amount_total" />
|
|
112
112
|
<field name="amount_tax_withholding" />
|
|
113
113
|
<field name="amount_taxed" />
|
|
114
114
|
</group>
|
|
115
115
|
</group>
|
|
116
116
|
</page>
|
|
117
|
-
<page name="fiscal_line_extra_info" string="Extra Info"
|
|
117
|
+
<page name="fiscal_line_extra_info" string="Extra Info">
|
|
118
|
+
<field name="additional_data" readonly="1" />
|
|
119
|
+
</page>
|
|
118
120
|
</notebook>
|
|
119
121
|
</form>
|
|
120
122
|
</field>
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
<field name="name">l10n_br_fiscal.document.related.tree</field>
|
|
5
5
|
<field name="model">l10n_br_fiscal.document.related</field>
|
|
6
6
|
<field name="arch" type="xml">
|
|
7
|
-
<
|
|
7
|
+
<list>
|
|
8
8
|
<field name="document_type_id" />
|
|
9
9
|
<field name="document_key" />
|
|
10
10
|
<field name="document_serie" />
|
|
11
11
|
<field name="document_number" />
|
|
12
|
-
</
|
|
12
|
+
</list>
|
|
13
13
|
</field>
|
|
14
14
|
</record>
|
|
15
15
|
|
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
<field name="name">l10n_br_fiscal.document.serie.tree</field>
|
|
5
5
|
<field name="model">l10n_br_fiscal.document.serie</field>
|
|
6
6
|
<field name="arch" type="xml">
|
|
7
|
-
<
|
|
7
|
+
<list>
|
|
8
8
|
<field name="name" />
|
|
9
9
|
<field name="document_type_id" />
|
|
10
10
|
<field name="sequence_number_next" />
|
|
11
11
|
<field name="company_id" groups="base.group_multi_company" />
|
|
12
12
|
<field name="active" widget="boolean_toggle" />
|
|
13
|
-
</
|
|
13
|
+
</list>
|
|
14
14
|
</field>
|
|
15
15
|
</record>
|
|
16
16
|
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
<field name="name">l10n_br_fiscal.document.type.tree</field>
|
|
5
5
|
<field name="model">l10n_br_fiscal.document.type</field>
|
|
6
6
|
<field name="arch" type="xml">
|
|
7
|
-
<
|
|
7
|
+
<list>
|
|
8
8
|
<field name="code" />
|
|
9
9
|
<field name="name" />
|
|
10
10
|
<field name="electronic" />
|
|
11
|
-
</
|
|
11
|
+
</list>
|
|
12
12
|
</field>
|
|
13
13
|
</record>
|
|
14
14
|
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
<field name="name">l10n_br_fiscal.document.tree</field>
|
|
64
64
|
<field name="model">l10n_br_fiscal.document</field>
|
|
65
65
|
<field name="arch" type="xml">
|
|
66
|
-
<
|
|
66
|
+
<list>
|
|
67
67
|
<field name="company_id" groups="base.group_multi_company" />
|
|
68
68
|
<field name="document_type" />
|
|
69
69
|
<field name="document_serie" />
|
|
@@ -71,9 +71,9 @@
|
|
|
71
71
|
<field name="document_date" />
|
|
72
72
|
<field name="fiscal_operation_id" />
|
|
73
73
|
<field name="partner_id" />
|
|
74
|
-
<field name="
|
|
75
|
-
<field name="
|
|
76
|
-
<field name="
|
|
74
|
+
<field name="fiscal_amount_untaxed" />
|
|
75
|
+
<field name="fiscal_amount_tax" />
|
|
76
|
+
<field name="fiscal_amount_total" />
|
|
77
77
|
<field name="state" column_invisible="True" />
|
|
78
78
|
<field
|
|
79
79
|
name="state_edoc"
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
optional="show"
|
|
86
86
|
/>
|
|
87
87
|
<field name="state_fiscal" />
|
|
88
|
-
</
|
|
88
|
+
</list>
|
|
89
89
|
</field>
|
|
90
90
|
</record>
|
|
91
91
|
|
|
@@ -219,10 +219,10 @@
|
|
|
219
219
|
<h1>
|
|
220
220
|
<field name="document_type_id" readonly="1" />:
|
|
221
221
|
<field
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
222
|
+
name="document_number"
|
|
223
|
+
readonly="issuer == 'company'"
|
|
224
|
+
required="issuer == 'partner'"
|
|
225
|
+
/></h1>
|
|
226
226
|
</div>
|
|
227
227
|
<group>
|
|
228
228
|
<group name="partner_info">
|
|
@@ -234,7 +234,10 @@
|
|
|
234
234
|
/>
|
|
235
235
|
<field name="partner_shipping_id" />
|
|
236
236
|
</group>
|
|
237
|
-
<group
|
|
237
|
+
<group
|
|
238
|
+
name="l10n_br_fiscal"
|
|
239
|
+
invisible="document_type in ('57', '08', '09', '10', '11', '26', '67', '8B')"
|
|
240
|
+
>
|
|
238
241
|
<field
|
|
239
242
|
name="fiscal_operation_id"
|
|
240
243
|
options="{'no_create': True, 'no_create_edit': True}"
|
|
@@ -292,21 +295,23 @@
|
|
|
292
295
|
/>
|
|
293
296
|
<field name="company_id" invisible="1" />
|
|
294
297
|
</group>
|
|
295
|
-
<group
|
|
296
|
-
name="CT-e Info"
|
|
297
|
-
invisible="[('document_type_id.code', 'in', ['57', '08', '09', '10', '11', '26', '67', '8B'])]"
|
|
298
|
-
>
|
|
299
|
-
<field name="transport_modal" />
|
|
300
|
-
<field name="service_provider" />
|
|
301
|
-
</group>
|
|
302
298
|
</group>
|
|
303
299
|
<notebook>
|
|
304
300
|
<page name="products" string="Products and Services">
|
|
305
301
|
<field
|
|
306
302
|
name="fiscal_line_ids"
|
|
307
|
-
context="{
|
|
303
|
+
context="{
|
|
304
|
+
'form_view_ref': 'l10n_br_fiscal.document_line_form',
|
|
305
|
+
'default_document_id': id,
|
|
306
|
+
'default_company_id': company_id,
|
|
307
|
+
'default_partner_id': partner_id,
|
|
308
|
+
'default_fiscal_operation_type': fiscal_operation_type,
|
|
309
|
+
'default_fiscal_operation_id': fiscal_operation_id,
|
|
310
|
+
'default_ind_final': ind_final,
|
|
311
|
+
'no_subcall': True,
|
|
312
|
+
}"
|
|
308
313
|
>
|
|
309
|
-
<
|
|
314
|
+
<list>
|
|
310
315
|
<field name="product_id" />
|
|
311
316
|
<field name="uom_id" />
|
|
312
317
|
<field name="price_unit" />
|
|
@@ -315,8 +320,8 @@
|
|
|
315
320
|
name="fiscal_tax_ids"
|
|
316
321
|
widget="many2many_tags"
|
|
317
322
|
/>
|
|
318
|
-
<field name="
|
|
319
|
-
</
|
|
323
|
+
<field name="fiscal_amount_total" sum="Total" />
|
|
324
|
+
</list>
|
|
320
325
|
</field>
|
|
321
326
|
</page>
|
|
322
327
|
<page name="document_related" string="Document Related">
|
|
@@ -413,8 +418,8 @@
|
|
|
413
418
|
readonly="delivery_costs == 'line' and not force_compute_delivery_costs_by_total"
|
|
414
419
|
/>
|
|
415
420
|
<field name="amount_estimate_tax" />
|
|
416
|
-
<field name="
|
|
417
|
-
<field name="
|
|
421
|
+
<field name="fiscal_amount_tax" />
|
|
422
|
+
<field name="fiscal_amount_total" />
|
|
418
423
|
<field name="amount_tax_withholding" />
|
|
419
424
|
<field name="amount_financial_total" />
|
|
420
425
|
<field name="amount_financial_total_gross" />
|
|
@@ -434,12 +439,7 @@
|
|
|
434
439
|
</page>
|
|
435
440
|
</notebook>
|
|
436
441
|
</sheet>
|
|
437
|
-
<
|
|
438
|
-
<div class="oe_chatter">
|
|
439
|
-
<field name="message_follower_ids" groups="base.group_user" />
|
|
440
|
-
<field name="activity_ids" />
|
|
441
|
-
<field name="message_ids" />
|
|
442
|
-
</div>
|
|
442
|
+
<chatter />
|
|
443
443
|
</form>
|
|
444
444
|
</field>
|
|
445
445
|
</record>
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
<field name="name">l10n_br_fiscal.icms.regulation.tree</field>
|
|
15
15
|
<field name="model">l10n_br_fiscal.icms.regulation</field>
|
|
16
16
|
<field name="arch" type="xml">
|
|
17
|
-
<
|
|
17
|
+
<list>
|
|
18
18
|
<field name="name" />
|
|
19
|
-
</
|
|
19
|
+
</list>
|
|
20
20
|
</field>
|
|
21
21
|
</record>
|
|
22
22
|
|
|
@@ -15,10 +15,10 @@
|
|
|
15
15
|
<field name="name">l10n_br_fiscal.icms.relief.tree</field>
|
|
16
16
|
<field name="model">l10n_br_fiscal.icms.relief</field>
|
|
17
17
|
<field name="arch" type="xml">
|
|
18
|
-
<
|
|
18
|
+
<list>
|
|
19
19
|
<field name="code" />
|
|
20
20
|
<field name="name" />
|
|
21
|
-
</
|
|
21
|
+
</list>
|
|
22
22
|
</field>
|
|
23
23
|
</record>
|
|
24
24
|
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
<field name="name">l10n_br_fiscal.invalidate.number.tree</field>
|
|
16
16
|
<field name="model">l10n_br_fiscal.invalidate.number</field>
|
|
17
17
|
<field name="arch" type="xml">
|
|
18
|
-
<
|
|
18
|
+
<list>
|
|
19
19
|
<field name="company_id" readonly="state != 'draft'" />
|
|
20
20
|
<field name="document_type_id" readonly="state != 'draft'" />
|
|
21
21
|
<field name="document_serie_id" readonly="state != 'draft'" />
|
|
22
22
|
<field name="number_start" readonly="state != 'draft'" />
|
|
23
23
|
<field name="number_end" readonly="state != 'draft'" />
|
|
24
24
|
<field name="state" />
|
|
25
|
-
</
|
|
25
|
+
</list>
|
|
26
26
|
</field>
|
|
27
27
|
</record>
|
|
28
28
|
|