formularioOrgaoController.java 9.9 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(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>();

    HashDao hashDao = new HashDao();

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

    verificarPosicaoUsuario(questionario);

   // if (!questionario.isFlagEnviado()) {
      //if (!hashDao.verificarDataExpirada(path, valorHash)) {

        mensagemValidacaoCampos = validacao.validarHash(path, valorHash);

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



        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: O prazo para o preenchimento do formulário está expirado.");

     //   mensagemValidacaoCampos.add(validacao);

      //  result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);
     //   this.validator.add(new ValidationMessage("", ""));
      //  this.validator.onErrorUsePageOf(loginController.class).login();
     // }

      VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("flagEnviado", false);
      
    //} 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);
    }

  }

}