Commit cb346337951a88d8d04b2b589f47eeb1f17dc26e

Authored by magno.oliveira
1 parent 6a16ae8e
Exists in master

Ajustes no parametro de calculo

git-svn-id: https://svn.bento.ifrs.edu.br/default/ASES/e-selo@9850 c2178572-b5ca-4887-91d2-9e3a90c7d55b
Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/parametroCalculo/form.jsp
... ... @@ -89,7 +89,7 @@
89 89 <div class="btn-group">
90 90 <a href="<c:url value="/recomendacao/form/${recomendacao.id}" />" class="btn btn-default btn-sm">Consultar</a>
91 91 <c:if test="${parametroCalculo.tsFim == null}">
92   - <a href="<c:url value="/recomendacao/delete/${recomendacao.id}" />" class="btn btn-default btn-sm btn-confirm" data-msg="Um novo Parâmetro de Cálculo será criado a partir do atual. Deseja realmente excluir a recomendação selecionada?">Excluir</a>
  92 + <a href="<c:url value="/recomendacao/delete/${recomendacao.id}" />" class="btn btn-default btn-sm btn-confirm" data-msg="Um novo Parâmetro de Cálculo poderá ser criado a partir do atual. Deseja realmente excluir a recomendação selecionada?">Excluir</a>
93 93 </c:if>
94 94 </div>
95 95 </td>
... ...
Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/parametroCalculo/lista.jsp
... ... @@ -69,7 +69,7 @@
69 69 <div class="btn-group">
70 70 <a href="<c:url value="/parametrosCalculo/atualizar/${parametroCalculo.id}" />" class="btn btn-default btn-sm">Consultar</a>
71 71 <c:if test="${parametroCalculo.tsFim == null}">
72   - <a href="<c:url value="/parametrosCalculo/delete/${parametroCalculo.id}" />" class="btn btn-default btn-sm btn-confirm" data-msg="Deseja realmente excluir o Parametro de Avaliação selecionado?">Excluir</a>
  72 + <a href="<c:url value="/parametrosCalculo/delete/${parametroCalculo.id}" />" class="btn btn-default btn-sm btn-confirm" data-msg="Deseja realmente excluir o Parametro de Cálculo selecionado?">Excluir</a>
73 73 <a href="<c:url value="/parametrosCalculo/exportar/${parametroCalculo.id}/${parametroCalculo.slug}.ods" />" class="btn btn-default btn-sm">Exportar</a>
74 74 </c:if>
75 75 </div>
... ...
Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/recomendacao/form.jsp
... ... @@ -83,9 +83,9 @@
83 83 <td>${criterio.tipoTeste.tipo}</td>
84 84 <td>
85 85 <div class="btn-group">
86   - <a href="<c:url value="/criterios/form/${criterio.id}" />" class="btn btn-default btn-sm">Consultar</a>
  86 + <a href="<c:url value="/criterio/form/${criterio.id}" />" class="btn btn-default btn-sm">Consultar</a>
87 87 <c:if test="${parametroCalculo.tsFim == null}">
88   - <a href="<c:url value="/criterios/delete/${criterio.id}" />" class="btn btn-default btn-sm btn-confirm" data-msg="Deseja realmente excluir o critério selecionado?">Excluir</a>
  88 + <a href="<c:url value="/criterio/delete/${criterio.id}" />" class="btn btn-default btn-sm btn-confirm" data-msg="Deseja realmente excluir o critério selecionado?">Excluir</a>
89 89 </c:if>
90 90 </div>
91 91 </td>
... ...
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/CopiadorParametroCalculo.java
... ... @@ -64,21 +64,15 @@ public class CopiadorParametroCalculo {
64 64  
65 65 novaRecomendacao.addCriterio(novoCriterio);
66 66 }
67   -
  67 + System.out.println("Recomendacao "+novaRecomendacao.getNumeroRecomendacao());
68 68 novoParametroAvaliacao.addRecomendacao(novaRecomendacao);
69 69 }
70 70  
71 71 // Salva novo e atualiza o ultimo
72   - ultimoParametroAvaliacao = parametroCalculoDAO.load(ultimoParametroAvaliacao.getId());
73   - ultimoParametroAvaliacao.setTsFim(novoParametroAvaliacao.getTsInicio());
74   - //parametroCalculoDAO.update(ultimoParametroAvaliacao);
75   -
76   - /*
77 72 ultimoParametroAvaliacao = parametroCalculoDAO.getLastParametrosCalculo();
78 73 ultimoParametroAvaliacao.setTsFim(novoParametroAvaliacao.getTsInicio());
79 74 parametroCalculoDAO.update(ultimoParametroAvaliacao);
80   - */
81   -
  75 +
82 76 parametroCalculoDAO.save(novoParametroAvaliacao);
83 77 }
84 78  
... ...
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/messages.properties
1   -faixas.mensagem.salva=Conformidade salva com sucesso.
2   -faixas.mensagem.alterada=Conformidade alterada com sucesso.
  1 +criterio.salvo=Critério salvo com sucesso.
  2 +criterio.excluído=Critéiro excluído com sucesso.
  3 +criterio.atualizado=Critério atualizado com sucesso.
  4 +criterio.validacao.numero=É obrigatório informar o número do critério.
  5 +criterio.validacao.numero.unique=Já existe um critério com esse número. Informe outro número para o critério.
  6 +criterio.validacao.descricao=É obrigatório informar a descrição do criteiro.
  7 +criterio.validacao.tipo_teste=É obrigatório informar o Tipo de teste.
  8 +faixas.mensagem.salva=Faixa de conformidade salva com sucesso.
  9 +faixas.mensagem.alterada=Faixa de conformidade alterada com sucesso.
3 10 faixas.validacao.diretriz=A Diretriz é obrigatória.
4 11 faixas.validacao.descricao=A descrição é obrigatória.
5 12 faixas.validacao.faixa=O número da Faixa é obrigatório.
... ... @@ -9,6 +16,18 @@ faixas.validacao.faixa_inicial=A Faixa Inicial é obrigatória.
9 16 faixas.validacao.tipo_conformidade=O Tipo de Conformidade é obrigatório.
10 17 faixas.validacao.range_faixas=A Faixa Inicial deve ser menor que a Faixa Inicial.
11 18 parametro_calculo.validacao.descricao=A descrição é obrigatória.
  19 +parametro_calculo.validacao.excluido=Parametro de Cálculo excluído com sucesso.
  20 +parametro_calculo.validacao.nao_pode_excluir=Parametro de Cálculo não pode ser excluído pois não está ativo.
  21 +parametro_calculo.validacao.nao_pode_excluir.unico=Este é o único Parametro de Cálculo cadastrado e ele não pode ser excluído.
  22 +parametro_calculo.validacao.nao_pode_excluir.em_uso=Este Parametro de Cálculo tem avaliações associadas e não pode ser excluído.
  23 +parametro_calculo.criado=Parâmetro de Cálculo criado com base no parâmetro
  24 +parametro_calculo.criado.limpo=Novo parâmetro criado [sem recomendações ou critérios associados]!
  25 +parametro_calculo.atualizado=Parâmetro de Cálculo alterado com sucesso.
  26 +recomendacao.validacao.numero=É obrigatório informar o numero da Recomendação.
  27 +recomendacao.validacao.numero.unique=Já existe uma recomendação com esse número.
  28 +recomendacao.exclusao=Recomendação excluída com sucesso!
  29 +recomendacao.salva=Recomendação salva com sucesso!
  30 +recomendacao.atualizada=Recomendação atualizada com sucesso!
12 31 tipo_conformidade.mensagem.salva=Tipo de Diretriz salvo com sucesso.
13 32 tipo_conformidade.mensagem.alterada=Tipo de Diretriz alterado com sucesso.
14 33 tipo_conformidade.validacao.descricao=É necessário informar o a descrição do Tipo de Diretriz.
... ... @@ -25,4 +44,9 @@ tipo_recomendacao.validacao.descricao.unique=Já existe uma descrição com este no
25 44 tipo_recomendacao.validacao.maximo=É necessário informar o valor máximo do Tipo de Teste.
26 45 tipo_recomendacao.validacao.maximo.min=É necessário informar o valor máximo do Tipo de Teste.
27 46 tipo_recomendacao.validacao.edit=O Tipo de Teste não pode ser alterado, pois ele está sendo utilizado.
28   -tipo_recomendacao.validacao.remove=O Tipo de Teste não pode ser excluído, pois ele está sendo utilizado.
29 47 \ No newline at end of file
  48 +tipo_recomendacao.validacao.remove=O Tipo de Teste não pode ser excluído, pois ele está sendo utilizado.
  49 +validacao.peso=É obrigatório informar o peso.
  50 +validacao.peso.zero=O peso deve ser maior que zero.
  51 +validacao.descricao=É obrigatório informar a descrição.
  52 +validacao.sem_alteracao=Nenhum campo foi alterado.
  53 +validacao.acao_cancelada=Ação cancelada!
30 54 \ No newline at end of file
... ...
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java
... ... @@ -12,7 +12,9 @@ import br.com.caelum.vraptor.Validator;
12 12 import br.com.caelum.vraptor.validator.ValidationMessage;
13 13 import br.com.eselo.annotations.Restrito;
14 14 import br.com.eselo.component.CopiadorParametroCalculo;
  15 +import br.com.eselo.component.Messages;
15 16 import br.com.eselo.component.UsuarioWeb;
  17 +import br.com.eselo.dao.AvaliacaoDAO;
16 18 import br.com.eselo.dao.CriterioDAO;
17 19 import br.com.eselo.dao.ParametroCalculoDAO;
18 20 import br.com.eselo.dao.RecomendacaoDAO;
... ... @@ -60,7 +62,7 @@ public class CriteriosController {
60 62 return criterio;
61 63 }
62 64  
63   - @Get("/criterios/form/{id}")
  65 + @Get("/criterio/form/{id}")
64 66 @Restrito(descricao = "CRITERIO_ATUALIZAR")
65 67 public Criterio form(Long id) {
66 68 Criterio criterio = dao.load(id);
... ... @@ -91,19 +93,24 @@ public class CriteriosController {
91 93 validator.onErrorUsePageOf(CriteriosController.class).novo(
92 94 criterio.getRecomendacao().getId());
93 95  
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());
  96 +
  97 + ParametroCalculo pc = paDAO.load(criterio.getRecomendacao().getParametroCalculo().getId());
  98 + if(!(new AvaliacaoDAO(dao.getSession()).existeAvaliacao(pc))){
  99 +
  100 + dao.save(criterio);
  101 + result.include("mensagem", Messages.getString("criterio.salvo"));
  102 + }else{
  103 + this.criarNovoParametroAvaliacao(criterio,ParametroCalculoController.MODO_ADD);
  104 + result.include("mensagem", Messages.getString("criterio.salvo"));
  105 + }
  106 +
  107 + result.redirectTo(RecomendacaoController.class).form(criterio.getRecomendacao().getId());
100 108 }
101 109  
102 110 @Put("/criterio")
103 111 @Restrito(descricao = "CRITERIO_ATUALIZAR")
104 112 public void atualizar(Criterio criterio) {
105   - criterio.setRecomendacao(new RecomendacaoDAO(dao.getSession())
106   - .load(criterio.getRecomendacao().getId()));
  113 + //criterio.setRecomendacao(new RecomendacaoDAO(dao.getSession()).load(criterio.getRecomendacao().getId()));
107 114  
108 115 @SuppressWarnings("unchecked")
109 116 List<TipoTeste> tipoTestes = (List<TipoTeste>) dao.getAllTipoTeste();
... ... @@ -123,12 +130,22 @@ public class CriteriosController {
123 130  
124 131 if(validarAtualizacaoCriterio(criterio)){
125 132  
126   - criarNovoParametroAvaliacao(criterio,ParametroCalculoController.MODO_EDIT);
127   - result.include("mensagem", "Critério salvo com sucesso.");
  133 + ParametroCalculo pc = paDAO.load(criterioCadastrado.getRecomendacao().getParametroCalculo().getId());
  134 + if(!(new AvaliacaoDAO(dao.getSession()).existeAvaliacao(pc))){
  135 + criterioCadastrado.setNumeroCriterio(criterio.getNumeroCriterio());
  136 + criterioCadastrado.setDescricao(criterio.getDescricao());
  137 + criterioCadastrado.setPeso(criterio.getPeso());
  138 +
  139 + dao.update(criterioCadastrado);
  140 + result.include("mensagem", Messages.getString("criterio.atualizado"));
  141 + }else{
  142 + criarNovoParametroAvaliacao(criterio,ParametroCalculoController.MODO_EDIT);
  143 + result.include("mensagem", Messages.getString("criterio.salvo"));
  144 + }
128 145 }else{
129 146 criterioCadastrado.setDescricao(criterio.getDescricao());
130 147 dao.update(criterioCadastrado);
131   - result.include("mensagem", "Nenhum campo foi alterado.");
  148 + result.include("mensagem", Messages.getString("validacao.sem_alteracao"));
132 149 }
133 150  
134 151 result.redirectTo(CriteriosController.class).form(
... ... @@ -139,12 +156,20 @@ public class CriteriosController {
139 156 @Restrito(descricao = "CRITERIO_EXCLUIR")
140 157 public void excluir(Long id) {
141 158 Criterio criteiro = dao.load(id);
142   -
  159 + long idRecomendacao = criteiro.getRecomendacao().getId();
  160 + ParametroCalculo pc = paDAO.load(criteiro.getRecomendacao().getParametroCalculo().getId());
  161 +
  162 + result.include("mensagem", Messages.getString("criterio.excluído"));
  163 +
  164 + if(!(new AvaliacaoDAO(dao.getSession()).existeAvaliacao(pc))){
  165 + dao.remove(criteiro.getId());
  166 + result.redirectTo("/recomendacao/form/"+idRecomendacao);
  167 + }else{
143 168 criarNovoParametroAvaliacao(criteiro,
144   - ParametroCalculoController.MODO_DELETE);
145   -
146   - result.include("mensagem", "Criteiro excluída com sucesso.");
147   - result.redirectTo(ParametroCalculoController.class).index(1);
  169 + ParametroCalculoController.MODO_DELETE);
  170 + result.redirectTo(ParametroCalculoController.class).index(1);
  171 + }
  172 +
148 173 }
149 174  
150 175 private void criarNovoParametroAvaliacao(Criterio criterio, int tipo) {
... ... @@ -213,28 +238,28 @@ public class CriteriosController {
213 238  
214 239 if (criterio.getNumeroCriterio() == null) {
215 240 validator.add(new ValidationMessage(
216   - "É obrigatório informar o número da recomendação.",
  241 + Messages.getString("criterio.validacao.numero"),
217 242 "criteiro.numeroCriterio"));
218 243 } else if (hasNumeroCriterioRecomendacaoAtual(criterio)) {
219 244 validator.add(new ValidationMessage(
220   - "Já existe um critério com esse número. Informe outro número para o critério.",
  245 + Messages.getString("criterio.validacao.numero.unique"),
221 246 "criteiro.numeroCriteiro"));
222 247 } else if (criterio.getPeso() == null) {
223 248 validator.add(new ValidationMessage(
224   - "É obrigatório informar o peso do criteiro.",
  249 + Messages.getString("validacao.peso"),
225 250 "criteiro.peso"));
226 251 } else if (criterio.getPeso() <= 0) {
227 252 validator
228 253 .add(new ValidationMessage(
229   - "O peso do criteiro deve ser maior que 0.",
  254 + Messages.getString("validacao.peso.zero"),
230 255 "criteiro.peso"));
231 256 } else if (criterio.getDescricao() == null) {
232 257 validator.add(new ValidationMessage(
233   - "É obrigatório informar a descrição do criteiro.",
  258 + Messages.getString("criterio.validacao.descricao"),
234 259 "criteiro.descricao"));
235 260 } else if (criterio.getTipoTeste().getId() == null) {
236 261 validator.add(new ValidationMessage(
237   - "É obrigatório informar o Tipo de teste.",
  262 + Messages.getString("criterio.validacao.tipo_teste"),
238 263 "criterio.tipoTeste"));
239 264 } else {
240 265 criterio.setTipoTeste(new TipoTesteDAO(dao.getSession())
... ...
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java
... ... @@ -15,6 +15,7 @@ import br.com.eselo.annotations.Restrito;
15 15 import br.com.eselo.component.CopiadorParametroCalculo;
16 16 import br.com.eselo.component.Messages;
17 17 import br.com.eselo.component.UsuarioWeb;
  18 +import br.com.eselo.dao.AvaliacaoDAO;
18 19 import br.com.eselo.dao.CriterioDAO;
19 20 import br.com.eselo.dao.FaixaDAO;
20 21 import br.com.eselo.dao.ParametroCalculoDAO;
... ... @@ -139,11 +140,19 @@ public class FaixaController {
139 140 validator.onErrorUsePageOf(FaixaController.class).add(
140 141 faixa.getCriterio().getId());
141 142 }
142   -
143   -
144   - criarNovoParametroAvaliacao(faixas, ParametroCalculoController.MODO_ADD);
145   -
146   - result.include("mensagem", Messages.getString("faixas.mensagem.salva"));
  143 +
  144 + ParametroCalculo pc = paDAO.load(criterio.getRecomendacao().getParametroCalculo().getId());
  145 + if(!(new AvaliacaoDAO(dao.getSession()).existeAvaliacao(pc))){
  146 +
  147 + for (Faixa faixa : faixas) {
  148 + dao.save(faixa);
  149 + }
  150 + result.include("mensagem", Messages.getString("faixas.mensagem.salva"));
  151 + }else{
  152 + this.criarNovoParametroAvaliacao(faixas,ParametroCalculoController.MODO_ADD);
  153 + result.include("mensagem", Messages.getString("faixas.mensagem.salva"));
  154 + }
  155 +
147 156 result.redirectTo(CriteriosController.class).form(criterio.getId());
148 157 }
149 158  
... ... @@ -174,12 +183,19 @@ public class FaixaController {
174 183 List<Faixa> faixas = new ArrayList<Faixa>();
175 184 faixas.add(faixaCadastrada);
176 185  
177   - criarNovoParametroAvaliacao(faixas, ParametroCalculoController.MODO_EDIT);
178   - result.include("mensagem", Messages.getString("faixas.mensagem.alterada"));
  186 +
  187 + ParametroCalculo pc = paDAO.load(criterio.getRecomendacao().getParametroCalculo().getId());
  188 + if(!(new AvaliacaoDAO(dao.getSession()).existeAvaliacao(pc))){
  189 + dao.update(faixaCadastrada);
  190 + result.include("mensagem", Messages.getString("faixas.mensagem.alterada"));
  191 + }else{
  192 + criarNovoParametroAvaliacao(faixas, ParametroCalculoController.MODO_EDIT);
  193 + result.include("mensagem", Messages.getString("faixas.mensagem.alterada"));
  194 + }
179 195 }else{
180 196 faixaCadastrada.setDescricao(faixa.getDescricao());
181 197 dao.update(faixaCadastrada);
182   - result.include("mensagem", "Nenhum campo foi alterado.");
  198 + result.include("mensagem", Messages.getString("validacao.sem_alteracao"));
183 199 }
184 200  
185 201 result.redirectTo(FaixaController.class).form(faixa.getId()); }
... ...
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/ParametroCalculoController.java
... ... @@ -33,6 +33,7 @@ import br.com.eselo.annotations.Restrito;
33 33 import br.com.eselo.component.CopiadorParametroCalculo;
34 34 import br.com.eselo.component.Messages;
35 35 import br.com.eselo.component.UsuarioWeb;
  36 +import br.com.eselo.dao.AvaliacaoDAO;
36 37 import br.com.eselo.dao.ParametroCalculoDAO;
37 38 import br.com.eselo.dao.RecomendacaoDAO;
38 39 import br.com.eselo.dao.UsuarioDAO;
... ... @@ -86,19 +87,19 @@ public class ParametroCalculoController {
86 87 if(acao.equals("Importar")){
87 88 ParametroCalculo pc = dao.load(idParametroCalculo);
88 89 this.criarNovoParametroCalculo(pc, MODO_IMPORT);
89   - mensagem = "Parâmetro de Cálculo criado com base no parametro "
90   - + pc.getDescricao() + " com sucesso.";
  90 + mensagem = Messages.getString("parametro_calculo.criado")
  91 + + pc.getDescricao() + ".";
91 92  
92 93 result.redirectTo(ParametroCalculoController.class).form(dao.getMaxId());
93 94  
94 95 }else if(acao.equals("Não Importar")){
95 96 criarNovoParametroCalculo(new ParametroCalculo(), MODO_ADD);
96   - mensagem = "Novo parâmetro criado [sem recomendações ou critérios associados]!";
  97 + mensagem = Messages.getString("parametro_calculo.criado.limpo");
97 98  
98 99 result.redirectTo(ParametroCalculoController.class).form(dao.getMaxId());
99 100  
100 101 }else if(acao.equals("Cancelar")){
101   - mensagem = "Ação cancelada!";
  102 + mensagem = Messages.getString("validacao.acao_cancelada");
102 103 result.redirectTo(ParametroCalculoController.class).lista();
103 104 }
104 105  
... ... @@ -185,7 +186,7 @@ public class ParametroCalculoController {
185 186  
186 187 dao.saveOrUpdate(parametroCalculoCadastrado);
187 188  
188   - result.include("mensagem", "Parâmetro de Cálculo alterado com sucesso.");
  189 + result.include("mensagem", Messages.getString("parametro_calculo.atualizado"));
189 190 result.redirectTo(ParametroCalculoController.class).index(1);
190 191 }
191 192  
... ... @@ -193,22 +194,30 @@ public class ParametroCalculoController {
193 194 @Restrito(descricao = "PARAMETRO_CALCULO_EXCLUIR")
194 195 public void excluir(Long id) {
195 196 if (dao.listAll().size() > 1) {
196   - ParametroCalculo pa = dao.load(id);
197   - if ((pa.getTsFim() == null)) {
198   - dao.remove(id);
  197 + ParametroCalculo pc = dao.load(id);
  198 +
  199 + if(!(new AvaliacaoDAO(dao.getSession()).existeAvaliacao(pc))){
  200 + if ((pc.getTsFim() == null)) {
  201 + dao.remove(id);
  202 +
  203 + pc = dao.getLastParametrosCalculo();
  204 + pc.setTsFim(null);
  205 + dao.update(pc);
  206 + result.include("mensagem",
  207 + Messages.getString("parametro_calculo.validacao.excluido"));
  208 + } else {
  209 + result.include("mensagem",
  210 + Messages.getString("parametro_calculo.validacao.nao_pode_excluir"));
  211 + }
  212 + }else{
199 213  
200   - pa = dao.getLastParametrosCalculo();
201   - pa.setTsFim(null);
202   - dao.update(pa);
203 214 result.include("mensagem",
204   - "Parametro de Cálculo excluído com sucesso.");
205   - } else {
206   - result.include("mensagem",
207   - "Parametro de Cálculo não pode ser excluído pois não está ativo.");
  215 + Messages.getString("parametro_calculo.validacao.nao_pode_excluir.em_uso"));
208 216 }
  217 +
209 218 } else {
210 219 result.include("mensagem",
211   - "Este é o único Parametro de Cálculo cadastrado e ele não pode ser excluído.");
  220 + Messages.getString("parametro_calculo.validacao.nao_pode_excluir.unico"));
212 221 }
213 222  
214 223 result.redirectTo(ParametroCalculoController.class).lista();
... ...
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/RecomendacaoController.java
... ... @@ -12,7 +12,9 @@ import br.com.caelum.vraptor.Validator;
12 12 import br.com.caelum.vraptor.validator.ValidationMessage;
13 13 import br.com.eselo.annotations.Restrito;
14 14 import br.com.eselo.component.CopiadorParametroCalculo;
  15 +import br.com.eselo.component.Messages;
15 16 import br.com.eselo.component.UsuarioWeb;
  17 +import br.com.eselo.dao.AvaliacaoDAO;
16 18 import br.com.eselo.dao.ParametroCalculoDAO;
17 19 import br.com.eselo.dao.RecomendacaoDAO;
18 20 import br.com.eselo.model.ParametroCalculo;
... ... @@ -71,11 +73,18 @@ public class RecomendacaoController {
71 73 validator.onErrorUsePageOf(RecomendacaoController.class).form(
72 74 recomendacao.getParametroCalculo().getId());
73 75  
74   - this.criarNovoParametroAvaliacao(recomendacao,
75   - ParametroCalculoController.MODO_ADD);
76   -
77   - result.include("mensagem", "Recomenda��o salva com sucesso.");
78   - result.redirectTo(ParametroCalculoController.class).index(1);
  76 + ParametroCalculo pc = paDAO.load(recomendacao.getParametroCalculo().getId());
  77 + if(!(new AvaliacaoDAO(dao.getSession()).existeAvaliacao(pc))){
  78 +
  79 + dao.save(recomendacao);
  80 + result.include("mensagem", Messages.getString("recomendacao.salva"));
  81 + result.redirectTo(ParametroCalculoController.class).atualizar(pc);
  82 + }else{
  83 + criarNovoParametroAvaliacao(recomendacao,ParametroCalculoController.MODO_ADD);
  84 + result.include("mensagem", Messages.getString("recomendacao.salva"));
  85 + result.redirectTo(ParametroCalculoController.class).index(1);
  86 + }
  87 +
79 88 }
80 89  
81 90 @Put("/recomendacao")
... ... @@ -89,12 +98,22 @@ public class RecomendacaoController {
89 98 recomendacaoCadastrada.getId());
90 99  
91 100 if(validarAtualizacaoRecomendacao(recomendacao)){
92   - criarNovoParametroAvaliacao(recomendacao,ParametroCalculoController.MODO_EDIT);
93   - result.include("mensagem", "Recomendação salva com sucesso.");
  101 + ParametroCalculo pc = paDAO.load(recomendacaoCadastrada.getParametroCalculo().getId());
  102 + if(!(new AvaliacaoDAO(dao.getSession()).existeAvaliacao(pc))){
  103 + recomendacaoCadastrada.setNumeroRecomendacao(recomendacao.getNumeroRecomendacao());
  104 + recomendacaoCadastrada.setDescricao(recomendacao.getDescricao());
  105 + recomendacaoCadastrada.setPeso(recomendacao.getPeso());
  106 +
  107 + dao.update(recomendacaoCadastrada);
  108 + result.include("mensagem", Messages.getString("recomendacao.atualizada"));
  109 + }else{
  110 + criarNovoParametroAvaliacao(recomendacao,ParametroCalculoController.MODO_EDIT);
  111 + result.include("mensagem", Messages.getString("recomendacao.salva"));
  112 + }
94 113 }else{
95 114 recomendacaoCadastrada.setDescricao(recomendacao.getDescricao());
96 115 dao.update(recomendacaoCadastrada);
97   - result.include("mensagem", "Nenhum campo foi alterado.");
  116 + result.include("mensagem", Messages.getString("validacao.sem_alteracao"));
98 117 }
99 118  
100 119 result.redirectTo(RecomendacaoController.class).form(recomendacao.getId());
... ... @@ -104,12 +123,18 @@ public class RecomendacaoController {
104 123 @Restrito(descricao = "RECOMENDACAO_EXCLUIR")
105 124 public void excluir(Long id) {
106 125 Recomendacao recomendacao = dao.load(id);
107   -
  126 +
  127 + result.include("mensagem", Messages.getString("recomendacao.exclusao"));
  128 + ParametroCalculo pc = paDAO.load(recomendacao.getParametroCalculo().getId());
  129 + if(!(new AvaliacaoDAO(dao.getSession()).existeAvaliacao(pc))){
  130 + dao.remove(recomendacao.getId());
  131 + result.redirectTo("/parametrosCalculo/atualizar/"+pc.getId());
  132 + }else{
108 133 criarNovoParametroAvaliacao(recomendacao,
109   - ParametroCalculoController.MODO_DELETE);
110   -
111   - result.include("mensagem", "Recomenda��o exclu�da com sucesso.");
112   - result.redirectTo(ParametroCalculoController.class).index(1);
  134 + ParametroCalculoController.MODO_DELETE);
  135 + result.redirectTo(ParametroCalculoController.class).index(1);
  136 + }
  137 +
113 138 }
114 139  
115 140 private void criarNovoParametroAvaliacao(Recomendacao recomendacao, int tipo) {
... ... @@ -123,16 +148,13 @@ public class RecomendacaoController {
123 148 break;
124 149  
125 150 case ParametroCalculoController.MODO_EDIT:
  151 + ultimoParametroAvaliacao = new CopiadorParametroCalculo().copiarParametroCalculo(paDAO.getLastParametrosCalculo());
126 152 for (Recomendacao r : ultimoParametroAvaliacao.getRecomendacoes()) {
127 153 if (r.getNumeroRecomendacao().longValue() == recomendacao.getNumeroRecomendacao().longValue()) {
128 154  
129   - r.setParametroCalculo(recomendacao.getParametroCalculo());
130   - r.setNumeroRecomendacao(recomendacao
131   - .getNumeroRecomendacao());
  155 + r.setNumeroRecomendacao(recomendacao.getNumeroRecomendacao());
132 156 r.setDescricao(recomendacao.getDescricao());
133 157 r.setPeso(recomendacao.getPeso());
134   - r.setCriterios(recomendacao.getCriterios());
135   - r.setId(recomendacao.getId());
136 158 ok = true;
137 159 break;
138 160 }
... ... @@ -141,8 +163,9 @@ public class RecomendacaoController {
141 163 break;
142 164  
143 165 case ParametroCalculoController.MODO_DELETE:
  166 + ultimoParametroAvaliacao = paDAO.getLastParametrosCalculo();
144 167 for (Recomendacao r : ultimoParametroAvaliacao.getRecomendacoes()) {
145   - if (r.getId().longValue() == recomendacao.getId().longValue()) {
  168 + if (r.getNumeroRecomendacao().longValue() == recomendacao.getNumeroRecomendacao().longValue()) {
146 169 ultimoParametroAvaliacao.removeRecomendacao(recomendacao);
147 170 ok = true;
148 171 break;
... ... @@ -160,25 +183,24 @@ public class RecomendacaoController {
160 183 private void validarRecomendacao(Recomendacao recomendacao) {
161 184  
162 185 if (recomendacao.getNumeroRecomendacao() == null) {
163   - validator.add(new ValidationMessage(
164   - "� obrigat�rio informar o n�mero da recomenda��o.",
  186 + validator.add(new ValidationMessage(Messages.getString("recomendacao.validacao.numero"),
165 187 "recomendacao.numeroRecomendacao"));
166 188 } else if (hasNumeroRecomendacaoNoParametroAtual(recomendacao)) {
167 189 validator
168 190 .add(new ValidationMessage(
169   - "J� existe uma recomenda��o ativa com esse numero. Recomenda��o n�o atualizada.",
  191 + Messages.getString("recomendacao.validacao.numero.unique"),
170 192 "recomendacao.numeroRecomendacao"));
171 193 } else if (recomendacao.getDescricao() == null) {
172 194 validator.add(new ValidationMessage(
173   - "� obrigat�rio informar a descri��o da recomenda��o.",
  195 + Messages.getString("validacao.descricao"),
174 196 "recomendacao.descricao"));
175 197 } else if (recomendacao.getPeso() == null) {
176 198 validator.add(new ValidationMessage(
177   - "� obrigat�rio informar o peso da recomenda��o.",
  199 + Messages.getString("validacao.peso"),
178 200 "recomendacao.peso"));
179 201 } else if (recomendacao.getPeso() <= 0) {
180 202 validator.add(new ValidationMessage(
181   - "O peso da recomenda��o deve ser maior que zero.",
  203 + Messages.getString("validacao.peso.zero"),
182 204 "recomendacao.peso"));
183 205 }
184 206  
... ... @@ -204,13 +226,7 @@ public class RecomendacaoController {
204 226  
205 227 return alteracao;
206 228 }
207   - /**
208   - * Recebe uma recomenda��o antes de ser cadastrada e verifica se ja existe
209   - * uma recomenda��o ativa com o mesmo numero.
210   - *
211   - * @param recomendacao
212   - * @return boolean
213   - */
  229 +
214 230 private boolean hasNumeroRecomendacaoNoParametroAtual(
215 231 Recomendacao recomendacao) {
216 232 boolean retorno = false;
... ...
Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/AvaliacaoDAO.java
... ... @@ -51,9 +51,9 @@ public class AvaliacaoDAO extends GenericDAO&lt;Avaliacao&gt; {
51 51 @SuppressWarnings("unchecked")
52 52 List<Avaliacao> encontrado = getSession()
53 53 .createCriteria(getPersistentClass())
54   - .add(Restrictions.eq("parametroAvaliacao", parametroCalculo))
  54 + .add(Restrictions.eq("parametroCalculo", parametroCalculo))
55 55 .list();
56   - return encontrado.size() >0;
  56 + return encontrado.size() > 0;
57 57 }
58 58  
59 59 }
... ...