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.AssinaturaEnum;
5
import br.com.swconsultoria.nfe.dom.enuns.DocumentoEnum;
6
import br.com.swconsultoria.nfe.dom.enuns.EstadosEnum;
7
import br.com.swconsultoria.nfe.dom.enuns.ServicosEnum;
8
import br.com.swconsultoria.nfe.exception.NfeException;
9
import br.com.swconsultoria.nfe.schema_4.inutNFe.TInutNFe;
10
import br.com.swconsultoria.nfe.schema_4.inutNFe.TRetInutNFe;
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.NFeInutilizacao.NFeInutilizacao4Stub;
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 inutilizar uma Faixa de numeracao da Nfe.
26
 *
27
 * @author Samuel Oliveira - samuel@swconsultoria.com.br - www.swconsultoria.com.br
28
 */
29
@Log
30
class Inutilizar {
31
 
32
    static TRetInutNFe inutiliza(ConfiguracoesNfe config, TInutNFe inutNFe, DocumentoEnum tipoDocumento, boolean validar)
33
            throws NfeException {
34
 
35
        try {
36
 
37
            String xml = XmlNfeUtil.objectToXml(inutNFe, config.getEncode());
38
            xml = xml.replaceAll(" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\"", "");
39
            xml = Assinar.assinaNfe(config, xml, AssinaturaEnum.INUTILIZACAO);
40
 
41
            log.info("[XML-ENVIO]: " + xml);
42
 
43
            if (validar) {
44
                new Validar().validaXml(config, xml, ServicosEnum.INUTILIZACAO);
45
            }
46
 
47
            OMElement ome = AXIOMUtil.stringToOM(xml);
48
 
49
            if (EstadosEnum.CE.equals(config.getEstado()) ) {
50
                br.com.swconsultoria.nfe.wsdl.NFeInutilizacao.ce.NFeInutilizacao4Stub.NfeDadosMsg dadosMsgCe =
51
                        new  br.com.swconsultoria.nfe.wsdl.NFeInutilizacao.ce.NFeInutilizacao4Stub.NfeDadosMsg();
52
                dadosMsgCe.setExtraElement(ome);
53
                br.com.swconsultoria.nfe.wsdl.NFeInutilizacao.ce.NFeInutilizacao4Stub stubCe = new br.com.swconsultoria.nfe.wsdl.NFeInutilizacao.ce.NFeInutilizacao4Stub(
54
                        WebServiceUtil.getUrl(config, tipoDocumento, ServicosEnum.INUTILIZACAO));
55
 
56
                // Timeout
57
                if (ObjetoUtil.verifica(config.getTimeout()).isPresent()) {
58
                    stubCe._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, config.getTimeout());
59
                    stubCe._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, config.getTimeout());
60
                }
61
                br.com.swconsultoria.nfe.wsdl.NFeInutilizacao.ce.NFeInutilizacao4Stub.NfeResultMsg resultCe = stubCe.nfeInutilizacaoNF(dadosMsgCe);
62
 
63
                log.info("[XML-RETORNO]: " + resultCe.getExtraElement().toString());
64
                return XmlNfeUtil.xmlToObject(resultCe.getExtraElement().toString(), TRetInutNFe.class);
65
            } else{
66
                NFeInutilizacao4Stub.NfeDadosMsg dadosMsg = new NFeInutilizacao4Stub.NfeDadosMsg();
67
                dadosMsg.setExtraElement(ome);
68
                NFeInutilizacao4Stub stub = new NFeInutilizacao4Stub(
69
                        WebServiceUtil.getUrl(config, tipoDocumento, ServicosEnum.INUTILIZACAO));
70
 
71
                // Timeout
72
                if (ObjetoUtil.verifica(config.getTimeout()).isPresent()) {
73
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.SO_TIMEOUT, config.getTimeout());
74
                    stub._getServiceClient().getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, config.getTimeout());
75
                }
76
                NFeInutilizacao4Stub.NfeResultMsg result = stub.nfeInutilizacaoNF(dadosMsg);
77
 
78
                log.info("[XML-RETORNO]: " + result.getExtraElement().toString());
79
                return XmlNfeUtil.xmlToObject(result.getExtraElement().toString(), TRetInutNFe.class);
80
            }
81
 
82
        } catch (RemoteException | XMLStreamException | JAXBException e) {
83
            throw new NfeException(e.getMessage(),e);
84
        }
85
 
86
    }
87
 
88
}