Commit e8624499adff50f2aa49733e717b4d7bc49e06bb

Authored by 96409975520
1 parent bfbcab0f
Exists in master

PAinel

WebContent/WEB-INF/jsp/index/formulario.jsp
@@ -12,9 +12,12 @@ @@ -12,9 +12,12 @@
12 </li> 12 </li>
13 13
14 <li> 14 <li>
15 - <form method="post" id="voltar_form" action="${pageContext.request.contextPath}/formularioOrgao">  
16 - <input type="hidden" id="valorHash" name="valorHash" value="${valorHash}"/>  
17 - <a href="#" onClick="document.getElementById('voltar_form').submit();">Dados Institucionais </a> 15 + <form method="post" id="voltar_form"
  16 + action="${pageContext.request.contextPath}/formularioOrgao">
  17 + <input type="hidden" id="valorHash" name="valorHash"
  18 + value="${valorHash}" />
  19 + <a href="#"
  20 + onClick="document.getElementById('voltar_form').submit();">Dados Institucionais </a>
18 </form> 21 </form>
19 22
20 </li> 23 </li>
@@ -23,6 +26,7 @@ @@ -23,6 +26,7 @@
23 </ul> 26 </ul>
24 </div> 27 </div>
25 <c:if test="${not empty nivel_01}"> 28 <c:if test="${not empty nivel_01}">
  29 +
26 <div class="funcionalidades"> 30 <div class="funcionalidades">
27 <ul class="statusFad"> 31 <ul class="statusFad">
28 <li> 32 <li>
@@ -43,8 +47,8 @@ @@ -43,8 +47,8 @@
43 <li> 47 <li>
44 <c:if test="${nivel_03 == true}"> 48 <c:if test="${nivel_03 == true}">
45 <img src="imgs/nivel_03_completo.png" 49 <img src="imgs/nivel_03_completo.png"
46 - alt="FAD impresso, assinado, digitalizado e anexado." width="125"  
47 - height="85" /> 50 + alt="FAD impresso, assinado, digitalizado e anexado."
  51 + width="125" height="85" />
48 </c:if> 52 </c:if>
49 <c:if test="${nivel_03 == false}"> 53 <c:if test="${nivel_03 == false}">
50 <img src="imgs/nivel_03_incompleto.png" 54 <img src="imgs/nivel_03_incompleto.png"
@@ -74,8 +78,8 @@ @@ -74,8 +78,8 @@
74 <img src="imgs/nivel_05_incompleto.png" 78 <img src="imgs/nivel_05_incompleto.png"
75 alt="Relatório Circunstanciado não enviado à PFDC/MPF." 79 alt="Relatório Circunstanciado não enviado à PFDC/MPF."
76 width="125" height="85" /> 80 width="125" height="85" />
77 - <img src="imgs/nivel_06_incompleto.png" alt="Processo não concluído."  
78 - width="85" height="85" /> 81 + <img src="imgs/nivel_06_incompleto.png"
  82 + alt="Processo não concluído." width="85" height="85" />
79 </c:if> 83 </c:if>
80 </li> 84 </li>
81 </ul> 85 </ul>
@@ -96,43 +100,61 @@ @@ -96,43 +100,61 @@
96 </c:if> 100 </c:if>
97 </div> 101 </div>
98 102
99 - <div><label class="asterisco">Os campos com asterisco são de preenchimento obrigatório</label></div> 103 + <div>
  104 + <label class="asterisco">Os campos com asterisco são de preenchimento obrigatório</label>
  105 + </div>
100 <div id="introducao"> 106 <div id="introducao">
101 107
102 <h2 class="titulo">Questionário Acessibilidade</h2> 108 <h2 class="titulo">Questionário Acessibilidade</h2>
103 - <form id="formulario" method="post" action="${pageContext.request.contextPath}/salvar-formulario" accept-charset="UTF-8" onSubmit="return enviarDados();"> 109 + <form id="formulario" method="post"
  110 + action="${pageContext.request.contextPath}/salvar-formulario"
  111 + accept-charset="UTF-8" onSubmit="return enviarDados();">
104 <fieldset> 112 <fieldset>
105 <legend>Dados Acessibilidade</legend> 113 <legend>Dados Acessibilidade</legend>
106 114
107 <label for="perguntaAcessibilidade" class="obrigatorio">1) O Órgão tem conhecimento da legislação que envolve o tema "acessibilidade" bem como suas implicações?</label><br> 115 <label for="perguntaAcessibilidade" class="obrigatorio">1) O Órgão tem conhecimento da legislação que envolve o tema "acessibilidade" bem como suas implicações?</label><br>
108 - <input type="hidden" name="hPerguntaAcessibilidade" value="7" /><select name="perguntaAcessibilidade" id="perguntaAcessibilidade" required>  
109 - <option value="" ${perguntaAcessibilidade == ''?'selected=\"selected\"':''}>Selecione uma resposta</option>  
110 - <option value="2" ${perguntaAcessibilidade == '2'?'selected=\"selected\"':''}>Sim</option>  
111 - <option value="4" ${perguntaAcessibilidade == '4'?'selected=\"selected\"':''}>Já ouvi falar</option>  
112 - <option value="3" ${perguntaAcessibilidade == '3'?'selected=\"selected\"':''}>Não</option> 116 + <input type="hidden" name="hPerguntaAcessibilidade" value="7" /><select
  117 + name="perguntaAcessibilidade" id="perguntaAcessibilidade" required>
  118 + <option value=""
  119 + ${perguntaAcessibilidade == ''?'selected=\"selected\"':''}>Selecione uma resposta</option>
  120 + <option value="2"
  121 + ${perguntaAcessibilidade == '2'?'selected=\"selected\"':''}>Sim</option>
  122 + <option value="4"
  123 + ${perguntaAcessibilidade == '4'?'selected=\"selected\"':''}>Já ouvi falar</option>
  124 + <option value="3"
  125 + ${perguntaAcessibilidade == '3'?'selected=\"selected\"':''}>Não</option>
113 </select> 126 </select>
114 <br><br> 127 <br><br>
115 128
116 129
117 <label for="reclamacao" class="obrigatorio">2) O Órgão já recebeu, formal ou informalmente, reclamações sobre acessibilidade em seus ambientes digitais?</label><br> 130 <label for="reclamacao" class="obrigatorio">2) O Órgão já recebeu, formal ou informalmente, reclamações sobre acessibilidade em seus ambientes digitais?</label><br>
118 - <input type="hidden" name="hReclamacao" value="8" /><select name="reclamacao" id="reclamacao" required> 131 + <input type="hidden" name="hReclamacao" value="8" /><select
  132 + name="reclamacao" id="reclamacao" required>
119 <option value="" ${reclamacao == ''?'selected=\"selected\"':''}>Selecione uma resposta</option> 133 <option value="" ${reclamacao == ''?'selected=\"selected\"':''}>Selecione uma resposta</option>
120 - <option value="2" ${reclamacao == '2'?'selected=\"selected\"':''}>Sim</option> 134 + <option value="2"
  135 + ${reclamacao == '2'?'selected=\"selected\"':''}>Sim</option>
121 <option value="3" ${reclamacao == '3'?'selected=\"selected\"':''}>Não</option> 136 <option value="3" ${reclamacao == '3'?'selected=\"selected\"':''}>Não</option>
122 </select> 137 </select>
123 <br><br> 138 <br><br>
124 139
125 <label for="espacoReclamacao">3) Com relação a pergunta anterior, caso tenha respondido "Sim", mencione abaixo quando e por quem houve a reclamação e qual foi a reclamação:</label><br> 140 <label for="espacoReclamacao">3) Com relação a pergunta anterior, caso tenha respondido "Sim", mencione abaixo quando e por quem houve a reclamação e qual foi a reclamação:</label><br>
126 <input type="hidden" name="hEspacoReclamacao" value="9" /> 141 <input type="hidden" name="hEspacoReclamacao" value="9" />
127 - <textarea name="espacoReclamacao" id="espacoReclamacao" rows="8" cols="100" maxlength="1000"><c:if test="${espacoReclamacao != null}">${espacoReclamacao}</c:if></textarea> 142 + <textarea name="espacoReclamacao" id="espacoReclamacao" rows="8"
  143 + cols="100" maxlength="1000"><c:if
  144 + test="${espacoReclamacao != null}">${espacoReclamacao}</c:if></textarea>
128 <br><br> 145 <br><br>
129 146
130 <label for="perguntaEstimulo" class="obrigatorio">4) O Órgão tem estimulado seus servidores e parceiros a realizarem capacitações sobre acessibilidade em ambientes digitais?</label> 147 <label for="perguntaEstimulo" class="obrigatorio">4) O Órgão tem estimulado seus servidores e parceiros a realizarem capacitações sobre acessibilidade em ambientes digitais?</label>
131 - <input type="hidden" name="hPerguntaEstimulo" value="10" /><select name="perguntaEstimulo" id="perguntaEstimulo" required>  
132 - <option value="" ${perguntaEstimulo == ''?'selected=\"selected\"':''}>Selecione uma resposta</option>  
133 - <option value="2" ${perguntaEstimulo == '2'?'selected=\"selected\"':''}>Sim</option>  
134 - <option value="5" ${perguntaEstimulo == '5'?'selected=\"selected\"':''}>Não, por não priorizar o tema</option>  
135 - <option value="6" ${perguntaEstimulo == '6'?'selected=\"selected\"':''}>Não, por não conhecer a oferta de cursos sobre o tema</option> 148 + <input type="hidden" name="hPerguntaEstimulo" value="10" /><select
  149 + name="perguntaEstimulo" id="perguntaEstimulo" required>
  150 + <option value=""
  151 + ${perguntaEstimulo == ''?'selected=\"selected\"':''}>Selecione uma resposta</option>
  152 + <option value="2"
  153 + ${perguntaEstimulo == '2'?'selected=\"selected\"':''}>Sim</option>
  154 + <option value="5"
  155 + ${perguntaEstimulo == '5'?'selected=\"selected\"':''}>Não, por não priorizar o tema</option>
  156 + <option value="6"
  157 + ${perguntaEstimulo == '6'?'selected=\"selected\"':''}>Não, por não conhecer a oferta de cursos sobre o tema</option>
136 </select> 158 </select>
137 <br><br> 159 <br><br>
138 160
@@ -192,38 +214,54 @@ @@ -192,38 +214,54 @@
192 <input type="hidden" name="hRequisito" value="12" /> 214 <input type="hidden" name="hRequisito" value="12" />
193 <legend class="obrigatorio">6) O Órgão observa em seu processo de desenvolvimento de sítios, portais e serviços eletrônicos os requisitos de acessibilidade? 215 <legend class="obrigatorio">6) O Órgão observa em seu processo de desenvolvimento de sítios, portais e serviços eletrônicos os requisitos de acessibilidade?
194 </legend> 216 </legend>
195 - <input type="radio" name="requisito" id="requisito1" value="11" checked="checked"><label for="requisito1">Sim, observamos os requisitos do modelo brasileiro, ou seja, observamos o "Modelo de Acessibilidade em Governo Eletrônico (eMAG)"</label><br>  
196 - <input type="radio" name="requisito" id="requisito2" value="12" ${requisito == '12'?'checked=\"checked\"':''}><label for="requisito2">Sim, observamos os requisitos do modelo internacional, ou seja, observamos o "<span lang="en">Web Content Accessibility Guidelines</span> (WCAG)"</label><br>  
197 - <input type="radio" name="requisito" id="requisito3" value="13" ${requisito == '13'?'checked=\"checked\"':''}><label for="requisito3">Sim, observamos os requisitos de outros modelos que não os especificados acima</label><br>  
198 - <input type="radio" name="requisito" id="requisito4" value="3" ${requisito == '3'?'checked=\"checked\"':''}><label for="requisito4">Não</label> 217 + <input type="radio" name="requisito" id="requisito1" value="11"
  218 + checked="checked"><label for="requisito1">Sim, observamos os requisitos do modelo brasileiro, ou seja, observamos o "Modelo de Acessibilidade em Governo Eletrônico (eMAG)"</label><br>
  219 + <input type="radio" name="requisito" id="requisito2" value="12"
  220 + ${requisito == '12'?'checked=\"checked\"':''}><label
  221 + for="requisito2">Sim, observamos os requisitos do modelo internacional, ou seja, observamos o "<span
  222 + lang="en">Web Content Accessibility Guidelines</span> (WCAG)"</label><br>
  223 + <input type="radio" name="requisito" id="requisito3" value="13"
  224 + ${requisito == '13'?'checked=\"checked\"':''}><label
  225 + for="requisito3">Sim, observamos os requisitos de outros modelos que não os especificados acima</label><br>
  226 + <input type="radio" name="requisito" id="requisito4" value="3"
  227 + ${requisito == '3'?'checked=\"checked\"':''}><label
  228 + for="requisito4">Não</label>
199 </fieldset> 229 </fieldset>
200 <br> 230 <br>
201 231
202 <label for="justificativaRequisito">7) Com relação à pergunta anterior, caso tenha respondido "Sim, observamos os requisitos de outros modelos que não os especificados acima", então mencione abaixo estes modelos:</label> 232 <label for="justificativaRequisito">7) Com relação à pergunta anterior, caso tenha respondido "Sim, observamos os requisitos de outros modelos que não os especificados acima", então mencione abaixo estes modelos:</label>
203 <input type="hidden" name="hJustificativaRequisito" value="13" /> 233 <input type="hidden" name="hJustificativaRequisito" value="13" />
204 <textarea name="justificativaRequisito" 234 <textarea name="justificativaRequisito"
205 - id="justificativaRequisito" rows="8" cols="100" maxlength="600"><c:if test="${justificativaRequisito != null}">${justificativaRequisito}</c:if></textarea> 235 + id="justificativaRequisito" rows="8" cols="100" maxlength="600"><c:if
  236 + test="${justificativaRequisito != null}">${justificativaRequisito}</c:if></textarea>
206 <br><br> 237 <br><br>
207 238
208 <fieldset class="pergunta"> 239 <fieldset class="pergunta">
209 <input type="hidden" name="hOpcaoContrat" value="14" /> 240 <input type="hidden" name="hOpcaoContrat" value="14" />
210 - <legend class="obrigatorio">8) Nas contratações de fábrica de <span lang="en"><i>software</i></span> e/ou parcerias firmadas para o desenvolvimento de ambientes digitais, há citação explícita<br> sobre os requisitos de acessibilidade assim como as sanções para o seu não atendimento? 241 + <legend class="obrigatorio">8) Nas contratações de fábrica de <span
  242 + lang="en"><i>software</i></span> e/ou parcerias firmadas para o desenvolvimento de ambientes digitais, há citação explícita<br> sobre os requisitos de acessibilidade assim como as sanções para o seu não atendimento?
211 </legend> 243 </legend>
212 <input type="radio" id="contratacao1" name="opcaoContrat" 244 <input type="radio" id="contratacao1" name="opcaoContrat"
213 value="14" checked="checked"><label for="contratacao1">Sim, conforme especifica o estudo técnico preliminar da contratação da Instrução Normativa N° 04, de 11 de Setembro de 2014.</label><br> 245 value="14" checked="checked"><label for="contratacao1">Sim, conforme especifica o estudo técnico preliminar da contratação da Instrução Normativa N° 04, de 11 de Setembro de 2014.</label><br>
214 <input type="radio" id="contratacao2" name="opcaoContrat" 246 <input type="radio" id="contratacao2" name="opcaoContrat"
215 value="15" ${opcaoContrat == '15'?'checked=\"checked\"':''}><label 247 value="15" ${opcaoContrat == '15'?'checked=\"checked\"':''}><label
216 - for="contratacao2">Sim, conforme sugere a "Cartilha de Boas Práticas para Acessibilidade Digital" na contratação de <br>desenvolvimento <span lang="en">WEB</span></label><br>  
217 - <input type="radio" id="contratacao3" name="opcaoContrat" value="3" ${opcaoContrat == '3'?'checked=\"checked\"':''}><label for="contratacao3">Não</label> 248 + for="contratacao2">Sim, conforme sugere a "Cartilha de Boas Práticas para Acessibilidade Digital" na contratação de <br>desenvolvimento <span
  249 + lang="en">WEB</span></label><br>
  250 + <input type="radio" id="contratacao3" name="opcaoContrat"
  251 + value="3" ${opcaoContrat == '3'?'checked=\"checked\"':''}><label
  252 + for="contratacao3">Não</label>
218 </fieldset> 253 </fieldset>
219 <br> 254 <br>
220 255
221 <label for="perguntaValidacao" class="obrigatorio">9) O Órgão realiza validações de acessibilidade em seus ambientes digitais?</label><br> 256 <label for="perguntaValidacao" class="obrigatorio">9) O Órgão realiza validações de acessibilidade em seus ambientes digitais?</label><br>
222 <input type="hidden" name="hPerguntaValidacao" value="15" /> 257 <input type="hidden" name="hPerguntaValidacao" value="15" />
223 - <select name="perguntaValidacao" id="perguntaValidacao" required>  
224 - <option value="" ${perguntaValidacao == ''?'selected=\"selected\"':''}>Selecione uma resposta</option>  
225 - <option value="2" ${perguntaValidacao == '2'?'selected=\"selected\"':''}>Sim</option>  
226 - <option value="3" ${perguntaValidacao == '3'?'selected=\"selected\"':''}>Não</option> 258 + <select name="perguntaValidacao" id="perguntaValidacao" required>
  259 + <option value=""
  260 + ${perguntaValidacao == ''?'selected=\"selected\"':''}>Selecione uma resposta</option>
  261 + <option value="2"
  262 + ${perguntaValidacao == '2'?'selected=\"selected\"':''}>Sim</option>
  263 + <option value="3"
  264 + ${perguntaValidacao == '3'?'selected=\"selected\"':''}>Não</option>
227 </select> 265 </select>
228 <br><br> 266 <br><br>
229 267
@@ -283,7 +321,8 @@ @@ -283,7 +321,8 @@
283 <c:set var="marcar" scope="session" value="true" /> 321 <c:set var="marcar" scope="session" value="true" />
284 </c:if> 322 </c:if>
285 </c:forEach> 323 </c:forEach>
286 - <input type="checkbox" name="ferramentaValidacao" value="20" title="Ao marcar esta opção as demais opções serão desabilitadas!" 324 + <input type="checkbox" name="ferramentaValidacao" value="20"
  325 + title="Ao marcar esta opção as demais opções serão desabilitadas!"
287 id="nenhuma" ${marcar == 'true'?'checked=\"checked\"':''}><label 326 id="nenhuma" ${marcar == 'true'?'checked=\"checked\"':''}><label
288 for="nenhuma">Nenhuma</label><br> 327 for="nenhuma">Nenhuma</label><br>
289 328
@@ -296,7 +335,8 @@ @@ -296,7 +335,8 @@
296 <input type="checkbox" name="ferramentaValidacao" id="asesWeb" 335 <input type="checkbox" name="ferramentaValidacao" id="asesWeb"
297 value="21" ${marcar == 'true'?'checked=\"checked\"':''}><label 336 value="21" ${marcar == 'true'?'checked=\"checked\"':''}><label
298 for="asesWeb">Avaliador e Simulador de Acessibilidade em Sítios (ASES) <span 337 for="asesWeb">Avaliador e Simulador de Acessibilidade em Sítios (ASES) <span
299 - lang="en">Web</span> (<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr> e eMAG)</label><br> 338 + lang="en">Web</span> (<abbr title="Web Accessibility Initiative"
  339 + lang="en">WAI</abbr> e eMAG)</label><br>
300 340
301 <c:set var="marcar" scope="session" value="false" /> 341 <c:set var="marcar" scope="session" value="false" />
302 <c:forEach items="${ferramentaValidacao}" var="item"> 342 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -307,7 +347,8 @@ @@ -307,7 +347,8 @@
307 <input type="checkbox" name="ferramentaValidacao" id="asesDesktop" 347 <input type="checkbox" name="ferramentaValidacao" id="asesDesktop"
308 value="22" ${marcar == 'true'?'checked=\"checked\"':''}><label 348 value="22" ${marcar == 'true'?'checked=\"checked\"':''}><label
309 for="asesDesktop">Avaliador e Simulador de Acessibilidade em Sítios (ASES) <span 349 for="asesDesktop">Avaliador e Simulador de Acessibilidade em Sítios (ASES) <span
310 - lang="en">Desktop</span> (<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr> e eMAG)</label><br> 350 + lang="en">Desktop</span> (<abbr
  351 + title="Web Accessibility Initiative" lang="en">WAI</abbr> e eMAG)</label><br>
311 352
312 <c:set var="marcar" scope="session" value="false" /> 353 <c:set var="marcar" scope="session" value="false" />
313 <c:forEach items="${ferramentaValidacao}" var="item"> 354 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -317,7 +358,8 @@ @@ -317,7 +358,8 @@
317 </c:forEach> 358 </c:forEach>
318 <input type="checkbox" name="ferramentaValidacao" id="silva" 359 <input type="checkbox" name="ferramentaValidacao" id="silva"
319 value="23" ${marcar == 'true'?'checked=\"checked\"':''}><label 360 value="23" ${marcar == 'true'?'checked=\"checked\"':''}><label
320 - for="silva">Da Silva (<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr> e eMAG)</label><br> 361 + for="silva">Da Silva (<abbr
  362 + title="Web Accessibility Initiative" lang="en">WAI</abbr> e eMAG)</label><br>
321 363
322 <c:set var="marcar" scope="session" value="false" /> 364 <c:set var="marcar" scope="session" value="false" />
323 <c:forEach items="${ferramentaValidacao}" var="item"> 365 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -327,7 +369,8 @@ @@ -327,7 +369,8 @@
327 </c:forEach> 369 </c:forEach>
328 <input type="checkbox" name="ferramentaValidacao" id="access" 370 <input type="checkbox" name="ferramentaValidacao" id="access"
329 value="24" ${marcar == 'true'?'checked=\"checked\"':''}><label 371 value="24" ${marcar == 'true'?'checked=\"checked\"':''}><label
330 - for="access"><span lang="en">AccessMonitor</span> (<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br> 372 + for="access"><span lang="en">AccessMonitor</span> (<abbr
  373 + title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br>
331 374
332 <c:set var="marcar" scope="session" value="false" /> 375 <c:set var="marcar" scope="session" value="false" />
333 <c:forEach items="${ferramentaValidacao}" var="item"> 376 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -337,7 +380,8 @@ @@ -337,7 +380,8 @@
337 </c:forEach> 380 </c:forEach>
338 <input type="checkbox" name="ferramentaValidacao" id="tool" 381 <input type="checkbox" name="ferramentaValidacao" id="tool"
339 value="25" ${marcar == 'true'?'checked=\"checked\"':''}><label 382 value="25" ${marcar == 'true'?'checked=\"checked\"':''}><label
340 - for="tool"><span lang="en">Web Accessibility Tool </span>(WAVE) (<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br> 383 + for="tool"><span lang="en">Web Accessibility Tool </span>(WAVE) (<abbr
  384 + title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br>
341 385
342 <c:set var="marcar" scope="session" value="false" /> 386 <c:set var="marcar" scope="session" value="false" />
343 <c:forEach items="${ferramentaValidacao}" var="item"> 387 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -347,7 +391,8 @@ @@ -347,7 +391,8 @@
347 </c:forEach> 391 </c:forEach>
348 <input type="checkbox" name="ferramentaValidacao" id="cynthia" 392 <input type="checkbox" name="ferramentaValidacao" id="cynthia"
349 value="26" ${marcar == 'true'?'checked=\"checked\"':''}><label 393 value="26" ${marcar == 'true'?'checked=\"checked\"':''}><label
350 - for="cynthia"><span lang="en">Cynthia Says </span>(<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br> 394 + for="cynthia"><span lang="en">Cynthia Says </span>(<abbr
  395 + title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br>
351 396
352 <c:set var="marcar" scope="session" value="false" /> 397 <c:set var="marcar" scope="session" value="false" />
353 <c:forEach items="${ferramentaValidacao}" var="item"> 398 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -357,7 +402,8 @@ @@ -357,7 +402,8 @@
357 </c:forEach> 402 </c:forEach>
358 <input type="checkbox" name="ferramentaValidacao" id="hera" 403 <input type="checkbox" name="ferramentaValidacao" id="hera"
359 value="27" ${marcar == 'true'?'checked=\"checked\"':''}><label 404 value="27" ${marcar == 'true'?'checked=\"checked\"':''}><label
360 - for="hera"><span lang="en">Hera </span>(<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br> 405 + for="hera"><span lang="en">Hera </span>(<abbr
  406 + title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br>
361 407
362 <c:set var="marcar" scope="session" value="false" /> 408 <c:set var="marcar" scope="session" value="false" />
363 <c:forEach items="${ferramentaValidacao}" var="item"> 409 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -367,7 +413,8 @@ @@ -367,7 +413,8 @@
367 </c:forEach> 413 </c:forEach>
368 <input type="checkbox" name="ferramentaValidacao" id="lift" 414 <input type="checkbox" name="ferramentaValidacao" id="lift"
369 value="28" ${marcar == 'true'?'checked=\"checked\"':''}><label 415 value="28" ${marcar == 'true'?'checked=\"checked\"':''}><label
370 - for="lift"><span lang="en">Lift </span>(<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br> 416 + for="lift"><span lang="en">Lift </span>(<abbr
  417 + title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br>
371 418
372 <c:set var="marcar" scope="session" value="false" /> 419 <c:set var="marcar" scope="session" value="false" />
373 <c:forEach items="${ferramentaValidacao}" var="item"> 420 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -377,7 +424,8 @@ @@ -377,7 +424,8 @@
377 </c:forEach> 424 </c:forEach>
378 <input type="checkbox" name="ferramentaValidacao" id="taw" 425 <input type="checkbox" name="ferramentaValidacao" id="taw"
379 value="29" ${marcar == 'true'?'checked=\"checked\"':''}><label 426 value="29" ${marcar == 'true'?'checked=\"checked\"':''}><label
380 - for="taw"><span lang="en">TAW </span>(<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br> 427 + for="taw"><span lang="en">TAW </span>(<abbr
  428 + title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br>
381 429
382 <c:set var="marcar" scope="session" value="false" /> 430 <c:set var="marcar" scope="session" value="false" />
383 <c:forEach items="${ferramentaValidacao}" var="item"> 431 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -387,7 +435,8 @@ @@ -387,7 +435,8 @@
387 </c:forEach> 435 </c:forEach>
388 <input type="checkbox" name="ferramentaValidacao" id="examinator" 436 <input type="checkbox" name="ferramentaValidacao" id="examinator"
389 value="30" ${marcar == 'true'?'checked=\"checked\"':''}><label 437 value="30" ${marcar == 'true'?'checked=\"checked\"':''}><label
390 - for="examinator"><span lang="en">Examinator </span>(<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br> 438 + for="examinator"><span lang="en">Examinator </span>(<abbr
  439 + title="Web Accessibility Initiative" lang="en">WAI</abbr>)</label><br>
391 440
392 <c:set var="marcar" scope="session" value="false" /> 441 <c:set var="marcar" scope="session" value="false" />
393 <c:forEach items="${ferramentaValidacao}" var="item"> 442 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -397,7 +446,9 @@ @@ -397,7 +446,9 @@
397 </c:forEach> 446 </c:forEach>
398 <input type="checkbox" name="ferramentaValidacao" id="functional" 447 <input type="checkbox" name="ferramentaValidacao" id="functional"
399 value="31" ${marcar == 'true'?'checked=\"checked\"':''}><label 448 value="31" ${marcar == 'true'?'checked=\"checked\"':''}><label
400 - for="functional"><span lang="en">Functional Accessibility Evaluator</span> 1.1(<abbr title="Web Accessibility Initiative" lang="en">WAI</abbr> e <span lang="en">Section</span> 508)</label><br> 449 + for="functional"><span lang="en">Functional Accessibility Evaluator</span> 1.1(<abbr
  450 + title="Web Accessibility Initiative" lang="en">WAI</abbr> e <span
  451 + lang="en">Section</span> 508)</label><br>
401 452
402 <c:set var="marcar" scope="session" value="false" /> 453 <c:set var="marcar" scope="session" value="false" />
403 <c:forEach items="${ferramentaValidacao}" var="item"> 454 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -406,7 +457,8 @@ @@ -406,7 +457,8 @@
406 </c:if> 457 </c:if>
407 </c:forEach> 458 </c:forEach>
408 <input type="checkbox" name="ferramentaValidacao" id="checklst1" 459 <input type="checkbox" name="ferramentaValidacao" id="checklst1"
409 - value="32" ${marcar == 'true'?'checked=\"checked\"':''}><label for="checklst1"><i><span lang="en">Checklist</span></i> de Avaliação Manual (Checklist de Acessibilidade Manual para o Desenvolvedor)</label><br> 460 + value="32" ${marcar == 'true'?'checked=\"checked\"':''}><label
  461 + for="checklst1"><i><span lang="en">Checklist</span></i> de Avaliação Manual (Checklist de Acessibilidade Manual para o Desenvolvedor)</label><br>
410 462
411 <c:set var="marcar" scope="session" value="false" /> 463 <c:set var="marcar" scope="session" value="false" />
412 <c:forEach items="${ferramentaValidacao}" var="item"> 464 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -415,7 +467,8 @@ @@ -415,7 +467,8 @@
415 </c:if> 467 </c:if>
416 </c:forEach> 468 </c:forEach>
417 <input type="checkbox" name="ferramentaValidacao" id="checklst2" 469 <input type="checkbox" name="ferramentaValidacao" id="checklst2"
418 - value="33" ${marcar == 'true'?'checked=\"checked\"':''}><label for="checklst2"><i><span lang="en">Checklist</span></i> de Avaliação Manual (Anexo B – Recomendações e Pontos de checagem para atendimento do eMAG)</label><br> 470 + value="33" ${marcar == 'true'?'checked=\"checked\"':''}><label
  471 + for="checklst2"><i><span lang="en">Checklist</span></i> de Avaliação Manual (Anexo B – Recomendações e Pontos de checagem para atendimento do eMAG)</label><br>
419 472
420 <c:set var="marcar" scope="session" value="false" /> 473 <c:set var="marcar" scope="session" value="false" />
421 <c:forEach items="${ferramentaValidacao}" var="item"> 474 <c:forEach items="${ferramentaValidacao}" var="item">
@@ -432,21 +485,35 @@ @@ -432,21 +485,35 @@
432 <label for="outroAvaliador">12) Com relação à pergunta anterior, caso tenha respondido "Outro(s)", mencione abaixo quais são estas ferramentas:</label> 485 <label for="outroAvaliador">12) Com relação à pergunta anterior, caso tenha respondido "Outro(s)", mencione abaixo quais são estas ferramentas:</label>
433 <input type="hidden" name="hOutroAvaliador" value="18" /> 486 <input type="hidden" name="hOutroAvaliador" value="18" />
434 <textarea name="outroAvaliador" id="outroAvaliador" rows="8" 487 <textarea name="outroAvaliador" id="outroAvaliador" rows="8"
435 - cols="100" maxlength="600"><c:if test="${outroAvaliador != null}">${outroAvaliador}</c:if></textarea> 488 + cols="100" maxlength="600"><c:if
  489 + test="${outroAvaliador != null}">${outroAvaliador}</c:if></textarea>
436 <br><br> 490 <br><br>
437 491
438 <fieldset class="pergunta"> 492 <fieldset class="pergunta">
439 <input type="hidden" name="hAmostragemSiteQuestionario" value="19" /> 493 <input type="hidden" name="hAmostragemSiteQuestionario" value="19" />
440 - <legend class="obrigatorio">13) Para cada ambiente e página informada no formulário anterior, informe a <a href="http://asesweb.governoeletronico.gov.br">nota ASESWEB (Link para um novo sítio)</a> e a <a href="http://www.acessibilidade.gov.pt/accessmonitor/">nota AccessMonitor (Link para um novo sítio - utilize o WCAG 2.0)</a>.</legend> 494 + <legend class="obrigatorio">13) Para cada ambiente e página informada no formulário anterior, informe a <a
  495 + href="http://asesweb.governoeletronico.gov.br">nota ASESWEB (Link para um novo sítio)</a> e a <a
  496 + href="http://www.acessibilidade.gov.pt/accessmonitor/">nota AccessMonitor (Link para um novo sítio - utilize o WCAG 2.0)</a>.</legend>
441 <c:if test="${not empty lsAmostragemSiteQuestionario}"> 497 <c:if test="${not empty lsAmostragemSiteQuestionario}">
442 <c:forEach items="${lsAmostragemSiteQuestionario}" var="amostra"> 498 <c:forEach items="${lsAmostragemSiteQuestionario}" var="amostra">
443 - <input type="hidden" name="${amostra.nomeCampo }" value="${amostra.urlAmostraSiteQuestionario}" /> 499 + <input type="hidden" name="${amostra.nomeCampo }"
  500 + value="${amostra.urlAmostraSiteQuestionario}" />
444 <label for="ases_${amostra.nomeCampo}"> ${amostra.urlAmostraSiteQuestionario}</label> <br /> <br /> 501 <label for="ases_${amostra.nomeCampo}"> ${amostra.urlAmostraSiteQuestionario}</label> <br /> <br />
445 <label for="ases_${amostra.nomeCampo}">Nota ASES:(999,99) </label> 502 <label for="ases_${amostra.nomeCampo}">Nota ASES:(999,99) </label>
446 - <input type="number" size="10"step="0.01" maxlength="6" id="ases_${amostra.nomeCampo}" name="ases_${amostra.nomeCampo}" value="${amostra.notaAses}" max="100" min="0" oninvalid="this.setCustomValidity('Somente valor entre 0 e 100')" required /> 503 + <input type="number" size="10" step="0.01" maxlength="6"
  504 + id="ases_${amostra.nomeCampo}" name="ases_${amostra.nomeCampo}"
  505 + value="${amostra.notaAses}" max="100" min="0"
  506 + oninvalid="this.setCustomValidity('Somente valor entre 0 e 100')"
  507 + required />
447 <label for="accessMonitor_${amostra.nomeCampo}">Nota AccessMonitor:(99,99) </label> 508 <label for="accessMonitor_${amostra.nomeCampo}">Nota AccessMonitor:(99,99) </label>
448 - <input type="number" size="10" step="0.01" maxlength="5" id="accessMonitor_${amostra.nomeCampo}" name="accessMonitor_${amostra.nomeCampo}" value="${amostra.notaAccess}" max="10" min="0" oninvalid="this.setCustomValidity('Somente valor entre 0 e 10')" required/>  
449 - <br/><br/> 509 + <input type="number" size="10" step="0.01" maxlength="5"
  510 + id="accessMonitor_${amostra.nomeCampo}"
  511 + name="accessMonitor_${amostra.nomeCampo}"
  512 + value="${amostra.notaAccess}" max="10" min="0"
  513 + oninvalid="this.setCustomValidity('Somente valor entre 0 e 10')"
  514 + required />
  515 + <br />
  516 + <br />
450 <hr> 517 <hr>
451 </c:forEach> 518 </c:forEach>
452 </c:if> 519 </c:if>
@@ -482,7 +549,8 @@ @@ -482,7 +549,8 @@
482 value="52" ${checklistQtnList == '52'?'checked=\"checked\"':''}><label 549 value="52" ${checklistQtnList == '52'?'checked=\"checked\"':''}><label
483 for="checklist3">A validação é feita pelo responsável técnico do contrato, seguindo um <i><span 550 for="checklist3">A validação é feita pelo responsável técnico do contrato, seguindo um <i><span
484 lang="en">checklist</span></i> de validação manual em amostras do conjunto de páginas</label><br> 551 lang="en">checklist</span></i> de validação manual em amostras do conjunto de páginas</label><br>
485 - <input type="radio" id="checklist4" name="checklistQtnList" value="53" ${checklistQtnList == '53'?'checked=\"checked\"':''}><label 552 + <input type="radio" id="checklist4" name="checklistQtnList"
  553 + value="53" ${checklistQtnList == '53'?'checked=\"checked\"':''}><label
486 for="checklist4">A validação é feita por empresa terceirizada, contratada para ajudar na garantia da qualidade do software, seguindo um <i><span 554 for="checklist4">A validação é feita por empresa terceirizada, contratada para ajudar na garantia da qualidade do software, seguindo um <i><span
487 lang="en">checklist</span></i> de validação manual</label><br> 555 lang="en">checklist</span></i> de validação manual</label><br>
488 <input type="radio" id="checklist5" name="checklistQtnList" 556 <input type="radio" id="checklist5" name="checklistQtnList"
@@ -552,20 +620,22 @@ @@ -552,20 +620,22 @@
552 620
553 <label for="funcionalidade" class="obrigatorio">16) O órgão mantém, em seus ambientes, link para página onde são descritos os recursos de acessibilidade existentes?</label> 621 <label for="funcionalidade" class="obrigatorio">16) O órgão mantém, em seus ambientes, link para página onde são descritos os recursos de acessibilidade existentes?</label>
554 622
555 - <input type="hidden" name="hFuncionalidade" value="23" /><select name="funcionalidade" id="funcionalidade" required> 623 + <input type="hidden" name="hFuncionalidade" value="23" /><select
  624 + name="funcionalidade" id="funcionalidade" required>
556 <option value="" ${funcionalidade == ''?'selected=\"selected\"':''}>Selecione uma resposta</option> 625 <option value="" ${funcionalidade == ''?'selected=\"selected\"':''}>Selecione uma resposta</option>
557 <option value="2" 626 <option value="2"
558 - ${funcionalidade == '2'?'selected=\"selected\"':''}>Sim</option> 627 + ${funcionalidade == '2'?'selected=\"selected\"':''}>Sim</option>
559 <option value="55" 628 <option value="55"
560 - ${funcionalidade == '55'?'selected=\"selected\"':''}>Sim, somente no meu ambiente institucional</option> 629 + ${funcionalidade == '55'?'selected=\"selected\"':''}>Sim, somente no meu ambiente institucional</option>
561 <option value="3" 630 <option value="3"
562 - ${funcionalidade == '3'?'selected=\"selected\"':''}>Não</option> 631 + ${funcionalidade == '3'?'selected=\"selected\"':''}>Não</option>
563 </select> 632 </select>
564 <br><br> 633 <br><br>
565 634
566 <fieldset class="pergunta"> 635 <fieldset class="pergunta">
567 <input type="hidden" name="hAssistiva" value="24" /> 636 <input type="hidden" name="hAssistiva" value="24" />
568 - <legend class="obrigatorio" id="assistivaPergunta">17) Dentre as tecnologias assistivas baseadas em <i><span lang="en">softwares</span></i>, marque qual delas o órgão indica ou implementa em seus ambientes digitais: 637 + <legend class="obrigatorio" id="assistivaPergunta">17) Dentre as tecnologias assistivas baseadas em <i><span
  638 + lang="en">softwares</span></i>, marque qual delas o órgão indica ou implementa em seus ambientes digitais:
569 639
570 </legend> 640 </legend>
571 641
@@ -575,7 +645,8 @@ @@ -575,7 +645,8 @@
575 <c:set var="marcar" scope="session" value="true" /> 645 <c:set var="marcar" scope="session" value="true" />
576 </c:if> 646 </c:if>
577 </c:forEach> 647 </c:forEach>
578 - <input type="checkbox" name="assistiva" id="assistiva0" value="20" title="Ao marcar esta opção as demais opções serão desabilitadas!" 648 + <input type="checkbox" name="assistiva" id="assistiva0" value="20"
  649 + title="Ao marcar esta opção as demais opções serão desabilitadas!"
579 ${marcar == 'true'?'checked=\"checked\"':''}><label 650 ${marcar == 'true'?'checked=\"checked\"':''}><label
580 for="assistiva0">Nenhum</label><br> 651 for="assistiva0">Nenhum</label><br>
581 652
@@ -668,54 +739,82 @@ @@ -668,54 +739,82 @@
668 <c:set var="marcar" scope="session" value="true" /> 739 <c:set var="marcar" scope="session" value="true" />
669 </c:if> 740 </c:if>
670 </c:forEach> 741 </c:forEach>
671 - <input type="checkbox" name="assistiva" id="assistiva8" value="34" ${marcar == 'true'?'checked=\"checked\"':''}><label for="assistiva8">Outro(s)</label> 742 + <input type="checkbox" name="assistiva" id="assistiva8" value="34"
  743 + ${marcar == 'true'?'checked=\"checked\"':''}><label
  744 + for="assistiva8">Outro(s)</label>
672 </fieldset> 745 </fieldset>
673 <br> 746 <br>
674 747
675 <label for="justificativaAssistiva">18) Com relação à pergunta anterior: caso tenha respondido "Outro(s)" mencione abaixo quais são essas tecnologias:</label> 748 <label for="justificativaAssistiva">18) Com relação à pergunta anterior: caso tenha respondido "Outro(s)" mencione abaixo quais são essas tecnologias:</label>
676 <input type="hidden" name="hJustificativaAssistiva" value="25" /> 749 <input type="hidden" name="hJustificativaAssistiva" value="25" />
677 - <textarea name="justificativaAssistiva" id="justificativaAssistiva" rows="8" cols="100" maxlength="600"><c:if test="${justificativaAssistiva != null}">${justificativaAssistiva}</c:if></textarea> 750 + <textarea name="justificativaAssistiva"
  751 + id="justificativaAssistiva" rows="8" cols="100" maxlength="600"><c:if
  752 + test="${justificativaAssistiva != null}">${justificativaAssistiva}</c:if></textarea>
678 753
679 <br><br> 754 <br><br>
680 755
681 <label for="dificuldadePrazo">19) Mencione abaixo as dificuldades para o atendimento do prazo previsto na legislação para o estabelecimento da acessibilidade digital, caso o órgao esteja enfrentando estas dificuldades:</label> 756 <label for="dificuldadePrazo">19) Mencione abaixo as dificuldades para o atendimento do prazo previsto na legislação para o estabelecimento da acessibilidade digital, caso o órgao esteja enfrentando estas dificuldades:</label>
682 <input type="hidden" name="hDificuldadePrazo" value="26" /> 757 <input type="hidden" name="hDificuldadePrazo" value="26" />
683 - <textarea name="dificuldadePrazo" id="dificuldadePrazo" rows="8" cols="100" maxlength="1000"><c:if test="${dificuldadePrazo != null}">${dificuldadePrazo}</c:if></textarea><br><br> 758 + <textarea name="dificuldadePrazo" id="dificuldadePrazo" rows="8"
  759 + cols="100" maxlength="1000"><c:if
  760 + test="${dificuldadePrazo != null}">${dificuldadePrazo}</c:if></textarea>
  761 + <br><br>
684 762
685 - <div><h3>Leis, Documentos e Sítios referenciados neste formulário:</h3> 763 + <div>
  764 + <h3>Leis, Documentos e Sítios referenciados neste formulário:</h3>
686 <ul> 765 <ul>
687 - <li><a href="http://www.governoeletronico.gov.br/documentos-e-arquivos/IN%204%202014_compilada.pdf">Instrução Normativa 04/2014 (IN 04/2014) - formato .pdf 319Kb</a></li>  
688 - <li><a href="http://emag.governoeletronico.gov.br/cartilha-contratacao/">Cartilha de Boas Práticas para Acessibilidade Digital - link para um novo sítio</a></li>  
689 - <li><a href="http://www.governoeletronico.gov.br/documentos-e-arquivos/eMAG-Checklist-acessibilidade-desenvolvedores.pdf">Checklist de Acessibilidade Manual para o Desenvolvedor - formato .pdf 552Kb</a></li>  
690 - <li><a href="http://emag.governoeletronico.gov.br/cartilha-contratacao/arquivos/anexos/Anexo-B.ods">Anexo B – Recomendações e Pontos de checagem para atendimento do eMAG - formato .ods 18Kb</a></li>  
691 - <li><a href="http://emag.governoeletronico.gov.br/cartilha-contratacao/arquivos/anexos/Anexo-A.ods"> Anexo A – eMAG com WCAG - formato .ods 20,2kb</a></li> 766 + <li><a
  767 + href="http://www.governoeletronico.gov.br/documentos-e-arquivos/IN%204%202014_compilada.pdf">Instrução Normativa 04/2014 (IN 04/2014) - formato .pdf 319Kb</a></li>
  768 + <li><a
  769 + href="http://emag.governoeletronico.gov.br/cartilha-contratacao/">Cartilha de Boas Práticas para Acessibilidade Digital - link para um novo sítio</a></li>
  770 + <li><a
  771 + href="http://www.governoeletronico.gov.br/documentos-e-arquivos/eMAG-Checklist-acessibilidade-desenvolvedores.pdf">Checklist de Acessibilidade Manual para o Desenvolvedor - formato .pdf 552Kb</a></li>
  772 + <li><a
  773 + href="http://emag.governoeletronico.gov.br/cartilha-contratacao/arquivos/anexos/Anexo-B.ods">Anexo B – Recomendações e Pontos de checagem para atendimento do eMAG - formato .ods 18Kb</a></li>
  774 + <li><a
  775 + href="http://emag.governoeletronico.gov.br/cartilha-contratacao/arquivos/anexos/Anexo-A.ods"> Anexo A – eMAG com WCAG - formato .ods 20,2kb</a></li>
692 <li><a href="http://asesweb.governoeletronico.gov.br">ASESWEB - Avaliador e Simulador de Acessibilidade em Sítios - link para um novo sítio</a></li> 776 <li><a href="http://asesweb.governoeletronico.gov.br">ASESWEB - Avaliador e Simulador de Acessibilidade em Sítios - link para um novo sítio</a></li>
693 - <li><a href="http://www.acessibilidade.gov.pt/accessmonitor/">ACCESSMONITOR - Validador automático para WCAG - link para um novo sítio</a></li> 777 + <li><a
  778 + href="http://www.acessibilidade.gov.pt/accessmonitor/">ACCESSMONITOR - Validador automático para WCAG - link para um novo sítio</a></li>
694 </ul> 779 </ul>
695 </div> 780 </div>
696 781
697 </fieldset> 782 </fieldset>
698 783
699 - <div id="botaoEnviar">  
700 - <input type="submit" class="button" id="enviar" name="executar" value="Cadastrar">  
701 - </div> 784 + <c:if test="${flagEnviado == false}">
  785 + <div id="botaoEnviar">
  786 + <input type="submit" class="button" id="enviar" name="executar"
  787 + value="Cadastrar">
  788 + </div>
  789 + </c:if>
  790 +
  791 + <c:if test="${flagEnviado == true}">
  792 + <strong class="atencao">ATENÇÃO! O relatório não pode ser alterado, o mesmo já foi enviado à  PFDC/MPF.</strong>
  793 + </c:if>
702 794
703 - <input type="hidden" name="idQuestionario" value="${questionario.idQuestionario}" />  
704 - <input type="hidden" id="nomePessoa" name="nomePessoa" value="${nomePessoa}" />  
705 - <input type="hidden" id="hNomePessoa" name="hNomePessoa" value="${hNomePessoa}" /> 795 + <input type="hidden" name="idQuestionario"
  796 + value="${questionario.idQuestionario}" />
  797 + <input type="hidden" id="nomePessoa" name="nomePessoa"
  798 + value="${nomePessoa}" />
  799 + <input type="hidden" id="hNomePessoa" name="hNomePessoa"
  800 + value="${hNomePessoa}" />
706 <input type="hidden" id="hCargo" name="hCargo" value="${hCargo}" /> 801 <input type="hidden" id="hCargo" name="hCargo" value="${hCargo}" />
707 <input type="hidden" id="cargo" name="cargo" value="${cargo}" /> 802 <input type="hidden" id="cargo" name="cargo" value="${cargo}" />
708 <input type="hidden" id="telefone" name="telefone" value="${telefone}" /> 803 <input type="hidden" id="telefone" name="telefone" value="${telefone}" />
709 - <input type="hidden" id="hTelefone" name="hTelefone" value="${hTelefone}" />  
710 - <input type="hidden" id="email" name="email" value="${email}" />  
711 - <input type="hidden" id="hEmail" name="hEmail" value="${hEmail}" /> 804 + <input type="hidden" id="hTelefone" name="hTelefone"
  805 + value="${hTelefone}" />
  806 + <input type="hidden" id="email" name="email" value="${email}" />
  807 + <input type="hidden" id="hEmail" name="hEmail" value="${hEmail}" />
712 808
713 </form> 809 </form>
714 810
715 <div id="botaoVoltar"> 811 <div id="botaoVoltar">
716 - <form method="post" action="${pageContext.request.contextPath}/formularioOrgao">  
717 - <input type="hidden" id="valorHash" name="valorHash" value="${valorHash}"/>  
718 - <input type="submit" class="button" id="voltarF" name="executar" value="Voltar"> 812 + <form method="post"
  813 + action="${pageContext.request.contextPath}/formularioOrgao">
  814 + <input type="hidden" id="valorHash" name="valorHash"
  815 + value="${valorHash}" />
  816 + <input type="submit" class="button" id="voltarF" name="executar"
  817 + value="Voltar">
719 </form> 818 </form>
720 </div> 819 </div>
721 820
WebContent/WEB-INF/jsp/painel/painel.jsp 0 → 100644
@@ -0,0 +1,192 @@ @@ -0,0 +1,192 @@
  1 +<%@page contentType="text/html" pageEncoding="UTF-8"%>
  2 +<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  3 +<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
  4 +<!DOCTYPE html>
  5 +<html lang=pt-br>
  6 +
  7 +<head>
  8 +<title>Relatório Circunstanciado de Acessibilidade Digital</title>
  9 +
  10 +
  11 +<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/imprimir.css" media="screen">
  12 +<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/default.css" media="screen">
  13 +<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/imprimir.css" media="print">
  14 +<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/default.css" media="print">
  15 +<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/botaoImprimir.css" media="print">
  16 +
  17 +
  18 +
  19 +</head>
  20 +<body id='imprimir'>
  21 + <div>
  22 + <div id="center">
  23 + <h1 class="maiusculo" >
  24 + RELATÓRIO CIRCUNSTANCIADO DE ACESSIBILIDADE DIGITAL (Art. 120 da Lei nº 13.146/2015)<br>
  25 + ${questionario.noOrgao}<br>
  26 + EXERCÍCIO 2016
  27 + </h1>
  28 + </div>
  29 + </div>
  30 + <div>
  31 +
  32 + <fieldset>
  33 + <legend>Dados Acessibilidade</legend>
  34 + <label>1) O Órgão
  35 + tem conhecimento da legislação que envolve o tema "acessibilidade"
  36 + bem como suas implicações?</label>
  37 + <p><strong>Sim: ${pergunta1_2}</strong></p>
  38 + <p><strong>Já Ouvi falar: ${pergunta1_4 }</strong></p>
  39 + <p><strong>Não: ${pergunta1_3}</strong></p>
  40 +
  41 + <label> 2) O Órgão já recebeu, formal ou informalmente, reclamações sobre
  42 + acessibilidade em seus ambientes digitais?</label>
  43 + <p><strong>Sim: ${pergunta2_2 }</strong></p>
  44 + <p><strong>Não: ${pergunta2_3 }</strong></p>
  45 +
  46 + <label>3) O Órgão
  47 + tem estimulado seus servidores e parceiros a realizarem
  48 + capacitações sobre acessibilidade em ambientes digitais?</label>
  49 + <p><strong>Sim: ${pergunta3_2 }</strong></p>
  50 + <p><strong>Não, por não priorizar o tema: ${pergunta3_5 }</strong></p>
  51 + <p><strong>Não, por não conhecer a oferta de cursos sobre o tema: ${pergunta3_6 }</strong></p>
  52 +
  53 + <label>4) Com
  54 + relação a pergunta anterior, caso tenha respondido 'Sim', mencione
  55 + abaixo os tipos de cursos estimulados pelo órgão:</label>
  56 + <p><strong>Escola(s) de ensino à distancia (EAD): ${pergunta4_7 }</strong></p>
  57 + <p><strong>EAD através da Escola Nacional de Administração Pública (ENAP): ${pergunta4_8 }</strong></p>
  58 + <p><strong>Escola(s) de ensino presencial: ${pergunta4_9 }</strong></p>
  59 + <p><strong>Ensino presencial através da ENAP: ${pergunta4_10 }</strong></p>
  60 +
  61 +
  62 + <label>5) O Órgão observa
  63 + em seu processo de desenvolvimento de sítios, portais e serviços
  64 + eletrônicos os requisitos de acessibilidade?</label>
  65 +<p><strong>Sim, observamos os requisitos do modelo brasileiro, ou seja, observamos o "Modelo de Acessibilidade em Governo Eletrônico (eMAG)": ${pergunta5_11 }</strong></p>
  66 +<p><strong>Sim, observamos os requisitos do modelo internacional, ou seja, observamos o "Web Content Accessibility Guidelines (WCAG)": ${pergunta5_12 }</strong></p>
  67 +<p><strong>Sim, observamos os requisitos de outros modelos que não os especificados acima: ${pergunta5_13 }</strong></p>
  68 +<p><strong>Não: ${pergunta5_3 }</strong></p>
  69 +
  70 + <label>6) Nas
  71 + contratações de fábrica de software e/ou parcerias firmadas para o
  72 + desenvolvimento de ambientes digitais há citação explícita sobre
  73 + os requisitos de acessibilidade assim como as sanções para o seu não atendimento?</label>
  74 +<p><strong>Sim, conforme especifica o estudo técnico preliminar da contratação da Instrução Normativa N° 04, de 11 de Setembro de 2014.: ${pergunta6_14 }</strong></p>
  75 +<p><strong>Sim, conforme sugere a "Cartilha de Boas Práticas para Acessibilidade Digital" na contratação de desenvolvimento WEB: ${pergunta6_15 }</strong></p>
  76 +<p><strong>Não: ${pergunta6_3 }</strong></p>
  77 +
  78 +<label>7)
  79 + O Órgão realiza validações de acessibilidade em seus ambientes
  80 + digitais?</label>
  81 +<p><strong>sim: ${pergunta7_2 }</strong></p>
  82 +<p><strong>Não: ${pergunta7_3 }</strong></p>
  83 +
  84 + <label>8) Com relação a pergunta anterior, no caso de 'Sim', mencione abaixo
  85 + as validações realizadas:</label>
  86 +<p><strong>Validações por ferramentas automáticas para homologações das entregas do desenvolvimento: ${pergunta8_16 }</strong></p>
  87 +<p><strong>Verificações humanas para homologações das entregas do desenvolvimento: ${pergunta8_17 }</strong></p>
  88 +<p><strong>Validações automáticas constantemente desde a entrega dos códigos: ${pergunta8_18 }</strong></p>
  89 +<p><strong>Verificações humanas constantemente desde a entrega dos códigos: ${pergunta8_19 }</strong></p>
  90 +
  91 + <label>9) Quais ferramentas são utilizadas no processo de validação de
  92 + acessibilidade em seus ambientes digitais?</label>
  93 +<p><strong>Nenhuma: ${pergunta9_20 }</strong></p>
  94 +<p><strong>Avaliador e Simulador de Acessibilidade em Sítios (ASES) Web (WAI e eMAG): ${pergunta9_21 }</strong></p>
  95 +<p><strong>Avaliador e Simulador de Acessibilidade em Sítios (ASES) Desktop (WAI e eMAG): ${pergunta9_22 }</strong></p>
  96 +<p><strong>Da Silva (WAI e eMAG): ${pergunta9_23 }</strong></p>
  97 +<p><strong>AccessMonitor (WAI): ${pergunta9_24 }</strong></p>
  98 +<p><strong>Web Accessibility Tool (WAVE) (WAI): ${pergunta9_25 }</strong></p>
  99 +<p><strong>Cynthia Says (WAI): ${pergunta9_26 }</strong></p>
  100 +<p><strong>Hera (WAI): ${pergunta9_27 }</strong></p>
  101 +<p><strong>Lift (WAI): ${pergunta9_28 }</strong></p>
  102 +<p><strong>TAW (WAI): ${pergunta9_29 }</strong></p>
  103 +<p><strong>Examinator (WAI): ${pergunta9_30 }</strong></p>
  104 +<p><strong>Functional Accessibility Evaluator 1.1(WAI e Section 508): ${pergunta9_31 }</strong></p>
  105 +<p><strong>Checklist de Avaliação Manual (Checklist de Acessibilidade Manual para o Desenvolvedor): ${pergunta9_32 }</strong></p>
  106 +<p><strong>Checklist de Avaliação Manual (Anexo B – Recomendações e Pontos de checagem para atendimento do eMAG): ${pergunta9_33 }</strong></p>
  107 +<p><strong>Outro(s): ${pergunta9_34 }</strong></p>
  108 +
  109 +
  110 +<label>10) Informe abaixo, pelo menos um Ambiente Digital (sítio ou portal) e quatro páginas deste mesmo ambiente. Informe a nota Ases e a nota AccessMonitor (utilize o WCAG 2.0) para cada ambiente e página informada:</label>
  111 +
  112 +
  113 +<p><strong>Total de ambientes: ${totalAmbientes }</strong></p>
  114 +<p><strong>Nota ASES (menor ou igual 10%): ${notaAsesMenorIgual_10 }</strong></p>
  115 +<p><strong>Nota ASES (maior que 10% e menor ou igual 20%): ${notaAsesMaior_10_menorIgual_20 }</strong></p>
  116 +<p><strong>Nota ASES (maior que 20% e menor ou igual 30%): ${notaAsesMaior_20_menorIgual_30 }</strong></p>
  117 +<p><strong>Nota ASES (maior que 30% e menor ou igual 40%): ${notaAsesMaior_30_menorIgual_40 }</strong></p>
  118 +<p><strong>Nota ASES (maior que 40% e menor ou igual 50%): ${notaAsesMaior_40_menorIgual_50 }</strong></p>
  119 +<p><strong>Nota ASES (maior que 50% e menor ou igual 60%): ${notaAsesMaior_50_menorIgual_60 }</strong></p>
  120 +<p><strong>Nota ASES (maior que 60% e menor ou igual 70%): ${notaAsesMaior_60_menorIgual_70 }</strong></p>
  121 +<p><strong>Nota ASES (maior que 70% e menor ou igual 80%): ${notaAsesMaior_70_menorIgual_80 }</strong></p>
  122 +<p><strong>Nota ASES (maior que 80% e menor ou igual 90%): ${notaAsesMaior_80_menorIgual_90 }</strong></p>
  123 +<p><strong>Nota ASES (maior que 90% e menor ou igual 100%): ${notaAsesMaior_90_menor_100 }</strong></p>
  124 +<p><strong>Nota ASES (igual a 100%): ${notaAsesIgual_100 }</strong></p>
  125 +
  126 +
  127 +
  128 +<p><strong>Nota AccessMonitor (menor ou igual 1): ${notaAccessMonitorMenorIgual_1 }</strong></p>
  129 +<p><strong>Nota AccessMonitor (maior que 1 e menor ou igual 2): ${notaAccessMonitorMaior_1_menorIgual_2 }</strong></p>
  130 +<p><strong>Nota AccessMonitor (maior que 2 e menor ou igual 3): ${notaAccessMonitorMaior_2_menorIgual_3 }</strong></p>
  131 +<p><strong>Nota AccessMonitor (maior que 3 e menor ou igual 4): ${notaAccessMonitorMaior_3_menorIgual_4 }</strong></p>
  132 +<p><strong>Nota AccessMonitor (maior que 4 e menor ou igual 5): ${notaAccessMonitorMaior_4_menorIgual_5 }</strong></p>
  133 +<p><strong>Nota AccessMonitor (maior que 5 e menor ou igual 6): ${notaAccessMonitorMaior_5_menorIgual_6 }</strong></p>
  134 +<p><strong>Nota AccessMonitor (maior que 6 e menor ou igual 7): ${notaAccessMonitorMaior_6_menorIgual_7 }</strong></p>
  135 +<p><strong>Nota AccessMonitor (maior que 7 e menor ou igual 8): ${notaAccessMonitorMaior_7_menorIgual_8 }</strong></p>
  136 +<p><strong>Nota AccessMonitor (maior que 8 e menor ou igual 9): ${notaAccessMonitorMaior_8_menorIgual_9 }</strong></p>
  137 +<p><strong>Nota AccessMonitor (maior que 9 e menor 10): ${notaAccessMonitorMaior_9_menor_10 }</strong></p>
  138 +<p><strong>Nota AccessMonitor (igual a 10): ${notaAccessMonitorIgual_10 }</strong></p>
  139 +
  140 +
  141 +<label>11) Quanto aos
  142 + itens de acessibilidade que não podem ser verificados por máquina,
  143 + como o atendimento, quanto às normas de acessibilidade, é
  144 + validado?</label>
  145 +<p><strong>Não é feito a validação de itens que não podem ser validados de maneira automática: ${pergunta11_50 }</strong></p>
  146 +<p><strong>A validação é feita pelo responsável técnico do contrato, seguindo um checklist de validação manual em todas as páginas: ${pergunta11_51 }</strong></p>
  147 +<p><strong>A validação é feita pelo responsável técnico do contrato, seguindo um checklist de validação manual em amostras do conjunto de páginas: ${pergunta11_52 }</strong></p>
  148 +<p><strong>A validação é feita por empresa terceirizada, contratada para ajudar na garantia da qualidade do software, seguindo um checklist de validação manual: ${pergunta11_53 }</strong></p>
  149 +<p><strong>A validação é feita através do teste de atendimento das exigências contratuais pela empresa desenvolvedora do produto, que
  150 +entrega, para cada página desenvolvida, um checklist que especifica os testes manuais que foram executados: ${pergunta11_54 }</strong></p>
  151 +
  152 +<label>12) Caso o órgão realize validações com pessoas com deficiência, selecione abaixo quais pessoas fazem essas validações:</label>
  153 +
  154 +<p><strong>Pessoa cega ou com baixa visão: ${pergunta12_65 }</strong></p>
  155 +<p><strong>Pessoa surda ou com deficiência auditiva: ${pergunta12_66 }</strong></p>
  156 +<p><strong>Pessoa com deficiência intelectual: ${pergunta12_67 }</strong></p>
  157 +<p><strong>Pessoa com deficiência física ou motora: ${pergunta12_68 }</strong></p>
  158 +
  159 +
  160 + <label>13) O órgão mantém, em seus ambientes, link para página onde são descritos os recursos de acessibilidade existentes?</label>
  161 +
  162 +<p><strong>Sim: ${pergunta13_2 }</strong></p>
  163 +<p><strong>Sim, somente no meu ambiente institucional: ${pergunta13_55 }</strong></p>
  164 +<p><strong>Não: ${pergunta13_3}</strong></p>
  165 +
  166 + <label>14) Dentre as tecnologias assistivas baseadas em softwares, marque qual delas o órgão indica ou implementa em seus ambientes digitais:</label>
  167 +
  168 +<p><strong>Nenhuma: ${pergunta14_20 }</strong></p>
  169 +<p><strong>DOSVOX: ${pergunta14_56 }</strong></p>
  170 +<p><strong>ORCA: ${pergunta14_57 }</strong></p>
  171 +<p><strong>JAWS: ${pergunta14_58 }</strong></p>
  172 +<p><strong>Rybená: ${pergunta14_59 }</strong></p>
  173 +<p><strong>Hand Talk: ${pergunta14_60 }</strong></p>
  174 +<p><strong>Prodeaf: ${pergunta14_61 }</strong></p>
  175 +<p><strong>VLibras: ${pergunta14_62 }</strong></p>
  176 +<p><strong>NVDA: ${pergunta14_69 }</strong></p>
  177 +<p><strong>Outro(s): ${pergunta14_34 }</strong></p>
  178 + </fieldset>
  179 +
  180 +
  181 + </div>
  182 +
  183 + <br>
  184 +
  185 +</body>
  186 +
  187 +<div id="divButton">
  188 + <a class="button" id="pPrincipal" href="${pageContext.request.contextPath}/">Página Inicial</a>
  189 + <input type="button" class="button" value="Imprimir" id="bImprimir" name="bImprimir" onClick="javascript:window.print()">
  190 +</div>
  191 +
  192 +</html>
0 \ No newline at end of file 193 \ No newline at end of file
WebContent/WEB-INF/jsp/planoTrabalho/planoTrabalho.jsp
@@ -101,7 +101,14 @@ @@ -101,7 +101,14 @@
101 <a href="${pageContext.request.contextPath}/recuperar-relatorio/${questionario.idQuestionario}">${planoTrabalho.nomeRelatorioAss }</a> 101 <a href="${pageContext.request.contextPath}/recuperar-relatorio/${questionario.idQuestionario}">${planoTrabalho.nomeRelatorioAss }</a>
102 </c:if> 102 </c:if>
103 </label><br> 103 </label><br>
104 - <input type="file" id="fileRelatorio" name="fileRelatorio" accept="application/msword, application/zip, application/octet-stream, application/x-rar-compressed, application/vnd.ms-excel, application/vnd.oasis.opendocument.text ,text/plain, application/pdf, image/*"><br> 104 + <c:if test="${questionario.flagEnviado == false}">
  105 + <input type="file" id="fileRelatorio" name="fileRelatorio" accept="application/msword, application/zip, application/octet-stream, application/x-rar-compressed, application/vnd.ms-excel, application/vnd.oasis.opendocument.text ,text/plain, application/pdf, image/*"><br>
  106 + </c:if>
  107 +
  108 + <c:if test="${questionario.flagEnviado == true}">
  109 + <input type="file" id="fileRelatorio" name="fileRelatorio" accept="application/msword, application/zip, application/octet-stream, application/x-rar-compressed, application/vnd.ms-excel, application/vnd.oasis.opendocument.text ,text/plain, application/pdf, image/*" disabled="disabled"><br>
  110 + </c:if>
  111 +
105 <hr> 112 <hr>
106 <label for="filePlano">Plano de Trabalho: (tamanho máximo: 50Mb) 113 <label for="filePlano">Plano de Trabalho: (tamanho máximo: 50Mb)
107 <c:if test="${not empty planoTrabalho.nomePlanoTrabalho}"> 114 <c:if test="${not empty planoTrabalho.nomePlanoTrabalho}">
src/br/com/controller/PainelController.java 0 → 100644
@@ -0,0 +1,303 @@ @@ -0,0 +1,303 @@
  1 +package br.com.controller;
  2 +
  3 +import java.sql.ResultSet;
  4 +import java.sql.SQLException;
  5 +
  6 +import javax.servlet.ServletContext;
  7 +
  8 +import br.com.caelum.vraptor.Path;
  9 +import br.com.caelum.vraptor.Resource;
  10 +import br.com.caelum.vraptor.Result;
  11 +import br.com.caelum.vraptor.Validator;
  12 +import br.com.dao.PainelDao;
  13 +
  14 +@Resource
  15 +public class PainelController {
  16 +
  17 + private String path;
  18 + private ServletContext application;
  19 + private Result result;
  20 +
  21 + public PainelController(Result result, ServletContext application) {
  22 + this.result = result;
  23 + this.application = application;
  24 + this.path = this.application.getRealPath("") + "/WEB-INF/conexao.properties";
  25 + }
  26 +
  27 + @Path("/painel")
  28 + public void painel() {
  29 +
  30 + PainelDao painelDao = new PainelDao();
  31 +
  32 + //pergunta 1
  33 + result.include("pergunta1_2", painelDao.retornarTotalResposta(path, 7,2));
  34 + result.include("pergunta1_4", painelDao.retornarTotalResposta(path, 7,4));
  35 + result.include("pergunta1_3", painelDao.retornarTotalResposta(path, 7,3));
  36 +
  37 + //pergunta 2
  38 + result.include("pergunta2_2", painelDao.retornarTotalResposta(path, 8,2));
  39 + result.include("pergunta2_3", painelDao.retornarTotalResposta(path, 8,3));
  40 +
  41 + //pergunta 3
  42 + result.include("pergunta3_2", painelDao.retornarTotalResposta(path, 10,2));
  43 + result.include("pergunta3_5", painelDao.retornarTotalResposta(path, 10,5));
  44 + result.include("pergunta3_6", painelDao.retornarTotalResposta(path, 10,6));
  45 +
  46 + //pergunta 4
  47 + result.include("pergunta4_7", painelDao.retornarTotalResposta(path, 11,7));
  48 + result.include("pergunta4_8", painelDao.retornarTotalResposta(path, 11,8));
  49 + result.include("pergunta4_9", painelDao.retornarTotalResposta(path, 11,9));
  50 + result.include("pergunta4_10", painelDao.retornarTotalResposta(path, 11,10));
  51 +
  52 + //pergunta 5
  53 + result.include("pergunta5_11", painelDao.retornarTotalResposta(path, 12,11));
  54 + result.include("pergunta5_12", painelDao.retornarTotalResposta(path, 12,12));
  55 + result.include("pergunta5_13", painelDao.retornarTotalResposta(path, 12,13));
  56 + result.include("pergunta5_3", painelDao.retornarTotalResposta(path, 12,3));
  57 +
  58 + //pergunta 6
  59 + result.include("pergunta6_14", painelDao.retornarTotalResposta(path, 14,14));
  60 + result.include("pergunta6_15", painelDao.retornarTotalResposta(path, 14,15));
  61 + result.include("pergunta6_3", painelDao.retornarTotalResposta(path, 14,3));
  62 +
  63 + //pergunta 7
  64 + result.include("pergunta7_2", painelDao.retornarTotalResposta(path, 15,2));
  65 + result.include("pergunta7_3", painelDao.retornarTotalResposta(path, 15,3));
  66 +
  67 + //pergunta 8
  68 + result.include("pergunta8_16", painelDao.retornarTotalResposta(path, 16,16));
  69 + result.include("pergunta8_17", painelDao.retornarTotalResposta(path, 16,17));
  70 + result.include("pergunta8_18", painelDao.retornarTotalResposta(path, 16,18));
  71 + result.include("pergunta8_19", painelDao.retornarTotalResposta(path, 16,19));
  72 +
  73 + //pergunta 9
  74 + result.include("pergunta9_20", painelDao.retornarTotalResposta(path, 17,20));
  75 + result.include("pergunta9_21", painelDao.retornarTotalResposta(path, 17,21));
  76 + result.include("pergunta9_22", painelDao.retornarTotalResposta(path, 17,22));
  77 + result.include("pergunta9_23", painelDao.retornarTotalResposta(path, 17,23));
  78 + result.include("pergunta9_24", painelDao.retornarTotalResposta(path, 17,24));
  79 + result.include("pergunta9_25", painelDao.retornarTotalResposta(path, 17,25));
  80 + result.include("pergunta9_26", painelDao.retornarTotalResposta(path, 17,26));
  81 + result.include("pergunta9_27", painelDao.retornarTotalResposta(path, 17,27));
  82 + result.include("pergunta9_28", painelDao.retornarTotalResposta(path, 17,28));
  83 + result.include("pergunta9_29", painelDao.retornarTotalResposta(path, 17,29));
  84 + result.include("pergunta9_30", painelDao.retornarTotalResposta(path, 17,30));
  85 + result.include("pergunta9_31", painelDao.retornarTotalResposta(path, 17,31));
  86 + result.include("pergunta9_32", painelDao.retornarTotalResposta(path, 17,32));
  87 + result.include("pergunta9_33", painelDao.retornarTotalResposta(path, 17,33));
  88 + result.include("pergunta9_34", painelDao.retornarTotalResposta(path, 17,34));
  89 +
  90 +
  91 + //pergunta 10 NOTAS
  92 +
  93 +
  94 + //pergunta 11
  95 + result.include("pergunta11_50", painelDao.retornarTotalResposta(path, 21,50));
  96 + result.include("pergunta11_51", painelDao.retornarTotalResposta(path, 21,51));
  97 + result.include("pergunta11_52", painelDao.retornarTotalResposta(path, 21,52));
  98 + result.include("pergunta11_53", painelDao.retornarTotalResposta(path, 21,53));
  99 + result.include("pergunta11_54", painelDao.retornarTotalResposta(path, 21,54));
  100 +
  101 + //pergunta 12
  102 + result.include("pergunta12_65", painelDao.retornarTotalResposta(path, 22,65));
  103 + result.include("pergunta12_66", painelDao.retornarTotalResposta(path, 22,66));
  104 + result.include("pergunta12_67", painelDao.retornarTotalResposta(path, 22,67));
  105 + result.include("pergunta12_68", painelDao.retornarTotalResposta(path, 22,68));
  106 +
  107 + //pergunta 13
  108 + result.include("pergunta13_2", painelDao.retornarTotalResposta(path, 23,2));
  109 + result.include("pergunta13_55", painelDao.retornarTotalResposta(path, 23,55));
  110 + result.include("pergunta13_3", painelDao.retornarTotalResposta(path, 23,3));
  111 +
  112 + //pergunta 14
  113 + result.include("pergunta14_20", painelDao.retornarTotalResposta(path, 24,20));
  114 + result.include("pergunta14_56", painelDao.retornarTotalResposta(path, 24,56));
  115 + result.include("pergunta14_57", painelDao.retornarTotalResposta(path, 24,57));
  116 + result.include("pergunta14_58", painelDao.retornarTotalResposta(path, 24,58));
  117 + result.include("pergunta14_59", painelDao.retornarTotalResposta(path, 24,59));
  118 + result.include("pergunta14_60", painelDao.retornarTotalResposta(path, 24,60));
  119 + result.include("pergunta14_61", painelDao.retornarTotalResposta(path, 24,61));
  120 + result.include("pergunta14_62", painelDao.retornarTotalResposta(path, 24,62));
  121 + result.include("pergunta14_69", painelDao.retornarTotalResposta(path, 24,69));
  122 + result.include("pergunta14_34", painelDao.retornarTotalResposta(path, 24,34));
  123 +
  124 + ResultSet rset = null;
  125 +
  126 + //Notas Ases
  127 + rset = painelDao.retornarTotalNotas(path, 63);
  128 + String nota = null;
  129 + int notaAsesMenorIgual_10 = 0;
  130 + int notaAsesMaior_10_menorIgual_20 = 0;
  131 + int notaAsesMaior_20_menorIgual_30 = 0;
  132 + int notaAsesMaior_30_menorIgual_40 = 0;
  133 + int notaAsesMaior_40_menorIgual_50 = 0;
  134 + int notaAsesMaior_50_menorIgual_60 = 0;
  135 + int notaAsesMaior_60_menorIgual_70 = 0;
  136 + int notaAsesMaior_70_menorIgual_80 = 0;
  137 + int notaAsesMaior_80_menorIgual_90 = 0;
  138 + int notaAsesMaior_90_menor_100 = 0;
  139 + int notaAsesIgual_100 = 0;
  140 + int totalAmbientes = 0;
  141 +
  142 + Double notaConvertidaAses;
  143 +
  144 + if(rset != null)
  145 + {
  146 + try {
  147 + while (rset.next()) {
  148 + notaConvertidaAses = Double.parseDouble(rset.getString("texto_resposta").replace(",", "."));
  149 + totalAmbientes++;
  150 +
  151 + if(notaConvertidaAses <= 10)
  152 + {
  153 + notaAsesMenorIgual_10++;
  154 +
  155 + }else if(notaConvertidaAses > 10 && notaConvertidaAses <= 20)
  156 + {
  157 + notaAsesMaior_10_menorIgual_20++;
  158 +
  159 + }else if(notaConvertidaAses > 20 && notaConvertidaAses <= 30)
  160 + {
  161 + notaAsesMaior_20_menorIgual_30++;
  162 +
  163 + }else if(notaConvertidaAses > 30 && notaConvertidaAses <= 40)
  164 + {
  165 + notaAsesMaior_30_menorIgual_40++;
  166 +
  167 + }else if(notaConvertidaAses > 40 && notaConvertidaAses <= 50)
  168 + {
  169 + notaAsesMaior_40_menorIgual_50++;
  170 +
  171 + }else if(notaConvertidaAses > 50 && notaConvertidaAses <= 60)
  172 + {
  173 + notaAsesMaior_50_menorIgual_60++;
  174 +
  175 + }else if(notaConvertidaAses > 60 && notaConvertidaAses <= 70)
  176 + {
  177 + notaAsesMaior_60_menorIgual_70++;
  178 +
  179 + }else if(notaConvertidaAses > 70 && notaConvertidaAses <= 80)
  180 + {
  181 + notaAsesMaior_70_menorIgual_80++;
  182 +
  183 + }else if(notaConvertidaAses > 80 && notaConvertidaAses <= 90)
  184 + {
  185 + notaAsesMaior_80_menorIgual_90++;
  186 +
  187 + }else if(notaConvertidaAses > 90 && notaConvertidaAses < 100)
  188 + {
  189 + notaAsesMaior_90_menor_100++;
  190 +
  191 + }else if(notaConvertidaAses == 100)
  192 + {
  193 + notaAsesIgual_100++;
  194 + }
  195 + }
  196 + } catch (SQLException e) {
  197 + e.printStackTrace();
  198 + }
  199 + }
  200 +
  201 +
  202 + result.include("notaAsesMenorIgual_10", notaAsesMenorIgual_10);
  203 + result.include("notaAsesMaior_10_menorIgual_20", notaAsesMaior_10_menorIgual_20);
  204 + result.include("notaAsesMaior_20_menorIgual_30", notaAsesMaior_20_menorIgual_30);
  205 + result.include("notaAsesMaior_30_menorIgual_40", notaAsesMaior_30_menorIgual_40);
  206 + result.include("notaAsesMaior_40_menorIgual_50", notaAsesMaior_40_menorIgual_50);
  207 + result.include("notaAsesMaior_50_menorIgual_60", notaAsesMaior_50_menorIgual_60);
  208 + result.include("notaAsesMaior_60_menorIgual_70", notaAsesMaior_60_menorIgual_70);
  209 + result.include("notaAsesMaior_70_menorIgual_80", notaAsesMaior_70_menorIgual_80);
  210 + result.include("notaAsesMaior_80_menorIgual_90", notaAsesMaior_80_menorIgual_90);
  211 + result.include("notaAsesMaior_90_menor_100", notaAsesMaior_90_menor_100);
  212 + result.include("notaAsesIgual_100", notaAsesIgual_100);
  213 + result.include("totalAmbientes", totalAmbientes);
  214 +
  215 + //Notas AccessMonitor
  216 + rset = painelDao.retornarTotalNotas(path, 64);
  217 +
  218 + int notaAccessMonitorMenorIgual_1 = 0;
  219 + int notaAccessMonitorMaior_1_menorIgual_2 = 0;
  220 + int notaAccessMonitorMaior_2_menorIgual_3 = 0;
  221 + int notaAccessMonitorMaior_3_menorIgual_4 = 0;
  222 + int notaAccessMonitorMaior_4_menorIgual_5 = 0;
  223 + int notaAccessMonitorMaior_5_menorIgual_6 = 0;
  224 + int notaAccessMonitorMaior_6_menorIgual_7 = 0;
  225 + int notaAccessMonitorMaior_7_menorIgual_8 = 0;
  226 + int notaAccessMonitorMaior_8_menorIgual_9 = 0;
  227 + int notaAccessMonitorMaior_9_menor_10 = 0;
  228 + int notaAccessMonitorIgual_10 = 0;
  229 +
  230 +
  231 + Double notaConvertidaAccessMonitor;
  232 +
  233 + if(rset != null)
  234 + {
  235 + try {
  236 + while (rset.next()) {
  237 + notaConvertidaAccessMonitor = Double.parseDouble(rset.getString("texto_resposta").replace(",", "."));
  238 + totalAmbientes++;
  239 +
  240 + if(notaConvertidaAccessMonitor <= 1)
  241 + {
  242 + notaAccessMonitorMenorIgual_1++;
  243 +
  244 + }else if(notaConvertidaAccessMonitor > 2 && notaConvertidaAccessMonitor <= 3)
  245 + {
  246 + notaAccessMonitorMaior_1_menorIgual_2++;
  247 +
  248 + }else if(notaConvertidaAccessMonitor > 3 && notaConvertidaAccessMonitor <= 4)
  249 + {
  250 + notaAccessMonitorMaior_3_menorIgual_4++;
  251 +
  252 + }else if(notaConvertidaAccessMonitor > 4 && notaConvertidaAccessMonitor <= 5)
  253 + {
  254 + notaAccessMonitorMaior_4_menorIgual_5++;
  255 +
  256 + }else if(notaConvertidaAccessMonitor > 5 && notaConvertidaAccessMonitor <= 6)
  257 + {
  258 + notaAccessMonitorMaior_5_menorIgual_6++;
  259 +
  260 + }else if(notaConvertidaAccessMonitor > 6 && notaConvertidaAccessMonitor <= 7)
  261 + {
  262 + notaAccessMonitorMaior_6_menorIgual_7++;
  263 +
  264 + }else if(notaConvertidaAccessMonitor > 7 && notaConvertidaAccessMonitor <= 8)
  265 + {
  266 + notaAccessMonitorMaior_7_menorIgual_8++;
  267 +
  268 + }else if(notaConvertidaAccessMonitor > 8 && notaConvertidaAccessMonitor <= 9)
  269 + {
  270 + notaAccessMonitorMaior_8_menorIgual_9++;
  271 +
  272 + }else if(notaConvertidaAccessMonitor > 9 && notaConvertidaAccessMonitor < 10)
  273 + {
  274 + notaAccessMonitorMaior_9_menor_10++;
  275 +
  276 + }else if(notaConvertidaAccessMonitor == 10)
  277 + {
  278 + notaAccessMonitorIgual_10++;
  279 + }
  280 +
  281 + }
  282 + } catch (SQLException e) {
  283 + e.printStackTrace();
  284 + }
  285 + }
  286 +
  287 +
  288 + result.include("notaAccessMonitorMenorIgual_1", notaAccessMonitorMenorIgual_1);
  289 + result.include("notaAccessMonitorMaior_1_menorIgual_2", notaAccessMonitorMaior_1_menorIgual_2);
  290 + result.include("notaAccessMonitorMaior_2_menorIgual_3", notaAccessMonitorMaior_2_menorIgual_3);
  291 + result.include("notaAccessMonitorMaior_3_menorIgual_4", notaAccessMonitorMaior_3_menorIgual_4);
  292 + result.include("notaAccessMonitorMaior_4_menorIgual_5", notaAccessMonitorMaior_4_menorIgual_5);
  293 + result.include("notaAccessMonitorMaior_5_menorIgual_6", notaAccessMonitorMaior_5_menorIgual_6);
  294 + result.include("notaAccessMonitorMaior_6_menorIgual_7", notaAccessMonitorMaior_6_menorIgual_7);
  295 + result.include("notaAccessMonitorMaior_7_menorIgual_8", notaAccessMonitorMaior_7_menorIgual_8);
  296 + result.include("notaAccessMonitorMaior_8_menorIgual_9", notaAccessMonitorMaior_8_menorIgual_9);
  297 + result.include("notaAccessMonitorMaior_2_menorIgual_3", notaAccessMonitorMaior_2_menorIgual_3);
  298 + result.include("notaAccessMonitorMaior_9_menor_10", notaAccessMonitorMaior_9_menor_10);
  299 + result.include("notaAccessMonitorIgual_10", notaAccessMonitorIgual_10);
  300 +
  301 + }
  302 +
  303 +}
src/br/com/controller/PlanoTrabalhoController.java
@@ -28,585 +28,607 @@ import br.com.model.utilities.Email; @@ -28,585 +28,607 @@ import br.com.model.utilities.Email;
28 import br.com.util.DateUtil; 28 import br.com.util.DateUtil;
29 import br.com.util.Validacao; 29 import br.com.util.Validacao;
30 30
31 -  
32 @Resource 31 @Resource
33 public class PlanoTrabalhoController extends DefaultMultipartConfig { 32 public class PlanoTrabalhoController extends DefaultMultipartConfig {
34 33
35 - private List<Validacao> mensagemValidacaoCampos = new ArrayList<Validacao>();  
36 - private Validator validator;  
37 - private Result result;  
38 - private ServletContext application;  
39 - private String path;  
40 -  
41 - public PlanoTrabalhoController(Result result, Validator validator, ServletContext application) {  
42 - this.validator = validator;  
43 - this.application = application;  
44 - this.path = this.application.getRealPath("") + "/WEB-INF/conexao.properties";  
45 - this.result = result;  
46 - }  
47 -  
48 - // alteramos o tamanho total do upload para 50MB  
49 - public long getSizeLimit() {  
50 - return 50 * 1024 * 1024;  
51 - }  
52 -  
53 - @Path("/planoTrabalho-site")  
54 - public void planoTrabalho() {  
55 -  
56 - Questionario questionario = new Questionario();  
57 -  
58 - questionario = (Questionario) VRaptorRequestHolder.currentRequest().getServletContext()  
59 - .getAttribute("questionario");  
60 -  
61 - if(questionario == null)  
62 - {  
63 - Validacao validacao = new Validacao();  
64 - validacao.setCampo("valorHash");  
65 - validacao.setMensagem("ATENÇÃO: Você precisa estar logado para anexar os documentos.");  
66 -  
67 - mensagemValidacaoCampos.add(validacao);  
68 -  
69 - result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);  
70 - this.validator.add(new ValidationMessage("", ""));  
71 - this.validator.onErrorUsePageOf(loginController.class).login();  
72 -  
73 - }  
74 - else  
75 - {  
76 - PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();  
77 - PlanoTrabalho planoTrabalho = new PlanoTrabalho();  
78 -  
79 - planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);  
80 -  
81 - result.include("planoTrabalho", planoTrabalho);  
82 - }  
83 -  
84 - }  
85 -  
86 - @Path("/plano-trabalho-confirmacao")  
87 - public void planoTrabalhoConfirmacao() {  
88 -  
89 - }  
90 -  
91 -  
92 - @Path("/salvar-plano-trabalho")  
93 - public void enviarPlanoTrabalho(String valorHash, UploadedFile filePlano,  
94 - UploadedFile fileRelatorio) {  
95 -  
96 - String mensagemPlano = null;  
97 - String mensagemRelatorio = null;  
98 - boolean statusPlano = false;  
99 - boolean statusRelatorio = false;  
100 - boolean existeRelatorioAnexado = false;  
101 - Questionario questionario = new Questionario();  
102 - PlanoTrabalho planoTrabalho = new PlanoTrabalho();  
103 - PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();  
104 -  
105 - if (filePlano != null) {  
106 - String tipoArquivo = filePlano.getContentType();  
107 -  
108 -  
109 - if (!tipoArquivo.equalsIgnoreCase("application/msword")  
110 - && !tipoArquivo.equalsIgnoreCase("application/vnd.ms-excel")  
111 - && !tipoArquivo.equalsIgnoreCase("application/vnd.oasis.opendocument.text")  
112 - && !tipoArquivo.equalsIgnoreCase("text/plain")  
113 - && !tipoArquivo.equalsIgnoreCase("application/pdf")  
114 - && !tipoArquivo.equalsIgnoreCase("image/png")  
115 - && !tipoArquivo.equalsIgnoreCase("image/gif")  
116 - && !tipoArquivo.equalsIgnoreCase("image/jpeg")  
117 - && !tipoArquivo.equalsIgnoreCase("application/zip")  
118 - && !tipoArquivo.equalsIgnoreCase("application/x-rar-compressed")  
119 - && !tipoArquivo.equalsIgnoreCase("application/octet-stream")) {  
120 -  
121 - mensagemPlano = "Formato de Arquivo para plano de trabalho inválido!";  
122 - statusPlano = false;  
123 -  
124 - } else {  
125 - HashDao hashDao = new HashDao();  
126 - questionario = new Questionario();  
127 - questionario = hashDao.verificarHash(path, valorHash);  
128 - String nomeExtensaoPlanoTrabalho = filePlano.getContentType();  
129 -  
130 - if (questionario != null && questionario.getDtInicioQuestionario() != null) {  
131 - planoTrabalhoDao = new PlanoTrabalhoDao();  
132 -  
133 - planoTrabalho =  
134 - planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);  
135 -  
136 - if (planoTrabalho.getIdPlanoTrabalho() == 0) {  
137 - if (planoTrabalhoDao.salvarPlanoTrabalho(path, filePlano.getFile(), questionario,  
138 - filePlano.getFileName(), nomeExtensaoPlanoTrabalho)) {  
139 - mensagemPlano = "Plano de trabalho anexado com sucesso!";  
140 - statusPlano = true;  
141 - } else {  
142 - mensagemPlano = "Não foi possível anexar o plano de trabalho!";  
143 - }  
144 - } else {  
145 - if (planoTrabalhoDao.atualizarPlanoTrabalho(path, filePlano.getFile(), questionario,  
146 - planoTrabalho.getIdPlanoTrabalho(), filePlano.getFileName(),nomeExtensaoPlanoTrabalho)) {  
147 - mensagemPlano = "Plano de trabalho anexado com sucesso!";  
148 - statusPlano = true;  
149 - } else {  
150 - mensagemPlano = "Não foi possível anexar o plano de trabalho!";  
151 - }  
152 - }  
153 -  
154 - } else {  
155 - mensagemPlano = "Favor verificar o Código de Acesso!";  
156 - }  
157 -  
158 - }  
159 -  
160 -  
161 - result.include("mensagemPlano", mensagemPlano);  
162 - result.include("statusPlano", statusPlano);  
163 -  
164 - }  
165 -  
166 -  
167 - // /Relatório Assinado  
168 -  
169 - if (fileRelatorio != null) {  
170 - String tipoArquivo = fileRelatorio.getContentType();  
171 -  
172 - if (!tipoArquivo.equalsIgnoreCase("application/msword")  
173 - && !tipoArquivo.equalsIgnoreCase("application/vnd.ms-excel")  
174 - && !tipoArquivo.equalsIgnoreCase("application/vnd.oasis.opendocument.text")  
175 - && !tipoArquivo.equalsIgnoreCase("text/plain")  
176 - && !tipoArquivo.equalsIgnoreCase("application/pdf")  
177 - && !tipoArquivo.equalsIgnoreCase("image/png")  
178 - && !tipoArquivo.equalsIgnoreCase("image/gif")  
179 - && !tipoArquivo.equalsIgnoreCase("image/jpeg")  
180 - && !tipoArquivo.equalsIgnoreCase("application/zip")  
181 - && !tipoArquivo.equalsIgnoreCase("application/x-rar-compressed")  
182 - && !tipoArquivo.equalsIgnoreCase("application/octet-stream")) {  
183 -  
184 - mensagemRelatorio = "Formato de Arquivo para Relatório é inválido!";  
185 - statusRelatorio = false;  
186 -  
187 - } else {  
188 - HashDao hashDao = new HashDao();  
189 - questionario = new Questionario();  
190 - questionario = hashDao.verificarHash(path, valorHash);  
191 - String nomeExtensaoRelatorio = fileRelatorio.getContentType();  
192 -  
193 - if (questionario != null && questionario.getDtInicioQuestionario() != null) {  
194 - planoTrabalhoDao = new PlanoTrabalhoDao();  
195 - planoTrabalho = new PlanoTrabalho();  
196 -  
197 - planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);  
198 -  
199 - if (planoTrabalho.getIdPlanoTrabalho() == 0) {  
200 - if (planoTrabalhoDao.salvarRelatorioAss(path, fileRelatorio.getFile(), questionario,  
201 - fileRelatorio.getFileName(), nomeExtensaoRelatorio)) {  
202 - mensagemRelatorio = "FAD anexado com sucesso!";  
203 - existeRelatorioAnexado = true;  
204 - statusRelatorio = true;  
205 - } else {  
206 - mensagemRelatorio = "Não foi possível anexar o FAD!";  
207 - }  
208 - } else {  
209 - if (planoTrabalhoDao.atualizarRelatorioAss(path, fileRelatorio.getFile(), questionario,  
210 - planoTrabalho.getIdPlanoTrabalho(), fileRelatorio.getFileName(), nomeExtensaoRelatorio)) {  
211 - mensagemRelatorio = "FAD anexado com sucesso!";  
212 - statusRelatorio = true;  
213 - } else {  
214 - mensagemRelatorio = "Não foi possível anexar o FAD!";  
215 - }  
216 - }  
217 -  
218 - } else {  
219 - mensagemRelatorio = "Favor verificar o Código de Acesso!";  
220 - }  
221 -  
222 - }  
223 -  
224 -  
225 -  
226 - result.include("mensagemRelatorio", mensagemRelatorio);  
227 - result.include("statusRelatorio", statusRelatorio);  
228 - VRaptorRequestHolder.currentRequest().getServletContext()  
229 - .setAttribute("questionario", questionario);  
230 - VRaptorRequestHolder.currentRequest().getServletContext()  
231 - .setAttribute("fileRelatorio", fileRelatorio);  
232 - }  
233 -  
234 - planoTrabalho =  
235 - planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);  
236 -  
237 - if(planoTrabalho.getArquivoRelatorioAss() != null && planoTrabalho.getArquivoPlanoTrabalho() != null)  
238 - {  
239 - existeRelatorioAnexado = true;  
240 - }  
241 -  
242 - result.include("existeRelatorioAnexado", existeRelatorioAnexado);  
243 -  
244 - if (filePlano == null && fileRelatorio == null) {  
245 - mensagemPlano = "Não foi possível anexar o Plano de Trabalho!";  
246 - mensagemRelatorio = "Não foi possível anexar o FAD!";  
247 - result.include("mensagemPlano", mensagemPlano);  
248 - result.include("statusPlano", statusPlano);  
249 - result.include("mensagemRelatorio", mensagemRelatorio);  
250 - result.include("statusRelatorio", statusRelatorio);  
251 - }  
252 -  
253 - formularioOrgaoController formularioOrgao = new formularioOrgaoController();  
254 -  
255 - HashDao hashDao = new HashDao();  
256 - Questionario novoQuestionario = new Questionario();  
257 -  
258 - novoQuestionario = hashDao.verificarQuestionario(path ,questionario.getIdQuestionario());  
259 -  
260 - verificarPosicaoUsuario(novoQuestionario);  
261 -  
262 - this.validator.add(new ValidationMessage("", ""));  
263 - this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).planoTrabalhoConfirmacao();  
264 - }  
265 -  
266 - @Get("/recuperar-plano-trabalho/{id}")  
267 - public void recuperarPlanoTrabalho(int id, HttpServletResponse response) throws IOException {  
268 -  
269 - Questionario questionario = new Questionario(path, id);  
270 -  
271 - PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();  
272 - PlanoTrabalho planoTrabalho = new PlanoTrabalho();  
273 -  
274 - byte[] dados = null;  
275 -  
276 - if (questionario != null && questionario.getIdQuestionario() > 0) {  
277 - planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);  
278 -  
279 - if (planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null) {  
280 - try {  
281 - String nome = planoTrabalho.getNomePlanoTrabalho();  
282 - dados = planoTrabalho.getArquivoPlanoTrabalho();  
283 - response.setContentType("inline/download");  
284 - String arq = "attachment;filename=" + nome;  
285 - response.setHeader("Content-Disposition", arq);  
286 - ServletOutputStream os = response.getOutputStream();  
287 - os.write(dados);  
288 - os.flush();  
289 - os.close();  
290 - } catch (Exception e) {  
291 -  
292 - }  
293 - }  
294 - else  
295 - {  
296 - this.validator.add(new ValidationMessage("", ""));  
297 - this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario();  
298 - }  
299 - }  
300 - else  
301 - {  
302 - this.validator.add(new ValidationMessage("", ""));  
303 - this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario();  
304 - }  
305 - }  
306 -  
307 - @Get("/recuperar-relatorio/{id}")  
308 - public void recuperarRelatorio(int id, HttpServletResponse response) throws IOException {  
309 -  
310 - Questionario questionario = new Questionario(path, id);  
311 -  
312 - PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();  
313 - PlanoTrabalho planoTrabalho = new PlanoTrabalho();  
314 -  
315 - byte[] dados = null;  
316 -  
317 - if (questionario != null && questionario.getIdQuestionario() > 0) {  
318 - planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);  
319 -  
320 - if (planoTrabalho != null && planoTrabalho.getArquivoRelatorioAss() != null) {  
321 - try {  
322 - String nome = planoTrabalho.getNomeRelatorioAss();  
323 - dados = planoTrabalho.getArquivoRelatorioAss();  
324 - response.setContentType("inline/download");  
325 - String arq = "attachment;filename=" + nome;  
326 - response.setHeader("Content-Disposition", arq);  
327 - ServletOutputStream os = response.getOutputStream();  
328 - os.write(dados);  
329 - os.flush();  
330 - os.close();  
331 - } catch (Exception e) {  
332 -  
333 - }  
334 - }  
335 - else  
336 - {  
337 - this.validator.add(new ValidationMessage("", ""));  
338 - this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario();  
339 - }  
340 - }  
341 - else  
342 - {  
343 - this.validator.add(new ValidationMessage("", ""));  
344 - this.validator.onErrorUsePageOf(QuestionarioController.class).listaQuestionario();  
345 - }  
346 - }  
347 -  
348 - @Path("/enviar-relatorio")  
349 - public void enviarRelatorioPlanoTrabalho() {  
350 -  
351 - Questionario questionario = new Questionario();  
352 -  
353 - questionario = (Questionario) VRaptorRequestHolder.currentRequest().getServletContext()  
354 - .getAttribute("questionario");  
355 -  
356 - if(questionario == null)  
357 - {  
358 - Validacao validacao = new Validacao();  
359 - validacao.setCampo("valorHash");  
360 - validacao.setMensagem("ATENÇÃO: Você precisa estar logado para enviar Relatório à PFDC/MPF.");  
361 -  
362 - mensagemValidacaoCampos.add(validacao);  
363 -  
364 - result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);  
365 - this.validator.add(new ValidationMessage("", ""));  
366 - this.validator.onErrorUsePageOf(loginController.class).login();  
367 -  
368 - }  
369 - }  
370 -  
371 - private void enviarEmail(Questionario questionario) {  
372 - QuestionarioDao questionarioDao;  
373 -  
374 - StringBuffer mensagemMPF = new StringBuffer();  
375 - StringBuffer mensagemOrgao = new StringBuffer();  
376 - String assuntoMPF = "";  
377 - String assuntoOrgao = "";  
378 -  
379 - PlanoTrabalho planoTrabalho = new PlanoTrabalho();  
380 - PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();  
381 -  
382 - planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);  
383 -  
384 - if(planoTrabalho != null && planoTrabalho.getArquivoPlanoTrabalho() != null && planoTrabalho.getArquivoRelatorioAss() != null)  
385 - {  
386 - DataHandler dataHandlerRelatorio;  
387 - DataHandler dataHandlerPlano;  
388 -  
389 - dataHandlerRelatorio =  
390 - new DataHandler(planoTrabalho.getArquivoRelatorioAss(),  
391 - planoTrabalho.getNomeExtensaoRelatorioAss());  
392 - dataHandlerPlano =  
393 - new DataHandler(planoTrabalho.getArquivoPlanoTrabalho(),  
394 - planoTrabalho.getNomeExtensaoPlanoTrabalho());  
395 -  
396 - Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties");  
397 -  
398 - EnvioEmailSemAutenticacao envioEmailSemAutenticacao =  
399 - new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort()));  
400 -  
401 - assuntoMPF = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao();  
402 -  
403 - mensagemMPF.append("À Procuradoria Federal dos Diretos do Cidadão,<br>");  
404 - mensagemMPF.append("<p>O(A) " + questionario.getNoOrgao() +" encaminha o Relatório Circunstanciado relativo aos ambientes digitais desta instituição.</p>");  
405 -  
406 - mensagemMPF.append("Dados do Responsável:<br>");  
407 - mensagemMPF.append("Nome: " + questionario.getResponsavel() +"<br>");  
408 - mensagemMPF.append("Cargo: "+ questionario.getCargoResponsavel() + "<br>");  
409 - mensagemMPF.append("Telefone: " + questionario.getTelefone() + "<br>");  
410 - mensagemMPF.append("email: "+ questionario.getEmailDestinoOrgao() + "<br>");  
411 - mensagemMPF.append("<p>Brasília, "+ DateUtil.dataHoraAtual() +".</p>");  
412 - mensagemMPF.append("<p>Encaminhado por:</p>");  
413 - mensagemMPF.append("<p><a href=\"http://fad.governoeletronico.gov.br​\">http://fad.governoeletronico.gov.br​</a></p>");  
414 - mensagemMPF.append("<p>Coordenação-Geral de Padrões de Governo Digital</p>");  
415 - mensagemMPF.append("<p>Departamento de Governo Digital</p>");  
416 - mensagemMPF.append("<p>Secretaria de Tecnologia da Informação</p>");  
417 - mensagemMPF.append("<p>Ministério do Planejamento, Desenvolvimento e Gestão</p>");  
418 -  
419 - String mensagemRetornoMPF =  
420 - envioEmailSemAutenticacao.sendMailComAnexo(questionario.getEmailDestinoOrgao(),  
421 - email.getAnexosTo(), assuntoMPF, mensagemMPF.toString(), email.getAuth(), email.getAuthUser(),  
422 - email.getAuthPass(), dataHandlerRelatorio, planoTrabalho.getNomeRelatorioAss(),  
423 - dataHandlerPlano, planoTrabalho.getNomePlanoTrabalho());  
424 -  
425 -  
426 -  
427 - if (mensagemRetornoMPF.equalsIgnoreCase("")) {  
428 -  
429 -  
430 - assuntoOrgao = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao();  
431 -  
432 - mensagemOrgao.append("<p>Prezado(a) "+ questionario.getResponsavel() +", "+ questionario.getCargoResponsavel() +" do "+ questionario.getNoOrgao() +", você concluiu com sucesso o processo de ");  
433 - mensagemOrgao.append("envio do Relatório Circunstanciado (Formulário Eletrônico de Acessibilidade Digital e ");  
434 - mensagemOrgao.append("Plano de Trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério ");  
435 - mensagemOrgao.append("Público Federal.</p>");  
436 - mensagemOrgao.append("<p>Além do envio, o relatório circunstanciado deverá ser publicado no portal do órgão/entidade e o seu ");  
437 - mensagemOrgao.append("reporte , na forma de síntese, deverá ser registrado na seção \"Medidas Relativas à Acessibilidade\" do ");  
438 - mensagemOrgao.append("Relatório de Gestão referente a 2016 e, nos anos subsequentes, indicar nessa seção o monitoramento ");  
439 - mensagemOrgao.append("das metas propostas nos planos de trabalho.</p> ");  
440 - 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>");  
441 - mensagemOrgao.append("<p>Brasília, "+ DateUtil.dataHoraAtual() +".</p>");  
442 - mensagemOrgao.append("<p>Encaminhado por:</p>");  
443 - mensagemOrgao.append("<p><a href=\"http://fad.governoeletronico.gov.br​\">http://fad.governoeletronico.gov.br​</a></p>");  
444 - mensagemOrgao.append("<p>Coordenação-Geral de Padrões de Governo Digital</p>");  
445 - mensagemOrgao.append("<p>Departamento de Governo Digital</p>");  
446 - mensagemOrgao.append("<p>Secretaria de Tecnologia da Informação</p>");  
447 - mensagemOrgao.append("<p>Ministério do Planejamento, Desenvolvimento e Gestão</p>");  
448 -  
449 -  
450 - String mensagemRetornoOrgao =  
451 - envioEmailSemAutenticacao.sendMailComAnexo(email.getFrom(),  
452 - questionario.getEmailDestinoOrgao(), assuntoOrgao, mensagemOrgao.toString(), email.getAuth(),  
453 - email.getAuthUser(), email.getAuthPass(), dataHandlerRelatorio,  
454 - planoTrabalho.getNomeRelatorioAss(), dataHandlerPlano,  
455 - planoTrabalho.getNomePlanoTrabalho());  
456 -  
457 -  
458 - if (mensagemRetornoOrgao.equalsIgnoreCase("")) {  
459 -  
460 - questionarioDao = new QuestionarioDao();  
461 -  
462 - if (questionarioDao.atualizarFlagEnviado(path, questionario.getIdQuestionario())) {  
463 -  
464 - result.include("mensagemEnvio",  
465 - "Mensagem enviada com Sucesso, você recebeu um email com os anexos!");  
466 -  
467 - result.include("statusEnvio", true);  
468 - }  
469 - }  
470 - } else {  
471 - result.include("mensagemEnvio", "Não foi possível enviar o email com os anexos!");  
472 - result.include("statusEnvio", false);  
473 - }  
474 - }else  
475 - {  
476 - result.include("mensagemEnvio", "É preciso ter o Relatório e o Plano de Trabalho anexados!");  
477 - result.include("statusEnvio", false);  
478 - }  
479 -  
480 - HashDao hashDao = new HashDao();  
481 - Questionario novoQuestionario = new Questionario();  
482 -  
483 - novoQuestionario = hashDao.verificarQuestionario(path ,questionario.getIdQuestionario());  
484 -  
485 - verificarPosicaoUsuario(novoQuestionario);  
486 - this.validator.add(new ValidationMessage("", ""));  
487 - this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).confirmacaoEnvioEmailMPF();  
488 - }  
489 -  
490 - @Path("/enviar-email-mpf-alternativo")  
491 - public void enviarEmailMPFAlternativo(String valorHash) {  
492 -  
493 - Validacao validacao = new Validacao();  
494 - mensagemValidacaoCampos = new ArrayList<Validacao>();  
495 - mensagemValidacaoCampos = validacao.validarHash(path, valorHash);  
496 -  
497 - if (mensagemValidacaoCampos.size() > 0) {  
498 - result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);  
499 - this.validator.add(new ValidationMessage("", ""));  
500 - this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).enviarRelatorioPlanoTrabalho();  
501 - }  
502 -  
503 - HashDao hashDao = new HashDao();  
504 - Questionario questionario = new Questionario();  
505 - questionario = hashDao.verificarHash(path, valorHash);  
506 -  
507 -  
508 - if (questionario != null && questionario.getIdQuestionario() > 0) {  
509 -  
510 - if(questionario.isFlagEnviado())  
511 - {  
512 - result.include("mensagemEnvio", "O Relatório já foi enviado para MPF!");  
513 - result.include("statusEnvio", false);  
514 -  
515 - this.validator.add(new ValidationMessage("", ""));  
516 - this.validator.onErrorUsePageOf(PlanoTrabalhoController.class).confirmacaoEnvioEmailMPF();  
517 - }  
518 - else  
519 - {  
520 - enviarEmail(questionario);  
521 - }  
522 -  
523 -  
524 - }  
525 -  
526 - }  
527 -  
528 -  
529 - @Path("/enviar-email-mpf")  
530 - public void enviarEmailMPF() {  
531 - Questionario questionario = new Questionario();  
532 -  
533 - questionario =  
534 - (Questionario) VRaptorRequestHolder.currentRequest().getServletContext()  
535 - .getAttribute("questionario");  
536 -  
537 - if (questionario != null && questionario.getIdQuestionario() > 0) {  
538 -  
539 - enviarEmail(questionario);  
540 -  
541 -  
542 - }  
543 -  
544 - }  
545 -  
546 - public void verificarPosicaoUsuario(Questionario questionario)  
547 - {  
548 - PlanoTrabalho planoTrabalho = new PlanoTrabalho();  
549 - PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();  
550 -  
551 - //Solicitou código de Acesso?  
552 - VRaptorRequestHolder.currentRequest().getServletContext()  
553 - .setAttribute("nivel_01", true);  
554 -  
555 - //Respondeu FAD?  
556 - if(questionario.isQuestionario_respondido())  
557 - {  
558 - VRaptorRequestHolder.currentRequest().getServletContext()  
559 - .setAttribute("nivel_02", true);  
560 - }  
561 - else  
562 - {  
563 - VRaptorRequestHolder.currentRequest().getServletContext()  
564 - .setAttribute("nivel_02", false);  
565 - }  
566 -  
567 - planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path, questionario);  
568 -  
569 - //Anexou Fad?  
570 - if(planoTrabalho.getArquivoRelatorioAss() != null)  
571 - {  
572 - VRaptorRequestHolder.currentRequest().getServletContext()  
573 - .setAttribute("nivel_03", true);  
574 - }  
575 - else  
576 - {  
577 - VRaptorRequestHolder.currentRequest().getServletContext()  
578 - .setAttribute("nivel_03", false);  
579 - }  
580 -  
581 - //Anexou Plano de Trabalho?  
582 - if(planoTrabalho.getArquivoPlanoTrabalho() != null)  
583 - {  
584 - VRaptorRequestHolder.currentRequest().getServletContext()  
585 - .setAttribute("nivel_04", true);  
586 - }  
587 - else  
588 - {  
589 - VRaptorRequestHolder.currentRequest().getServletContext()  
590 - .setAttribute("nivel_04", false);  
591 - }  
592 -  
593 - //Processo finalizado?  
594 - if(questionario.isFlagEnviado())  
595 - {  
596 - VRaptorRequestHolder.currentRequest().getServletContext()  
597 - .setAttribute("nivel_05", true);  
598 - }  
599 - else  
600 - {  
601 - VRaptorRequestHolder.currentRequest().getServletContext()  
602 - .setAttribute("nivel_05", false);  
603 - }  
604 -  
605 - }  
606 -  
607 - public void confirmacaoEnvioEmailMPF() {  
608 -  
609 - }  
610 -  
611 - 34 + private List<Validacao> mensagemValidacaoCampos = new ArrayList<Validacao>();
  35 + private Validator validator;
  36 + private Result result;
  37 + private ServletContext application;
  38 + private String path;
  39 +
  40 + public PlanoTrabalhoController(Result result, Validator validator,
  41 + ServletContext application) {
  42 + this.validator = validator;
  43 + this.application = application;
  44 + this.path = this.application.getRealPath("")
  45 + + "/WEB-INF/conexao.properties";
  46 + this.result = result;
  47 + }
  48 +
  49 + // alteramos o tamanho total do upload para 50MB
  50 + public long getSizeLimit() {
  51 + return 50 * 1024 * 1024;
  52 + }
  53 +
  54 + @Path("/planoTrabalho-site")
  55 + public void planoTrabalho() {
  56 +
  57 + Questionario questionario = new Questionario();
  58 +
  59 + questionario = (Questionario) VRaptorRequestHolder.currentRequest()
  60 + .getServletContext().getAttribute("questionario");
  61 +
  62 + if (questionario == null) {
  63 + Validacao validacao = new Validacao();
  64 + validacao.setCampo("valorHash");
  65 + validacao
  66 + .setMensagem("ATEN��O: Voc� precisa estar logado para anexar os documentos.");
  67 +
  68 + mensagemValidacaoCampos.add(validacao);
  69 +
  70 + result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);
  71 + this.validator.add(new ValidationMessage("", ""));
  72 + this.validator.onErrorUsePageOf(loginController.class).login();
  73 +
  74 + } else {
  75 + if (!questionario.isQuestionario_respondido()) {
  76 + Validacao validacao = new Validacao();
  77 + validacao.setCampo("valorHash");
  78 + validacao
  79 + .setMensagem("ATEN��O: � preciso responder o FAD antes de anexar os arquivos.");
  80 +
  81 + mensagemValidacaoCampos.add(validacao);
  82 +
  83 + result.include("mensagemValidacaoCampos",
  84 + mensagemValidacaoCampos);
  85 + this.validator.add(new ValidationMessage("", ""));
  86 + this.validator.onErrorUsePageOf(loginController.class).login();
  87 + } else {
  88 + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
  89 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  90 +
  91 + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path,
  92 + questionario);
  93 +
  94 + result.include("planoTrabalho", planoTrabalho);
  95 + }
  96 + }
  97 + }
  98 +
  99 + @Path("/plano-trabalho-confirmacao")
  100 + public void planoTrabalhoConfirmacao() {
  101 +
  102 + }
  103 +
  104 + @Path("/salvar-plano-trabalho")
  105 + public void enviarPlanoTrabalho(String valorHash, UploadedFile filePlano,
  106 + UploadedFile fileRelatorio) {
  107 +
  108 + String mensagemPlano = null;
  109 + String mensagemRelatorio = null;
  110 + boolean statusPlano = false;
  111 + boolean statusRelatorio = false;
  112 + boolean existeRelatorioAnexado = false;
  113 + Questionario questionario = new Questionario();
  114 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  115 + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
  116 +
  117 + if (filePlano != null) {
  118 + String tipoArquivo = filePlano.getContentType();
  119 +
  120 + if (!tipoArquivo.equalsIgnoreCase("application/msword")
  121 + && !tipoArquivo
  122 + .equalsIgnoreCase("application/vnd.ms-excel")
  123 + && !tipoArquivo
  124 + .equalsIgnoreCase("application/vnd.oasis.opendocument.text")
  125 + && !tipoArquivo.equalsIgnoreCase("text/plain")
  126 + && !tipoArquivo.equalsIgnoreCase("application/pdf")
  127 + && !tipoArquivo.equalsIgnoreCase("image/png")
  128 + && !tipoArquivo.equalsIgnoreCase("image/gif")
  129 + && !tipoArquivo.equalsIgnoreCase("image/jpeg")
  130 + && !tipoArquivo.equalsIgnoreCase("application/zip")
  131 + && !tipoArquivo
  132 + .equalsIgnoreCase("application/x-rar-compressed")
  133 + && !tipoArquivo
  134 + .equalsIgnoreCase("application/octet-stream")) {
  135 +
  136 + mensagemPlano = "Formato de Arquivo para plano de trabalho inválido!";
  137 + statusPlano = false;
  138 +
  139 + } else {
  140 + HashDao hashDao = new HashDao();
  141 + questionario = new Questionario();
  142 + questionario = hashDao.verificarHash(path, valorHash);
  143 + String nomeExtensaoPlanoTrabalho = filePlano.getContentType();
  144 +
  145 + if (questionario != null
  146 + && questionario.getDtInicioQuestionario() != null) {
  147 + planoTrabalhoDao = new PlanoTrabalhoDao();
  148 +
  149 + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(
  150 + path, questionario);
  151 +
  152 + if (planoTrabalho.getIdPlanoTrabalho() == 0) {
  153 + if (planoTrabalhoDao.salvarPlanoTrabalho(path,
  154 + filePlano.getFile(), questionario,
  155 + filePlano.getFileName(),
  156 + nomeExtensaoPlanoTrabalho)) {
  157 + mensagemPlano = "Plano de trabalho anexado com sucesso!";
  158 + statusPlano = true;
  159 + } else {
  160 + mensagemPlano = "N�o foi poss�vel anexar o plano de trabalho!";
  161 + }
  162 + } else {
  163 + if (planoTrabalhoDao.atualizarPlanoTrabalho(path,
  164 + filePlano.getFile(), questionario,
  165 + planoTrabalho.getIdPlanoTrabalho(),
  166 + filePlano.getFileName(),
  167 + nomeExtensaoPlanoTrabalho)) {
  168 + mensagemPlano = "Plano de trabalho anexado com sucesso!";
  169 + statusPlano = true;
  170 + } else {
  171 + mensagemPlano = "N�o foi poss�vel anexar o plano de trabalho!";
  172 + }
  173 + }
  174 +
  175 + } else {
  176 + mensagemPlano = "Favor verificar o C�digo de Acesso!";
  177 + }
  178 +
  179 + }
  180 +
  181 + result.include("mensagemPlano", mensagemPlano);
  182 + result.include("statusPlano", statusPlano);
  183 +
  184 + }
  185 +
  186 + // /Relatório Assinado
  187 +
  188 + if (fileRelatorio != null) {
  189 + String tipoArquivo = fileRelatorio.getContentType();
  190 +
  191 + if (!tipoArquivo.equalsIgnoreCase("application/msword")
  192 + && !tipoArquivo
  193 + .equalsIgnoreCase("application/vnd.ms-excel")
  194 + && !tipoArquivo
  195 + .equalsIgnoreCase("application/vnd.oasis.opendocument.text")
  196 + && !tipoArquivo.equalsIgnoreCase("text/plain")
  197 + && !tipoArquivo.equalsIgnoreCase("application/pdf")
  198 + && !tipoArquivo.equalsIgnoreCase("image/png")
  199 + && !tipoArquivo.equalsIgnoreCase("image/gif")
  200 + && !tipoArquivo.equalsIgnoreCase("image/jpeg")
  201 + && !tipoArquivo.equalsIgnoreCase("application/zip")
  202 + && !tipoArquivo
  203 + .equalsIgnoreCase("application/x-rar-compressed")
  204 + && !tipoArquivo
  205 + .equalsIgnoreCase("application/octet-stream")) {
  206 +
  207 + mensagemRelatorio = "Formato de Arquivo para Relat�rio � inv�lido!";
  208 + statusRelatorio = false;
  209 +
  210 + } else {
  211 + HashDao hashDao = new HashDao();
  212 + questionario = new Questionario();
  213 + questionario = hashDao.verificarHash(path, valorHash);
  214 + String nomeExtensaoRelatorio = fileRelatorio.getContentType();
  215 +
  216 + if (questionario != null
  217 + && questionario.getDtInicioQuestionario() != null) {
  218 + planoTrabalhoDao = new PlanoTrabalhoDao();
  219 + planoTrabalho = new PlanoTrabalho();
  220 +
  221 + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(
  222 + path, questionario);
  223 +
  224 + if (planoTrabalho.getIdPlanoTrabalho() == 0) {
  225 + if (planoTrabalhoDao.salvarRelatorioAss(path,
  226 + fileRelatorio.getFile(), questionario,
  227 + fileRelatorio.getFileName(),
  228 + nomeExtensaoRelatorio)) {
  229 + mensagemRelatorio = "FAD anexado com sucesso!";
  230 + existeRelatorioAnexado = true;
  231 + statusRelatorio = true;
  232 + } else {
  233 + mensagemRelatorio = "N�o foi poss�vel anexar o FAD!";
  234 + }
  235 + } else {
  236 + if (planoTrabalhoDao.atualizarRelatorioAss(path,
  237 + fileRelatorio.getFile(), questionario,
  238 + planoTrabalho.getIdPlanoTrabalho(),
  239 + fileRelatorio.getFileName(),
  240 + nomeExtensaoRelatorio)) {
  241 + mensagemRelatorio = "FAD anexado com sucesso!";
  242 + statusRelatorio = true;
  243 + } else {
  244 + mensagemRelatorio = "N�o foi poss�vel anexar o FAD!";
  245 + }
  246 + }
  247 +
  248 + } else {
  249 + mensagemRelatorio = "Favor verificar o C�digo de Acesso!";
  250 + }
  251 +
  252 + }
  253 +
  254 + result.include("mensagemRelatorio", mensagemRelatorio);
  255 + result.include("statusRelatorio", statusRelatorio);
  256 + VRaptorRequestHolder.currentRequest().getServletContext()
  257 + .setAttribute("questionario", questionario);
  258 + VRaptorRequestHolder.currentRequest().getServletContext()
  259 + .setAttribute("fileRelatorio", fileRelatorio);
  260 + }
  261 +
  262 + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path,
  263 + questionario);
  264 +
  265 + if (planoTrabalho.getArquivoRelatorioAss() != null) {
  266 + existeRelatorioAnexado = true;
  267 + }
  268 +
  269 + result.include("existeRelatorioAnexado", existeRelatorioAnexado);
  270 +
  271 + if (filePlano == null && fileRelatorio == null) {
  272 + mensagemPlano = "N�o foi poss�vel anexar o Plano de Trabalho!";
  273 + mensagemRelatorio = "N�o foi poss�vel anexar o FAD!";
  274 + result.include("mensagemPlano", mensagemPlano);
  275 + result.include("statusPlano", statusPlano);
  276 + result.include("mensagemRelatorio", mensagemRelatorio);
  277 + result.include("statusRelatorio", statusRelatorio);
  278 + }
  279 +
  280 + formularioOrgaoController formularioOrgao = new formularioOrgaoController(
  281 + result, validator, application);
  282 +
  283 + HashDao hashDao = new HashDao();
  284 + Questionario novoQuestionario = new Questionario();
  285 +
  286 + novoQuestionario = hashDao.verificarQuestionario(path,
  287 + questionario.getIdQuestionario());
  288 +
  289 + verificarPosicaoUsuario(novoQuestionario);
  290 +
  291 + this.validator.add(new ValidationMessage("", ""));
  292 + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class)
  293 + .planoTrabalhoConfirmacao();
  294 + }
  295 +
  296 + @Get("/recuperar-plano-trabalho/{id}")
  297 + public void recuperarPlanoTrabalho(int id, HttpServletResponse response)
  298 + throws IOException {
  299 +
  300 + Questionario questionario = new Questionario(path, id);
  301 +
  302 + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
  303 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  304 +
  305 + byte[] dados = null;
  306 +
  307 + if (questionario != null && questionario.getIdQuestionario() > 0) {
  308 + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path,
  309 + questionario);
  310 +
  311 + if (planoTrabalho != null
  312 + && planoTrabalho.getArquivoPlanoTrabalho() != null) {
  313 + try {
  314 + String nome = planoTrabalho.getNomePlanoTrabalho();
  315 + dados = planoTrabalho.getArquivoPlanoTrabalho();
  316 + response.setContentType("inline/download");
  317 + String arq = "attachment;filename=" + nome;
  318 + response.setHeader("Content-Disposition", arq);
  319 + ServletOutputStream os = response.getOutputStream();
  320 + os.write(dados);
  321 + os.flush();
  322 + os.close();
  323 + } catch (Exception e) {
  324 +
  325 + }
  326 + } else {
  327 + this.validator.add(new ValidationMessage("", ""));
  328 + this.validator.onErrorUsePageOf(QuestionarioController.class)
  329 + .listaQuestionario();
  330 + }
  331 + } else {
  332 + this.validator.add(new ValidationMessage("", ""));
  333 + this.validator.onErrorUsePageOf(QuestionarioController.class)
  334 + .listaQuestionario();
  335 + }
  336 + }
  337 +
  338 + @Get("/recuperar-relatorio/{id}")
  339 + public void recuperarRelatorio(int id, HttpServletResponse response)
  340 + throws IOException {
  341 +
  342 + Questionario questionario = new Questionario(path, id);
  343 +
  344 + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
  345 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  346 +
  347 + byte[] dados = null;
  348 +
  349 + if (questionario != null && questionario.getIdQuestionario() > 0) {
  350 + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path,
  351 + questionario);
  352 +
  353 + if (planoTrabalho != null
  354 + && planoTrabalho.getArquivoRelatorioAss() != null) {
  355 + try {
  356 + String nome = planoTrabalho.getNomeRelatorioAss();
  357 + dados = planoTrabalho.getArquivoRelatorioAss();
  358 + response.setContentType("inline/download");
  359 + String arq = "attachment;filename=" + nome;
  360 + response.setHeader("Content-Disposition", arq);
  361 + ServletOutputStream os = response.getOutputStream();
  362 + os.write(dados);
  363 + os.flush();
  364 + os.close();
  365 + } catch (Exception e) {
  366 +
  367 + }
  368 + } else {
  369 + this.validator.add(new ValidationMessage("", ""));
  370 + this.validator.onErrorUsePageOf(QuestionarioController.class)
  371 + .listaQuestionario();
  372 + }
  373 + } else {
  374 + this.validator.add(new ValidationMessage("", ""));
  375 + this.validator.onErrorUsePageOf(QuestionarioController.class)
  376 + .listaQuestionario();
  377 + }
  378 + }
  379 +
  380 + @Path("/enviar-relatorio")
  381 + public void enviarRelatorioPlanoTrabalho() {
  382 +
  383 + Questionario questionario = new Questionario();
  384 +
  385 + questionario = (Questionario) VRaptorRequestHolder.currentRequest()
  386 + .getServletContext().getAttribute("questionario");
  387 +
  388 + if (questionario == null) {
  389 + Validacao validacao = new Validacao();
  390 + validacao.setCampo("valorHash");
  391 + validacao
  392 + .setMensagem("ATEN��O: Voc� precisa estar logado para enviar Relat�rio � PFDC/MPF.");
  393 +
  394 + mensagemValidacaoCampos.add(validacao);
  395 +
  396 + result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);
  397 + this.validator.add(new ValidationMessage("", ""));
  398 + this.validator.onErrorUsePageOf(loginController.class).login();
  399 +
  400 + }
  401 + }
  402 +
  403 + private void enviarEmail(Questionario questionario) {
  404 + QuestionarioDao questionarioDao;
  405 +
  406 + StringBuffer mensagemMPF = new StringBuffer();
  407 + StringBuffer mensagemOrgao = new StringBuffer();
  408 + String assuntoMPF = "";
  409 + String assuntoOrgao = "";
  410 +
  411 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  412 + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
  413 +
  414 + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path,
  415 + questionario);
  416 +
  417 + if (planoTrabalho.getArquivoRelatorioAss() != null) {
  418 + DataHandler dataHandlerRelatorio = null;
  419 + DataHandler dataHandlerPlano = null;
  420 +
  421 + dataHandlerRelatorio = new DataHandler(
  422 + planoTrabalho.getArquivoRelatorioAss(),
  423 + planoTrabalho.getNomeExtensaoRelatorioAss());
  424 +
  425 + if (planoTrabalho != null &&
  426 + planoTrabalho.getArquivoPlanoTrabalho() != null)
  427 + {
  428 + dataHandlerPlano = new DataHandler(
  429 + planoTrabalho.getArquivoPlanoTrabalho(),
  430 + planoTrabalho.getNomeExtensaoPlanoTrabalho());
  431 + }
  432 +
  433 +
  434 + Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties");
  435 +
  436 + EnvioEmailSemAutenticacao envioEmailSemAutenticacao =
  437 + new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort()));
  438 +
  439 + assuntoMPF = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao();
  440 +
  441 + mensagemMPF.append("À Procuradoria Federal dos Diretos do Cidadão,<br>");
  442 + mensagemMPF.append("<p>O(A) " + questionario.getNoOrgao() +" encaminha o Relatório Circunstanciado relativo aos ambientes digitais desta instituição.</p>");
  443 +
  444 + mensagemMPF.append("Dados do Responsável:<br>");
  445 + mensagemMPF.append("Nome: " + questionario.getResponsavel() +"<br>");
  446 + mensagemMPF.append("Cargo: "+ questionario.getCargoResponsavel() + "<br>");
  447 + mensagemMPF.append("Telefone: " + questionario.getTelefone() + "<br>");
  448 + mensagemMPF.append("email: "+ questionario.getEmailDestinoOrgao() + "<br>");
  449 + mensagemMPF.append("<p>Brasília, "+ DateUtil.dataHoraAtual() +".</p>");
  450 + mensagemMPF.append("<p>Encaminhado por:</p>");
  451 + mensagemMPF.append("<p><a href=\"http://fad.governoeletronico.gov.br​\">http://fad.governoeletronico.gov.br​</a></p>");
  452 + mensagemMPF.append("<p>Coordenação-Geral de Padrões de Governo Digital</p>");
  453 + mensagemMPF.append("<p>Departamento de Governo Digital</p>");
  454 + mensagemMPF.append("<p>Secretaria de Tecnologia da Informação</p>");
  455 + mensagemMPF.append("<p>Ministério do Planejamento, Desenvolvimento e Gestão</p>");
  456 +
  457 + String mensagemRetornoMPF =
  458 + envioEmailSemAutenticacao.sendMailComAnexo(questionario.getEmailDestinoOrgao(),
  459 + email.getAnexosTo(), assuntoMPF, mensagemMPF.toString(), email.getAuth(), email.getAuthUser(),
  460 + email.getAuthPass(), dataHandlerRelatorio, planoTrabalho.getNomeRelatorioAss(),
  461 + dataHandlerPlano, planoTrabalho.getNomePlanoTrabalho());
  462 +
  463 +
  464 +
  465 + if (mensagemRetornoMPF.equalsIgnoreCase("")) {
  466 +
  467 +
  468 + assuntoOrgao = "Registro de Encaminhamento do Relatório Circunstanciado de Acessibilidade Digital - " + questionario.getNoOrgao();
  469 +
  470 + mensagemOrgao.append("<p>Prezado(a) "+ questionario.getResponsavel() +", "+ questionario.getCargoResponsavel() +" do "+ questionario.getNoOrgao() +", você concluiu com sucesso o processo de ");
  471 + mensagemOrgao.append("envio do Relatório Circunstanciado (Formulário Eletrônico de Acessibilidade Digital e ");
  472 + mensagemOrgao.append("Plano de Trabalho) à Procuradoria Federal dos Direitos do Cidadão do Ministério ");
  473 + mensagemOrgao.append("Público Federal.</p>");
  474 + mensagemOrgao.append("<p>Além do envio, o relatório circunstanciado deverá ser publicado no portal do órgão/entidade e o seu ");
  475 + mensagemOrgao.append("reporte , na forma de síntese, deverá ser registrado na seção \"Medidas Relativas à Acessibilidade\" do ");
  476 + mensagemOrgao.append("Relatório de Gestão referente a 2016 e, nos anos subsequentes, indicar nessa seção o monitoramento ");
  477 + mensagemOrgao.append("das metas propostas nos planos de trabalho.</p> ");
  478 + 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>");
  479 + mensagemOrgao.append("<p>Brasília, "+ DateUtil.dataHoraAtual() +".</p>");
  480 + mensagemOrgao.append("<p>Encaminhado por:</p>");
  481 + mensagemOrgao.append("<p><a href=\"http://fad.governoeletronico.gov.br​\">http://fad.governoeletronico.gov.br​</a></p>");
  482 + mensagemOrgao.append("<p>Coordenação-Geral de Padrões de Governo Digital</p>");
  483 + mensagemOrgao.append("<p>Departamento de Governo Digital</p>");
  484 + mensagemOrgao.append("<p>Secretaria de Tecnologia da Informação</p>");
  485 + mensagemOrgao.append("<p>Ministério do Planejamento, Desenvolvimento e Gestão</p>");
  486 +
  487 +
  488 + String mensagemRetornoOrgao =
  489 + envioEmailSemAutenticacao.sendMailComAnexo(email.getFrom(),
  490 + questionario.getEmailDestinoOrgao(), assuntoOrgao, mensagemOrgao.toString(), email.getAuth(),
  491 + email.getAuthUser(), email.getAuthPass(), dataHandlerRelatorio,
  492 + planoTrabalho.getNomeRelatorioAss(), dataHandlerPlano,
  493 + planoTrabalho.getNomePlanoTrabalho());
  494 +
  495 +
  496 + if (mensagemRetornoOrgao.equalsIgnoreCase("")) {
  497 +
  498 + questionarioDao = new QuestionarioDao();
  499 +
  500 + if (questionarioDao.atualizarFlagEnviado(path, questionario.getIdQuestionario())) {
  501 +
  502 + result.include("mensagemEnvio",
  503 + "Mensagem enviada com Sucesso, você recebeu um email com os anexos!");
  504 +
  505 + result.include("statusEnvio", true);
  506 + }
  507 + }
  508 + } else {
  509 + result.include("mensagemEnvio", "Não foi possível enviar o email com os anexos!");
  510 + result.include("statusEnvio", false);
  511 + }
  512 + }else
  513 + {
  514 + result.include("mensagemEnvio", "É preciso ter o Relatório e o Plano de Trabalho anexados!");
  515 + result.include("statusEnvio", false);
  516 + }
  517 +
  518 + HashDao hashDao = new HashDao();
  519 + Questionario novoQuestionario = new Questionario();
  520 +
  521 + novoQuestionario = hashDao.verificarQuestionario(path,
  522 + questionario.getIdQuestionario());
  523 +
  524 + verificarPosicaoUsuario(novoQuestionario);
  525 + this.validator.add(new ValidationMessage("", ""));
  526 + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class)
  527 + .confirmacaoEnvioEmailMPF();
  528 + }
  529 +
  530 + @Path("/enviar-email-mpf-alternativo")
  531 + public void enviarEmailMPFAlternativo(String valorHash) {
  532 +
  533 + Validacao validacao = new Validacao();
  534 + mensagemValidacaoCampos = new ArrayList<Validacao>();
  535 + mensagemValidacaoCampos = validacao.validarHash(path, valorHash);
  536 +
  537 + if (mensagemValidacaoCampos.size() > 0) {
  538 + result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);
  539 + this.validator.add(new ValidationMessage("", ""));
  540 + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class)
  541 + .enviarRelatorioPlanoTrabalho();
  542 + }
  543 +
  544 + HashDao hashDao = new HashDao();
  545 + Questionario questionario = new Questionario();
  546 + questionario = hashDao.verificarHash(path, valorHash);
  547 +
  548 + if (questionario != null && questionario.getIdQuestionario() > 0) {
  549 +
  550 + if (questionario.isFlagEnviado()) {
  551 + result.include("mensagemEnvio",
  552 + "O Relatório já foi enviado para MPF!");
  553 + result.include("statusEnvio", false);
  554 +
  555 + this.validator.add(new ValidationMessage("", ""));
  556 + this.validator.onErrorUsePageOf(PlanoTrabalhoController.class)
  557 + .confirmacaoEnvioEmailMPF();
  558 + } else {
  559 + enviarEmail(questionario);
  560 + }
  561 +
  562 + }
  563 +
  564 + }
  565 +
  566 + @Path("/enviar-email-mpf")
  567 + public void enviarEmailMPF() {
  568 + Questionario questionario = new Questionario();
  569 +
  570 + questionario = (Questionario) VRaptorRequestHolder.currentRequest()
  571 + .getServletContext().getAttribute("questionario");
  572 +
  573 + if (questionario != null && questionario.getIdQuestionario() > 0) {
  574 +
  575 + enviarEmail(questionario);
  576 +
  577 + }
  578 +
  579 + }
  580 +
  581 + public void verificarPosicaoUsuario(Questionario questionario) {
  582 + PlanoTrabalho planoTrabalho = new PlanoTrabalho();
  583 + PlanoTrabalhoDao planoTrabalhoDao = new PlanoTrabalhoDao();
  584 +
  585 + // Solicitou código de Acesso?
  586 + VRaptorRequestHolder.currentRequest().getServletContext()
  587 + .setAttribute("nivel_01", true);
  588 +
  589 + // Respondeu FAD?
  590 + if (questionario.isQuestionario_respondido()) {
  591 + VRaptorRequestHolder.currentRequest().getServletContext()
  592 + .setAttribute("nivel_02", true);
  593 + } else {
  594 + VRaptorRequestHolder.currentRequest().getServletContext()
  595 + .setAttribute("nivel_02", false);
  596 + }
  597 +
  598 + planoTrabalho = planoTrabalhoDao.recuperarPlanoTrabalho(path,
  599 + questionario);
  600 +
  601 + // Anexou Fad?
  602 + if (planoTrabalho.getArquivoRelatorioAss() != null) {
  603 + VRaptorRequestHolder.currentRequest().getServletContext()
  604 + .setAttribute("nivel_03", true);
  605 + } else {
  606 + VRaptorRequestHolder.currentRequest().getServletContext()
  607 + .setAttribute("nivel_03", false);
  608 + }
  609 +
  610 + // Anexou Plano de Trabalho?
  611 + if (planoTrabalho.getArquivoPlanoTrabalho() != null) {
  612 + VRaptorRequestHolder.currentRequest().getServletContext()
  613 + .setAttribute("nivel_04", true);
  614 + } else {
  615 + VRaptorRequestHolder.currentRequest().getServletContext()
  616 + .setAttribute("nivel_04", false);
  617 + }
  618 +
  619 + // Processo finalizado?
  620 + if (questionario.isFlagEnviado()) {
  621 + VRaptorRequestHolder.currentRequest().getServletContext()
  622 + .setAttribute("nivel_05", true);
  623 + } else {
  624 + VRaptorRequestHolder.currentRequest().getServletContext()
  625 + .setAttribute("nivel_05", false);
  626 + }
  627 +
  628 + }
  629 +
  630 + public void confirmacaoEnvioEmailMPF() {
  631 +
  632 + }
  633 +
612 } 634 }
src/br/com/controller/contatoController.java
@@ -158,7 +158,7 @@ public class contatoController { @@ -158,7 +158,7 @@ public class contatoController {
158 } 158 }
159 159
160 } else { 160 } else {
161 - mensagemEnvio = "É preciso autorização para essa funcionalidade!"; 161 + mensagemEnvio = "É preciso autorizaçãoo para essa funcionalidade!";
162 } 162 }
163 163
164 result.include("mensagemEnvio", mensagemEnvio); 164 result.include("mensagemEnvio", mensagemEnvio);
src/br/com/controller/formularioOrgaoController.java
@@ -30,9 +30,6 @@ public class formularioOrgaoController { @@ -30,9 +30,6 @@ public class formularioOrgaoController {
30 private String path; 30 private String path;
31 private ServletContext application; 31 private ServletContext application;
32 32
33 - public formularioOrgaoController() {  
34 -  
35 - }  
36 33
37 public formularioOrgaoController(Result result, Validator validator, ServletContext application) { 34 public formularioOrgaoController(Result result, Validator validator, ServletContext application) {
38 this.result = result; 35 this.result = result;
@@ -59,8 +56,8 @@ public class formularioOrgaoController { @@ -59,8 +56,8 @@ public class formularioOrgaoController {
59 56
60 verificarPosicaoUsuario(questionario); 57 verificarPosicaoUsuario(questionario);
61 58
62 - if (!questionario.isFlagEnviado()) {  
63 - if (!hashDao.verificarDataExpirada(path, valorHash)) { 59 + // if (!questionario.isFlagEnviado()) {
  60 + //if (!hashDao.verificarDataExpirada(path, valorHash)) {
64 61
65 mensagemValidacaoCampos = validacao.validarHash(path, valorHash); 62 mensagemValidacaoCampos = validacao.validarHash(path, valorHash);
66 63
@@ -124,30 +121,35 @@ public class formularioOrgaoController { @@ -124,30 +121,35 @@ public class formularioOrgaoController {
124 } 121 }
125 } 122 }
126 123
127 - } else {  
128 - validacao = new Validacao();  
129 - validacao.setCampo("valorHash");  
130 - validacao.setMensagem("ATENÇÃO: O prazo para o preenchimento do formulário está expirado."); 124 + // } else {
  125 + // validacao = new Validacao();
  126 + // validacao.setCampo("valorHash");
  127 + // validacao.setMensagem("ATENÇÃO: O prazo para o preenchimento do formulário está expirado.");
131 128
132 - mensagemValidacaoCampos.add(validacao); 129 + // mensagemValidacaoCampos.add(validacao);
133 130
134 - result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);  
135 - this.validator.add(new ValidationMessage("", ""));  
136 - this.validator.onErrorUsePageOf(loginController.class).login();  
137 - } 131 + // result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);
  132 + // this.validator.add(new ValidationMessage("", ""));
  133 + // this.validator.onErrorUsePageOf(loginController.class).login();
  134 + // }
138 135
139 - } else {  
140 - validacao = new Validacao(); 136 + VRaptorRequestHolder.currentRequest().getServletContext().setAttribute("flagEnviado", false);
  137 +
  138 + //} else {
  139 +
  140 + /* validacao = new Validacao();
141 validacao.setCampo("valorHash"); 141 validacao.setCampo("valorHash");
142 validacao 142 validacao
143 - .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."); 143 + .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.");
144 144
145 mensagemValidacaoCampos.add(validacao); 145 mensagemValidacaoCampos.add(validacao);
146 146
147 result.include("mensagemValidacaoCampos", mensagemValidacaoCampos); 147 result.include("mensagemValidacaoCampos", mensagemValidacaoCampos);
148 this.validator.add(new ValidationMessage("", "")); 148 this.validator.add(new ValidationMessage("", ""));
149 - this.validator.onErrorUsePageOf(loginController.class).login();  
150 - } 149 + this.validator.onErrorUsePageOf(loginController.class).login();*/
  150 +
  151 +
  152 + //}
151 } 153 }
152 154
153 private void setValorCamposUrl(String nomeCampo, String valorCampo) { 155 private void setValorCamposUrl(String nomeCampo, String valorCampo) {
src/br/com/controller/indexController.java
@@ -129,7 +129,12 @@ public class indexController { @@ -129,7 +129,12 @@ public class indexController {
129 result.include("hEmail", hEmail); 129 result.include("hEmail", hEmail);
130 VRaptorRequestHolder.currentRequest().getServletContext() 130 VRaptorRequestHolder.currentRequest().getServletContext()
131 .setAttribute("valorHash", questionario.getHashAutenticacao()); 131 .setAttribute("valorHash", questionario.getHashAutenticacao());
132 - 132 +
  133 + result.include("flagEnviado", questionario.isFlagEnviado());
  134 +
  135 + VRaptorRequestHolder.currentRequest().getServletContext()
  136 + .setAttribute("flagEnviado", questionario.getHashAutenticacao());
  137 +
133 if (this.mensagemValidacaoCamposOrgao.size() > 0) { 138 if (this.mensagemValidacaoCamposOrgao.size() > 0) {
134 result.include("mensagemValidacaoCamposOrgao", mensagemValidacaoCamposOrgao); 139 result.include("mensagemValidacaoCamposOrgao", mensagemValidacaoCamposOrgao);
135 result.include("questionario", questionario); 140 result.include("questionario", questionario);
src/br/com/dao/PainelDao.java 0 → 100644
@@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
  1 +package br.com.dao;
  2 +
  3 +import java.sql.Connection;
  4 +import java.sql.ResultSet;
  5 +import java.sql.SQLException;
  6 +import java.sql.Statement;
  7 +
  8 +public class PainelDao {
  9 +
  10 + public Integer retornarTotalResposta(String path, Integer idPergunta, Integer idOpcaoResposta) {
  11 +
  12 + StringBuffer sql = new StringBuffer();
  13 + Connection con = Conexao.conecta(path);
  14 + Statement estado;
  15 + ResultSet rset = null;
  16 + Integer total = 0;
  17 +
  18 + try {
  19 +
  20 + estado = con.createStatement();
  21 +
  22 + estado.execute(sql.toString());
  23 +
  24 + sql.append(" SELECT count(distinct(id_questionario)) as total ");
  25 + sql.append(" FROM resposta_questionario where id_pergunta = " + idPergunta + " and id_opcao_resposta = " + idOpcaoResposta + "; ");
  26 +
  27 + rset = estado.executeQuery(sql.toString());
  28 +
  29 + while (rset.next()) {
  30 + total = rset.getInt("total");
  31 + }
  32 +
  33 + } catch (SQLException e) {
  34 +
  35 + e.printStackTrace();
  36 + }
  37 +
  38 + return total;
  39 + }
  40 +
  41 + public ResultSet retornarTotalNotas(String path, Integer idOpcaoResposta) {
  42 +
  43 + StringBuffer sql = new StringBuffer();
  44 + Connection con = Conexao.conecta(path);
  45 + Statement estado;
  46 + ResultSet rset = null;
  47 +
  48 + try {
  49 +
  50 + estado = con.createStatement();
  51 +
  52 + estado.execute(sql.toString());
  53 +
  54 + sql.append(" select texto_resposta from resposta_questionario where id_opcao_resposta = "+ idOpcaoResposta +"; ");
  55 +
  56 + rset = estado.executeQuery(sql.toString());
  57 +
  58 + } catch (SQLException e) {
  59 +
  60 + e.printStackTrace();
  61 + }
  62 +
  63 + return rset;
  64 + }
  65 +}