Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/eldevanjr/nfe
Browse files Browse the repository at this point in the history
  • Loading branch information
ajinfokaw committed Mar 22, 2023
2 parents deff0e5 + 9ba13ad commit 7151bdd
Show file tree
Hide file tree
Showing 13 changed files with 105 additions and 55 deletions.
25 changes: 16 additions & 9 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<groupId>com.github.wmixvideo</groupId>
<artifactId>nfe</artifactId>
<packaging>jar</packaging>
<version>3.1.40-SNAPSHOT</version>
<version>4.0.10-SNAPSHOT</version>
<name>nfe</name>
<description>Biblioteca de comunicacao de nota fiscal eletronica brasileira</description>
<url>https://github.com/wmixvideo/nfe</url>
Expand All @@ -26,9 +26,9 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<java.version>11</java.version>
<axis2.version>1.6.4</axis2.version>
<slf4j.version>2.0.3</slf4j.version>
<slf4j.version>2.0.7</slf4j.version>
<junit.version>4.13.2</junit.version>
<commons-lang3.version>3.12.0</commons-lang3.version>
<simple-xml.version>2.7.1</simple-xml.version>
Expand Down Expand Up @@ -58,6 +58,13 @@
</developers>

<dependencies>
<!-- https://mvnrepository.com/artifact/org.apache.santuario/xmlsec -->
<dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
<version>3.0.1</version>
</dependency>

<!-- Simple Xml Framework -->
<dependency>
<groupId>org.simpleframework</groupId>
Expand Down Expand Up @@ -167,10 +174,10 @@
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<version>3.11.0</version>
<configuration>
<source>8</source>
<target>8</target>
<source>${java.version}</source>
<target>${java.version}</target>
<optimize>true</optimize>
<debug>false</debug>
</configuration>
Expand Down Expand Up @@ -278,7 +285,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.5.3</version>
<version>3.0.0</version>
<configuration>
<scmCommentPrefix>[maven-release-plugin] [skip ci]</scmCommentPrefix>
<allowTimestampedSnapshots>true</allowTimestampedSnapshots>
Expand All @@ -303,7 +310,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.4.1</version>
<version>3.5.0</version>
<configuration>
<failOnError>false</failOnError>
<doclint>none</doclint>
Expand All @@ -320,7 +327,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M7</version>
<version>3.0.0</version>
</plugin>
</plugins>
</build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ public enum DFUnidadeFederativa {
MA("MA", "Maranh\u00E3o", "21", "http://www.hom.nfce.sefaz.ma.gov.br/portal/consultarNFCe.jsp", "http://www.nfce.sefaz.ma.gov.br/portal/consultarNFCe.jsp", "http://www.hom.nfce.sefaz.ma.gov.br/portal/consultarNFCe.jsp", "http://www.sefaz.ma.gov.br/nfce/consulta/"),
MT("MT", "Mato Grosso", "51", "http://homologacao.sefaz.mt.gov.br/nfce/consultanfce", "http://www.sefaz.mt.gov.br/nfce/consultanfce", "http://homologacao.sefaz.mt.gov.br/nfce/consultanfce", "http://www.sefaz.mt.gov.br/nfce/consultanfce"),
MS("MS", "Mato Grosso do Sul", "50", "http://www.dfe.ms.gov.br/nfce/qrcode", "http://www.dfe.ms.gov.br/nfce/qrcode", "http://www.dfe.ms.gov.br/nfce", "http://www.dfe.ms.gov.br/nfce"),
MG("MG", "Minas Gerais", "31", "https://portalsped.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml", "https://portalsped.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml", "http://hnfce.fazenda.mg.gov.br/portalnfce", "http://nfce.fazenda.mg.gov.br/portalnfce"),
MG("MG", "Minas Gerais", "31", "https://portalsped.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml", "https://portalsped.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml", "https://hportalsped.fazenda.mg.gov.br/portalnfce", "https://portalsped.fazenda.mg.gov.br/portalnfce"),
PA("PA", "Par\u00E1", "15", "https://appnfc.sefa.pa.gov.br/portal-homologacao/view/consultas/nfce/nfceForm.seam", "https://appnfc.sefa.pa.gov.br/portal/view/consultas/nfce/nfceForm.seam", "https://appnfc.sefa.pa.gov.br/portal/view/consultas/nfce/consultanfce.seam", "https://appnfc.sefa.pa.gov.br/portal/view/consultas/nfce/consultanfce.seam"),
PB("PB", "Paraiba", "25", "http://www.sefaz.pb.gov.br/nfcehom", "http://www.sefaz.pb.gov.br/nfce", "http://www.sefaz.pb.gov.br/nfcehom", "http://www.sefaz.pb.gov.br/nfce"),
PR("PR", "Paran\u00E1", "41", "http://www.fazenda.pr.gov.br/nfce/qrcode", "http://www.fazenda.pr.gov.br/nfce/qrcode", "http://www.fazenda.pr.gov.br", "http://www.fazenda.pr.gov.br"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public class CTeProtocoloInfo extends DFBase {
@Element(name = "cStat")
private String status;

@Element(name = "xMotivo")
@Element(name = "xMotivo", required = false)
private String motivo;

@Attribute(name = "Id", required = false)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package com.fincatto.documentofiscal.mdfe3.classes.lote.envio;

import com.fincatto.documentofiscal.DFBase;

/**
* Created by Eldevan Nery Junior on 14/11/17.
*
* Retorno do envio de Lote MDF-e.
*
*/
public class MDFEnvioLoteRetornoDados {
public class MDFEnvioLoteRetornoDados extends DFBase {

private final MDFEnvioLoteRetorno retorno;
private final MDFEnvioLote loteAssinado;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,35 @@

public enum NFNotaInfoTipoVeiculo {

AUTOMOVEL("06", "Autom\u00f3vel"),
CAMINHAO("14", "Caminh\u00e3o"),
CAMINHONETA("13", "Caminhoneta"),
CARGA_CAM("24", "Carga"),
CICLOMOTO("02", "Ciclomotor"),
ESP_ONIBUS("22", "Especial \u00d4nibus"),
MICROONIBUS("07", "Micro\u00f4nibus"),
MISTO_CAM("23", "Misto"),
MOTOCICLO("04", "Motociclo"),
MOTONETA("03", "Motoneta"),
ONIBUS("08", "\u00d4nibus"),
CICLOMOTO("2", "Ciclomotor"),
MOTONETA("3", "Motoneta"),
MOTOCICLO("4", "Motociclo"),
TRICICLO("5", "Triciclo"),
AUTOMOVEL("6", "Autom\u00f3vel"),
MICROONIBUS("7", "Micro\u00f4nibus"),
ONIBUS("8", "\u00d4nibus"),
REBOQUE("10", "Reboque"),
SEMIRREBOQUE("11", "Semirreboque"),
TRICICLO("05", "Triciclo"),
CAMINHONETA("13", "Caminhoneta"),
CAMINHAO("14", "Caminh\u00e3o"),
TRATOR("17", "Trator"),
TRATOR_RODAS("18","Trator rodas"),
TRATOR_ESTEIRAS("19","Trator esteiras"),
TRATOR_MISTO("20","Trator misto"),
QUADRICICLO("21","Quadriciclo"),
ESP_ONIBUS("22", "Especial \u00d4nibus"),
CARGA_CAM("24", "Carga"),
MISTO_CAM("23", "Misto"),
UTILITARIO("25","Utilit\u00e1rio"),
MOTOR_CASA("26","Motor Casa");



private final String codigo;
private final String descricao;

NFNotaInfoTipoVeiculo(final String codigo, final String descricao) {
this.codigo = StringUtils.leftPad(codigo,2,"0");
this.codigo = codigo;
this.descricao = descricao;
}

Expand All @@ -41,7 +42,7 @@ public String getCodigo() {

public static NFNotaInfoTipoVeiculo valueOfCodigo(final String codigo) {
for (final NFNotaInfoTipoVeiculo tipoVeiculo : NFNotaInfoTipoVeiculo.values()) {
if (tipoVeiculo.getCodigo().equals(StringUtils.leftPad(codigo,2,"0"))) {
if (tipoVeiculo.getCodigo().equals(codigo)) {
return tipoVeiculo;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -403,6 +403,7 @@ public enum NFRetornoStatus {
CODIGO_697(697, "Rejei\u00e7\u00e3o: Al\u00edquota interestadual do ICMS com origem diferente do previsto"),
CODIGO_698(698, "Rejei\u00e7\u00e3o: Al\u00edquota interestadual do ICMS incompat\u00edvel com as UF"),
CODIGO_699(699, "Rejei\u00e7\u00e3o: Percentual do ICMS Interestadual para a UF de destino difere do previsto para o ano da Data de Emiss\u00e3o"),
CODIGO_700(700, "Rejei\u00E7\u00E3o: Total da quantidade tributada do ICMS monof\u00E1sico pr\u00F3prio difere do somat\u00F3rio dos itens."),
CODIGO_701(701, "Rejei\u00e7\u00e3o: NF-e n\u00e3o pode utilizar ver\u00e3o 3.00"),
CODIGO_702(702, "Rejei\u00e7\u00e3o: NFC-e n\u00e3o \u00e9 aceita pela UF do Emitente"),
CODIGO_703(703, "Rejei\u00e7\u00e3o: Data-hora de emiss\u00e3o posterior ao hor\u00e1rio de recebimento"),
Expand Down Expand Up @@ -446,8 +447,10 @@ public enum NFRetornoStatus {
CODIGO_741(741, "Rejei\u00e7\u00e3o: NFC-e com partilha de CIMS entre UF"),
CODIGO_742(742, "Rejei\u00e7\u00e3o: NFC-e com grupo do IPI"),
CODIGO_743(743, "Rejei\u00e7\u00e3o: NFC-e com grupo do II"),
CODIGO_744(744, "Rejei\u00E7\u00E3o: Total da quantidade tributada do ICMS monof\u00E1sico retido anteriormente difere do somat\u00F3rio dos itens."),
CODIGO_745(745, "Rejei\u00e7\u00e3o: NF-e sem grupo do PIS"),
CODIGO_746(746, "Rejei\u00e7\u00e3o: NFC-e com grupo do PIS-ST"),
CODIGO_747(747, "Rejei\u00E7\u00E3o: N\u00E3o permitido o preenchimento do grupo de UF de origem do combust\u00EDvel [nItem:999]"),
CODIGO_748(748, "Rejei\u00e7\u00e3o: NF-e sem grupo do COFINS"),
CODIGO_749(749, "Rejei\u00e7\u00e3o: NF-e sem grupo do COFINS-ST"),
CODIGO_750(750, "Rejei\u00e7\u00e3o: NFC-e com valor total superior ao permitido para destinat\u00e1rio n\u00e3o identificado (c\u00f3digo)"),
Expand Down Expand Up @@ -498,7 +501,22 @@ public enum NFRetornoStatus {
CODIGO_806(806, "Rejei\u00E7\u00E3o: Opera\u00E7\u00E3o com ICMS-ST sem informa\u00E7\u00E3o do CEST"),
CODIGO_807(807, "Rejei\u00E7\u00E3o: NFC-e com grupo de ICMS para a UF do destinat\u00E1rio"),
CODIGO_817(817, "Rejei\u00e7\u00e3o: Unidade Tribut\u00e1vel incompat\u00edvel com o NCM informado na opera\u00e7\u00e3o com Comercio Exterior"),
CODIGO_821(821, "Rejei\u00E7\u00E3o: Data-Hora de Entrega superior a data de emiss\u00E3o do evento"),
CODIGO_822(822, "Rejei\u00E7\u00E3o: Data-Hora do Hash do Comprovante de Entrega superior a data de emiss\u00E3o do evento"),
CODIGO_823(823, "Rejei\u00E7\u00E3o: Data-Hora de Entrega inferior a data de emiss\u00E3o da NF-e"),
CODIGO_824(824, "Rejei\u00E7\u00E3o: Data-Hora do Hash do Comprovante de Entrega inferior a data de emiss\u00E3o da NF-e"),
CODIGO_825(825, "Rejei\u00E7\u00E3o: N\u00E3o permitido mais de um Evento deste tipo para a NF-e"),
CODIGO_826(826, "Rejei\u00E7\u00E3o: Pedido de Cancelamento para NF-e com evento de registro de Entrega"),
CODIGO_840(840, "Rejei\u00E7\u00E3o: NCM de medicamento e n\u00E3o informado o grupo de medicamento (med) [nItem:nnn]"),
CODIGO_841(841, "Rejei\u00E7\u00E3o: C\u00F3digo do Tipo de Ve\u00EDculo Inexistente [nItem:nnn]"),
CODIGO_842(842, "Rejei\u00E7\u00E3o: C\u00F3digo da esp\u00E9cie de Ve\u00EDculo Inexistente[nItem:nnn]"),
CODIGO_843(843, "Rejei\u00E7\u00E3o: C\u00F3digo da esp\u00E9cie de Ve\u00EDculo incompat\u00EDvel com o tipo do Ve\u00EDculo. [nItem:nnn]"),
CODIGO_844(844, "Rejei\u00E7\u00E3o: C\u00F3digo de Item da Lista de Servi\u00E7os inexistente. [nItem:nnn]"),
CODIGO_845(845, "Rejei\u00E7\u00E3o: O Grupo Transportador nao pode ser preenchido para Modalidade do frete informada"),
CODIGO_846(846, "Rejei\u00E7\u00E3o: Transporte pr\u00F3prio por conta do Remetente e CNPJ Base ou CPF do Transportador difere do CNPJ Base ou CPF do Remetente"),
CODIGO_847(847, "Rejei\u00E7\u00E3o: Transporte n\u00E3o \u00E9 pr\u00F3prio por conta do Remetente e CNPJ Base ou CPF do Transportador igual ao CNPJ Base ou CPF do Remetente"),
CODIGO_848(848, "Rejei\u00E7\u00E3o: Transporte pr\u00F3prio por conta do Destinat\u00E1rio e CNPJ Base ou CPF do Transportador difere do CNPJ Base ou CPF do Destinat\u00E1rio"),
CODIGO_849(849, "Rejei\u00E7\u00E3o: Transporte n\u00E3o \u00E9 pr\u00F3prio por conta do Destinat\u00E1rio e CNPJ Base ou CPF do Transportador igual ao CNPJ Base ou CPF do Destinat\u00E1rio"),
CODIGO_850(850, "Rejei\u00E7\u00E3o: Data de vencimento da parcela n\u00E3o informada ou menor que a Data de vencimento da parcela anterior [nOcor:999]"),
CODIGO_851(851, "Rejei\u00E7\u00E3o: Soma do valor das parcelas difere do Valor L\u00EDquido da Fatura"),
CODIGO_852(852, "Rejei\u00E7\u00E3o: N\u00FAmero da parcela inv\u00E1lido ou n\u00E3o informado [nOcor:999]"),
Expand Down Expand Up @@ -560,6 +578,27 @@ public enum NFRetornoStatus {
CODIGO_935(935, "Rejei\u00E7\u00E3o: Valor total da Base de C\u00E1lculo superior ao valor limite estabelecido [Valor Limite: R$ XXX.XXX,XX] (valor definido pela UF)"),
CODIGO_936(936, "Rejei\u00E7\u00E3o: Raz\u00E3o Social do emitente diverge do informado no cadastro da SEFAZ"),
CODIGO_938(938, "Rejei\u00E7\u00E3o: N\u00E3o informada vBCSTRet, pST, vICMSSubstituto e vICMSSTRet [nItem:999]"),
CODIGO_941(941, "Rejei\u00E7\u00E3o: N\u00FAmero do Regime especial inv\u00E1lido."),
CODIGO_942(942, "Rejei\u00E7\u00E3o: IE do local de retirada n\u00E3o cadastrada"),
CODIGO_943(943, "Rejei\u00E7\u00E3o: IE do local de retirada n\u00E3o vinculada ao CNPJ"),
CODIGO_944(944, "Rejei\u00E7\u00E3o: IE do local de retirada n\u00E3o vinculada ao CPF"),
CODIGO_945(945, "Rejei\u00E7\u00E3o: IE do local de entrega n\u00E3o cadastrada"),
CODIGO_947(947, "Rejei\u00E7\u00E3o: IE do local de entrega n\u00E3o vinculada ao CNPJ"),
CODIGO_948(948, "Rejei\u00E7\u00E3o: IE do local de entrega n\u00E3o vinculada ao CPF"),
CODIGO_949(949, "Rejei\u00E7\u00E3o: NFC-e sem preenchimento das Informa\u00E7\u00F5es Adicionais de Interesse do Fisco"),
CODIGO_950(950, "Rejei\u00E7\u00E3o: Informa\u00E7\u00F5es Adicionais de Interesse do Fisco abaixo do tamanho m\u00EDnimo exigido pela UF."),
CODIGO_958(958, "Rejei\u00E7\u00E3o: Somat\u00F3rio dos percentuais origin\u00E1rios para a UF do combust\u00EDvel diverge de 100."),
CODIGO_959(959, "Rejei\u00E7\u00E3o: NF-e n\u00E3o pode ter preenchimento de Grupo de Tributa\u00E7\u00E3o do ICMS monof\u00E1sica sobre combust\u00EDveis. [nItem:999]"),
CODIGO_960(960, "Rejei\u00E7\u00E3o: Obrigat\u00F3rio o preenchimento de Grupo de Tributa\u00E7\u00E3o do ICMS monof\u00E1sica sobre combust\u00EDveis. [nItem:999]"),
CODIGO_961(961, "Rejei\u00E7\u00E3o: Al\u00EDquota adrem do imposto difere do definido na legisla\u00E7\u00E3o para o produto. [nItem:999]"),
CODIGO_962(962, "Rejei\u00E7\u00E3o: Valor do ICMS pr\u00F3prio difere do calculado. [nItem:999]"),
CODIGO_963(963, "Rejei\u00E7\u00E3o: Al\u00EDquota adrem do imposto com reten\u00E7\u00E3o difere do definido na legisla\u00E7\u00E3o para o produto. [nItem:999]"),
CODIGO_964(964, "Rejei\u00E7\u00E3o: Valor do ICMS com reten\u00E7\u00E3o difere do calculado. [nItem:999]"),
CODIGO_965(965, "Rejei\u00E7\u00E3o: Al\u00EDquota adrem do imposto retido anteriormente difere do definido na legisla\u00E7\u00E3o para o produto. [nItem:999]"),
CODIGO_966(966, "Rejei\u00E7\u00E3o: Valor do ICMS retido anteriormente difere do calculado. [nItem:999]"),
CODIGO_967(967, "Rejei\u00E7\u00E3o: Total do ICMS monof\u00E1sico pr\u00F3prio difere do somat\u00F3rio dos itens."),
CODIGO_968(968, "Rejei\u00E7\u00E3o: Total do ICMS monof\u00E1sico sujeito a reten\u00E7\u00E3o difere do somat\u00F3rio dos itens."),
CODIGO_969(969, "Rejei\u00E7\u00E3o: Total do ICMS monof\u00E1sico retido anteriormente difere do somat\u00F3rio dos itens."),
CODIGO_970(970, "Rejei\u00E7\u00E3o: C\u00F3digo de Pa\u00EDs inexistente [local de retirada/entrega]"),
CODIGO_971(971, "Rejei\u00E7\u00E3o: IE inv\u00E1lida [local de retirada/entrega]"),
CODIGO_972(972, "Rejei\u00E7\u00E3o: Obrigat\u00F3ria as informa\u00E7\u00F5es do respons\u00E1vel t\u00E9cnico"),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ public class NFNotaInfoVeiculo extends DFBase {
@Element(name = "placa")
private String placaVeiculo;

@Element(name = "UF")
@Element(name = "UF", required = false)
private String uf;

@Element(name = "RNTC", required = false)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.fincatto.documentofiscal.DFConfig;
import com.fincatto.documentofiscal.DFLog;
import org.apache.commons.lang3.StringUtils;
import org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
Expand Down Expand Up @@ -49,15 +50,18 @@ public static boolean isValida(final InputStream xmlStream) throws Exception {
throw new IllegalStateException("Nao foi encontrada a assinatura do XML.");
}

final String providerName = System.getProperty("jsr105Provider", "org.jcp.xml.dsig.internal.dom.XMLDSigRI");
final XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance("DOM", (Provider) Class.forName(providerName).getDeclaredConstructor().newInstance());
final DOMValidateContext validateContext = new DOMValidateContext(new DFKeySelector(), nodeList.item(0));
for (final String tag : DFAssinaturaDigital.ELEMENTOS_ASSINAVEIS) {
final NodeList elements = document.getElementsByTagName(tag);
if (elements.getLength() > 0) {
validateContext.setIdAttributeNS((Element) elements.item(0), null, "Id");
}
}

// final String providerName = System.getProperty("jsr105Provider", "org.jcp.xml.dsig.internal.dom.XMLDSigRI");
// final XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance("DOM", (Provider) Class.forName(providerName).getDeclaredConstructor().newInstance());

final XMLSignatureFactory signatureFactory = XMLSignatureFactory.getInstance("DOM", new XMLDSigRI());
return signatureFactory.unmarshalXMLSignature(validateContext).validate(validateContext);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,8 @@ public void deveRepresentarOCodigoCorretamente() {

Assert.assertEquals("MG", DFUnidadeFederativa.MG.getCodigo());
Assert.assertEquals("31", DFUnidadeFederativa.MG.getCodigoIbge());
Assert.assertEquals("http://hnfce.fazenda.mg.gov.br/portalnfce", DFUnidadeFederativa.MG.getConsultaChaveAcessoHomologacao());
Assert.assertEquals("http://nfce.fazenda.mg.gov.br/portalnfce", DFUnidadeFederativa.MG.getConsultaChaveAcessoProducao());
Assert.assertEquals("https://hportalsped.fazenda.mg.gov.br/portalnfce", DFUnidadeFederativa.MG.getConsultaChaveAcessoHomologacao());
Assert.assertEquals("https://portalsped.fazenda.mg.gov.br/portalnfce", DFUnidadeFederativa.MG.getConsultaChaveAcessoProducao());
Assert.assertEquals("https://portalsped.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml", DFUnidadeFederativa.MG.getQrCodeHomologacao());
Assert.assertEquals("https://portalsped.fazenda.mg.gov.br/portalnfce/sistema/qrcode.xhtml", DFUnidadeFederativa.MG.getQrCodeProducao());

Expand Down
Loading

0 comments on commit 7151bdd

Please sign in to comment.