/**
*
*/
package nfe;
import javax.xml.bind.JAXBException;
import br.inf.portalfiscal.nfe.schema.envEventoCancNFe.TEnvEvento;
import br.inf.portalfiscal.nfe.schema.envEventoCancNFe.TRetEnvEvento;
import br.inf.portalfiscal.nfe.schema.retConsCad.TRetConsCad;
import br.inf.portalfiscal.nfe.schema.retdistdfeint.RetDistDFeInt;
import br.inf.portalfiscal.nfe.schema_4.enviNFe.TEnviNFe;
import br.inf.portalfiscal.nfe.schema_4.enviNFe.TRetEnviNFe;
import br.inf.portalfiscal.nfe.schema_4.inutNFe.TInutNFe;
import br.inf.portalfiscal.nfe.schema_4.inutNFe.TRetInutNFe;
import br.inf.portalfiscal.nfe.schema_4.retConsReciNFe.TRetConsReciNFe;
import br.inf.portalfiscal.nfe.schema_4.retConsSitNFe.TRetConsSitNFe;
import br.inf.portalfiscal.nfe.schema_4.retConsStatServ.TRetConsStatServ;
import nfe.dom.Enum.TipoManifestacao;
import nfe.exception.NfeException;
import nfe.util.XmlUtil;
/**
* @author Samuel Oliveira - samuk.exe@hotmail.com - www.samuelweb.com.br
*/
public class Nfe
{
/**
* Construtor privado
*/
private Nfe
() {
}
/**
* Classe Reponsavel Por Consultar a Distribuiçao da NFE na SEFAZ
*
* @param tipoCliente Informar DistribuicaoDFe.CPF ou DistribuicaoDFe.CNPJ
* @param cpfCnpj
* @param tipoConsulta Informar DistribuicaoDFe.NSU ou DistribuicaoDFe.CHAVE
* @param nsuChave
* @return
* @throws NfeException
*/
public static RetDistDFeInt distribuicaoDfe
(String tipoCliente,
String cpfCnpj,
String tipoConsulta,
String nsuChave
) throws NfeException
{
return DistribuicaoDFe.
consultaNfe(tipoCliente, cpfCnpj, tipoConsulta, nsuChave
);
}
/**
* Metodo Responsavel Buscar o Status de Serviço do Servidor da Sefaz
* No tipo Informar ConstantesUtil.NFE ou ConstantesUtil.NFCE
*
* @param tipo
* @return
* @throws NfeException
*/
public static TRetConsStatServ statusServico
(String tipo
) throws NfeException
{
return Status.
statusServico(tipo
);
}
/**
* Classe Reponsavel Por Consultar o status da NFE na SEFAZ
* No tipo Informar ConstantesUtil.NFE ou ConstantesUtil.NFCE
*
* @param chave
* @param tipo
* @return TRetConsSitNFe
* @throws NfeException
*/
public static TRetConsSitNFe consultaXml
(String chave,
String tipo
) throws NfeException
{
return ConsultaXml.
consultaXml(chave, tipo
);
}
/**
* Classe Reponsavel Por Consultar o cadastro do Cnpj/CPF na SEFAZ
*
* @param tipo Usar ConsultaCadastro.CNPJ ou ConsultaCadastro.CPF
* @param cnpjCpf
* @return TRetConsCad
* @throws NfeException
*/
public static TRetConsCad consultaCadastro
(String tipo,
String cnpjCpf
) throws NfeException
{
return ConsultaCadastro.
consultaCadastro(tipo, cnpjCpf
);
}
/**
* Classe Reponsavel Por Consultar o retorno da NFE na SEFAZ
* No tipo Informar ConstantesUtil.NFE ou ConstantesUtil.NFCE
*
* @param recibo
* @param tipo
* @return
* @throws NfeException
*/
public static TRetConsReciNFe consultaRecibo
(String recibo,
String tipo
) throws NfeException
{
return ConsultaRecibo.
reciboNfe(recibo, tipo
);
}
/**
* Classe Reponsavel Por Inutilizar a NFE na SEFAZ
* No tipo Informar ConstantesUtil.NFE ou ConstantesUtil.NFCE
* Id = Código da UF + Ano (2 posições) + CNPJ
* + modelo + série + número inicial e número final
* precedida do literal “ID”
*
* @param id
* @param valida
* @param tipo
* @return
* @throws NfeException
*/
public static TRetInutNFe inutilizacao
(String id,
String motivo,
String tipo
) throws NfeException
{
return Inutilizar.
inutiliza(id , motivo, tipo
);
}
/**
* Classe Reponsavel Por criar o Objeto de Inutilização
* No tipo Informar ConstantesUtil.NFE ou ConstantesUtil.NFCE
* Id = Código da UF + Ano (2 posições) + CNPJ
* + modelo + série + número inicial e número final
* precedida do literal “ID”
*
* @param id
* @param valida
* @param tipo
* @return
* @throws NfeException
*/
public static TInutNFe criaObjetoInutilizacao
(String id,
String motivo,
String tipo
) throws NfeException, JAXBException
{
TInutNFe inutNFe = Inutilizar.
criaObjetoInutiliza(id , motivo, tipo
);
String xml = XmlUtil.
objectToXml(inutNFe
);
xml = xml.
replaceAll(" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\"",
"");
return XmlUtil.
xmlToObject(Assinar.
assinaNfe(xml, Assinar.
INFINUT), TInutNFe.
class );
}
/**
* Metodo para Montar a NFE.
*
* @param enviNFe
* @param valida
* @return
* @throws NfeException
*/
public static TEnviNFe montaNfe
(TEnviNFe enviNFe,
boolean valida
) throws NfeException
{
return Enviar.
montaNfe(enviNFe, valida
);
}
/**
* Metodo para Enviar a NFE.
* No tipo Informar ConstantesUtil.NFE ou ConstantesUtil.NFCE
*
* @param enviNFe
* @param tipo
* @return
* @throws NfeException
*/
public static TRetEnviNFe enviarNfe
(TEnviNFe enviNFe,
String tipo
) throws NfeException
{
return Enviar.
enviaNfe(enviNFe, tipo
);
}
/**
* * Metodo para Cancelar a NFE.
* No tipo Informar ConstantesUtil.NFE ou ConstantesUtil.NFCE
*
* @param envEvento
* @return
* @throws NfeException
*/
public static TRetEnvEvento cancelarNfe
(TEnvEvento envEvento,
boolean valida,
String tipo
) throws NfeException
{
return Cancelar.
eventoCancelamento(envEvento, valida, tipo
);
}
/**
* * Metodo para Envio da Carta De Correção da NFE.
* No tipo Informar ConstantesUtil.NFE ou ConstantesUtil.NFCE
*
* @param evento
* @param valida
* @param tipo
* @return
* @throws NfeException
*/
public static br.
inf.
portalfiscal.
nfe.
schema.
envcce.
TRetEnvEvento cce
(br.
inf.
portalfiscal.
nfe.
schema.
envcce.
TEnvEvento evento,
boolean valida,
String tipo
) throws NfeException
{
return CartaCorrecao.
eventoCCe(evento, valida, tipo
);
}
/**
* Metodo para Manifestação da NFE.
*
* @param envEvento
* @param valida
* @return
* @throws NfeException
*/
public static br.
inf.
portalfiscal.
nfe.
schema.
envConfRecebto.
TRetEnvEvento manifestacao
(String chave, TipoManifestacao manifestacao,
String cnpj,
String motivo,
String data
) throws NfeException
{
return ManifestacaoDestinatario.
eventoManifestacao(chave, manifestacao, cnpj, data, motivo
);
}
}