From 2a448b9a30d1dd6f609c75ed672c2406aeb60562 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 5 May 2025 15:40:28 -0300 Subject: [PATCH 1/3] [IMP] l10n_br_fiscal: Updated edoc purpose and added edoc refund type for credit and debit --- l10n_br_fiscal/constants/fiscal.py | 15 +++++++++++++++ l10n_br_fiscal/models/document.py | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/l10n_br_fiscal/constants/fiscal.py b/l10n_br_fiscal/constants/fiscal.py index 18ebbd788c73..34340275dbe3 100644 --- a/l10n_br_fiscal/constants/fiscal.py +++ b/l10n_br_fiscal/constants/fiscal.py @@ -477,6 +477,8 @@ ("2", "Complementar"), ("3", "Ajuste"), ("4", "Devolução de mercadoria"), + ("5", "Nota de Crédito"), + ("6", "Nota de Débito"), ] EDOC_PURPOSE_NORMAL = "1" @@ -484,6 +486,19 @@ EDOC_PURPOSE_AJUSTE = "3" EDOC_PURPOSE_DEVOLUCAO = "4" +EDOC_REFUND_DEBIT_TYPE = [ + ("01", "Transferência de créditos para Cooperativas"), + ("02", "Anulação de Crédito por Saídas Imunes/Isentas"), + ("03", "Débitos de notas fiscais não processadas na apuração"), + ("04", "Multa e juros"), + ("05", "Transferência de crédito de sucessão"), +] + +# TODO - Implementar nas proximas versões da NT da Reforma tributária +EDOC_REFUND_CREDIT_TYPE = [ + ("00", "Não Implementado"), +] + PROCESSADOR_NENHUM = "nenhum" PROCESSADOR_OCA = "oca" diff --git a/l10n_br_fiscal/models/document.py b/l10n_br_fiscal/models/document.py index 68aa1ab06a46..0e86bf4b6db4 100644 --- a/l10n_br_fiscal/models/document.py +++ b/l10n_br_fiscal/models/document.py @@ -16,6 +16,8 @@ DOCUMENT_ISSUER_PARTNER, EDOC_PURPOSE, EDOC_PURPOSE_NORMAL, + EDOC_REFUND_DEBIT_TYPE, + EDOC_REFUND_CREDIT_TYPE, FISCAL_IN_OUT_DICT, MODELO_FISCAL_CTE, MODELO_FISCAL_NFCE, @@ -158,6 +160,16 @@ class Document(models.Model): default=EDOC_PURPOSE_NORMAL, ) + edoc_refund_debit_type = fields.Selection( + selection=EDOC_REFUND_DEBIT_TYPE, + string="Tipo de Nota de Débito", + ) + + edoc_refund_credit_type = fields.Selection( + selection=EDOC_REFUND_CREDIT_TYPE, + string="Tipo de Nota de Crédito", + ) + document_type = fields.Char( string="Document Type Code", related="document_type_id.code", From ebe94599c2848f0db08ffaff8d2b6ea5e6143eb5 Mon Sep 17 00:00:00 2001 From: Renato Lima Date: Mon, 5 May 2025 15:56:00 -0300 Subject: [PATCH 2/3] [IMP] l10n_br_fiscal: Adicionado campo Tipo de ente governamental implementado pela NT 2025.002-RTC --- l10n_br_fiscal/constants/fiscal.py | 8 ++++++++ l10n_br_fiscal/models/document.py | 6 ++++++ l10n_br_fiscal/models/partner_profile.py | 6 ++++++ l10n_br_fiscal/models/res_partner.py | 7 +++++++ l10n_br_fiscal/views/res_partner_view.xml | 6 ++++++ 5 files changed, 33 insertions(+) diff --git a/l10n_br_fiscal/constants/fiscal.py b/l10n_br_fiscal/constants/fiscal.py index 34340275dbe3..6936c9e69872 100644 --- a/l10n_br_fiscal/constants/fiscal.py +++ b/l10n_br_fiscal/constants/fiscal.py @@ -307,6 +307,14 @@ FINAL_CUSTOMER_YES = "1" +PUBLIC_ENTIRY_TYPE = [ + ("1", "União"), + ("2", "Estado"), + ("3", "Distrito Federal"), + ("4", "Município"), +] + + CFOP_TYPE_MOVE = [ ("purchase_industry", "Purchase Industry"), ("purchase_commerce", "Purchase Commerce"), diff --git a/l10n_br_fiscal/models/document.py b/l10n_br_fiscal/models/document.py index 0e86bf4b6db4..cc6bb5c934bf 100644 --- a/l10n_br_fiscal/models/document.py +++ b/l10n_br_fiscal/models/document.py @@ -23,6 +23,7 @@ MODELO_FISCAL_NFCE, MODELO_FISCAL_NFE, MODELO_FISCAL_NFSE, + PUBLIC_ENTIRY_TYPE, SITUACAO_EDOC, SITUACAO_EDOC_AUTORIZADA, SITUACAO_EDOC_CANCELADA, @@ -170,6 +171,11 @@ class Document(models.Model): string="Tipo de Nota de Crédito", ) + public_entity_type = fields.Selection( + selection=PUBLIC_ENTIRY_TYPE, + string="Tipo de Entidade Governamental", + ) + document_type = fields.Char( string="Document Type Code", related="document_type_id.code", diff --git a/l10n_br_fiscal/models/partner_profile.py b/l10n_br_fiscal/models/partner_profile.py index 957ee25bf78c..0cefa1090166 100644 --- a/l10n_br_fiscal/models/partner_profile.py +++ b/l10n_br_fiscal/models/partner_profile.py @@ -10,6 +10,7 @@ NFE_IND_IE_DEST_DEFAULT, TAX_FRAMEWORK, TAX_FRAMEWORK_NORMAL, + PUBLIC_ENTIRY_TYPE, ) @@ -32,6 +33,11 @@ class PartnerProfile(models.Model): "other government-controlled organizations.", ) + public_entity_type = fields.Selection( + selection=PUBLIC_ENTIRY_TYPE, + string="Tipo de Entidade Governamental", + ) + default = fields.Boolean(string="Default Profile", default=True) ind_ie_dest = fields.Selection( diff --git a/l10n_br_fiscal/models/res_partner.py b/l10n_br_fiscal/models/res_partner.py index c029c1d65f8b..09a8d5a2b1ec 100644 --- a/l10n_br_fiscal/models/res_partner.py +++ b/l10n_br_fiscal/models/res_partner.py @@ -10,6 +10,7 @@ NFE_IND_IE_DEST, NFE_IND_IE_DEST_9, NFE_IND_IE_DEST_DEFAULT, + PUBLIC_ENTIRY_TYPE, TAX_FRAMEWORK, TAX_FRAMEWORK_NORMAL, ) @@ -65,6 +66,11 @@ def _default_fiscal_profile_id(self, is_company=False): "other government-controlled organizations.", ) + public_entity_type = fields.Selection( + selection=PUBLIC_ENTIRY_TYPE, + string="Tipo de Entidade Governamental", + ) + ind_final = fields.Selection( selection=FINAL_CUSTOMER, string="Final Consumption Operation", @@ -112,6 +118,7 @@ def _onchange_fiscal_profile_id(self): p.tax_framework = p.fiscal_profile_id.tax_framework p.ind_ie_dest = p.fiscal_profile_id.ind_ie_dest p.is_public_entity = p.fiscal_profile_id.is_public_entity + p.public_entity_type = p.fiscal_profile_id.public_entity_type @api.onchange("ind_ie_dest") def _onchange_ind_ie_dest(self): diff --git a/l10n_br_fiscal/views/res_partner_view.xml b/l10n_br_fiscal/views/res_partner_view.xml index 00aad1d3cd2a..b48ab6157c7f 100644 --- a/l10n_br_fiscal/views/res_partner_view.xml +++ b/l10n_br_fiscal/views/res_partner_view.xml @@ -29,6 +29,12 @@ force_save="1" attrs="{'readonly': [('fiscal_profile_id', '!=', False)]}" /> + Date: Mon, 5 May 2025 15:56:58 -0300 Subject: [PATCH 3/3] [IMP] l10n_br_nfe: Mapeamento de campos criados na NT 2025.002-RTC --- l10n_br_nfe/models/document.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/l10n_br_nfe/models/document.py b/l10n_br_nfe/models/document.py index 508f6a9103bd..44b54b5347f5 100644 --- a/l10n_br_nfe/models/document.py +++ b/l10n_br_nfe/models/document.py @@ -262,10 +262,16 @@ def _inverse_nfe40_Id(self): nfe40_finNFe = fields.Selection(related="edoc_purpose") + nfe40_tpNFDebito = fields.Selection(related="edoc_refund_debit_type") + + nfe40_tpNFCredito = fields.Selection(related="edoc_refund_credit_type") + nfe40_indFinal = fields.Selection(related="ind_final") nfe40_indPres = fields.Selection(related="ind_pres") + nfe40_tpEnteGov = fields.Selection(related="public_entity_type") + nfe40_procEmi = fields.Selection(default="0") nfe40_verProc = fields.Char(