Subversion Repositories Integrator Subversion

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
414 espaco 1
package nfe;
2
 
3
import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe;
4
import br.com.swconsultoria.nfe.dom.enuns.DocumentoEnum;
5
import br.com.swconsultoria.nfe.dom.enuns.EstadosEnum;
6
import br.com.swconsultoria.nfe.dom.enuns.ServicosEnum;
7
import br.com.swconsultoria.nfe.exception.NfeException;
8
import br.com.swconsultoria.nfe.schema_4.consSitNFe.TConsSitNFe;
9
import br.com.swconsultoria.nfe.schema_4.retConsSitNFe.TRetConsSitNFe;
10
import br.com.swconsultoria.nfe.util.ConstantesUtil;
11
import br.com.swconsultoria.nfe.util.ObjetoUtil;
12
import br.com.swconsultoria.nfe.util.WebServiceUtil;
13
import br.com.swconsultoria.nfe.util.XmlNfeUtil;
14
import br.com.swconsultoria.nfe.wsdl.NFeConsultaProtocolo.NFeConsultaProtocolo4Stub;
15
import lombok.extern.java.Log;
16
import org.apache.axiom.om.OMElement;
17
import org.apache.axiom.om.util.AXIOMUtil;
18
import org.apache.axis2.transport.http.HTTPConstants;
19
 
20
import javax.xml.bind.JAXBException;
21
import javax.xml.stream.XMLStreamException;
22
import java.rmi.RemoteException;
23
 
24
/**
25
 * Classe responsavel por Consultar a Situaçao do XML na SEFAZ.
26
 *
27
 * @author Samuel Oliveira - samuel@swconsultoria.com.br - www.swconsultoria.com.br
28
 */
29
@Log
30
class ConsultaXml {
31
 
32
    /**
33
     * Classe Reponsavel Por Consultar o status da NFE na SEFAZ
34
     *
35
     * @param chave
36
     * @param tipoDocumento
37
     * @return
38
     * @throws NfeException
39
     */
40
    static TRetConsSitNFe consultaXml(ConfiguracoesNfe config, String chave, DocumentoEnum tipoDocumento) throws NfeException {
41
 
42
        try {
43
 
44
            TConsSitNFe consSitNFe = new TConsSitNFe();
45
            consSitNFe.setVersao(ConstantesUtil.VERSAO.NFE);
46
            consSitNFe.setTpAmb(config.getAmbiente().getCodigo());
47
            consSitNFe.setXServ("CONSULTAR");
48
            consSitNFe.setChNFe(chave);
49
 
50
            String xml = XmlNfeUtil.objectToXml(consSitNFe, config.getEncode());
51
 
52
            log.info("[XML-ENVIO]: " +xml);
53
 
54
            OMElement ome = AXIOMUtil.stringToOM(xml);
55
 
56
            if(EstadosEnum.MS.equals(config.getEstado())) {
57
                br.com.swconsultoria.nfe.wsdl.NFeConsultaProtocoloMS.NFeConsultaProtocolo4Stub.NfeDadosMsg dadosMsg = new br.com.swconsultoria.nfe.wsdl.NFeConsultaProtocoloMS.NFeConsultaProtocolo4Stub.NfeDadosMsg();
58
                dadosMsg.setExtraElement(ome);
59
 
60
                br.com.swconsultoria.nfe.wsdl.NFeConsultaProtocoloMS.NFeConsultaProtocolo4Stub stub = new br.com.swconsultoria.nfe.wsdl.NFeConsultaProtocoloMS.NFeConsultaProtocolo4Stub(
61
                        WebServiceUtil.getUrl(config, tipoDocumento, ServicosEnum.CONSULTA_XML));
62
 
63
                // Timeout
64
                if (ObjetoUtil.verifica(config.getTimeout()).isPresent()) {
65
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, config.getTimeout());
66
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT,
67
                            config.getTimeout());
68
                }
69
                br.com.swconsultoria.nfe.wsdl.NFeConsultaProtocoloMS.NFeConsultaProtocolo4Stub.NfeResultMsg result = stub.nfeConsultaNF(dadosMsg);
70
 
71
                log.info("[XML-RETORNO]: " + result.getExtraElement().toString());
72
                return XmlNfeUtil.xmlToObject(result.getExtraElement().toString(), TRetConsSitNFe.class);
73
            } else {
74
                NFeConsultaProtocolo4Stub.NfeDadosMsg dadosMsg = new NFeConsultaProtocolo4Stub.NfeDadosMsg();
75
                dadosMsg.setExtraElement(ome);
76
 
77
                NFeConsultaProtocolo4Stub stub = new NFeConsultaProtocolo4Stub(
78
                        WebServiceUtil.getUrl(config, tipoDocumento, ServicosEnum.CONSULTA_XML));
79
 
80
                // Timeout
81
                if (ObjetoUtil.verifica(config.getTimeout()).isPresent()) {
82
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, config.getTimeout());
83
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT,
84
                            config.getTimeout());
85
                }
86
                NFeConsultaProtocolo4Stub.NfeResultMsg result = stub.nfeConsultaNF(dadosMsg);
87
 
88
                log.info("[XML-RETORNO]: " + result.getExtraElement().toString());
89
                return XmlNfeUtil.xmlToObject(result.getExtraElement().toString(), TRetConsSitNFe.class);
90
            }
91
 
92
        } catch (RemoteException | XMLStreamException | JAXBException e) {
93
            throw new NfeException(e.getMessage(),e);
94
        }
95
 
96
    }
97
 
98
}