Skip to content

12 : Download Nfe (DistDfe)

SW Software e Consultoria edited this page Mar 5, 2019 · 4 revisions

Download Nfe Por NSU e Chave

import br.com.swconsultoria.nfe.Nfe;
import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe;
import br.com.swconsultoria.nfe.dom.enuns.*;
import br.com.swconsultoria.nfe.schema.retdistdfeint.RetDistDFeInt;
import br.com.swconsultoria.nfe.schema.retdistdfeint.RetDistDFeInt.LoteDistDFeInt.DocZip;
import br.com.swconsultoria.nfe.util.XmlNfeUtil;

import java.util.List;

/**
 * @author Samuel Oliveira
 *
 */
public class DistribuicaoDFeTeste {

    public static void main(String[] args) {
        try {
            // Inicia As Configurações - ver https://github.com/Samuel-Oliveira/Java_NFe/wiki/1-:-Configuracoes
            ConfiguracoesNfe config = Config.iniciaConfiguracoes();

            //Informe o CNPJ Do Destinatario (Deve ser o Mesmo do Certificado)
            String cnpj = "XXX";

            RetDistDFeInt retorno;

            //Para Consulta Via CHAVE
//                String chave = "35170843283811001202550010046314601229130549";
//                retorno = Nfe.distribuicaoDfe(PessoaEnum.JURIDICA, cnpj, ConsultaDFeEnum.CHAVE, chave);

            //Para Consulta Via NSU
            String nsu = "000000000000000";
            retorno = Nfe.distribuicaoDfe(config, PessoaEnum.JURIDICA, cnpj, ConsultaDFeEnum.NSU, nsu);

            if (StatusEnum.DOC_LOCALIZADO_PARA_DESTINATARIO.getCodigo().equals(retorno.getCStat())) {
                System.out.println();
                System.out.println("# Status: " + retorno.getCStat() + " - " + retorno.getXMotivo());
                System.out.println("# NSU Atual: " + retorno.getUltNSU());
                System.out.println("# Max NSU: " + retorno.getMaxNSU());
                System.out.println("# Max NSU: " + retorno.getMaxNSU());

                //Aqui Recebe a Lista De XML (No Maximo 50 por Consulta)
                List<DocZip> listaDoc = retorno.getLoteDistDFeInt().getDocZip();
                for (DocZip docZip : listaDoc) {
                    System.out.println();
                    System.out.println("# Schema: " + docZip.getSchema());
                    switch (docZip.getSchema()) {
                        case "resNFe_v1.01.xsd":
                            System.out.println("# Este é o XML em resumo, deve ser feito a Manifestação para o Objeter o XML Completo.");
                            break;
                        case "procNFe_v4.00.xsd":
                            System.out.println("# XML Completo.");
                            break;
                        case "procEventoNFe_v1.00.xsd":
                            System.out.println("# XML Evento.");
                            break;
                    }
                    //Transforma o GZip em XML
                    String xml = XmlNfeUtil.gZipToXml(docZip.getValue());
                    System.out.println("# XML: " + xml);
                }
            } else {
                System.out.println();
                System.out.println("# Status: " + retorno.getCStat() + " - " + retorno.getXMotivo());
            }
        } catch (Exception e) {
            System.err.println();
            System.err.println("# Erro: "+e.getMessage());
        }
    }
}