diff --git a/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/CopiadorParametroAvaliacao.java b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/CopiadorParametroAvaliacao.java new file mode 100644 index 0000000..39342c0 --- /dev/null +++ b/Desenvolvimento/Codificacao/e-Selo/src/main/java/br/com/eselo/component/CopiadorParametroAvaliacao.java @@ -0,0 +1,73 @@ +package br.com.eselo.component; + +import java.util.Date; + +import org.hibernate.Session; + +import br.com.eselo.dao.ParametroAvaliacaoDAO; +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; + +public class CopiadorParametroAvaliacao { + + public void criarNovoParametroAvaliacao(ParametroAvaliacao ultimoParametroAvaliacao, UsuarioWeb usuarioWeb, Session session) { + + ParametroAvaliacaoDAO parametroAvaliacaoDAO = new ParametroAvaliacaoDAO(session); + + UsuarioDAO usuarioDAO = new UsuarioDAO(session); + Usuario usuario = usuarioDAO.load(usuarioWeb.getId()); + + // Cria o parametro + ParametroAvaliacao novoParametroAvaliacao = new ParametroAvaliacao(); + novoParametroAvaliacao.setUsuario(usuario); + novoParametroAvaliacao.setTsInicio(new Date()); + novoParametroAvaliacao.setTsFim(null); + + for(Recomendacao recomendacao:ultimoParametroAvaliacao.getRecomendacoes()){ + + Recomendacao novaRecomendacao = new Recomendacao(); + novaRecomendacao.setParametroAvaliacao(novoParametroAvaliacao); + novaRecomendacao.setNumeroRecomendacao(recomendacao.getNumeroRecomendacao()); + novaRecomendacao.setDescricao(recomendacao.getDescricao()); + novaRecomendacao.setPeso(recomendacao.getPeso()); + novaRecomendacao.setTipoRecomendacao(recomendacao.getTipoRecomendacao()); + + for(Criterio criterio: recomendacao.getCriterios()){ + + Criterio novoCriterio = new Criterio(); + novoCriterio.setRecomendacao(novaRecomendacao); + novoCriterio.setNumeroCriterio(criterio.getNumeroCriterio()); + novoCriterio.setDescricao(criterio.getDescricao()); + novoCriterio.setPeso(criterio.getPeso()); + novoCriterio.setTipoTeste(criterio.getTipoTeste()); + + for(Faixa faixa: criterio.getFaixas()){ + Faixa novaFaixa = new Faixa(); + novaFaixa.setCriterio(novoCriterio); + novaFaixa.setDescricao(faixa.getDescricao()); + novaFaixa.setFaixa(faixa.getFaixa()); + novaFaixa.setFaixaInicio(faixa.getFaixaInicio()); + novaFaixa.setFaixaFim(faixa.getFaixaFim()); + novaFaixa.setPercentualConformidade(faixa.getPercentualConformidade()); + + novoCriterio.addFaixa(novaFaixa); + } + + novaRecomendacao.addCriterio(novoCriterio); + } + + novoParametroAvaliacao.addRecomendacao(novaRecomendacao); + } + + // Salva novo e atualiza o ultimo + parametroAvaliacaoDAO.save(novoParametroAvaliacao); + ultimoParametroAvaliacao = parametroAvaliacaoDAO.load(ultimoParametroAvaliacao.getId()); + ultimoParametroAvaliacao.setTsFim(novoParametroAvaliacao.getTsInicio()); + parametroAvaliacaoDAO.update(ultimoParametroAvaliacao); + } + +} -- libgit2 0.21.2