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.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.FiltroComprovanteReserva;
20
import br.com.ec.domain.dto.FiltroComprovanteReservaPedido;
21
import br.com.ec.domain.dto.FiltroComprovanteTroca;
22
import br.com.ec.domain.dto.PedidoDTO;
23
import br.com.ec.domain.dto.ReservaProdutoDTO;
24
import br.com.ec.domain.model.Cupom;
25
import br.com.ec.domain.model.EstoqueAuditoria;
26
import br.com.ec.domain.service.emissorrelatorio.EmissorRelatorioService;
27
import br.edu.cesmac.core.exception.NegocioException;
28
import br.edu.cesmac.core.util.VerificadorUtil;
29
import net.sf.jasperreports.engine.JasperPrint;
30
import net.sf.jasperreports.engine.JasperPrintManager;
31
 
32
@Named
33
@ManagedBean
34
@RequestScoped
35
public class ComprovanteBean implements Serializable {
36
 
37
//      private static final String SEM_FOTO_JPG = "sem_foto.jpg";
38
 
39
        private static final long serialVersionUID = 1L;
40
 
41
        private EstoqueAuditoria estoqueAuditoria;
42
        private ReservaProdutoDTO reservaProduto;
43
        private PedidoDTO pedido;
44
        private Cupom cupom;
45
        private Boolean emitirComprovante = false;
46
        private StreamedContent comprovanteAvariaGerado;
47
        private StreamedContent comprovanteTrocaGerado;
48
        private StreamedContent comprovanteReservaGerado;
49
        private StreamedContent comprovanteReservaPedidoGerado;
50
        private StreamedContent comprovanteCupomGerado;
51
 
52
        private EmissorRelatorioService emissorRelatorioService;
53
 
54
        @Inject
55
        public ComprovanteBean(EmissorRelatorioService emissorRelatorioService) {
56
                this.emissorRelatorioService = emissorRelatorioService;
57
        }
58
 
59
        public EstoqueAuditoria getEstoqueAuditoria() {
60
                return estoqueAuditoria;
61
        }
62
        public void setEstoqueAuditoria(EstoqueAuditoria estoqueAuditoria) {
63
                this.estoqueAuditoria = estoqueAuditoria;
64
        }
65
        public Long getSequencialEstoqueAuditoria() {
66
                return VerificadorUtil.naoEstaNulo(getEstoqueAuditoria())? getEstoqueAuditoria().getSequencial() : null;
67
        }
68
 
69
        public ReservaProdutoDTO getReservaProduto() {
70
                return reservaProduto;
71
        }
72
        public void setReservaProduto(ReservaProdutoDTO reservaProduto) {
73
                this.reservaProduto = reservaProduto;
74
        }
75
 
76
        public PedidoDTO getPedido() {
77
                return pedido;
78
        }
79
        public void setPedido(PedidoDTO pedido) {
80
                this.pedido = pedido;
81
        }
82
        public Long getSequencialPedido() {
83
                return VerificadorUtil.naoEstaNulo(getPedido())? getPedido().getSequencial() : null;
84
        }
85
 
86
        public Cupom getCupom() {
87
                return cupom;
88
        }
89
        public void setCupom(Cupom cupom) {
90
                this.cupom = cupom;
91
        }
92
        public Long getSequencialCupom() {
93
                return VerificadorUtil.naoEstaNulo(getCupom())? getCupom().getSequencial() : null;
94
        }
95
 
96
        public Boolean getEmitirComprovante() {
97
                return emitirComprovante;
98
        }
99
        public void setEmitirComprovante(Boolean emitirComprovante) {
100
                this.emitirComprovante = emitirComprovante;
101
        }
102
 
103
        public StreamedContent getComprovanteAvariaGerado() {
104
                if (getEmitirComprovante()) {
105
                        JasperPrint relatorio = emissorRelatorioService.emitirComprovanteAvaria(new FiltroComprovanteAvaria(estoqueAuditoria));
106
                        setComprovanteAvariaGerado(gerarComprovante(relatorio));
107
                        setEmitirComprovante(false);
108
                        return comprovanteAvariaGerado;
109
                }
110
                return comprovanteAvariaGerado;
111
        }
112
        public void setComprovanteAvariaGerado(StreamedContent comprovanteAvariaGerado) {
113
                this.comprovanteAvariaGerado = comprovanteAvariaGerado;
114
        }
115
 
116
        public StreamedContent getComprovanteTrocaGerado() {
117
                try {
118
                        if (getEmitirComprovante()) {
119
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovanteTroca(new FiltroComprovanteTroca(estoqueAuditoria));
120
                                setComprovanteTrocaGerado(gerarComprovante(relatorio));
121
                                return comprovanteTrocaGerado;
122
                        }
123
                } finally {
124
                        setEmitirComprovante(false);
125
                }
126
                return comprovanteTrocaGerado;
127
        }
128
        public void setComprovanteTrocaGerado(StreamedContent comprovanteTrocaGerado) {
129
                this.comprovanteTrocaGerado = comprovanteTrocaGerado;
130
        }
131
 
132
        public StreamedContent getComprovanteReservaGerado() {
133
                try {
134
                        if (getEmitirComprovante()) {
135
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovanteReserva(new FiltroComprovanteReserva(reservaProduto));
136
                                setComprovanteReservaGerado(gerarComprovante(relatorio));
137
                                return comprovanteReservaGerado;
138
                        }
139
                } finally {
140
                        setEmitirComprovante(false);
141
                }
142
                return comprovanteReservaGerado;
143
        }
144
        public void setComprovanteReservaGerado(StreamedContent comprovanteReservaGerado) {
145
                this.comprovanteReservaGerado = comprovanteReservaGerado;
146
        }
147
 
148
        public StreamedContent getComprovanteCupomGerado() {
149
                try {
150
                        if (getEmitirComprovante()) {
151
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovanteCupom(new FiltroComprovanteCupom(cupom));
152
                                setComprovanteCupomGerado(gerarComprovante(relatorio));
153
                                return comprovanteCupomGerado;
154
                        }
155
                } finally {
156
                        setEmitirComprovante(false);
157
                }
158
                return comprovanteCupomGerado;
159
        }
160
        public void setComprovanteCupomGerado(StreamedContent comprovanteCupomGerado) {
161
                this.comprovanteCupomGerado = comprovanteCupomGerado;
162
        }
163
 
164
        public StreamedContent getComprovanteReservaPedidoGerado() {
165
                try {
166
                        if (getEmitirComprovante()) {
167
                                JasperPrint relatorio = emissorRelatorioService.emitirComprovanteReservaPedido(new FiltroComprovanteReservaPedido(pedido));
168
                                setComprovanteReservaPedidoGerado(gerarComprovante(relatorio));
169
                                return comprovanteReservaPedidoGerado;
170
                        }
171
                } finally {
172
                        setEmitirComprovante(false);
173
                }
174
                return comprovanteReservaPedidoGerado;
175
        }
176
        public void setComprovanteReservaPedidoGerado(StreamedContent comprovanteReservaPedidoGerado) {
177
                this.comprovanteReservaPedidoGerado = comprovanteReservaPedidoGerado;
178
        }
179
 
180
        /*************************************/
181
 
182
        public void prepararGerarComprovante(PedidoDTO pedido) {
183
                setEmitirComprovante(true);
184
                setPedido(pedido);
185
        }
186
 
187
        public void prepararGerarComprovante(EstoqueAuditoria estoqueAuditoria) {
188
                setEmitirComprovante(true);
189
                setEstoqueAuditoria(estoqueAuditoria);
190
        }
191
 
192
        public void prepararGerarComprovante(ReservaProdutoDTO reservaProduto) {
193
                setEmitirComprovante(true);
194
                setReservaProduto(reservaProduto);
195
        }
196
 
197
        public void prepararGerarComprovante(Cupom cupom) {
198
                setEmitirComprovante(true);
199
                setCupom(cupom);
200
        }
201
 
202
        public StreamedContent gerarComprovante(JasperPrint relatorio) {
203
                setEmitirComprovante(false);
204
                return (StreamedContent) new DefaultStreamedContent(new ByteArrayInputStream(retornarByterRelatorio(relatorio)), "image/png", "comprovante.png");
205
        }
206
 
207
        private byte[] retornarByterRelatorio(final JasperPrint relatorio) {
208
                byte[] imageBytes = null;
209
                try {
210
                        BufferedImage bufferedImage = (BufferedImage) JasperPrintManager.printPageToImage(relatorio, 0, 2.0f);
211
                        ByteArrayOutputStream baos = new ByteArrayOutputStream();
212
                ImageIO.write(bufferedImage,"png", baos);
213
                imageBytes = baos.toByteArray();
214
                } catch (Exception e) {
215
                        e.printStackTrace();
216
                        throw new NegocioException(e.getMessage());
217
                }
218
                return imageBytes;
219
        }
220
 
221
}