Subversion Repositories Integrator Subversion

Rev

Rev 106 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.Serializable;
4
import java.util.List;
5
 
6
import javax.inject.Inject;
7
import javax.inject.Named;
8
 
9
import org.springframework.context.annotation.Scope;
10
 
11
import br.com.ec.controller.managedbean.consultademanda.CupomConsultaPorDemanda;
195 espaco 12
import br.com.ec.core.consulta.ParametrosConsulta;
13
import br.com.ec.core.exception.NegocioException;
14
import br.com.ec.core.generic.GenericService;
15
import br.com.ec.core.util.DataUtils;
16
import br.com.ec.core.util.VerificadorUtil;
106 espaco 17
import br.com.ec.domain.model.Cliente;
18
import br.com.ec.domain.model.Cupom;
19
import br.com.ec.domain.model.tipos.TipoCupom;
20
import br.com.ec.domain.service.cliente.ClienteService;
21
import br.com.ec.domain.service.cupom.CupomService;
195 espaco 22
import br.com.ec.web.exception.VerificadorLancamentoException;
23
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
24
import br.com.ec.web.generic.AbstractBean;
25
import br.com.ec.web.message.LancadorMensagem;
106 espaco 26
 
27
@Named
28
@Scope("view")
29
public class CupomBean extends AbstractBean<Cupom> implements Serializable {
30
 
31
        private static final long serialVersionUID = 1L;
32
 
33
        private CupomService cupomService;
34
        private ClienteService clienteService;
35
 
36
        private Cupom cupomSelecionado;
37
        private String cpfCliente;
38
        private Double valorSeparacao;
39
        private String codigoCupomParaUnir;
40
        private String codigoCupomParaUnirSegundo;
41
        private Cupom cupomSelecionadoParaUnir;
42
 
43
        private CupomConsultaPorDemanda lazy;
44
        private CupomConsultaPorDemanda lazyValidos;
45
 
46
        @Inject
47
        public CupomBean(CupomService cupomService, CupomConsultaPorDemanda lazy, CupomConsultaPorDemanda lazyValidos, ClienteService clienteService) {
48
                this.cupomService = cupomService;
49
                this.lazy = lazy;
50
                this.lazyValidos = lazyValidos;
51
                this.clienteService = clienteService;
52
        }
53
 
54
        @Override
55
        public void preCarregamento() {
56
                entidade = new Cupom();
57
                parametrosConsulta = new ParametrosConsulta<Cupom>();
58
                parametrosConsulta.setEntidade(entidade);
59
        }
60
 
61
        @Override
62
        public void limparEntidade() {
63
                setEntidade(new Cupom());
64
                setCupomSelecionado(null);
65
                setCodigoCupomParaUnir("");
66
                setCodigoCupomParaUnirSegundo("");
67
        }
68
 
69
        @Override
70
        public GenericService<Cupom> getService() {
71
                return cupomService;
72
        }
73
 
74
        @Override
75
        public Cupom getEntidade() {
76
                return entidade;
77
        }
78
 
79
        @Override
80
        public Cupom getId() {
81
                return getEntidade();
82
        }
83
 
84
        public Cupom getCupomSelecionado() {
85
                return cupomSelecionado;
86
        }
87
        public void setCupomSelecionado(Cupom cupomSelecionado) {
88
                this.cupomSelecionado = cupomSelecionado;
89
        }
90
 
91
        public Cupom getCupomSelecionadoParaUnir() {
92
                return cupomSelecionadoParaUnir;
93
        }
94
        public void setCupomSelecionadoParaUnir(Cupom cupomSelecionadoParaUnir) {
95
                this.cupomSelecionadoParaUnir = cupomSelecionadoParaUnir;
96
        }
97
 
98
        public CupomConsultaPorDemanda getLazy() {
99
                prepararConsultaDemanda();
100
                return lazy;
101
        }
102
        public void setLazy(CupomConsultaPorDemanda lazy) {
103
                this.lazy = lazy;
104
        }
105
        public void prepararConsultaDemanda() {
106
                lazy.setarParametrosConsulta(getParametrosConsulta());
107
        }
108
 
109
        public CupomConsultaPorDemanda getLazyValidos() {
110
                prepararConsultaDemandaValidos();
111
                return lazyValidos;
112
        }
113
        public void setLazyValidos(CupomConsultaPorDemanda lazyValidos) {
114
                this.lazyValidos = lazyValidos;
115
        }
116
        public void prepararConsultaDemandaValidos() {
117
                ParametrosConsulta<Cupom> parametros = getParametrosConsulta();
118
                Cupom cupom = new Cupom();
119
                cupom.setDataHoraValidade(DataUtils.getDataAtual());
120
                cupom.setAtivo(true);
121
                cupom.setPublico(true);
122
                parametros.setEntidade(cupom);
123
                lazyValidos.setarParametrosConsulta(parametros);
124
        }
125
 
126
        public String getCpfCliente() {
127
                return VerificadorUtil.naoEstaNulo(cpfCliente)? cpfCliente.replace(".", "").replace("-", "") : cpfCliente;
128
        }
129
        public void setCpfCliente(String cpfCliente) {
130
                this.cpfCliente = cpfCliente;
131
        }
132
 
133
        public Double getValorSeparacao() {
134
                return valorSeparacao;
135
        }
136
        public void setValorSeparacao(Double valorSeparacao) {
137
                this.valorSeparacao = valorSeparacao;
138
        }
139
 
140
        public String getCodigoCupomParaUnir() {
141
                return codigoCupomParaUnir;
142
        }
143
        public void setCodigoCupomParaUnir(String codigoCupomParaUnir) {
144
                this.codigoCupomParaUnir = codigoCupomParaUnir;
145
        }
146
 
147
        public String getCodigoCupomParaUnirSegundo() {
148
                return codigoCupomParaUnirSegundo;
149
        }
150
        public void setCodigoCupomParaUnirSegundo(String codigoCupomParaUnirSegundo) {
151
                this.codigoCupomParaUnirSegundo = codigoCupomParaUnirSegundo;
152
        }
153
 
154
        public TipoCupom[] getTiposCupom() {
155
                return TipoCupom.values();
156
        }
157
 
158
        /***************************************************************/
159
 
160
        public List<Cupom> getConsultarTodas() {
161
                return cupomService.consultarTodos(new Cupom());
162
        }
163
 
164
        public void prepararParaGerarCupom() {
165
                Cupom cupomGerado = new Cupom();
166
                cupomGerado.setCodigo(cupomService.gerarCodigoValido());
167
                cupomGerado.setDataHoraEmissao(DataUtils.getDataAtual());
168
                cupomGerado.setPublico(true);
169
                cupomGerado.setAtivo(true);
170
                cupomGerado.setLimiteUtilizacao(false);
171
                cupomGerado.setTipoCupom(TipoCupom.PROMOCIONAL.getValor());
172
                setCupomSelecionado(cupomGerado);
173
        }
174
 
175
        public void cadastrarCupomGerado() {
176
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
177
                        public void execute() {
178
                                cupomService.cadastrar(getCupomSelecionado());
179
                                LancadorMensagem.lancarSucesso("CUPOM GERADO COM SUCESSO! CÓDIGO GERADO: " + getCupomSelecionado().getCodigo());
180
                                setCupomSelecionado(null);
181
                        }
182
                });
183
        }
184
 
185
        public void alterarCupomGerado() {
186
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
187
                        public void execute() {
188
                                cupomService.alterar(getCupomSelecionado());
189
                                LancadorMensagem.lancarSucesso("CUPOM ALTERADO COM SUCESSO!");
190
                                setCupomSelecionado(null);
191
                        }
192
                });
193
        }
194
 
195
        public void selecionarCliente(final Cliente cliente) {
196
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
197
                        public void execute() {
198
                                getCupomSelecionado().setCliente(clienteService.consultarClientePorCpfCnpj(cliente.getCpfCnpj()));
199
                                setCpfCliente(null);
200
                                adicionandoParametroArgsConfirmandoAcao(true);
201
                        }
202
                });
203
        }
204
 
205
        public void retirarCliente() {
206
                getCupomSelecionado().setCliente(null);
207
        }
208
 
209
        public void excluirCupom(final Cupom cupom) {
210
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
211
                        public void execute() {
212
                                cupomService.excluirCupom(cupom);
213
                                adicionandoParametroArgsConfirmandoAcao(true);
214
                                LancadorMensagem.lancarSucesso("CUPOM EXCLUÍDO COM SUCESSO");
215
                        }
216
                });
217
        }
218
 
219
        public void prepararParaSepararCupom() {
220
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
221
                        public void execute() {
222
                                setCupomSelecionado(cupomService.consultarCupomPorCodigo(getEntidade().getCodigo()));
223
                                verificarCupomValidoEhParaReembolso(getCupomSelecionado());
224
                                setValorSeparacao(new Double(0.0));
225
                                adicionandoParametroArgsConfirmandoAcao(true);
226
                        }
227
                });
228
        }
229
 
230
        public void confirmarSeparacaoCupom() {
231
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
232
                        public void execute() {
233
                                Cupom cupomNovo = cupomService.separarCupom(getCupomSelecionado(), getValorSeparacao());
234
                                adicionandoParametroArgsConfirmandoAcao(true);
235
                                limparEntidade();
236
                                LancadorMensagem.lancarSucesso("CUPOM GERADO COM SUCESSO! CÓDIGO: " + cupomNovo.getCodigo());
237
                        }
238
                });
239
        }
240
 
241
        public void prepararParaUnirCupons() {
242
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
243
                        public void execute() {
244
                                setCupomSelecionado(cupomService.consultarCupomPorCodigo(getCodigoCupomParaUnir()));
245
                                verificarCupomValidoEhParaReembolso(getCupomSelecionado());
246
                                setCupomSelecionadoParaUnir(cupomService.consultarCupomPorCodigo(getCodigoCupomParaUnirSegundo()));
247
                                verificarCupomValidoEhParaReembolso(getCupomSelecionadoParaUnir());
248
                                adicionandoParametroArgsConfirmandoAcao(true);
249
                        }
250
                });
251
        }
252
 
253
        private void verificarCupomValidoEhParaReembolso(Cupom cupom) {
254
                if (VerificadorUtil.naoEstaNulo(cupom)) {
255
                        if (!cupom.getAtivo() || !cupom.valido()) {
256
                                throw new NegocioException("OPERAÇÃO NÃO PERMITIDA: CUPOM INDISPONÍVEL");
257
                        }
258
                        if (!cupom.getTipoCupom().equals(TipoCupom.REEMBOLSO.getValor())) {
259
                                throw new NegocioException("OPERAÇÃO NÃO PERMITIDA: CUPOM DEVE SER PARA REEMBOLSO");
260
                        }
261
                }
262
        }
263
 
264
        public void confirmarUniaoCupons() {
265
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
266
                        public void execute() {
267
                                Cupom cupomNovo = cupomService.unirCupons(getCupomSelecionado(), getCupomSelecionadoParaUnir());
268
                                adicionandoParametroArgsConfirmandoAcao(true);
269
                                limparEntidade();
270
                                LancadorMensagem.lancarSucesso("CUPONS UNIDOS COM SUCESSO! CÓDIGO: " + cupomNovo.getCodigo());
271
                        }
272
                });
273
        }
274
 
275
}