diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/criterios/form.jsp b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/criterios/form.jsp index 1897ebd..f0455a3 100644 --- a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/criterios/form.jsp +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/criterios/form.jsp @@ -35,7 +35,12 @@ - +
+ +
+ +
+
@@ -67,22 +72,28 @@ - + - - + + + + + + + +
FaixasFaixas
Faixa InicialFaixa FinalFaixaDescriçãoInicioFim%  
${faixa.faixa}${faixa.descricao} ${faixa.faixaInicio} ${faixa.faixaFim}${faixa.percentualConformidade}
- " class="btn btn-default btn-sm">Consultar + " class="btn btn-default btn-sm">Consultar " class="btn btn-default btn-sm btn-confirm" data-msg="Deseja realmente excluir a faixa selecionado?">Excluir diff --git a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/faixa/form.jsp b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/faixa/form.jsp index fda95ca..ce7a664 100644 --- a/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/faixa/form.jsp +++ b/Desenvolvimento/Codificacao/e-Selo/WebContent/WEB-INF/jsp/faixa/form.jsp @@ -5,10 +5,8 @@ - "> - Conformidades - - + "> Parametros de Cálculo +
@@ -27,27 +25,43 @@
-
" method="post"> + " method="post">
- - +
+ +
+ +
+
+
+ +
+ +
+
+
- +
-
- + +
+
+
+ +
+
- - + + diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java index 069ed37..4e9fe08 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/CriteriosController.java @@ -5,6 +5,7 @@ import java.util.List; import br.com.caelum.vraptor.Get; import br.com.caelum.vraptor.Path; +import br.com.caelum.vraptor.Post; import br.com.caelum.vraptor.Put; import br.com.caelum.vraptor.Resource; import br.com.caelum.vraptor.Result; @@ -37,29 +38,27 @@ public class CriteriosController { this.usuarioWeb=_usuarioWeb; } - public List lista() { - return this.index(1); + public List lista(Long idRecomendacao) { + return this.index(idRecomendacao,1); } - - - - @Get("/criterio/{pagina}") + @Get("/criterio/{idRecomendacao}/{pagina}") @Restrito(descricao = "CRITERIO_LISTA") - public List index(int pagina) { - ParametroAvaliacao ultimoParametroAvaliacao = dao.getLastParametrosAvaliacao(); + public List index(Long idRecomendacao, int pagina) { + RecomendacaoDAO rDAO = new RecomendacaoDAO(dao.getSession()); + Recomendacao recomendacaoAtual = rDAO.load(idRecomendacao); - // Paginaçã£o + // Paginação // Quantidade de registros por pagina int exibi = 7; // Informa a quantidade de registros - int registros = dao.numLinhas(ultimoParametroAvaliacao); + int registros = dao.numLinhas(recomendacaoAtual); - // Quantidade de paginas na paginaçã£o + // Quantidade de paginas na paginação int totalPag = registros / exibi; - // Se houver resto na divisao acima acrescenta uma pagina na paginaçã£o + // Se houver resto na divisao acima acrescenta uma pagina na paginação if ((registros - (totalPag * exibi)) > 0) totalPag++; @@ -71,9 +70,9 @@ public class CriteriosController { regFim = registros; } - // Fim paginaçã£o - List resultado = dao.listAllAtivas(ultimoParametroAvaliacao); - List paginacao = new ArrayList(); + // Fim paginação + List resultado = dao.listAllAtivas(recomendacaoAtual); + List paginacao = new ArrayList(); for (int i = regIni; i < regFim; i++) { paginacao.add(resultado.get(i)); @@ -84,7 +83,7 @@ public class CriteriosController { result.include("regInic", ++regIni); result.include("regFim", regFim); result.include("controle", "diretriz"); - result.include("parametroAvaliacao", ultimoParametroAvaliacao); + result.include("parametroAvaliacao", recomendacaoAtual.getParametroAvaliacao()); return paginacao; } @@ -99,39 +98,36 @@ public class CriteriosController { return criterio; } - - - - - -public void adicionar(Criterio criterio) { + @Post("/criterio") + @Restrito(descricao = "CRITERIO_ADICIONAR") + public void adicionar(Criterio criterio) { if (criterio.getNumeroCriterio() == null) { validator.add(new ValidationMessage( - "É obrigatório informar o número do critério.", + "ɉ obrigatório informar o número do critério.", "recomendacao.numeroRecomendacao")); - } else if (hasNumeroCriNterioRecomendacaoAtual(criterio)) { + } else if (hasNumeroCriterioRecomendacaoAtual(criterio)) { validator .add(new ValidationMessage( - "Já existe uma recomendaçã£o ativa com esse numero. Recomendaçã£o não cadastrada.", - "recomendacao.numeroRecomendacao")); + "Já existe um críterio ativo com esse numero. Critério não cadastrado.", + "criterio.numeroCriterio")); } else if (criterio.getDescricao() == null) { validator.add(new ValidationMessage( - "É obrigatório informar a descriçã£o da recomendação.", - "recomendacao.descricao")); + "ɉ obrigatório informar a descrição do critério.", + "criterio.descricao")); } else if (criterio.getPeso() == null) { validator.add(new ValidationMessage( - "É obrigatório informar o peso da recomendação.", - "recomendacao.peso")); + "É obrigatório informar o peso do critério.", + "criterio.peso")); } else if (criterio.getPeso() <= 0) { validator.add(new ValidationMessage( - "O peso da recomendação deve ser maior que zero.", - "recomendacao.peso")); + "O peso do critério deve ser maior que zero.", + "criterio.peso")); } validator.onErrorUsePageOf(RecomendacaoController.class).form( - criterio.getParametroAvaliacao().getId()); + criterio.getRecomendacao().getId()); this.criarNovoParametroAvaliacao(criterio, ParametroAvaliacaoController.MODO_ADD); @@ -139,56 +135,52 @@ public void adicionar(Criterio criterio) { result.redirectTo(ParametroAvaliacaoController.class).index(1); } - @Put("/recomendacao") - @Restrito(descricao = "RECOMENDACAO_ATUALIZAR") - public void atualizar(Recomendacao recomendacao) { - Recomendacao recomendacaoCadastrada = dao.load(recomendacao.getId()); - recomendacaoCadastrada.setNumeroRecomendacao(recomendacao.getNumeroRecomendacao()); - recomendacaoCadastrada.setDescricao(recomendacao.getDescricao()); + @Put("/criterio") + @Restrito(descricao = "CRITERIO_ATUALIZAR") + public void atualizar(Criterio criterio) { + Criterio criterioCadastrado = dao.load(criterio.getId()); + criterioCadastrado.setNumeroCriterio(criterio.getNumeroCriterio()); + criterioCadastrado.setDescricao(criterio.getDescricao()); + criterioCadastrado.setPeso(criterio.getPeso()); + criterioCadastrado.setTipoTeste(criterio.getTipoTeste()); - if (recomendacao.getNumeroRecomendacao() == null) { + if (criterio.getNumeroCriterio() == null) { validator.add(new ValidationMessage( - "É obrigatório informar o número da recomendação.", - "recomendacao.numeroRecomendacao")); - } else if (hasNumeroCriNoParametroAtual(recomendacao)) { + "ɉ obrigatório informar o número da recomendação.", + "criteiro.numeroCriterio")); + } else if (hasNumeroCriterioRecomendacaoAtual(criterioCadastrado)) { validator .add(new ValidationMessage( - "Já existe uma recomendação ativa com esse numero. Recomendaçã£o não atualizada.", - "recomendacao.numeroRecomendacao")); - } else if (recomendacao.getDescricao() == null) { + "Já existe um criteiro ativo com esse numero. Criteiro não atualizado.", + "criteiro.numeroCriteiro")); + } else if (criterio.getDescricao() == null) { validator.add(new ValidationMessage( - "É obrigatório informar a descriçã£o da recomendaçã£o.", - "recomendacao.descricao")); - } else if (recomendacao.getPeso() == null) { + "ɉ obrigatório informar a descrição do criteiro.", + "criteiro.descricao")); + } else if (criterio.getPeso() == null) { validator.add(new ValidationMessage( - "É obrigatório informar o peso da recomendaçã£o.", - "recomendacao.peso")); + "ɉ obrigatório informar o peso do criteiro.", + "criteiro.peso")); } validator.onErrorUsePageOf(ParametroAvaliacaoController.class).form( - recomendacaoCadastrada.getParametroAvaliacao().getId()); + criterioCadastrado.getRecomendacao().getId()); - criarNovoParametroAvaliacao(recomendacao, ParametroAvaliacaoController.MODO_EDIT); + criarNovoParametroAvaliacao(criterio, ParametroAvaliacaoController.MODO_EDIT); result.redirectTo(ParametroAvaliacaoController.class).index(1); } - @Path("/recomendacao/delete/{id}") - @Restrito(descricao = "RECOMENDACAO_EXCLUIR") + @Path("/criterio/delete/{id}") + @Restrito(descricao = "CRITERIO_EXCLUIR") public void excluir(Long id) { - Recomendacao recomendacao = dao.load(id); + Criterio criteiro = dao.load(id); - criarNovoParametroAvaliacao(recomendacao, ParametroAvaliacaoController.MODO_DELETE); + criarNovoParametroAvaliacao(criteiro, ParametroAvaliacaoController.MODO_DELETE); - result.include("mensagem", "Recomendaçã£o excluída com sucesso."); + result.include("mensagem", "Criteiro excluída com sucesso."); result.redirectTo(ParametroAvaliacaoController.class).index(1); } - - - - - - private void criarNovoParametroAvaliacao(Criterio criterio, int tipo) { ParametroAvaliacao ultimoParametroAvaliacao = paDAO.getLastParametrosAvaliacao(); @@ -254,7 +246,7 @@ public void adicionar(Criterio criterio) { * @param criterio * @return boolean */ - private boolean hasNumeroCriNterioRecomendacaoAtual(Criterio criterio) { + private boolean hasNumeroCriterioRecomendacaoAtual(Criterio criterio) { boolean retorno = false; List listaCadastrada = new RecomendacaoDAO(dao.getSession()).load(criterio.getRecomendacao().getId()).getCriterios(); diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java index a2ba362..d5e0a68 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/controller/FaixaController.java @@ -1,5 +1,6 @@ package br.com.eselo.controller; +import java.util.ArrayList; import java.util.List; import br.com.caelum.vraptor.Get; @@ -18,18 +19,15 @@ import br.com.eselo.dao.CriterioDAO; import br.com.eselo.dao.FaixaDAO; import br.com.eselo.dao.ParametroAvaliacaoDAO; import br.com.eselo.dao.RecomendacaoDAO; -import br.com.eselo.dao.UsuarioDAO; import br.com.eselo.model.Criterio; import br.com.eselo.model.Faixa; import br.com.eselo.model.ParametroAvaliacao; import br.com.eselo.model.Recomendacao; -import br.com.eselo.model.Usuario; @Resource public class FaixaController { private final FaixaDAO dao; - private final RecomendacaoDAO daoRecomendacao; private final CriterioDAO daoCriterio; private final ParametroAvaliacaoDAO paDAO; private final Result result; @@ -40,7 +38,6 @@ public class FaixaController { RecomendacaoDAO _daoRecomendacao, CriterioDAO _daoCriterio, ParametroAvaliacaoDAO _daoParametro, Result _result, Validator _validator, UsuarioWeb _usuarioWeb) { this.dao = _dao; - this.daoRecomendacao = _daoRecomendacao; this.daoCriterio = _daoCriterio; this.paDAO = _daoParametro; this.result = _result; @@ -48,16 +45,61 @@ public class FaixaController { this.usuarioWeb = _usuarioWeb; } + public List lista(Long idCriterio) { + return this.index(idCriterio, 1); + } + @Get("/conformidades") @Restrito(descricao = "CONFORMIDADES_LISTA") - public List lista() { - return dao.listAll(); + public List index(Long idCriterio, int pagina) { + CriterioDAO cDAO = new CriterioDAO(dao.getSession()); + Criterio criterioAtual = cDAO.load(idCriterio); + + // Paginação + // Quantidade de registros por pagina + int exibi = 7; + + // Informa a quantidade de registros + int registros = dao.numLinhas(criterioAtual); + + // Quantidade de paginas na paginação + int totalPag = registros / exibi; + + // Se houver resto na divisao acima acrescenta uma pagina na paginação + if ((registros - (totalPag * exibi)) > 0) + totalPag++; + + // Calculo do registro inicial e final + int regIni = ((exibi * pagina) - exibi); + int regFim = (regIni + exibi); + + if (regFim > registros) { + regFim = registros; + } + + // Fim paginação + List resultado = dao.listAllAtivas(criterioAtual); + List paginacao = new ArrayList(); + + for (int i = regIni; i < regFim; i++) { + paginacao.add(resultado.get(i)); + } + + result.include("paginas", totalPag); + result.include("registros", registros); + result.include("regInic", ++regIni); + result.include("regFim", regFim); + result.include("controle", "diretriz"); + result.include("parametroAvaliacao", criterioAtual.getRecomendacao().getParametroAvaliacao()); + + return paginacao; } + @Get("/conformidades/gerarForm/{diretrizId}/{quantidade}") @Restrito(descricao = "CONFORMIDADES_ADICIONAR") - public void gerarForm(Long diretrizId, Long quantidade) { - result.include("quantidadeConformidades", quantidade); + public void gerarForm(Long diretrizId, Long faixaId) { + //result.include("quantidadeConformidades", quantidade); result.forwardTo(this).add(diretrizId); } @@ -71,17 +113,13 @@ public class FaixaController { populateSelectLists(); } - @Get("/conformidades/{criterioId}/{id}") + @Get("/conformidades/form/{id}") @Restrito(descricao = "CONFORMIDADES_ATUALIZAR") - public Faixa form(Long criterioId, Long id) { + public Faixa form(Long id) { Faixa faixa = dao.load(id); - Criterio criterio = daoCriterio.load(criterioId); - ParametroAvaliacao parametro = paDAO.load(criterio.getRecomendacao() - .getParametroAvaliacao().getId()); - - result.include("criterioId", criterioId); - result.include("parametroAvaliacao", parametro); + result.include("criterioId", faixa.getCriterio().getId()); + result.include("parametroAvaliacao", faixa.getCriterio().getRecomendacao().getParametroAvaliacao()); populateSelectLists(); return faixa; @@ -119,9 +157,7 @@ public class FaixaController { populateSelectLists(); - validator.onErrorUsePageOf(FaixaController.class).form( - faixaCadastrada.getCriterio().getId(), - faixaCadastrada.getId()); + validator.onErrorUsePageOf(FaixaController.class).form(faixaCadastrada.getId()); faixaCadastrada.setCriterio(faixa.getCriterio()); faixaCadastrada.setFaixaInicio(faixa.getFaixaInicio()); diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/CriterioDAO.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/CriterioDAO.java index 5fffae2..8ecd4e2 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/CriterioDAO.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/CriterioDAO.java @@ -4,6 +4,7 @@ import java.util.List; import org.hibernate.Session; import org.hibernate.criterion.Order; +import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import br.com.caelum.vraptor.ioc.Component; @@ -27,7 +28,7 @@ public class CriterioDAO extends GenericDAO { public List listAllAtivas(Recomendacao recomendacao) { return getSession().createCriteria(getPersistentClass()) .add(Restrictions.eq("recomendacao", recomendacao)) - .addOrder(Order.asc("id")).list(); + .addOrder(Order.asc("numeroCriterio")).list(); } public Object getAllTipoTeste() { @@ -37,4 +38,9 @@ public class CriterioDAO extends GenericDAO { return tipoTesteDao.listAll(); } + public int numLinhas(Recomendacao recomendacao) { + return (Integer) session.createCriteria(getPersistentClass()) + .add(Restrictions.eq("recomendacao", recomendacao)) + .setProjection(Projections.rowCount()).uniqueResult(); + } } diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/FaixaDAO.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/FaixaDAO.java index 02dc5bf..f6c518f 100644 --- a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/FaixaDAO.java +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/dao/FaixaDAO.java @@ -4,9 +4,11 @@ import java.util.List; import org.hibernate.Session; import org.hibernate.criterion.Order; +import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import br.com.caelum.vraptor.ioc.Component; +import br.com.eselo.model.Criterio; import br.com.eselo.model.Faixa; import br.com.eselo.model.Recomendacao; @@ -29,6 +31,13 @@ public class FaixaDAO extends GenericDAO { return diretrizDao.listAll(); } + + @SuppressWarnings("unchecked") + public List listAllAtivas(Criterio criterio) { + return getSession().createCriteria(getPersistentClass()) + .add(Restrictions.eq("criterio", criterio)) + .addOrder(Order.asc("faixa")).list(); + } @SuppressWarnings("unchecked") public List getByDiretriz(Recomendacao recomendacao) { @@ -36,5 +45,11 @@ public class FaixaDAO extends GenericDAO { .add(Restrictions.eq("recomendacao", recomendacao)) .addOrder(Order.asc("id")).list(); } + + public int numLinhas(Criterio criterio) { + return (Integer) session.createCriteria(getPersistentClass()) + .add(Restrictions.eq("criterio", criterio)) + .setProjection(Projections.rowCount()).uniqueResult(); + } } -- libgit2 0.21.2