From 1d454280abc78ae8e1f16d4f2e9562bc3a64296c Mon Sep 17 00:00:00 2001 From: tecnosofti Date: Wed, 22 Oct 2025 14:41:55 -0300 Subject: [PATCH 1/2] Ajustes NT_2025.002_v1.30_RTC_NF-e_IBS_CBS_IS e tratamento caracteres utf-8 --- .../nfe400/classes/NFCredito.java | 6 ++- .../nfe400/classes/NFDebito.java | 11 +++-- .../nfe400/classes/NFFinalidade.java | 8 ++-- .../NFNotaInfoImpostoTipoAliquotaIBSCBS.java | 6 +-- .../nfe400/classes/NFCreditoTest.java | 37 +++++++++++++++ .../nfe400/classes/NFDebitoTest.java | 46 +++++++++++++++++++ .../nfe400/classes/NFFinalidadeTest.java | 18 +++++++- ...NotaInfoImpostoTipoAliquotaIBSCBSTest.java | 20 ++++++++ 8 files changed, 136 insertions(+), 16 deletions(-) create mode 100644 src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFCreditoTest.java create mode 100644 src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFDebitoTest.java create mode 100644 src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFNotaInfoImpostoTipoAliquotaIBSCBSTest.java diff --git a/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFCredito.java b/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFCredito.java index e2e825dbf..acddeac3a 100755 --- a/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFCredito.java +++ b/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFCredito.java @@ -3,8 +3,10 @@ public enum NFCredito { MULTA_JUROS("01", "Multa e juros"), - APROPRIACAO_CREDITO_PRESUMIDO_IBS_SALDO_DEVEDOR_ZFM("02", "Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25)"), - RETORNO("03", "Retorno"); + APROPRIACAO_CREDITO_PRESUMIDO_IBS_SALDO_DEVEDOR_ZFM("02", "Apropria\u00e7\u00e3o de cr\u00e9dito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25)"), + RETORNO("03", "Retorno por recusa na entrega ou por n\u00e3o localiza\u00e7\u00e3o do destinat\u00e1rio na tentativa de entrega"), + REDUCAO_VALORES("04", "Redu\u00e7\u00e3o de valores"), + TRANSFERENCIA_CREDITO_SUCESSAO("05", "Transfer\u00eancia de cr\u00e9dito na sucess\u00e3o"); private final String codigo; private final String descricao; diff --git a/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFDebito.java b/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFDebito.java index d081a2e72..00f9c35a1 100755 --- a/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFDebito.java +++ b/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFDebito.java @@ -2,13 +2,14 @@ public enum NFDebito { - TRANSFERENCIA_CREDITO_COOPERATIVA("01", "Transferência de créditos para Cooperativas"), - ANULACAO_CREDITO_SAIDA_IMUNE_ISENTA("02", "Anulação de Crédito por Saídas Imunes/Isentas"), - DEBITO_NOTAS_NAO_PROCESSADAS_APURACAO("03", "Débitos de notas fiscais não processadas na apuração"), + TRANSFERENCIA_CREDITO_COOPERATIVA("01", "Transfer\u00eancia de cr\u00e9ditos para Cooperativas"), + ANULACAO_CREDITO_SAIDA_IMUNE_ISENTA("02", "Anula\u00e7\u00e3o de Cr\u00e9dito por Sa\u00eddas Imunes/Isentas"), + DEBITO_NOTAS_NAO_PROCESSADAS_APURACAO("03", "D\u00e9bitos de notas fiscais n\u00e3o processadas na apura\u00e7\u00e3o"), MULTA_JUROS("04", "Multa e juros"), - TRANSFERENCIA_CREDITO_SUCESSAO("05", "Transferência de crédito de sucessão"), + TRANSFERENCIA_CREDITO_SUCESSAO("05", "Transfer\u00eancia de cr\u00e9dito na sucess\u00e3o"), PAGAMENTO_ANTECIPADO("06", "Pagamento antecipado"), - PERDA_ESTOQUE("07", "Perda em estoque"); + PERDA_ESTOQUE("07", "Perda em estoque"), + DESENQUADRAMENTO_SN("08", "Desenquadramento do SN"); private final String codigo; private final String descricao; diff --git a/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFFinalidade.java b/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFFinalidade.java index 6ff9a6049..10e7c6bc9 100755 --- a/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFFinalidade.java +++ b/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFFinalidade.java @@ -2,10 +2,10 @@ public enum NFFinalidade { - NORMAL("1", "Normal"), - COMPLEMENTAR("2", "Complementar"), - AJUSTE("3", "Ajuste"), - DEVOLUCAO_OU_RETORNO("4", "Devolu\u00e7\u00e3o ou retorno"), + NORMAL("1", "NF-e normal"), + COMPLEMENTAR("2", "NF-e complementar"), + AJUSTE("3", "NF-e de ajuste"), + DEVOLUCAO_MERCADORIA("4", "Devolu\u00e7\u00e3o de mercadoria"), NOTA_CREDITO("5", "Nota de cr\u00e9dito"), NOTA_DEBITO("6", "Nota de d\u00e9bito"); diff --git a/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFNotaInfoImpostoTipoAliquotaIBSCBS.java b/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFNotaInfoImpostoTipoAliquotaIBSCBS.java index 339ca4533..4e7d01542 100644 --- a/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFNotaInfoImpostoTipoAliquotaIBSCBS.java +++ b/src/main/java/com/fincatto/documentofiscal/nfe400/classes/NFNotaInfoImpostoTipoAliquotaIBSCBS.java @@ -7,11 +7,11 @@ */ public enum NFNotaInfoImpostoTipoAliquotaIBSCBS { - PADRAO("Padrão"), + PADRAO("Padr\u00e3o"), FIXA("Fixa"), UNIFORME_SETORIAL("Uniforme setorial"), - UNIFORME_NACIONAL("Uniforme nacional (referência)"), - SEM_ALIQUOTA("Sem alíquota"); + UNIFORME_NACIONAL("Uniforme nacional (refer\u00eancia)"), + SEM_ALIQUOTA("Sem al\u00edquota"); private final String tipoAliquota; diff --git a/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFCreditoTest.java b/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFCreditoTest.java new file mode 100644 index 000000000..4a6890e16 --- /dev/null +++ b/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFCreditoTest.java @@ -0,0 +1,37 @@ +package com.fincatto.documentofiscal.nfe400.classes; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author Marcos Lombardi de Andrade + */ +public class NFCreditoTest { + + @Test + public void deveRepresentarOCodigoCorretamente() { + Assert.assertEquals("01", NFCredito.MULTA_JUROS.getCodigo()); + Assert.assertEquals("02", NFCredito.APROPRIACAO_CREDITO_PRESUMIDO_IBS_SALDO_DEVEDOR_ZFM.getCodigo()); + Assert.assertEquals("03", NFCredito.RETORNO.getCodigo()); + Assert.assertEquals("04", NFCredito.REDUCAO_VALORES.getCodigo()); + Assert.assertEquals("05", NFCredito.TRANSFERENCIA_CREDITO_SUCESSAO.getCodigo()); + } + + @Test + public void deveObterTipoApartirDoSeuCodigo() { + Assert.assertEquals(NFCredito.MULTA_JUROS, NFCredito.valueOfCodigo("01")); + Assert.assertEquals(NFCredito.APROPRIACAO_CREDITO_PRESUMIDO_IBS_SALDO_DEVEDOR_ZFM, NFCredito.valueOfCodigo("02")); + Assert.assertEquals(NFCredito.RETORNO, NFCredito.valueOfCodigo("03")); + Assert.assertEquals(NFCredito.REDUCAO_VALORES, NFCredito.valueOfCodigo("04")); + Assert.assertEquals(NFCredito.TRANSFERENCIA_CREDITO_SUCESSAO, NFCredito.valueOfCodigo("05")); + } + + @Test + public void deveRepresentarADescricaoCorretamente() { + Assert.assertEquals("Multa e juros", NFCredito.MULTA_JUROS.getDescricao()); + Assert.assertEquals("Apropriação de crédito presumido de IBS sobre o saldo devedor na ZFM (art. 450, § 1º, LC 214/25)", NFCredito.APROPRIACAO_CREDITO_PRESUMIDO_IBS_SALDO_DEVEDOR_ZFM.getDescricao()); + Assert.assertEquals("Retorno por recusa na entrega ou por não localização do destinatário na tentativa de entrega", NFCredito.RETORNO.getDescricao()); + Assert.assertEquals("Redução de valores", NFCredito.REDUCAO_VALORES.getDescricao()); + Assert.assertEquals("Transferência de crédito na sucessão", NFCredito.TRANSFERENCIA_CREDITO_SUCESSAO.getDescricao()); + } +} diff --git a/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFDebitoTest.java b/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFDebitoTest.java new file mode 100644 index 000000000..a816f2c6c --- /dev/null +++ b/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFDebitoTest.java @@ -0,0 +1,46 @@ +package com.fincatto.documentofiscal.nfe400.classes; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author Marcos Lombardi de Andrade + */ +public class NFDebitoTest { + + @Test + public void deveRepresentarOCodigoCorretamente() { + Assert.assertEquals("01", NFDebito.TRANSFERENCIA_CREDITO_COOPERATIVA.getCodigo()); + Assert.assertEquals("02", NFDebito.ANULACAO_CREDITO_SAIDA_IMUNE_ISENTA.getCodigo()); + Assert.assertEquals("03", NFDebito.DEBITO_NOTAS_NAO_PROCESSADAS_APURACAO.getCodigo()); + Assert.assertEquals("04", NFDebito.MULTA_JUROS.getCodigo()); + Assert.assertEquals("05", NFDebito.TRANSFERENCIA_CREDITO_SUCESSAO.getCodigo()); + Assert.assertEquals("06", NFDebito.PAGAMENTO_ANTECIPADO.getCodigo()); + Assert.assertEquals("07", NFDebito.PERDA_ESTOQUE.getCodigo()); + Assert.assertEquals("08", NFDebito.DESENQUADRAMENTO_SN.getCodigo()); + } + + @Test + public void deveObterTipoApartirDoSeuCodigo() { + Assert.assertEquals(NFDebito.TRANSFERENCIA_CREDITO_COOPERATIVA, NFDebito.valueOfCodigo("01")); + Assert.assertEquals(NFDebito.ANULACAO_CREDITO_SAIDA_IMUNE_ISENTA, NFDebito.valueOfCodigo("02")); + Assert.assertEquals(NFDebito.DEBITO_NOTAS_NAO_PROCESSADAS_APURACAO, NFDebito.valueOfCodigo("03")); + Assert.assertEquals(NFDebito.MULTA_JUROS, NFDebito.valueOfCodigo("04")); + Assert.assertEquals(NFDebito.TRANSFERENCIA_CREDITO_SUCESSAO, NFDebito.valueOfCodigo("05")); + Assert.assertEquals(NFDebito.PAGAMENTO_ANTECIPADO, NFDebito.valueOfCodigo("06")); + Assert.assertEquals(NFDebito.PERDA_ESTOQUE, NFDebito.valueOfCodigo("07")); + Assert.assertEquals(NFDebito.DESENQUADRAMENTO_SN, NFDebito.valueOfCodigo("08")); + } + + @Test + public void deveRepresentarADescricaoCorretamente() { + Assert.assertEquals("Transferência de créditos para Cooperativas", NFDebito.TRANSFERENCIA_CREDITO_COOPERATIVA.getDescricao()); + Assert.assertEquals("Anulação de Crédito por Saídas Imunes/Isentas", NFDebito.ANULACAO_CREDITO_SAIDA_IMUNE_ISENTA.getDescricao()); + Assert.assertEquals("Débitos de notas fiscais não processadas na apuração", NFDebito.DEBITO_NOTAS_NAO_PROCESSADAS_APURACAO.getDescricao()); + Assert.assertEquals("Multa e juros", NFDebito.MULTA_JUROS.getDescricao()); + Assert.assertEquals("Transferência de crédito na sucessão", NFDebito.TRANSFERENCIA_CREDITO_SUCESSAO.getDescricao()); + Assert.assertEquals("Pagamento antecipado", NFDebito.PAGAMENTO_ANTECIPADO.getDescricao()); + Assert.assertEquals("Perda em estoque", NFDebito.PERDA_ESTOQUE.getDescricao()); + Assert.assertEquals("Desenquadramento do SN", NFDebito.DESENQUADRAMENTO_SN.getDescricao()); + } +} diff --git a/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFFinalidadeTest.java b/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFFinalidadeTest.java index 85adf272f..39fba768a 100755 --- a/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFFinalidadeTest.java +++ b/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFFinalidadeTest.java @@ -10,7 +10,9 @@ public void deveRepresentarOCodigoCorretamente() { Assert.assertEquals("1", NFFinalidade.NORMAL.getCodigo()); Assert.assertEquals("2", NFFinalidade.COMPLEMENTAR.getCodigo()); Assert.assertEquals("3", NFFinalidade.AJUSTE.getCodigo()); - Assert.assertEquals("4", NFFinalidade.DEVOLUCAO_OU_RETORNO.getCodigo()); + Assert.assertEquals("4", NFFinalidade.DEVOLUCAO_MERCADORIA.getCodigo()); + Assert.assertEquals("5", NFFinalidade.NOTA_CREDITO.getCodigo()); + Assert.assertEquals("6", NFFinalidade.NOTA_DEBITO.getCodigo()); } @Test @@ -18,6 +20,18 @@ public void deveObterTipoApartirDoSeuCodigo() { Assert.assertEquals(NFFinalidade.NORMAL, NFFinalidade.valueOfCodigo("1")); Assert.assertEquals(NFFinalidade.COMPLEMENTAR, NFFinalidade.valueOfCodigo("2")); Assert.assertEquals(NFFinalidade.AJUSTE, NFFinalidade.valueOfCodigo("3")); - Assert.assertEquals(NFFinalidade.DEVOLUCAO_OU_RETORNO, NFFinalidade.valueOfCodigo("4")); + Assert.assertEquals(NFFinalidade.DEVOLUCAO_MERCADORIA, NFFinalidade.valueOfCodigo("4")); + Assert.assertEquals(NFFinalidade.NOTA_CREDITO, NFFinalidade.valueOfCodigo("5")); + Assert.assertEquals(NFFinalidade.NOTA_DEBITO, NFFinalidade.valueOfCodigo("6")); + } + + @Test + public void deveRepresentarADescricaoCorretamente() { + Assert.assertEquals("NF-e normal", NFFinalidade.NORMAL.getDescricao()); + Assert.assertEquals("NF-e complementar", NFFinalidade.COMPLEMENTAR.getDescricao()); + Assert.assertEquals("NF-e de ajuste", NFFinalidade.AJUSTE.getDescricao()); + Assert.assertEquals("Devolução de mercadoria", NFFinalidade.DEVOLUCAO_MERCADORIA.getDescricao()); + Assert.assertEquals("Nota de crédito", NFFinalidade.NOTA_CREDITO.getDescricao()); + Assert.assertEquals("Nota de débito", NFFinalidade.NOTA_DEBITO.getDescricao()); } } \ No newline at end of file diff --git a/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFNotaInfoImpostoTipoAliquotaIBSCBSTest.java b/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFNotaInfoImpostoTipoAliquotaIBSCBSTest.java new file mode 100644 index 000000000..dadce87ba --- /dev/null +++ b/src/test/java/com/fincatto/documentofiscal/nfe400/classes/NFNotaInfoImpostoTipoAliquotaIBSCBSTest.java @@ -0,0 +1,20 @@ +package com.fincatto.documentofiscal.nfe400.classes; + +import org.junit.Assert; +import org.junit.Test; + +/** + * @author Marcos Lombardi de Andrade + */ +public class NFNotaInfoImpostoTipoAliquotaIBSCBSTest { + + @Test + public void deveRepresentarADescricaoCorretamente() { + Assert.assertEquals("Padrão", NFNotaInfoImpostoTipoAliquotaIBSCBS.PADRAO.getTipoAliquota()); + Assert.assertEquals("Fixa", NFNotaInfoImpostoTipoAliquotaIBSCBS.FIXA.getTipoAliquota()); + Assert.assertEquals("Uniforme setorial", NFNotaInfoImpostoTipoAliquotaIBSCBS.UNIFORME_SETORIAL.getTipoAliquota()); + Assert.assertEquals("Uniforme nacional (referência)", NFNotaInfoImpostoTipoAliquotaIBSCBS.UNIFORME_NACIONAL.getTipoAliquota()); + Assert.assertEquals("Sem alíquota", NFNotaInfoImpostoTipoAliquotaIBSCBS.SEM_ALIQUOTA.getTipoAliquota()); + } + +} From 4619c2e36fed18dec56d66d5e8347117f3e8358e Mon Sep 17 00:00:00 2001 From: tecnosofti Date: Wed, 22 Oct 2025 14:43:27 -0300 Subject: [PATCH 2/2] Mantendo compatibilidade java 1.8 --- .../classes/nota/MDFInfoModalRodoviarioInfPagBancoTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/com/fincatto/documentofiscal/mdfe3/classes/nota/MDFInfoModalRodoviarioInfPagBancoTest.java b/src/test/java/com/fincatto/documentofiscal/mdfe3/classes/nota/MDFInfoModalRodoviarioInfPagBancoTest.java index 9ab358323..3c45c4d37 100644 --- a/src/test/java/com/fincatto/documentofiscal/mdfe3/classes/nota/MDFInfoModalRodoviarioInfPagBancoTest.java +++ b/src/test/java/com/fincatto/documentofiscal/mdfe3/classes/nota/MDFInfoModalRodoviarioInfPagBancoTest.java @@ -87,7 +87,7 @@ public void deveRejeitarPixComTamanho1() { public void deveRejeitarPixComTamanhoMaiorQue60() { StringBuilder sb = new StringBuilder(); - sb.append("x".repeat(61)); + sb.append(new String(new char[61]).replace("\0", "x")); String pix61 = sb.toString(); banco.setPIX(pix61);