Subversion Repositories Integrator Subversion

Rev

Rev 414 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
415 espaco 1
package nfe.util;
414 espaco 2
 
3
import br.com.swconsultoria.nfe.Assinar;
4
import br.com.swconsultoria.nfe.dom.ConfiguracoesNfe;
5
import br.com.swconsultoria.nfe.dom.enuns.AssinaturaEnum;
6
import br.com.swconsultoria.nfe.dom.enuns.DocumentoEnum;
7
import br.com.swconsultoria.nfe.exception.NfeException;
8
import br.com.swconsultoria.nfe.schema_4.inutNFe.TInutNFe;
9
import br.com.swconsultoria.nfe.schema_4.inutNFe.TProcInutNFe;
10
import br.com.swconsultoria.nfe.schema_4.inutNFe.TRetInutNFe;
11
 
12
import javax.xml.bind.JAXBException;
13
import java.time.LocalDateTime;
14
import java.time.format.DateTimeFormatter;
15
 
16
/**
17
 * @author Samuel Oliveira - samuk.exe@hotmail.com
18
 * Data: 02/03/2019 - 22:51
19
 */
20
public class InutilizacaoUtil {
21
 
22
    /**
23
     * Monta o Evento de Inutilização
24
     * @param tipoDocumento
25
     * @param cnpj
26
     * @param serie
27
     * @param numeroInicial
28
     * @param numeroFinal
29
     * @param justificativa
30
     * @param configuracao
31
     * @return
32
     * @throws NfeException
33
     */
34
    public static TInutNFe montaInutilizacao(DocumentoEnum tipoDocumento, String cnpj, int serie, int numeroInicial, int numeroFinal, String justificativa, LocalDateTime dataInutilizacao, ConfiguracoesNfe configuracao){
35
 
36
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yy");
37
        String cUf = configuracao.getEstado().getCodigoUF();
38
        String ano = dataInutilizacao.format(formatter);
39
        String serieCompleta = ChaveUtil.completarComZerosAEsquerda(String.valueOf(serie), 3);
40
        String nInicial = ChaveUtil.completarComZerosAEsquerda(String.valueOf(numeroInicial), 9);
41
        String nFinal = ChaveUtil.completarComZerosAEsquerda(String.valueOf(numeroFinal), 9);
42
 
43
        String id = "ID" + cUf + ano + cnpj + tipoDocumento.getModelo() + serieCompleta + nInicial + nFinal;
44
 
45
        TInutNFe inutNFe = new TInutNFe();
46
        inutNFe.setVersao(ConstantesUtil.VERSAO.INUTILIZACAO);
47
 
48
        TInutNFe.InfInut infInut = new TInutNFe.InfInut();
49
        infInut.setId(id);
50
        infInut.setTpAmb(configuracao.getAmbiente().getCodigo());
51
        infInut.setXServ("INUTILIZAR");
52
        infInut.setCUF(cUf);
53
        infInut.setAno(ano);
54
 
55
        infInut.setCNPJ(cnpj);
56
        infInut.setMod(tipoDocumento.getModelo());
57
        infInut.setSerie(String.valueOf(serie));
58
 
59
        infInut.setNNFIni(String.valueOf(numeroInicial));
60
        infInut.setNNFFin(String.valueOf(numeroFinal));
61
 
62
        infInut.setXJust(justificativa);
63
        inutNFe.setInfInut(infInut);
64
 
65
        return inutNFe;
66
 
67
    }
68
 
69
    /**
70
     * Cria o ProcEvento da Inutilização
71
     * @param inutNFe
72
     * @param retorno
73
     * @param configuracoesNfe
74
     * @return
75
     * @throws JAXBException
76
     * @throws NfeException
77
     */
78
    public static String criaProcInutilizacao(ConfiguracoesNfe configuracoesNfe, TInutNFe inutNFe, TRetInutNFe retorno) throws JAXBException, NfeException {
79
 
80
 
81
        String xml = XmlNfeUtil.objectToXml(inutNFe, configuracoesNfe.getEncode());
82
        xml = xml.replaceAll(" xmlns:ns2=\"http://www.w3.org/2000/09/xmldsig#\"", "");
83
        xml = Assinar.assinaNfe(configuracoesNfe, xml, AssinaturaEnum.INUTILIZACAO);
84
 
85
        String assinado = Assinar.assinaNfe(ConfiguracoesUtil.iniciaConfiguracoes(configuracoesNfe), xml, AssinaturaEnum.INUTILIZACAO);
86
 
87
        // Criação do ProcInutNfe
88
        TProcInutNFe procInutNFe = new TProcInutNFe();
89
        procInutNFe.setInutNFe(XmlNfeUtil.xmlToObject(assinado, TInutNFe.class));
90
        procInutNFe.setRetInutNFe(retorno);
91
        procInutNFe.setVersao(ConstantesUtil.VERSAO.INUTILIZACAO);
92
 
93
        return XmlNfeUtil.objectToXml(procInutNFe, configuracoesNfe.getEncode());
94
    }
95
 
96
}