odoo-addon-l10n-br-fiscal 16.0.2.17.0__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.
- odoo/addons/l10n_br_fiscal/README.rst +11 -4
- odoo/addons/l10n_br_fiscal/__manifest__.py +20 -12
- odoo/addons/l10n_br_fiscal/constants/fiscal.py +64 -18
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.cest.csv +1043 -983
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.cfop.csv +620 -620
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.cst.csv +58 -0
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.document.type.csv +1 -0
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.legal.nature.csv +82 -0
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.nbs.csv +791 -764
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.operation.indicator.csv +27 -0
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.partner.profile.csv +11 -0
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.tax.classification.csv +163 -0
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.tax.csv +32 -0
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal.tax.group.csv +3 -0
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal_icms_tax_definition_data.xml +340 -352
- odoo/addons/l10n_br_fiscal/data/operation_data.xml +1 -1
- odoo/addons/l10n_br_fiscal/data/simplified_tax_data.xml +5 -5
- odoo/addons/l10n_br_fiscal/data/uom.alias.csv +25 -0
- odoo/addons/l10n_br_fiscal/data/uom_data.xml +104 -33
- odoo/addons/l10n_br_fiscal/demo/__init__.py +21 -15
- odoo/addons/l10n_br_fiscal/demo/company_demo.xml +6 -0
- odoo/addons/l10n_br_fiscal/demo/fiscal_document_demo.xml +3 -377
- odoo/addons/l10n_br_fiscal/demo/fiscal_document_nfse_demo.xml +0 -12
- odoo/addons/l10n_br_fiscal/demo/fiscal_operation_demo.xml +2 -2
- odoo/addons/l10n_br_fiscal/demo/icms_tax_definition_demo.xml +5 -2
- odoo/addons/l10n_br_fiscal/demo/res_users_demo.xml +2 -2
- odoo/addons/l10n_br_fiscal/i18n/l10n_br_fiscal.pot +1161 -804
- odoo/addons/l10n_br_fiscal/i18n/pt_BR.po +22 -22
- odoo/addons/l10n_br_fiscal/migrations/16.0.13.0.0/pre-migration.py +25 -0
- odoo/addons/l10n_br_fiscal/migrations/16.0.14.0.0/pre-migration.py +30 -0
- odoo/addons/l10n_br_fiscal/migrations/16.0.14.0.5/pre-migration.py +15 -0
- odoo/addons/l10n_br_fiscal/migrations/16.0.4.0.0/pre-migration.py +220 -0
- odoo/addons/l10n_br_fiscal/migrations/16.0.5.0.0/pre-migration.py +33 -0
- odoo/addons/l10n_br_fiscal/migrations/16.0.5.2.0/pre-migration.py +21 -0
- odoo/addons/l10n_br_fiscal/models/__init__.py +3 -8
- odoo/addons/l10n_br_fiscal/models/cest.py +0 -8
- odoo/addons/l10n_br_fiscal/models/cfop.py +91 -0
- odoo/addons/l10n_br_fiscal/models/city_taxation_code.py +1 -3
- odoo/addons/l10n_br_fiscal/models/comment.py +2 -2
- odoo/addons/l10n_br_fiscal/models/cst.py +0 -1
- odoo/addons/l10n_br_fiscal/models/data_abstract.py +26 -0
- odoo/addons/l10n_br_fiscal/models/data_ncm_nbs_abstract.py +1 -1
- odoo/addons/l10n_br_fiscal/models/document.py +131 -222
- odoo/addons/l10n_br_fiscal/models/document_line.py +82 -5
- odoo/addons/l10n_br_fiscal/models/document_line_mixin.py +1952 -138
- odoo/addons/l10n_br_fiscal/models/document_mixin.py +741 -6
- odoo/addons/l10n_br_fiscal/models/document_related.py +12 -9
- odoo/addons/l10n_br_fiscal/models/document_serie.py +33 -0
- odoo/addons/l10n_br_fiscal/models/document_type.py +0 -6
- odoo/addons/l10n_br_fiscal/models/ibpt.py +1 -1
- odoo/addons/l10n_br_fiscal/models/icms_regulation.py +2 -2
- odoo/addons/l10n_br_fiscal/models/invalidate_number.py +4 -5
- odoo/addons/l10n_br_fiscal/models/legal_nature.py +20 -0
- odoo/addons/l10n_br_fiscal/models/nbm.py +0 -8
- odoo/addons/l10n_br_fiscal/models/ncm.py +0 -12
- odoo/addons/l10n_br_fiscal/models/operation.py +49 -15
- odoo/addons/l10n_br_fiscal/models/operation_dashboard.py +3 -2
- odoo/addons/l10n_br_fiscal/models/operation_indicator.py +58 -0
- odoo/addons/l10n_br_fiscal/models/operation_line.py +75 -6
- odoo/addons/l10n_br_fiscal/models/partner_profile.py +6 -0
- odoo/addons/l10n_br_fiscal/models/product_mixin.py +24 -21
- odoo/addons/l10n_br_fiscal/models/product_template.py +23 -13
- odoo/addons/l10n_br_fiscal/models/res_company.py +31 -9
- odoo/addons/l10n_br_fiscal/models/res_partner.py +38 -6
- odoo/addons/l10n_br_fiscal/models/simplified_tax.py +0 -3
- odoo/addons/l10n_br_fiscal/models/simplified_tax_range.py +8 -0
- odoo/addons/l10n_br_fiscal/models/tax.py +144 -55
- odoo/addons/l10n_br_fiscal/models/tax_classification.py +81 -0
- odoo/addons/l10n_br_fiscal/models/tax_definition.py +72 -23
- odoo/addons/l10n_br_fiscal/models/tax_pis_cofins.py +0 -3
- odoo/addons/l10n_br_fiscal/models/tax_pis_cofins_base.py +1 -1
- odoo/addons/l10n_br_fiscal/models/tax_pis_cofins_credit.py +1 -1
- odoo/addons/l10n_br_fiscal/models/uom_uom.py +15 -30
- odoo/addons/l10n_br_fiscal/security/fiscal_security.xml +11 -27
- odoo/addons/l10n_br_fiscal/security/ir.model.access.csv +11 -10
- odoo/addons/l10n_br_fiscal/static/description/index.html +27 -21
- odoo/addons/l10n_br_fiscal/static/src/js/list_renderer_with_button.esm.js +38 -0
- odoo/addons/l10n_br_fiscal/tests/__init__.py +3 -2
- odoo/addons/l10n_br_fiscal/tests/test_document_edition.py +308 -0
- odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_generic.py +23 -129
- odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_nfse.py +5 -15
- odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_serie.py +60 -0
- odoo/addons/l10n_br_fiscal/tests/test_ibpt.py +4 -3
- odoo/addons/l10n_br_fiscal/tests/test_icms_regulation.py +2 -2
- odoo/addons/l10n_br_fiscal/tests/test_ncm.py +4 -1
- odoo/addons/l10n_br_fiscal/tests/test_tax_benefit.py +17 -22
- odoo/addons/l10n_br_fiscal/tests/test_tax_classification.py +110 -0
- odoo/addons/l10n_br_fiscal/tools.py +1 -1
- odoo/addons/l10n_br_fiscal/views/cest_view.xml +2 -4
- odoo/addons/l10n_br_fiscal/views/cfop_view.xml +25 -5
- odoo/addons/l10n_br_fiscal/views/city_taxation_code.xml +1 -4
- odoo/addons/l10n_br_fiscal/views/cnae_view.xml +2 -4
- odoo/addons/l10n_br_fiscal/views/comment_view.xml +2 -4
- odoo/addons/l10n_br_fiscal/views/cst_view.xml +6 -8
- odoo/addons/l10n_br_fiscal/views/{document_fiscal_line_mixin_view.xml → document_line_mixin_view.xml} +525 -385
- odoo/addons/l10n_br_fiscal/views/document_line_view.xml +101 -82
- odoo/addons/l10n_br_fiscal/views/document_related_view.xml +44 -46
- odoo/addons/l10n_br_fiscal/views/document_serie_view.xml +2 -6
- odoo/addons/l10n_br_fiscal/views/document_type_view.xml +0 -8
- odoo/addons/l10n_br_fiscal/views/document_view.xml +303 -370
- odoo/addons/l10n_br_fiscal/views/icms_regulation_view.xml +14 -16
- odoo/addons/l10n_br_fiscal/views/icms_relief_view.xml +8 -10
- odoo/addons/l10n_br_fiscal/views/invalidate_number_view.xml +46 -48
- odoo/addons/l10n_br_fiscal/views/l10n_br_fiscal_action.xml +166 -280
- odoo/addons/l10n_br_fiscal/views/l10n_br_fiscal_menu.xml +25 -99
- odoo/addons/l10n_br_fiscal/views/legal_nature_view.xml +40 -0
- odoo/addons/l10n_br_fiscal/views/nbm_view.xml +5 -6
- odoo/addons/l10n_br_fiscal/views/nbs_view.xml +5 -6
- odoo/addons/l10n_br_fiscal/views/ncm_view.xml +12 -15
- odoo/addons/l10n_br_fiscal/views/operation_dashboard_view.xml +13 -12
- odoo/addons/l10n_br_fiscal/views/operation_indicator_view.xml +75 -0
- odoo/addons/l10n_br_fiscal/views/operation_line_view.xml +22 -21
- odoo/addons/l10n_br_fiscal/views/operation_view.xml +4 -19
- odoo/addons/l10n_br_fiscal/views/partner_profile_view.xml +3 -6
- odoo/addons/l10n_br_fiscal/views/product_genre_view.xml +7 -9
- odoo/addons/l10n_br_fiscal/views/product_product_view.xml +37 -14
- odoo/addons/l10n_br_fiscal/views/product_template_view.xml +34 -14
- odoo/addons/l10n_br_fiscal/views/res_company_view.xml +55 -52
- odoo/addons/l10n_br_fiscal/views/res_config_settings_view.xml +23 -28
- odoo/addons/l10n_br_fiscal/views/res_partner_view.xml +22 -2
- odoo/addons/l10n_br_fiscal/views/service_type_view.xml +7 -8
- odoo/addons/l10n_br_fiscal/views/simplified_tax_range_view.xml +0 -2
- odoo/addons/l10n_br_fiscal/views/simplified_tax_view.xml +0 -2
- odoo/addons/l10n_br_fiscal/views/tax_classification.xml +110 -0
- odoo/addons/l10n_br_fiscal/views/tax_definition_view.xml +157 -129
- odoo/addons/l10n_br_fiscal/views/tax_estimate_view.xml +0 -2
- odoo/addons/l10n_br_fiscal/views/tax_group_view.xml +3 -6
- odoo/addons/l10n_br_fiscal/views/tax_ipi_control_seal_view.xml +0 -2
- odoo/addons/l10n_br_fiscal/views/tax_ipi_guideline_class_view.xml +0 -2
- odoo/addons/l10n_br_fiscal/views/tax_ipi_guideline_view.xml +2 -4
- odoo/addons/l10n_br_fiscal/views/tax_pis_cofins_base_view.xml +2 -4
- odoo/addons/l10n_br_fiscal/views/tax_pis_cofins_credit_view.xml +2 -4
- odoo/addons/l10n_br_fiscal/views/tax_pis_cofins_view.xml +5 -7
- odoo/addons/l10n_br_fiscal/views/tax_view.xml +5 -7
- odoo/addons/l10n_br_fiscal/views/uom_uom.xml +24 -17
- odoo/addons/l10n_br_fiscal/wizards/__init__.py +1 -0
- odoo/addons/l10n_br_fiscal/wizards/base_wizard_mixin.py +1 -1
- odoo/addons/l10n_br_fiscal/wizards/document_import_wizard_mixin.py +129 -0
- odoo/addons/l10n_br_fiscal/wizards/document_import_wizard_mixin.xml +41 -0
- {odoo_addon_l10n_br_fiscal-16.0.2.17.0.dist-info → odoo_addon_l10n_br_fiscal-16.0.19.4.0.dist-info}/METADATA +15 -6
- odoo_addon_l10n_br_fiscal-16.0.19.4.0.dist-info/RECORD +210 -0
- {odoo_addon_l10n_br_fiscal-16.0.2.17.0.dist-info → odoo_addon_l10n_br_fiscal-16.0.19.4.0.dist-info}/WHEEL +1 -1
- odoo/addons/l10n_br_fiscal/data/l10n_br_fiscal_email_template.xml +0 -68
- odoo/addons/l10n_br_fiscal/data/partner_profile_data.xml +0 -96
- odoo/addons/l10n_br_fiscal/data/uom_alternative_data.xml +0 -58
- odoo/addons/l10n_br_fiscal/demo/l10n_br_fiscal_document_email.xml +0 -54
- odoo/addons/l10n_br_fiscal/demo/subsequent_operation_demo.xml +0 -10
- odoo/addons/l10n_br_fiscal/models/document_email.py +0 -74
- odoo/addons/l10n_br_fiscal/models/document_line_mixin_methods.py +0 -913
- odoo/addons/l10n_br_fiscal/models/document_mixin_fields.py +0 -473
- odoo/addons/l10n_br_fiscal/models/document_mixin_methods.py +0 -269
- odoo/addons/l10n_br_fiscal/models/document_move_mixin.py +0 -261
- odoo/addons/l10n_br_fiscal/models/subsequent_document.py +0 -203
- odoo/addons/l10n_br_fiscal/models/subsequent_operation.py +0 -54
- odoo/addons/l10n_br_fiscal/models/uom_uom_alternative.py +0 -22
- odoo/addons/l10n_br_fiscal/tests/test_subsequent_operation.py +0 -71
- odoo/addons/l10n_br_fiscal/tests/test_uom_uom.py +0 -22
- odoo/addons/l10n_br_fiscal/views/document_email_view.xml +0 -48
- odoo/addons/l10n_br_fiscal/views/subsequent_document_view.xml +0 -43
- odoo/addons/l10n_br_fiscal/views/subsequent_operation_view.xml +0 -21
- odoo_addon_l10n_br_fiscal-16.0.2.17.0.dist-info/RECORD +0 -205
- {odoo_addon_l10n_br_fiscal-16.0.2.17.0.dist-info → odoo_addon_l10n_br_fiscal-16.0.19.4.0.dist-info}/top_level.txt +0 -0
|
@@ -1300,9 +1300,9 @@ msgid "CNPJ"
|
|
|
1300
1300
|
msgstr "CNPJ"
|
|
1301
1301
|
|
|
1302
1302
|
#. module: l10n_br_fiscal
|
|
1303
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1304
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1305
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1303
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_related__vat
|
|
1304
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_res_partner__vat
|
|
1305
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_res_users__vat
|
|
1306
1306
|
msgid "CNPJ/CPF"
|
|
1307
1307
|
msgstr "CNPJ/CPF"
|
|
1308
1308
|
|
|
@@ -1914,8 +1914,8 @@ msgid "Company Main CNAE"
|
|
|
1914
1914
|
msgstr "CNAE Principal da Empresa"
|
|
1915
1915
|
|
|
1916
1916
|
#. module: l10n_br_fiscal
|
|
1917
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1918
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1917
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__company_l10n_br_im_code
|
|
1918
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_move_mixin__company_l10n_br_im_code
|
|
1919
1919
|
msgid "Company Municipal Tax Number"
|
|
1920
1920
|
msgstr "Número de Impostos Municipais da Empresa"
|
|
1921
1921
|
|
|
@@ -1938,8 +1938,8 @@ msgid "Company Phone"
|
|
|
1938
1938
|
msgstr "Telefone da Empresa"
|
|
1939
1939
|
|
|
1940
1940
|
#. module: l10n_br_fiscal
|
|
1941
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1942
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1941
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__company_l10n_br_ie_code_st
|
|
1942
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_move_mixin__company_l10n_br_ie_code_st
|
|
1943
1943
|
msgid "Company ST State Tax Number"
|
|
1944
1944
|
msgstr ""
|
|
1945
1945
|
|
|
@@ -1950,8 +1950,8 @@ msgid "Company State"
|
|
|
1950
1950
|
msgstr "Estado da Empresa"
|
|
1951
1951
|
|
|
1952
1952
|
#. module: l10n_br_fiscal
|
|
1953
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1954
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1953
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__company_l10n_br_ie_code
|
|
1954
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_move_mixin__company_l10n_br_ie_code
|
|
1955
1955
|
msgid "Company State Tax Number"
|
|
1956
1956
|
msgstr "Número da Inscrição Estadual"
|
|
1957
1957
|
|
|
@@ -1968,8 +1968,8 @@ msgid "Company Street2"
|
|
|
1968
1968
|
msgstr "Empresa Rua2"
|
|
1969
1969
|
|
|
1970
1970
|
#. module: l10n_br_fiscal
|
|
1971
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1972
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
1971
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__company_l10n_br_isuf_code
|
|
1972
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_move_mixin__company_l10n_br_isuf_code
|
|
1973
1973
|
msgid "Company Suframa"
|
|
1974
1974
|
msgstr "Empresa Suframa"
|
|
1975
1975
|
|
|
@@ -5165,7 +5165,7 @@ msgid "Input"
|
|
|
5165
5165
|
msgstr "Entrada"
|
|
5166
5166
|
|
|
5167
5167
|
#. module: l10n_br_fiscal
|
|
5168
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
5168
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_related__l10n_br_ie_code
|
|
5169
5169
|
msgid "Inscr. Estadual/RG"
|
|
5170
5170
|
msgstr "O Inscr. Estadual/RG"
|
|
5171
5171
|
|
|
@@ -5771,10 +5771,10 @@ msgid "Move Settings"
|
|
|
5771
5771
|
msgstr "Configurações de movimento"
|
|
5772
5772
|
|
|
5773
5773
|
#. module: l10n_br_fiscal
|
|
5774
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
5775
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
5776
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
5777
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
5774
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__partner_l10n_br_im_code
|
|
5775
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_move_mixin__partner_l10n_br_im_code
|
|
5776
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_res_partner__l10n_br_im_code
|
|
5777
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_res_users__l10n_br_im_code
|
|
5778
5778
|
msgid "Municipal Tax Number"
|
|
5779
5779
|
msgstr "Número de Impostos Municipais"
|
|
5780
5780
|
|
|
@@ -7705,10 +7705,10 @@ msgid "State"
|
|
|
7705
7705
|
msgstr "Estado"
|
|
7706
7706
|
|
|
7707
7707
|
#. module: l10n_br_fiscal
|
|
7708
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
7709
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
7710
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
7711
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
7708
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__partner_l10n_br_ie_code
|
|
7709
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_move_mixin__partner_l10n_br_ie_code
|
|
7710
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_res_partner__l10n_br_ie_code
|
|
7711
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_res_users__l10n_br_ie_code
|
|
7712
7712
|
msgid "State Tax Number"
|
|
7713
7713
|
msgstr "Número do Imposto Estadual/RG"
|
|
7714
7714
|
|
|
@@ -7798,8 +7798,8 @@ msgid "Sufix"
|
|
|
7798
7798
|
msgstr "Sufix"
|
|
7799
7799
|
|
|
7800
7800
|
#. module: l10n_br_fiscal
|
|
7801
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
7802
|
-
#: model:ir.model.fields,field_description:l10n_br_fiscal.
|
|
7801
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__partner_l10n_br_isuf_code
|
|
7802
|
+
#: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_move_mixin__partner_l10n_br_isuf_code
|
|
7803
7803
|
msgid "Suframa"
|
|
7804
7804
|
msgstr "Suframa"
|
|
7805
7805
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Copyright (C) 2025 - Engenere (<https://engenere.one>).
|
|
2
|
+
# @author Antônio S. Pereira Neto <neto@engenere.one>
|
|
3
|
+
|
|
4
|
+
from openupgradelib import openupgrade
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@openupgrade.migrate()
|
|
8
|
+
def migrate(env, version):
|
|
9
|
+
"""Rename product.template M2M field to the new pluralized name.
|
|
10
|
+
|
|
11
|
+
The underlying Many2many relation table remains the same because
|
|
12
|
+
Odoo derives it from model table names, not the field name. This
|
|
13
|
+
rename keeps references (e.g., stored views/filters) consistent.
|
|
14
|
+
"""
|
|
15
|
+
openupgrade.rename_fields(
|
|
16
|
+
env,
|
|
17
|
+
[
|
|
18
|
+
(
|
|
19
|
+
"product.template",
|
|
20
|
+
"product.template",
|
|
21
|
+
"city_taxation_code_id",
|
|
22
|
+
"city_taxation_code_ids",
|
|
23
|
+
),
|
|
24
|
+
],
|
|
25
|
+
)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Copyright (C) 2025 - Engenere (<https://engenere.one>).
|
|
2
|
+
# @author Antônio S. Pereira Neto <neto@engenere.one>
|
|
3
|
+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
4
|
+
|
|
5
|
+
from openupgradelib import openupgrade
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@openupgrade.migrate()
|
|
9
|
+
def migrate(env, version):
|
|
10
|
+
field_spec = [
|
|
11
|
+
(
|
|
12
|
+
"l10n_br_fiscal.document",
|
|
13
|
+
"l10n_br_fiscal_document",
|
|
14
|
+
"amount_untaxed",
|
|
15
|
+
"fiscal_amount_untaxed",
|
|
16
|
+
),
|
|
17
|
+
(
|
|
18
|
+
"l10n_br_fiscal.document",
|
|
19
|
+
"l10n_br_fiscal_document",
|
|
20
|
+
"amount_tax",
|
|
21
|
+
"fiscal_amount_tax",
|
|
22
|
+
),
|
|
23
|
+
(
|
|
24
|
+
"l10n_br_fiscal.document",
|
|
25
|
+
"l10n_br_fiscal_document",
|
|
26
|
+
"amount_total",
|
|
27
|
+
"fiscal_amount_total",
|
|
28
|
+
),
|
|
29
|
+
]
|
|
30
|
+
openupgrade.rename_fields(env, field_spec)
|
|
@@ -0,0 +1,15 @@
|
|
|
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 openupgradelib import openupgrade
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@openupgrade.migrate()
|
|
8
|
+
def migrate(env, version):
|
|
9
|
+
xmlids_renames = [
|
|
10
|
+
(
|
|
11
|
+
"l10n_br_fiscal.l10n_br_fiscal_operation_line_rule",
|
|
12
|
+
"l10n_br_fiscal.l10n_br_fiscal_operation_rule",
|
|
13
|
+
)
|
|
14
|
+
]
|
|
15
|
+
openupgrade.rename_xmlids(env.cr, xmlids_renames)
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# Copyright (C) 2025 - TODAY Raphaël Valyi - Akretion
|
|
2
|
+
# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
|
|
3
|
+
|
|
4
|
+
import logging
|
|
5
|
+
|
|
6
|
+
from openupgradelib import openupgrade
|
|
7
|
+
|
|
8
|
+
_logger = logging.getLogger(__name__)
|
|
9
|
+
|
|
10
|
+
_tables_renames = [
|
|
11
|
+
# l10n_br_fiscal/models/operation.py: comment_ids
|
|
12
|
+
(
|
|
13
|
+
"l10n_br_fiscal_operation_comment_rel",
|
|
14
|
+
"l10n_br_fiscal_comment_l10n_br_fiscal_operation_rel",
|
|
15
|
+
),
|
|
16
|
+
# l10n_br_fiscal/models/operation_line.py: comment_ids
|
|
17
|
+
(
|
|
18
|
+
"l10n_br_fiscal_operation_line_comment_rel",
|
|
19
|
+
"l10n_br_fiscal_comment_l10n_br_fiscal_operation_line_rel",
|
|
20
|
+
),
|
|
21
|
+
# l10n_br_fiscal/models/res_company.py: cnae_secondary_ids
|
|
22
|
+
("res_company_fiscal_cnae_rel", "l10n_br_fiscal_cnae_res_company_rel"),
|
|
23
|
+
# l10n_br_fiscal/models/document_mixin.py: comment_ids
|
|
24
|
+
# (Abstract, assumes concrete l10n_br_fiscal.document)
|
|
25
|
+
(
|
|
26
|
+
"l10n_br_fiscal_document_mixin_comment_rel",
|
|
27
|
+
"l10n_br_fiscal_comment_l10n_br_fiscal_document_rel",
|
|
28
|
+
),
|
|
29
|
+
# l10n_br_fiscal/models/document_line_mixin.py: fiscal_tax_ids
|
|
30
|
+
# (Abstract, assumes concrete l10n_br_fiscal.document.line)
|
|
31
|
+
("fiscal_tax_rel", "l10n_br_fiscal_document_line_l10n_br_fiscal_tax_rel"),
|
|
32
|
+
# l10n_br_fiscal/models/document_line_mixin.py: comment_ids
|
|
33
|
+
# (Abstract, assumes concrete l10n_br_fiscal.document.line)
|
|
34
|
+
(
|
|
35
|
+
"l10n_br_fiscal_document_line_mixin_comment_rel",
|
|
36
|
+
"l10n_br_fiscal_comment_l10n_br_fiscal_document_line_rel",
|
|
37
|
+
),
|
|
38
|
+
# l10n_br_fiscal/models/nbm.py: ncm_ids
|
|
39
|
+
("fiscal_nbm_ncm_rel", "l10n_br_fiscal_nbm_l10n_br_fiscal_ncm_rel"),
|
|
40
|
+
# l10n_br_fiscal/models/nbm.py: tax_definition_ids
|
|
41
|
+
("tax_definition_nbm_rel", "l10n_br_fiscal_nbm_l10n_br_fiscal_tax_definition_rel"),
|
|
42
|
+
# l10n_br_fiscal/models/cest.py: ncm_ids
|
|
43
|
+
("fiscal_cest_ncm_rel", "l10n_br_fiscal_cest_l10n_br_fiscal_ncm_rel"),
|
|
44
|
+
# l10n_br_fiscal/models/ncm.py: piscofins_ids
|
|
45
|
+
(
|
|
46
|
+
"fiscal_pis_cofins_ncm_rel",
|
|
47
|
+
"l10n_br_fiscal_ncm_l10n_br_fiscal_tax_pis_cofins_rel",
|
|
48
|
+
),
|
|
49
|
+
# l10n_br_fiscal/models/tax_definition.py: state_to_ids
|
|
50
|
+
(
|
|
51
|
+
"tax_definition_state_to_rel",
|
|
52
|
+
"l10n_br_fiscal_tax_definition_res_country_state_rel",
|
|
53
|
+
),
|
|
54
|
+
# l10n_br_fiscal/models/tax_definition.py: ncm_ids
|
|
55
|
+
("tax_definition_ncm_rel", "l10n_br_fiscal_ncm_l10n_br_fiscal_tax_definition_rel"),
|
|
56
|
+
# l10n_br_fiscal/models/tax_definition.py: cest_ids
|
|
57
|
+
(
|
|
58
|
+
"tax_definition_cest_rel",
|
|
59
|
+
"l10n_br_fiscal_cest_l10n_br_fiscal_tax_definition_rel",
|
|
60
|
+
),
|
|
61
|
+
# l10n_br_fiscal/models/tax_definition.py: service_type_ids
|
|
62
|
+
(
|
|
63
|
+
"tax_definition_service_type_rel",
|
|
64
|
+
"l10n_br_fiscal_service_type_l10n_br_fiscal_tax_definition_rel",
|
|
65
|
+
),
|
|
66
|
+
# l10n_br_fiscal/models/simplified_tax.py: cnae_ids
|
|
67
|
+
(
|
|
68
|
+
"fiscal_simplified_tax_cnae_rel",
|
|
69
|
+
"l10n_br_fiscal_cnae_l10n_br_fiscal_simplified_tax_rel",
|
|
70
|
+
),
|
|
71
|
+
]
|
|
72
|
+
|
|
73
|
+
_columns_renames = {
|
|
74
|
+
# l10n_br_fiscal_operation_comment_rel
|
|
75
|
+
# -> l10n_br_fiscal_comment_l10n_br_fiscal_operation_rel
|
|
76
|
+
"l10n_br_fiscal_comment_l10n_br_fiscal_operation_rel": [
|
|
77
|
+
("fiscal_operation_id", "l10n_br_fiscal_operation_id"),
|
|
78
|
+
("comment_id", "l10n_br_fiscal_comment_id"),
|
|
79
|
+
],
|
|
80
|
+
# l10n_br_fiscal_operation_line_comment_rel
|
|
81
|
+
# -> l10n_br_fiscal_comment_l10n_br_fiscal_operation_line_rel
|
|
82
|
+
"l10n_br_fiscal_comment_l10n_br_fiscal_operation_line_rel": [
|
|
83
|
+
("fiscal_operation_line_id", "l10n_br_fiscal_operation_line_id"),
|
|
84
|
+
("comment_id", "l10n_br_fiscal_comment_id"),
|
|
85
|
+
],
|
|
86
|
+
# res_company_fiscal_cnae_rel -> l10n_br_fiscal_cnae_res_company_rel
|
|
87
|
+
"l10n_br_fiscal_cnae_res_company_rel": [
|
|
88
|
+
("company_id", "res_company_id"),
|
|
89
|
+
("cnae_id", "l10n_br_fiscal_cnae_id"),
|
|
90
|
+
],
|
|
91
|
+
# l10n_br_fiscal_document_mixin_comment_rel
|
|
92
|
+
# -> l10n_br_fiscal_comment_l10n_br_fiscal_document_rel
|
|
93
|
+
"l10n_br_fiscal_comment_l10n_br_fiscal_document_rel": [
|
|
94
|
+
(
|
|
95
|
+
"document_mixin_id",
|
|
96
|
+
"l10n_br_fiscal_document_id",
|
|
97
|
+
), # ORM uses concrete model table name
|
|
98
|
+
("comment_id", "l10n_br_fiscal_comment_id"),
|
|
99
|
+
],
|
|
100
|
+
# fiscal_tax_rel -> l10n_br_fiscal_document_line_l10n_br_fiscal_tax_rel
|
|
101
|
+
"l10n_br_fiscal_document_line_l10n_br_fiscal_tax_rel": [
|
|
102
|
+
(
|
|
103
|
+
"document_id",
|
|
104
|
+
"l10n_br_fiscal_document_line_id",
|
|
105
|
+
), # Old name was 'document_id', needs mapping to line
|
|
106
|
+
("fiscal_tax_id", "l10n_br_fiscal_tax_id"),
|
|
107
|
+
],
|
|
108
|
+
# l10n_br_fiscal_document_line_mixin_comment_rel
|
|
109
|
+
# -> l10n_br_fiscal_comment_l10n_br_fiscal_document_line_rel
|
|
110
|
+
"l10n_br_fiscal_comment_l10n_br_fiscal_document_line_rel": [
|
|
111
|
+
(
|
|
112
|
+
"document_line_mixin_id",
|
|
113
|
+
"l10n_br_fiscal_document_line_id",
|
|
114
|
+
), # ORM uses concrete model table name
|
|
115
|
+
("comment_id", "l10n_br_fiscal_comment_id"),
|
|
116
|
+
],
|
|
117
|
+
# fiscal_nbm_ncm_rel -> l10n_br_fiscal_nbm_l10n_br_fiscal_ncm_rel
|
|
118
|
+
"l10n_br_fiscal_nbm_l10n_br_fiscal_ncm_rel": [
|
|
119
|
+
("nbm_id", "l10n_br_fiscal_nbm_id"),
|
|
120
|
+
("ncm_id", "l10n_br_fiscal_ncm_id"),
|
|
121
|
+
],
|
|
122
|
+
# tax_definition_nbm_rel -> l10n_br_fiscal_nbm_l10n_br_fiscal_tax_definition_rel
|
|
123
|
+
"l10n_br_fiscal_nbm_l10n_br_fiscal_tax_definition_rel": [
|
|
124
|
+
("nbm_id", "l10n_br_fiscal_nbm_id"),
|
|
125
|
+
("tax_definition_id", "l10n_br_fiscal_tax_definition_id"),
|
|
126
|
+
],
|
|
127
|
+
# fiscal_cest_ncm_rel -> l10n_br_fiscal_cest_l10n_br_fiscal_ncm_rel
|
|
128
|
+
"l10n_br_fiscal_cest_l10n_br_fiscal_ncm_rel": [
|
|
129
|
+
("cest_id", "l10n_br_fiscal_cest_id"),
|
|
130
|
+
("ncm_id", "l10n_br_fiscal_ncm_id"),
|
|
131
|
+
],
|
|
132
|
+
# tax_definition_cest_rel -> l10n_br_fiscal_cest_l10n_br_fiscal_tax_definition_rel
|
|
133
|
+
"l10n_br_fiscal_cest_l10n_br_fiscal_tax_definition_rel": [
|
|
134
|
+
("cest_id", "l10n_br_fiscal_cest_id"),
|
|
135
|
+
("tax_definition_id", "l10n_br_fiscal_tax_definition_id"),
|
|
136
|
+
],
|
|
137
|
+
# fiscal_pis_cofins_ncm_rel -> l10n_br_fiscal_ncm_l10n_br_fiscal_tax_pis_cofins_rel
|
|
138
|
+
"l10n_br_fiscal_ncm_l10n_br_fiscal_tax_pis_cofins_rel": [
|
|
139
|
+
("ncm_id", "l10n_br_fiscal_ncm_id"),
|
|
140
|
+
("piscofins_id", "l10n_br_fiscal_tax_pis_cofins_id"),
|
|
141
|
+
],
|
|
142
|
+
# tax_definition_state_to_rel -> l10n_br_fiscal_tax_definition_res_country_state_rel
|
|
143
|
+
"l10n_br_fiscal_tax_definition_res_country_state_rel": [
|
|
144
|
+
("tax_definition_id", "l10n_br_fiscal_tax_definition_id"),
|
|
145
|
+
("state_id", "res_country_state_id"),
|
|
146
|
+
],
|
|
147
|
+
# tax_definition_ncm_rel -> l10n_br_fiscal_ncm_l10n_br_fiscal_tax_definition_rel
|
|
148
|
+
"l10n_br_fiscal_ncm_l10n_br_fiscal_tax_definition_rel": [
|
|
149
|
+
("ncm_id", "l10n_br_fiscal_ncm_id"),
|
|
150
|
+
("tax_definition_id", "l10n_br_fiscal_tax_definition_id"),
|
|
151
|
+
],
|
|
152
|
+
# tax_definition_service_type_rel
|
|
153
|
+
# -> l10n_br_fiscal_service_type_l10n_br_fiscal_tax_definition_rel
|
|
154
|
+
"l10n_br_fiscal_service_type_l10n_br_fiscal_tax_definition_rel": [
|
|
155
|
+
("tax_definition_id", "l10n_br_fiscal_tax_definition_id"),
|
|
156
|
+
("service_type_id", "l10n_br_fiscal_service_type_id"),
|
|
157
|
+
],
|
|
158
|
+
# fiscal_simplified_tax_cnae_rel
|
|
159
|
+
# -> l10n_br_fiscal_cnae_l10n_br_fiscal_simplified_tax_rel
|
|
160
|
+
"l10n_br_fiscal_cnae_l10n_br_fiscal_simplified_tax_rel": [
|
|
161
|
+
("simplified_tax_id", "l10n_br_fiscal_simplified_tax_id"),
|
|
162
|
+
("cnae_id", "l10n_br_fiscal_cnae_id"),
|
|
163
|
+
],
|
|
164
|
+
# custom table was preserved to avoid too long name
|
|
165
|
+
# but column name change to default is still required:
|
|
166
|
+
"tax_definition_city_taxation_code_rel": [
|
|
167
|
+
("tax_definition_id", "l10n_br_fiscal_tax_definition_id"),
|
|
168
|
+
("city_taxation_code_id", "l10n_br_fiscal_city_taxation_code_id"),
|
|
169
|
+
],
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
def rename_tables(cr, table_spec):
|
|
174
|
+
"""
|
|
175
|
+
Rename tables without touching indexes or constraints.
|
|
176
|
+
Verify that the table exists before renaming it.
|
|
177
|
+
"""
|
|
178
|
+
for old, new in table_spec:
|
|
179
|
+
# Check whether the table exists
|
|
180
|
+
cr.execute("SELECT to_regclass(%s)", (old,))
|
|
181
|
+
if cr.fetchone()[0] is None:
|
|
182
|
+
_logger.info(f"Table {old} not found – skipping rename")
|
|
183
|
+
continue
|
|
184
|
+
|
|
185
|
+
_logger.info(f"Renaming table {old} → {new}")
|
|
186
|
+
openupgrade.logged_query(
|
|
187
|
+
cr,
|
|
188
|
+
f"ALTER TABLE {old} RENAME TO {new}",
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
def rename_columns(cr, column_spec):
|
|
193
|
+
"""
|
|
194
|
+
Rename columns of existing tables.
|
|
195
|
+
"""
|
|
196
|
+
for table, columns in column_spec.items():
|
|
197
|
+
cr.execute("SELECT to_regclass(%s)", (table,))
|
|
198
|
+
if cr.fetchone()[0] is None:
|
|
199
|
+
_logger.info(f"Table {table} not found – skipping column renames")
|
|
200
|
+
continue
|
|
201
|
+
|
|
202
|
+
for old, new in columns:
|
|
203
|
+
_logger.info(f"Renaming {table}.{old} → {new}")
|
|
204
|
+
openupgrade.logged_query(
|
|
205
|
+
cr,
|
|
206
|
+
f"ALTER TABLE {table} RENAME {old} TO {new}",
|
|
207
|
+
)
|
|
208
|
+
|
|
209
|
+
|
|
210
|
+
@openupgrade.migrate()
|
|
211
|
+
def migrate(env, version):
|
|
212
|
+
"""
|
|
213
|
+
Migrate Many2many relation tables and columns from explicitly defined names
|
|
214
|
+
to Odoo ORM defaults for l10n_br_fiscal module.
|
|
215
|
+
"""
|
|
216
|
+
openupgrade.logged_query(
|
|
217
|
+
env.cr, "DROP TABLE l10n_br_fiscal_tax_definition_res_country_state_rel;"
|
|
218
|
+
) # see https://github.com/OCA/l10n-brazil/issues/3748
|
|
219
|
+
rename_tables(env.cr, _tables_renames)
|
|
220
|
+
rename_columns(env.cr, _columns_renames)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Copyright (C) 2025 - Raphaël Valyi - Akretion <raphael.valyi@akretion.com.br>
|
|
2
|
+
# Copyright (C) 2025 - Antônio S. Pereira Neto - Engenere <neto@engenere.one>
|
|
3
|
+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
4
|
+
|
|
5
|
+
from openupgradelib import openupgrade
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
@openupgrade.migrate()
|
|
9
|
+
def migrate(env, version):
|
|
10
|
+
# move data
|
|
11
|
+
openupgrade.logged_query(
|
|
12
|
+
env.cr,
|
|
13
|
+
"""
|
|
14
|
+
INSERT INTO uom_alias (uom_id, code, write_uid, create_uid, write_date,
|
|
15
|
+
create_date)
|
|
16
|
+
SELECT uom_id, code, write_uid, create_uid, write_date, create_date
|
|
17
|
+
FROM uom_uom_alternative
|
|
18
|
+
""",
|
|
19
|
+
)
|
|
20
|
+
# update xmlids
|
|
21
|
+
openupgrade.logged_query(
|
|
22
|
+
env.cr,
|
|
23
|
+
"""
|
|
24
|
+
UPDATE ir_model_data AS imd
|
|
25
|
+
SET model = 'uom.alias',
|
|
26
|
+
res_id = new_alias.id
|
|
27
|
+
FROM uom_uom_alternative AS old_alias
|
|
28
|
+
JOIN uom_alias AS new_alias
|
|
29
|
+
ON new_alias.code = old_alias.code
|
|
30
|
+
WHERE imd.model = 'uom.uom.alternative'
|
|
31
|
+
AND imd.res_id = old_alias.id
|
|
32
|
+
""",
|
|
33
|
+
)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Copyright (C) 2025 - Engenere (<https://engenere.one>).
|
|
2
|
+
# @author Antônio S. Pereira Neto <neto@engenere.one>
|
|
3
|
+
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
4
|
+
from openupgradelib import openupgrade
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@openupgrade.migrate()
|
|
8
|
+
def migrate(env, version):
|
|
9
|
+
# Migration script that was missing in the related PR:
|
|
10
|
+
# https://github.com/OCA/l10n-brazil/pull/3768
|
|
11
|
+
xmlids_renames = [
|
|
12
|
+
(
|
|
13
|
+
"l10n_br_fiscal.tax_icmsfcp_2_regulation_pb_pb",
|
|
14
|
+
"l10n_br_fiscal.tax_icmsfcp_2_regulation_pr_pr",
|
|
15
|
+
),
|
|
16
|
+
(
|
|
17
|
+
"l10n_br_fiscal.tax_icmsfcp_nt_regulation_pb_pb",
|
|
18
|
+
"l10n_br_fiscal.tax_icmsfcp_2_regulation_pb_pb",
|
|
19
|
+
),
|
|
20
|
+
]
|
|
21
|
+
openupgrade.rename_xmlids(env.cr, xmlids_renames)
|
|
@@ -3,17 +3,14 @@
|
|
|
3
3
|
from . import data_abstract
|
|
4
4
|
from . import data_product_abstract
|
|
5
5
|
from . import data_ncm_nbs_abstract
|
|
6
|
-
from . import document_mixin_methods
|
|
7
|
-
from . import document_mixin_fields
|
|
8
6
|
from . import document_mixin
|
|
9
|
-
from . import document_move_mixin
|
|
10
|
-
from . import document_line_mixin_methods
|
|
11
7
|
from . import document_line_mixin
|
|
12
8
|
from . import invalidate_number
|
|
13
9
|
from . import comment
|
|
14
10
|
from . import ibpt
|
|
15
11
|
from . import cfop
|
|
16
12
|
from . import cst
|
|
13
|
+
from . import legal_nature
|
|
17
14
|
from . import cnae
|
|
18
15
|
from . import nbs
|
|
19
16
|
from . import service_type
|
|
@@ -52,10 +49,8 @@ from . import document_line
|
|
|
52
49
|
from . import res_config_settings
|
|
53
50
|
from . import res_country_state
|
|
54
51
|
from . import uom_uom
|
|
55
|
-
from . import uom_uom_alternative
|
|
56
52
|
from . import operation_dashboard
|
|
57
|
-
from . import subsequent_operation
|
|
58
|
-
from . import subsequent_document
|
|
59
|
-
from . import document_email
|
|
60
53
|
from . import city_taxation_code
|
|
61
54
|
from . import document_supplement
|
|
55
|
+
from . import tax_classification
|
|
56
|
+
from . import operation_indicator
|
|
@@ -16,8 +16,6 @@ class Cest(models.Model):
|
|
|
16
16
|
|
|
17
17
|
code_unmasked = fields.Char(size=7)
|
|
18
18
|
|
|
19
|
-
name = fields.Text(required=True, index=True)
|
|
20
|
-
|
|
21
19
|
item = fields.Char(required=True)
|
|
22
20
|
|
|
23
21
|
segment = fields.Selection(selection=CEST_SEGMENT, required=True)
|
|
@@ -28,18 +26,12 @@ class Cest(models.Model):
|
|
|
28
26
|
|
|
29
27
|
ncm_ids = fields.Many2many(
|
|
30
28
|
comodel_name="l10n_br_fiscal.ncm",
|
|
31
|
-
relation="fiscal_cest_ncm_rel",
|
|
32
|
-
column1="cest_id",
|
|
33
|
-
column2="ncm_id",
|
|
34
29
|
readonly=True,
|
|
35
30
|
string="NCMs",
|
|
36
31
|
)
|
|
37
32
|
|
|
38
33
|
tax_definition_ids = fields.Many2many(
|
|
39
34
|
comodel_name="l10n_br_fiscal.tax.definition",
|
|
40
|
-
relation="tax_definition_cest_rel",
|
|
41
|
-
column1="cest_id",
|
|
42
|
-
column2="tax_definition_id",
|
|
43
35
|
readonly=True,
|
|
44
36
|
string="Tax Definition",
|
|
45
37
|
)
|
|
@@ -70,6 +70,97 @@ class Cfop(models.Model):
|
|
|
70
70
|
default=CFOP_TYPE_MOVE_DEFAULT,
|
|
71
71
|
)
|
|
72
72
|
|
|
73
|
+
ind_nfe = fields.Selection(
|
|
74
|
+
selection=[
|
|
75
|
+
("0", "0 - No"),
|
|
76
|
+
("1", "1 - Yes"),
|
|
77
|
+
],
|
|
78
|
+
string="Used in NFe",
|
|
79
|
+
required=True,
|
|
80
|
+
default="0",
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
ind_cte = fields.Selection(
|
|
84
|
+
selection=[
|
|
85
|
+
("0", "0 - No"),
|
|
86
|
+
("1", "1 - Yes"),
|
|
87
|
+
],
|
|
88
|
+
string="Used in CTe",
|
|
89
|
+
required=True,
|
|
90
|
+
default="0",
|
|
91
|
+
)
|
|
92
|
+
|
|
93
|
+
ind_comunica = fields.Selection(
|
|
94
|
+
selection=[
|
|
95
|
+
("0", "0 - No"),
|
|
96
|
+
("1", "1 - Yes"),
|
|
97
|
+
],
|
|
98
|
+
string="Communication?",
|
|
99
|
+
required=True,
|
|
100
|
+
default="0",
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
ind_transp = fields.Selection(
|
|
104
|
+
selection=[
|
|
105
|
+
("0", "0 - No"),
|
|
106
|
+
("1", "1 - Yes"),
|
|
107
|
+
],
|
|
108
|
+
string="Transport?",
|
|
109
|
+
required=True,
|
|
110
|
+
default="0",
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
ind_devol = fields.Selection(
|
|
114
|
+
selection=[
|
|
115
|
+
("0", "0 - No"),
|
|
116
|
+
("1", "1 - Yes"),
|
|
117
|
+
],
|
|
118
|
+
string="Return?",
|
|
119
|
+
required=True,
|
|
120
|
+
default="0",
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
ind_retor = fields.Selection(
|
|
124
|
+
selection=[
|
|
125
|
+
("0", "0 - No"),
|
|
126
|
+
("1", "1 - Yes"),
|
|
127
|
+
],
|
|
128
|
+
string="Regress?",
|
|
129
|
+
required=True,
|
|
130
|
+
default="0",
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
ind_anula = fields.Selection(
|
|
134
|
+
selection=[
|
|
135
|
+
("0", "0 - No"),
|
|
136
|
+
("1", "1 - Yes"),
|
|
137
|
+
],
|
|
138
|
+
string="Revocation?",
|
|
139
|
+
required=True,
|
|
140
|
+
default="0",
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
ind_remes = fields.Selection(
|
|
144
|
+
selection=[
|
|
145
|
+
("0", "0 - No"),
|
|
146
|
+
("1", "1 - Yes"),
|
|
147
|
+
],
|
|
148
|
+
string="Shipment?",
|
|
149
|
+
required=True,
|
|
150
|
+
default="0",
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
ind_comb = fields.Selection(
|
|
154
|
+
selection=[
|
|
155
|
+
("0", "0 - No"),
|
|
156
|
+
("1", "1 - Yes - Without mandatory transportation information"),
|
|
157
|
+
("2", "2 - Yes - With mandatory transportation information"),
|
|
158
|
+
],
|
|
159
|
+
string="Fuel?",
|
|
160
|
+
required=True,
|
|
161
|
+
default="0",
|
|
162
|
+
)
|
|
163
|
+
|
|
73
164
|
tax_definition_ids = fields.One2many(
|
|
74
165
|
comodel_name="l10n_br_fiscal.tax.definition",
|
|
75
166
|
inverse_name="cfop_id",
|
|
@@ -34,9 +34,7 @@ class CityTaxationCode(models.Model):
|
|
|
34
34
|
|
|
35
35
|
tax_definition_ids = fields.Many2many(
|
|
36
36
|
comodel_name="l10n_br_fiscal.tax.definition",
|
|
37
|
-
relation="tax_definition_city_taxation_code_rel",
|
|
38
|
-
column1="city_taxation_code_id",
|
|
39
|
-
column2="tax_definition_id",
|
|
37
|
+
relation="tax_definition_city_taxation_code_rel", # (orm default is too long)
|
|
40
38
|
readonly=True,
|
|
41
39
|
string="Tax Definition",
|
|
42
40
|
)
|
|
@@ -6,7 +6,7 @@ from datetime import datetime
|
|
|
6
6
|
|
|
7
7
|
from dateutil.relativedelta import relativedelta
|
|
8
8
|
|
|
9
|
-
from odoo import api, fields, models
|
|
9
|
+
from odoo import api, fields, models
|
|
10
10
|
from odoo.osv.expression import AND
|
|
11
11
|
|
|
12
12
|
from ..constants.fiscal import (
|
|
@@ -163,7 +163,7 @@ class Comment(models.Model):
|
|
|
163
163
|
|
|
164
164
|
comments = [manual_comment] if manual_comment else []
|
|
165
165
|
for record in self:
|
|
166
|
-
template = mako_safe_env.from_string(
|
|
166
|
+
template = mako_safe_env.from_string(record.comment)
|
|
167
167
|
comments.append(template.render(vals))
|
|
168
168
|
return " - ".join(comments)
|
|
169
169
|
|