Commit 75652ff0a098ad2a8d42293c942bfd543a290c2a
1 parent
af0805c7
Exists in
master
Teste #3330: Campos Obrigatórios
git-svn-id: https://svn.bento.ifrs.edu.br/default/ASES/e-selo@9845 c2178572-b5ca-4887-91d2-9e3a90c7d55b
Showing
12 changed files
with
1350 additions
and
1350 deletions
Show diff stats
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/AvaliacaoController.java
... | ... | @@ -132,7 +132,7 @@ public class AvaliacaoController { |
132 | 132 | |
133 | 133 | ParametroCalculo parametroCalculo = paramDao |
134 | 134 | .getLastParametrosCalculo(); |
135 | - | |
135 | + | |
136 | 136 | salvarAvaliacao(relatorioAvaliacao, parametroCalculo); |
137 | 137 | |
138 | 138 | // obter as diretrizes e níveis de conformidade |
... | ... | @@ -159,7 +159,7 @@ public class AvaliacaoController { |
159 | 159 | } |
160 | 160 | somaPesosRecomendacoes = somaPesosRecomendacoes |
161 | 161 | + recomendacao.getPeso(); |
162 | - | |
162 | + | |
163 | 163 | if(somatorioPesosCriterios>0){ |
164 | 164 | somatorioNotaRecomendacoes = ((somatorioNotaTeste / somatorioPesosCriterios) * recomendacao.getPeso()) + somatorioNotaRecomendacoes; |
165 | 165 | } |
... | ... | @@ -191,7 +191,7 @@ public class AvaliacaoController { |
191 | 191 | /** |
192 | 192 | * Função REST que executa uma avaliação e devolve seu resultado no formato |
193 | 193 | * JSON |
194 | - * | |
194 | + * | |
195 | 195 | * @param relatorioAvaliacao |
196 | 196 | */ |
197 | 197 | @Post("/calcular-nota") |
... | ... | @@ -202,8 +202,8 @@ public class AvaliacaoController { |
202 | 202 | String fullContextPath = request.getScheme() + "://" |
203 | 203 | + request.getServerName() + ":" + request.getServerPort() |
204 | 204 | + request.getContextPath(); |
205 | - | |
206 | - if (relatorioAvaliacao.getRecomendacoes()!=null | |
205 | + | |
206 | + if (relatorioAvaliacao.getRecomendacoes()!=null | |
207 | 207 | && relatorioAvaliacao.getRecomendacoes().size() > 0 |
208 | 208 | && relatorioAvaliacao.getDate() != null |
209 | 209 | && relatorioAvaliacao.getUrl() != null) { |
... | ... | @@ -247,21 +247,21 @@ public class AvaliacaoController { |
247 | 247 | result.use(Results.json()).withoutRoot().from(resultadoAvaliacao) |
248 | 248 | .serialize(); |
249 | 249 | } |
250 | - | |
250 | + | |
251 | 251 | private Avaliacao salvarAvaliacao(RelatorioAvaliacao relatorioAvaliacao, ParametroCalculo parametroCalculo){ |
252 | - | |
252 | + | |
253 | 253 | try { |
254 | 254 | relatorioAvaliacao.setUrl(URLNormalizer.normalize(relatorioAvaliacao.getUrl())); |
255 | 255 | } catch (MalformedURLException e) { |
256 | 256 | System.out.println("Erro ao tentar normalizar a URL do Relatorio de Avaliacao"); |
257 | 257 | e.printStackTrace(); |
258 | 258 | } |
259 | - | |
259 | + | |
260 | 260 | Avaliacao avaliacao = new Avaliacao(); |
261 | 261 | avaliacao.setDataAvaliacao(relatorioAvaliacao.getDate()); |
262 | 262 | avaliacao.setParametroCalculo(parametroCalculo); |
263 | 263 | avaliacao.setQtdeLinhas(relatorioAvaliacao.getQtdeLinhas()); |
264 | - | |
264 | + | |
265 | 265 | Url url = daoUrl.getStringUrl(relatorioAvaliacao.getUrl()); |
266 | 266 | |
267 | 267 | if (url == null) { |
... | ... | @@ -269,7 +269,7 @@ public class AvaliacaoController { |
269 | 269 | url.setUrl(relatorioAvaliacao.getUrl()); |
270 | 270 | daoUrl.save(url); |
271 | 271 | } |
272 | - | |
272 | + | |
273 | 273 | avaliacao.setUrl(url); |
274 | 274 | avaliacao = new LeitorXML().lerResultadosXML(relatorioAvaliacao, avaliacao); |
275 | 275 | dao.save(avaliacao); | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java
1 | -package br.com.eselo.controller; | |
2 | - | |
3 | -import java.util.List; | |
4 | - | |
5 | -import br.com.caelum.vraptor.Get; | |
6 | -import br.com.caelum.vraptor.Path; | |
7 | -import br.com.caelum.vraptor.Post; | |
8 | -import br.com.caelum.vraptor.Put; | |
9 | -import br.com.caelum.vraptor.Resource; | |
10 | -import br.com.caelum.vraptor.Result; | |
11 | -import br.com.caelum.vraptor.Validator; | |
12 | -import br.com.caelum.vraptor.validator.ValidationMessage; | |
13 | -import br.com.eselo.annotations.Restrito; | |
14 | -import br.com.eselo.component.CopiadorParametroCalculo; | |
15 | -import br.com.eselo.component.UsuarioWeb; | |
16 | -import br.com.eselo.dao.CriterioDAO; | |
17 | -import br.com.eselo.dao.ParametroCalculoDAO; | |
18 | -import br.com.eselo.dao.RecomendacaoDAO; | |
19 | -import br.com.eselo.dao.TipoTesteDAO; | |
20 | -import br.com.eselo.model.Criterio; | |
21 | -import br.com.eselo.model.ParametroCalculo; | |
22 | -import br.com.eselo.model.Recomendacao; | |
23 | -import br.com.eselo.model.TipoTeste; | |
24 | - | |
25 | -@Resource | |
26 | -public class CriteriosController { | |
27 | - | |
28 | - private final CriterioDAO dao; | |
29 | - private final ParametroCalculoDAO paDAO; | |
30 | - private final Result result; | |
31 | - private final Validator validator; | |
32 | - private final UsuarioWeb usuarioWeb; | |
33 | - | |
34 | - public CriteriosController(CriterioDAO _dao, ParametroCalculoDAO _paDAO, | |
35 | - Result _result, Validator _validator, UsuarioWeb _usuarioWeb) { | |
36 | - this.dao = _dao; | |
37 | - this.paDAO = _paDAO; | |
38 | - this.result = _result; | |
39 | - this.validator = _validator; | |
40 | - this.usuarioWeb = _usuarioWeb; | |
41 | - } | |
42 | - | |
43 | - @Get("/criterio/novo/{id}") | |
44 | - @Restrito(descricao = "CRITERIO_ADICIONAR") | |
45 | - public Criterio novo(Long id) { | |
46 | - Recomendacao recomendacao = new RecomendacaoDAO(dao.getSession()) | |
47 | - .load(id); | |
48 | - Criterio criterio = new Criterio(); | |
49 | - criterio.setRecomendacao(recomendacao); | |
50 | - | |
51 | - result.include("parametroCalculoId", criterio.getRecomendacao() | |
52 | - .getParametroCalculo().getId()); | |
53 | - result.include("parametroCalculo", criterio.getRecomendacao() | |
54 | - .getParametroCalculo()); | |
55 | - result.include("recomendacao", criterio.getRecomendacao()); | |
56 | - result.include("recomendacaoId", criterio.getRecomendacao().getId()); | |
57 | - | |
58 | - populateSelectLists(); | |
59 | - | |
60 | - return criterio; | |
61 | - } | |
62 | - | |
63 | - @Get("/criterios/form/{id}") | |
64 | - @Restrito(descricao = "CRITERIO_ATUALIZAR") | |
65 | - public Criterio form(Long id) { | |
66 | - Criterio criterio = dao.load(id); | |
67 | - result.include("recomendacaoId", criterio.getRecomendacao().getId()); | |
68 | - result.include("parametroCalculo", criterio.getRecomendacao() | |
69 | - .getParametroCalculo()); | |
70 | - result.include("tipoTeste", criterio.getTipoTeste()); | |
71 | - populateSelectLists(); | |
72 | - | |
73 | - return criterio; | |
74 | - } | |
75 | - | |
76 | - @Post("/criterio") | |
77 | - @Restrito(descricao = "CRITERIO_ADICIONAR") | |
78 | - public void adicionar(Criterio criterio) { | |
79 | - | |
80 | - criterio.setRecomendacao(new RecomendacaoDAO(dao.getSession()) | |
81 | - .load(criterio.getRecomendacao().getId())); | |
82 | - | |
83 | - validarCriterio(criterio); | |
84 | - | |
85 | - result.include("recomendacaoId", criterio.getRecomendacao().getId()); | |
86 | - result.include("parametroCalculo", criterio.getRecomendacao() | |
87 | - .getParametroCalculo()); | |
88 | - result.include("tipoTeste", criterio.getTipoTeste()); | |
89 | - populateSelectLists(); | |
90 | - | |
91 | - validator.onErrorUsePageOf(CriteriosController.class).novo( | |
92 | - criterio.getRecomendacao().getId()); | |
93 | - | |
94 | - this.criarNovoParametroAvaliacao(criterio, | |
95 | - ParametroCalculoController.MODO_ADD); | |
96 | - | |
97 | - result.include("mensagem", "Critério salvo com sucesso."); | |
98 | - result.redirectTo(RecomendacaoController.class).form( | |
99 | - criterio.getRecomendacao().getId()); | |
100 | - } | |
101 | - | |
102 | - @Put("/criterio") | |
103 | - @Restrito(descricao = "CRITERIO_ATUALIZAR") | |
104 | - public void atualizar(Criterio criterio) { | |
105 | - criterio.setRecomendacao(new RecomendacaoDAO(dao.getSession()) | |
106 | - .load(criterio.getRecomendacao().getId())); | |
107 | - | |
108 | - @SuppressWarnings("unchecked") | |
109 | - List<TipoTeste> tipoTestes = (List<TipoTeste>) dao.getAllTipoTeste(); | |
110 | - Criterio criterioCadastrado = dao.load(criterio.getId()); | |
111 | - | |
112 | - | |
113 | - result.include("recomendacaoId", criterio.getRecomendacao().getId()); | |
114 | - result.include("parametroCalculo", criterio.getRecomendacao() | |
115 | - .getParametroCalculo()); | |
116 | - result.include("tipoTeste", criterio.getTipoTeste()); | |
117 | - result.include("tipoTesteList", tipoTestes); | |
118 | - | |
119 | - validarCriterio(criterio); | |
120 | - | |
121 | - validator.onErrorUsePageOf(CriteriosController.class).form( | |
122 | - criterioCadastrado.getId()); | |
123 | - | |
124 | - if(validarAtualizacaoCriterio(criterio)){ | |
125 | - | |
126 | - criarNovoParametroAvaliacao(criterio,ParametroCalculoController.MODO_EDIT); | |
127 | - result.include("mensagem", "Critério salvo com sucesso."); | |
128 | - }else{ | |
129 | - criterioCadastrado.setDescricao(criterio.getDescricao()); | |
130 | - dao.update(criterioCadastrado); | |
131 | - result.include("mensagem", "Nenhum campo foi alterado."); | |
132 | - } | |
133 | - | |
134 | - result.redirectTo(CriteriosController.class).form( | |
135 | - criterio.getId()); | |
136 | - } | |
137 | - | |
138 | - @Path("/criterio/delete/{id}") | |
139 | - @Restrito(descricao = "CRITERIO_EXCLUIR") | |
140 | - public void excluir(Long id) { | |
141 | - Criterio criteiro = dao.load(id); | |
142 | - | |
143 | - criarNovoParametroAvaliacao(criteiro, | |
144 | - ParametroCalculoController.MODO_DELETE); | |
145 | - | |
146 | - result.include("mensagem", "Criteiro excluída com sucesso."); | |
147 | - result.redirectTo(ParametroCalculoController.class).index(1); | |
148 | - } | |
149 | - | |
150 | - private void criarNovoParametroAvaliacao(Criterio criterio, int tipo) { | |
151 | - ParametroCalculo ultimoParametroAvaliacao = paDAO | |
152 | - .getLastParametrosCalculo(); | |
153 | - boolean ok = false; | |
154 | - | |
155 | - switch (tipo) { | |
156 | - case ParametroCalculoController.MODO_ADD: | |
157 | - for (Recomendacao recomendacao : ultimoParametroAvaliacao | |
158 | - .getRecomendacoes()) { | |
159 | - if (recomendacao.getId().equals( | |
160 | - criterio.getRecomendacao().getId())) { | |
161 | - recomendacao.addCriterio(criterio); | |
162 | - ok = true; | |
163 | - break; | |
164 | - } | |
165 | - } | |
166 | - | |
167 | - break; | |
168 | - | |
169 | - case ParametroCalculoController.MODO_EDIT: | |
170 | - for (Recomendacao recomendacao : ultimoParametroAvaliacao | |
171 | - .getRecomendacoes()) { | |
172 | - if (recomendacao.getId().equals( | |
173 | - criterio.getRecomendacao().getId())) { | |
174 | - for (Criterio c : recomendacao.getCriterios()) { | |
175 | - if (criterio.getId().equals(c.getId())) { | |
176 | - c.setDescricao(criterio.getDescricao()); | |
177 | - c.setFaixas(criterio.getFaixas()); | |
178 | - c.setId(criterio.getId()); | |
179 | - c.setNumeroCriterio(criterio.getNumeroCriterio()); | |
180 | - c.setPeso(criterio.getPeso()); | |
181 | - c.setRecomendacao(criterio.getRecomendacao()); | |
182 | - c.setTipoTeste(criterio.getTipoTeste()); | |
183 | - | |
184 | - ok = true; | |
185 | - break; | |
186 | - } | |
187 | - } | |
188 | - } | |
189 | - } | |
190 | - | |
191 | - break; | |
192 | - | |
193 | - case ParametroCalculoController.MODO_DELETE: | |
194 | - for (Recomendacao recomendacao : ultimoParametroAvaliacao | |
195 | - .getRecomendacoes()) { | |
196 | - if (recomendacao.getId().equals( | |
197 | - criterio.getRecomendacao().getId())) { | |
198 | - recomendacao.removeCriterio(criterio); | |
199 | - ok = true; | |
200 | - break; | |
201 | - } | |
202 | - } | |
203 | - break; | |
204 | - } | |
205 | - | |
206 | - if (ok) { | |
207 | - new CopiadorParametroCalculo().criarNovoParametroCalculo( | |
208 | - ultimoParametroAvaliacao, usuarioWeb, dao.getSession()); | |
209 | - } | |
210 | - } | |
211 | - | |
212 | - private void validarCriterio(Criterio criterio) { | |
213 | - | |
214 | - if (criterio.getNumeroCriterio() == null) { | |
215 | - validator.add(new ValidationMessage( | |
216 | - "É obrigatório informar o número da recomendação.", | |
217 | - "criteiro.numeroCriterio")); | |
218 | - } else if (hasNumeroCriterioRecomendacaoAtual(criterio)) { | |
219 | - validator.add(new ValidationMessage( | |
220 | - "Já existe um critério com esse número. Informe outro número para o critério.", | |
221 | - "criteiro.numeroCriteiro")); | |
222 | - } else if (criterio.getPeso() == null) { | |
223 | - validator.add(new ValidationMessage( | |
224 | - "É obrigatório informar o peso do criteiro.", | |
225 | - "criteiro.peso")); | |
226 | - } else if (criterio.getPeso() <= 0) { | |
227 | - validator | |
228 | - .add(new ValidationMessage( | |
229 | - "O peso do criteiro deve ser maior que 0.", | |
230 | - "criteiro.peso")); | |
231 | - } else if (criterio.getDescricao() == null) { | |
232 | - validator.add(new ValidationMessage( | |
233 | - "É obrigatório informar a descrição do criteiro.", | |
234 | - "criteiro.descricao")); | |
235 | - } else if (criterio.getTipoTeste().getId() == null) { | |
236 | - validator.add(new ValidationMessage( | |
237 | - "É obrigatório informar o Tipo de teste.", | |
238 | - "criterio.tipoTeste")); | |
239 | - } else { | |
240 | - criterio.setTipoTeste(new TipoTesteDAO(dao.getSession()) | |
241 | - .load(criterio.getTipoTeste().getId())); | |
242 | - } | |
243 | - } | |
244 | - | |
245 | - private boolean validarAtualizacaoCriterio(Criterio criterio) { | |
246 | - | |
247 | - boolean alteracao = false; | |
248 | - | |
249 | - Criterio criterioCadastrado = dao.load(criterio.getId()); | |
250 | - | |
251 | - if (criterio.getNumeroCriterio().compareTo(criterioCadastrado.getNumeroCriterio())!=0) { | |
252 | - alteracao = true; | |
253 | - } else if (criterio.getPeso().compareTo(criterioCadastrado.getPeso()) !=0) { | |
254 | - alteracao = true; | |
255 | - } else if (criterio.getDescricao().compareToIgnoreCase(criterioCadastrado.getDescricao()) != 0) { | |
256 | - alteracao = true; | |
257 | - } else if (criterio.getTipoTeste().getId().compareTo(criterioCadastrado.getTipoTeste().getId())!=0) { | |
258 | - alteracao = true; | |
259 | - } | |
260 | - | |
261 | - return alteracao; | |
262 | - } | |
263 | - | |
264 | - /** | |
265 | - * Recebe um critério antes de ser cadastrad0 e verifica se ja existe um | |
266 | - * criterio ativo com o mesmo numero. | |
267 | - * | |
268 | - * @param criterio | |
269 | - * @return boolean | |
270 | - */ | |
271 | - private boolean hasNumeroCriterioRecomendacaoAtual(Criterio criterio) { | |
272 | - boolean retorno = false; | |
273 | - | |
274 | - if (criterio.getDescricao() != null | |
275 | - && criterio.getNumeroCriterio() != null | |
276 | - && criterio.getPeso() != null | |
277 | - && criterio.getRecomendacao() != null | |
278 | - && criterio.getTipoTeste().getId() != null) { | |
279 | - Recomendacao recomendacao = criterio.getRecomendacao(); | |
280 | - | |
281 | - List<Criterio> listaCadastrada = dao.listAllAtivas(recomendacao); | |
282 | - | |
283 | - for (Criterio criterioCadastrado : listaCadastrada) { | |
284 | - if (criterioCadastrado.getNumeroCriterio().longValue() == criterio | |
285 | - .getNumeroCriterio().longValue()) { | |
286 | - if (criterio.getId() != null) { | |
287 | - if (criterioCadastrado.getId().longValue() != criterio | |
288 | - .getId().longValue()) { | |
289 | - return true; | |
290 | - } | |
291 | - } else { | |
292 | - return true; | |
293 | - } | |
294 | - } | |
295 | - } | |
296 | - | |
297 | - } | |
298 | - | |
299 | - return retorno; | |
300 | - } | |
301 | - | |
302 | - private void populateSelectLists() { | |
303 | - result.include("tipoTesteList", dao.getAllTipoTeste()); | |
304 | - } | |
305 | - | |
306 | -} | |
1 | +package br.com.eselo.controller; | |
2 | + | |
3 | +import java.util.List; | |
4 | + | |
5 | +import br.com.caelum.vraptor.Get; | |
6 | +import br.com.caelum.vraptor.Path; | |
7 | +import br.com.caelum.vraptor.Post; | |
8 | +import br.com.caelum.vraptor.Put; | |
9 | +import br.com.caelum.vraptor.Resource; | |
10 | +import br.com.caelum.vraptor.Result; | |
11 | +import br.com.caelum.vraptor.Validator; | |
12 | +import br.com.caelum.vraptor.validator.ValidationMessage; | |
13 | +import br.com.eselo.annotations.Restrito; | |
14 | +import br.com.eselo.component.CopiadorParametroCalculo; | |
15 | +import br.com.eselo.component.UsuarioWeb; | |
16 | +import br.com.eselo.dao.CriterioDAO; | |
17 | +import br.com.eselo.dao.ParametroCalculoDAO; | |
18 | +import br.com.eselo.dao.RecomendacaoDAO; | |
19 | +import br.com.eselo.dao.TipoTesteDAO; | |
20 | +import br.com.eselo.model.Criterio; | |
21 | +import br.com.eselo.model.ParametroCalculo; | |
22 | +import br.com.eselo.model.Recomendacao; | |
23 | +import br.com.eselo.model.TipoTeste; | |
24 | + | |
25 | +@Resource | |
26 | +public class CriteriosController { | |
27 | + | |
28 | + private final CriterioDAO dao; | |
29 | + private final ParametroCalculoDAO paDAO; | |
30 | + private final Result result; | |
31 | + private final Validator validator; | |
32 | + private final UsuarioWeb usuarioWeb; | |
33 | + | |
34 | + public CriteriosController(CriterioDAO _dao, ParametroCalculoDAO _paDAO, | |
35 | + Result _result, Validator _validator, UsuarioWeb _usuarioWeb) { | |
36 | + this.dao = _dao; | |
37 | + this.paDAO = _paDAO; | |
38 | + this.result = _result; | |
39 | + this.validator = _validator; | |
40 | + this.usuarioWeb = _usuarioWeb; | |
41 | + } | |
42 | + | |
43 | + @Get("/criterio/novo/{id}") | |
44 | + @Restrito(descricao = "CRITERIO_ADICIONAR") | |
45 | + public Criterio novo(Long id) { | |
46 | + Recomendacao recomendacao = new RecomendacaoDAO(dao.getSession()) | |
47 | + .load(id); | |
48 | + Criterio criterio = new Criterio(); | |
49 | + criterio.setRecomendacao(recomendacao); | |
50 | + | |
51 | + result.include("parametroCalculoId", criterio.getRecomendacao() | |
52 | + .getParametroCalculo().getId()); | |
53 | + result.include("parametroCalculo", criterio.getRecomendacao() | |
54 | + .getParametroCalculo()); | |
55 | + result.include("recomendacao", criterio.getRecomendacao()); | |
56 | + result.include("recomendacaoId", criterio.getRecomendacao().getId()); | |
57 | + | |
58 | + populateSelectLists(); | |
59 | + | |
60 | + return criterio; | |
61 | + } | |
62 | + | |
63 | + @Get("/criterios/form/{id}") | |
64 | + @Restrito(descricao = "CRITERIO_ATUALIZAR") | |
65 | + public Criterio form(Long id) { | |
66 | + Criterio criterio = dao.load(id); | |
67 | + result.include("recomendacaoId", criterio.getRecomendacao().getId()); | |
68 | + result.include("parametroCalculo", criterio.getRecomendacao() | |
69 | + .getParametroCalculo()); | |
70 | + result.include("tipoTeste", criterio.getTipoTeste()); | |
71 | + populateSelectLists(); | |
72 | + | |
73 | + return criterio; | |
74 | + } | |
75 | + | |
76 | + @Post("/criterio") | |
77 | + @Restrito(descricao = "CRITERIO_ADICIONAR") | |
78 | + public void adicionar(Criterio criterio) { | |
79 | + | |
80 | + criterio.setRecomendacao(new RecomendacaoDAO(dao.getSession()) | |
81 | + .load(criterio.getRecomendacao().getId())); | |
82 | + | |
83 | + validarCriterio(criterio); | |
84 | + | |
85 | + result.include("recomendacaoId", criterio.getRecomendacao().getId()); | |
86 | + result.include("parametroCalculo", criterio.getRecomendacao() | |
87 | + .getParametroCalculo()); | |
88 | + result.include("tipoTeste", criterio.getTipoTeste()); | |
89 | + populateSelectLists(); | |
90 | + | |
91 | + validator.onErrorUsePageOf(CriteriosController.class).novo( | |
92 | + criterio.getRecomendacao().getId()); | |
93 | + | |
94 | + this.criarNovoParametroAvaliacao(criterio, | |
95 | + ParametroCalculoController.MODO_ADD); | |
96 | + | |
97 | + result.include("mensagem", "Critério salvo com sucesso."); | |
98 | + result.redirectTo(RecomendacaoController.class).form( | |
99 | + criterio.getRecomendacao().getId()); | |
100 | + } | |
101 | + | |
102 | + @Put("/criterio") | |
103 | + @Restrito(descricao = "CRITERIO_ATUALIZAR") | |
104 | + public void atualizar(Criterio criterio) { | |
105 | + criterio.setRecomendacao(new RecomendacaoDAO(dao.getSession()) | |
106 | + .load(criterio.getRecomendacao().getId())); | |
107 | + | |
108 | + @SuppressWarnings("unchecked") | |
109 | + List<TipoTeste> tipoTestes = (List<TipoTeste>) dao.getAllTipoTeste(); | |
110 | + Criterio criterioCadastrado = dao.load(criterio.getId()); | |
111 | + | |
112 | + | |
113 | + result.include("recomendacaoId", criterio.getRecomendacao().getId()); | |
114 | + result.include("parametroCalculo", criterio.getRecomendacao() | |
115 | + .getParametroCalculo()); | |
116 | + result.include("tipoTeste", criterio.getTipoTeste()); | |
117 | + result.include("tipoTesteList", tipoTestes); | |
118 | + | |
119 | + validarCriterio(criterio); | |
120 | + | |
121 | + validator.onErrorUsePageOf(CriteriosController.class).form( | |
122 | + criterioCadastrado.getId()); | |
123 | + | |
124 | + if(validarAtualizacaoCriterio(criterio)){ | |
125 | + | |
126 | + criarNovoParametroAvaliacao(criterio,ParametroCalculoController.MODO_EDIT); | |
127 | + result.include("mensagem", "Critério salvo com sucesso."); | |
128 | + }else{ | |
129 | + criterioCadastrado.setDescricao(criterio.getDescricao()); | |
130 | + dao.update(criterioCadastrado); | |
131 | + result.include("mensagem", "Nenhum campo foi alterado."); | |
132 | + } | |
133 | + | |
134 | + result.redirectTo(CriteriosController.class).form( | |
135 | + criterio.getId()); | |
136 | + } | |
137 | + | |
138 | + @Path("/criterio/delete/{id}") | |
139 | + @Restrito(descricao = "CRITERIO_EXCLUIR") | |
140 | + public void excluir(Long id) { | |
141 | + Criterio criteiro = dao.load(id); | |
142 | + | |
143 | + criarNovoParametroAvaliacao(criteiro, | |
144 | + ParametroCalculoController.MODO_DELETE); | |
145 | + | |
146 | + result.include("mensagem", "Criteiro excluída com sucesso."); | |
147 | + result.redirectTo(ParametroCalculoController.class).index(1); | |
148 | + } | |
149 | + | |
150 | + private void criarNovoParametroAvaliacao(Criterio criterio, int tipo) { | |
151 | + ParametroCalculo ultimoParametroAvaliacao = paDAO | |
152 | + .getLastParametrosCalculo(); | |
153 | + boolean ok = false; | |
154 | + | |
155 | + switch (tipo) { | |
156 | + case ParametroCalculoController.MODO_ADD: | |
157 | + for (Recomendacao recomendacao : ultimoParametroAvaliacao | |
158 | + .getRecomendacoes()) { | |
159 | + if (recomendacao.getId().equals( | |
160 | + criterio.getRecomendacao().getId())) { | |
161 | + recomendacao.addCriterio(criterio); | |
162 | + ok = true; | |
163 | + break; | |
164 | + } | |
165 | + } | |
166 | + | |
167 | + break; | |
168 | + | |
169 | + case ParametroCalculoController.MODO_EDIT: | |
170 | + for (Recomendacao recomendacao : ultimoParametroAvaliacao | |
171 | + .getRecomendacoes()) { | |
172 | + if (recomendacao.getId().equals( | |
173 | + criterio.getRecomendacao().getId())) { | |
174 | + for (Criterio c : recomendacao.getCriterios()) { | |
175 | + if (criterio.getId().equals(c.getId())) { | |
176 | + c.setDescricao(criterio.getDescricao()); | |
177 | + c.setFaixas(criterio.getFaixas()); | |
178 | + c.setId(criterio.getId()); | |
179 | + c.setNumeroCriterio(criterio.getNumeroCriterio()); | |
180 | + c.setPeso(criterio.getPeso()); | |
181 | + c.setRecomendacao(criterio.getRecomendacao()); | |
182 | + c.setTipoTeste(criterio.getTipoTeste()); | |
183 | + | |
184 | + ok = true; | |
185 | + break; | |
186 | + } | |
187 | + } | |
188 | + } | |
189 | + } | |
190 | + | |
191 | + break; | |
192 | + | |
193 | + case ParametroCalculoController.MODO_DELETE: | |
194 | + for (Recomendacao recomendacao : ultimoParametroAvaliacao | |
195 | + .getRecomendacoes()) { | |
196 | + if (recomendacao.getId().equals( | |
197 | + criterio.getRecomendacao().getId())) { | |
198 | + recomendacao.removeCriterio(criterio); | |
199 | + ok = true; | |
200 | + break; | |
201 | + } | |
202 | + } | |
203 | + break; | |
204 | + } | |
205 | + | |
206 | + if (ok) { | |
207 | + new CopiadorParametroCalculo().criarNovoParametroCalculo( | |
208 | + ultimoParametroAvaliacao, usuarioWeb, dao.getSession()); | |
209 | + } | |
210 | + } | |
211 | + | |
212 | + private void validarCriterio(Criterio criterio) { | |
213 | + | |
214 | + if (criterio.getNumeroCriterio() == null) { | |
215 | + validator.add(new ValidationMessage( | |
216 | + "É obrigatório informar o número da recomendação.", | |
217 | + "criteiro.numeroCriterio")); | |
218 | + } else if (hasNumeroCriterioRecomendacaoAtual(criterio)) { | |
219 | + validator.add(new ValidationMessage( | |
220 | + "Já existe um critério com esse número. Informe outro número para o critério.", | |
221 | + "criteiro.numeroCriteiro")); | |
222 | + } else if (criterio.getPeso() == null) { | |
223 | + validator.add(new ValidationMessage( | |
224 | + "É obrigatório informar o peso do criteiro.", | |
225 | + "criteiro.peso")); | |
226 | + } else if (criterio.getPeso() <= 0) { | |
227 | + validator | |
228 | + .add(new ValidationMessage( | |
229 | + "O peso do criteiro deve ser maior que 0.", | |
230 | + "criteiro.peso")); | |
231 | + } else if (criterio.getDescricao() == null) { | |
232 | + validator.add(new ValidationMessage( | |
233 | + "É obrigatório informar a descrição do criteiro.", | |
234 | + "criteiro.descricao")); | |
235 | + } else if (criterio.getTipoTeste().getId() == null) { | |
236 | + validator.add(new ValidationMessage( | |
237 | + "É obrigatório informar o Tipo de teste.", | |
238 | + "criterio.tipoTeste")); | |
239 | + } else { | |
240 | + criterio.setTipoTeste(new TipoTesteDAO(dao.getSession()) | |
241 | + .load(criterio.getTipoTeste().getId())); | |
242 | + } | |
243 | + } | |
244 | + | |
245 | + private boolean validarAtualizacaoCriterio(Criterio criterio) { | |
246 | + | |
247 | + boolean alteracao = false; | |
248 | + | |
249 | + Criterio criterioCadastrado = dao.load(criterio.getId()); | |
250 | + | |
251 | + if (criterio.getNumeroCriterio().compareTo(criterioCadastrado.getNumeroCriterio())!=0) { | |
252 | + alteracao = true; | |
253 | + } else if (criterio.getPeso().compareTo(criterioCadastrado.getPeso()) !=0) { | |
254 | + alteracao = true; | |
255 | + } else if (criterio.getDescricao().compareToIgnoreCase(criterioCadastrado.getDescricao()) != 0) { | |
256 | + alteracao = true; | |
257 | + } else if (criterio.getTipoTeste().getId().compareTo(criterioCadastrado.getTipoTeste().getId())!=0) { | |
258 | + alteracao = true; | |
259 | + } | |
260 | + | |
261 | + return alteracao; | |
262 | + } | |
263 | + | |
264 | + /** | |
265 | + * Recebe um critério antes de ser cadastrad0 e verifica se ja existe um | |
266 | + * criterio ativo com o mesmo numero. | |
267 | + * | |
268 | + * @param criterio | |
269 | + * @return boolean | |
270 | + */ | |
271 | + private boolean hasNumeroCriterioRecomendacaoAtual(Criterio criterio) { | |
272 | + boolean retorno = false; | |
273 | + | |
274 | + if (criterio.getDescricao() != null | |
275 | + && criterio.getNumeroCriterio() != null | |
276 | + && criterio.getPeso() != null | |
277 | + && criterio.getRecomendacao() != null | |
278 | + && criterio.getTipoTeste().getId() != null) { | |
279 | + Recomendacao recomendacao = criterio.getRecomendacao(); | |
280 | + | |
281 | + List<Criterio> listaCadastrada = dao.listAllAtivas(recomendacao); | |
282 | + | |
283 | + for (Criterio criterioCadastrado : listaCadastrada) { | |
284 | + if (criterioCadastrado.getNumeroCriterio().longValue() == criterio | |
285 | + .getNumeroCriterio().longValue()) { | |
286 | + if (criterio.getId() != null) { | |
287 | + if (criterioCadastrado.getId().longValue() != criterio | |
288 | + .getId().longValue()) { | |
289 | + return true; | |
290 | + } | |
291 | + } else { | |
292 | + return true; | |
293 | + } | |
294 | + } | |
295 | + } | |
296 | + | |
297 | + } | |
298 | + | |
299 | + return retorno; | |
300 | + } | |
301 | + | |
302 | + private void populateSelectLists() { | |
303 | + result.include("tipoTesteList", dao.getAllTipoTeste()); | |
304 | + } | |
305 | + | |
306 | +} | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java
1 | -package br.com.eselo.controller; | |
2 | - | |
3 | -import java.util.ArrayList; | |
4 | -import java.util.List; | |
5 | - | |
6 | -import br.com.caelum.vraptor.Get; | |
7 | -import br.com.caelum.vraptor.Path; | |
8 | -import br.com.caelum.vraptor.Post; | |
9 | -import br.com.caelum.vraptor.Put; | |
10 | -import br.com.caelum.vraptor.Resource; | |
11 | -import br.com.caelum.vraptor.Result; | |
12 | -import br.com.caelum.vraptor.Validator; | |
13 | -import br.com.caelum.vraptor.validator.ValidationMessage; | |
14 | -import br.com.eselo.annotations.Restrito; | |
15 | -import br.com.eselo.component.CopiadorParametroCalculo; | |
16 | -import br.com.eselo.component.Messages; | |
17 | -import br.com.eselo.component.UsuarioWeb; | |
18 | -import br.com.eselo.dao.CriterioDAO; | |
19 | -import br.com.eselo.dao.FaixaDAO; | |
20 | -import br.com.eselo.dao.ParametroCalculoDAO; | |
21 | -import br.com.eselo.dao.RecomendacaoDAO; | |
22 | -import br.com.eselo.model.Criterio; | |
23 | -import br.com.eselo.model.Faixa; | |
24 | -import br.com.eselo.model.ParametroCalculo; | |
25 | -import br.com.eselo.model.Recomendacao; | |
26 | - | |
27 | -@Resource | |
28 | -public class FaixaController { | |
29 | - | |
30 | - private final FaixaDAO dao; | |
31 | - private final CriterioDAO daoCriterio; | |
32 | - private final ParametroCalculoDAO paDAO; | |
33 | - private final Result result; | |
34 | - private final Validator validator; | |
35 | - private final UsuarioWeb usuarioWeb; | |
36 | - | |
37 | - public FaixaController(FaixaDAO _dao, | |
38 | - RecomendacaoDAO _daoRecomendacao, CriterioDAO _daoCriterio, ParametroCalculoDAO _daoParametro, | |
39 | - Result _result, Validator _validator, UsuarioWeb _usuarioWeb) { | |
40 | - this.dao = _dao; | |
41 | - this.daoCriterio = _daoCriterio; | |
42 | - this.paDAO = _daoParametro; | |
43 | - this.result = _result; | |
44 | - this.validator = _validator; | |
45 | - this.usuarioWeb = _usuarioWeb; | |
46 | - } | |
47 | - | |
48 | - public List<Faixa> lista(Long idCriterio) { | |
49 | - return this.index(idCriterio, 1); | |
50 | - } | |
51 | - | |
52 | - @Get("/faixas") | |
53 | - @Restrito(descricao = "CONFORMIDADES_LISTA") | |
54 | - public List<Faixa> index(Long idCriterio, int pagina) { | |
55 | - CriterioDAO cDAO = new CriterioDAO(dao.getSession()); | |
56 | - Criterio criterioAtual = cDAO.load(idCriterio); | |
57 | - | |
58 | - // Paginação | |
59 | - // Quantidade de registros por pagina | |
60 | - int exibi = 7; | |
61 | - | |
62 | - // Informa a quantidade de registros | |
63 | - int registros = dao.numLinhas(criterioAtual); | |
64 | - | |
65 | - // Quantidade de paginas na paginação | |
66 | - int totalPag = registros / exibi; | |
67 | - | |
68 | - // Se houver resto na divisao acima acrescenta uma pagina na paginação | |
69 | - if ((registros - (totalPag * exibi)) > 0) | |
70 | - totalPag++; | |
71 | - | |
72 | - // Calculo do registro inicial e final | |
73 | - int regIni = ((exibi * pagina) - exibi); | |
74 | - int regFim = (regIni + exibi); | |
75 | - | |
76 | - if (regFim > registros) { | |
77 | - regFim = registros; | |
78 | - } | |
79 | - | |
80 | - // Fim paginação | |
81 | - List<Faixa> resultado = dao.listAllAtivas(criterioAtual); | |
82 | - List<Faixa> paginacao = new ArrayList<Faixa>(); | |
83 | - | |
84 | - for (int i = regIni; i < regFim; i++) { | |
85 | - paginacao.add(resultado.get(i)); | |
86 | - } | |
87 | - | |
88 | - result.include("paginas", totalPag); | |
89 | - result.include("registros", registros); | |
90 | - result.include("regInic", ++regIni); | |
91 | - result.include("regFim", regFim); | |
92 | - result.include("controle", "diretriz"); | |
93 | - result.include("parametroAvaliacao", criterioAtual.getRecomendacao().getParametroCalculo()); | |
94 | - | |
95 | - return paginacao; | |
96 | - } | |
97 | - | |
98 | - | |
99 | - @Get("/faixas/gerarForm/{diretrizId}/{quantidade}") | |
100 | - @Restrito(descricao = "CONFORMIDADES_ADICIONAR") | |
101 | - public void gerarForm(Long diretrizId, int quantidade) { | |
102 | - result.include("quantidadeFaixas", quantidade); | |
103 | - result.forwardTo(this).add(diretrizId); | |
104 | - } | |
105 | - | |
106 | - @Get("/faixas/{criterioId}") | |
107 | - @Restrito(descricao = "CONFORMIDADES_ADICIONAR") | |
108 | - public void add(Long criterioId) { | |
109 | - Criterio criterio = daoCriterio.load(criterioId); | |
110 | - result.include("criterioId", criterioId); | |
111 | - result.include("criterio", criterio); | |
112 | - result.include("parametroCalculo", criterio.getRecomendacao().getParametroCalculo()); | |
113 | - populateSelectLists(); | |
114 | - } | |
115 | - | |
116 | - @Get("/faixas/form/{id}") | |
117 | - @Restrito(descricao = "CONFORMIDADES_ATUALIZAR") | |
118 | - public Faixa form(Long id) { | |
119 | - Faixa faixa = dao.load(id); | |
120 | - | |
121 | - result.include("criterioId", faixa.getCriterio().getId()); | |
122 | - result.include("parametroCalculo", faixa.getCriterio().getRecomendacao().getParametroCalculo()); | |
123 | - populateSelectLists(); | |
124 | - | |
125 | - return faixa; | |
126 | - } | |
127 | - | |
128 | - @Post("/faixas/add") | |
129 | - @Restrito(descricao = "CONFORMIDADES_ADICIONAR") | |
130 | - public void adicionar(List<Faixa> faixas) { | |
131 | - | |
132 | - Criterio criterio = daoCriterio.load(faixas.get(0).getCriterio().getId()); | |
133 | - | |
134 | - for (Faixa faixa : faixas) { | |
135 | - faixa.setCriterio(criterio); | |
136 | - //criterioId = faixa.getCriterio().getId(); | |
137 | - validarFaixa(faixa); | |
138 | - | |
139 | - validator.onErrorUsePageOf(FaixaController.class).add( | |
140 | - faixa.getCriterio().getId()); | |
141 | - } | |
142 | - | |
143 | - | |
144 | - criarNovoParametroAvaliacao(faixas, ParametroCalculoController.MODO_ADD); | |
145 | - | |
146 | - result.include("mensagem", Messages.getString("faixas.mensagem.salva")); | |
147 | - result.redirectTo(CriteriosController.class).form(criterio.getId()); | |
148 | - } | |
149 | - | |
150 | - @Put("/faixas") | |
151 | - @Restrito(descricao = "CONFORMIDADES_ATUALIZAR") | |
152 | - public void atualizar(Faixa faixa) { | |
153 | - Faixa faixaCadastrada = dao.load(faixa.getId()); | |
154 | - | |
155 | - Criterio criterio = daoCriterio.load(faixa.getCriterio().getId()); | |
156 | - | |
157 | - result.include("criterioId", criterio.getId()); | |
158 | - result.include("criterio", criterio); | |
159 | - result.include("parametroCalculo", criterio.getRecomendacao().getParametroCalculo()); | |
160 | - | |
161 | - faixa.setCriterio(criterio); | |
162 | - | |
163 | - validarFaixa(faixa); | |
164 | - | |
165 | - validator.onErrorRedirectTo(FaixaController.class).form(faixaCadastrada.getId()); | |
166 | - | |
167 | - if(validarAtualizacaoFaixa(faixa)){ | |
168 | - faixaCadastrada.setCriterio(faixa.getCriterio()); | |
169 | - faixaCadastrada.setFaixaInicio(faixa.getFaixaInicio()); | |
170 | - faixaCadastrada.setFaixaFim(faixa.getFaixaFim()); | |
171 | - faixaCadastrada.setDescricao(faixa.getDescricao()); | |
172 | - faixaCadastrada.setPercentualConformidade(faixa.getPercentualConformidade()); | |
173 | - | |
174 | - List<Faixa> faixas = new ArrayList<Faixa>(); | |
175 | - faixas.add(faixaCadastrada); | |
176 | - | |
177 | - criarNovoParametroAvaliacao(faixas, ParametroCalculoController.MODO_EDIT); | |
178 | - result.include("mensagem", Messages.getString("faixas.mensagem.alterada")); | |
179 | - }else{ | |
180 | - faixaCadastrada.setDescricao(faixa.getDescricao()); | |
181 | - dao.update(faixaCadastrada); | |
182 | - result.include("mensagem", "Nenhum campo foi alterado."); | |
183 | - } | |
184 | - | |
185 | - result.redirectTo(FaixaController.class).form(faixa.getId()); } | |
186 | - | |
187 | - @Path("/faixas/delete/{id}") | |
188 | - @Restrito(descricao = "CONFORMIDADES_EXCLUIR") | |
189 | - public void excluir(Long id) { | |
190 | - Faixa faixa = dao.load(id); | |
191 | - | |
192 | - List<Faixa> faixas = new ArrayList<Faixa>(); | |
193 | - faixas.add(faixa); | |
194 | - criarNovoParametroAvaliacao(faixas, ParametroCalculoController.MODO_DELETE); | |
195 | - | |
196 | - result.include("mensagem", "Conformidade excluída com sucesso."); | |
197 | - result.redirectTo(ParametroCalculoController.class).index(1); | |
198 | - } | |
199 | - | |
200 | - private void populateSelectLists() { | |
201 | - result.include("faixaList", dao.getAllRecomendacao()); | |
202 | - } | |
203 | - | |
204 | - private void validarFaixa(Faixa faixa) { | |
205 | - if (faixa.getCriterio().getId() == null) { | |
206 | - validator.add(new ValidationMessage(Messages | |
207 | - .getString("faixas.validacao.faixa"), | |
208 | - "faixa.diretriz.id")); | |
209 | - } else if (faixa.getFaixa() == null) { | |
210 | - validator.add(new ValidationMessage(Messages | |
211 | - .getString("faixas.validacao.faixa"), | |
212 | - "faixa.faixa")); | |
213 | - } else if (faixa.getDescricao() == null) { | |
214 | - validator.add(new ValidationMessage(Messages | |
215 | - .getString("faixas.validacao.descricao"), | |
216 | - "faixa.descricao")); | |
217 | - } else if (faixa.getFaixaInicio() == null) { | |
218 | - validator.add(new ValidationMessage(Messages | |
219 | - .getString("faixas.validacao.faixa_inicial"), | |
220 | - "faixa.faixaInicio")); | |
221 | - } else if (faixa.getFaixaFim() == null) { | |
222 | - validator.add(new ValidationMessage(Messages | |
223 | - .getString("faixas.validacao.faixa_final"), | |
224 | - "faixa.faixaFim")); | |
225 | - } else if (faixa.getFaixaInicio() > faixa.getFaixaFim()) { | |
226 | - validator.add(new ValidationMessage(Messages | |
227 | - .getString("faixas.validacao.range_faixas"), | |
228 | - "faixa.faixaInicio")); | |
229 | - } else if (faixa.getPercentualConformidade() == null) { | |
230 | - validator.add(new ValidationMessage(Messages | |
231 | - .getString("faixas.validacao.percentual_conformidade"), | |
232 | - "faixa.percentualConformidade")); | |
233 | - } | |
234 | - } | |
235 | - | |
236 | - private boolean validarAtualizacaoFaixa(Faixa faixa) { | |
237 | - | |
238 | - boolean alteracao = false; | |
239 | - | |
240 | - Faixa faixaCadastrada = dao.load(faixa.getId()); | |
241 | - | |
242 | - if (faixa.getFaixa().compareTo(faixaCadastrada.getFaixa())!=0) { | |
243 | - alteracao = true; | |
244 | - } else if (faixa.getDescricao().compareToIgnoreCase(faixaCadastrada.getDescricao()) != 0) { | |
245 | - alteracao = true; | |
246 | - } else if (faixa.getFaixaInicio().compareTo(faixaCadastrada.getFaixaInicio())!=0) { | |
247 | - alteracao = true; | |
248 | - } else if (faixa.getFaixaFim().compareTo(faixaCadastrada.getFaixaFim()) !=0) { | |
249 | - alteracao = true; | |
250 | - } else if (faixa.getPercentualConformidade().compareTo(faixaCadastrada.getPercentualConformidade()) !=0) { | |
251 | - alteracao = true; | |
252 | - } | |
253 | - | |
254 | - return alteracao; | |
255 | - } | |
256 | - | |
257 | - private void criarNovoParametroAvaliacao(List<Faixa> faixas, int tipo) { | |
258 | - ParametroCalculo ultimoParametroAvaliacao = paDAO.getLastParametrosCalculo(); | |
259 | - boolean ok = false; | |
260 | - Faixa faixa; | |
261 | - | |
262 | - switch (tipo) { | |
263 | - case ParametroCalculoController.MODO_ADD: | |
264 | - for(Faixa f:faixas){ | |
265 | - for(Recomendacao recomendacao: ultimoParametroAvaliacao.getRecomendacoes()){ | |
266 | - if(recomendacao.getId().longValue()==f.getCriterio().getRecomendacao().getId().longValue()){ | |
267 | - for(Criterio criterio: recomendacao.getCriterios()){ | |
268 | - if(criterio.getId().longValue()==f.getCriterio().getId().longValue()){ | |
269 | - criterio.addFaixa(f); | |
270 | - ok=true; | |
271 | - break; | |
272 | - | |
273 | - } | |
274 | - } | |
275 | - } | |
276 | - } | |
277 | - } | |
278 | - | |
279 | - break; | |
280 | - | |
281 | - case ParametroCalculoController.MODO_EDIT: | |
282 | - faixa = faixas.get(0); | |
283 | - for(Recomendacao recomendacao: ultimoParametroAvaliacao.getRecomendacoes()){ | |
284 | - if(recomendacao.getId().longValue()==faixa.getCriterio().getRecomendacao().getId().longValue()){ | |
285 | - for(Criterio criterio: recomendacao.getCriterios()){ | |
286 | - if(criterio.getId().longValue()==faixa.getCriterio().getId().longValue()){ | |
287 | - for(Faixa f: criterio.getFaixas()){ | |
288 | - if(f.getId().longValue()==faixa.getId().longValue()){ | |
289 | - f.setCriterio(faixa.getCriterio()); | |
290 | - f.setDescricao(faixa.getDescricao()); | |
291 | - f.setFaixa(faixa.getFaixa()); | |
292 | - f.setFaixaFim(faixa.getFaixaFim()); | |
293 | - f.setFaixaInicio(faixa.getFaixaInicio()); | |
294 | - f.setId(faixa.getId()); | |
295 | - f.setPercentualConformidade(faixa.getPercentualConformidade()); | |
296 | - ok=true; | |
297 | - } | |
298 | - } | |
299 | - } | |
300 | - } | |
301 | - } | |
302 | - } | |
303 | - | |
304 | - break; | |
305 | - | |
306 | - case ParametroCalculoController.MODO_DELETE: | |
307 | - faixa = faixas.get(0); | |
308 | - for(Recomendacao recomendacao: ultimoParametroAvaliacao.getRecomendacoes()){ | |
309 | - if(recomendacao.getId().longValue()==faixa.getCriterio().getRecomendacao().getId().longValue()){ | |
310 | - for(Criterio criterio: recomendacao.getCriterios()){ | |
311 | - if(criterio.getId().longValue()==faixa.getCriterio().getId().longValue()){ | |
312 | - criterio.removeFaixa(faixa); | |
313 | - ok=true; | |
314 | - break; | |
315 | - | |
316 | - } | |
317 | - } | |
318 | - } | |
319 | - } | |
320 | - | |
321 | - break; | |
322 | - } | |
323 | - | |
324 | - if(ok){ | |
325 | - new CopiadorParametroCalculo().criarNovoParametroCalculo(ultimoParametroAvaliacao, usuarioWeb, dao.getSession()); | |
326 | - } | |
327 | - } | |
328 | - | |
329 | -} | |
1 | +package br.com.eselo.controller; | |
2 | + | |
3 | +import java.util.ArrayList; | |
4 | +import java.util.List; | |
5 | + | |
6 | +import br.com.caelum.vraptor.Get; | |
7 | +import br.com.caelum.vraptor.Path; | |
8 | +import br.com.caelum.vraptor.Post; | |
9 | +import br.com.caelum.vraptor.Put; | |
10 | +import br.com.caelum.vraptor.Resource; | |
11 | +import br.com.caelum.vraptor.Result; | |
12 | +import br.com.caelum.vraptor.Validator; | |
13 | +import br.com.caelum.vraptor.validator.ValidationMessage; | |
14 | +import br.com.eselo.annotations.Restrito; | |
15 | +import br.com.eselo.component.CopiadorParametroCalculo; | |
16 | +import br.com.eselo.component.Messages; | |
17 | +import br.com.eselo.component.UsuarioWeb; | |
18 | +import br.com.eselo.dao.CriterioDAO; | |
19 | +import br.com.eselo.dao.FaixaDAO; | |
20 | +import br.com.eselo.dao.ParametroCalculoDAO; | |
21 | +import br.com.eselo.dao.RecomendacaoDAO; | |
22 | +import br.com.eselo.model.Criterio; | |
23 | +import br.com.eselo.model.Faixa; | |
24 | +import br.com.eselo.model.ParametroCalculo; | |
25 | +import br.com.eselo.model.Recomendacao; | |
26 | + | |
27 | +@Resource | |
28 | +public class FaixaController { | |
29 | + | |
30 | + private final FaixaDAO dao; | |
31 | + private final CriterioDAO daoCriterio; | |
32 | + private final ParametroCalculoDAO paDAO; | |
33 | + private final Result result; | |
34 | + private final Validator validator; | |
35 | + private final UsuarioWeb usuarioWeb; | |
36 | + | |
37 | + public FaixaController(FaixaDAO _dao, | |
38 | + RecomendacaoDAO _daoRecomendacao, CriterioDAO _daoCriterio, ParametroCalculoDAO _daoParametro, | |
39 | + Result _result, Validator _validator, UsuarioWeb _usuarioWeb) { | |
40 | + this.dao = _dao; | |
41 | + this.daoCriterio = _daoCriterio; | |
42 | + this.paDAO = _daoParametro; | |
43 | + this.result = _result; | |
44 | + this.validator = _validator; | |
45 | + this.usuarioWeb = _usuarioWeb; | |
46 | + } | |
47 | + | |
48 | + public List<Faixa> lista(Long idCriterio) { | |
49 | + return this.index(idCriterio, 1); | |
50 | + } | |
51 | + | |
52 | + @Get("/faixas") | |
53 | + @Restrito(descricao = "CONFORMIDADES_LISTA") | |
54 | + public List<Faixa> index(Long idCriterio, int pagina) { | |
55 | + CriterioDAO cDAO = new CriterioDAO(dao.getSession()); | |
56 | + Criterio criterioAtual = cDAO.load(idCriterio); | |
57 | + | |
58 | + // Paginação | |
59 | + // Quantidade de registros por pagina | |
60 | + int exibi = 7; | |
61 | + | |
62 | + // Informa a quantidade de registros | |
63 | + int registros = dao.numLinhas(criterioAtual); | |
64 | + | |
65 | + // Quantidade de paginas na paginação | |
66 | + int totalPag = registros / exibi; | |
67 | + | |
68 | + // Se houver resto na divisao acima acrescenta uma pagina na paginação | |
69 | + if ((registros - (totalPag * exibi)) > 0) | |
70 | + totalPag++; | |
71 | + | |
72 | + // Calculo do registro inicial e final | |
73 | + int regIni = ((exibi * pagina) - exibi); | |
74 | + int regFim = (regIni + exibi); | |
75 | + | |
76 | + if (regFim > registros) { | |
77 | + regFim = registros; | |
78 | + } | |
79 | + | |
80 | + // Fim paginação | |
81 | + List<Faixa> resultado = dao.listAllAtivas(criterioAtual); | |
82 | + List<Faixa> paginacao = new ArrayList<Faixa>(); | |
83 | + | |
84 | + for (int i = regIni; i < regFim; i++) { | |
85 | + paginacao.add(resultado.get(i)); | |
86 | + } | |
87 | + | |
88 | + result.include("paginas", totalPag); | |
89 | + result.include("registros", registros); | |
90 | + result.include("regInic", ++regIni); | |
91 | + result.include("regFim", regFim); | |
92 | + result.include("controle", "diretriz"); | |
93 | + result.include("parametroAvaliacao", criterioAtual.getRecomendacao().getParametroCalculo()); | |
94 | + | |
95 | + return paginacao; | |
96 | + } | |
97 | + | |
98 | + | |
99 | + @Get("/faixas/gerarForm/{diretrizId}/{quantidade}") | |
100 | + @Restrito(descricao = "CONFORMIDADES_ADICIONAR") | |
101 | + public void gerarForm(Long diretrizId, int quantidade) { | |
102 | + result.include("quantidadeFaixas", quantidade); | |
103 | + result.forwardTo(this).add(diretrizId); | |
104 | + } | |
105 | + | |
106 | + @Get("/faixas/{criterioId}") | |
107 | + @Restrito(descricao = "CONFORMIDADES_ADICIONAR") | |
108 | + public void add(Long criterioId) { | |
109 | + Criterio criterio = daoCriterio.load(criterioId); | |
110 | + result.include("criterioId", criterioId); | |
111 | + result.include("criterio", criterio); | |
112 | + result.include("parametroCalculo", criterio.getRecomendacao().getParametroCalculo()); | |
113 | + populateSelectLists(); | |
114 | + } | |
115 | + | |
116 | + @Get("/faixas/form/{id}") | |
117 | + @Restrito(descricao = "CONFORMIDADES_ATUALIZAR") | |
118 | + public Faixa form(Long id) { | |
119 | + Faixa faixa = dao.load(id); | |
120 | + | |
121 | + result.include("criterioId", faixa.getCriterio().getId()); | |
122 | + result.include("parametroCalculo", faixa.getCriterio().getRecomendacao().getParametroCalculo()); | |
123 | + populateSelectLists(); | |
124 | + | |
125 | + return faixa; | |
126 | + } | |
127 | + | |
128 | + @Post("/faixas/add") | |
129 | + @Restrito(descricao = "CONFORMIDADES_ADICIONAR") | |
130 | + public void adicionar(List<Faixa> faixas) { | |
131 | + | |
132 | + Criterio criterio = daoCriterio.load(faixas.get(0).getCriterio().getId()); | |
133 | + | |
134 | + for (Faixa faixa : faixas) { | |
135 | + faixa.setCriterio(criterio); | |
136 | + //criterioId = faixa.getCriterio().getId(); | |
137 | + validarFaixa(faixa); | |
138 | + | |
139 | + validator.onErrorUsePageOf(FaixaController.class).add( | |
140 | + faixa.getCriterio().getId()); | |
141 | + } | |
142 | + | |
143 | + | |
144 | + criarNovoParametroAvaliacao(faixas, ParametroCalculoController.MODO_ADD); | |
145 | + | |
146 | + result.include("mensagem", Messages.getString("faixas.mensagem.salva")); | |
147 | + result.redirectTo(CriteriosController.class).form(criterio.getId()); | |
148 | + } | |
149 | + | |
150 | + @Put("/faixas") | |
151 | + @Restrito(descricao = "CONFORMIDADES_ATUALIZAR") | |
152 | + public void atualizar(Faixa faixa) { | |
153 | + Faixa faixaCadastrada = dao.load(faixa.getId()); | |
154 | + | |
155 | + Criterio criterio = daoCriterio.load(faixa.getCriterio().getId()); | |
156 | + | |
157 | + result.include("criterioId", criterio.getId()); | |
158 | + result.include("criterio", criterio); | |
159 | + result.include("parametroCalculo", criterio.getRecomendacao().getParametroCalculo()); | |
160 | + | |
161 | + faixa.setCriterio(criterio); | |
162 | + | |
163 | + validarFaixa(faixa); | |
164 | + | |
165 | + validator.onErrorRedirectTo(FaixaController.class).form(faixaCadastrada.getId()); | |
166 | + | |
167 | + if(validarAtualizacaoFaixa(faixa)){ | |
168 | + faixaCadastrada.setCriterio(faixa.getCriterio()); | |
169 | + faixaCadastrada.setFaixaInicio(faixa.getFaixaInicio()); | |
170 | + faixaCadastrada.setFaixaFim(faixa.getFaixaFim()); | |
171 | + faixaCadastrada.setDescricao(faixa.getDescricao()); | |
172 | + faixaCadastrada.setPercentualConformidade(faixa.getPercentualConformidade()); | |
173 | + | |
174 | + List<Faixa> faixas = new ArrayList<Faixa>(); | |
175 | + faixas.add(faixaCadastrada); | |
176 | + | |
177 | + criarNovoParametroAvaliacao(faixas, ParametroCalculoController.MODO_EDIT); | |
178 | + result.include("mensagem", Messages.getString("faixas.mensagem.alterada")); | |
179 | + }else{ | |
180 | + faixaCadastrada.setDescricao(faixa.getDescricao()); | |
181 | + dao.update(faixaCadastrada); | |
182 | + result.include("mensagem", "Nenhum campo foi alterado."); | |
183 | + } | |
184 | + | |
185 | + result.redirectTo(FaixaController.class).form(faixa.getId()); } | |
186 | + | |
187 | + @Path("/faixas/delete/{id}") | |
188 | + @Restrito(descricao = "CONFORMIDADES_EXCLUIR") | |
189 | + public void excluir(Long id) { | |
190 | + Faixa faixa = dao.load(id); | |
191 | + | |
192 | + List<Faixa> faixas = new ArrayList<Faixa>(); | |
193 | + faixas.add(faixa); | |
194 | + criarNovoParametroAvaliacao(faixas, ParametroCalculoController.MODO_DELETE); | |
195 | + | |
196 | + result.include("mensagem", "Conformidade excluída com sucesso."); | |
197 | + result.redirectTo(ParametroCalculoController.class).index(1); | |
198 | + } | |
199 | + | |
200 | + private void populateSelectLists() { | |
201 | + result.include("faixaList", dao.getAllRecomendacao()); | |
202 | + } | |
203 | + | |
204 | + private void validarFaixa(Faixa faixa) { | |
205 | + if (faixa.getCriterio().getId() == null) { | |
206 | + validator.add(new ValidationMessage(Messages | |
207 | + .getString("faixas.validacao.faixa"), | |
208 | + "faixa.diretriz.id")); | |
209 | + } else if (faixa.getFaixa() == null) { | |
210 | + validator.add(new ValidationMessage(Messages | |
211 | + .getString("faixas.validacao.faixa"), | |
212 | + "faixa.faixa")); | |
213 | + } else if (faixa.getDescricao() == null) { | |
214 | + validator.add(new ValidationMessage(Messages | |
215 | + .getString("faixas.validacao.descricao"), | |
216 | + "faixa.descricao")); | |
217 | + } else if (faixa.getFaixaInicio() == null) { | |
218 | + validator.add(new ValidationMessage(Messages | |
219 | + .getString("faixas.validacao.faixa_inicial"), | |
220 | + "faixa.faixaInicio")); | |
221 | + } else if (faixa.getFaixaFim() == null) { | |
222 | + validator.add(new ValidationMessage(Messages | |
223 | + .getString("faixas.validacao.faixa_final"), | |
224 | + "faixa.faixaFim")); | |
225 | + } else if (faixa.getFaixaInicio() > faixa.getFaixaFim()) { | |
226 | + validator.add(new ValidationMessage(Messages | |
227 | + .getString("faixas.validacao.range_faixas"), | |
228 | + "faixa.faixaInicio")); | |
229 | + } else if (faixa.getPercentualConformidade() == null) { | |
230 | + validator.add(new ValidationMessage(Messages | |
231 | + .getString("faixas.validacao.percentual_conformidade"), | |
232 | + "faixa.percentualConformidade")); | |
233 | + } | |
234 | + } | |
235 | + | |
236 | + private boolean validarAtualizacaoFaixa(Faixa faixa) { | |
237 | + | |
238 | + boolean alteracao = false; | |
239 | + | |
240 | + Faixa faixaCadastrada = dao.load(faixa.getId()); | |
241 | + | |
242 | + if (faixa.getFaixa().compareTo(faixaCadastrada.getFaixa())!=0) { | |
243 | + alteracao = true; | |
244 | + } else if (faixa.getDescricao().compareToIgnoreCase(faixaCadastrada.getDescricao()) != 0) { | |
245 | + alteracao = true; | |
246 | + } else if (faixa.getFaixaInicio().compareTo(faixaCadastrada.getFaixaInicio())!=0) { | |
247 | + alteracao = true; | |
248 | + } else if (faixa.getFaixaFim().compareTo(faixaCadastrada.getFaixaFim()) !=0) { | |
249 | + alteracao = true; | |
250 | + } else if (faixa.getPercentualConformidade().compareTo(faixaCadastrada.getPercentualConformidade()) !=0) { | |
251 | + alteracao = true; | |
252 | + } | |
253 | + | |
254 | + return alteracao; | |
255 | + } | |
256 | + | |
257 | + private void criarNovoParametroAvaliacao(List<Faixa> faixas, int tipo) { | |
258 | + ParametroCalculo ultimoParametroAvaliacao = paDAO.getLastParametrosCalculo(); | |
259 | + boolean ok = false; | |
260 | + Faixa faixa; | |
261 | + | |
262 | + switch (tipo) { | |
263 | + case ParametroCalculoController.MODO_ADD: | |
264 | + for(Faixa f:faixas){ | |
265 | + for(Recomendacao recomendacao: ultimoParametroAvaliacao.getRecomendacoes()){ | |
266 | + if(recomendacao.getId().longValue()==f.getCriterio().getRecomendacao().getId().longValue()){ | |
267 | + for(Criterio criterio: recomendacao.getCriterios()){ | |
268 | + if(criterio.getId().longValue()==f.getCriterio().getId().longValue()){ | |
269 | + criterio.addFaixa(f); | |
270 | + ok=true; | |
271 | + break; | |
272 | + | |
273 | + } | |
274 | + } | |
275 | + } | |
276 | + } | |
277 | + } | |
278 | + | |
279 | + break; | |
280 | + | |
281 | + case ParametroCalculoController.MODO_EDIT: | |
282 | + faixa = faixas.get(0); | |
283 | + for(Recomendacao recomendacao: ultimoParametroAvaliacao.getRecomendacoes()){ | |
284 | + if(recomendacao.getId().longValue()==faixa.getCriterio().getRecomendacao().getId().longValue()){ | |
285 | + for(Criterio criterio: recomendacao.getCriterios()){ | |
286 | + if(criterio.getId().longValue()==faixa.getCriterio().getId().longValue()){ | |
287 | + for(Faixa f: criterio.getFaixas()){ | |
288 | + if(f.getId().longValue()==faixa.getId().longValue()){ | |
289 | + f.setCriterio(faixa.getCriterio()); | |
290 | + f.setDescricao(faixa.getDescricao()); | |
291 | + f.setFaixa(faixa.getFaixa()); | |
292 | + f.setFaixaFim(faixa.getFaixaFim()); | |
293 | + f.setFaixaInicio(faixa.getFaixaInicio()); | |
294 | + f.setId(faixa.getId()); | |
295 | + f.setPercentualConformidade(faixa.getPercentualConformidade()); | |
296 | + ok=true; | |
297 | + } | |
298 | + } | |
299 | + } | |
300 | + } | |
301 | + } | |
302 | + } | |
303 | + | |
304 | + break; | |
305 | + | |
306 | + case ParametroCalculoController.MODO_DELETE: | |
307 | + faixa = faixas.get(0); | |
308 | + for(Recomendacao recomendacao: ultimoParametroAvaliacao.getRecomendacoes()){ | |
309 | + if(recomendacao.getId().longValue()==faixa.getCriterio().getRecomendacao().getId().longValue()){ | |
310 | + for(Criterio criterio: recomendacao.getCriterios()){ | |
311 | + if(criterio.getId().longValue()==faixa.getCriterio().getId().longValue()){ | |
312 | + criterio.removeFaixa(faixa); | |
313 | + ok=true; | |
314 | + break; | |
315 | + | |
316 | + } | |
317 | + } | |
318 | + } | |
319 | + } | |
320 | + | |
321 | + break; | |
322 | + } | |
323 | + | |
324 | + if(ok){ | |
325 | + new CopiadorParametroCalculo().criarNovoParametroCalculo(ultimoParametroAvaliacao, usuarioWeb, dao.getSession()); | |
326 | + } | |
327 | + } | |
328 | + | |
329 | +} | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/GruposController.java
1 | -package br.com.eselo.controller; | |
2 | - | |
3 | -import java.util.List; | |
4 | - | |
5 | -import br.com.caelum.vraptor.Get; | |
6 | -import br.com.caelum.vraptor.Path; | |
7 | -import br.com.caelum.vraptor.Post; | |
8 | -import br.com.caelum.vraptor.Put; | |
9 | -import br.com.caelum.vraptor.Resource; | |
10 | -import br.com.caelum.vraptor.Result; | |
11 | -import br.com.caelum.vraptor.Validator; | |
12 | -import br.com.caelum.vraptor.validator.ValidationMessage; | |
13 | -import br.com.eselo.annotations.Restrito; | |
14 | -import br.com.eselo.dao.GrupoDAO; | |
15 | -import br.com.eselo.model.Grupo; | |
16 | - | |
17 | -@Resource | |
18 | -public class GruposController { | |
19 | - | |
20 | - private final GrupoDAO dao; | |
21 | - private final Result result; | |
22 | - private final Validator validator; | |
23 | - | |
24 | - public GruposController(GrupoDAO _dao, Result _result, Validator _validator) { | |
25 | - dao = _dao; | |
26 | - result = _result; | |
27 | - validator = _validator; | |
28 | - } | |
29 | - | |
30 | - @Get("/grupos/lista") | |
31 | - @Restrito(descricao = "GRUPOS_LISTA") | |
32 | - public List<Grupo> lista(Grupo grupo) { | |
33 | - result.include("usuario", grupo); | |
34 | - return dao.listAll(grupo); | |
35 | - } | |
36 | - | |
37 | - @Get("/grupos") | |
38 | - @Restrito(descricao = "GRUPOS_LISTA") | |
39 | - public List<Grupo> lista() { | |
40 | - return dao.listAll(); | |
41 | - } | |
42 | - | |
43 | - @Restrito(descricao = "GRUPOS_ADICIONAR") | |
44 | - public void form() { | |
45 | - if (!result.included().containsKey("permissaoList")) { | |
46 | - result.include("permissaoList", dao.getAllPermissoes()); | |
47 | - } | |
48 | - } | |
49 | - | |
50 | - @Get("/grupos/{id}") | |
51 | - @Restrito(descricao = "GRUPOS_ATUALIZAR") | |
52 | - public Grupo form(Long id) { | |
53 | - Grupo grupo = this.dao.load(id); | |
54 | - getPermissaoList(grupo); | |
55 | - return grupo; | |
56 | - } | |
57 | - | |
58 | - @Post("/grupos") | |
59 | - @Restrito(descricao = "GRUPOS_ADICIONAR") | |
60 | - public void adicionar(Grupo grupo) { | |
61 | - getPermissaoList(grupo); | |
62 | - validate(grupo); | |
63 | - | |
64 | - dao.save(grupo); | |
65 | - | |
66 | - result.include("mensagem", "Grupo salvo com sucesso."); | |
67 | - result.redirectTo(GruposController.class).lista(); | |
68 | - } | |
69 | - | |
70 | - @Put("/grupos") | |
71 | - @Restrito(descricao = "GRUPOS_ATUALIZAR") | |
72 | - public void atualizar(Grupo grupo) { | |
73 | - getPermissaoList(grupo); | |
74 | - validate(grupo); | |
75 | - | |
76 | - Grupo grupoCadastrado = dao.load(grupo.getId()); | |
77 | - grupoCadastrado.setNome(grupo.getNome()); | |
78 | - grupoCadastrado.setPermissoes(grupo.getPermissoes()); | |
79 | - | |
80 | - dao.saveOrUpdate(grupoCadastrado); | |
81 | - | |
82 | - result.include("mensagem", "Grupo alterado com sucesso."); | |
83 | - result.redirectTo(GruposController.class).lista(); | |
84 | - } | |
85 | - | |
86 | - @Path("/grupos/delete/{id}") | |
87 | - @Restrito(descricao = "GRUPOS_EXCLUIR") | |
88 | - public void excluir(Long id) { | |
89 | - Grupo grupo = dao.load(id); | |
90 | - | |
91 | - if (!grupo.getUsuarios().isEmpty()) { | |
92 | - validator.add(new ValidationMessage( | |
93 | - "O grupo está sendo referenciado e não pode ser excluído.", | |
94 | - "grupo.nome")); | |
95 | - } | |
96 | - validator.onErrorForwardTo(GruposController.class).lista(); | |
97 | - | |
98 | - dao.remove(id); | |
99 | - | |
100 | - result.include("mensagem", "Grupo excluído com sucesso."); | |
101 | - result.redirectTo(GruposController.class).lista(); | |
102 | - } | |
103 | - | |
104 | - private void getPermissaoList(Grupo grupo) { | |
105 | - if (grupo.getPermissoes() != null) { | |
106 | - result.include("permissaoList", | |
107 | - dao.getAllPermissoes(grupo.getPermissoes())); | |
108 | - } else { | |
109 | - result.include("permissaoList", dao.getAllPermissoes()); | |
110 | - } | |
111 | - } | |
112 | - | |
113 | - private void validate(Grupo grupo) { | |
114 | - Long idGrupoMesmoNome = dao.getIdByNome(grupo.getNome(), grupo.getId()); | |
115 | - | |
116 | - if (grupo.getNome() == null) { | |
117 | - validator.add(new ValidationMessage( | |
118 | - "O nome do grupo é obrigatório.", "grupo.nome")); | |
119 | - } else if (idGrupoMesmoNome != null) { | |
120 | - validator.add(new ValidationMessage( | |
121 | - "O grupo não pode ser igual a um já existente.", | |
122 | - "grupo.nome")); | |
123 | - } | |
124 | - | |
125 | - validator.onErrorUsePageOf(GruposController.class).form(); | |
126 | - } | |
127 | - | |
128 | -} | |
1 | +package br.com.eselo.controller; | |
2 | + | |
3 | +import java.util.List; | |
4 | + | |
5 | +import br.com.caelum.vraptor.Get; | |
6 | +import br.com.caelum.vraptor.Path; | |
7 | +import br.com.caelum.vraptor.Post; | |
8 | +import br.com.caelum.vraptor.Put; | |
9 | +import br.com.caelum.vraptor.Resource; | |
10 | +import br.com.caelum.vraptor.Result; | |
11 | +import br.com.caelum.vraptor.Validator; | |
12 | +import br.com.caelum.vraptor.validator.ValidationMessage; | |
13 | +import br.com.eselo.annotations.Restrito; | |
14 | +import br.com.eselo.dao.GrupoDAO; | |
15 | +import br.com.eselo.model.Grupo; | |
16 | + | |
17 | +@Resource | |
18 | +public class GruposController { | |
19 | + | |
20 | + private final GrupoDAO dao; | |
21 | + private final Result result; | |
22 | + private final Validator validator; | |
23 | + | |
24 | + public GruposController(GrupoDAO _dao, Result _result, Validator _validator) { | |
25 | + dao = _dao; | |
26 | + result = _result; | |
27 | + validator = _validator; | |
28 | + } | |
29 | + | |
30 | + @Get("/grupos/lista") | |
31 | + @Restrito(descricao = "GRUPOS_LISTA") | |
32 | + public List<Grupo> lista(Grupo grupo) { | |
33 | + result.include("usuario", grupo); | |
34 | + return dao.listAll(grupo); | |
35 | + } | |
36 | + | |
37 | + @Get("/grupos") | |
38 | + @Restrito(descricao = "GRUPOS_LISTA") | |
39 | + public List<Grupo> lista() { | |
40 | + return dao.listAll(); | |
41 | + } | |
42 | + | |
43 | + @Restrito(descricao = "GRUPOS_ADICIONAR") | |
44 | + public void form() { | |
45 | + if (!result.included().containsKey("permissaoList")) { | |
46 | + result.include("permissaoList", dao.getAllPermissoes()); | |
47 | + } | |
48 | + } | |
49 | + | |
50 | + @Get("/grupos/{id}") | |
51 | + @Restrito(descricao = "GRUPOS_ATUALIZAR") | |
52 | + public Grupo form(Long id) { | |
53 | + Grupo grupo = this.dao.load(id); | |
54 | + getPermissaoList(grupo); | |
55 | + return grupo; | |
56 | + } | |
57 | + | |
58 | + @Post("/grupos") | |
59 | + @Restrito(descricao = "GRUPOS_ADICIONAR") | |
60 | + public void adicionar(Grupo grupo) { | |
61 | + getPermissaoList(grupo); | |
62 | + validate(grupo); | |
63 | + | |
64 | + dao.save(grupo); | |
65 | + | |
66 | + result.include("mensagem", "Grupo salvo com sucesso."); | |
67 | + result.redirectTo(GruposController.class).lista(); | |
68 | + } | |
69 | + | |
70 | + @Put("/grupos") | |
71 | + @Restrito(descricao = "GRUPOS_ATUALIZAR") | |
72 | + public void atualizar(Grupo grupo) { | |
73 | + getPermissaoList(grupo); | |
74 | + validate(grupo); | |
75 | + | |
76 | + Grupo grupoCadastrado = dao.load(grupo.getId()); | |
77 | + grupoCadastrado.setNome(grupo.getNome()); | |
78 | + grupoCadastrado.setPermissoes(grupo.getPermissoes()); | |
79 | + | |
80 | + dao.saveOrUpdate(grupoCadastrado); | |
81 | + | |
82 | + result.include("mensagem", "Grupo alterado com sucesso."); | |
83 | + result.redirectTo(GruposController.class).lista(); | |
84 | + } | |
85 | + | |
86 | + @Path("/grupos/delete/{id}") | |
87 | + @Restrito(descricao = "GRUPOS_EXCLUIR") | |
88 | + public void excluir(Long id) { | |
89 | + Grupo grupo = dao.load(id); | |
90 | + | |
91 | + if (!grupo.getUsuarios().isEmpty()) { | |
92 | + validator.add(new ValidationMessage( | |
93 | + "O grupo está sendo referenciado e não pode ser excluído.", | |
94 | + "grupo.nome")); | |
95 | + } | |
96 | + validator.onErrorForwardTo(GruposController.class).lista(); | |
97 | + | |
98 | + dao.remove(id); | |
99 | + | |
100 | + result.include("mensagem", "Grupo excluído com sucesso."); | |
101 | + result.redirectTo(GruposController.class).lista(); | |
102 | + } | |
103 | + | |
104 | + private void getPermissaoList(Grupo grupo) { | |
105 | + if (grupo.getPermissoes() != null) { | |
106 | + result.include("permissaoList", | |
107 | + dao.getAllPermissoes(grupo.getPermissoes())); | |
108 | + } else { | |
109 | + result.include("permissaoList", dao.getAllPermissoes()); | |
110 | + } | |
111 | + } | |
112 | + | |
113 | + private void validate(Grupo grupo) { | |
114 | + Long idGrupoMesmoNome = dao.getIdByNome(grupo.getNome(), grupo.getId()); | |
115 | + | |
116 | + if (grupo.getNome() == null) { | |
117 | + validator.add(new ValidationMessage( | |
118 | + "O nome do grupo é obrigatório.", "grupo.nome")); | |
119 | + } else if (idGrupoMesmoNome != null) { | |
120 | + validator.add(new ValidationMessage( | |
121 | + "O grupo não pode ser igual a um já existente.", | |
122 | + "grupo.nome")); | |
123 | + } | |
124 | + | |
125 | + validator.onErrorUsePageOf(GruposController.class).form(); | |
126 | + } | |
127 | + | |
128 | +} | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PainelController.java
1 | -package br.com.eselo.controller; | |
2 | - | |
3 | -import br.com.caelum.vraptor.Get; | |
4 | -import br.com.caelum.vraptor.Resource; | |
5 | -import br.com.eselo.annotations.Restrito; | |
6 | - | |
7 | -@Resource | |
8 | -public class PainelController { | |
9 | - | |
10 | - @Restrito(descricao = "PAINEL") | |
11 | - @Get("/painel") | |
12 | - public void index() { | |
13 | - | |
14 | - } | |
15 | - | |
16 | -} | |
1 | +package br.com.eselo.controller; | |
2 | + | |
3 | +import br.com.caelum.vraptor.Get; | |
4 | +import br.com.caelum.vraptor.Resource; | |
5 | +import br.com.eselo.annotations.Restrito; | |
6 | + | |
7 | +@Resource | |
8 | +public class PainelController { | |
9 | + | |
10 | + @Restrito(descricao = "PAINEL") | |
11 | + @Get("/painel") | |
12 | + public void index() { | |
13 | + | |
14 | + } | |
15 | + | |
16 | +} | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/ParametroCalculoController.java
... | ... | @@ -78,30 +78,30 @@ public class ParametroCalculoController { |
78 | 78 | @Get("/parametrosCalculo/importar/") |
79 | 79 | @Restrito(descricao = "PARAMETRO_CALCULO_ADICIONAR") |
80 | 80 | public void importar(long idParametroCalculo) { |
81 | - | |
81 | + | |
82 | 82 | String acao = VRaptorRequestHolder.currentRequest().getRequest().getParameter("acao"); |
83 | - | |
83 | + | |
84 | 84 | String mensagem=""; |
85 | - | |
85 | + | |
86 | 86 | if(acao.equals("Importar")){ |
87 | 87 | ParametroCalculo pc = dao.load(idParametroCalculo); |
88 | 88 | this.criarNovoParametroCalculo(pc, MODO_IMPORT); |
89 | 89 | mensagem = "Parâmetro de Cálculo criado com base no parametro " |
90 | 90 | + pc.getDescricao() + " com sucesso."; |
91 | - | |
91 | + | |
92 | 92 | result.redirectTo(ParametroCalculoController.class).form(dao.getMaxId()); |
93 | 93 | |
94 | 94 | }else if(acao.equals("Não Importar")){ |
95 | 95 | criarNovoParametroCalculo(new ParametroCalculo(), MODO_ADD); |
96 | 96 | mensagem = "Novo parâmetro criado [sem recomendações ou critérios associados]!"; |
97 | - | |
97 | + | |
98 | 98 | result.redirectTo(ParametroCalculoController.class).form(dao.getMaxId()); |
99 | 99 | |
100 | 100 | }else if(acao.equals("Cancelar")){ |
101 | 101 | mensagem = "Ação cancelada!"; |
102 | 102 | result.redirectTo(ParametroCalculoController.class).lista(); |
103 | 103 | } |
104 | - | |
104 | + | |
105 | 105 | result.include("mensagem", mensagem); |
106 | 106 | } |
107 | 107 | |
... | ... | @@ -154,7 +154,7 @@ public class ParametroCalculoController { |
154 | 154 | |
155 | 155 | List<Usuario> usuarios = dao.getAllUsuarios(); |
156 | 156 | ParametroCalculo parametroCalculoCadastrado = dao.load(parametroCalculo.getId()); |
157 | - | |
157 | + | |
158 | 158 | parametroCalculo.setTsInicio(parametroCalculoCadastrado.getTsInicio()); |
159 | 159 | parametroCalculoCadastrado.setUsuario(new UsuarioDAO(dao.getSession()).load(usuarioWeb.getId())); |
160 | 160 | parametroCalculo.setUsuario(parametroCalculoCadastrado.getUsuario()); |
... | ... | @@ -174,13 +174,13 @@ public class ParametroCalculoController { |
174 | 174 | "parametroCalculo.descricao")); |
175 | 175 | } |
176 | 176 | |
177 | - | |
178 | - | |
177 | + | |
178 | + | |
179 | 179 | result.include("usuarioList", usuarios); |
180 | 180 | result.include("recomendacaoList", parametroCalculoCadastrado.getRecomendacoes()); |
181 | 181 | result.include("parametroCalculo", parametroCalculoCadastrado); |
182 | - | |
183 | - | |
182 | + | |
183 | + | |
184 | 184 | validator.onErrorUsePageOf(ParametroCalculoController.class).form(parametroCalculo.getId()); |
185 | 185 | |
186 | 186 | dao.saveOrUpdate(parametroCalculoCadastrado); | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/PermissoesController.java
1 | -package br.com.eselo.controller; | |
2 | - | |
3 | -import java.util.List; | |
4 | - | |
5 | -import br.com.caelum.vraptor.Get; | |
6 | -import br.com.caelum.vraptor.Path; | |
7 | -import br.com.caelum.vraptor.Post; | |
8 | -import br.com.caelum.vraptor.Put; | |
9 | -import br.com.caelum.vraptor.Resource; | |
10 | -import br.com.caelum.vraptor.Result; | |
11 | -import br.com.caelum.vraptor.Validator; | |
12 | -import br.com.caelum.vraptor.validator.ValidationMessage; | |
13 | -import br.com.eselo.annotations.Restrito; | |
14 | -import br.com.eselo.dao.PermissaoDAO; | |
15 | -import br.com.eselo.model.Permissao; | |
16 | - | |
17 | -@Resource | |
18 | -public class PermissoesController { | |
19 | - | |
20 | - private final PermissaoDAO dao; | |
21 | - private final Result result; | |
22 | - private final Validator validator; | |
23 | - | |
24 | - public PermissoesController(PermissaoDAO _dao, Result _result, | |
25 | - Validator _validator) { | |
26 | - dao = _dao; | |
27 | - result = _result; | |
28 | - validator = _validator; | |
29 | - } | |
30 | - | |
31 | - @Get("/permissoes") | |
32 | - @Restrito(descricao = "PERMISSOES_LISTA") | |
33 | - public List<Permissao> lista() { | |
34 | - return dao.listAll(); | |
35 | - } | |
36 | - | |
37 | - @Restrito(descricao = "") | |
38 | - public void form() { | |
39 | - | |
40 | - } | |
41 | - | |
42 | - @Get("/permissoes/{id}") | |
43 | - @Restrito(descricao = "") | |
44 | - public Permissao form(Long id) { | |
45 | - Permissao permissao = dao.load(id); | |
46 | - return permissao; | |
47 | - } | |
48 | - | |
49 | - @Post("/permissoes") | |
50 | - @Restrito(descricao = "") | |
51 | - public void adicionar(Permissao permissao) { | |
52 | - Long idPermissaoMesmoCpf = dao.getIdByDescricao(permissao.getPermissao()); | |
53 | - | |
54 | - if (permissao.getPermissao() == null) { | |
55 | - validator.add(new ValidationMessage("A descrição da permissão é obrigatória.", | |
56 | - "permissao.permissao")); | |
57 | - } else if (idPermissaoMesmoCpf != null) { | |
58 | - validator.add(new ValidationMessage( | |
59 | - "A permissão não pode ser igual a uma já existente.", | |
60 | - "permissao.permissao")); | |
61 | - } | |
62 | - validator.onErrorUsePageOf(PermissoesController.class).form(); | |
63 | - | |
64 | - dao.save(permissao); | |
65 | - | |
66 | - result.include("mensagem", "Permissão salva com sucesso."); | |
67 | - result.redirectTo(PermissoesController.class).lista(); | |
68 | - } | |
69 | - | |
70 | - @Put("/permissoes") | |
71 | - @Restrito(descricao = "") | |
72 | - public void atualizar(Permissao permissao) { | |
73 | - Permissao permissaoCadastrada = dao.load(permissao.getId()); | |
74 | - permissaoCadastrada.setPermissao(permissao.getPermissao()); | |
75 | - | |
76 | - Long idPermissaoMesmaDescricao = dao.getIdByDescricao(permissaoCadastrada.getPermissao()); | |
77 | - | |
78 | - if (permissaoCadastrada.getPermissao() == null) { | |
79 | - validator.add(new ValidationMessage("A descrição da permissão é obrigatória.", | |
80 | - "permissao.permissao")); | |
81 | - } else if (idPermissaoMesmaDescricao != null | |
82 | - && !idPermissaoMesmaDescricao.equals(permissaoCadastrada.getId())) { | |
83 | - validator.add(new ValidationMessage( | |
84 | - "A permissão não pode ser igual a uma já existente.", | |
85 | - "permissao.permissao")); | |
86 | - } | |
87 | - validator.onErrorUsePageOf(PermissoesController.class).form(); | |
88 | - | |
89 | - dao.saveOrUpdate(permissaoCadastrada); | |
90 | - | |
91 | - result.include("mensagem", "Permissão alterada com sucesso."); | |
92 | - result.redirectTo(PermissoesController.class).lista(); | |
93 | - } | |
94 | - | |
95 | - @Path("/permissoes/delete/{id}") | |
96 | - @Restrito(descricao = "") | |
97 | - public void excluir(Long id) { | |
98 | - Permissao permissaoCadastrada = dao.load(id); | |
99 | - | |
100 | - if (!permissaoCadastrada.getGrupos().isEmpty()) { | |
101 | - validator.add(new ValidationMessage("A permissão está sendo referenciada e não pode ser excluída.", | |
102 | - "permissao.permissao")); | |
103 | - } | |
104 | - validator.onErrorForwardTo(PermissoesController.class).lista(); | |
105 | - | |
106 | - dao.remove(id); | |
107 | - | |
108 | - result.include("mensagem", "Permissão excluída com sucesso."); | |
109 | - result.redirectTo(PermissoesController.class).lista(); | |
110 | - } | |
111 | - | |
112 | - @Get("/permissoes/sincronizar") | |
113 | - @Restrito(descricao = "PERMISSOES_SINCRONIZAR") | |
114 | - public void sincronizar() { | |
115 | - dao.sincronizar(); | |
116 | - | |
117 | - result.include("mensagem", "Permissões sincronizadas com sucesso."); | |
118 | - result.redirectTo(PermissoesController.class).lista(); | |
119 | - } | |
120 | - | |
121 | -} | |
1 | +package br.com.eselo.controller; | |
2 | + | |
3 | +import java.util.List; | |
4 | + | |
5 | +import br.com.caelum.vraptor.Get; | |
6 | +import br.com.caelum.vraptor.Path; | |
7 | +import br.com.caelum.vraptor.Post; | |
8 | +import br.com.caelum.vraptor.Put; | |
9 | +import br.com.caelum.vraptor.Resource; | |
10 | +import br.com.caelum.vraptor.Result; | |
11 | +import br.com.caelum.vraptor.Validator; | |
12 | +import br.com.caelum.vraptor.validator.ValidationMessage; | |
13 | +import br.com.eselo.annotations.Restrito; | |
14 | +import br.com.eselo.dao.PermissaoDAO; | |
15 | +import br.com.eselo.model.Permissao; | |
16 | + | |
17 | +@Resource | |
18 | +public class PermissoesController { | |
19 | + | |
20 | + private final PermissaoDAO dao; | |
21 | + private final Result result; | |
22 | + private final Validator validator; | |
23 | + | |
24 | + public PermissoesController(PermissaoDAO _dao, Result _result, | |
25 | + Validator _validator) { | |
26 | + dao = _dao; | |
27 | + result = _result; | |
28 | + validator = _validator; | |
29 | + } | |
30 | + | |
31 | + @Get("/permissoes") | |
32 | + @Restrito(descricao = "PERMISSOES_LISTA") | |
33 | + public List<Permissao> lista() { | |
34 | + return dao.listAll(); | |
35 | + } | |
36 | + | |
37 | + @Restrito(descricao = "") | |
38 | + public void form() { | |
39 | + | |
40 | + } | |
41 | + | |
42 | + @Get("/permissoes/{id}") | |
43 | + @Restrito(descricao = "") | |
44 | + public Permissao form(Long id) { | |
45 | + Permissao permissao = dao.load(id); | |
46 | + return permissao; | |
47 | + } | |
48 | + | |
49 | + @Post("/permissoes") | |
50 | + @Restrito(descricao = "") | |
51 | + public void adicionar(Permissao permissao) { | |
52 | + Long idPermissaoMesmoCpf = dao.getIdByDescricao(permissao.getPermissao()); | |
53 | + | |
54 | + if (permissao.getPermissao() == null) { | |
55 | + validator.add(new ValidationMessage("A descrição da permissão é obrigatória.", | |
56 | + "permissao.permissao")); | |
57 | + } else if (idPermissaoMesmoCpf != null) { | |
58 | + validator.add(new ValidationMessage( | |
59 | + "A permissão não pode ser igual a uma já existente.", | |
60 | + "permissao.permissao")); | |
61 | + } | |
62 | + validator.onErrorUsePageOf(PermissoesController.class).form(); | |
63 | + | |
64 | + dao.save(permissao); | |
65 | + | |
66 | + result.include("mensagem", "Permissão salva com sucesso."); | |
67 | + result.redirectTo(PermissoesController.class).lista(); | |
68 | + } | |
69 | + | |
70 | + @Put("/permissoes") | |
71 | + @Restrito(descricao = "") | |
72 | + public void atualizar(Permissao permissao) { | |
73 | + Permissao permissaoCadastrada = dao.load(permissao.getId()); | |
74 | + permissaoCadastrada.setPermissao(permissao.getPermissao()); | |
75 | + | |
76 | + Long idPermissaoMesmaDescricao = dao.getIdByDescricao(permissaoCadastrada.getPermissao()); | |
77 | + | |
78 | + if (permissaoCadastrada.getPermissao() == null) { | |
79 | + validator.add(new ValidationMessage("A descrição da permissão é obrigatória.", | |
80 | + "permissao.permissao")); | |
81 | + } else if (idPermissaoMesmaDescricao != null | |
82 | + && !idPermissaoMesmaDescricao.equals(permissaoCadastrada.getId())) { | |
83 | + validator.add(new ValidationMessage( | |
84 | + "A permissão não pode ser igual a uma já existente.", | |
85 | + "permissao.permissao")); | |
86 | + } | |
87 | + validator.onErrorUsePageOf(PermissoesController.class).form(); | |
88 | + | |
89 | + dao.saveOrUpdate(permissaoCadastrada); | |
90 | + | |
91 | + result.include("mensagem", "Permissão alterada com sucesso."); | |
92 | + result.redirectTo(PermissoesController.class).lista(); | |
93 | + } | |
94 | + | |
95 | + @Path("/permissoes/delete/{id}") | |
96 | + @Restrito(descricao = "") | |
97 | + public void excluir(Long id) { | |
98 | + Permissao permissaoCadastrada = dao.load(id); | |
99 | + | |
100 | + if (!permissaoCadastrada.getGrupos().isEmpty()) { | |
101 | + validator.add(new ValidationMessage("A permissão está sendo referenciada e não pode ser excluída.", | |
102 | + "permissao.permissao")); | |
103 | + } | |
104 | + validator.onErrorForwardTo(PermissoesController.class).lista(); | |
105 | + | |
106 | + dao.remove(id); | |
107 | + | |
108 | + result.include("mensagem", "Permissão excluída com sucesso."); | |
109 | + result.redirectTo(PermissoesController.class).lista(); | |
110 | + } | |
111 | + | |
112 | + @Get("/permissoes/sincronizar") | |
113 | + @Restrito(descricao = "PERMISSOES_SINCRONIZAR") | |
114 | + public void sincronizar() { | |
115 | + dao.sincronizar(); | |
116 | + | |
117 | + result.include("mensagem", "Permissões sincronizadas com sucesso."); | |
118 | + result.redirectTo(PermissoesController.class).lista(); | |
119 | + } | |
120 | + | |
121 | +} | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/RecomendacaoController.java
... | ... | @@ -74,7 +74,7 @@ public class RecomendacaoController { |
74 | 74 | this.criarNovoParametroAvaliacao(recomendacao, |
75 | 75 | ParametroCalculoController.MODO_ADD); |
76 | 76 | |
77 | - result.include("mensagem", "Recomenda��o salva com sucesso."); | |
77 | + result.include("mensagem", "Recomenda��o salva com sucesso."); | |
78 | 78 | result.redirectTo(ParametroCalculoController.class).index(1); |
79 | 79 | } |
80 | 80 | |
... | ... | @@ -90,13 +90,13 @@ public class RecomendacaoController { |
90 | 90 | |
91 | 91 | if(validarAtualizacaoRecomendacao(recomendacao)){ |
92 | 92 | criarNovoParametroAvaliacao(recomendacao,ParametroCalculoController.MODO_EDIT); |
93 | - result.include("mensagem", "Recomendação salva com sucesso."); | |
93 | + result.include("mensagem", "Recomendação salva com sucesso."); | |
94 | 94 | }else{ |
95 | 95 | recomendacaoCadastrada.setDescricao(recomendacao.getDescricao()); |
96 | 96 | dao.update(recomendacaoCadastrada); |
97 | 97 | result.include("mensagem", "Nenhum campo foi alterado."); |
98 | 98 | } |
99 | - | |
99 | + | |
100 | 100 | result.redirectTo(RecomendacaoController.class).form(recomendacao.getId()); |
101 | 101 | } |
102 | 102 | |
... | ... | @@ -108,7 +108,7 @@ public class RecomendacaoController { |
108 | 108 | criarNovoParametroAvaliacao(recomendacao, |
109 | 109 | ParametroCalculoController.MODO_DELETE); |
110 | 110 | |
111 | - result.include("mensagem", "Recomenda��o exclu�da com sucesso."); | |
111 | + result.include("mensagem", "Recomenda��o exclu�da com sucesso."); | |
112 | 112 | result.redirectTo(ParametroCalculoController.class).index(1); |
113 | 113 | } |
114 | 114 | |
... | ... | @@ -162,24 +162,24 @@ public class RecomendacaoController { |
162 | 162 | |
163 | 163 | if (recomendacao.getNumeroRecomendacao() == null) { |
164 | 164 | validator.add(new ValidationMessage( |
165 | - "� obrigat�rio informar o n�mero da recomenda��o.", | |
165 | + "� obrigat�rio informar o n�mero da recomenda��o.", | |
166 | 166 | "recomendacao.numeroRecomendacao")); |
167 | 167 | } else if (hasNumeroRecomendacaoNoParametroAtual(recomendacao)) { |
168 | 168 | validator |
169 | 169 | .add(new ValidationMessage( |
170 | - "J� existe uma recomenda��o ativa com esse numero. Recomenda��o n�o atualizada.", | |
170 | + "J� existe uma recomenda��o ativa com esse numero. Recomenda��o n�o atualizada.", | |
171 | 171 | "recomendacao.numeroRecomendacao")); |
172 | 172 | } else if (recomendacao.getDescricao() == null) { |
173 | 173 | validator.add(new ValidationMessage( |
174 | - "� obrigat�rio informar a descri��o da recomenda��o.", | |
174 | + "� obrigat�rio informar a descri��o da recomenda��o.", | |
175 | 175 | "recomendacao.descricao")); |
176 | 176 | } else if (recomendacao.getPeso() == null) { |
177 | 177 | validator.add(new ValidationMessage( |
178 | - "� obrigat�rio informar o peso da recomenda��o.", | |
178 | + "� obrigat�rio informar o peso da recomenda��o.", | |
179 | 179 | "recomendacao.peso")); |
180 | 180 | } else if (recomendacao.getPeso() <= 0) { |
181 | 181 | validator.add(new ValidationMessage( |
182 | - "O peso da recomenda��o deve ser maior que zero.", | |
182 | + "O peso da recomenda��o deve ser maior que zero.", | |
183 | 183 | "recomendacao.peso")); |
184 | 184 | } |
185 | 185 | |
... | ... | @@ -192,9 +192,9 @@ public class RecomendacaoController { |
192 | 192 | private boolean validarAtualizacaoRecomendacao(Recomendacao recomendacao) { |
193 | 193 | |
194 | 194 | boolean alteracao = false; |
195 | - | |
195 | + | |
196 | 196 | Recomendacao recomendacaoCadastrada = dao.load(recomendacao.getId()); |
197 | - | |
197 | + | |
198 | 198 | if (recomendacao.getNumeroRecomendacao().compareTo(recomendacaoCadastrada.getNumeroRecomendacao())!=0) { |
199 | 199 | alteracao = true; |
200 | 200 | } else if (recomendacao.getPeso().compareTo(recomendacaoCadastrada.getPeso()) !=0) { |
... | ... | @@ -202,13 +202,13 @@ public class RecomendacaoController { |
202 | 202 | } else if (recomendacao.getDescricao().compareToIgnoreCase(recomendacaoCadastrada.getDescricao()) != 0) { |
203 | 203 | alteracao = true; |
204 | 204 | } |
205 | - | |
205 | + | |
206 | 206 | return alteracao; |
207 | 207 | } |
208 | 208 | /** |
209 | - * Recebe uma recomenda��o antes de ser cadastrada e verifica se ja existe | |
210 | - * uma recomenda��o ativa com o mesmo numero. | |
211 | - * | |
209 | + * Recebe uma recomenda��o antes de ser cadastrada e verifica se ja existe | |
210 | + * uma recomenda��o ativa com o mesmo numero. | |
211 | + * | |
212 | 212 | * @param recomendacao |
213 | 213 | * @return boolean |
214 | 214 | */ | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/TestesController.java
1 | -package br.com.eselo.controller; | |
2 | - | |
3 | -import org.slf4j.Logger; | |
4 | -import org.slf4j.LoggerFactory; | |
5 | - | |
6 | -import br.com.caelum.vraptor.Get; | |
7 | -import br.com.caelum.vraptor.Post; | |
8 | -import br.com.caelum.vraptor.Resource; | |
9 | -import br.com.caelum.vraptor.Result; | |
10 | -import br.com.eselo.component.LeitorXML; | |
11 | -import br.com.eselo.integracao.RelatorioAvaliacao; | |
12 | -import br.com.eselo.model.Teste; | |
13 | - | |
14 | -@Resource | |
15 | -public class TestesController { | |
16 | - | |
17 | - private final Result result; | |
18 | - private final AvaliacaoController avaliacaoController; | |
19 | - | |
20 | - private static final Logger LOGGER = LoggerFactory | |
21 | - .getLogger(TestesController.class); | |
22 | - | |
23 | - public TestesController(Result _result, AvaliacaoController _avaliacaoController) { | |
24 | - this.result = _result; | |
25 | - this.avaliacaoController = _avaliacaoController; | |
26 | - } | |
27 | - | |
28 | - @Get("/teste") | |
29 | - public void form() { | |
30 | - } | |
31 | - | |
32 | - @Post("/teste/form") | |
33 | - public void form(Teste teste) { | |
34 | - LOGGER.debug("XML: " + teste.getXml()); | |
35 | - | |
36 | - RelatorioAvaliacao relatorioAvaliacao = new LeitorXML() | |
37 | - .lerAvaliacaoXML(teste.getXml()); | |
38 | - | |
39 | - avaliacaoController.calcularNota(relatorioAvaliacao); | |
40 | - | |
41 | - result.include("mensagem", "Teste realizado."); | |
42 | - } | |
43 | - | |
44 | -} | |
1 | +package br.com.eselo.controller; | |
2 | + | |
3 | +import org.slf4j.Logger; | |
4 | +import org.slf4j.LoggerFactory; | |
5 | + | |
6 | +import br.com.caelum.vraptor.Get; | |
7 | +import br.com.caelum.vraptor.Post; | |
8 | +import br.com.caelum.vraptor.Resource; | |
9 | +import br.com.caelum.vraptor.Result; | |
10 | +import br.com.eselo.component.LeitorXML; | |
11 | +import br.com.eselo.integracao.RelatorioAvaliacao; | |
12 | +import br.com.eselo.model.Teste; | |
13 | + | |
14 | +@Resource | |
15 | +public class TestesController { | |
16 | + | |
17 | + private final Result result; | |
18 | + private final AvaliacaoController avaliacaoController; | |
19 | + | |
20 | + private static final Logger LOGGER = LoggerFactory | |
21 | + .getLogger(TestesController.class); | |
22 | + | |
23 | + public TestesController(Result _result, AvaliacaoController _avaliacaoController) { | |
24 | + this.result = _result; | |
25 | + this.avaliacaoController = _avaliacaoController; | |
26 | + } | |
27 | + | |
28 | + @Get("/teste") | |
29 | + public void form() { | |
30 | + } | |
31 | + | |
32 | + @Post("/teste/form") | |
33 | + public void form(Teste teste) { | |
34 | + LOGGER.debug("XML: " + teste.getXml()); | |
35 | + | |
36 | + RelatorioAvaliacao relatorioAvaliacao = new LeitorXML() | |
37 | + .lerAvaliacaoXML(teste.getXml()); | |
38 | + | |
39 | + avaliacaoController.calcularNota(relatorioAvaliacao); | |
40 | + | |
41 | + result.include("mensagem", "Teste realizado."); | |
42 | + } | |
43 | + | |
44 | +} | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/TiposTesteController.java
1 | -package br.com.eselo.controller; | |
2 | - | |
3 | -import java.util.List; | |
4 | - | |
5 | -import br.com.caelum.vraptor.Get; | |
6 | -import br.com.caelum.vraptor.Put; | |
7 | -import br.com.caelum.vraptor.Resource; | |
8 | -import br.com.caelum.vraptor.Result; | |
9 | -import br.com.caelum.vraptor.Validator; | |
10 | -import br.com.caelum.vraptor.validator.ValidationMessage; | |
11 | -import br.com.eselo.annotations.Restrito; | |
12 | -import br.com.eselo.component.Messages; | |
13 | -import br.com.eselo.dao.TipoTesteDAO; | |
14 | -import br.com.eselo.model.TipoTeste; | |
15 | - | |
16 | -@Resource | |
17 | -public class TiposTesteController { | |
18 | - | |
19 | - private final TipoTesteDAO dao; | |
20 | - private final Result result; | |
21 | - private final Validator validator; | |
22 | - | |
23 | - public TiposTesteController(TipoTesteDAO _dao, Result _result, | |
24 | - Validator _validator) { | |
25 | - dao = _dao; | |
26 | - result = _result; | |
27 | - validator = _validator; | |
28 | - } | |
29 | - | |
30 | - @Get("/tiposTeste") | |
31 | - @Restrito(descricao = "TIPOS_TESTELISTA") | |
32 | - public List<TipoTeste> lista() { | |
33 | - return dao.listAll(); | |
34 | - } | |
35 | - | |
36 | - @Restrito(descricao = "TIPOS_TESTE_ADICIONAR") | |
37 | - public void form() { | |
38 | - } | |
39 | - | |
40 | - @Get("/tiposTeste/{id}") | |
41 | - @Restrito(descricao = "TIPOS_TESTE_ATUALIZAR") | |
42 | - public TipoTeste form(Long id) { | |
43 | - TipoTeste tipoTeste = dao.load(id); | |
44 | - | |
45 | - /* | |
46 | - if (!tipoTeste.getRecomendacoes().isEmpty()) { | |
47 | - result.include("mensagem", | |
48 | - Messages.getString("tipo_recomendacao.validacao.edit")); | |
49 | - result.redirectTo(TiposTesteController.class).lista(); | |
50 | - } | |
51 | - */ | |
52 | - | |
53 | - return tipoTeste; | |
54 | - } | |
55 | - | |
56 | - @Put("/tiposTeste") | |
57 | - @Restrito(descricao = "TIPOS_TESTE_ATUALIZAR") | |
58 | - public void atualizar(TipoTeste tipoTeste) { | |
59 | - TipoTeste tipoTesteCadastrada = dao.load(tipoTeste.getId()); | |
60 | - | |
61 | - validarTipoConformidade(tipoTeste); | |
62 | - | |
63 | - validator.onErrorUsePageOf(TiposTesteController.class).form( | |
64 | - tipoTeste.getId()); | |
65 | - | |
66 | - tipoTesteCadastrada.setTipo(tipoTeste.getTipo()); | |
67 | - tipoTesteCadastrada.setDescricao(tipoTeste.getDescricao()); | |
68 | - | |
69 | - dao.saveOrUpdate(tipoTesteCadastrada); | |
70 | - | |
71 | - result.include("mensagem", | |
72 | - Messages.getString("tipo_recomendacao.mensagem.alterada")); | |
73 | - result.redirectTo(TiposTesteController.class).lista(); | |
74 | - } | |
75 | - | |
76 | - private void validarTipoConformidade(TipoTeste tipoTeste) { | |
77 | - if (tipoTeste.getTipo() == null) { | |
78 | - validator.add(new ValidationMessage(Messages | |
79 | - .getString("tipo_recomendacao.validacao.tipo"), | |
80 | - "tipoTeste.tipo")); | |
81 | - } else if (tipoTeste.getDescricao() == null) { | |
82 | - validator.add(new ValidationMessage(Messages | |
83 | - .getString("tipo_recomendacao.validacao.descricao"), | |
84 | - "tipoTeste.descricao")); | |
85 | - } else if (dao.existeTipo(tipoTeste)) { | |
86 | - Long id = dao.getIdByDescricao(tipoTeste.getDescricao()); | |
87 | - | |
88 | - if ((tipoTeste.getId() == null && id != null) | |
89 | - || (tipoTeste.getId() != null && tipoTeste.getId() == id)) { | |
90 | - validator | |
91 | - .add(new ValidationMessage( | |
92 | - Messages.getString("tipo_recomendacao.validacao.descricao.unique"), | |
93 | - "tipoTeste.descricao")); | |
94 | - } | |
95 | - } | |
96 | - /* | |
97 | - else if (tipoTeste.getMaximoConformidade() == null) { | |
98 | - validator.add(new ValidationMessage(Messages | |
99 | - .getString("tipo_recomendacao.validacao.maximo"), | |
100 | - "tipoRecomendacao.maximoConformidade")); | |
101 | - } else if (tipoTeste.getMaximoConformidade() <= 0) { | |
102 | - validator.add(new ValidationMessage(Messages | |
103 | - .getString("tipo_recomendacao.validacao.maximo.min"), | |
104 | - "tipoRecomendacao.maximoConformidade")); | |
105 | - } | |
106 | - */ | |
107 | - } | |
108 | - | |
109 | -} | |
1 | +package br.com.eselo.controller; | |
2 | + | |
3 | +import java.util.List; | |
4 | + | |
5 | +import br.com.caelum.vraptor.Get; | |
6 | +import br.com.caelum.vraptor.Put; | |
7 | +import br.com.caelum.vraptor.Resource; | |
8 | +import br.com.caelum.vraptor.Result; | |
9 | +import br.com.caelum.vraptor.Validator; | |
10 | +import br.com.caelum.vraptor.validator.ValidationMessage; | |
11 | +import br.com.eselo.annotations.Restrito; | |
12 | +import br.com.eselo.component.Messages; | |
13 | +import br.com.eselo.dao.TipoTesteDAO; | |
14 | +import br.com.eselo.model.TipoTeste; | |
15 | + | |
16 | +@Resource | |
17 | +public class TiposTesteController { | |
18 | + | |
19 | + private final TipoTesteDAO dao; | |
20 | + private final Result result; | |
21 | + private final Validator validator; | |
22 | + | |
23 | + public TiposTesteController(TipoTesteDAO _dao, Result _result, | |
24 | + Validator _validator) { | |
25 | + dao = _dao; | |
26 | + result = _result; | |
27 | + validator = _validator; | |
28 | + } | |
29 | + | |
30 | + @Get("/tiposTeste") | |
31 | + @Restrito(descricao = "TIPOS_TESTELISTA") | |
32 | + public List<TipoTeste> lista() { | |
33 | + return dao.listAll(); | |
34 | + } | |
35 | + | |
36 | + @Restrito(descricao = "TIPOS_TESTE_ADICIONAR") | |
37 | + public void form() { | |
38 | + } | |
39 | + | |
40 | + @Get("/tiposTeste/{id}") | |
41 | + @Restrito(descricao = "TIPOS_TESTE_ATUALIZAR") | |
42 | + public TipoTeste form(Long id) { | |
43 | + TipoTeste tipoTeste = dao.load(id); | |
44 | + | |
45 | + /* | |
46 | + if (!tipoTeste.getRecomendacoes().isEmpty()) { | |
47 | + result.include("mensagem", | |
48 | + Messages.getString("tipo_recomendacao.validacao.edit")); | |
49 | + result.redirectTo(TiposTesteController.class).lista(); | |
50 | + } | |
51 | + */ | |
52 | + | |
53 | + return tipoTeste; | |
54 | + } | |
55 | + | |
56 | + @Put("/tiposTeste") | |
57 | + @Restrito(descricao = "TIPOS_TESTE_ATUALIZAR") | |
58 | + public void atualizar(TipoTeste tipoTeste) { | |
59 | + TipoTeste tipoTesteCadastrada = dao.load(tipoTeste.getId()); | |
60 | + | |
61 | + validarTipoConformidade(tipoTeste); | |
62 | + | |
63 | + validator.onErrorUsePageOf(TiposTesteController.class).form( | |
64 | + tipoTeste.getId()); | |
65 | + | |
66 | + tipoTesteCadastrada.setTipo(tipoTeste.getTipo()); | |
67 | + tipoTesteCadastrada.setDescricao(tipoTeste.getDescricao()); | |
68 | + | |
69 | + dao.saveOrUpdate(tipoTesteCadastrada); | |
70 | + | |
71 | + result.include("mensagem", | |
72 | + Messages.getString("tipo_recomendacao.mensagem.alterada")); | |
73 | + result.redirectTo(TiposTesteController.class).lista(); | |
74 | + } | |
75 | + | |
76 | + private void validarTipoConformidade(TipoTeste tipoTeste) { | |
77 | + if (tipoTeste.getTipo() == null) { | |
78 | + validator.add(new ValidationMessage(Messages | |
79 | + .getString("tipo_recomendacao.validacao.tipo"), | |
80 | + "tipoTeste.tipo")); | |
81 | + } else if (tipoTeste.getDescricao() == null) { | |
82 | + validator.add(new ValidationMessage(Messages | |
83 | + .getString("tipo_recomendacao.validacao.descricao"), | |
84 | + "tipoTeste.descricao")); | |
85 | + } else if (dao.existeTipo(tipoTeste)) { | |
86 | + Long id = dao.getIdByDescricao(tipoTeste.getDescricao()); | |
87 | + | |
88 | + if ((tipoTeste.getId() == null && id != null) | |
89 | + || (tipoTeste.getId() != null && tipoTeste.getId() == id)) { | |
90 | + validator | |
91 | + .add(new ValidationMessage( | |
92 | + Messages.getString("tipo_recomendacao.validacao.descricao.unique"), | |
93 | + "tipoTeste.descricao")); | |
94 | + } | |
95 | + } | |
96 | + /* | |
97 | + else if (tipoTeste.getMaximoConformidade() == null) { | |
98 | + validator.add(new ValidationMessage(Messages | |
99 | + .getString("tipo_recomendacao.validacao.maximo"), | |
100 | + "tipoRecomendacao.maximoConformidade")); | |
101 | + } else if (tipoTeste.getMaximoConformidade() <= 0) { | |
102 | + validator.add(new ValidationMessage(Messages | |
103 | + .getString("tipo_recomendacao.validacao.maximo.min"), | |
104 | + "tipoRecomendacao.maximoConformidade")); | |
105 | + } | |
106 | + */ | |
107 | + } | |
108 | + | |
109 | +} | ... | ... |
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/UrlController.java
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/UsuariosController.java
1 | -package br.com.eselo.controller; | |
2 | - | |
3 | -import java.security.SecureRandom; | |
4 | -import java.util.List; | |
5 | - | |
6 | -import javax.servlet.http.HttpServletRequest; | |
7 | - | |
8 | -import org.apache.commons.lang3.RandomStringUtils; | |
9 | -import org.apache.commons.mail.Email; | |
10 | -import org.apache.commons.mail.EmailException; | |
11 | -import org.hibernate.Hibernate; | |
12 | -import org.slf4j.Logger; | |
13 | -import org.slf4j.LoggerFactory; | |
14 | - | |
15 | -import br.com.caelum.vraptor.Get; | |
16 | -import br.com.caelum.vraptor.Path; | |
17 | -import br.com.caelum.vraptor.Post; | |
18 | -import br.com.caelum.vraptor.Put; | |
19 | -import br.com.caelum.vraptor.Resource; | |
20 | -import br.com.caelum.vraptor.Result; | |
21 | -import br.com.caelum.vraptor.Validator; | |
22 | -import br.com.caelum.vraptor.validator.ValidationMessage; | |
23 | -import br.com.eselo.annotations.Restrito; | |
24 | -import br.com.eselo.component.Mailer; | |
25 | -import br.com.eselo.component.TemplateMailer; | |
26 | -import br.com.eselo.component.UsuarioWeb; | |
27 | -import br.com.eselo.dao.UsuarioDAO; | |
28 | -import br.com.eselo.model.Usuario; | |
29 | - | |
30 | -@Resource | |
31 | -public class UsuariosController { | |
32 | - | |
33 | - @SuppressWarnings("unused") | |
34 | - private static final Logger LOGGER = LoggerFactory | |
35 | - .getLogger(UsuariosController.class); | |
36 | - | |
37 | - private final UsuarioDAO dao; | |
38 | - private final Result result; | |
39 | - private final Validator validator; | |
40 | - private final UsuarioWeb usuarioWeb; | |
41 | - private final Mailer mailer; | |
42 | - private final TemplateMailer templates; | |
43 | - private final HttpServletRequest request; | |
44 | - | |
45 | - public UsuariosController(UsuarioDAO _dao, Result _result, | |
46 | - Validator _validator, UsuarioWeb _usuarioWeb, Mailer _mailer, | |
47 | - TemplateMailer _templates, HttpServletRequest _request) { | |
48 | - dao = _dao; | |
49 | - result = _result; | |
50 | - validator = _validator; | |
51 | - usuarioWeb = _usuarioWeb; | |
52 | - mailer = _mailer; | |
53 | - templates = _templates; | |
54 | - request = _request; | |
55 | - } | |
56 | - | |
57 | - @Get("/usuarios") | |
58 | - @Restrito(descricao = "USUARIOS_LISTA") | |
59 | - public List<Usuario> lista() { | |
60 | - return dao.listAll(); | |
61 | - } | |
62 | - | |
63 | - @Get("/usuarios/lista") | |
64 | - @Restrito(descricao = "USUARIOS_LISTA") | |
65 | - public List<Usuario> lista(Usuario usuario) { | |
66 | - result.include("usuario", usuario); | |
67 | - return dao.listAll(usuario); | |
68 | - } | |
69 | - | |
70 | - @Restrito(descricao = "USUARIOS_ADICIONAR") | |
71 | - public void form() { | |
72 | - result.include("grupoList", dao.getAllGrupos()); | |
73 | - } | |
74 | - | |
75 | - @Get("/usuarios/{id}") | |
76 | - @Restrito(descricao = "USUARIOS_ATUALIZAR") | |
77 | - public Usuario form(Long id) { | |
78 | - Usuario usuario = dao.load(id); | |
79 | - result.include("grupoList", dao.getAllGrupos()); | |
80 | - return usuario; | |
81 | - } | |
82 | - | |
83 | - @Post("/usuarios") | |
84 | - @Restrito(descricao = "USUARIOS_ADICIONAR") | |
85 | - public void adicionar(Usuario usuario) { | |
86 | - result.include("grupoList", dao.getAllGrupos()); | |
87 | - validate(usuario); | |
88 | - | |
89 | - dao.save(usuario); | |
90 | - | |
91 | - result.include("mensagem", "Usuário salvo com sucesso."); | |
92 | - result.redirectTo(UsuariosController.class).lista(); | |
93 | - } | |
94 | - | |
95 | - | |
96 | - | |
97 | - @Put("/usuarios") | |
98 | - @Restrito(descricao = "USUARIOS_ATUALIZAR") | |
99 | - public void atualizar(Usuario usuario) { | |
100 | - result.include("grupoList", dao.getAllGrupos()); | |
101 | - validate(usuario); | |
102 | - | |
103 | - Usuario usuarioCadastrado = dao.load(usuario.getId()); | |
104 | - usuarioCadastrado.setNome(usuario.getNome()); | |
105 | - usuarioCadastrado.setCpf(usuario.getCpf()); | |
106 | - usuarioCadastrado.setGrupo(usuario.getGrupo()); | |
107 | - usuarioCadastrado.setEmail(usuario.getEmail()); | |
108 | - | |
109 | - if (usuario.getSenha() != null | |
110 | - && usuario.getSenha() != usuarioCadastrado.getSenha()) { | |
111 | - usuarioCadastrado.setHashedSenha(usuario.getSenha()); | |
112 | - } | |
113 | - | |
114 | - dao.saveOrUpdate(usuarioCadastrado); | |
115 | - | |
116 | - result.include("mensagem", "Usuário alterado com sucesso."); | |
117 | - result.redirectTo(UsuariosController.class).lista(); | |
118 | - } | |
119 | - | |
120 | - @Path("/usuarios/delete/{id}") | |
121 | - @Restrito(descricao = "USUARIOS_EXCLUIR") | |
122 | - public void excluir(Long id) { | |
123 | - dao.remove(id); | |
124 | - result.include("mensagem", "Usuário excluído com sucesso."); | |
125 | - result.redirectTo(UsuariosController.class).lista(); | |
126 | - } | |
127 | - | |
128 | - @Get("/login") | |
129 | - public void loginForm() { | |
130 | - | |
131 | - } | |
132 | - | |
133 | - @Post("/login") | |
134 | - public void login(Usuario usuario) { | |
135 | - Usuario carregado = dao.getByCpfAndSenha(usuario); | |
136 | - if (carregado == null) { | |
137 | - validator.add(new ValidationMessage("CPF e/ou senha inválidos.", | |
138 | - "usuario.cpf")); | |
139 | - } | |
140 | - validator.onErrorUsePageOf(UsuariosController.class).loginForm(); | |
141 | - | |
142 | - Hibernate.initialize(carregado.getGrupo()); | |
143 | - usuarioWeb.login(carregado); | |
144 | - | |
145 | - result.redirectTo(PainelController.class).index(); | |
146 | - } | |
147 | - | |
148 | - @Path("/logout") | |
149 | - public void logout() { | |
150 | - usuarioWeb.logout(); | |
151 | - result.redirectTo(UsuariosController.class).loginForm(); | |
152 | - } | |
153 | - | |
154 | - @Path("/usuarios/renovar_senha/{hash}") | |
155 | - @Get | |
156 | - public void renovarSenhaForm(String hash) { | |
157 | - result.include("hash", hash); | |
158 | - } | |
159 | - | |
160 | - @Path("/usuarios/renovar_senha") | |
161 | - @Post | |
162 | - public void renovarSenha(Usuario usuario) { | |
163 | - Usuario carregado = dao.getByHash(usuario.getChaveAlteracaoSenha()); | |
164 | - if (carregado == null) { | |
165 | - validator.add(new ValidationMessage("Código não encontrado.", | |
166 | - "usuario.senha")); | |
167 | - } | |
168 | - | |
169 | - if (usuario.getSenha() == null || usuario.getConfirmacaoSenha() == null) { | |
170 | - validator.add(new ValidationMessage("Preencha a senha e a confirmação.", | |
171 | - "usuario.senha")); | |
172 | - } | |
173 | - | |
174 | - if (!usuario.getSenha().equals(usuario.getConfirmacaoSenha())) { | |
175 | - validator.add(new ValidationMessage("A senha nova e confirmação não coincidem.", | |
176 | - "usuario.senha")); | |
177 | - } | |
178 | - | |
179 | - carregado.setHashedSenha(usuario.getSenha()); | |
180 | - carregado.setChaveAlteracaoSenha(null); | |
181 | - dao.saveOrUpdate(carregado); | |
182 | - | |
183 | - validator.onErrorUsePageOf(UsuariosController.class) | |
184 | - .renovarSenhaForm(usuario.getChaveAlteracaoSenha()); | |
185 | - | |
186 | - result.include("mensagem", | |
187 | - "Senha alterada com sucesso."); | |
188 | - result.redirectTo(UsuariosController.class).loginForm(); | |
189 | - } | |
190 | - | |
191 | - @Path("/usuarios/recuperar_senha") | |
192 | - @Get | |
193 | - public void recuperarSenhaForm() { | |
194 | - | |
195 | - } | |
196 | - | |
197 | - @Path("/usuarios/recuperar_senha") | |
198 | - @Post | |
199 | - public void recuperarSenha(Usuario usuario) throws EmailException { | |
200 | - Usuario carregado = dao.getByCpf(usuario); | |
201 | - if (carregado == null) { | |
202 | - validator.add(new ValidationMessage("CPF não encontrado.", | |
203 | - "usuario.cpf")); | |
204 | - } | |
205 | - | |
206 | - validator.onErrorUsePageOf(UsuariosController.class) | |
207 | - .recuperarSenhaForm(); | |
208 | - | |
209 | - String hash = RandomStringUtils.random(15, 0, 0, true, true, null, | |
210 | - new SecureRandom()); | |
211 | - | |
212 | - carregado.setChaveAlteracaoSenha(hash); | |
213 | - dao.saveOrUpdate(carregado); | |
214 | - | |
215 | - Email email = this.templates | |
216 | - .template("esqueciMinhaSenha") | |
217 | - .with("nomeUsuario", carregado.getNome()) | |
218 | - .with("cpfUsuario", carregado.getCpfFormatado()) | |
219 | - .with("urlAlteracao", | |
220 | - "http://" | |
221 | - + request.getHeader("Host") | |
222 | - + request.getRequestURI().replace( | |
223 | - "recuperar_senha", "renovar_senha") | |
224 | - + "/" + hash) | |
225 | - .to(carregado.getNome(), carregado.getEmail()); | |
226 | - mailer.send(email); | |
227 | - | |
228 | - result.include("mensagem", | |
229 | - "Email de recuperação de senha enviado com sucesso."); | |
230 | - result.redirectTo(UsuariosController.class).loginForm(); | |
231 | - } | |
232 | - | |
233 | - private void validate(Usuario usuario) { | |
234 | - Long idUsuarioMesmoCpf = dao.getIdByCpf(usuario.getCpf(), usuario.getId()); | |
235 | - | |
236 | - if (usuario.getNome() == null) { | |
237 | - validator.add(new ValidationMessage("O nome é obrigatório.", | |
238 | - "usuario.nome")); | |
239 | - } else if (usuario.getCpf() == null) { | |
240 | - validator.add(new ValidationMessage("O CPF é obrigatório.", | |
241 | - "usuario.cpf")); | |
242 | - } else if (usuario.getEmail() == null) { | |
243 | - validator.add(new ValidationMessage("O email é obrigatório.", | |
244 | - "usuario.email")); | |
245 | - } else if (usuario.getGrupo().getId() == null) { | |
246 | - validator.add(new ValidationMessage("O grupo é obrigatório.", | |
247 | - "usuario.grupo.id")); | |
248 | - } else if (usuario.getSenha() == null) { | |
249 | - validator.add(new ValidationMessage("A senha é obrigatória.", | |
250 | - "usuario.senha")); | |
251 | - } else if (idUsuarioMesmoCpf != null) { | |
252 | - validator.add(new ValidationMessage( | |
253 | - "O usuário não pode ser igual a um já existente.", | |
254 | - "usuario.cpf")); | |
255 | - } | |
256 | - | |
257 | - validator.onErrorUsePageOf(UsuariosController.class).form(); | |
258 | - } | |
259 | - | |
260 | -} | |
1 | +package br.com.eselo.controller; | |
2 | + | |
3 | +import java.security.SecureRandom; | |
4 | +import java.util.List; | |
5 | + | |
6 | +import javax.servlet.http.HttpServletRequest; | |
7 | + | |
8 | +import org.apache.commons.lang3.RandomStringUtils; | |
9 | +import org.apache.commons.mail.Email; | |
10 | +import org.apache.commons.mail.EmailException; | |
11 | +import org.hibernate.Hibernate; | |
12 | +import org.slf4j.Logger; | |
13 | +import org.slf4j.LoggerFactory; | |
14 | + | |
15 | +import br.com.caelum.vraptor.Get; | |
16 | +import br.com.caelum.vraptor.Path; | |
17 | +import br.com.caelum.vraptor.Post; | |
18 | +import br.com.caelum.vraptor.Put; | |
19 | +import br.com.caelum.vraptor.Resource; | |
20 | +import br.com.caelum.vraptor.Result; | |
21 | +import br.com.caelum.vraptor.Validator; | |
22 | +import br.com.caelum.vraptor.validator.ValidationMessage; | |
23 | +import br.com.eselo.annotations.Restrito; | |
24 | +import br.com.eselo.component.Mailer; | |
25 | +import br.com.eselo.component.TemplateMailer; | |
26 | +import br.com.eselo.component.UsuarioWeb; | |
27 | +import br.com.eselo.dao.UsuarioDAO; | |
28 | +import br.com.eselo.model.Usuario; | |
29 | + | |
30 | +@Resource | |
31 | +public class UsuariosController { | |
32 | + | |
33 | + @SuppressWarnings("unused") | |
34 | + private static final Logger LOGGER = LoggerFactory | |
35 | + .getLogger(UsuariosController.class); | |
36 | + | |
37 | + private final UsuarioDAO dao; | |
38 | + private final Result result; | |
39 | + private final Validator validator; | |
40 | + private final UsuarioWeb usuarioWeb; | |
41 | + private final Mailer mailer; | |
42 | + private final TemplateMailer templates; | |
43 | + private final HttpServletRequest request; | |
44 | + | |
45 | + public UsuariosController(UsuarioDAO _dao, Result _result, | |
46 | + Validator _validator, UsuarioWeb _usuarioWeb, Mailer _mailer, | |
47 | + TemplateMailer _templates, HttpServletRequest _request) { | |
48 | + dao = _dao; | |
49 | + result = _result; | |
50 | + validator = _validator; | |
51 | + usuarioWeb = _usuarioWeb; | |
52 | + mailer = _mailer; | |
53 | + templates = _templates; | |
54 | + request = _request; | |
55 | + } | |
56 | + | |
57 | + @Get("/usuarios") | |
58 | + @Restrito(descricao = "USUARIOS_LISTA") | |
59 | + public List<Usuario> lista() { | |
60 | + return dao.listAll(); | |
61 | + } | |
62 | + | |
63 | + @Get("/usuarios/lista") | |
64 | + @Restrito(descricao = "USUARIOS_LISTA") | |
65 | + public List<Usuario> lista(Usuario usuario) { | |
66 | + result.include("usuario", usuario); | |
67 | + return dao.listAll(usuario); | |
68 | + } | |
69 | + | |
70 | + @Restrito(descricao = "USUARIOS_ADICIONAR") | |
71 | + public void form() { | |
72 | + result.include("grupoList", dao.getAllGrupos()); | |
73 | + } | |
74 | + | |
75 | + @Get("/usuarios/{id}") | |
76 | + @Restrito(descricao = "USUARIOS_ATUALIZAR") | |
77 | + public Usuario form(Long id) { | |
78 | + Usuario usuario = dao.load(id); | |
79 | + result.include("grupoList", dao.getAllGrupos()); | |
80 | + return usuario; | |
81 | + } | |
82 | + | |
83 | + @Post("/usuarios") | |
84 | + @Restrito(descricao = "USUARIOS_ADICIONAR") | |
85 | + public void adicionar(Usuario usuario) { | |
86 | + result.include("grupoList", dao.getAllGrupos()); | |
87 | + validate(usuario); | |
88 | + | |
89 | + dao.save(usuario); | |
90 | + | |
91 | + result.include("mensagem", "Usuário salvo com sucesso."); | |
92 | + result.redirectTo(UsuariosController.class).lista(); | |
93 | + } | |
94 | + | |
95 | + | |
96 | + | |
97 | + @Put("/usuarios") | |
98 | + @Restrito(descricao = "USUARIOS_ATUALIZAR") | |
99 | + public void atualizar(Usuario usuario) { | |
100 | + result.include("grupoList", dao.getAllGrupos()); | |
101 | + validate(usuario); | |
102 | + | |
103 | + Usuario usuarioCadastrado = dao.load(usuario.getId()); | |
104 | + usuarioCadastrado.setNome(usuario.getNome()); | |
105 | + usuarioCadastrado.setCpf(usuario.getCpf()); | |
106 | + usuarioCadastrado.setGrupo(usuario.getGrupo()); | |
107 | + usuarioCadastrado.setEmail(usuario.getEmail()); | |
108 | + | |
109 | + if (usuario.getSenha() != null | |
110 | + && usuario.getSenha() != usuarioCadastrado.getSenha()) { | |
111 | + usuarioCadastrado.setHashedSenha(usuario.getSenha()); | |
112 | + } | |
113 | + | |
114 | + dao.saveOrUpdate(usuarioCadastrado); | |
115 | + | |
116 | + result.include("mensagem", "Usuário alterado com sucesso."); | |
117 | + result.redirectTo(UsuariosController.class).lista(); | |
118 | + } | |
119 | + | |
120 | + @Path("/usuarios/delete/{id}") | |
121 | + @Restrito(descricao = "USUARIOS_EXCLUIR") | |
122 | + public void excluir(Long id) { | |
123 | + dao.remove(id); | |
124 | + result.include("mensagem", "Usuário excluído com sucesso."); | |
125 | + result.redirectTo(UsuariosController.class).lista(); | |
126 | + } | |
127 | + | |
128 | + @Get("/login") | |
129 | + public void loginForm() { | |
130 | + | |
131 | + } | |
132 | + | |
133 | + @Post("/login") | |
134 | + public void login(Usuario usuario) { | |
135 | + Usuario carregado = dao.getByCpfAndSenha(usuario); | |
136 | + if (carregado == null) { | |
137 | + validator.add(new ValidationMessage("CPF e/ou senha inválidos.", | |
138 | + "usuario.cpf")); | |
139 | + } | |
140 | + validator.onErrorUsePageOf(UsuariosController.class).loginForm(); | |
141 | + | |
142 | + Hibernate.initialize(carregado.getGrupo()); | |
143 | + usuarioWeb.login(carregado); | |
144 | + | |
145 | + result.redirectTo(PainelController.class).index(); | |
146 | + } | |
147 | + | |
148 | + @Path("/logout") | |
149 | + public void logout() { | |
150 | + usuarioWeb.logout(); | |
151 | + result.redirectTo(UsuariosController.class).loginForm(); | |
152 | + } | |
153 | + | |
154 | + @Path("/usuarios/renovar_senha/{hash}") | |
155 | + @Get | |
156 | + public void renovarSenhaForm(String hash) { | |
157 | + result.include("hash", hash); | |
158 | + } | |
159 | + | |
160 | + @Path("/usuarios/renovar_senha") | |
161 | + @Post | |
162 | + public void renovarSenha(Usuario usuario) { | |
163 | + Usuario carregado = dao.getByHash(usuario.getChaveAlteracaoSenha()); | |
164 | + if (carregado == null) { | |
165 | + validator.add(new ValidationMessage("Código não encontrado.", | |
166 | + "usuario.senha")); | |
167 | + } | |
168 | + | |
169 | + if (usuario.getSenha() == null || usuario.getConfirmacaoSenha() == null) { | |
170 | + validator.add(new ValidationMessage("Preencha a senha e a confirmação.", | |
171 | + "usuario.senha")); | |
172 | + } | |
173 | + | |
174 | + if (!usuario.getSenha().equals(usuario.getConfirmacaoSenha())) { | |
175 | + validator.add(new ValidationMessage("A senha nova e confirmação não coincidem.", | |
176 | + "usuario.senha")); | |
177 | + } | |
178 | + | |
179 | + carregado.setHashedSenha(usuario.getSenha()); | |
180 | + carregado.setChaveAlteracaoSenha(null); | |
181 | + dao.saveOrUpdate(carregado); | |
182 | + | |
183 | + validator.onErrorUsePageOf(UsuariosController.class) | |
184 | + .renovarSenhaForm(usuario.getChaveAlteracaoSenha()); | |
185 | + | |
186 | + result.include("mensagem", | |
187 | + "Senha alterada com sucesso."); | |
188 | + result.redirectTo(UsuariosController.class).loginForm(); | |
189 | + } | |
190 | + | |
191 | + @Path("/usuarios/recuperar_senha") | |
192 | + @Get | |
193 | + public void recuperarSenhaForm() { | |
194 | + | |
195 | + } | |
196 | + | |
197 | + @Path("/usuarios/recuperar_senha") | |
198 | + @Post | |
199 | + public void recuperarSenha(Usuario usuario) throws EmailException { | |
200 | + Usuario carregado = dao.getByCpf(usuario); | |
201 | + if (carregado == null) { | |
202 | + validator.add(new ValidationMessage("CPF não encontrado.", | |
203 | + "usuario.cpf")); | |
204 | + } | |
205 | + | |
206 | + validator.onErrorUsePageOf(UsuariosController.class) | |
207 | + .recuperarSenhaForm(); | |
208 | + | |
209 | + String hash = RandomStringUtils.random(15, 0, 0, true, true, null, | |
210 | + new SecureRandom()); | |
211 | + | |
212 | + carregado.setChaveAlteracaoSenha(hash); | |
213 | + dao.saveOrUpdate(carregado); | |
214 | + | |
215 | + Email email = this.templates | |
216 | + .template("esqueciMinhaSenha") | |
217 | + .with("nomeUsuario", carregado.getNome()) | |
218 | + .with("cpfUsuario", carregado.getCpfFormatado()) | |
219 | + .with("urlAlteracao", | |
220 | + "http://" | |
221 | + + request.getHeader("Host") | |
222 | + + request.getRequestURI().replace( | |
223 | + "recuperar_senha", "renovar_senha") | |
224 | + + "/" + hash) | |
225 | + .to(carregado.getNome(), carregado.getEmail()); | |
226 | + mailer.send(email); | |
227 | + | |
228 | + result.include("mensagem", | |
229 | + "Email de recuperação de senha enviado com sucesso."); | |
230 | + result.redirectTo(UsuariosController.class).loginForm(); | |
231 | + } | |
232 | + | |
233 | + private void validate(Usuario usuario) { | |
234 | + Long idUsuarioMesmoCpf = dao.getIdByCpf(usuario.getCpf(), usuario.getId()); | |
235 | + | |
236 | + if (usuario.getNome() == null) { | |
237 | + validator.add(new ValidationMessage("O nome é obrigatório.", | |
238 | + "usuario.nome")); | |
239 | + } else if (usuario.getCpf() == null) { | |
240 | + validator.add(new ValidationMessage("O CPF é obrigatório.", | |
241 | + "usuario.cpf")); | |
242 | + } else if (usuario.getEmail() == null) { | |
243 | + validator.add(new ValidationMessage("O email é obrigatório.", | |
244 | + "usuario.email")); | |
245 | + } else if (usuario.getGrupo().getId() == null) { | |
246 | + validator.add(new ValidationMessage("O grupo é obrigatório.", | |
247 | + "usuario.grupo.id")); | |
248 | + } else if (usuario.getSenha() == null) { | |
249 | + validator.add(new ValidationMessage("A senha é obrigatória.", | |
250 | + "usuario.senha")); | |
251 | + } else if (idUsuarioMesmoCpf != null) { | |
252 | + validator.add(new ValidationMessage( | |
253 | + "O usuário não pode ser igual a um já existente.", | |
254 | + "usuario.cpf")); | |
255 | + } | |
256 | + | |
257 | + validator.onErrorUsePageOf(UsuariosController.class).form(); | |
258 | + } | |
259 | + | |
260 | +} | ... | ... |