relatorioController.java 9.07 KB
package br.com.controller;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletContext;

import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.validator.ValidationMessage;
import br.com.dao.HashDao;
import br.com.dao.RespostaQuestionarioDao;
import br.com.model.entity.AmostragemSiteQuestionario;
import br.com.model.entity.Questionario;
import br.com.model.entity.RespostaQuestionario;
import br.com.util.Validacao;

@Resource
public class relatorioController {
  
  private List<Validacao> mensagemValidacaoCampos = new ArrayList<Validacao>();
  private Result result;
  private Validator validator;
  private Questionario questionario;
  private ServletContext application;
  private String path;
  
  public relatorioController(Result result, Validator validator, ServletContext application) {
    this.result = result;
    this.validator = validator;
    this.application = application;
    this.path = this.application.getRealPath("") + "/WEB-INF/conexao.properties";
  }
  
  
    @Path("/relatorio-site")
    public void relatorio(){      
   
     
    }
    
    @Path("/relatorio-imprimir")
    public void relatorioImprimir(String idQuestionario, String valorHash)
    {          
      if (idQuestionario != null) {
        gerarRelatorio(Integer.parseInt(idQuestionario));
      }
      else if (valorHash != null)
      {
        Validacao validacao = new Validacao();
        mensagemValidacaoCampos = new ArrayList<Validacao>();
        mensagemValidacaoCampos = validacao.validarHashEmitirRelatorio(path, valorHash);

        if (mensagemValidacaoCampos.size() > 0) {
          result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);
          this.validator.add(new ValidationMessage("", ""));
          this.validator.onErrorUsePageOf(relatorioController.class).relatorio();
        }

        HashDao hashDao = new HashDao();
        questionario = new Questionario();
        questionario = hashDao.verificarHash(path, valorHash);
          
        if (questionario.getDtInicioQuestionario() != null && questionario.isQuestionario_respondido()) {
          gerarRelatorio(questionario.getIdQuestionario());
        }
        
      }
    }
    
    private void gerarRelatorio(int idQuestionario)
    {
      Questionario questionario = new Questionario(path, idQuestionario);
      RespostaQuestionarioDao respostaQuestionarioDao = new RespostaQuestionarioDao();
      
      List<RespostaQuestionario> lsRespostaQuestionario = new ArrayList<RespostaQuestionario>();
      List<AmostragemSiteQuestionario> lsAmostragemSiteQuestionario =
          new ArrayList<AmostragemSiteQuestionario>();
      
      lsRespostaQuestionario =
          respostaQuestionarioDao.retornarRespostaQuestionarioPorQuestionario(path, questionario
              .getIdQuestionario());
      
      List<String> curso = new ArrayList<String>();
      List<String> simValidacao = new ArrayList<String>();
      List<String> assistiva = new ArrayList<String>();
      List<String> deficiencias = new ArrayList<String>();
      List<String> ferramentaValidacao = new ArrayList<String>();

      for (RespostaQuestionario respostaQuestionario : lsRespostaQuestionario) {

        switch (respostaQuestionario.getPergunta().getIdPergunta()) {
          case 1:
            result.include("nomeOrgao", respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;
          case 2:
            result.include("nomePessoa",  respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;
          case 3:
            result.include("cargo",  respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;
          case 4:
            result.include("telefone",  respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;
          case 5:
            result.include("email",  respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;
          case 7:
            result.include("perguntaAcessibilidade", respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;
          case 8:
            result.include("reclamacao", respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;
          case 9:
            result.include("espacoReclamacao",  respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;
          case 10:
            result.include("perguntaEstimulo", respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;
          case 11:
            curso.add(respostaQuestionario.getOpcaoResposta().getDescOpcaoResposta());
            break;
          case 12:
            result.include("requisito", respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;
          case 13:
            result.include("justificativaRequisito",  respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;
          case 14:
            result.include("opcaoContrat", respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;
          case 15:
            result.include("perguntaValidacao", respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;
          case 16:
            simValidacao.add(respostaQuestionario.getOpcaoResposta().getDescOpcaoResposta());
            break;
          case 17:
            ferramentaValidacao.add(respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;
          case 18:
            result.include("outroAvaliador",  respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;
          case 19:
            
            lsAmostragemSiteQuestionario.add(respostaQuestionario.getAmostragemSiteQuestionario());
            break;
         /* case 20:
            result.include("nivelWcag", respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;*/
          case 21:
            result.include("checklistQtnList", respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;
          case 22:
            deficiencias.add(respostaQuestionario.getOpcaoResposta().getDescOpcaoResposta());
            break;
          case 23:
            result.include("funcionalidade", respostaQuestionario.getOpcaoResposta()
                .getDescOpcaoResposta());
            break;
          case 24:
            assistiva.add(respostaQuestionario.getOpcaoResposta().getDescOpcaoResposta());
            break;
          case 25:
            result.include("justificativaAssistiva",  respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;
          case 26:
            result.include("dificuldadePrazo",  respostaQuestionario.getTextoResposta().equalsIgnoreCase("null") ?respostaQuestionario.getTextoResposta().replace("null", "Não Respondido"):respostaQuestionario.getTextoResposta());
            break;         
          default:
            break;
        }


      }
      result.include("dataRespostaQuestionario", respostaQuestionarioDao.retornarDataRespostaQuestionarioPorQuestionario(path, idQuestionario));
      
      if(curso.size() == 0)
      {
        curso.add("Não Respondido");
      }
      
      if(simValidacao.size() == 0)
      {
        simValidacao.add("Não Respondido");
      }
      
      if(deficiencias.size() == 0)
      {
        deficiencias.add("Não Respondido");
      }
      
      result.include("curso", curso);
      result.include("simValidacao", simValidacao);
      result.include("assistiva", assistiva);
      result.include("deficiencias", deficiencias);
      result.include("ferramentaValidacao", ferramentaValidacao);
      result.include("questionario", questionario);
      result.include("lsAmostragemSiteQuestionario", lsAmostragemSiteQuestionario);      
    }
}