Commit 4afe9aade2f3c7aa768ce876027bc361014cb3a9

Authored by gibransodre
1 parent 915e9079
Exists in master

Listar questionários com filtros e enviar relatório para o MPF.

WebContent/WEB-INF/jsp/planoTrabalho/enviarRelatorioPlanoTrabalho.jsp 0 → 100644
@@ -0,0 +1,50 @@ @@ -0,0 +1,50 @@
  1 +<%@page contentType="text/html" pageEncoding="UTF-8"%>
  2 +<%@taglib prefix="t" tagdir="/WEB-INF/tags"%>
  3 +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  4 +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
  5 +
  6 +<t:baseLayout>
  7 + <jsp:body>
  8 +
  9 +
  10 + <div class="funcionalidades">
  11 + <ul class="breadcrumb">
  12 + <li>
  13 + <span>Você está em:</span>
  14 + </li>
  15 + <li>
  16 + <a href="${pageContext.request.contextPath}/" id="bcFormulario"> Página Inicial </a>
  17 + </li>
  18 + <li>| Envio de Email para MPF</li>
  19 + </ul>
  20 + </div>
  21 +
  22 + <div>
  23 + <c:if test="${not empty mensagemValidacaoCampos}">
  24 + <c:forEach items="${mensagemValidacaoCampos}" var="error">
  25 + <div class="alinName">
  26 + <a id="mensagemErroCampoVazio_${error.campo}"
  27 + href="#${error.campo}">${error.mensagem}</a>
  28 + </div>
  29 + <br />
  30 + </c:forEach>
  31 + </c:if>
  32 + </div>
  33 +
  34 +
  35 + <form
  36 + action="${pageContext.request.contextPath}/enviar-email-mpf-alternativo"
  37 + method="post" enctype="multipart/form-data">
  38 + <fieldset class="layoutCampos">
  39 + <legend>Envio de Relatório e Plano de trabalho para MPF</legend>
  40 + <label for="valorHash">Código de acesso: </label>
  41 + <input type="password" id="valorHash" name="valorHash" size="60"
  42 + maxlength="60" required><br><br>
  43 +
  44 + <input type="submit" class="button" value="Enviar Email">
  45 + </fieldset>
  46 +
  47 + </form>
  48 +
  49 + </jsp:body>
  50 +</t:baseLayout>
WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalho.jsp
@@ -14,12 +14,12 @@ @@ -14,12 +14,12 @@
14 </li> 14 </li>
15 <li> 15 <li>
16 <a href="${pageContext.request.contextPath}/" id="bcFormulario"> Página Inicial </a></li> 16 <a href="${pageContext.request.contextPath}/" id="bcFormulario"> Página Inicial </a></li>
17 - <li>| Plano de Trabalho</li> 17 + <li>| Anexo de Relatório e Plano de Trabalho</li>
18 </ul> 18 </ul>
19 </div> 19 </div>
20 20
21 <div> 21 <div>
22 - <h2 class="titulo">Plano de Trabalho</h2> 22 + <h2 class="titulo">Anexo de Relatório e Plano de Trabalho</h2>
23 </div> 23 </div>
24 24
25 <p>Conforme determina a portaria que regula este formulário circunstanciado em seu artigo 4º:</p> 25 <p>Conforme determina a portaria que regula este formulário circunstanciado em seu artigo 4º:</p>
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
29 29
30 <form action="${pageContext.request.contextPath}/salvar-plano-trabalho" method="post" enctype="multipart/form-data"> 30 <form action="${pageContext.request.contextPath}/salvar-plano-trabalho" method="post" enctype="multipart/form-data">
31 <fieldset class="layoutCampos"> 31 <fieldset class="layoutCampos">
32 - <legend>Plano de Trabalho</legend> 32 + <legend>Anexo de Relatório e Plano de Trabalho</legend>
33 <label for="valorHash">Código de acesso: </label> 33 <label for="valorHash">Código de acesso: </label>
34 <input type="password" id="valorHash" name="valorHash" size="60" maxlength="60" required><br><br> 34 <input type="password" id="valorHash" name="valorHash" size="60" maxlength="60" required><br><br>
35 35
@@ -43,7 +43,7 @@ text/plain, application/pdf, image/*&quot;&gt;&lt;br&gt;&lt;br&gt; @@ -43,7 +43,7 @@ text/plain, application/pdf, image/*&quot;&gt;&lt;br&gt;&lt;br&gt;
43 <input type="file" id="filePlano" name="filePlano" accept= 43 <input type="file" id="filePlano" name="filePlano" accept=
44 "application/msword,application/zip,application/x-rar-compressed, application/octet-stream, application/vnd.ms-excel, application/vnd.oasis.opendocument.text , 44 "application/msword,application/zip,application/x-rar-compressed, application/octet-stream, application/vnd.ms-excel, application/vnd.oasis.opendocument.text ,
45 text/plain, application/pdf, image/*" ><br><br> 45 text/plain, application/pdf, image/*" ><br><br>
46 - <input type="submit" class="button" value="Enviar"> 46 + <input type="submit" class="button" id="botaoAnexar" value="Anexar">
47 </fieldset> 47 </fieldset>
48 48
49 </form> 49 </form>
WebContent/WEB-INF/jsp/questionario/listaQuestionario.jsp
@@ -5,7 +5,8 @@ @@ -5,7 +5,8 @@
5 <t:baseLayout> 5 <t:baseLayout>
6 <jsp:body> 6 <jsp:body>
7 7
8 - <form action="${pageContext.request.contextPath}/listar-questionario" method="post"> 8 + <form action="${pageContext.request.contextPath}/listar-questionario"
  9 + method="post">
9 10
10 <fieldset> 11 <fieldset>
11 <legend>Filtros</legend> 12 <legend>Filtros</legend>
@@ -21,14 +22,28 @@ @@ -21,14 +22,28 @@
21 22
22 <label for="statusPlanoTrabalho">Plano de trabalho Anexado:</label> 23 <label for="statusPlanoTrabalho">Plano de trabalho Anexado:</label>
23 <select id="statusPlanoTrabalho" name="statusPlanoTrabalho"> 24 <select id="statusPlanoTrabalho" name="statusPlanoTrabalho">
24 - <option value="todos" ${statusPlanoTrab == ''?'selected=\"selected\"':''}>Todos</option>  
25 - <option value="sim" ${statusPlanoTrab == 'sim'?'selected=\"selected\"':''}>Sim</option>  
26 - <option value="nao" ${statusPlanoTrab == 'nao'?'selected=\"selected\"':''}>Não</option> 25 + <option value="todos"
  26 + ${statusPlanoTrab == ''?'selected=\"selected\"':''}>Todos</option>
  27 + <option value="sim"
  28 + ${statusPlanoTrab == 'sim'?'selected=\"selected\"':''}>Sim</option>
  29 + <option value="nao"
  30 + ${statusPlanoTrab == 'nao'?'selected=\"selected\"':''}>Não</option>
  31 + </select>
  32 + <br><br>
  33 + <label for="relatorioAnexado">Relatório Anexado:</label>
  34 + <select id="relatorioAnexado" name="relatorioAnexado">
  35 + <option value="todos"
  36 + ${relatorioAnex == ''?'selected=\"selected\"':''}>Todos</option>
  37 + <option value="sim"
  38 + ${relatorioAnex == 'sim'?'selected=\"selected\"':''}>Sim</option>
  39 + <option value="nao"
  40 + ${relatorioAnex == 'nao'?'selected=\"selected\"':''}>Não</option>
27 </select> 41 </select>
28 <br><br> 42 <br><br>
29 43
30 <label for="nomeOrgao">Nome do Órgao que contenha:</label> 44 <label for="nomeOrgao">Nome do Órgao que contenha:</label>
31 - <input type="text" id="nomeOrgao" name="nomeOrgao" size="70" value="${nomeOrgao }"> 45 + <input type="text" id="nomeOrgao" name="nomeOrgao" size="70"
  46 + value="${nomeOrgao }">
32 <br><br> 47 <br><br>
33 48
34 <input type="submit" value="Listar"> 49 <input type="submit" value="Listar">
@@ -52,7 +67,9 @@ @@ -52,7 +67,9 @@
52 <th>Resposta Email</th> 67 <th>Resposta Email</th>
53 <th>Data Relatório Respondido</th> 68 <th>Data Relatório Respondido</th>
54 <th>Relatório Respondido</th> 69 <th>Relatório Respondido</th>
55 - <th>Plano de Trabalho Enviado</th> 70 + <th>Plano de Trabalho Anexado</th>
  71 + <th>Relatório Anexado</th>
  72 + <th>Relatório Enviado</th>
56 <th>download Plano de Trabalho</th> 73 <th>download Plano de Trabalho</th>
57 <th>download Relatório Assinado</th> 74 <th>download Relatório Assinado</th>
58 <th>Visualizar Relatório</th> 75 <th>Visualizar Relatório</th>
@@ -66,10 +83,12 @@ @@ -66,10 +83,12 @@
66 <c:if test="${contador.count mod 2 == 0}"> 83 <c:if test="${contador.count mod 2 == 0}">
67 <tr bgcolor="#FFFFFF"> 84 <tr bgcolor="#FFFFFF">
68 85
  86 +
69 </c:if> 87 </c:if>
70 <c:if test="${contador.count mod 2 != 0}"> 88 <c:if test="${contador.count mod 2 != 0}">
71 <tr bgcolor="#DAA520"> 89 <tr bgcolor="#DAA520">
72 90
  91 +
73 </c:if> 92 </c:if>
74 <td>${contador.count}</td> 93 <td>${contador.count}</td>
75 <td>${questionario.noOrgao}</td> 94 <td>${questionario.noOrgao}</td>
@@ -88,21 +107,36 @@ @@ -88,21 +107,36 @@
88 <c:if test="${empty questionario.dataRespostaQuestionario}"> 107 <c:if test="${empty questionario.dataRespostaQuestionario}">
89 <td><input type="checkbox" disabled="disabled"> </td> 108 <td><input type="checkbox" disabled="disabled"> </td>
90 </c:if> 109 </c:if>
91 -  
92 -  
93 - <c:if test="${questionario.planoTrabalhoEnviado == true}">  
94 - <td><input type="checkbox" checked="checked" 110 +
  111 + <td><input type="checkbox" ${questionario.planoTrabalhoAnexado == true ? 'checked=\"checked\"':''}
95 disabled="disabled"> </td> 112 disabled="disabled"> </td>
96 - </c:if>  
97 - <c:if test="${questionario.planoTrabalhoEnviado == false}">  
98 - <td><input type="checkbox" disabled="disabled"> </td>  
99 - </c:if> 113 +
  114 + <td><input type="checkbox"
  115 + ${questionario.relatorioAnexado == true ? 'checked=\"checked\"':''}
  116 + disabled="disabled"> </td>
  117 + <td><input type="checkbox"
  118 + ${questionario.flagEnviado == true ? 'checked=\"checked\"':''}
  119 + disabled="disabled"></td>
  120 + <td>
  121 + <c:if test="${questionario.planoTrabalhoAnexado == true}">
  122 + <a href="${pageContext.request.contextPath}/recuperar-plano-trabalho/${questionario.idQuestionario}">Plano de Trabalho</a>
  123 + </c:if>
  124 +
  125 + <c:if test="${questionario.planoTrabalhoAnexado == false}">
  126 + Plano de Trabalho
  127 + </c:if>
  128 + </td>
  129 + <td>
  130 + <c:if test="${questionario.relatorioAnexado == true}">
  131 + <a href="${pageContext.request.contextPath}/recuperar-relatorio/${questionario.idQuestionario}">Relatório Assinado</a>
  132 + </c:if>
  133 + <c:if test="${questionario.relatorioAnexado == false}">
  134 + Relatório Assinado
  135 + </c:if>
  136 + </td>
100 <td> 137 <td>
101 - <a href="${pageContext.request.contextPath}/recuperar-plano-trabalho/${questionario.idQuestionario}">Plano de Trabalho</a></td>  
102 - <td>  
103 - <a href="${pageContext.request.contextPath}/recuperar-relatorio/${questionario.idQuestionario}">Relatório Assinado</a></td>  
104 - <td><a  
105 - href="${pageContext.request.contextPath}/relatorio-imprimir/${questionario.idQuestionario}">Visualizar Relatório</a></td> 138 + <a href="${pageContext.request.contextPath}/relatorio-imprimir/${questionario.idQuestionario}">Visualizar Relatório</a>
  139 + </td>
106 </tr> 140 </tr>
107 141
108 </c:forEach> 142 </c:forEach>
WebContent/WEB-INF/jsp/questionario/questionario.jsp
@@ -54,8 +54,12 @@ table, th, td { @@ -54,8 +54,12 @@ table, th, td {
54 </form> 54 </form>
55 <br> 55 <br>
56 56
57 -<label>Total de solicitações: <span>${totalSolicitacoes}</span></label><br>  
58 - <table id="questionarios"> 57 +<label>Total de solicitações: <span>${totalSolicitacoes}</span></label>
  58 +<label> | Total de Relatório Respondido: <span>${totalRelatorioRespondido}</span></label>
  59 +<label> | Total de Relatório Anexado: <span>${totalRelatorioAnexado}</span></label>
  60 +<label> | Total de Plano de Trabalho Anexado: <span>${totalPlanoTrabalhoAnexado}</span></label>
  61 +<label> | Total de Relatório Enviado: <span>${totalRelatorioEnviado}</span></label><br>
  62 +<table id="questionarios">
59 <tr> 63 <tr>
60 <th>Nº Linha</th> 64 <th>Nº Linha</th>
61 <th>Orgão</th> 65 <th>Orgão</th>
@@ -67,20 +71,29 @@ table, th, td { @@ -67,20 +71,29 @@ table, th, td {
67 <th>Resposta Email</th> 71 <th>Resposta Email</th>
68 <th>Data Relatório Respondido</th> 72 <th>Data Relatório Respondido</th>
69 <th>Relatório Respondido</th> 73 <th>Relatório Respondido</th>
70 - <th>Plano de Trabalho Enviado</th> 74 + <th>Plano de Trabalho Anexado</th>
  75 + <th>Relatório Anexado</th>
  76 + <th>Relatório Enviado</th>
71 <th>download Plano de Trabalho</th> 77 <th>download Plano de Trabalho</th>
  78 + <th>download Relatório Assinado</th>
  79 + <th>Visualizar Relatório</th>
72 80
73 </tr> 81 </tr>
74 82
75 <c:if test="${not empty lsquestionario}"> 83 <c:if test="${not empty lsquestionario}">
76 84
77 - <c:forEach items="${lsquestionario}" var="questionario" varStatus="contador"> 85 + <c:forEach items="${lsquestionario}" var="questionario"
  86 + varStatus="contador">
78 <c:if test="${contador.count mod 2 == 0}"> 87 <c:if test="${contador.count mod 2 == 0}">
79 <tr bgcolor="#FFFFFF"> 88 <tr bgcolor="#FFFFFF">
80 - </c:if> 89 +
  90 +
  91 + </c:if>
81 <c:if test="${contador.count mod 2 != 0}"> 92 <c:if test="${contador.count mod 2 != 0}">
82 <tr bgcolor="#DAA520"> 93 <tr bgcolor="#DAA520">
83 - </c:if> 94 +
  95 +
  96 + </c:if>
84 <td>${contador.count}</td> 97 <td>${contador.count}</td>
85 <td>${questionario.noOrgao}</td> 98 <td>${questionario.noOrgao}</td>
86 <td>${questionario.responsavel}</td> 99 <td>${questionario.responsavel}</td>
@@ -92,20 +105,42 @@ table, th, td { @@ -92,20 +105,42 @@ table, th, td {
92 <td>${questionario.dataRespostaQuestionario}</td> 105 <td>${questionario.dataRespostaQuestionario}</td>
93 106
94 <c:if test="${not empty questionario.dataRespostaQuestionario}"> 107 <c:if test="${not empty questionario.dataRespostaQuestionario}">
95 - <td><input type="checkbox" checked="checked" disabled="disabled"> </td> 108 + <td><input type="checkbox" checked="checked"
  109 + disabled="disabled"> </td>
96 </c:if> 110 </c:if>
97 <c:if test="${empty questionario.dataRespostaQuestionario}"> 111 <c:if test="${empty questionario.dataRespostaQuestionario}">
98 <td><input type="checkbox" disabled="disabled"> </td> 112 <td><input type="checkbox" disabled="disabled"> </td>
99 </c:if> 113 </c:if>
  114 +
  115 + <td><input type="checkbox" ${questionario.planoTrabalhoAnexado == true ? 'checked=\"checked\"':''}
  116 + disabled="disabled"> </td>
100 117
101 -  
102 - <c:if test="${questionario.planoTrabalhoEnviado == true}">  
103 - <td><input type="checkbox" checked="checked" disabled="disabled"> </td>  
104 - </c:if>  
105 - <c:if test="${questionario.planoTrabalhoEnviado == false}">  
106 - <td><input type="checkbox" disabled="disabled"> </td>  
107 - </c:if>  
108 - <td><a href="${pageContext.request.contextPath}/recuperar-plano-trabalho/${questionario.idQuestionario}">Recuperar</a></td> 118 + <td><input type="checkbox"
  119 + ${questionario.relatorioAnexado == true ? 'checked=\"checked\"':''}
  120 + disabled="disabled"> </td>
  121 + <td><input type="checkbox"
  122 + ${questionario.flagEnviado == true ? 'checked=\"checked\"':''}
  123 + disabled="disabled"></td>
  124 + <td>
  125 + <c:if test="${questionario.planoTrabalhoAnexado == true}">
  126 + <a href="${pageContext.request.contextPath}/recuperar-plano-trabalho/${questionario.idQuestionario}">Plano de Trabalho</a>
  127 + </c:if>
  128 +
  129 + <c:if test="${questionario.planoTrabalhoAnexado == false}">
  130 + Plano de Trabalho
  131 + </c:if>
  132 + </td>
  133 + <td>
  134 + <c:if test="${questionario.relatorioAnexado == true}">
  135 + <a href="${pageContext.request.contextPath}/recuperar-relatorio/${questionario.idQuestionario}">Relatório Assinado</a>
  136 + </c:if>
  137 + <c:if test="${questionario.relatorioAnexado == false}">
  138 + Relatório Assinado
  139 + </c:if>
  140 + </td>
  141 + <td>
  142 + <a href="${pageContext.request.contextPath}/relatorio-imprimir/${questionario.idQuestionario}">Visualizar Relatório</a>
  143 + </td>
109 </tr> 144 </tr>
110 145
111 </c:forEach> 146 </c:forEach>
WebContent/WEB-INF/mail.properties
@@ -8,4 +8,4 @@ prop.email.auth = false @@ -8,4 +8,4 @@ prop.email.auth = false
8 prop.email.to = govbr@planejamento.gov.br 8 prop.email.to = govbr@planejamento.gov.br
9 prop.email.from = govbr@planejamento.gov.br 9 prop.email.from = govbr@planejamento.gov.br
10 prop.email.copiaEmailTo = fabricio.souza@planejamento.gov.br 10 prop.email.copiaEmailTo = fabricio.souza@planejamento.gov.br
11 -prop.email.anexosTo = gibran.sodre@planejamento.gov.br  
12 \ No newline at end of file 11 \ No newline at end of file
  12 +prop.email.anexosTo = gibransodre@hotmail.com
13 \ No newline at end of file 13 \ No newline at end of file
WebContent/css/default.css
@@ -32,6 +32,10 @@ strong p @@ -32,6 +32,10 @@ strong p
32 { 32 {
33 font-size: 14px !important; 33 font-size: 14px !important;
34 } 34 }
  35 +#botaoAnexar
  36 +{
  37 + margin-left: 35%;
  38 +}
35 #botaoVoltar { 39 #botaoVoltar {
36 width: 10%; 40 width: 10%;
37 float: left; 41 float: left;
src/br/com/controller/PlanoTrabalhoController.java
@@ -4,6 +4,7 @@ import java.io.IOException; @@ -4,6 +4,7 @@ import java.io.IOException;
4 import java.util.ArrayList; 4 import java.util.ArrayList;
5 import java.util.List; 5 import java.util.List;
6 6
  7 +import javax.activation.DataHandler;
7 import javax.servlet.ServletContext; 8 import javax.servlet.ServletContext;
8 import javax.servlet.ServletOutputStream; 9 import javax.servlet.ServletOutputStream;
9 import javax.servlet.http.HttpServletResponse; 10 import javax.servlet.http.HttpServletResponse;
@@ -19,13 +20,19 @@ import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder; @@ -19,13 +20,19 @@ import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder;
19 import br.com.caelum.vraptor.validator.ValidationMessage; 20 import br.com.caelum.vraptor.validator.ValidationMessage;
20 import br.com.dao.HashDao; 21 import br.com.dao.HashDao;
21 import br.com.dao.PlanoTrabalhoDao; 22 import br.com.dao.PlanoTrabalhoDao;
  23 +import br.com.dao.QuestionarioDao;
  24 +import br.com.model.entity.EnvioEmailSemAutenticacao;
22 import br.com.model.entity.PlanoTrabalho; 25 import br.com.model.entity.PlanoTrabalho;
23 import br.com.model.entity.Questionario; 26 import br.com.model.entity.Questionario;
  27 +import br.com.model.utilities.Email;
  28 +import br.com.util.DateUtil;
  29 +import br.com.util.Validacao;
24 30
25 31
26 @Resource 32 @Resource
27 public class PlanoTrabalhoController extends DefaultMultipartConfig { 33 public class PlanoTrabalhoController extends DefaultMultipartConfig {
28 34
  35 + private List<Validacao> mensagemValidacaoCampos = new ArrayList<Validacao>();
29 private Validator validator; 36 private Validator validator;
30 private Result result; 37 private Result result;
31 private ServletContext application; 38 private ServletContext application;
@@ -89,7 +96,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -89,7 +96,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
89 HashDao hashDao = new HashDao(); 96 HashDao hashDao = new HashDao();
90 questionario = new Questionario(); 97 questionario = new Questionario();
91 questionario = hashDao.verificarHash(path, valorHash); 98 questionario = hashDao.verificarHash(path, valorHash);
92 - String nomeExtensaoPlanoTrabalho = filePlano.getFileName(); 99 + String nomeExtensaoPlanoTrabalho = filePlano.getContentType();
93 100
94 if (questionario != null && questionario.getDtInicioQuestionario() != null) { 101 if (questionario != null && questionario.getDtInicioQuestionario() != null) {
95 PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); 102 PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
@@ -97,9 +104,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -97,9 +104,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
97 planoTrabalho = 104 planoTrabalho =
98 planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); 105 planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);
99 106
100 - if (planoTrabalho.getArquivoPlanoTrabalho() == null) { 107 + if (planoTrabalho.getIdPlanoTrabalho() == 0) {
101 if (planoTrabalhoDao.salvarPlanoTrabalho(path, filePlano.getFile(), questionario, 108 if (planoTrabalhoDao.salvarPlanoTrabalho(path, filePlano.getFile(), questionario,
102 - nomeExtensaoPlanoTrabalho)) { 109 + filePlano.getFileName(), nomeExtensaoPlanoTrabalho)) {
103 mensagemPlano = "Plano de trabalho anexado com sucesso!"; 110 mensagemPlano = "Plano de trabalho anexado com sucesso!";
104 statusPlano = true; 111 statusPlano = true;
105 } else { 112 } else {
@@ -107,7 +114,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -107,7 +114,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
107 } 114 }
108 } else { 115 } else {
109 if (planoTrabalhoDao.atualizarPlanoTrabalho(path, filePlano.getFile(), questionario, 116 if (planoTrabalhoDao.atualizarPlanoTrabalho(path, filePlano.getFile(), questionario,
110 - planoTrabalho.getIdPlanoTrabalho(), nomeExtensaoPlanoTrabalho)) { 117 + planoTrabalho.getIdPlanoTrabalho(), filePlano.getFileName(),nomeExtensaoPlanoTrabalho)) {
111 mensagemPlano = "Plano de trabalho anexado com sucesso!"; 118 mensagemPlano = "Plano de trabalho anexado com sucesso!";
112 statusPlano = true; 119 statusPlano = true;
113 } else { 120 } else {
@@ -156,7 +163,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -156,7 +163,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
156 HashDao hashDao = new HashDao(); 163 HashDao hashDao = new HashDao();
157 questionario = new Questionario(); 164 questionario = new Questionario();
158 questionario = hashDao.verificarHash(path, valorHash); 165 questionario = hashDao.verificarHash(path, valorHash);
159 - String nomeExtensaoRelatorio = fileRelatorio.getFileName(); 166 + String nomeExtensaoRelatorio = fileRelatorio.getContentType();
160 167
161 if (questionario != null && questionario.getDtInicioQuestionario() != null) { 168 if (questionario != null && questionario.getDtInicioQuestionario() != null) {
162 PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao(); 169 PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
@@ -164,9 +171,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -164,9 +171,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
164 171
165 planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); 172 planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);
166 173
167 - if (planoTrabalho.getArquivoRelatorioAss() == null) { 174 + if (planoTrabalho.getIdPlanoTrabalho() == 0) {
168 if (planoTrabalhoDao.salvarRelatorioAss(path, fileRelatorio.getFile(), questionario, 175 if (planoTrabalhoDao.salvarRelatorioAss(path, fileRelatorio.getFile(), questionario,
169 - nomeExtensaoRelatorio)) { 176 + fileRelatorio.getFileName(), nomeExtensaoRelatorio)) {
170 mensagemRelatorio = "Relatório anexado com sucesso!"; 177 mensagemRelatorio = "Relatório anexado com sucesso!";
171 statusRelatorio = true; 178 statusRelatorio = true;
172 } else { 179 } else {
@@ -174,7 +181,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -174,7 +181,7 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
174 } 181 }
175 } else { 182 } else {
176 if (planoTrabalhoDao.atualizarRelatorioAss(path, fileRelatorio.getFile(), questionario, 183 if (planoTrabalhoDao.atualizarRelatorioAss(path, fileRelatorio.getFile(), questionario,
177 - planoTrabalho.getIdPlanoTrabalho(), nomeExtensaoRelatorio)) { 184 + planoTrabalho.getIdPlanoTrabalho(), fileRelatorio.getFileName(), nomeExtensaoRelatorio)) {
178 mensagemRelatorio = "Relatório anexado com sucesso!"; 185 mensagemRelatorio = "Relatório anexado com sucesso!";
179 statusRelatorio = true; 186 statusRelatorio = true;
180 } else { 187 } else {
@@ -222,9 +229,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -222,9 +229,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
222 if (questionario != null && questionario.getIdQuestionario() > 0) { 229 if (questionario != null && questionario.getIdQuestionario() > 0) {
223 planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); 230 planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);
224 231
225 - if (planoTrabalho != null) { 232 + if (planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) {
226 try { 233 try {
227 - String nome = planoTrabalho.getNomeExtensaoPlanoTrabalho(); 234 + String nome = planoTrabalho.getNomePlanoTrabalho();
228 dados = planoTrabalho.getArquivoPlanoTrabalho(); 235 dados = planoTrabalho.getArquivoPlanoTrabalho();
229 response.setContentType("inline/download"); 236 response.setContentType("inline/download");
230 String arq = "attachment;filename=" + nome; 237 String arq = "attachment;filename=" + nome;
@@ -237,6 +244,16 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -237,6 +244,16 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
237 244
238 } 245 }
239 } 246 }
  247 + else
  248 + {
  249 + this.validator.add(new ValidationMessage("", ""));
  250 + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario();
  251 + }
  252 + }
  253 + else
  254 + {
  255 + this.validator.add(new ValidationMessage("", ""));
  256 + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario();
240 } 257 }
241 } 258 }
242 259
@@ -253,9 +270,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -253,9 +270,9 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
253 if (questionario != null && questionario.getIdQuestionario() > 0) { 270 if (questionario != null && questionario.getIdQuestionario() > 0) {
254 planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario); 271 planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);
255 272
256 - if (planoTrabalho != null) { 273 + if (planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) {
257 try { 274 try {
258 - String nome = planoTrabalho.getNomeExtensaoRelatorioAss(); 275 + String nome = planoTrabalho.getNomeRelatorioAss();
259 dados = planoTrabalho.getArquivoRelatorioAss(); 276 dados = planoTrabalho.getArquivoRelatorioAss();
260 response.setContentType("inline/download"); 277 response.setContentType("inline/download");
261 String arq = "attachment;filename=" + nome; 278 String arq = "attachment;filename=" + nome;
@@ -268,6 +285,179 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig { @@ -268,6 +285,179 @@ public class PlanoTrabalhoController extends DefaultMultipartConfig {
268 285
269 } 286 }
270 } 287 }
  288 + else
  289 + {
  290 + this.validator.add(new ValidationMessage("", ""));
  291 + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario();
  292 + }
  293 + }
  294 + else
  295 + {
  296 + this.validator.add(new ValidationMessage("", ""));
  297 + this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario();
271 } 298 }
272 } 299 }
  300 +
  301 + @Path("/enviar-relatorio-plano-trabalho")
  302 + public void enviarRelatorioPlanoTrabalho() {
  303 +
  304 + }
  305 +
  306 + private void enviarEmail(Questionario questionario) {
  307 + QuestionarioDao questionarioDao;
  308 +
  309 + StringBuffer mensagemMPF = new StringBuffer();
  310 + StringBuffer mensagemOrgao = new StringBuffer();
  311 + String assuntoMPF = "";
  312 + String assuntoOrgao = "";
  313 +
  314 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  315 + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
  316 +
  317 + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);
  318 +
  319 + if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null && planoTrabalho.getArquivoRelatorioAss() != null)
  320 + {
  321 + DataHandler dataHandlerRelatorio;
  322 + DataHandler dataHandlerPlano;
  323 +
  324 + dataHandlerRelatorio =
  325 + new DataHandler(planoTrabalho.getArquivoRelatorioAss(),
  326 + planoTrabalho.getNomeExtensaoRelatorioAss());
  327 + dataHandlerPlano =
  328 + new DataHandler(planoTrabalho.getArquivoPlanoTrabalho(),
  329 + planoTrabalho.getNomeExtensaoPlanoTrabalho());
  330 +
  331 + Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties");
  332 +
  333 + EnvioEmailSemAutenticacao envioEmailSemAutenticacao =
  334 + new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort()));
  335 +
  336 + assuntoMPF = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao();
  337 +
  338 + mensagemMPF.append("À Procuradoria Federal dos Diretos do Cidadão,<br>");
  339 + mensagemMPF.append("<p>Conforme Portaria Interministerial xxxx/2016 do Ministério da Justiça e Cidadania e do");
  340 + mensagemMPF.append(" Ministério do Planejamento, Desenvolvimento e Gestão, o(a) " + questionario.getNoOrgao());
  341 + mensagemMPF.append(" encaminha o Relatório Circunstanciado relativo aos ambientes digitais desta");
  342 + mensagemMPF.append(" instituição. </p>");
  343 + mensagemMPF.append("Dados do Responsável:<br>");
  344 + mensagemMPF.append("Nome: " + questionario.getResponsavel() +"<br>");
  345 + mensagemMPF.append("Cargo: "+ questionario.getCargoResponsavel() + "<br>");
  346 + mensagemMPF.append("Telefone: " + questionario.getTelefone() + "<br>");
  347 + mensagemMPF.append("email: "+ questionario.getEmailDestinoOrgao() + "<br>");
  348 +
  349 +
  350 + String mensagemRetornoMPF =
  351 + envioEmailSemAutenticacao.sendMailComAnexo(questionario.getEmailDestinoOrgao(),
  352 + email.getAnexosTo(), assuntoMPF, mensagemMPF.toString(), email.getAuth(), email.getAuthUser(),
  353 + email.getAuthPass(), dataHandlerRelatorio, planoTrabalho.getNomeRelatorioAss(),
  354 + dataHandlerPlano, planoTrabalho.getNomePlanoTrabalho());
  355 +
  356 +
  357 +
  358 + if (mensagemRetornoMPF.equalsIgnoreCase("")) {
  359 +
  360 +
  361 + assuntoOrgao = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao();
  362 +
  363 + mensagemOrgao.append("<p>Prezado(a) "+ questionario.getResponsavel() +", "+ questionario.getCargoResponsavel() +" do "+ questionario.getNoOrgao() +", você concluiu com sucesso o processo de ");
  364 + mensagemOrgao.append("envio do Relatório Circunstanciado (Formulário Eletrônico de Acessibilidade Digital e ");
  365 + mensagemOrgao.append("Plano de Trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério ");
  366 + mensagemOrgao.append("Público Federal.</p>");
  367 + mensagemOrgao.append("<p>Conforme previsto na portaria interministerial xxx/2016 do Ministério da Justiça e ");
  368 + mensagemOrgao.append("Cidadania e do Ministério do Planejamento, Desenvolvimento e Gestão, além do ");
  369 + mensagemOrgao.append("envio, o relatório circunstanciado deverá ser publicado no portal do órgão/entidade e ");
  370 + mensagemOrgao.append("o seu reporte , na forma de síntese, deverá ser registrado na seção ");
  371 + mensagemOrgao.append("\"Medidas Relativas à Acessibilidade\" do Relatório de Gestão referente a 2016 e, nos ");
  372 + mensagemOrgao.append("anos subsequentes, indicar nessa seção o monitoramento das metas propostas nos ");
  373 + mensagemOrgao.append("planos de trabalho.</p>");
  374 + mensagemOrgao.append("<p>Em caso de dúvida acesse <a href=\"http://fad.governoeletronico.gov.br/fad/contato/contato-site​​​\">http://fad.governoeletronico.gov.br/fad/contato/contato-site​​​.</a></p>");
  375 + mensagemOrgao.append("<p>Brasília, "+ DateUtil.dataHoraAtual() +".</p>");
  376 + mensagemOrgao.append("<p>Encaminhado por:</p>");
  377 + mensagemOrgao.append("<p><a href=\"http://fad.governoeletronico.gov.br​\">http://fad.governoeletronico.gov.br​</a></p>");
  378 + mensagemOrgao.append("<p>Coordenação-Geral de Padrões de Governo Digital</p>");
  379 + mensagemOrgao.append("<p>Departamento de Governo Digital</p>");
  380 + mensagemOrgao.append("<p>Secretaria de Tecnologia da Informação</p>");
  381 + mensagemOrgao.append("<p>Ministério do Planejamento, Desenvolvimento e Gestão</p>");
  382 +
  383 + //questionario.getEmailDestinoOrgao()
  384 + String mensagemRetornoOrgao =
  385 + envioEmailSemAutenticacao.sendMailComAnexo(email.getFrom(),
  386 + "gibransodre@hotmail.com", assuntoOrgao, mensagemOrgao.toString(), email.getAuth(),
  387 + email.getAuthUser(), email.getAuthPass(), dataHandlerRelatorio,
  388 + planoTrabalho.getNomeRelatorioAss(), dataHandlerPlano,
  389 + planoTrabalho.getNomePlanoTrabalho());
  390 +
  391 +
  392 + if (mensagemRetornoOrgao.equalsIgnoreCase("")) {
  393 +
  394 + questionarioDao = new QuestionarioDao();
  395 +
  396 + if (questionarioDao.atualizarFlagEnviado(path, questionario.getIdQuestionario())) {
  397 + result.include("mensagemEnvio",
  398 + "Mensagem enviada com Sucesso, você recebeu um email com os anexos!");
  399 + result.include("statusEnvio", true);
  400 + }
  401 + }
  402 + } else {
  403 + result.include("mensagemEnvio", "Não foi possível enviar o email com os anexos!");
  404 + result.include("statusEnvio", false);
  405 + }
  406 + }else
  407 + {
  408 + result.include("mensagemEnvio", "É preciso ter o Relatório e o Plano de Trabalho anexados!");
  409 + result.include("statusEnvio", false);
  410 + }
  411 +
  412 + this.validator.add(new ValidationMessage("", ""));
  413 + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).confirmacaoEnvioEmailMPF();
  414 + }
  415 +
  416 + @Path("/enviar-email-mpf-alternativo")
  417 + public void enviarEmailMPFAlternativo(String valorHash) {
  418 +
  419 + Validacao validacao = new Validacao();
  420 + mensagemValidacaoCampos = new ArrayList<Validacao>();
  421 + mensagemValidacaoCampos = validacao.validarHash(path, valorHash);
  422 +
  423 + if (mensagemValidacaoCampos.size() > 0) {
  424 + result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);
  425 + this.validator.add(new ValidationMessage("", ""));
  426 + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).enviarRelatorioPlanoTrabalho();
  427 + }
  428 +
  429 + HashDao hashDao = new HashDao();
  430 + Questionario questionario = new Questionario();
  431 + questionario = hashDao.verificarHash(path, valorHash);
  432 +
  433 +
  434 +
  435 + if (questionario != null && questionario.getIdQuestionario() > 0) {
  436 +
  437 + enviarEmail(questionario);
  438 +
  439 + }
  440 +
  441 + }
  442 +
  443 +
  444 + @Path("/enviar-email-mpf")
  445 + public void enviarEmailMPF() {
  446 + Questionario questionario = new Questionario();
  447 +
  448 + questionario =
  449 + (Questionario) VRaptorRequestHolder.currentRequest().getServletContext()
  450 + .getAttribute("questionario");
  451 +
  452 + if (questionario != null && questionario.getIdQuestionario() > 0) {
  453 +
  454 + enviarEmail(questionario);
  455 +
  456 + }
  457 +
  458 + }
  459 +
  460 + public void confirmacaoEnvioEmailMPF() {
  461 +
  462 + }
273 } 463 }
src/br/com/controller/QuestionarioController.java
@@ -10,6 +10,8 @@ import java.util.Properties; @@ -10,6 +10,8 @@ import java.util.Properties;
10 10
11 import javax.servlet.ServletContext; 11 import javax.servlet.ServletContext;
12 12
  13 +import org.apache.jasper.tagplugins.jstl.core.ForEach;
  14 +
13 import br.com.caelum.vraptor.Path; 15 import br.com.caelum.vraptor.Path;
14 import br.com.caelum.vraptor.Resource; 16 import br.com.caelum.vraptor.Resource;
15 import br.com.caelum.vraptor.Result; 17 import br.com.caelum.vraptor.Result;
@@ -51,6 +53,38 @@ public class QuestionarioController { @@ -51,6 +53,38 @@ public class QuestionarioController {
51 QuestionarioDao questionarioDao = new QuestionarioDao(); 53 QuestionarioDao questionarioDao = new QuestionarioDao();
52 List<Questionario> lsquestionario = new ArrayList<Questionario>(); 54 List<Questionario> lsquestionario = new ArrayList<Questionario>();
53 lsquestionario = questionarioDao.retornarListaQuestionario(path); 55 lsquestionario = questionarioDao.retornarListaQuestionario(path);
  56 +
  57 +
  58 + int relatorioRespondido = 0;
  59 + int planoTrabalhoAnexado = 0;
  60 + int relatorioAnexado = 0;
  61 + int relatorioEnviado = 0;
  62 +
  63 + for (Questionario questionario : lsquestionario) {
  64 +
  65 + if(questionario.getDataRespostaQuestionario() != null)
  66 + {
  67 + relatorioRespondido++;
  68 + }
  69 + if(questionario.isPlanoTrabalhoAnexado())
  70 + {
  71 + planoTrabalhoAnexado++;
  72 + }
  73 + if(questionario.isRelatorioAnexado())
  74 + {
  75 + relatorioAnexado++;
  76 + }
  77 + if(questionario.isFlagEnviado())
  78 + {
  79 + relatorioEnviado++;
  80 + }
  81 +
  82 + }
  83 +
  84 + result.include("totalRelatorioRespondido", relatorioRespondido);
  85 + result.include("totalPlanoTrabalhoAnexado", planoTrabalhoAnexado);
  86 + result.include("totalRelatorioAnexado", relatorioAnexado);
  87 + result.include("totalRelatorioEnviado", relatorioEnviado);
54 result.include("lsquestionario", lsquestionario); 88 result.include("lsquestionario", lsquestionario);
55 result.include("totalSolicitacoes", lsquestionario.size()); 89 result.include("totalSolicitacoes", lsquestionario.size());
56 } 90 }
@@ -62,18 +96,19 @@ public class QuestionarioController { @@ -62,18 +96,19 @@ public class QuestionarioController {
62 96
63 @Path("/lista-questionario") 97 @Path("/lista-questionario")
64 public void listaQuestionario() { 98 public void listaQuestionario() {
65 - listarQuestionarioComFiltro("todos", "todos",""); 99 + listarQuestionarioComFiltro("todos", "todos","todos", "");
66 } 100 }
67 101
68 @Path("/listar-questionario") 102 @Path("/listar-questionario")
69 - public void listarQuestionarioComFiltro(String statusRelatorio, String statusPlanoTrabalho, String nomeOrgao) { 103 + public void listarQuestionarioComFiltro(String statusRelatorio, String statusPlanoTrabalho, String relatorioAnexado, String nomeOrgao) {
70 104
71 QuestionarioDao questionarioDao = new QuestionarioDao(); 105 QuestionarioDao questionarioDao = new QuestionarioDao();
72 List<Questionario> lsquestionario = new ArrayList<Questionario>(); 106 List<Questionario> lsquestionario = new ArrayList<Questionario>();
73 - lsquestionario = questionarioDao.retornarListaQuestionarioComFiltro(path, statusRelatorio, statusPlanoTrabalho, nomeOrgao); 107 + lsquestionario = questionarioDao.retornarListaQuestionarioComFiltro(path, statusRelatorio, statusPlanoTrabalho, relatorioAnexado, nomeOrgao);
74 result.include("lsquestionario", lsquestionario); 108 result.include("lsquestionario", lsquestionario);
75 result.include("totalSolicitacoes", lsquestionario.size()); 109 result.include("totalSolicitacoes", lsquestionario.size());
76 result.include("statusRel", statusRelatorio.equalsIgnoreCase("todos")? "" :statusRelatorio); 110 result.include("statusRel", statusRelatorio.equalsIgnoreCase("todos")? "" :statusRelatorio);
  111 + result.include("relatorioAnex", relatorioAnexado.equalsIgnoreCase("todos")? "" :relatorioAnexado);
77 result.include("statusPlanoTrab", statusPlanoTrabalho.equalsIgnoreCase("todos")? "" :statusPlanoTrabalho); 112 result.include("statusPlanoTrab", statusPlanoTrabalho.equalsIgnoreCase("todos")? "" :statusPlanoTrabalho);
78 result.include("nomeOrgao", nomeOrgao != null? nomeOrgao:""); 113 result.include("nomeOrgao", nomeOrgao != null? nomeOrgao:"");
79 114
src/br/com/controller/relatorioController.java
@@ -81,87 +81,9 @@ public class relatorioController { @@ -81,87 +81,9 @@ public class relatorioController {
81 } 81 }
82 } 82 }
83 83
84 - @Path("/enviar-email-mpf")  
85 - public void enviarEmailMPF() {  
86 - Questionario questionario = new Questionario();  
87 - QuestionarioDao questionarioDao;  
88 -  
89 - UploadedFile fileRelatorio; 84 +
90 85
91 - String mensagemMPF = "";  
92 - String mensagemOrgao = "";  
93 - String assuntoMPF = "";  
94 - String assuntoOrgao = "";  
95 86
96 - questionario =  
97 - (Questionario) VRaptorRequestHolder.currentRequest().getServletContext()  
98 - .getAttribute("questionario");  
99 -  
100 - fileRelatorio =  
101 - (UploadedFile) VRaptorRequestHolder.currentRequest().getServletContext()  
102 - .getAttribute("fileRelatorio");  
103 -  
104 - PlanoTrabalho planoTrabalho = new PlanoTrabalho();  
105 - PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();  
106 -  
107 - planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);  
108 -  
109 - DataHandler dataHandlerRelatorio;  
110 - DataHandler dataHandlerPlano;  
111 -  
112 - dataHandlerRelatorio =  
113 - new DataHandler(planoTrabalho.getArquivoRelatorioAss(), fileRelatorio.getContentType());  
114 - dataHandlerPlano =  
115 - new DataHandler(planoTrabalho.getArquivoPlanoTrabalho(), fileRelatorio.getContentType());  
116 -  
117 - Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties");  
118 -  
119 - EnvioEmailSemAutenticacao envioEmailSemAutenticacao =  
120 - new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort()));  
121 -  
122 -  
123 - String mensagemRetornoMPF =  
124 - envioEmailSemAutenticacao.sendMailComAnexo(questionario.getEmailDestinoOrgao(),  
125 - email.getAnexosTo(), assuntoMPF, mensagemMPF, email.getAuth(), email.getAuthUser(),  
126 - email.getAuthPass(), dataHandlerRelatorio, planoTrabalho.getNomeExtensaoRelatorioAss(),  
127 - dataHandlerPlano, planoTrabalho.getNomeExtensaoPlanoTrabalho());  
128 -  
129 - if (mensagemRetornoMPF.equalsIgnoreCase("")) {  
130 - String mensagemRetornoOrgao =  
131 - envioEmailSemAutenticacao.sendMailComAnexo(email.getFrom(),  
132 - questionario.getEmailDestinoOrgao(), assuntoOrgao, mensagemOrgao, email.getAuth(),  
133 - email.getAuthUser(), email.getAuthPass(), dataHandlerRelatorio,  
134 - planoTrabalho.getNomeExtensaoRelatorioAss(), dataHandlerPlano,  
135 - planoTrabalho.getNomeExtensaoPlanoTrabalho());  
136 -  
137 -  
138 - if (mensagemRetornoOrgao.equalsIgnoreCase("")) {  
139 -  
140 - questionarioDao = new QuestionarioDao();  
141 -  
142 - if(questionarioDao.atualizarFlagEnviado(path, questionario.getIdQuestionario()))  
143 - {  
144 - result.include("mensagemEnvio", "Mensagem enviada com Sucesso, você recebeu um email com os anexos!");  
145 - result.include("statusEnvio", true);  
146 - }  
147 - }  
148 - }  
149 - else  
150 - {  
151 - result.include("mensagemEnvio", "Não foi possível enviar o email com os anexos!");  
152 - result.include("statusEnvio", false);  
153 - }  
154 -  
155 - this.validator.add(new ValidationMessage("", ""));  
156 - this.validator.onErrorUsePageOf(relatorioController.class).confirmacaoEnvioEmailMPF();  
157 - }  
158 -  
159 - public void confirmacaoEnvioEmailMPF()  
160 - {  
161 -  
162 - }  
163 -  
164 -  
165 @Get("/relatorio-imprimir/{id}") 87 @Get("/relatorio-imprimir/{id}")
166 public void relatorioImprimir(String id) { 88 public void relatorioImprimir(String id) {
167 if (id != null) { 89 if (id != null) {
src/br/com/dao/PlanoTrabalhoDao.java
@@ -13,7 +13,7 @@ import br.com.model.entity.Questionario; @@ -13,7 +13,7 @@ import br.com.model.entity.Questionario;
13 public class PlanoTrabalhoDao { 13 public class PlanoTrabalhoDao {
14 14
15 15
16 - public int verificaPlanoTrabalho(String path, Integer idQuestionario) 16 + public PlanoTrabalho verificaPlanoTrabalho(String path, Integer idQuestionario)
17 { 17 {
18 18
19 19
@@ -23,6 +23,7 @@ public class PlanoTrabalhoDao { @@ -23,6 +23,7 @@ public class PlanoTrabalhoDao {
23 ResultSet rset = null; 23 ResultSet rset = null;
24 //boolean existePlanoTrabalho = false; 24 //boolean existePlanoTrabalho = false;
25 int idPlanoTrabalho = -1; 25 int idPlanoTrabalho = -1;
  26 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
26 27
27 try { 28 try {
28 29
@@ -33,8 +34,17 @@ public class PlanoTrabalhoDao { @@ -33,8 +34,17 @@ public class PlanoTrabalhoDao {
33 34
34 rset = estado.executeQuery(sql); 35 rset = estado.executeQuery(sql);
35 36
36 - while (rset.next()) {  
37 - idPlanoTrabalho = rset.getInt("id_plano_trabalho"); 37 + while (rset.next()) {
  38 + planoTrabalho.setIdPlanoTrabalho(rset.getInt("id_plano_trabalho"));
  39 + planoTrabalho.setArquivoPlanoTrabalho(rset.getBytes("arquivo_plano_trabalho"));
  40 + planoTrabalho.setArquivoRelatorioAss(rset.getBytes("arquivo_relatorio_ass"));
  41 + planoTrabalho.setNomeExtensaoPlanoTrabalho(rset.getString("extensao_plano_trabalho"));
  42 + planoTrabalho.setNomeExtensaoRelatorioAss(rset.getString("extensao_relatorio_ass"));
  43 + planoTrabalho.setNomePlanoTrabalho(rset.getString("nome_plano_trabalho"));
  44 + planoTrabalho.setNomeRelatorioAss(rset.getString("nome_relatorio_ass"));
  45 +
  46 + Questionario quest = new Questionario(path, idQuestionario);
  47 + planoTrabalho.setQuestionario(quest);
38 } 48 }
39 49
40 } catch (SQLException e) { 50 } catch (SQLException e) {
@@ -51,10 +61,10 @@ public class PlanoTrabalhoDao { @@ -51,10 +61,10 @@ public class PlanoTrabalhoDao {
51 } 61 }
52 } 62 }
53 63
54 - return idPlanoTrabalho; 64 + return planoTrabalho;
55 } 65 }
56 66
57 - public boolean salvarPlanoTrabalho(String path, InputStream file, Questionario questionario, String nomeExtensao) 67 + public boolean salvarPlanoTrabalho(String path, InputStream file, Questionario questionario, String nomeArquivo,String nomeExtensao)
58 { 68 {
59 69
60 StringBuffer sql = new StringBuffer(); 70 StringBuffer sql = new StringBuffer();
@@ -66,13 +76,14 @@ public class PlanoTrabalhoDao { @@ -66,13 +76,14 @@ public class PlanoTrabalhoDao {
66 try { 76 try {
67 77
68 sql = new StringBuffer(); 78 sql = new StringBuffer();
69 - sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho, extensao_plano_trabalho) VALUES (?, ?, ?); "); 79 + sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho, nome_plano_trabalho,extensao_plano_trabalho) VALUES (?, ?, ?, ?); ");
70 80
71 estado = con.prepareStatement(sql.toString()); 81 estado = con.prepareStatement(sql.toString());
72 82
73 estado.setInt(1, questionario.getIdQuestionario()); 83 estado.setInt(1, questionario.getIdQuestionario());
74 estado.setBinaryStream(2, file); 84 estado.setBinaryStream(2, file);
75 - estado.setString(3, nomeExtensao); 85 + estado.setString(3, nomeArquivo);
  86 + estado.setString(4, nomeExtensao);
76 87
77 resultado = estado.executeUpdate(); 88 resultado = estado.executeUpdate();
78 89
@@ -91,7 +102,7 @@ public class PlanoTrabalhoDao { @@ -91,7 +102,7 @@ public class PlanoTrabalhoDao {
91 return salvoComSucesso; 102 return salvoComSucesso;
92 } 103 }
93 104
94 - public boolean salvarRelatorioAss(String path, InputStream file, Questionario questionario, String nomeExtensao) 105 + public boolean salvarRelatorioAss(String path, InputStream file, Questionario questionario, String nomeArquivo, String nomeExtensao)
95 { 106 {
96 107
97 StringBuffer sql = new StringBuffer(); 108 StringBuffer sql = new StringBuffer();
@@ -103,13 +114,14 @@ public class PlanoTrabalhoDao { @@ -103,13 +114,14 @@ public class PlanoTrabalhoDao {
103 try { 114 try {
104 115
105 sql = new StringBuffer(); 116 sql = new StringBuffer();
106 - sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_relatorio_ass, extensao_relatorio_ass) VALUES (?, ?, ?); "); 117 + sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_relatorio_ass, nome_relatorio_ass, extensao_relatorio_ass) VALUES (?, ?, ?, ?); ");
107 118
108 estado = con.prepareStatement(sql.toString()); 119 estado = con.prepareStatement(sql.toString());
109 120
110 estado.setInt(1, questionario.getIdQuestionario()); 121 estado.setInt(1, questionario.getIdQuestionario());
111 estado.setBinaryStream(2, file); 122 estado.setBinaryStream(2, file);
112 - estado.setString(3, nomeExtensao); 123 + estado.setString(3, nomeArquivo);
  124 + estado.setString(4, nomeExtensao);
113 125
114 resultado = estado.executeUpdate(); 126 resultado = estado.executeUpdate();
115 127
@@ -128,7 +140,7 @@ public class PlanoTrabalhoDao { @@ -128,7 +140,7 @@ public class PlanoTrabalhoDao {
128 return salvoComSucesso; 140 return salvoComSucesso;
129 } 141 }
130 142
131 - public boolean atualizarPlanoTrabalho(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeExtensao) 143 + public boolean atualizarPlanoTrabalho(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeArquivo, String nomeExtensao)
132 { 144 {
133 145
134 StringBuffer sql = new StringBuffer(); 146 StringBuffer sql = new StringBuffer();
@@ -143,6 +155,7 @@ public class PlanoTrabalhoDao { @@ -143,6 +155,7 @@ public class PlanoTrabalhoDao {
143 //sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho) VALUES (?, ?); "); 155 //sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho) VALUES (?, ?); ");
144 sql.append(" UPDATE public.plano_trabalho"); 156 sql.append(" UPDATE public.plano_trabalho");
145 sql.append(" SET arquivo_plano_trabalho=?,"); 157 sql.append(" SET arquivo_plano_trabalho=?,");
  158 + sql.append( " nome_plano_trabalho =?, ");
146 sql.append( " extensao_plano_trabalho =? "); 159 sql.append( " extensao_plano_trabalho =? ");
147 sql.append(" WHERE id_plano_trabalho=?;"); 160 sql.append(" WHERE id_plano_trabalho=?;");
148 161
@@ -150,8 +163,10 @@ public class PlanoTrabalhoDao { @@ -150,8 +163,10 @@ public class PlanoTrabalhoDao {
150 163
151 //estado.setInt(1, questionario.getIdQuestionario()); 164 //estado.setInt(1, questionario.getIdQuestionario());
152 estado.setBinaryStream(1, file); 165 estado.setBinaryStream(1, file);
153 - estado.setString(2, nomeExtensao);  
154 - estado.setInt(3, idPlanoTrabalho); 166 + estado.setString(2, nomeArquivo);
  167 + estado.setString(3, nomeExtensao);
  168 + estado.setInt(4, idPlanoTrabalho);
  169 +
155 170
156 resultado = estado.executeUpdate(); 171 resultado = estado.executeUpdate();
157 172
@@ -170,7 +185,7 @@ public class PlanoTrabalhoDao { @@ -170,7 +185,7 @@ public class PlanoTrabalhoDao {
170 return salvoComSucesso; 185 return salvoComSucesso;
171 } 186 }
172 187
173 - public boolean atualizarRelatorioAss(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeExtensao) 188 + public boolean atualizarRelatorioAss(String path, InputStream file, Questionario questionario, int idPlanoTrabalho, String nomeArquivo, String nomeExtensao)
174 { 189 {
175 190
176 StringBuffer sql = new StringBuffer(); 191 StringBuffer sql = new StringBuffer();
@@ -185,6 +200,7 @@ public class PlanoTrabalhoDao { @@ -185,6 +200,7 @@ public class PlanoTrabalhoDao {
185 //sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho) VALUES (?, ?); "); 200 //sql.append(" INSERT INTO public.plano_trabalho(id_questionario, arquivo_plano_trabalho) VALUES (?, ?); ");
186 sql.append(" UPDATE public.plano_trabalho"); 201 sql.append(" UPDATE public.plano_trabalho");
187 sql.append(" SET arquivo_relatorio_ass=?,"); 202 sql.append(" SET arquivo_relatorio_ass=?,");
  203 + sql.append( " nome_relatorio_ass =?, ");
188 sql.append( " extensao_relatorio_ass =? "); 204 sql.append( " extensao_relatorio_ass =? ");
189 sql.append(" WHERE id_plano_trabalho=?;"); 205 sql.append(" WHERE id_plano_trabalho=?;");
190 206
@@ -192,8 +208,9 @@ public class PlanoTrabalhoDao { @@ -192,8 +208,9 @@ public class PlanoTrabalhoDao {
192 208
193 //estado.setInt(1, questionario.getIdQuestionario()); 209 //estado.setInt(1, questionario.getIdQuestionario());
194 estado.setBinaryStream(1, file); 210 estado.setBinaryStream(1, file);
195 - estado.setString(2, nomeExtensao);  
196 - estado.setInt(3, idPlanoTrabalho); 211 + estado.setString(2, nomeArquivo);
  212 + estado.setString(3, nomeExtensao);
  213 + estado.setInt(4, idPlanoTrabalho);
197 214
198 resultado = estado.executeUpdate(); 215 resultado = estado.executeUpdate();
199 216
@@ -240,7 +257,9 @@ public class PlanoTrabalhoDao { @@ -240,7 +257,9 @@ public class PlanoTrabalhoDao {
240 planoTrabalho.setArquivoPlanoTrabalho(rset.getBytes("arquivo_plano_trabalho")); 257 planoTrabalho.setArquivoPlanoTrabalho(rset.getBytes("arquivo_plano_trabalho"));
241 planoTrabalho.setNomeExtensaoPlanoTrabalho(rset.getString("extensao_plano_trabalho")); 258 planoTrabalho.setNomeExtensaoPlanoTrabalho(rset.getString("extensao_plano_trabalho"));
242 planoTrabalho.setArquivoRelatorioAss(rset.getBytes("arquivo_relatorio_ass")); 259 planoTrabalho.setArquivoRelatorioAss(rset.getBytes("arquivo_relatorio_ass"));
243 - planoTrabalho.setNomeExtensaoRelatorioAss(rset.getString("extensao_relatorio_ass")); 260 + planoTrabalho.setNomeExtensaoRelatorioAss(rset.getString("extensao_relatorio_ass"));
  261 + planoTrabalho.setNomePlanoTrabalho(rset.getString("nome_plano_trabalho"));
  262 + planoTrabalho.setNomeRelatorioAss(rset.getString("nome_relatorio_ass"));
244 planoTrabalho.setQuestionario(questionario); 263 planoTrabalho.setQuestionario(questionario);
245 } 264 }
246 265
src/br/com/dao/QuestionarioDao.java
@@ -16,6 +16,7 @@ import java.util.Date; @@ -16,6 +16,7 @@ import java.util.Date;
16 import java.util.List; 16 import java.util.List;
17 17
18 import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; 18 import br.com.caelum.vraptor.interceptor.multipart.UploadedFile;
  19 +import br.com.model.entity.PlanoTrabalho;
19 import br.com.model.entity.Questionario; 20 import br.com.model.entity.Questionario;
20 import br.com.util.DateUtil; 21 import br.com.util.DateUtil;
21 import br.com.util.GeradorCodigoHash; 22 import br.com.util.GeradorCodigoHash;
@@ -66,10 +67,34 @@ public class QuestionarioDao { @@ -66,10 +67,34 @@ public class QuestionarioDao {
66 questionario.setDtRespostaEmail(dataRespostaQuestionario); 67 questionario.setDtRespostaEmail(dataRespostaQuestionario);
67 } 68 }
68 69
  70 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  71 +
  72 + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario"));
69 73
70 74
71 questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario"))); 75 questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario")));
72 - questionario.setPlanoTrabalhoEnviado( planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")) > -1 ? true : false); 76 +
  77 + //verifica se foi anexado plano de trabalho
  78 + if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null)
  79 + {
  80 + questionario.setPlanoTrabalhoAnexado(true);
  81 + }
  82 + else
  83 + {
  84 + questionario.setPlanoTrabalhoAnexado(false);
  85 + }
  86 +
  87 +
  88 + //verifica se anexado Relatório assinado
  89 + if(planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null)
  90 + {
  91 + questionario.setRelatorioAnexado(true);
  92 + }
  93 + else
  94 + {
  95 + questionario.setRelatorioAnexado(false);
  96 + }
  97 +
73 listaQuestionario.add(questionario); 98 listaQuestionario.add(questionario);
74 99
75 } 100 }
@@ -80,7 +105,7 @@ public class QuestionarioDao { @@ -80,7 +105,7 @@ public class QuestionarioDao {
80 return listaQuestionario; 105 return listaQuestionario;
81 } 106 }
82 107
83 - public List<Questionario> retornarListaQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String nomeOrgao) { 108 + public List<Questionario> retornarListaQuestionarioComFiltro(String path, String statusRelatorio, String statusPlanoTrabalho, String relatorioAnexado, String nomeOrgao) {
84 109
85 List<Questionario> listaQuestionario = new ArrayList<Questionario>(); 110 List<Questionario> listaQuestionario = new ArrayList<Questionario>();
86 111
@@ -114,6 +139,7 @@ public class QuestionarioDao { @@ -114,6 +139,7 @@ public class QuestionarioDao {
114 questionario.setFlagEnviado(rset.getBoolean("flag_enviado")); 139 questionario.setFlagEnviado(rset.getBoolean("flag_enviado"));
115 140
116 dataRespostaQuestionario = rset.getString("data_resposta_email"); 141 dataRespostaQuestionario = rset.getString("data_resposta_email");
  142 +
117 if(dataRespostaQuestionario != null) 143 if(dataRespostaQuestionario != null)
118 { 144 {
119 questionario.setDtRespostaEmail(DateUtil.dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario)); 145 questionario.setDtRespostaEmail(DateUtil.dataHoraFormatadaDiaMesAnoComParametro(dataRespostaQuestionario));
@@ -126,21 +152,75 @@ public class QuestionarioDao { @@ -126,21 +152,75 @@ public class QuestionarioDao {
126 152
127 questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario"))); 153 questionario.setDataRespostaQuestionario(respostaQuestionarioDao.verificaRespostaQuestionario(path, rset.getInt("id_questionario")));
128 154
129 - questionario.setPlanoTrabalhoEnviado( planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario")) > -1 ? true : false);  
130 155
131 - if(statusPlanoTrabalho.equalsIgnoreCase("todos")) 156 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  157 +
  158 + planoTrabalho = planoTrabalhoDao.verificaPlanoTrabalho(path, rset.getInt("id_questionario"));
  159 +
  160 + //verifica se foi anexado plano de trabalho
  161 + if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null)
132 { 162 {
133 - listaQuestionario.add(questionario); 163 + questionario.setPlanoTrabalhoAnexado(true);
  164 + }
  165 + else
  166 + {
  167 + questionario.setPlanoTrabalhoAnexado(false);
  168 + }
  169 + //verifica se foi anexado o Relatório
  170 + if(planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null)
  171 + {
  172 + questionario.setRelatorioAnexado(true);
134 } 173 }
135 else 174 else
136 { 175 {
137 - if(statusPlanoTrabalho.equalsIgnoreCase("sim") && questionario.isPlanoTrabalhoEnviado()) 176 + questionario.setRelatorioAnexado(false);
  177 + }
  178 +
  179 +
  180 + if(statusPlanoTrabalho.equalsIgnoreCase("todos") && relatorioAnexado.equalsIgnoreCase("todos"))
  181 + {
  182 + listaQuestionario.add(questionario);
  183 + }
  184 + else
  185 + {
  186 + if(statusPlanoTrabalho.equalsIgnoreCase("sim") && questionario.isPlanoTrabalhoAnexado())
138 { 187 {
139 - listaQuestionario.add(questionario); 188 + if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado())
  189 + {
  190 + listaQuestionario.add(questionario);
  191 + }
  192 + else if(relatorioAnexado.equalsIgnoreCase("todos"))
  193 + {
  194 + listaQuestionario.add(questionario);
  195 + }
  196 + else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado())
  197 + {
  198 + listaQuestionario.add(questionario);
  199 + }
140 } 200 }
141 - else if(statusPlanoTrabalho.equalsIgnoreCase("nao") && !questionario.isPlanoTrabalhoEnviado()) 201 + else if(statusPlanoTrabalho.equalsIgnoreCase("nao") && !questionario.isPlanoTrabalhoAnexado())
  202 + {
  203 + if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado())
  204 + {
  205 + listaQuestionario.add(questionario);
  206 + } else if(relatorioAnexado.equalsIgnoreCase("todos"))
  207 + {
  208 + listaQuestionario.add(questionario);
  209 + }
  210 + else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado())
  211 + {
  212 + listaQuestionario.add(questionario);
  213 + }
  214 + }else if(statusPlanoTrabalho.equalsIgnoreCase("todos"))
142 { 215 {
143 - listaQuestionario.add(questionario); 216 + if(relatorioAnexado.equalsIgnoreCase("sim") && questionario.isRelatorioAnexado())
  217 + {
  218 + listaQuestionario.add(questionario);
  219 + }
  220 + else if(relatorioAnexado.equalsIgnoreCase("nao") && !questionario.isRelatorioAnexado())
  221 + {
  222 + listaQuestionario.add(questionario);
  223 + }
144 } 224 }
145 } 225 }
146 226
src/br/com/model/entity/PlanoTrabalho.java
@@ -7,6 +7,8 @@ public class PlanoTrabalho { @@ -7,6 +7,8 @@ public class PlanoTrabalho {
7 private String nomeExtensaoPlanoTrabalho; 7 private String nomeExtensaoPlanoTrabalho;
8 private byte[] arquivoRelatorioAss; 8 private byte[] arquivoRelatorioAss;
9 private String nomeExtensaoRelatorioAss; 9 private String nomeExtensaoRelatorioAss;
  10 + private String nomePlanoTrabalho;
  11 + private String nomeRelatorioAss;
10 private Questionario questionario; 12 private Questionario questionario;
11 13
12 public int getIdPlanoTrabalho() { 14 public int getIdPlanoTrabalho() {
@@ -47,5 +49,19 @@ public class PlanoTrabalho { @@ -47,5 +49,19 @@ public class PlanoTrabalho {
47 public void setNomeExtensaoRelatorioAss(String nomeExtensaoRelatorioAss) { 49 public void setNomeExtensaoRelatorioAss(String nomeExtensaoRelatorioAss) {
48 this.nomeExtensaoRelatorioAss = nomeExtensaoRelatorioAss; 50 this.nomeExtensaoRelatorioAss = nomeExtensaoRelatorioAss;
49 } 51 }
  52 + public String getNomePlanoTrabalho() {
  53 + return nomePlanoTrabalho;
  54 + }
  55 + public void setNomePlanoTrabalho(String nomePlanoTrabalho) {
  56 + this.nomePlanoTrabalho = nomePlanoTrabalho;
  57 + }
  58 + public String getNomeRelatorioAss() {
  59 + return nomeRelatorioAss;
  60 + }
  61 + public void setNomeRelatorioAss(String nomeRelatorioAss) {
  62 + this.nomeRelatorioAss = nomeRelatorioAss;
  63 + }
  64 +
  65 +
50 66
51 } 67 }
src/br/com/model/entity/Questionario.java
@@ -22,7 +22,8 @@ public class Questionario { @@ -22,7 +22,8 @@ public class Questionario {
22 private String dtRecebimentoEmail; 22 private String dtRecebimentoEmail;
23 private String dtRespostaEmail; 23 private String dtRespostaEmail;
24 private String dataRespostaQuestionario; 24 private String dataRespostaQuestionario;
25 - private boolean planoTrabalhoEnviado; 25 + private boolean planoTrabalhoAnexado;
  26 + private boolean RelatorioAnexado;
26 private boolean flagEnviado; 27 private boolean flagEnviado;
27 28
28 29
@@ -174,12 +175,12 @@ public class Questionario { @@ -174,12 +175,12 @@ public class Questionario {
174 this.dataRespostaQuestionario = dataRespostaQuestionario; 175 this.dataRespostaQuestionario = dataRespostaQuestionario;
175 } 176 }
176 177
177 - public boolean isPlanoTrabalhoEnviado() {  
178 - return planoTrabalhoEnviado; 178 + public boolean isPlanoTrabalhoAnexado() {
  179 + return planoTrabalhoAnexado;
179 } 180 }
180 181
181 - public void setPlanoTrabalhoEnviado(boolean planoTrabalhoEnviado) {  
182 - this.planoTrabalhoEnviado = planoTrabalhoEnviado; 182 + public void setPlanoTrabalhoAnexado(boolean planoTrabalhoAnexado) {
  183 + this.planoTrabalhoAnexado = planoTrabalhoAnexado;
183 } 184 }
184 185
185 public boolean isFlagEnviado() { 186 public boolean isFlagEnviado() {
@@ -190,6 +191,14 @@ public class Questionario { @@ -190,6 +191,14 @@ public class Questionario {
190 this.flagEnviado = flagEnviado; 191 this.flagEnviado = flagEnviado;
191 } 192 }
192 193
  194 + public boolean isRelatorioAnexado() {
  195 + return RelatorioAnexado;
  196 + }
  197 +
  198 + public void setRelatorioAnexado(boolean relatorioAnexado) {
  199 + RelatorioAnexado = relatorioAnexado;
  200 + }
  201 +
193 202
194 203
195 } 204 }