formularioOrgaoController.java 9.51 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.Post;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.Validator;
import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder;
import br.com.caelum.vraptor.validator.ValidationMessage;
import br.com.dao.HashDao;
import br.com.dao.PlanoTrabalhoDao;
import br.com.dao.RespostaQuestionarioDao;
import br.com.model.entity.PlanoTrabalho;
import br.com.model.entity.Questionario;
import br.com.model.entity.RespostaQuestionario;
import br.com.util.Validacao;

@Resource
public class formularioOrgaoController {

  private List<Validacao> mensagemValidacaoCampos = new ArrayList<Validacao>();
  private Result result;
  private Validator validator;
  private Questionario questionario;
  private String path;
  private ServletContext application;

  public formularioOrgaoController() {

  }

  public formularioOrgaoController(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("/logout")
  public void logout()
  {
    VRaptorRequestHolder.currentRequest().getServletContext()
    .setAttribute("usuarioLogado", false);
  }

  @Path("/formularioOrgao")
  public void formularioOrgao(String valorHash) {

    Validacao validacao = new Validacao();
    mensagemValidacaoCampos = new ArrayList<Validacao>();
    mensagemValidacaoCampos = validacao.validarHash(path, valorHash);

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

    HashDao hashDao = new HashDao();
    questionario = new Questionario();
    questionario = hashDao.verificarHash(path, valorHash);

    verificarPosicaoUsuario(questionario);
    
    if(!questionario.isFlagEnviado())
    {  
    
    if (questionario.getDtInicioQuestionario() != null && !valorHash.equalsIgnoreCase("")) {
    
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("usuarioLogado", true);
      
      
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("valorHash", valorHash);
      
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("questionario", questionario);
      
      RespostaQuestionarioDao respostaQuestionarioDao = new RespostaQuestionarioDao();

      List<RespostaQuestionario> lsRespostaQuestionario = new ArrayList<RespostaQuestionario>();

      lsRespostaQuestionario =
          respostaQuestionarioDao.retornarRespostaQuestionarioPorQuestionario(path ,questionario
              .getIdQuestionario());
      int idPergunta;
      
      for (RespostaQuestionario respostaQuestionario : lsRespostaQuestionario) {
        idPergunta = respostaQuestionario.getPergunta().getIdPergunta();        
        switch (respostaQuestionario.getPergunta().getIdPergunta()) {
          case 1:
            result.include("nomeOrgao", respostaQuestionario.getTextoResposta());
            break;
          case 2:
            result.include("nomePessoa", respostaQuestionario.getTextoResposta());
            break;
          case 3:
            result.include("cargo", respostaQuestionario.getTextoResposta());
            break;
          case 4:
            result.include("telefone", respostaQuestionario.getTextoResposta());
            break;
          case 5:
            result.include("email", respostaQuestionario.getTextoResposta());            
            break;
          default:
            break;          
        }
        
        String nomeCampo = respostaQuestionario.getAmostragemSiteQuestionario().getNomeCampo();
        
        if(nomeCampo != null)
        {
        setValorCamposUrl(nomeCampo, 
            respostaQuestionario.getAmostragemSiteQuestionario().getUrlAmostraSiteQuestionario());
        }
      }
    }
    }
    else
    {
      validacao = new Validacao();
      validacao.setCampo("valorHash");
      validacao
          .setMensagem("ATENÇÃO: Você já concluiu todos os passos do envio do relatório circunstanciado à PFDC/MPF. Não é mais possível alterar seus dados.");
      
      mensagemValidacaoCampos.add(validacao);
      
      result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);
      this.validator.add(new ValidationMessage("", ""));
      this.validator.onErrorUsePageOf(loginController.class).login();
    }
  }

  private void setValorCamposUrl(String nomeCampo, String valorCampo)
  {
  //ambiente 1
    if(nomeCampo.equalsIgnoreCase("hAmbiente1"))
    {
      result.include("ambiente1", valorCampo); 
    }
    
    if(nomeCampo.equalsIgnoreCase("hPagina11"))
    {
      result.include("pagina11", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina12"))
    {
      result.include("pagina12", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina13"))
    {
      result.include("pagina13", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina14"))
    {
      result.include("pagina14", valorCampo); 
    }
    
  //ambiente 2
    if(nomeCampo.equalsIgnoreCase("hAmbiente2"))
    {
      result.include("ambiente2", valorCampo); 
    }
    
    if(nomeCampo.equalsIgnoreCase("hPagina21"))
    {
      result.include("pagina21", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina22"))
    {
      result.include("pagina22", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina23"))
    {
      result.include("pagina23", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina24"))
    {
      result.include("pagina24", valorCampo); 
    }
    
  //ambiente 3
    if(nomeCampo.equalsIgnoreCase("hAmbiente3"))
    {
      result.include("ambiente3", valorCampo); 
    }
    
    if(nomeCampo.equalsIgnoreCase("hPagina31"))
    {
      result.include("pagina31", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina32"))
    {
      result.include("pagina32", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina33"))
    {
      result.include("pagina33", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina34"))
    {
      result.include("pagina34", valorCampo); 
    }
    
  //ambiente 4
    if(nomeCampo.equalsIgnoreCase("hAmbiente4"))
    {
      result.include("ambiente4", valorCampo); 
    }
    
    if(nomeCampo.equalsIgnoreCase("hPagina41"))
    {
      result.include("pagina41", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina42"))
    {
      result.include("pagina42", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina43"))
    {
      result.include("pagina43", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina44"))
    {
      result.include("pagina44", valorCampo); 
    }
    
    
    //ambiente 5
    if(nomeCampo.equalsIgnoreCase("hAmbiente5"))
    {
      result.include("ambiente5", valorCampo); 
    }
    
    if(nomeCampo.equalsIgnoreCase("hPagina51"))
    {
      result.include("pagina51", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina52"))
    {
      result.include("pagina52", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina53"))
    {
      result.include("pagina53", valorCampo); 
    }
    if(nomeCampo.equalsIgnoreCase("hPagina54"))
    {
      result.include("pagina54", valorCampo); 
    }
  }
  
  public void verificarPosicaoUsuario(Questionario questionario)
  {
    PlanoTrabalho planoTrabalho = new PlanoTrabalho();
    PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
    
    //Solicitou código de Acesso?
    VRaptorRequestHolder.currentRequest().getServletContext()
    .setAttribute("nivel_01", true);
        
    //Respondeu FAD?
    if(questionario.isQuestionario_respondido())
    {
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("nivel_02", true);
    }
    else
    {
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("nivel_02", false);
    }
          
    planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);
    
    //Anexou Fad?
    if(planoTrabalho.getArquivoRelatorioAss() != null)
    {
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("nivel_03", true);
    }
    else
    {
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("nivel_03", false);
    }
        
    //Anexou Plano de Trabalho?
    if(planoTrabalho.getArquivoPlanoTrabalho() != null)
    {
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("nivel_04", true);
    }
    else
    {
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("nivel_04", false);
    }
    
    //Processo finalizado?
    if(questionario.isFlagEnviado())
    {
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("nivel_05", true);     
    }
    else
    {
      VRaptorRequestHolder.currentRequest().getServletContext()
      .setAttribute("nivel_05", false);
    }
    
  }

}