odoo-addon-l10n-br-fiscal 16.0.8.0.2__py3-none-any.whl → 16.0.19.4.0__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.
Files changed (115) hide show
  1. odoo/addons/l10n_br_fiscal/README.rst +1 -1
  2. odoo/addons/l10n_br_fiscal/__manifest__.py +10 -3
  3. odoo/addons/l10n_br_fiscal/constants/fiscal.py +64 -18
  4. odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.cest.csv +1043 -983
  5. odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.cst.csv +58 -0
  6. odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.document.type.csv +1 -0
  7. odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.operation.indicator.csv +27 -0
  8. odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.tax.classification.csv +163 -0
  9. odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.tax.csv +31 -0
  10. odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.tax.group.csv +3 -0
  11. odoo/addons/l10n_br_fiscal/data/operation_data.xml +1 -1
  12. odoo/addons/l10n_br_fiscal/data/uom_data.xml +186 -33
  13. odoo/addons/l10n_br_fiscal/demo/fiscal_document_demo.xml +3 -377
  14. odoo/addons/l10n_br_fiscal/demo/fiscal_document_nfse_demo.xml +0 -12
  15. odoo/addons/l10n_br_fiscal/demo/fiscal_operation_demo.xml +2 -2
  16. odoo/addons/l10n_br_fiscal/i18n/l10n_br_fiscal.pot +902 -304
  17. odoo/addons/l10n_br_fiscal/i18n/pt_BR.po +22 -22
  18. odoo/addons/l10n_br_fiscal/migrations/16.0.13.0.0/pre-migration.py +25 -0
  19. odoo/addons/l10n_br_fiscal/migrations/16.0.14.0.0/pre-migration.py +30 -0
  20. odoo/addons/l10n_br_fiscal/migrations/16.0.14.0.5/pre-migration.py +15 -0
  21. odoo/addons/l10n_br_fiscal/models/__init__.py +3 -2
  22. odoo/addons/l10n_br_fiscal/models/comment.py +2 -2
  23. odoo/addons/l10n_br_fiscal/models/data_ncm_nbs_abstract.py +1 -1
  24. odoo/addons/l10n_br_fiscal/models/document.py +83 -226
  25. odoo/addons/l10n_br_fiscal/models/document_line.py +67 -5
  26. odoo/addons/l10n_br_fiscal/models/document_line_mixin.py +1932 -136
  27. odoo/addons/l10n_br_fiscal/models/document_mixin.py +248 -17
  28. odoo/addons/l10n_br_fiscal/models/document_related.py +11 -8
  29. odoo/addons/l10n_br_fiscal/models/document_serie.py +33 -0
  30. odoo/addons/l10n_br_fiscal/models/ibpt.py +1 -1
  31. odoo/addons/l10n_br_fiscal/models/icms_regulation.py +1 -1
  32. odoo/addons/l10n_br_fiscal/models/invalidate_number.py +4 -5
  33. odoo/addons/l10n_br_fiscal/models/operation_dashboard.py +3 -2
  34. odoo/addons/l10n_br_fiscal/models/operation_indicator.py +58 -0
  35. odoo/addons/l10n_br_fiscal/models/operation_line.py +28 -0
  36. odoo/addons/l10n_br_fiscal/models/partner_profile.py +6 -0
  37. odoo/addons/l10n_br_fiscal/models/product_template.py +5 -1
  38. odoo/addons/l10n_br_fiscal/models/res_company.py +18 -0
  39. odoo/addons/l10n_br_fiscal/models/res_partner.py +27 -6
  40. odoo/addons/l10n_br_fiscal/models/simplified_tax_range.py +8 -0
  41. odoo/addons/l10n_br_fiscal/models/tax.py +7 -3
  42. odoo/addons/l10n_br_fiscal/models/tax_classification.py +81 -0
  43. odoo/addons/l10n_br_fiscal/models/tax_pis_cofins_base.py +1 -1
  44. odoo/addons/l10n_br_fiscal/models/tax_pis_cofins_credit.py +1 -1
  45. odoo/addons/l10n_br_fiscal/models/uom_uom.py +24 -0
  46. odoo/addons/l10n_br_fiscal/security/fiscal_security.xml +6 -16
  47. odoo/addons/l10n_br_fiscal/security/ir.model.access.csv +8 -2
  48. odoo/addons/l10n_br_fiscal/static/description/index.html +1 -1
  49. odoo/addons/l10n_br_fiscal/tests/__init__.py +3 -0
  50. odoo/addons/l10n_br_fiscal/tests/test_document_edition.py +308 -0
  51. odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_generic.py +23 -111
  52. odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_nfse.py +5 -13
  53. odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_serie.py +60 -0
  54. odoo/addons/l10n_br_fiscal/tests/test_ibpt.py +2 -2
  55. odoo/addons/l10n_br_fiscal/tests/test_icms_regulation.py +2 -2
  56. odoo/addons/l10n_br_fiscal/tests/test_tax_benefit.py +14 -20
  57. odoo/addons/l10n_br_fiscal/tests/test_tax_classification.py +110 -0
  58. odoo/addons/l10n_br_fiscal/tools.py +1 -1
  59. odoo/addons/l10n_br_fiscal/views/cest_view.xml +2 -4
  60. odoo/addons/l10n_br_fiscal/views/cfop_view.xml +3 -5
  61. odoo/addons/l10n_br_fiscal/views/city_taxation_code.xml +1 -4
  62. odoo/addons/l10n_br_fiscal/views/cnae_view.xml +2 -4
  63. odoo/addons/l10n_br_fiscal/views/comment_view.xml +2 -4
  64. odoo/addons/l10n_br_fiscal/views/cst_view.xml +6 -8
  65. odoo/addons/l10n_br_fiscal/views/{document_fiscal_line_mixin_view.xml → document_line_mixin_view.xml} +525 -388
  66. odoo/addons/l10n_br_fiscal/views/document_line_view.xml +101 -82
  67. odoo/addons/l10n_br_fiscal/views/document_related_view.xml +44 -46
  68. odoo/addons/l10n_br_fiscal/views/document_serie_view.xml +2 -6
  69. odoo/addons/l10n_br_fiscal/views/document_type_view.xml +0 -2
  70. odoo/addons/l10n_br_fiscal/views/document_view.xml +304 -346
  71. odoo/addons/l10n_br_fiscal/views/icms_regulation_view.xml +14 -16
  72. odoo/addons/l10n_br_fiscal/views/icms_relief_view.xml +8 -10
  73. odoo/addons/l10n_br_fiscal/views/invalidate_number_view.xml +46 -48
  74. odoo/addons/l10n_br_fiscal/views/l10n_br_fiscal_action.xml +162 -244
  75. odoo/addons/l10n_br_fiscal/views/l10n_br_fiscal_menu.xml +16 -72
  76. odoo/addons/l10n_br_fiscal/views/legal_nature_view.xml +0 -2
  77. odoo/addons/l10n_br_fiscal/views/nbm_view.xml +5 -6
  78. odoo/addons/l10n_br_fiscal/views/nbs_view.xml +5 -6
  79. odoo/addons/l10n_br_fiscal/views/ncm_view.xml +12 -15
  80. odoo/addons/l10n_br_fiscal/views/operation_dashboard_view.xml +13 -12
  81. odoo/addons/l10n_br_fiscal/views/operation_indicator_view.xml +75 -0
  82. odoo/addons/l10n_br_fiscal/views/operation_line_view.xml +22 -21
  83. odoo/addons/l10n_br_fiscal/views/operation_view.xml +3 -6
  84. odoo/addons/l10n_br_fiscal/views/partner_profile_view.xml +3 -6
  85. odoo/addons/l10n_br_fiscal/views/product_genre_view.xml +7 -9
  86. odoo/addons/l10n_br_fiscal/views/product_product_view.xml +37 -14
  87. odoo/addons/l10n_br_fiscal/views/product_template_view.xml +34 -14
  88. odoo/addons/l10n_br_fiscal/views/res_company_view.xml +40 -38
  89. odoo/addons/l10n_br_fiscal/views/res_config_settings_view.xml +23 -28
  90. odoo/addons/l10n_br_fiscal/views/res_partner_view.xml +13 -2
  91. odoo/addons/l10n_br_fiscal/views/service_type_view.xml +7 -8
  92. odoo/addons/l10n_br_fiscal/views/simplified_tax_range_view.xml +0 -2
  93. odoo/addons/l10n_br_fiscal/views/simplified_tax_view.xml +0 -2
  94. odoo/addons/l10n_br_fiscal/views/tax_classification.xml +110 -0
  95. odoo/addons/l10n_br_fiscal/views/tax_definition_view.xml +157 -129
  96. odoo/addons/l10n_br_fiscal/views/tax_estimate_view.xml +0 -2
  97. odoo/addons/l10n_br_fiscal/views/tax_group_view.xml +3 -6
  98. odoo/addons/l10n_br_fiscal/views/tax_ipi_control_seal_view.xml +0 -2
  99. odoo/addons/l10n_br_fiscal/views/tax_ipi_guideline_class_view.xml +0 -2
  100. odoo/addons/l10n_br_fiscal/views/tax_ipi_guideline_view.xml +2 -4
  101. odoo/addons/l10n_br_fiscal/views/tax_pis_cofins_base_view.xml +2 -4
  102. odoo/addons/l10n_br_fiscal/views/tax_pis_cofins_credit_view.xml +2 -4
  103. odoo/addons/l10n_br_fiscal/views/tax_pis_cofins_view.xml +5 -7
  104. odoo/addons/l10n_br_fiscal/views/tax_view.xml +5 -7
  105. odoo/addons/l10n_br_fiscal/views/uom_uom.xml +52 -0
  106. odoo/addons/l10n_br_fiscal/wizards/__init__.py +1 -0
  107. odoo/addons/l10n_br_fiscal/wizards/base_wizard_mixin.py +1 -1
  108. odoo/addons/l10n_br_fiscal/wizards/document_import_wizard_mixin.py +129 -0
  109. odoo/addons/l10n_br_fiscal/wizards/document_import_wizard_mixin.xml +41 -0
  110. {odoo_addon_l10n_br_fiscal-16.0.8.0.2.dist-info → odoo_addon_l10n_br_fiscal-16.0.19.4.0.dist-info}/METADATA +3 -3
  111. {odoo_addon_l10n_br_fiscal-16.0.8.0.2.dist-info → odoo_addon_l10n_br_fiscal-16.0.19.4.0.dist-info}/RECORD +113 -99
  112. {odoo_addon_l10n_br_fiscal-16.0.8.0.2.dist-info → odoo_addon_l10n_br_fiscal-16.0.19.4.0.dist-info}/WHEEL +1 -1
  113. odoo/addons/l10n_br_fiscal/models/document_line_mixin_methods.py +0 -814
  114. odoo/addons/l10n_br_fiscal/models/document_mixin_methods.py +0 -363
  115. {odoo_addon_l10n_br_fiscal-16.0.8.0.2.dist-info → odoo_addon_l10n_br_fiscal-16.0.19.4.0.dist-info}/top_level.txt +0 -0
@@ -83,7 +83,7 @@ class ProductTemplate(models.Model):
83
83
  domain="[('internal_type', '=', 'normal')]",
84
84
  )
85
85
 
86
- city_taxation_code_id = fields.Many2many(
86
+ city_taxation_code_ids = fields.Many2many(
87
87
  comodel_name="l10n_br_fiscal.city.taxation.code", string="City Taxation Code"
88
88
  )
89
89
 
@@ -106,6 +106,10 @@ class ProductTemplate(models.Model):
106
106
  comodel_name="l10n_br_fiscal.nbs", index=True, string="NBS"
107
107
  )
108
108
 
109
+ operation_indicator_id = fields.Many2one(
110
+ comodel_name="l10n_br_fiscal.operation.indicator",
111
+ )
112
+
109
113
  cest_id = fields.Many2one(
110
114
  comodel_name="l10n_br_fiscal.cest",
111
115
  index=True,
@@ -14,10 +14,12 @@ from ..constants.fiscal import (
14
14
  PROCESSADOR_NENHUM,
15
15
  PROFIT_CALCULATION,
16
16
  PROFIT_CALCULATION_PRESUMED,
17
+ TAX_DOMAIN_CBS,
17
18
  TAX_DOMAIN_COFINS,
18
19
  TAX_DOMAIN_COFINS_WH,
19
20
  TAX_DOMAIN_CSLL,
20
21
  TAX_DOMAIN_CSLL_WH,
22
+ TAX_DOMAIN_IBS,
21
23
  TAX_DOMAIN_ICMS,
22
24
  TAX_DOMAIN_ICMS_SN,
23
25
  TAX_DOMAIN_INSS,
@@ -297,6 +299,12 @@ class ResCompany(models.Model):
297
299
  domain=[("tax_domain", "=", TAX_DOMAIN_INSS_WH)],
298
300
  )
299
301
 
302
+ tax_classification_id = fields.Many2one(
303
+ comodel_name="l10n_br_fiscal.tax.classification",
304
+ string="Default Tax Classification",
305
+ domain=[("tax_ibs_id", "!=", False), ("tax_cbs_id", "!=", False)],
306
+ )
307
+
300
308
  tax_definition_ids = fields.One2many(
301
309
  comodel_name="l10n_br_fiscal.tax.definition",
302
310
  inverse_name="company_id",
@@ -377,6 +385,7 @@ class ResCompany(models.Model):
377
385
  self.tax_icms_id = False
378
386
 
379
387
  self._onchange_piscofins_id()
388
+ self._onchange_tax_classification_id()
380
389
  self._onchange_ripi()
381
390
  self._onchange_tax_ipi_id()
382
391
  self._onchange_tax_icms_id()
@@ -502,3 +511,12 @@ class ResCompany(models.Model):
502
511
  self._set_tax_definition(self.tax_inss_wh_id)
503
512
  else:
504
513
  self._del_tax_definition(TAX_DOMAIN_INSS_WH)
514
+
515
+ @api.onchange("tax_classification_id")
516
+ def _onchange_tax_classification_id(self):
517
+ if self.tax_classification_id:
518
+ self._set_tax_definition(self.tax_classification_id.tax_cbs_id)
519
+ self._set_tax_definition(self.tax_classification_id.tax_ibs_id)
520
+ else:
521
+ self._del_tax_definition(TAX_DOMAIN_CBS)
522
+ self._del_tax_definition(TAX_DOMAIN_IBS)
@@ -10,6 +10,7 @@ from ..constants.fiscal import (
10
10
  NFE_IND_IE_DEST,
11
11
  NFE_IND_IE_DEST_9,
12
12
  NFE_IND_IE_DEST_DEFAULT,
13
+ PUBLIC_ENTIRY_TYPE,
13
14
  TAX_FRAMEWORK,
14
15
  TAX_FRAMEWORK_NORMAL,
15
16
  )
@@ -76,6 +77,11 @@ class ResPartner(models.Model):
76
77
  "other government-controlled organizations.",
77
78
  )
78
79
 
80
+ public_entity_type = fields.Selection(
81
+ selection=PUBLIC_ENTIRY_TYPE,
82
+ string="Tipo de Entidade Governamental",
83
+ )
84
+
79
85
  ind_final = fields.Selection(
80
86
  selection=FINAL_CUSTOMER,
81
87
  string="Final Consumption Operation",
@@ -83,15 +89,15 @@ class ResPartner(models.Model):
83
89
  tracking=True,
84
90
  )
85
91
 
86
- cnpj_cpf = fields.Char(
92
+ vat = fields.Char(
87
93
  tracking=True,
88
94
  )
89
95
 
90
- inscr_est = fields.Char(
96
+ l10n_br_ie_code = fields.Char(
91
97
  tracking=True,
92
98
  )
93
99
 
94
- inscr_mun = fields.Char(
100
+ l10n_br_im_code = fields.Char(
95
101
  tracking=True,
96
102
  )
97
103
 
@@ -107,6 +113,20 @@ class ResPartner(models.Model):
107
113
  tracking=True,
108
114
  )
109
115
 
116
+ rntrc_code = fields.Char(
117
+ string="RNTRC Code", size=12, unaccent=False, tracking=True
118
+ )
119
+
120
+ nif_motive_absence = fields.Selection(
121
+ selection=[
122
+ ("0", "Not informed in the origin note"),
123
+ ("1", "Exemption from NIF"),
124
+ ("2", "NIF not required"),
125
+ ],
126
+ default=False,
127
+ string="NIF motive absence",
128
+ )
129
+
110
130
  def _inverse_fiscal_profile(self):
111
131
  for p in self:
112
132
  p._onchange_fiscal_profile_id()
@@ -123,12 +143,13 @@ class ResPartner(models.Model):
123
143
  p.tax_framework = p.fiscal_profile_id.tax_framework
124
144
  p.ind_ie_dest = p.fiscal_profile_id.ind_ie_dest
125
145
  p.is_public_entity = p.fiscal_profile_id.is_public_entity
146
+ p.public_entity_type = p.fiscal_profile_id.public_entity_type
126
147
 
127
148
  @api.onchange("ind_ie_dest")
128
149
  def _onchange_ind_ie_dest(self):
129
150
  for p in self:
130
151
  if p.ind_ie_dest == NFE_IND_IE_DEST_9:
131
- p.inscr_est = False
152
+ p.l10n_br_ie_code = False
132
153
  p.state_tax_number_ids = False
133
154
 
134
155
  @api.model
@@ -139,6 +160,6 @@ class ResPartner(models.Model):
139
160
  "ind_ie_dest",
140
161
  "fiscal_profile_id",
141
162
  "ind_final",
142
- "inscr_est",
143
- "inscr_mun",
163
+ "l10n_br_ie_code",
164
+ "l10n_br_im_code",
144
165
  ]
@@ -66,3 +66,11 @@ class SimplifiedTaxRange(models.Model):
66
66
  tax_pis_percent = fields.Float(
67
67
  string="Tax PIS Percent", digits="Fiscal Tax Percent"
68
68
  )
69
+
70
+ tax_ibs_percent = fields.Float(
71
+ string="Tax IBS Percent", digits="Fiscal Tax Percent"
72
+ )
73
+
74
+ tax_cbs_percent = fields.Float(
75
+ string="Tax CBS Percent", digits="Fiscal Tax Percent"
76
+ )
@@ -450,9 +450,13 @@ class Tax(models.Model):
450
450
  and cfop.destination == CFOP_DESTINATION_EXTERNAL
451
451
  and partner.ind_ie_dest == NFE_IND_IE_DEST_9
452
452
  and tax_dict.get("tax_value")
453
- and operation_line.fiscal_operation_type == FISCAL_OUT
454
- or operation_line.fiscal_operation_id.fiscal_type == "return_in"
455
- and operation_line.fiscal_operation_type == FISCAL_IN
453
+ and (
454
+ operation_line.fiscal_operation_type == FISCAL_OUT
455
+ or (
456
+ operation_line.fiscal_operation_type == FISCAL_IN
457
+ and operation_line.fiscal_operation_id.fiscal_type != "return_in"
458
+ )
459
+ )
456
460
  ):
457
461
  icms_tax_difal, _ = company.icms_regulation_id.map_tax_def_icms_difal(
458
462
  company, partner, product, ncm, nbm, cest, operation_line, ind_final
@@ -0,0 +1,81 @@
1
+ # Copyright 2025 Marcel Savegnago <https://escodoo.com.br>
2
+ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3
+
4
+ from odoo import api, fields, models
5
+
6
+ from ..constants.fiscal import (
7
+ TAX_DOMAIN_CBS,
8
+ TAX_DOMAIN_IBS,
9
+ TAX_RATE_TYPE,
10
+ TAX_RATE_TYPE_DEFAULT,
11
+ )
12
+
13
+
14
+ class TaxClassification(models.Model):
15
+ _name = "l10n_br_fiscal.tax.classification"
16
+ _inherit = "l10n_br_fiscal.data.abstract"
17
+ _order = "code"
18
+ _description = "Tax Classification"
19
+
20
+ code = fields.Char(size=8)
21
+
22
+ description = fields.Text()
23
+
24
+ cst_code_prefix_like = fields.Char(
25
+ compute="_compute_cst_code_prefix_like",
26
+ help="Helper field to filter taxes by CST code prefix (3 chars) using LIKE.",
27
+ )
28
+
29
+ @api.depends("code")
30
+ def _compute_cst_code_prefix_like(self):
31
+ for rec in self:
32
+ prefix = (rec.code or "")[:3]
33
+ # Avoid matching all records when the prefix is not available yet.
34
+ rec.cst_code_prefix_like = (
35
+ f"{prefix}%" if len(prefix) == 3 else "__no_match__%"
36
+ )
37
+
38
+ tax_ibs_id = fields.Many2one(
39
+ comodel_name="l10n_br_fiscal.tax",
40
+ string="Tax IBS",
41
+ domain=(
42
+ f"[('tax_domain', '=', '{TAX_DOMAIN_IBS}'), '|', "
43
+ "('cst_in_id.code', 'like', cst_code_prefix_like), "
44
+ "('cst_out_id.code', 'like', cst_code_prefix_like)]"
45
+ ),
46
+ )
47
+
48
+ tax_cbs_id = fields.Many2one(
49
+ comodel_name="l10n_br_fiscal.tax",
50
+ string="Tax CBS",
51
+ domain=(
52
+ f"[('tax_domain', '=', '{TAX_DOMAIN_CBS}'), '|', "
53
+ "('cst_in_id.code', 'like', cst_code_prefix_like), "
54
+ "('cst_out_id.code', 'like', cst_code_prefix_like)]"
55
+ ),
56
+ )
57
+
58
+ regular_taxation = fields.Boolean(
59
+ default=False,
60
+ )
61
+
62
+ presumed_credit = fields.Boolean(
63
+ default=False,
64
+ )
65
+
66
+ credit_reversal = fields.Boolean(
67
+ default=False,
68
+ )
69
+
70
+ rate_type = fields.Selection(
71
+ selection=TAX_RATE_TYPE,
72
+ default=TAX_RATE_TYPE_DEFAULT,
73
+ required=True,
74
+ )
75
+
76
+ document_type_ids = fields.Many2many(
77
+ comodel_name="l10n_br_fiscal.document.type",
78
+ relation="tax_classification_document_type_rel",
79
+ string="Related DFes",
80
+ help="Related Digital Fiscal Documents",
81
+ )
@@ -13,7 +13,7 @@ class TaxPisCofinsBase(models.Model):
13
13
 
14
14
  _sql_constraints = [
15
15
  (
16
- "l10n_br_fiscal_tax_pis_cofins_base_uniq",
16
+ "code_unique",
17
17
  "unique (code)",
18
18
  _("Already exists with this code !"),
19
19
  )
@@ -13,7 +13,7 @@ class TaxPisCofinsCredit(models.Model):
13
13
 
14
14
  _sql_constraints = [
15
15
  (
16
- "l10n_br_fiscal_tax_pis_cofins_code_uniq",
16
+ "code_unique",
17
17
  "unique (code)",
18
18
  _("Already exists with this code !"),
19
19
  )
@@ -0,0 +1,24 @@
1
+ # Copyright 2025 Engenere.one
2
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
3
+
4
+ from odoo import fields, models
5
+
6
+
7
+ class Uom(models.Model):
8
+ _inherit = "uom.uom"
9
+
10
+ code = fields.Char(
11
+ size=6,
12
+ translate=False,
13
+ help="Abbreviated unit code used in electronic fiscal documents "
14
+ "(e.g. NF-e, NFC-e). Must have a maximum of 6 characters "
15
+ "by regulation. e.g. 'UN', 'KG', 'LITRO', 'CX12UN",
16
+ )
17
+
18
+ description = fields.Char(
19
+ help="Full unit description. e.g. 'Unit', 'Kilogram', 'Box of 12 Units'.",
20
+ )
21
+
22
+ _sql_constraints = [
23
+ ("unique_code", "UNIQUE(code)", "Unit of Measure code must be unique!")
24
+ ]
@@ -39,45 +39,35 @@
39
39
  <field name="name">Fiscal Tax Estimate multi-company</field>
40
40
  <field name="model_id" ref="model_l10n_br_fiscal_tax_estimate" />
41
41
  <field eval="True" name="global" />
42
- <field
43
- name="domain_force"
44
- >['|',('company_id','=',False),('company_id','in',company_ids)]</field>
42
+ <field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
45
43
  </record>
46
44
 
47
- <record id="l10n_br_fiscal_operation_line_rule" model="ir.rule">
45
+ <record id="l10n_br_fiscal_operation_rule" model="ir.rule">
48
46
  <field name="name">Fiscal Operation multi-company</field>
49
47
  <field name="model_id" ref="model_l10n_br_fiscal_operation" />
50
48
  <field eval="True" name="global" />
51
- <field
52
- name="domain_force"
53
- >['|',('company_id','=',False),('company_id','in',company_ids)]</field>
49
+ <field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
54
50
  </record>
55
51
 
56
52
  <record id="l10n_br_fiscal_document_serie_rule" model="ir.rule">
57
53
  <field name="name">Fiscal Document Serie multi-company</field>
58
54
  <field name="model_id" ref="model_l10n_br_fiscal_document_serie" />
59
55
  <field eval="True" name="global" />
60
- <field
61
- name="domain_force"
62
- >['|',('company_id','=',False),('company_id','in',company_ids)]</field>
56
+ <field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
63
57
  </record>
64
58
 
65
59
  <record id="l10n_br_fiscal_document_rule" model="ir.rule">
66
60
  <field name="name">Fiscal Document multi-company</field>
67
61
  <field name="model_id" ref="model_l10n_br_fiscal_document" />
68
62
  <field eval="True" name="global" />
69
- <field
70
- name="domain_force"
71
- >['|',('company_id','=',False),('company_id','in',company_ids)]</field>
63
+ <field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
72
64
  </record>
73
65
 
74
66
  <record id="l10n_br_fiscal_document_line_rule" model="ir.rule">
75
67
  <field name="name">Fiscal Document line multi-company</field>
76
68
  <field name="model_id" ref="model_l10n_br_fiscal_document_line" />
77
69
  <field eval="True" name="global" />
78
- <field
79
- name="domain_force"
80
- >['|',('company_id','=',False),('company_id','in',company_ids)]</field>
70
+ <field name="domain_force">[('company_id', 'in', company_ids + [False])]</field>
81
71
  </record>
82
72
 
83
73
  </odoo>
@@ -38,6 +38,9 @@
38
38
  "l10n_br_fiscal_cest_user","Fiscal CEST for User","model_l10n_br_fiscal_cest","l10n_br_fiscal.group_user",1,0,0,0
39
39
  "l10n_br_fiscal_cest_manager","Fiscal CEST for Manager","model_l10n_br_fiscal_cest","l10n_br_fiscal.group_manager",1,0,0,0
40
40
  "l10n_br_fiscal_cest_maintenance","Fiscal CEST for Maintenance","model_l10n_br_fiscal_cest","l10n_br_fiscal.group_data_maintenance",1,1,1,1
41
+ "l10n_br_fiscal_tax_classification_user","Fiscal Tax Classification for User","model_l10n_br_fiscal_tax_classification","l10n_br_fiscal.group_user",1,0,0,0
42
+ "l10n_br_fiscal_tax_classification_manager","Fiscal Tax Classification for Manager","model_l10n_br_fiscal_tax_classification","l10n_br_fiscal.group_manager",1,0,0,0
43
+ "l10n_br_fiscal_tax_classification_maintenance","Fiscal Tax Classification for Maintenance","model_l10n_br_fiscal_tax_classification","l10n_br_fiscal.group_data_maintenance",1,1,1,1
41
44
  "l10n_br_fiscal_product_genre_user","Fiscal Fiscal Product Genre for User","model_l10n_br_fiscal_product_genre","l10n_br_fiscal.group_user",1,0,0,0
42
45
  "l10n_br_fiscal_product_genre_manager","Fiscal Fiscal Product Genre for Manager","model_l10n_br_fiscal_product_genre","l10n_br_fiscal.group_manager",1,0,0,0
43
46
  "l10n_br_fiscal_product_genre_maintenance","Fiscal Fiscal Product Genre for Maintenance","model_l10n_br_fiscal_product_genre","l10n_br_fiscal.group_data_maintenance",1,1,1,1
@@ -67,7 +70,10 @@
67
70
  "l10n_br_fiscal_operation_line_manager","Fiscal Operation Line for Manager","model_l10n_br_fiscal_operation_line","l10n_br_fiscal.group_manager",1,1,1,1
68
71
  "l10n_br_fiscal_operation_document_type_user","Fiscal Operation Document Type for User","model_l10n_br_fiscal_operation_document_type","l10n_br_fiscal.group_user",1,0,0,0
69
72
  "l10n_br_fiscal_operation_document_type_manager","Fiscal Operation Document Type for Manager","model_l10n_br_fiscal_operation_document_type","l10n_br_fiscal.group_manager",1,1,1,1
70
- "l10n_br_fiscal_partner_profile_user","Fiscal Partner Profile for User","model_l10n_br_fiscal_partner_profile","l10n_br_fiscal.group_user",1,0,0,0
73
+ "l10n_br_fiscal_operation_indicator_user","Operation Indicator for User","model_l10n_br_fiscal_operation_indicator","l10n_br_fiscal.group_user",1,0,0,0
74
+ "l10n_br_fiscal_operation_indicator_manager","Operation Indicator for Manager","model_l10n_br_fiscal_operation_indicator","l10n_br_fiscal.group_manager",1,1,1,1
75
+ "l10n_br_fiscal_operation_indicator_maintenance","Operation Indicator for Maintenance","model_l10n_br_fiscal_operation_indicator","l10n_br_fiscal.group_data_maintenance",1,1,1,1
76
+ "l10n_br_fiscal_partner_profile_user","Fiscal Partner Profile for User","model_l10n_br_fiscal_partner_profile","base.group_user",1,0,0,0
71
77
  "l10n_br_fiscal_partner_profile_manager","Fiscal Partner Profile for Manager","model_l10n_br_fiscal_partner_profile","l10n_br_fiscal.group_manager",1,1,1,1
72
78
  "l10n_br_fiscal_document_user","Fiscal Document for User","model_l10n_br_fiscal_document","l10n_br_fiscal.group_user",1,1,1,0
73
79
  "l10n_br_fiscal_document_manager","Fiscal Document for Manager","model_l10n_br_fiscal_document","l10n_br_fiscal.group_manager",1,1,1,1
@@ -94,5 +100,5 @@
94
100
  "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
95
101
  "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
96
102
  "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
97
- "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
98
103
  "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
104
+ "l10n_br_fiscal_document_import_wizard_mixin_user",l10n_br_fiscal_document_import_wizard_mixin_user,model_l10n_br_fiscal_document_import_wizard_mixin,base.group_user,1,1,1,1
@@ -372,7 +372,7 @@ ul.auto-toc {
372
372
  !! This file is generated by oca-gen-addon-readme !!
373
373
  !! changes will be overwritten. !!
374
374
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
375
- !! source digest: sha256:cf48b3dc8a30c761b96bdff67361a3a6a6f6c8ef94813acb868ad483db2c7a59
375
+ !! source digest: sha256:946adae5ac2b94ccb38002a3dbc6b2464a2145f654bcfc818a9ae7aab3ae4ac5
376
376
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
377
377
  <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Production/Stable" src="https://img.shields.io/badge/maturity-Production%2FStable-green.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-brazil/tree/16.0/l10n_br_fiscal"><img alt="OCA/l10n-brazil" src="https://img.shields.io/badge/github-OCA%2Fl10n--brazil-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-brazil-16-0/l10n-brazil-16-0-l10n_br_fiscal"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/l10n-brazil&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
378
378
  <p><img alt="image" src="https://raw.githubusercontent.com/OCA/l10n-brazil/16.0/l10n_br_fiscal/static/img/fiscal_dashboard.png" /></p>
@@ -2,10 +2,13 @@
2
2
 
3
3
  from . import (
4
4
  test_cnae,
5
+ test_fiscal_document_serie,
5
6
  test_fiscal_document_generic,
6
7
  test_fiscal_document_nfse,
7
8
  test_fiscal_tax,
9
+ test_tax_classification,
8
10
  test_tax_benefit,
11
+ test_document_edition,
9
12
  test_ibpt_product,
10
13
  test_ibpt_service,
11
14
  test_icms_regulation,