Commit 8e45acded7a2770956c880feffd9caa5fc783000
1 parent
e2cc875a
Exists in
master
Correções e método para voltar e para gerar código hash
Showing
16 changed files
with
478 additions
and
38 deletions
Show diff stats
WebContent/WEB-INF/jsp/formularioOrgao/formularioOrgao.jsp
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 | <t:baseLayout> |
7 | 7 | <jsp:body> |
8 | 8 | |
9 | - <!-- <div> | |
9 | + <div> | |
10 | 10 | <c:if test="${not empty mensagemValidacaoCamposOrgao}"> |
11 | 11 | <c:forEach items="${mensagemValidacaoCamposOrgao}" var="error"> |
12 | 12 | <div class="alinName"><a id="mensagemErroCampoVazio_${error.campo}" href="#${error.campo}">${error.mensagem}</a></div> |
... | ... | @@ -15,7 +15,7 @@ |
15 | 15 | </c:if> |
16 | 16 | </div> |
17 | 17 | |
18 | - --> | |
18 | + | |
19 | 19 | |
20 | 20 | <div class="funcionalidades"> |
21 | 21 | <ul class="breadcrumb"> | ... | ... |
WebContent/WEB-INF/jsp/index/formulario.jsp
... | ... | @@ -62,7 +62,11 @@ |
62 | 62 | |
63 | 63 | <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> |
64 | 64 | <input type="hidden" name="hEspacoReclamacao" value="9" /> |
65 | - <textarea name="espacoReclamacao" id="espacoReclamacao" rows="8" cols="100" maxlength="800">${espacoReclamacao}</textarea> | |
65 | + <textarea name="espacoReclamacao" id="espacoReclamacao" rows="8" cols="100" maxlength="800"> | |
66 | + <c:if test="${espacoReclamacao != null}"> | |
67 | + ${espacoReclamacao} | |
68 | + </c:if> | |
69 | + </textarea> | |
66 | 70 | <br><br> |
67 | 71 | |
68 | 72 | <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> |
... | ... | @@ -140,7 +144,12 @@ |
140 | 144 | <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> |
141 | 145 | <input type="hidden" name="hJustificativaRequisito" value="13" /> |
142 | 146 | <textarea name="justificativaRequisito" |
143 | - id="justificativaRequisito" rows="8" cols="100" maxlength="600">${justificativaRequisito}</textarea> | |
147 | + id="justificativaRequisito" rows="8" cols="100" maxlength="600"> | |
148 | + <c:if test="${justificativaRequisito != null}"> | |
149 | + ${justificativaRequisito} | |
150 | + </c:if> | |
151 | + </textarea> | |
152 | + | |
144 | 153 | |
145 | 154 | <br><br> |
146 | 155 | |
... | ... | @@ -368,10 +377,14 @@ |
368 | 377 | </fieldset> |
369 | 378 | <br> |
370 | 379 | |
371 | - <label for="outroAvaliador">12) Com relação à pergunta anterior, caso tenha respondido "Outros", mencione abaixo quais são estas ferramentas:</label> | |
380 | + <label for="outroAvaliador">12) Com relação à pergunta anterior, caso tenha respondido "Outro(s)", mencione abaixo quais são estas ferramentas:</label> | |
372 | 381 | <input type="hidden" name="hOutroAvaliador" value="18" /> |
373 | 382 | <textarea name="outroAvaliador" id="outroAvaliador" rows="8" |
374 | - cols="100" maxlength="600">${outroAvaliador}</textarea> | |
383 | + cols="100" maxlength="600"> | |
384 | + <c:if test="${outroAvaliador != null}"> | |
385 | + ${outroAvaliador} | |
386 | + </c:if> | |
387 | + </textarea> | |
375 | 388 | <br><br> |
376 | 389 | |
377 | 390 | <fieldset class="pergunta"> |
... | ... | @@ -597,13 +610,21 @@ |
597 | 610 | |
598 | 611 | <label for="justificativaAssistiva">19) Com relação à pergunta anterior: caso tenha respondido "Outro(s)" mencione abaixo quais são estas tecnologias:</label> |
599 | 612 | <input type="hidden" name="hJustificativaAssistiva" value="25" /> |
600 | - <textarea name="justificativaAssistiva" id="justificativaAssistiva" rows="8" cols="100" maxlength="600">${justificativaAssistiva}</textarea> | |
613 | + <textarea name="justificativaAssistiva" id="justificativaAssistiva" rows="8" cols="100" maxlength="600"> | |
614 | + <c:if test="${justificativaAssistiva != null}"> | |
615 | + ${justificativaAssistiva} | |
616 | + </c:if> | |
617 | + </textarea> | |
601 | 618 | |
602 | 619 | <br><br> |
603 | 620 | |
604 | 621 | <label for="dificuldadePrazo" class="obrigatorio">20) 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> |
605 | 622 | <input type="hidden" name="hDificuldadePrazo" value="26" /> |
606 | - <textarea name="dificuldadePrazo" id="dificuldadePrazo" rows="8" cols="100" maxlength="600" required>${dificuldadePrazo}</textarea><br><br> | |
623 | + <textarea name="dificuldadePrazo" id="dificuldadePrazo" rows="8" cols="100" maxlength="600" required> | |
624 | + <c:if test="${dificuldadePrazo != null}"> | |
625 | + ${dificuldadePrazo} | |
626 | + </c:if> | |
627 | + </textarea><br><br> | |
607 | 628 | |
608 | 629 | <div><h3>Leis, Documentos e Sítios referenciados neste formulário:</h3> |
609 | 630 | <ul> |
... | ... | @@ -622,7 +643,7 @@ |
622 | 643 | |
623 | 644 | |
624 | 645 | <div id="botao"> |
625 | - <a class="button" id="voltarF" href="${pageContext.request.contextPath}/formularioOrgao">Voltar</a> | |
646 | + | |
626 | 647 | <input type="submit" class="button" id="enviar" name="executar" value="Enviar"> |
627 | 648 | </div> |
628 | 649 | |
... | ... | @@ -637,6 +658,14 @@ |
637 | 658 | <input type="hidden" id="hEmailNovo" name="hEmailNovo" value="${hEmail}" /> |
638 | 659 | |
639 | 660 | </form> |
661 | + <form method="post" action="${pageContext.request.contextPath}/formularioOrgao"> | |
662 | + <input type="hidden" id="valorHash" name="valorHash" value="${valorHash}"/> | |
663 | + | |
664 | + <div id="botaoVoltar"> | |
665 | + <input type="submit" class="button" id="voltarF" name="executar" value="Voltar"> | |
666 | + | |
667 | + </div> | |
668 | + </form> | |
640 | 669 | |
641 | 670 | </div> |
642 | 671 | </jsp:body> | ... | ... |
... | ... | @@ -0,0 +1,32 @@ |
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 | +</head> | |
10 | +<body> | |
11 | + | |
12 | + | |
13 | +<form action="${pageContext.request.contextPath}/salvar-questionario" method="post" enctype="multipart/form-data"> | |
14 | + | |
15 | +<fieldset> | |
16 | +<legend>Questionário</legend> | |
17 | + | |
18 | +<label for="noOrgao">Órgão: </label> | |
19 | +<input type="text" id="noOrgao" name="noOrgao"><br><br> | |
20 | +<label for="emailDestinoOrgao">Email: </label> | |
21 | +<input type="text" id="emailDestinoOrgao" name="emailDestinoOrgao"><br><br> | |
22 | +<label for="dtInicioQuestionario">Início: </label> | |
23 | +<input type="date" id="dtInicioQuestionario" name="dtInicioQuestionario"><br><br> | |
24 | +<label for="dtFimQuestionario">Fim: </label> | |
25 | +<input type="date" id="dtFimQuestionario" name="dtFimQuestionario"><br><br> | |
26 | +<label for="file">Arquivo: </label> | |
27 | +<input type="file" id="file" name="file"><br><br> | |
28 | +<input type="submit" value="Salvar"> | |
29 | +</fieldset> | |
30 | +</form> | |
31 | +</body> | |
32 | +</html> | |
0 | 33 | \ No newline at end of file | ... | ... |
No preview for this file type
No preview for this file type
WebContent/WEB-INF/mail.properties
... | ... | @@ -5,4 +5,5 @@ prop.email.port = 25 |
5 | 5 | prop.email.authuser = "" |
6 | 6 | prop.email.authpass = "" |
7 | 7 | prop.email.auth = false |
8 | -prop.email.to = govbr@planejamento.gov.br | |
9 | 8 | \ No newline at end of file |
9 | +prop.email.to = "" | |
10 | +prop.email.from = govbr@planejamento.gov.br | |
10 | 11 | \ No newline at end of file | ... | ... |
... | ... | @@ -0,0 +1,118 @@ |
1 | +package br.com.controller; | |
2 | + | |
3 | +import java.io.BufferedReader; | |
4 | +import java.io.InputStreamReader; | |
5 | + | |
6 | +import javax.servlet.ServletContext; | |
7 | + | |
8 | +import br.com.model.utilities.Email; | |
9 | +import br.com.model.utilities.StringHelper; | |
10 | +import br.com.caelum.vraptor.Path; | |
11 | +import br.com.caelum.vraptor.Resource; | |
12 | +import br.com.caelum.vraptor.Result; | |
13 | +import br.com.caelum.vraptor.Validator; | |
14 | +import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; | |
15 | +import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder; | |
16 | +import br.com.dao.QuestionarioDao; | |
17 | +import br.com.model.entity.Contato; | |
18 | +import br.com.model.entity.EnvioEmailSemAutenticacao; | |
19 | +import br.com.model.entity.Questionario; | |
20 | +import br.com.util.DateUtil; | |
21 | + | |
22 | +@Resource | |
23 | +public class QuestionarioController { | |
24 | + | |
25 | + private Result result; | |
26 | + private Validator validator; | |
27 | + private ServletContext application; | |
28 | + | |
29 | + public QuestionarioController(Result result, Validator validator, ServletContext application) { | |
30 | + | |
31 | + this.result = result; | |
32 | + this.validator = validator; | |
33 | + this.application = application; | |
34 | + | |
35 | + } | |
36 | + | |
37 | + @Path("/questionario") | |
38 | + public void questionario() { | |
39 | + | |
40 | + } | |
41 | + | |
42 | + @Path("/salvar-questionario") | |
43 | + public void questionarioSalvar(String emailDestinoOrgao, UploadedFile file, | |
44 | + String dtInicioQuestionario, String dtFimQuestionario, String noOrgao) { | |
45 | + | |
46 | + String codigoHash = noOrgao + DateUtil.dataHoraAtual().toString().replace("/", "").replace(" ", "").replace(":", ""); | |
47 | + | |
48 | + Questionario questionario = new Questionario(); | |
49 | + // BufferedReader reader = new BufferedReader(new InputStreamReader(file.getFile())); | |
50 | + | |
51 | + questionario.setDtInicioQuestionario(dtInicioQuestionario); | |
52 | + questionario.setDtFimQuestionario(dtFimQuestionario); | |
53 | + questionario.setEmailDestinoOrgao(emailDestinoOrgao); | |
54 | + questionario.setHashAutenticacao(codigoHash); | |
55 | + questionario.setNoOrgao(noOrgao); | |
56 | + | |
57 | + QuestionarioDao questionarioDao = new QuestionarioDao(); | |
58 | + | |
59 | + if (questionarioDao.salvarQuestionario(file.getFile(), questionario)) { | |
60 | + Contato contato = new Contato(); | |
61 | + contato.setEmail(emailDestinoOrgao); | |
62 | + contato.setAssunto("assunto"); | |
63 | + contato.setMensagem("Código Hash:" + codigoHash); | |
64 | + contato.setNome("nome"); | |
65 | + | |
66 | + enviarHashPorEmail(contato); | |
67 | + | |
68 | + } | |
69 | + } | |
70 | + | |
71 | + | |
72 | + private String gerarCodigoHash() { | |
73 | + String codigoHash = ""; | |
74 | + | |
75 | + return codigoHash; | |
76 | + } | |
77 | + | |
78 | + private void enviarHashPorEmail(Contato contato) { | |
79 | + boolean emailEnviado = false; | |
80 | + | |
81 | + | |
82 | + String respSendEmail; | |
83 | + | |
84 | + Email email = new Email(this.application.getRealPath("") + "/WEB-INF/mail.properties"); | |
85 | + | |
86 | + EnvioEmailSemAutenticacao envioEmailSemAutenticacao = | |
87 | + new EnvioEmailSemAutenticacao(email.getHost(), Integer.toString(email.getPort())); | |
88 | + | |
89 | + respSendEmail = | |
90 | + envioEmailSemAutenticacao.sendMail(email.getFrom(), contato.getEmail(), | |
91 | + StringHelper.convertFromUTF8(contato.getAssunto()), | |
92 | + StringHelper.convertFromUTF8(contato.getMensagem()), email.getAuth(), | |
93 | + email.getAuthUser(), email.getAuthPass()); | |
94 | + | |
95 | + | |
96 | + /* | |
97 | + * String respSendEmail = email.sendEmail("Contato","govbr@planejamento.gov.br", | |
98 | + * contato.getNome(),contato.getEmail(),StringHelper.convertFromUTF8(contato.getAssunto()), | |
99 | + * StringHelper.convertFromUTF8(contato.getMensagem()), true); | |
100 | + */ | |
101 | + | |
102 | + if (respSendEmail.equals("")) { | |
103 | + result.include("mensagem", "Mensagem enviada com Sucesso"); | |
104 | + result.include("status", "success"); | |
105 | + | |
106 | + } else { | |
107 | + result.include("mensagem", "Não foi possível enviar a mensagem! Ocorreu o problema: " | |
108 | + + respSendEmail); | |
109 | + result.include("status", "error"); | |
110 | + } | |
111 | + | |
112 | + // this.result.redirectTo(ContatoController.class).index(); | |
113 | + | |
114 | + | |
115 | + | |
116 | + } | |
117 | + | |
118 | +} | ... | ... |
src/br/com/controller/formularioOrgaoController.java
... | ... | @@ -3,10 +3,13 @@ package br.com.controller; |
3 | 3 | import java.util.ArrayList; |
4 | 4 | import java.util.List; |
5 | 5 | |
6 | + | |
6 | 7 | import br.com.caelum.vraptor.Path; |
8 | +import br.com.caelum.vraptor.Post; | |
7 | 9 | import br.com.caelum.vraptor.Resource; |
8 | 10 | import br.com.caelum.vraptor.Result; |
9 | 11 | import br.com.caelum.vraptor.Validator; |
12 | +import br.com.caelum.vraptor.ioc.spring.VRaptorRequestHolder; | |
10 | 13 | import br.com.caelum.vraptor.validator.ValidationMessage; |
11 | 14 | import br.com.dao.HashDao; |
12 | 15 | import br.com.dao.RespostaQuestionarioDao; |
... | ... | @@ -31,6 +34,7 @@ public class formularioOrgaoController { |
31 | 34 | this.validator = validator; |
32 | 35 | } |
33 | 36 | |
37 | + | |
34 | 38 | @Path("/formularioOrgao") |
35 | 39 | public void formularioOrgao(String valorHash) { |
36 | 40 | |
... | ... | @@ -51,6 +55,9 @@ public class formularioOrgaoController { |
51 | 55 | |
52 | 56 | if (questionario.getDtInicioQuestionario() != null && !valorHash.equalsIgnoreCase("")) { |
53 | 57 | |
58 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
59 | + .setAttribute("valorHash", valorHash); | |
60 | + | |
54 | 61 | result.include("questionario", questionario); |
55 | 62 | RespostaQuestionarioDao respostaQuestionarioDao = new RespostaQuestionarioDao(); |
56 | 63 | ... | ... |
src/br/com/controller/indexController.java
... | ... | @@ -129,7 +129,9 @@ public class indexController { |
129 | 129 | result.include("hTelefone", hTelefone); |
130 | 130 | result.include("email", email); |
131 | 131 | result.include("hEmail", hEmail); |
132 | - | |
132 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
133 | + .setAttribute("valorHash", questionario.getHashAutenticacao()); | |
134 | + | |
133 | 135 | // Cria lista das amostragens |
134 | 136 | amostragemSiteQuestionario = new AmostragemSiteQuestionario(); |
135 | 137 | List<AmostragemSiteQuestionario> lsAmostragemSiteQuestionario = |
... | ... | @@ -393,7 +395,9 @@ public class indexController { |
393 | 395 | } |
394 | 396 | |
395 | 397 | if (lsAmostragemSiteQuestionario.size() > 0) { |
396 | - result.include("lsAmostragemSiteQuestionario", lsAmostragemSiteQuestionario); | |
398 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
399 | + .setAttribute("lsAmostragemSiteQuestionario", lsAmostragemSiteQuestionario); | |
400 | + //result.include("lsAmostragemSiteQuestionario", lsAmostragemSiteQuestionario); | |
397 | 401 | |
398 | 402 | // Fim cria lista das amostragens |
399 | 403 | |
... | ... | @@ -582,6 +586,14 @@ public class indexController { |
582 | 586 | |
583 | 587 | if (this.mensagemValidacaoCampos.size() > 0) { |
584 | 588 | result.include("mensagemValidacaoCampos", mensagemValidacaoCampos); |
589 | + List<AmostragemSiteQuestionario> lsAmostragemSiteQuestionario = new ArrayList<AmostragemSiteQuestionario>(); | |
590 | + | |
591 | + lsAmostragemSiteQuestionario = (List<AmostragemSiteQuestionario>) VRaptorRequestHolder.currentRequest().getServletContext() | |
592 | + .getAttribute("lsAmostragemSiteQuestionario"); | |
593 | + | |
594 | + VRaptorRequestHolder.currentRequest().getServletContext() | |
595 | + .setAttribute("lsAmostragemSiteQuestionario", lsAmostragemSiteQuestionario); | |
596 | + | |
585 | 597 | this.validator.add(new ValidationMessage("", "")); |
586 | 598 | this.validator.onErrorUsePageOf(indexController.class).formulario(hNoPessoa, noPessoa, |
587 | 599 | hCargoNovo, cargoNovo, hTelefoneNovo, telefoneNovo, hEmailNovo, emailNovo, ases_hAmbiente1, hAmbiente1, |
... | ... | @@ -594,6 +606,7 @@ public class indexController { |
594 | 606 | ases_hPagina44, hPagina44, ases_hAmbiente5, hAmbiente5, ases_hPagina51, hPagina51, |
595 | 607 | ases_hPagina52, hPagina52, ases_hPagina53, hPagina53, ases_hPagina54, hPagina54, |
596 | 608 | idQuestionario); |
609 | + | |
597 | 610 | } else { |
598 | 611 | |
599 | 612 | List<RespostaQuestionario> lsRespostaQuestionario = new ArrayList<RespostaQuestionario>(); | ... | ... |
src/br/com/dao/QuestionarioDao.java
1 | 1 | package br.com.dao; |
2 | 2 | |
3 | +import java.io.File; | |
4 | +import java.io.FileInputStream; | |
5 | +import java.io.FileNotFoundException; | |
6 | +import java.io.InputStream; | |
7 | +import java.security.NoSuchAlgorithmException; | |
3 | 8 | import java.sql.Connection; |
9 | +import java.sql.PreparedStatement; | |
4 | 10 | import java.sql.ResultSet; |
5 | 11 | import java.sql.SQLException; |
6 | 12 | import java.sql.Statement; |
13 | +import java.text.ParseException; | |
14 | +import java.util.Date; | |
15 | + | |
16 | +import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; | |
17 | +import br.com.model.entity.Questionario; | |
18 | +import br.com.util.DateUtil; | |
19 | +import br.com.util.GeradorCodigoHash; | |
7 | 20 | |
8 | 21 | public class QuestionarioDao { |
9 | - | |
10 | - | |
22 | + | |
23 | + | |
11 | 24 | public ResultSet retornarQuestionario(int idQuestionario) { |
12 | 25 | |
13 | 26 | StringBuffer sql = new StringBuffer(); |
... | ... | @@ -20,8 +33,8 @@ public class QuestionarioDao { |
20 | 33 | |
21 | 34 | estado.execute(sql.toString()); |
22 | 35 | sql.append(" SELECT id_questionario, dt_inicio_questionario, dt_fim_questionario, no_orgao, hash_autenticacao, questionario_respondido "); |
23 | - sql.append(" FROM public.questionario where id_questionario = "+ idQuestionario +";"); | |
24 | - | |
36 | + sql.append(" FROM public.questionario where id_questionario = " + idQuestionario + ";"); | |
37 | + | |
25 | 38 | rset = estado.executeQuery(sql.toString()); |
26 | 39 | |
27 | 40 | return rset; |
... | ... | @@ -29,7 +42,7 @@ public class QuestionarioDao { |
29 | 42 | e.printStackTrace(); |
30 | 43 | return null; |
31 | 44 | |
32 | - }finally { | |
45 | + } finally { | |
33 | 46 | if (con != null) { |
34 | 47 | try { |
35 | 48 | con.close(); |
... | ... | @@ -40,4 +53,77 @@ public class QuestionarioDao { |
40 | 53 | } |
41 | 54 | |
42 | 55 | } |
56 | + | |
57 | + public boolean salvarQuestionario(InputStream file, Questionario questionario) { | |
58 | + | |
59 | + //File file = new File(caminhoArquivo); | |
60 | + | |
61 | + Connection con = null; | |
62 | + con = Conexao.conecta(); | |
63 | + int resultado = 0; | |
64 | + StringBuffer sql; | |
65 | + | |
66 | + boolean salvoComSucesso = false; | |
67 | + | |
68 | + try { | |
69 | + | |
70 | + String hashAutenticacao = GeradorCodigoHash.gerarHash(questionario.getHashAutenticacao()); | |
71 | + | |
72 | + // FileInputStream fileIn = new FileInputStream(file); | |
73 | + Date dtInicioQuestionario = DateUtil.dataFormatada(questionario.getDtInicioQuestionario()); | |
74 | + Date dtFimQuestionario = DateUtil.dataFormatada(questionario.getDtFimQuestionario()); | |
75 | + java.sql.Date sqlDtInicioQuestionario = new java.sql.Date(dtInicioQuestionario.getTime()); | |
76 | + java.sql.Date sqlDtFimQuestionario = new java.sql.Date(dtFimQuestionario.getTime()); | |
77 | + | |
78 | + if (con != null) { | |
79 | + | |
80 | + sql = new StringBuffer(); | |
81 | + sql.append(" INSERT INTO public.questionario( "); | |
82 | + sql.append(" dt_inicio_questionario, dt_fim_questionario, "); | |
83 | + sql.append(" no_orgao, hash_autenticacao, questionario_respondido, email_destino_orgao, "); | |
84 | + sql.append(" arquivo_oficio_autorizacao) "); | |
85 | + sql.append(" VALUES (?, ?, ?, ?, ?, ?, ?); "); | |
86 | + | |
87 | + // cria statement para executar a query | |
88 | + PreparedStatement estado = con.prepareStatement(sql.toString()); | |
89 | + estado.setDate(1, sqlDtInicioQuestionario); | |
90 | + estado.setDate(2, sqlDtFimQuestionario); | |
91 | + estado.setString(3, questionario.getNoOrgao()); | |
92 | + estado.setString(4, hashAutenticacao); | |
93 | + estado.setBoolean(5, false); | |
94 | + estado.setString(6, questionario.getEmailDestinoOrgao()); | |
95 | + estado.setBinaryStream(7, file); | |
96 | + | |
97 | + resultado = estado.executeUpdate(); | |
98 | + | |
99 | + if (resultado == 0) { | |
100 | + salvoComSucesso = false; | |
101 | + } else { | |
102 | + | |
103 | + salvoComSucesso = true; | |
104 | + } | |
105 | + } | |
106 | + | |
107 | + return salvoComSucesso; | |
108 | + | |
109 | + } catch (SQLException e) { | |
110 | + e.printStackTrace(); | |
111 | + return salvoComSucesso; | |
112 | + } catch (ParseException e) { | |
113 | + e.printStackTrace(); | |
114 | + return salvoComSucesso; | |
115 | + } catch (NoSuchAlgorithmException e) { | |
116 | + e.printStackTrace(); | |
117 | + return salvoComSucesso; | |
118 | + } finally { | |
119 | + if (con != null) { | |
120 | + try { | |
121 | + con.close(); | |
122 | + } catch (SQLException e) { | |
123 | + e.printStackTrace(); | |
124 | + } | |
125 | + } | |
126 | + } | |
127 | + } | |
128 | + | |
43 | 129 | } | ... | ... |
src/br/com/model/entity/Questionario.java
1 | 1 | package br.com.model.entity; |
2 | 2 | |
3 | -import java.sql.Date; | |
4 | 3 | import java.sql.ResultSet; |
5 | 4 | |
6 | -import br.com.dao.PerguntaDao; | |
5 | +import br.com.caelum.vraptor.interceptor.multipart.UploadedFile; | |
7 | 6 | import br.com.dao.QuestionarioDao; |
8 | 7 | |
9 | 8 | public class Questionario { |
... | ... | @@ -14,6 +13,8 @@ public class Questionario { |
14 | 13 | private String noOrgao; |
15 | 14 | private String hashAutenticacao; |
16 | 15 | private boolean questionario_respondido; |
16 | + private String emailDestinoOrgao; | |
17 | + private UploadedFile arquivoOficioAutorizacao; | |
17 | 18 | |
18 | 19 | |
19 | 20 | public Questionario() { |
... | ... | @@ -88,6 +89,22 @@ public class Questionario { |
88 | 89 | this.questionario_respondido = questionario_respondido; |
89 | 90 | } |
90 | 91 | |
91 | - | |
92 | + public String getEmailDestinoOrgao() { | |
93 | + return emailDestinoOrgao; | |
94 | + } | |
95 | + | |
96 | + public void setEmailDestinoOrgao(String emailDestinoOrgao) { | |
97 | + this.emailDestinoOrgao = emailDestinoOrgao; | |
98 | + } | |
99 | + | |
100 | + public UploadedFile getArquivoOficioAutorizacao() { | |
101 | + return arquivoOficioAutorizacao; | |
102 | + } | |
103 | + | |
104 | + public void setArquivoOficioAutorizacao(UploadedFile arquivoOficioAutorizacao) { | |
105 | + this.arquivoOficioAutorizacao = arquivoOficioAutorizacao; | |
106 | + } | |
107 | + | |
108 | + | |
92 | 109 | |
93 | 110 | } | ... | ... |
src/br/com/model/utilities/Email.java
... | ... | @@ -26,6 +26,7 @@ public class Email { |
26 | 26 | @Getter private String auth; |
27 | 27 | @Getter private int port; |
28 | 28 | @Getter private String to; |
29 | + @Getter private String from; | |
29 | 30 | |
30 | 31 | private MultiPartEmail email; |
31 | 32 | private EmailAttachment anexo; |
... | ... | @@ -42,6 +43,7 @@ public class Email { |
42 | 43 | this.authPass = prop.getProperty("prop.email.authpass"); |
43 | 44 | this.auth = prop.getProperty("prop.email.auth"); |
44 | 45 | this.to = prop.getProperty("prop.email.to"); |
46 | + this.from = prop.getProperty("prop.email.from"); | |
45 | 47 | |
46 | 48 | } catch (IOException e) { |
47 | 49 | // TODO Auto-generated catch block |
... | ... | @@ -75,7 +77,7 @@ public class Email { |
75 | 77 | * @throws EmailException |
76 | 78 | * @throws MalformedURLException |
77 | 79 | * @return String*/ |
78 | - public String sendEmail( String nomeDestinatario, String emailDestinatario, String nomeRemetente, String emailRemetente, String assunto, String mensagem, boolean isHtml) throws EmailException { | |
80 | + public String sendEmail2( String nomeDestinatario, String emailDestinatario, String nomeRemetente, String emailRemetente, String assunto, String mensagem, boolean isHtml) throws EmailException { | |
79 | 81 | |
80 | 82 | this.email.setHostName(this.host); // o servidor SMTP para envio do e-mail |
81 | 83 | this.email.addTo(emailDestinatario, nomeDestinatario); //destinat�rio | ... | ... |
src/br/com/util/DateUtil.java
1 | 1 | package br.com.util; |
2 | 2 | |
3 | 3 | import java.text.DateFormat; |
4 | +import java.text.ParseException; | |
4 | 5 | import java.text.SimpleDateFormat; |
5 | 6 | import java.util.Date; |
6 | 7 | |
... | ... | @@ -10,5 +11,11 @@ public class DateUtil { |
10 | 11 | DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); |
11 | 12 | return dateFormat.format(new Date()); |
12 | 13 | } |
14 | + | |
15 | + public static Date dataFormatada(String data) throws ParseException { | |
16 | + DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); | |
17 | + Date dataFormatada = dateFormat.parse(data); | |
18 | + return dataFormatada; | |
19 | +} | |
13 | 20 | |
14 | 21 | } | ... | ... |
... | ... | @@ -0,0 +1,27 @@ |
1 | +package br.com.util; | |
2 | + | |
3 | +import java.security.MessageDigest; | |
4 | +import java.security.NoSuchAlgorithmException; | |
5 | + | |
6 | + | |
7 | +public class GeradorCodigoHash { | |
8 | + | |
9 | + public static String gerarHash(String codigoAcesso) throws NoSuchAlgorithmException { | |
10 | + | |
11 | + MessageDigest md = MessageDigest.getInstance("SHA-1"); | |
12 | + md.update(codigoAcesso.getBytes()); | |
13 | + return stringHexa(md.digest()); | |
14 | + | |
15 | + } | |
16 | + | |
17 | + private static String stringHexa(byte[] bytes) { | |
18 | + StringBuilder s = new StringBuilder(); | |
19 | + for (int i = 0; i < bytes.length; i++) { | |
20 | + int parteAlta = ((bytes[i] >> 4) & 0xf) << 4; | |
21 | + int parteBaixa = bytes[i] & 0xf; | |
22 | + if (parteAlta == 0) s.append('0'); | |
23 | + s.append(Integer.toHexString(parteAlta | parteBaixa)); | |
24 | + } | |
25 | + return s.toString(); | |
26 | + } | |
27 | +} | ... | ... |
... | ... | @@ -0,0 +1,14 @@ |
1 | +package br.com.util; | |
2 | + | |
3 | +import java.io.FileInputStream; | |
4 | +import java.io.IOException; | |
5 | +import java.util.Properties; | |
6 | + | |
7 | +public class ManagerProperties { | |
8 | + public Properties getProp(String path) throws IOException { | |
9 | + Properties props = new Properties(); | |
10 | + FileInputStream file = new FileInputStream(path); | |
11 | + props.load(file); | |
12 | + return props; | |
13 | +} | |
14 | +} | ... | ... |
src/br/com/util/Validacao.java
... | ... | @@ -403,21 +403,30 @@ public class Validacao { |
403 | 403 | if (formulario.getPerguntaAcessibilidade() == null) { |
404 | 404 | validacao = new Validacao(); |
405 | 405 | validacao.campo = "perguntaAcessibilidade"; |
406 | - validacao.mensagem = "A pergunta de numero '1' precisa ser respondida!"; | |
406 | + validacao.mensagem = "A pergunta de número '1' precisa ser respondida!"; | |
407 | 407 | mensagens.add(validacao); |
408 | 408 | } |
409 | 409 | |
410 | 410 | if (formulario.getReclamacao() == null) { |
411 | 411 | validacao = new Validacao(); |
412 | 412 | validacao.campo = "reclamacao"; |
413 | - validacao.mensagem = "A pergunta de numero '2' precisa ser respondida!"; | |
413 | + validacao.mensagem = "A pergunta de número '2' precisa ser respondida!"; | |
414 | 414 | mensagens.add(validacao); |
415 | 415 | } |
416 | 416 | if (formulario.getReclamacao() != null && formulario.getReclamacao().equalsIgnoreCase("2")) { |
417 | 417 | if (formulario.getEspacoReclamacao() == null) { |
418 | 418 | validacao = new Validacao(); |
419 | 419 | validacao.campo = "espacoReclamacao"; |
420 | - validacao.mensagem = "A pergunta de numero '3' precisa ser respondida!"; | |
420 | + validacao.mensagem = "A pergunta de número '3' precisa ser respondida!"; | |
421 | + mensagens.add(validacao); | |
422 | + | |
423 | + } | |
424 | + } | |
425 | + if (formulario.getReclamacao() != null && formulario.getReclamacao().equalsIgnoreCase("3")) { | |
426 | + if (formulario.getEspacoReclamacao() != null && formulario.getEspacoReclamacao() != " ") { | |
427 | + validacao = new Validacao(); | |
428 | + validacao.campo = "espacoReclamacao"; | |
429 | + validacao.mensagem = "A pergunta de número '3' somente poderá ser respondida, caso não tenha escolhido 'não' na questão '2'!"; | |
421 | 430 | mensagens.add(validacao); |
422 | 431 | |
423 | 432 | } |
... | ... | @@ -427,7 +436,7 @@ public class Validacao { |
427 | 436 | if (formulario.getPerguntaEstimulo() == null) { |
428 | 437 | validacao = new Validacao(); |
429 | 438 | validacao.campo = "perguntaEstimulo"; |
430 | - validacao.mensagem = "A pergunta de numero '4' precisa ser respondida!"; | |
439 | + validacao.mensagem = "A pergunta de número '4' precisa ser respondida!"; | |
431 | 440 | mensagens.add(validacao); |
432 | 441 | |
433 | 442 | } |
... | ... | @@ -437,25 +446,45 @@ public class Validacao { |
437 | 446 | if (formulario.getCurso().length == 0) { |
438 | 447 | validacao = new Validacao(); |
439 | 448 | validacao.campo = "curso"; |
440 | - validacao.mensagem = "A pergunta de numero '5' precisa ser respondida!"; | |
449 | + validacao.mensagem = "A pergunta de número '5' precisa ser respondida!"; | |
450 | + mensagens.add(validacao); | |
451 | + } | |
452 | + } | |
453 | + if (formulario.getPerguntaEstimulo() != null | |
454 | + && formulario.getPerguntaEstimulo().equalsIgnoreCase("5") || formulario.getPerguntaEstimulo().equalsIgnoreCase("6")) { | |
455 | + if (formulario.getCurso().length > 0) { | |
456 | + validacao = new Validacao(); | |
457 | + validacao.campo = "curso"; | |
458 | + validacao.mensagem = "A pergunta de número '5' somente poderá ser respondida, caso tenha escolhido 'sim' na questão '4'!"; | |
441 | 459 | mensagens.add(validacao); |
442 | 460 | } |
443 | 461 | } |
444 | 462 | |
445 | - if (formulario.getRequisito().equalsIgnoreCase("11")) { | |
463 | + if (formulario.getRequisito().equalsIgnoreCase("13")) { | |
446 | 464 | if (formulario.getJustificativaRequisito() == null) { |
447 | 465 | validacao = new Validacao(); |
448 | 466 | validacao.campo = "justificativaRequisito"; |
449 | - validacao.mensagem = "A pergunta de numero '7' precisa ser respondida!"; | |
467 | + validacao.mensagem = "A pergunta de número '7' precisa ser respondida!"; | |
468 | + mensagens.add(validacao); | |
469 | + | |
470 | + } | |
471 | + }else | |
472 | + { | |
473 | + if (formulario.getJustificativaRequisito() != null && formulario.getJustificativaRequisito() != " ") { | |
474 | + validacao = new Validacao(); | |
475 | + validacao.campo = "justificativaRequisito"; | |
476 | + validacao.mensagem = "A pergunta de número '7' somente poderá ser respondida, caso tenha escolhido 'Sim, observamos os requisitos de outros modelos que não os especificados acima' na questão '6'!"; | |
450 | 477 | mensagens.add(validacao); |
451 | 478 | |
452 | 479 | } |
453 | 480 | } |
481 | + | |
482 | + | |
454 | 483 | |
455 | 484 | if (formulario.getPerguntaValidacao() == null) { |
456 | 485 | validacao = new Validacao(); |
457 | 486 | validacao.campo = "perguntaValidacao"; |
458 | - validacao.mensagem = "A pergunta de numero '9' precisa ser respondida!"; | |
487 | + validacao.mensagem = "A pergunta de número '9' precisa ser respondida!"; | |
459 | 488 | mensagens.add(validacao); |
460 | 489 | |
461 | 490 | } |
... | ... | @@ -465,17 +494,26 @@ public class Validacao { |
465 | 494 | if (formulario.getSimValidacao() == null || formulario.getSimValidacao().length == 0) { |
466 | 495 | validacao = new Validacao(); |
467 | 496 | validacao.campo = "simValidacao"; |
468 | - validacao.mensagem = "A pergunta de numero '10' precisa ser respondida!"; | |
497 | + validacao.mensagem = "A pergunta de número '10' precisa ser respondida!"; | |
469 | 498 | mensagens.add(validacao); |
470 | 499 | |
471 | 500 | } |
472 | 501 | } |
502 | + if (formulario.getPerguntaValidacao() != null | |
503 | + && !formulario.getPerguntaValidacao().equalsIgnoreCase("2")) { | |
504 | + if (formulario.getSimValidacao().length > 0) { | |
505 | + validacao = new Validacao(); | |
506 | + validacao.campo = "simValidacao"; | |
507 | + validacao.mensagem = "A pergunta de número '10' somente poderá ser respondida, caso tenha escolhido 'sim' na questão '9'!"; | |
508 | + mensagens.add(validacao); | |
473 | 509 | |
510 | + } | |
511 | + } | |
474 | 512 | if (formulario.getFerramentaValidacao() == null |
475 | 513 | || formulario.getFerramentaValidacao().length == 0) { |
476 | 514 | validacao = new Validacao(); |
477 | 515 | validacao.campo = "ferramentaValidacao"; |
478 | - validacao.mensagem = "A pergunta de numero '11' precisa ser respondida!"; | |
516 | + validacao.mensagem = "A pergunta de número '11' precisa ser respondida!"; | |
479 | 517 | mensagens.add(validacao); |
480 | 518 | |
481 | 519 | } |
... | ... | @@ -488,17 +526,41 @@ public class Validacao { |
488 | 526 | if (formulario.getOutroAvaliador() == null) { |
489 | 527 | validacao = new Validacao(); |
490 | 528 | validacao.campo = "outroAvaliador"; |
491 | - validacao.mensagem = "A pergunta de numero '12' precisa ser respondida!"; | |
529 | + validacao.mensagem = "A pergunta de número '12' precisa ser respondida!"; | |
492 | 530 | mensagens.add(validacao); |
493 | 531 | |
494 | 532 | } |
495 | 533 | } |
496 | 534 | } |
497 | 535 | } |
536 | + | |
537 | + if (formulario.getFerramentaValidacao() != null | |
538 | + && formulario.getFerramentaValidacao().length > 0) { | |
539 | + boolean responderQuestao12 = false; | |
540 | + | |
541 | + for (String ferramentaValidacao : formulario.getFerramentaValidacao()) { | |
542 | + if (ferramentaValidacao.equalsIgnoreCase("34")) { | |
543 | + responderQuestao12 = true; | |
544 | + } | |
545 | + | |
546 | + } | |
547 | + if(responderQuestao12 == false) | |
548 | + { | |
549 | + if (formulario.getOutroAvaliador() != null && formulario.getOutroAvaliador() != " ") { | |
550 | + validacao = new Validacao(); | |
551 | + validacao.campo = "outroAvaliador"; | |
552 | + validacao.mensagem = "A pergunta de número '12' somente poderá ser respondida, caso tenha escolhido 'Outro(s)' na questão '11'!"; | |
553 | + mensagens.add(validacao); | |
554 | + | |
555 | + } | |
556 | + } | |
557 | + } | |
558 | + | |
559 | + | |
498 | 560 | if (formulario.getNivelWcag() == null) { |
499 | 561 | validacao = new Validacao(); |
500 | 562 | validacao.campo = "nivelWcag"; |
501 | - validacao.mensagem = "A pergunta de numero '14' precisa ser respondida!"; | |
563 | + validacao.mensagem = "A pergunta de número '14' precisa ser respondida!"; | |
502 | 564 | mensagens.add(validacao); |
503 | 565 | |
504 | 566 | } |
... | ... | @@ -506,7 +568,7 @@ public class Validacao { |
506 | 568 | if (formulario.getDeficiencias() == null || formulario.getDeficiencias().length == 0) { |
507 | 569 | validacao = new Validacao(); |
508 | 570 | validacao.campo = "deficiencias"; |
509 | - validacao.mensagem = "A pergunta de numero '16' precisa ser respondida!"; | |
571 | + validacao.mensagem = "A pergunta de número '16' precisa ser respondida!"; | |
510 | 572 | mensagens.add(validacao); |
511 | 573 | |
512 | 574 | } |
... | ... | @@ -514,7 +576,7 @@ public class Validacao { |
514 | 576 | if (formulario.getFuncionalidade() == null) { |
515 | 577 | validacao = new Validacao(); |
516 | 578 | validacao.campo = "funcionalidade"; |
517 | - validacao.mensagem = "A pergunta de numero '17' precisa ser respondida!"; | |
579 | + validacao.mensagem = "A pergunta de número '17' precisa ser respondida!"; | |
518 | 580 | mensagens.add(validacao); |
519 | 581 | |
520 | 582 | } |
... | ... | @@ -522,7 +584,7 @@ public class Validacao { |
522 | 584 | if (formulario.getAssistiva() == null || formulario.getAssistiva().length == 0) { |
523 | 585 | validacao = new Validacao(); |
524 | 586 | validacao.campo = "assistiva"; |
525 | - validacao.mensagem = "A pergunta de numero '18' precisa ser respondida!"; | |
587 | + validacao.mensagem = "A pergunta de número '18' precisa ser respondida!"; | |
526 | 588 | mensagens.add(validacao); |
527 | 589 | |
528 | 590 | } |
... | ... | @@ -534,18 +596,43 @@ public class Validacao { |
534 | 596 | if (formulario.getJustificativaAssistiva() == null) { |
535 | 597 | validacao = new Validacao(); |
536 | 598 | validacao.campo = "justificativaAssistiva"; |
537 | - validacao.mensagem = "A pergunta de numero '19' precisa ser respondida!"; | |
599 | + validacao.mensagem = "A pergunta de número '19' precisa ser respondida!"; | |
538 | 600 | mensagens.add(validacao); |
539 | 601 | } |
540 | 602 | } |
541 | 603 | } |
542 | 604 | } |
543 | 605 | |
606 | + if (formulario.getAssistiva() != null | |
607 | + && formulario.getAssistiva().length > 0) { | |
608 | + boolean responderQuestao19 = false; | |
609 | + | |
610 | + for (String assistiva : formulario.getAssistiva()) { | |
611 | + if (assistiva.equalsIgnoreCase("34")) { | |
612 | + responderQuestao19 = true; | |
613 | + } | |
614 | + | |
615 | + } | |
616 | + if(responderQuestao19 == false) | |
617 | + { | |
618 | + if (formulario.getJustificativaAssistiva() != null && formulario.getJustificativaAssistiva() != " ") { | |
619 | + validacao = new Validacao(); | |
620 | + validacao.campo = "justificativaAssistiva"; | |
621 | + validacao.mensagem = "A pergunta de número '19' somente poderá ser respondida, caso tenha escolhido 'Outro(s)' na questão '18'!"; | |
622 | + mensagens.add(validacao); | |
623 | + | |
624 | + } | |
625 | + } | |
626 | + } | |
627 | + | |
628 | + | |
629 | + | |
630 | + | |
544 | 631 | |
545 | 632 | if (formulario.getDificuldadePrazo() == null) { |
546 | 633 | validacao = new Validacao(); |
547 | 634 | validacao.campo = "dificuldadePrazo"; |
548 | - validacao.mensagem = "A pergunta de numero '20' precisa ser respondida!"; | |
635 | + validacao.mensagem = "A pergunta de número '20' precisa ser respondida!"; | |
549 | 636 | mensagens.add(validacao); |
550 | 637 | |
551 | 638 | } | ... | ... |