Subversion Repositories Integrator Subversion

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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