Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
695 blopes 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.PessoaEnum;
7
import br.com.swconsultoria.nfe.dom.enuns.ServicosEnum;
8
import br.com.swconsultoria.nfe.exception.NfeException;
9
import br.com.swconsultoria.nfe.schema.consCad.TConsCad;
10
import br.com.swconsultoria.nfe.schema.consCad.TUfCons;
11
import br.com.swconsultoria.nfe.schema.retConsCad.TRetConsCad;
12
import br.com.swconsultoria.nfe.util.ConstantesUtil;
13
import br.com.swconsultoria.nfe.util.ObjetoUtil;
14
import br.com.swconsultoria.nfe.util.WebServiceUtil;
15
import br.com.swconsultoria.nfe.util.XmlNfeUtil;
16
import br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.CadConsultaCadastro4Stub;
17
import lombok.extern.java.Log;
18
import org.apache.axiom.om.OMElement;
19
import org.apache.axiom.om.util.AXIOMUtil;
20
import org.apache.axis2.transport.http.HTTPConstants;
21
 
22
import javax.xml.bind.JAXBException;
23
import javax.xml.stream.XMLStreamException;
24
import java.rmi.RemoteException;
25
import java.util.logging.Logger;
26
 
27
/**
28
 * Classe responsavel por Consultar a SituaƧao do XML na SEFAZ.
29
 *
30
 * @author Samuel Oliveira - samuel@swconsultoria.com.br - www.swconsultoria.com.br
31
 */
32
@Log
33
class ConsultaCadastro {
34
 
35
        private final static Logger log = Logger.getLogger(WebServiceUtil.class.getName());
36
 
37
    private ConsultaCadastro() {}
38
 
39
    /**
40
     * Classe Reponsavel Por Consultar o status da NFE na SEFAZ
41
     */
42
 
43
    static TRetConsCad consultaCadastro(ConfiguracoesNfe config, PessoaEnum tipoPessoa, String cnpjCpf, EstadosEnum estado)
44
            throws NfeException {
45
 
46
        try {
47
 
48
            TConsCad consCad = new TConsCad();
49
            consCad.setVersao(ConstantesUtil.VERSAO.CONSULTA_CADASTRO);
50
 
51
            TConsCad.InfCons infCons = new TConsCad.InfCons();
52
            if (PessoaEnum.JURIDICA.equals(tipoPessoa)) {
53
                infCons.setCNPJ(cnpjCpf);
54
            } else {
55
                infCons.setCPF(cnpjCpf);
56
            }
57
            infCons.setXServ("CONS-CAD");
58
            infCons.setUF(TUfCons.valueOf(estado.toString()));
59
 
60
            consCad.setInfCons(infCons);
61
 
62
            String xml = XmlNfeUtil.objectToXml(consCad, config.getEncode());
63
 
64
            log.info("[XML-ENVIO]: " + xml);
65
 
66
            OMElement ome = AXIOMUtil.stringToOM(xml);
67
 
68
            ConfiguracoesNfe configConsulta = new ConfiguracoesNfe();
69
            configConsulta.setContigenciaSVC(config.isContigenciaSVC());
70
            configConsulta.setEstado(estado);
71
            configConsulta.setAmbiente(config.getAmbiente());
72
 
73
            if (EstadosEnum.MS.equals(estado)) {
74
                br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.ms.CadConsultaCadastro4Stub.NfeDadosMsg dadosMsg =
75
                        new br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.ms.CadConsultaCadastro4Stub.NfeDadosMsg();
76
                dadosMsg.setExtraElement(ome);
77
 
78
                br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.ms.CadConsultaCadastro4Stub stub = new br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.ms.CadConsultaCadastro4Stub(
79
                        WebServiceUtil.getUrl(configConsulta, DocumentoEnum.NFE, ServicosEnum.CONSULTA_CADASTRO));
80
 
81
                // Timeout
82
                if (ObjetoUtil.verifica(config.getTimeout()).isPresent()) {
83
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, config.getTimeout());
84
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT,
85
                            config.getTimeout());
86
                }
87
 
88
                br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.ms.CadConsultaCadastro4Stub.NfeResultMsg result = stub.consultaCadastro(dadosMsg);
89
 
90
                log.info("[XML-RETORNO]: " + result.getExtraElement().toString());
91
                return XmlNfeUtil.xmlToObject(result.getExtraElement().toString(), TRetConsCad.class);
92
            } else if (EstadosEnum.MT.equals(estado)) {
93
                br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.rs.CadConsultaCadastro4Stub.ConsultaCadastro consultaCadastro =
94
                        new br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.rs.CadConsultaCadastro4Stub.ConsultaCadastro();
95
                br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.rs.CadConsultaCadastro4Stub.NfeDadosMsg_type0 dadosMsg = new br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.rs.CadConsultaCadastro4Stub.NfeDadosMsg_type0();
96
                dadosMsg.setExtraElement(ome);
97
                consultaCadastro.setNfeDadosMsg(dadosMsg);
98
 
99
                br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.rs.CadConsultaCadastro4Stub stub = new br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.rs.CadConsultaCadastro4Stub(
100
                        WebServiceUtil.getUrl(configConsulta, DocumentoEnum.NFE, ServicosEnum.CONSULTA_CADASTRO));
101
 
102
                // Timeout
103
                if (ObjetoUtil.verifica(config.getTimeout()).isPresent()) {
104
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, config.getTimeout());
105
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT,
106
                            config.getTimeout());
107
                }
108
 
109
                br.com.swconsultoria.nfe.wsdl.CadConsultaCadastro.rs.CadConsultaCadastro4Stub.NfeResultMsg result = stub.consultaCadastro(consultaCadastro);
110
 
111
                log.info("[XML-RETORNO]: " + result.getConsultaCadastroResult().getExtraElement().toString());
112
                return XmlNfeUtil.xmlToObject(result.getConsultaCadastroResult().getExtraElement().toString(), TRetConsCad.class);
113
            } else {
114
                CadConsultaCadastro4Stub.NfeDadosMsg dadosMsg = new CadConsultaCadastro4Stub.NfeDadosMsg();
115
                dadosMsg.setExtraElement(ome);
116
 
117
                CadConsultaCadastro4Stub stub = new CadConsultaCadastro4Stub(
118
                        WebServiceUtil.getUrl(configConsulta, DocumentoEnum.NFE, ServicosEnum.CONSULTA_CADASTRO));
119
 
120
                // Timeout
121
                if (ObjetoUtil.verifica(config.getTimeout()).isPresent()) {
122
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, config.getTimeout());
123
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT,
124
                            config.getTimeout());
125
                }
126
 
127
                CadConsultaCadastro4Stub.NfeResultMsg result = stub.consultaCadastro(dadosMsg);
128
 
129
                log.info("[XML-RETORNO]: " + result.getExtraElement().toString());
130
                return XmlNfeUtil.xmlToObject(result.getExtraElement().toString(), TRetConsCad.class);
131
            }
132
 
133
        } catch (RemoteException | XMLStreamException | JAXBException e) {
134
            throw new NfeException(e.getMessage(),e);
135
        }
136
 
137
    }
138
 
139
}