com.fincatto.documentofiscal.mdfe3.classes.nota.MDFInfoIdentificacao Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of nfe Show documentation
Show all versions of nfe Show documentation
Biblioteca de comunicacao de nota fiscal eletronica brasileira
package com.fincatto.documentofiscal.mdfe3.classes.nota;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import org.simpleframework.xml.Element;
import org.simpleframework.xml.ElementList;
import org.simpleframework.xml.Namespace;
import org.simpleframework.xml.Root;
import com.fincatto.documentofiscal.DFAmbiente;
import com.fincatto.documentofiscal.DFBase;
import com.fincatto.documentofiscal.DFModelo;
import com.fincatto.documentofiscal.DFUnidadeFederativa;
import com.fincatto.documentofiscal.mdfe3.classes.def.*;
import com.fincatto.documentofiscal.validadores.DFIntegerValidador;
import com.fincatto.documentofiscal.validadores.DFListValidador;
import com.fincatto.documentofiscal.validadores.DFStringValidador;
import java.time.ZonedDateTime;
/**
* Created by Eldevan Nery Junior on 03/11/17.
* Identificação do MDF-e
*/
@Root(name = "ide")
@Namespace(reference = "http://www.portalfiscal.inf.br/mdfe")
public class MDFInfoIdentificacao extends DFBase {
private static final long serialVersionUID = -106178398166932545L;
@Element(name = "cUF")
private DFUnidadeFederativa codigoUF;
@Element(name = "tpAmb")
private DFAmbiente ambiente;
@Element(name = "tpEmit")
private MDFTipoEmitente tipoEmitente;
@Element(name = "tpTransp", required = false)
private MDFTipoTranportador tipoTranportador;
/**
* Modelo do Manifesto Eletrônico: 58
*/
@Element(name = "mod")
public static final DFModelo MOD = DFModelo.MDFE;
@Element(name = "serie")
private Integer serie;
@Element(name = "nMDF")
private Integer numero;
@Element(name = "cMDF")
private String codigoNumerico;
@Element(name = "cDV")
private Integer digitoVerificador;
@Element(name = "modal")
private MDFModalidadeTransporte modalidadeFrete;
@Element(name = "dhEmi")
private ZonedDateTime dataEmissao;
@Element(name = "tpEmis")
private MDFTipoEmissao tipoEmissao;
@Element(name = "procEmi")
private MDFProcessoEmissao processoEmissao;
@Element(name = "verProc")
private String versaoProcessoEmissao;
/**
* Sigla da UF do Carregamento.
*/
@Element(name = "UFIni")
private String unidadeFederativaInicio;
/**
* Sigla da UF do Descarregamento.
*/
@Element(name = "UFFim")
private String unidadeFederativaFim;
/**
* Municípios onde ocorreram os carregamentos
*/
@ElementList(entry = "infMunCarrega", inline = true)
private List municipioCarregamentos;
/**
* Sigla das Unidades da Federação do percurso do veículo. Não é necessário
* repetir as UF de Início e Fim
*/
@ElementList(entry = "infPercurso", inline = true, required = false)
private List identificacaoUfPercursos;
/**
* Data e hora previstos de inicio da viagem.
*/
@Element(name = "dhIniViagem", required = false)
private ZonedDateTime dataHoraDoInicioViagem;
/**
* Indicador de participação do Canal Verde.
*/
@Element(name = "indCanalVerde", required = false)
private String indicadorCanalVerde;
/**
* Indicador de MDF-e com inclusão da Carga posterior a emissão por evento
* de inclusão de DF-e
*/
@Element(name = "indCarregaPosterior", required = false)
private String indicadorCarregaPosterior;
public DFUnidadeFederativa getCodigoUF() {
return this.codigoUF;
}
/**
* Código da UF do emitente do MDF-e.
*/
public void setCodigoUF(final DFUnidadeFederativa codigoUF) {
this.codigoUF = codigoUF;
}
public String getCodigoNumerico() {
return this.codigoNumerico;
}
/**
* Código numérico que compõe a Chave de Acesso.
* Número aleatório gerado pelo emitente para cada MDF-e, com o objetivo de
* evitar acessos indevidos ao documento.
*/
public void setCodigoNumerico(final String codigoNumerico) {
DFStringValidador.exatamente8N(codigoNumerico, "Código Numérico");
this.codigoNumerico = codigoNumerico;
}
public Integer getSerie() {
return this.serie;
}
/**
* Série do Manifesto. Informar a série do documento fiscal (informar zero
* se inexistente).
*/
public void setSerie(final Integer serie) {
DFIntegerValidador.tamanho3(serie, "Série");
this.serie = serie;
}
public Integer getNumero() {
return this.numero;
}
/**
* Número do MDF-e
*/
public void setNumero(final Integer numero) {
DFIntegerValidador.tamanho9(numero, "Número");
this.numero = numero;
}
public ZonedDateTime getDataEmissao() {
return this.dataEmissao;
}
/**
* Data e hora de emissão do MDF-e
* Formato AAAA-MM-DDTHH:MM:DD TZD
*/
public void setDataEmissao(final ZonedDateTime dataEmissao) {
this.dataEmissao = dataEmissao;
}
public MDFTipoEmissao getTipoEmissao() {
return this.tipoEmissao;
}
/**
* Forma de emissão do MDF-e.
*/
public void setTipoEmissao(final MDFTipoEmissao tipoEmissao) {
this.tipoEmissao = tipoEmissao;
}
public Integer getDigitoVerificador() {
return this.digitoVerificador;
}
/**
* Digito Verificador da chave de acesso do MDF-e
* Informar o dígito de controle da chave de acesso do MDF-e, que deve ser
* calculado com a aplicação do algoritmo módulo 11 (base 2,9) da chave de
* acesso.
*/
public void setDigitoVerificador(final Integer digitoVerificador) {
DFIntegerValidador.exatamente1(digitoVerificador, "Digito verificador MDF-e");
this.digitoVerificador = digitoVerificador;
}
public DFAmbiente getAmbiente() {
return this.ambiente;
}
/**
* Tipo do Ambiente
* Preencher com:
* 1 - Produção;
* 2 - Homologação
*/
public void setAmbiente(final DFAmbiente ambiente) {
this.ambiente = ambiente;
}
public MDFProcessoEmissao getProcessoEmissao() {
return this.processoEmissao;
}
/**
* Identificador do processo de emissão do MDF-e.
*/
public void setProcessoEmissao(final MDFProcessoEmissao processoEmissao) {
this.processoEmissao = processoEmissao;
}
public String getVersaoProcessoEmissao() {
return this.versaoProcessoEmissao;
}
/**
* Versão do processo de emissão
* Iinformar a versão do aplicativo emissor de MDF-e.
*/
public void setVersaoProcessoEmissao(final String versaoProcessoEmissao) {
DFStringValidador.tamanho20(versaoProcessoEmissao, "Versão Aplicativo Emissor");
this.versaoProcessoEmissao = versaoProcessoEmissao;
}
public MDFModalidadeTransporte getModalidadeFrete() {
return this.modalidadeFrete;
}
public void setModalidadeFrete(final MDFModalidadeTransporte modalidadeFrete) {
this.modalidadeFrete = modalidadeFrete;
}
public MDFTipoEmitente getTipoEmitente() {
return this.tipoEmitente;
}
public void setTipoEmitente(final MDFTipoEmitente tipoEmitente) {
this.tipoEmitente = tipoEmitente;
}
public MDFTipoTranportador getTipoTranportador() {
return this.tipoTranportador;
}
public void setTipoTranportador(final MDFTipoTranportador tipoTranportador) {
this.tipoTranportador = tipoTranportador;
}
public String getUnidadeFederativaInicio() {
return this.unidadeFederativaInicio;
}
public void setUnidadeFederativaInicio(final DFUnidadeFederativa unidadeFederativaInicio) {
this.unidadeFederativaInicio = unidadeFederativaInicio.getCodigo();
}
public String getUnidadeFederativaFim() {
return this.unidadeFederativaFim;
}
public void setUnidadeFederativaFim(final DFUnidadeFederativa unidadeFederativaFim) {
this.unidadeFederativaFim = unidadeFederativaFim.getCodigo();
}
public List getMunicipioCarregamentos() {
return this.municipioCarregamentos;
}
public void setMunicipioCarregamentos(final List municipioCarregamentos) {
this.municipioCarregamentos = DFListValidador.validaListaObrigatoria(municipioCarregamentos, 50, "Municípios carregamento MDF-e");
}
public List getIdentificacaoUfPercursos() {
return this.identificacaoUfPercursos;
}
public void setIdentificacaoUfPercursos(final List identificacaoUfPercursos) {
this.identificacaoUfPercursos = DFListValidador.validaListaNaoObrigatoria(identificacaoUfPercursos, 25, "UF percurso MDF-e");
}
public ZonedDateTime getDataHoraDoInicioViagem() {
return this.dataHoraDoInicioViagem;
}
public void setDataHoraDoInicioViagem(final ZonedDateTime dataHoraDoInicioViagem) {
this.dataHoraDoInicioViagem = dataHoraDoInicioViagem;
}
public String getIndicadorCanalVerde() {
return this.indicadorCanalVerde;
}
public void setIndicadorCanalVerde(final String indicadorCanalVerde) {
final String[] enumeration = new String[]{"1"};
if (StringUtils.isNotBlank(indicadorCanalVerde) && !StringUtils.equalsAny(indicadorCanalVerde, enumeration)) {
throw new IllegalStateException(String.format("Indicador canal verde \"%s\" deve possuir um dos seguintes:'%s' caracteres", indicadorCanalVerde, Arrays.toString(enumeration)));
}
this.indicadorCanalVerde = indicadorCanalVerde;
}
public String getIndicadorCarregaPosterior() {
return indicadorCarregaPosterior;
}
public void setIndicadorCarregaPosterior(String indicadorCarregaPosterior) {
this.indicadorCarregaPosterior = indicadorCarregaPosterior;
}
}