Subversion Repositories Integrator Subversion

Rev

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