Subversion Repositories Integrator Subversion

Rev

Rev 594 | 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.Date;
5
import java.util.List;
6
 
7
import javax.inject.Inject;
8
import javax.inject.Named;
9
 
10
import org.springframework.context.annotation.Scope;
11
 
195 espaco 12
import br.com.ec.core.generic.GenericService;
13
import br.com.ec.core.util.DataUtils;
14
import br.com.ec.core.util.VerificadorUtil;
106 espaco 15
import br.com.ec.domain.dto.RankingControleTrafegoDTO;
16
import br.com.ec.domain.dto.RankingControleTrafegoGeralDTO;
17
import br.com.ec.domain.model.ControleTrafego;
598 blopes 18
import br.com.ec.domain.model.Cupom;
106 espaco 19
import br.com.ec.domain.model.Loja;
598 blopes 20
import br.com.ec.domain.model.SubtipoProduto;
106 espaco 21
import br.com.ec.domain.model.Usuario;
22
import br.com.ec.domain.model.Vendedor;
23
import br.com.ec.domain.model.tipos.TipoGenero;
24
import br.com.ec.domain.model.tipos.TipoMotivoAtendimento;
25
import br.com.ec.domain.model.tipos.TipoPeriodoConsulta;
26
import br.com.ec.domain.service.controletrafego.ControleTrafegoService;
27
import br.com.ec.domain.service.loja.LojaService;
598 blopes 28
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
29
import br.com.ec.domain.service.subtipoproduto.SubtipoProdutoService;
106 espaco 30
import br.com.ec.domain.service.usuario.UsuarioService;
195 espaco 31
import br.com.ec.web.exception.VerificadorLancamentoException;
32
import br.com.ec.web.exception.VerificadorLancamentoException.CommandBean;
33
import br.com.ec.web.generic.AbstractBean;
34
import br.com.ec.web.message.LancadorMensagem;
106 espaco 35
 
36
@Named
37
@Scope("view")
38
public class ControleTrafegoBean extends AbstractBean<ControleTrafego> implements Serializable {
39
 
40
        private static final long serialVersionUID = 1L;
41
 
42
        private String senhaUsuario;
43
        private String cpfCliente;
44
 
45
        private ControleTrafegoService controleTrafegoService;
46
        private UsuarioService usuarioService;
47
        private LojaService lojaService;
598 blopes 48
        private SubtipoProdutoService subtipoProdutoService;
49
        private ContextoSeguranca contextoSeguranca;
106 espaco 50
 
51
        private Vendedor vendedorSelecionado;
52
        private RankingControleTrafegoGeralDTO rankingControleTrafegoGeral;
53
        private List<ControleTrafego> listaControleTrafego;
591 blopes 54
        private List<ControleTrafego> listaControleTrafegoSemOpcoes;
106 espaco 55
        private List<RankingControleTrafegoDTO> rankingControleTrafegoUnissex;
56
        private List<RankingControleTrafegoDTO> rankingControleTrafegoMasculinos;
57
        private List<RankingControleTrafegoDTO> rankingControleTrafegoFemininos;
58
 
591 blopes 59
        private String tipoPeriodoConsulta;
60
        private Date dataInicial;
61
        private Date dataFinal;
62
 
598 blopes 63
        private List<SubtipoProduto> listaSubtipos;
64
 
106 espaco 65
        @Inject
598 blopes 66
        public ControleTrafegoBean(ControleTrafegoService controleTrafegoService, UsuarioService usuarioService, LojaService lojaService,
67
                        SubtipoProdutoService subtipoProdutoService, ContextoSeguranca contextoSeguranca) {
106 espaco 68
                this.controleTrafegoService = controleTrafegoService;
69
                this.usuarioService = usuarioService;
70
                this.lojaService = lojaService;
598 blopes 71
                this.subtipoProdutoService = subtipoProdutoService;
72
                this.contextoSeguranca = contextoSeguranca;
106 espaco 73
        }
74
 
75
        public Vendedor getVendedorSelecionado() {
76
                return vendedorSelecionado;
77
        }
78
        public void setVendedorSelecionado(Vendedor vendedorSelecionado) {
79
                this.vendedorSelecionado = vendedorSelecionado;
80
        }
81
 
82
        public RankingControleTrafegoGeralDTO getRankingControleTrafegoGeral() {
83
                return rankingControleTrafegoGeral;
84
        }
85
        public void setRankingControleTrafegoGeral(RankingControleTrafegoGeralDTO rankingControleTrafegoGeral) {
86
                this.rankingControleTrafegoGeral = rankingControleTrafegoGeral;
87
        }
88
 
89
        public List<ControleTrafego> getListaControleTrafego() {
90
                return listaControleTrafego;
91
        }
92
        public void setListaControleTrafego(List<ControleTrafego> listaControleTrafego) {
93
                this.listaControleTrafego = listaControleTrafego;
94
        }
95
 
591 blopes 96
        public List<ControleTrafego> getListaControleTrafegoSemOpcoes() {
97
                return listaControleTrafegoSemOpcoes;
98
        }
99
        public void setListaControleTrafegoSemOpcoes(List<ControleTrafego> listaControleTrafegoSemOpcoes) {
100
                this.listaControleTrafegoSemOpcoes = listaControleTrafegoSemOpcoes;
101
        }
102
 
106 espaco 103
        public List<RankingControleTrafegoDTO> getRankingControleTrafegoUnissex() {
104
                return rankingControleTrafegoUnissex;
105
        }
106
        public void setRankingControleTrafegoUnissex(List<RankingControleTrafegoDTO> rankingControleTrafegoUnissex) {
107
                this.rankingControleTrafegoUnissex = rankingControleTrafegoUnissex;
108
        }
109
 
110
        public List<RankingControleTrafegoDTO> getRankingControleTrafegoMasculinos() {
111
                return rankingControleTrafegoMasculinos;
112
        }
113
        public void setRankingControleTrafegoMasculinos(List<RankingControleTrafegoDTO> rankingControleTrafegoMasculinos) {
114
                this.rankingControleTrafegoMasculinos = rankingControleTrafegoMasculinos;
115
        }
116
 
117
        public List<RankingControleTrafegoDTO> getRankingControleTrafegoFemininos() {
118
                return rankingControleTrafegoFemininos;
119
        }
120
        public void setRankingControleTrafegoFemininos(List<RankingControleTrafegoDTO> rankingControleTrafegoFemininos) {
121
                this.rankingControleTrafegoFemininos = rankingControleTrafegoFemininos;
122
        }
123
 
124
        public TipoPeriodoConsulta[] getTiposPeriodoConsulta() {
125
                return TipoPeriodoConsulta.values();
126
        }
127
 
591 blopes 128
        public String getTipoPeriodoConsulta() {
129
                return tipoPeriodoConsulta;
130
        }
131
        public void setTipoPeriodoConsulta(String tipoPeriodoConsulta) {
132
                this.tipoPeriodoConsulta = tipoPeriodoConsulta;
133
        }
134
 
135
        public Date getDataInicial() {
136
                return dataInicial;
137
        }
138
        public void setDataInicial(Date dataInicial) {
139
                this.dataInicial = dataInicial;
140
        }
141
 
142
        public Date getDataFinal() {
143
                return dataFinal;
144
        }
145
        public void setDataFinal(Date dataFinal) {
146
                this.dataFinal = dataFinal;
147
        }
148
 
598 blopes 149
        public List<SubtipoProduto> getListaSubtipos() {
150
                if (VerificadorUtil.estaNulo(listaSubtipos)) {
151
                        setListaSubtipos(subtipoProdutoService.consultarTodosAtivos());
152
                }
153
                return listaSubtipos;
154
        }
155
        public void setListaSubtipos(List<SubtipoProduto> listaSubtipos) {
156
                this.listaSubtipos = listaSubtipos;
157
        }
158
 
591 blopes 159
        public Boolean ehTipoPeriodoEspecifico() {
160
                return getTipoPeriodoConsulta().equals(TipoPeriodoConsulta.PERIODO_ESPECIFICO.getValor());
161
        }
162
 
163
        public void atualizarPeriodo() {
164
                if (getTipoPeriodoConsulta().equals(TipoPeriodoConsulta.ULTIMOS_7_DIAS.getValor())) {
165
                        setDataInicial(new DataUtils().getDataComHorarioMinimo(DataUtils.acrescentarDias(DataUtils.getDataAtual(), -7)));
166
                        setDataFinal(new DataUtils().getDataComHorarioMaximo(DataUtils.getDataAtual()));
167
                }
168
                if (getTipoPeriodoConsulta().equals(TipoPeriodoConsulta.ULTIMOS_15_DIAS.getValor())) {
169
                        setDataInicial(new DataUtils().getDataComHorarioMinimo(DataUtils.acrescentarDias(DataUtils.getDataAtual(), -15)));
170
                        setDataFinal(new DataUtils().getDataComHorarioMaximo(DataUtils.getDataAtual()));
171
                }
172
                if (getTipoPeriodoConsulta().equals(TipoPeriodoConsulta.ULTIMOS_30_DIAS.getValor())) {
173
                        setDataInicial(new DataUtils().getDataComHorarioMinimo(DataUtils.acrescentarDias(DataUtils.getDataAtual(), -30)));
174
                        setDataFinal(new DataUtils().getDataComHorarioMaximo(DataUtils.getDataAtual()));
175
                }
176
                if (getTipoPeriodoConsulta().equals(TipoPeriodoConsulta.ULTIMOS_60_DIAS.getValor())) {
177
                        setDataInicial(new DataUtils().getDataComHorarioMinimo(DataUtils.acrescentarDias(DataUtils.getDataAtual(), -60)));
178
                        setDataFinal(new DataUtils().getDataComHorarioMaximo(DataUtils.getDataAtual()));
179
                }
180
                if (getTipoPeriodoConsulta().equals(TipoPeriodoConsulta.ULTIMOS_90_DIAS.getValor())) {
181
                        setDataInicial(new DataUtils().getDataComHorarioMinimo(DataUtils.acrescentarDias(DataUtils.getDataAtual(), -90)));
182
                        setDataFinal(new DataUtils().getDataComHorarioMaximo(DataUtils.getDataAtual()));
183
                }
184
                if (getTipoPeriodoConsulta().equals(TipoPeriodoConsulta.MES_ATUAL.getValor())) {
185
                        setDataInicial(new DataUtils().getDataComHorarioMinimo(DataUtils.getPrimeiroDiaDoMesAtual()));
186
                        setDataFinal(new DataUtils().getDataComHorarioMaximo(DataUtils.getUltimoDiaDoMesAtual()));
187
                }
188
        }
189
 
106 espaco 190
        @Override
191
        public void preCarregamento() {
192
                limparEntidade();
598 blopes 193
                setListaControleTrafegoSemOpcoes(controleTrafegoService.consultarControleTrafegoSemOpcoesParaValidar());
106 espaco 194
        }
195
 
196
        public void preencherRankings() throws CloneNotSupportedException {
197
                ControleTrafego controleTrafego = getEntidade().clone();
198
                if (VerificadorUtil.naoEstaNulo(getVendedorSelecionado())) {
199
                        Usuario usuario = new Usuario();
200
                        usuario.setPessoa(getVendedorSelecionado().getPessoa());
201
                        controleTrafego.setUsuario(usuario);
202
                }
591 blopes 203
                setRankingControleTrafegoGeral(controleTrafegoService.consultarRankingControleTrafegoGeral(getDataInicial(), getDataFinal(), controleTrafego));
106 espaco 204
                getRankingControleTrafegoGeral().preencherDadosPie();
205
                controleTrafego.setGeneroProduto(null);
206
                controleTrafego.setTipoMotivo(null);
591 blopes 207
                setListaControleTrafego(controleTrafegoService.consultarControleTrafego(getDataInicial(), getDataFinal(), controleTrafego));
106 espaco 208
 
209
                controleTrafego.setTipoMotivo(TipoMotivoAtendimento.SEM_OPCOES.getValor());
210
                controleTrafego.setGeneroProduto(TipoGenero.UNISSEX.getValor());
591 blopes 211
                setRankingControleTrafegoUnissex(controleTrafegoService.consultarRankingControleTrafegoResumido(getDataInicial(), getDataFinal(), controleTrafego));
106 espaco 212
                controleTrafego.setGeneroProduto(TipoGenero.MASCULINO.getValor());
591 blopes 213
                setRankingControleTrafegoMasculinos(controleTrafegoService.consultarRankingControleTrafegoResumido(getDataInicial(), getDataFinal(), controleTrafego));
106 espaco 214
                controleTrafego.setGeneroProduto(TipoGenero.FEMININO.getValor());
591 blopes 215
                setRankingControleTrafegoFemininos(controleTrafegoService.consultarRankingControleTrafegoResumido(getDataInicial(), getDataFinal(), controleTrafego));
598 blopes 216
 
217
                setListaControleTrafegoSemOpcoes(controleTrafegoService.consultarControleTrafegoSemOpcoesParaValidar());
106 espaco 218
        }
219
 
220
        @Override
221
        public void limparEntidade() {
222
                entidade = new ControleTrafego();
223
                if (VerificadorUtil.naoEstaNulo(getParametro("sequencialLoja"))) {
224
                        Loja loja = new Loja();
225
                        loja.setSequencial(new Long(getParametro("sequencialLoja").toString()));
226
                        entidade.setLoja(lojaService.consultarPorId(loja));
227
                }
228
                setSenhaUsuario("");
591 blopes 229
                this.setTipoPeriodoConsulta(TipoPeriodoConsulta.MES_ATUAL.getValor());
594 blopes 230
                atualizarPeriodo();
106 espaco 231
        }
232
 
233
        @Override
234
        public GenericService<ControleTrafego> getService() {
235
                return controleTrafegoService;
236
        }
237
 
238
        @Override
239
        public ControleTrafego getEntidade() {
240
                return entidade;
241
        }
242
 
243
        @Override
244
        public ControleTrafego getId() {
245
                return getEntidade();
246
        }
247
 
248
        public String getSenhaUsuario() {
249
                return senhaUsuario;
250
        }
251
        public void setSenhaUsuario(String senhaUsuario) {
252
                this.senhaUsuario = senhaUsuario;
253
        }
254
 
255
        public String getCpfCliente() {
256
                return VerificadorUtil.naoEstaNulo(cpfCliente)? cpfCliente.replace(".", "").replace("-", "") : cpfCliente;
257
        }
258
        public void setCpfCliente(String cpfCliente) {
259
                this.cpfCliente = cpfCliente;
260
        }
261
 
262
        public TipoMotivoAtendimento[] getTiposMotivoAtendimento() {
263
                return TipoMotivoAtendimento.values();
264
        }
265
 
266
        /***************************************************************/
267
 
268
        @Override
269
        public void cadastrar() {
270
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
271
                        public void execute() {
272
                                Loja lojaSelecionada = getEntidade().getLoja();
273
                                controleTrafegoService.adicionarAtendimento(getEntidade(), senhaUsuario);
274
                                limparEntidade();
275
                                entidade.setLoja(lojaSelecionada);
276
                                LancadorMensagem.lancarSucesso("ATENDIMENTO ADICIONADO COM SUCESSO!");
277
                        }
278
                });
279
        }
280
 
281
        @Override
282
        public void alterar() {
283
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
284
                        public void execute() {
285
                                /*
286
                                getEntidade().setDataUltimaAlteracaoSituacao(DataUtils.getDataAtual());
287
                                getEntidade().setUsuarioAtendimento(usuarioService.consultarUsuarioPorSenha(senhaUsuario));
288
                                if (VerificadorUtil.naoEstaNulo(getEntidade().getProduto())) {
289
                                        getEntidade().setModelo(getEntidade().getProduto().getModelo());
290
                                        getEntidade().setGenero(getEntidade().getProduto().getGenero());
291
                                }
292
                                alterar(getEntidade());
293
                                */
294
                        }
295
                });
296
        }
297
 
591 blopes 298
        public void salvarValidacoes() {
299
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
300
                        public void execute() {
301
                                for (ControleTrafego controleTrafego : getListaControleTrafegoSemOpcoes()) {
302
                                        if (controleTrafego.getValidar()) {
303
                                                controleTrafego.setDataVerificacao(DataUtils.getDataAtual());
598 blopes 304
                                                controleTrafego.setUsuarioVerificacao(contextoSeguranca.obterUsuario());
591 blopes 305
                                                controleTrafegoService.alterar(controleTrafego);
306
                                        }
307
                                }
598 blopes 308
                                setListaControleTrafegoSemOpcoes(controleTrafegoService.consultarControleTrafegoSemOpcoesParaValidar());
591 blopes 309
                                LancadorMensagem.lancarSucesso("VALIDAÇÕES SALVAS COM SUCESSO!");
310
                        }
311
                });
312
        }
313
 
598 blopes 314
        public void consultarSubtipos() {
315
                SubtipoProduto subtipoProduto = new SubtipoProduto();
316
                if (VerificadorUtil.naoEstaNuloOuVazio(getEntidade().getTipoProduto())) {
317
                        subtipoProduto.setTipo(getEntidade().getTipoProduto());
318
                }
319
                subtipoProduto.setAtivo(true);
320
                setListaSubtipos(subtipoProdutoService.consultar(subtipoProduto));
321
        }
322
 
323
        public void excluirAtendimento(final ControleTrafego controleTrafego) {
324
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
325
                        public void execute() {
326
                                controleTrafegoService.excluir(controleTrafego);
327
                                adicionandoParametroArgsConfirmandoAcao(true);
328
                                setListaControleTrafegoSemOpcoes(controleTrafegoService.consultarControleTrafegoSemOpcoesParaValidar());
329
                                LancadorMensagem.lancarSucesso("ATENDIMENTO EXCLUÍDO COM SUCESSO");
330
                        }
331
                });
332
        }
333
 
334
 
106 espaco 335
}