Subversion Repositories Integrator Subversion

Rev

Rev 182 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.Serializable;
4
import java.util.ArrayList;
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
 
12
import br.com.ec.domain.model.Loja;
13
import br.com.ec.domain.model.Pendencia;
14
import br.com.ec.domain.model.Perfil;
15
import br.com.ec.domain.model.Usuario;
16
import br.com.ec.domain.model.UsuarioPerfil;
17
import br.com.ec.domain.service.loja.LojaService;
18
import br.com.ec.domain.service.pendencia.PendenciaService;
19
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
20
import br.com.ec.domain.service.usuario.UsuarioService;
21
import br.com.ec.domain.shared.ConstantesSEC;
22
import br.edu.cesmac.core.consulta.ParametrosConsulta;
23
import br.edu.cesmac.core.generic.GenericService;
24
import br.edu.cesmac.core.util.DataUtils;
25
import br.edu.cesmac.core.util.VerificadorUtil;
26
import br.edu.cesmac.web.exception.VerificadorLancamentoException;
27
import br.edu.cesmac.web.exception.VerificadorLancamentoException.CommandBean;
28
import br.edu.cesmac.web.generic.AbstractBean;
29
import br.edu.cesmac.web.message.LancadorMensagem;
30
 
31
@Named
32
@Scope("view")
33
public class PendenciaBean extends AbstractBean<Pendencia> implements Serializable {
34
 
35
        private static final long serialVersionUID = 1L;
36
 
37
        private List<Pendencia> pendencias;
38
        private List<Pendencia> pendenciasUltimasFinalizadas;
39
        private Integer quantidadePendencias;
40
 
41
        private PendenciaService pendenciaService;
42
        private LojaService lojaService;
43
 
44
        private Pendencia pendenciaSelecionado;
45
        private Loja lojaSelecionada;
46
 
47
        private String senhaUsuario;
48
        private UsuarioService usuarioService;
49
        private ContextoSeguranca contextoSeguranca;
50
 
51
        @Inject
52
        public PendenciaBean(PendenciaService pendenciaService, LojaService lojaService, UsuarioService usuarioService, ContextoSeguranca contextoSeguranca) {
53
                this.pendenciaService = pendenciaService;
54
                this.lojaService = lojaService;
55
                this.usuarioService = usuarioService;
56
                this.contextoSeguranca = contextoSeguranca;
57
        }
58
 
59
        @Override
60
        public void preCarregamento() {
61
                entidade = new Pendencia();
62
                entidade.setLoja(getLojaSelecionada());
63
                entidade.setIndicadorFinalizado(false);
64
                parametrosConsulta = new ParametrosConsulta<Pendencia>();
65
                parametrosConsulta.setEntidade(entidade);
66
        }
67
 
68
        @Override
69
        public void limparEntidade() {
70
                setEntidade(new Pendencia());
71
        }
72
 
73
        @Override
74
        public GenericService<Pendencia> getService() {
75
                return pendenciaService;
76
        }
77
 
78
        @Override
79
        public Pendencia getEntidade() {
80
                return entidade;
81
        }
82
 
83
        @Override
84
        public Pendencia getId() {
85
                return getEntidade();
86
        }
87
 
88
        public List<Pendencia> getPendencias() {
89
                if (VerificadorUtil.estaNulo(pendencias)) {
90
                        consultarPendencias();
91
                }
92
                return pendencias;
93
        }
94
        public void setPendencias(List<Pendencia> pendencias) {
95
                this.pendencias = pendencias;
96
        }
97
        public void consultarPendencias() {
98
                List<Perfil> perfis = new ArrayList<Perfil>();
99
                Boolean perfilAdministrador = false;
100
                Usuario solicitante = contextoSeguranca.obterUsuario();
101
                for (UsuarioPerfil usuarioPerfil : solicitante.getPerfis()) {
102
                        if (usuarioPerfil.getPerfil().getCodigo().equals(ConstantesSEC.PERFIL_ADMINISTRADOR_1)) {
103
                                perfilAdministrador = true;
104
                        }
105
                        if (!perfilAdministrador) {
106
                                perfis.add(usuarioPerfil.getPerfil());
107
                        }
108
                }
109
                parametrosConsulta.getEntidade().setPerfisConsulta(perfis);
110
                parametrosConsulta.getEntidade().setUsuario(solicitante);
111
 
112
                setPendencias(pendenciaService.consultarPassandoEntidade(parametrosConsulta.getEntidade(), 0, pendenciaService.obterQuantidadeDeRegistrosPassandoEntidade(parametrosConsulta.getEntidade())));
113
                Pendencia pendenciaFinalizada = parametrosConsulta.getEntidade();
114
                pendenciaFinalizada.setIndicadorFinalizado(true);
115
                pendenciaFinalizada.setUsuario(solicitante);
116
                setPendenciasUltimasFinalizadas(pendenciaService.consultarPassandoEntidade(pendenciaFinalizada, 0, 10));
117
        }
118
 
119
        public List<Pendencia> getPendenciasUltimasFinalizadas() {
120
                return pendenciasUltimasFinalizadas;
121
        }
122
        public void setPendenciasUltimasFinalizadas(List<Pendencia> pendenciasUltimasFinalizadas) {
123
                this.pendenciasUltimasFinalizadas = pendenciasUltimasFinalizadas;
124
        }
125
 
126
        public Pendencia getPendenciaSelecionado() {
127
                return pendenciaSelecionado;
128
        }
129
        public void setPendenciaSelecionado(Pendencia pendenciaSelecionado) {
130
                this.pendenciaSelecionado = pendenciaSelecionado;
131
        }
132
 
133
        public Loja getLojaSelecionada() {
134
                if (VerificadorUtil.estaNulo(lojaSelecionada)) {
135
                        if (VerificadorUtil.naoEstaNulo(getParametro("sequencialLoja"))) {
136
                                Loja loja = new Loja();
137
                                loja.setSequencial(new Long(getParametro("sequencialLoja").toString()));
138
                                lojaSelecionada = lojaService.consultarPorId(loja);
139
                        }
140
                }
141
                return lojaSelecionada;
142
        }
143
        public void setLojaSelecionada(Loja lojaSelecionada) {
144
                this.lojaSelecionada = lojaSelecionada;
145
        }
146
 
147
        public Integer quantidadePendenciasNaoFinalizadas(Loja loja) {
148
                return pendenciaService.quantidadePendenciasNaoFinalizadas(loja);
149
        }
150
 
151
        public String getSenhaUsuario() {
152
                return senhaUsuario;
153
        }
154
        public void setSenhaUsuario(String senhaUsuario) {
155
                this.senhaUsuario = senhaUsuario;
156
        }
157
 
158
        @Override
159
        public void cadastrar() {
160
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
161
                        public void execute() {
162
                                if (VerificadorUtil.naoEstaNulo(getLojaSelecionada())) {
163
                                        getEntidade().setLoja(getLojaSelecionada());
164
                                }
165
                                Usuario usuario = verificarSenhaUsuario();
166
                                getEntidade().setUsuario(usuario);
167
                                setSenhaUsuario("");
168
                        }
169
                });
170
                super.cadastrar();
171
                consultarPendencias();
172
        }
173
 
174
        private Usuario verificarSenhaUsuario() {
175
                return usuarioService.consultarUsuarioPorSenha(getSenhaUsuario());
176
        }
177
 
178
        @Override
179
        public void alterar() {
180
                super.alterar();
181
                consultarPendencias();
182
        }
183
 
184
        public void finalizar(final Pendencia pendencia) {
185
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
186
                        public void execute() {
187
                                pendencia.setDataFinalizado(DataUtils.getDataAtual());
188
                                getService().alterar(pendencia);
189
                                consultarPendencias();
190
                                LancadorMensagem.lancarSucesso("Pendência finalizada com sucesso!");
191
                        }
192
                });
193
        }
194
 
195
        public void aguardar(final Pendencia pendencia) {
196
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
197
                        public void execute() {
198
                                pendencia.setIndicadorFinalizado(false);
199
                                getService().alterar(pendencia);
200
                                consultarPendencias();
201
                                LancadorMensagem.lancarSucesso("Pendência ativa novamente!");
202
                        }
203
                });
204
        }
205
 
206
        public void excluir(final Pendencia pendencia) {
207
                new VerificadorLancamentoException().tratarIhRelancarExcecaoSemLimparEntidade(new CommandBean() {
208
                        public void execute() {
209
                                getService().excluir(pendencia);
210
                                consultarPendencias();
211
                                LancadorMensagem.lancarSucesso("Pendência excluída com sucesso!");
212
                        }
213
                });
214
        }
215
 
216
        public Integer getQuantidadePendencias() {
217
                if (VerificadorUtil.estaNulo(quantidadePendencias)) {
218
                        List<Perfil> perfis = new ArrayList<Perfil>();
219
                        Usuario solicitante = contextoSeguranca.obterUsuario();
220
                        if (VerificadorUtil.naoEstaNulo(solicitante)) {
221
                                for (UsuarioPerfil usuarioPerfil : solicitante.getPerfis()) {
222
                                        perfis.add(usuarioPerfil.getPerfil());
223
                                }
224
                        }
225
                        parametrosConsulta.getEntidade().setPerfisConsulta(perfis);
226
                        setQuantidadePendencias(pendenciaService.obterQuantidadeDeRegistrosPassandoEntidade(parametrosConsulta.getEntidade()));
227
                }
228
                return quantidadePendencias;
229
        }
230
        public void setQuantidadePendencias(Integer quantidadePendencias) {
231
                this.quantidadePendencias = quantidadePendencias;
232
        }
233
 
234
}