Subversion Repositories Integrator Subversion

Rev

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

Rev Author Line No. Line
200 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.awt.image.BufferedImage;
4
import java.io.ByteArrayInputStream;
5
import java.io.ByteArrayOutputStream;
6
import java.io.Serializable;
7
 
8
import javax.faces.bean.ManagedBean;
9
import javax.faces.bean.RequestScoped;
10
import javax.imageio.ImageIO;
11
import javax.inject.Inject;
12
import javax.inject.Named;
13
 
14
import org.primefaces.model.DefaultStreamedContent;
15
import org.primefaces.model.StreamedContent;
16
 
17
import br.com.ec.core.exception.NegocioException;
204 espaco 18
import br.com.ec.core.util.TipoExtensao;
200 espaco 19
import br.com.ec.core.util.VerificadorUtil;
20
import br.com.ec.domain.dto.FiltroComprovanteAvaria;
21
import br.com.ec.domain.dto.FiltroComprovanteCupom;
22
import br.com.ec.domain.dto.FiltroComprovanteRegistroPonto;
23
import br.com.ec.domain.dto.FiltroComprovanteReserva;
24
import br.com.ec.domain.dto.FiltroComprovanteReservaPedido;
25
import br.com.ec.domain.dto.FiltroComprovanteTransferencia;
26
import br.com.ec.domain.dto.FiltroComprovanteTroca;
27
import br.com.ec.domain.dto.PedidoDTO;
28
import br.com.ec.domain.dto.ReservaProdutoDTO;
29
import br.com.ec.domain.model.Cupom;
30
import br.com.ec.domain.model.EstoqueAuditoria;
31
import br.com.ec.domain.model.Ponto;
32
import br.com.ec.domain.model.Transferencia;
33
import br.com.ec.domain.service.emissorrelatorio.EmissorRelatorioService;
34
import net.sf.jasperreports.engine.JasperPrint;
35
import net.sf.jasperreports.engine.JasperPrintManager;
36
 
37
@Named
38
@ManagedBean
39
@RequestScoped
40
public class ComprovanteBean implements Serializable {
41
 
42
//      private static final String SEM_FOTO_JPG = "sem_foto.jpg";
43
 
44
        private static final long serialVersionUID = 1L;
45
 
46
        private EstoqueAuditoria estoqueAuditoria;
47
        private ReservaProdutoDTO reservaProduto;
48
        private PedidoDTO pedido;
49
        private Cupom cupom;
50
        private Transferencia transferencia;
51
        private Ponto ponto;
52
 
53
        private Boolean emitirComprovante = false;
54
        private StreamedContent comprovanteAvariaGerado;
55
        private StreamedContent comprovanteTrocaGerado;
56
        private StreamedContent comprovanteReservaGerado;
57
        private StreamedContent comprovanteReservaPedidoGerado;
58
        private StreamedContent comprovanteCupomGerado;
59
        private StreamedContent comprovanteTransferenciaGerado;
60
        private StreamedContent comprovanteRegistroPontoGerado;
61
 
62
        private EmissorRelatorioService emissorRelatorioService;
63
 
64
        @Inject
65
        public ComprovanteBean(EmissorRelatorioService emissorRelatorioService) {
66
                this.emissorRelatorioService = emissorRelatorioService;
67
        }
68
 
69
        public EstoqueAuditoria getEstoqueAuditoria() {
70
                return estoqueAuditoria;
71
        }
72
        public void setEstoqueAuditoria(EstoqueAuditoria estoqueAuditoria) {
73
                this.estoqueAuditoria = estoqueAuditoria;
74
        }
75
        public Long getSequencialEstoqueAuditoria() {
76
                return VerificadorUtil.naoEstaNulo(getEstoqueAuditoria())? getEstoqueAuditoria().getSequencial() : null;
77
        }
78
 
79
        public ReservaProdutoDTO getReservaProduto() {
80
                return reservaProduto;
81
        }
82
        public void setReservaProduto(ReservaProdutoDTO reservaProduto) {
83
                this.reservaProduto = reservaProduto;
84
        }
85
 
86
        public PedidoDTO getPedido() {
87
                return pedido;
88
        }
89
        public void setPedido(PedidoDTO pedido) {
90
                this.pedido = pedido;
91
        }
92
        public Long getSequencialPedido() {
93
                return VerificadorUtil.naoEstaNulo(getPedido())? getPedido().getSequencial() : null;
94
        }
95
 
96
        public Cupom getCupom() {
97
                return cupom;
98
        }
99
        public void setCupom(Cupom cupom) {
100
                this.cupom = cupom;
101
        }
102
        public Long getSequencialCupom() {
103
                return VerificadorUtil.naoEstaNulo(getCupom())? getCupom().getSequencial() : null;
104
        }
105
 
106
        public Transferencia getTransferencia() {
107
                return transferencia;
108
        }
109
        public void setTransferencia(Transferencia transferencia) {
110
                this.transferencia = transferencia;
111
        }
112
        public Long getSequencialTransferencia() {
113
                return VerificadorUtil.naoEstaNulo(getTransferencia())? getTransferencia().getSequencial() : null;
114
        }
115
 
116
        public Ponto getPonto() {
117
                return ponto;
118
        }
119
        public void setPonto(Ponto ponto) {
120
                this.ponto = ponto;
121
        }
122
 
123
        /****************************************************/
124
 
125
        public Boolean getEmitirComprovante() {
126
                return emitirComprovante;
127
        }
128
        public void setEmitirComprovante(Boolean emitirComprovante) {
129
                this.emitirComprovante = emitirComprovante;
130
        }
131
 
132
        public StreamedContent getComprovanteAvariaGerado() {
133
                if (getEmitirComprovante()) {
134
                        JasperPrint relatorio = emissorRelatorioService.emitirComprovante(new FiltroComprovanteAvaria(estoqueAuditoria));
135
                        setComprovanteAvariaGerado(gerarComprovante(relatorio));
136
                        setEmitirComprovante(false);
137
                        return comprovanteAvariaGerado;
138
                }
139
                return comprovanteAvariaGerado;
140
        }
141
        public void setComprovanteAvariaGerado(StreamedContent comprovanteAvariaGerado) {
142
                this.comprovanteAvariaGerado = comprovanteAvariaGerado;
143
        }
144
 
145
        public StreamedContent getComprovanteTrocaGerado() {
146
                try {
147
                        if (getEmitirComprovante()) {
148
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovante(new FiltroComprovanteTroca(estoqueAuditoria));
149
                                setComprovanteTrocaGerado(gerarComprovante(relatorio));
150
                                return comprovanteTrocaGerado;
151
                        }
152
                } finally {
153
                        setEmitirComprovante(false);
154
                }
155
                return comprovanteTrocaGerado;
156
        }
157
        public void setComprovanteTrocaGerado(StreamedContent comprovanteTrocaGerado) {
158
                this.comprovanteTrocaGerado = comprovanteTrocaGerado;
159
        }
160
 
161
        public StreamedContent getComprovanteReservaGerado() {
162
                try {
163
                        if (getEmitirComprovante()) {
164
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovante(new FiltroComprovanteReserva(reservaProduto));
165
                                setComprovanteReservaGerado(gerarComprovante(relatorio));
166
                                return comprovanteReservaGerado;
167
                        }
168
                } finally {
169
                        setEmitirComprovante(false);
170
                }
171
                return comprovanteReservaGerado;
172
        }
173
        public void setComprovanteReservaGerado(StreamedContent comprovanteReservaGerado) {
174
                this.comprovanteReservaGerado = comprovanteReservaGerado;
175
        }
176
 
177
        public StreamedContent getComprovanteCupomGerado() {
178
                try {
179
                        if (getEmitirComprovante()) {
180
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovante(new FiltroComprovanteCupom(cupom));
181
                                setComprovanteCupomGerado(gerarComprovante(relatorio));
182
                                return comprovanteCupomGerado;
183
                        }
184
                } finally {
185
                        setEmitirComprovante(false);
186
                }
187
                return comprovanteCupomGerado;
188
        }
189
        public void setComprovanteCupomGerado(StreamedContent comprovanteCupomGerado) {
190
                this.comprovanteCupomGerado = comprovanteCupomGerado;
191
        }
192
 
193
        public StreamedContent getComprovanteReservaPedidoGerado() {
194
                try {
195
                        if (getEmitirComprovante()) {
196
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovante(new FiltroComprovanteReservaPedido(pedido));
197
                                setComprovanteReservaPedidoGerado(gerarComprovante(relatorio));
198
                                return comprovanteReservaPedidoGerado;
199
                        }
200
                } finally {
201
                        setEmitirComprovante(false);
202
                }
203
                return comprovanteReservaPedidoGerado;
204
        }
205
        public void setComprovanteReservaPedidoGerado(StreamedContent comprovanteReservaPedidoGerado) {
206
                this.comprovanteReservaPedidoGerado = comprovanteReservaPedidoGerado;
207
        }
208
 
209
        public StreamedContent getComprovanteTransferenciaGerado() {
210
                try {
211
                        if (getEmitirComprovante()) {
212
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovante(new FiltroComprovanteTransferencia(transferencia));
213
                                setComprovanteTransferenciaGerado(gerarComprovante(relatorio));
214
                        }
215
                } catch (Exception e) {
216
                        e.printStackTrace();
217
                } finally {
218
                        setEmitirComprovante(false);
219
                }
220
                return comprovanteTransferenciaGerado;
221
        }
222
        public void setComprovanteTransferenciaGerado(StreamedContent comprovanteTransferenciaGerado) {
223
                this.comprovanteTransferenciaGerado = comprovanteTransferenciaGerado;
224
        }
225
 
226
        public StreamedContent getComprovanteRegistroPontoGerado() {
227
                try {
228
                        if (getEmitirComprovante()) {
229
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovante(new FiltroComprovanteRegistroPonto(ponto));
230
                                setComprovanteRegistroPontoGerado(gerarComprovante(relatorio));
231
                        }
232
                } catch (Exception e) {
233
                        e.printStackTrace();
234
                } finally {
235
                        setEmitirComprovante(false);
236
                }
237
                return comprovanteRegistroPontoGerado;
238
        }
239
        public void setComprovanteRegistroPontoGerado(StreamedContent comprovanteRegistroPontoGerado) {
240
                this.comprovanteRegistroPontoGerado = comprovanteRegistroPontoGerado;
241
        }
242
 
243
        /*************************************/
244
 
245
        public void prepararGerarComprovante(PedidoDTO pedido) {
246
                setEmitirComprovante(true);
247
                setPedido(pedido);
248
        }
249
 
250
        public void prepararGerarComprovante(EstoqueAuditoria estoqueAuditoria) {
251
                setEmitirComprovante(true);
252
                setEstoqueAuditoria(estoqueAuditoria);
253
        }
254
 
255
        public void prepararGerarComprovante(ReservaProdutoDTO reservaProduto) {
256
                setEmitirComprovante(true);
257
                setReservaProduto(reservaProduto);
258
        }
259
 
260
        public void prepararGerarComprovante(Cupom cupom) {
261
                setEmitirComprovante(true);
262
                setCupom(cupom);
263
        }
264
 
265
        public void prepararGerarComprovante(Transferencia transferencia) {
266
                setEmitirComprovante(true);
267
                setTransferencia(transferencia);
268
        }
269
 
270
        public StreamedContent gerarComprovante(JasperPrint relatorio) {
271
                setEmitirComprovante(false);
204 espaco 272
                return (StreamedContent) DefaultStreamedContent.builder()
273
                                .contentType(TipoExtensao.PNG.getDescricao())
274
                                .name("comprovante.png")
275
                                .stream(() -> new ByteArrayInputStream(retornarByterRelatorio(relatorio))).build();
200 espaco 276
        }
277
 
278
        private byte[] retornarByterRelatorio(final JasperPrint relatorio) {
279
                byte[] imageBytes = null;
280
                try {
281
                        BufferedImage bufferedImage = (BufferedImage) JasperPrintManager.printPageToImage(relatorio, 0, 2.0f);
282
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
283
                ImageIO.write(bufferedImage,"png", baos);
284
                imageBytes = baos.toByteArray();
285
                } catch (Exception e) {
286
                        e.printStackTrace();
287
                        throw new NegocioException(e.getMessage());
288
                }
289
                return imageBytes;
290
        }
291
 
292
}