Subversion Repositories Integrator Subversion

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.InputStream;
4
import java.io.Serializable;
5
 
6
import javax.faces.context.FacesContext;
7
import javax.inject.Inject;
8
import javax.inject.Named;
9
import javax.servlet.ServletContext;
10
 
11
import org.primefaces.event.FileUploadEvent;
12
import org.primefaces.model.DefaultStreamedContent;
13
import org.primefaces.model.StreamedContent;
14
import org.primefaces.model.UploadedFile;
15
import org.springframework.context.annotation.Scope;
16
 
17
import br.com.ec.domain.dto.ArquivoDTO;
18
import br.com.ec.domain.model.tipos.TipoComissionamento;
19
import br.com.ec.domain.service.arquivo.ArquivoService;
20
import br.edu.cesmac.core.util.TipoExtensao;
21
import br.edu.cesmac.relatorio.util.RelatorioUtils;
22
import br.edu.cesmac.web.exception.VerificadorLancamentoException;
23
import br.edu.cesmac.web.exception.VerificadorLancamentoException.CommandBean;
24
import br.edu.cesmac.web.exception.VerificadorLancamentoException.CommandRelatorioStreamedContent;
25
import br.edu.cesmac.web.message.LancadorMensagem;
26
 
27
@Named
28
@Scope("view")
29
public class ArquivoBean implements Serializable {
30
 
31
        private static final long serialVersionUID = 1L;
32
 
33
        private ArquivoDTO arquivo;
34
        private String tipoComissionamentoSelecionado;
35
 
36
        private UploadedFile arquivoParaUpload;
37
 
38
        private ArquivoService arquivoService;
39
 
40
        @Inject
41
        public ArquivoBean(ArquivoService arquivoService) {
42
                this.arquivoService = arquivoService;
43
        }
44
 
45
        public ArquivoDTO getArquivo() {
46
                return arquivo;
47
        }
48
        public void setArquivo(ArquivoDTO arquivo) {
49
                this.arquivo = arquivo;
50
        }
51
 
52
        public String getTipoComissionamentoSelecionado() {
53
                return tipoComissionamentoSelecionado;
54
        }
55
        public void setTipoComissionamentoSelecionado(String tipoComissionamentoSelecionado) {
56
                this.tipoComissionamentoSelecionado = tipoComissionamentoSelecionado;
57
        }
58
 
59
        public UploadedFile getArquivoParaUpload() {
60
                return arquivoParaUpload;
61
        }
62
        public void setArquivoParaUpload(UploadedFile arquivoParaUpload) {
63
                this.arquivoParaUpload = arquivoParaUpload;
64
        }
65
 
66
        public void uploadArquivoEspacoCase(final FileUploadEvent e) {
67
        new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
68
                        public void execute() {
69
                                setTipoComissionamentoSelecionado(TipoComissionamento.COMISSSIONAMENTO_ESPACO_CASE.getValor());
70
                                setArquivo(arquivoService.separarRecibos(new ArquivoDTO(e.getFile()), getTipoComissionamentoSelecionado(), ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext())));
71
                        }
72
                });
73
    }
74
 
75
        public void uploadArquivoVivo(final FileUploadEvent e) {
76
        new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
77
                        public void execute() {
78
                                setTipoComissionamentoSelecionado(TipoComissionamento.COMISSSIONAMENTO_VIVO.getValor());
79
                                setArquivo(arquivoService.separarRecibos(new ArquivoDTO(e.getFile()), getTipoComissionamentoSelecionado(), ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext())));
80
                        }
81
                });
82
    }
83
 
84
        public void uploadArquivoFarmacia(final FileUploadEvent e) {
85
        new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
86
                        public void execute() {
87
                                setTipoComissionamentoSelecionado(TipoComissionamento.COMISSSIONAMENTO_FARMACIA.getValor());
88
                                setArquivo(arquivoService.separarRecibos(new ArquivoDTO(e.getFile()), getTipoComissionamentoSelecionado(), ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext())));
89
                        }
90
                });
91
    }
92
 
93
        public StreamedContent downloadArquivo(final ArquivoDTO arquivoDTO) {
94
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
95
                        @Override
96
                        public StreamedContent execute() {
97
                                return RelatorioUtils.gerarArquivo(arquivoDTO.getArquivo(), "arquivo", TipoExtensao.parse(arquivoDTO.getExtensao()).getValue());
98
                        }
99
                });
100
        }
101
 
102
        public StreamedContent downloadArquivo(final byte[] arquivo, final String extensao) {
103
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
104
                        @Override
105
                        public StreamedContent execute() {
106
                                return RelatorioUtils.gerarArquivo(arquivo, "recibo", TipoExtensao.parse(extensao).getValue());
107
                        }
108
                });
109
        }
110
 
111
        public void retirarArquivo() {
112
                setArquivo(null);
113
        }
114
 
115
        public StreamedContent emitirRecibos(final ArquivoDTO arquivoDTO) throws Exception {
116
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
117
                        @Override
118
                        public StreamedContent execute() {
119
                                return arquivoService.gerarRecibos(arquivoDTO, ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()));
120
                        }
121
                });
122
        }
123
 
124
        public void enviarRecibos(final ArquivoDTO arquivoDTO) throws Exception {
125
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
126
                        public void execute() {
127
                                arquivoService.enviarRecibos(arquivoDTO, getTipoComissionamentoSelecionado(), ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()));
128
                                LancadorMensagem.lancarSucesso("RECIBOS ENVIADOS COM SUCESSO!");
129
                        }
130
                });
131
        }
132
 
133
        public StreamedContent processarRecibos(final ArquivoDTO arquivoDTO) throws Exception {
134
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
135
                        @Override
136
                        public StreamedContent execute() {
137
                                arquivoService.separarEnviarRecibos(arquivoDTO, getTipoComissionamentoSelecionado(), ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()));
138
                                return arquivoService.gerarRecibos(arquivoDTO, ((ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext()));
139
                        }
140
                });
141
        }
142
 
143
        public StreamedContent downloadPastaArquivos(final String nomeArquivo, final String extensao) {
144
                return new VerificadorLancamentoException().verificarLancamentoException(new CommandRelatorioStreamedContent() {
145
                        @Override
146
                        public StreamedContent execute() {
147
                                InputStream arquivo = FacesContext.getCurrentInstance().getExternalContext().getResourceAsStream("/arquivos/" + nomeArquivo + "." + extensao);
148
                        return new DefaultStreamedContent(arquivo, TipoExtensao.parse(extensao).getDescricao(), nomeArquivo + "." + extensao);
149
//                      return new DefaultStreamedContent(arquivo, TipoExtensao.PDF.getDescricao(), nomeArquivo + "." + extensao);
150
                        }
151
                });
152
        }
153
 
154
}