Rev 1425 | Rev 1429 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1425 | Rev 1426 | ||
---|---|---|---|
1 | package pt.estgp.estgweb.services.questionarios; |
1 | package pt.estgp.estgweb.services.questionarios; |
2 | 2 | ||
3 | import org.apache.log4j.Logger; |
3 | import org.apache.log4j.Logger; |
4 | import pt.estgp.estgweb.domain.*; |
4 | import pt.estgp.estgweb.domain.*; |
5 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
5 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
6 | import pt.estgp.estgweb.domain.dao.impl.AnnouncementDaoImpl; |
6 | import pt.estgp.estgweb.domain.dao.impl.AnnouncementDaoImpl; |
7 | import pt.estgp.estgweb.domain.views.QuestionarioView; |
7 | import pt.estgp.estgweb.domain.views.QuestionarioView; |
8 | import pt.estgp.estgweb.services.email.EMAILJob; |
8 | import pt.estgp.estgweb.services.email.EMAILJob; |
9 | import pt.estgp.estgweb.services.email.SendEmailService; |
9 | import pt.estgp.estgweb.services.email.SendEmailService; |
10 | import pt.estgp.estgweb.services.jobs.JobScheduleService; |
10 | import pt.estgp.estgweb.services.jobs.JobScheduleService; |
11 | import pt.estgp.estgweb.utils.Email; |
11 | import pt.estgp.estgweb.utils.Email; |
12 | import pt.estgp.estgweb.web.exceptions.NotAuthorizedException; |
12 | import pt.estgp.estgweb.web.exceptions.NotAuthorizedException; |
13 | import pt.utl.ist.berserk.logic.serviceManager.IService; |
13 | import pt.utl.ist.berserk.logic.serviceManager.IService; |
14 | 14 | ||
15 | import java.util.ArrayList; |
- | |
16 | import java.util.Iterator; |
- | |
17 | import java.util.List; |
15 | import java.util.*; |
18 | 16 | ||
19 | /** |
17 | /** |
20 | * Created by jorgemachado on 21/03/16. |
18 | * Created by jorgemachado on 21/03/16. |
21 | */ |
19 | */ |
22 | public class QuestionariosService implements IService |
20 | public class QuestionariosService implements IService |
23 | { |
21 | { |
24 | 22 | ||
25 | private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(QuestionariosService.class); |
23 | private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(QuestionariosService.class); |
26 | 24 | ||
27 | //NEW QUESTIONARIOS COME BY THIS SERVICE |
25 | //NEW QUESTIONARIOS COME BY THIS SERVICE |
28 | public QuestionarioImpl newQuestionarioForm(QuestionarioImpl qform, UserSession userSession) throws NotAuthorizedException |
26 | public QuestionarioImpl newQuestionarioForm(QuestionarioImpl qform, UserSession userSession) throws NotAuthorizedException |
29 | { |
27 | { |
30 | if(qform.getQuestionarioHistoryDrive().getId() > 0) |
28 | if(qform.getQuestionarioHistoryDrive().getId() > 0) |
31 | { |
29 | { |
32 | QuestionarioHistoryDrive hist = DaoFactory.getQuestionarioHistoryDriveDaoImpl().load(qform.getQuestionarioHistoryDrive().getId()); |
30 | QuestionarioHistoryDrive hist = DaoFactory.getQuestionarioHistoryDriveDaoImpl().load(qform.getQuestionarioHistoryDrive().getId()); |
33 | qform.setQuestionarioHistoryDrive(hist); |
31 | qform.setQuestionarioHistoryDrive(hist); |
34 | } |
32 | } |
35 | else |
33 | else |
36 | { |
34 | { |
37 | qform.setQuestionarioHistoryDrive(null); |
35 | qform.setQuestionarioHistoryDrive(null); |
38 | } |
36 | } |
39 | DaoFactory.getQuestionarioDaoImpl().save(qform); |
37 | DaoFactory.getQuestionarioDaoImpl().save(qform); |
40 | return qform; |
38 | return qform; |
41 | } |
39 | } |
42 | public QuestionarioImpl saveQuestionarioForm(QuestionarioImpl qform, UserSession userSession, QuestionarioImpl questionarioCleared) throws NotAuthorizedException { |
40 | public QuestionarioImpl saveQuestionarioForm(QuestionarioImpl qform, UserSession userSession, QuestionarioImpl questionarioCleared) throws NotAuthorizedException { |
43 | if(qform.getQuestionarioHistoryDrive().getId() > 0) |
41 | if(qform.getQuestionarioHistoryDrive().getId() > 0) |
44 | { |
42 | { |
45 | QuestionarioHistoryDrive hist = DaoFactory.getQuestionarioHistoryDriveDaoImpl().load(qform.getQuestionarioHistoryDrive().getId()); |
43 | QuestionarioHistoryDrive hist = DaoFactory.getQuestionarioHistoryDriveDaoImpl().load(qform.getQuestionarioHistoryDrive().getId()); |
46 | qform.setQuestionarioHistoryDrive(hist); |
44 | qform.setQuestionarioHistoryDrive(hist); |
47 | } |
45 | } |
48 | else |
46 | else |
49 | { |
47 | { |
50 | qform.setQuestionarioHistoryDrive(null); |
48 | qform.setQuestionarioHistoryDrive(null); |
51 | } |
49 | } |
52 | Questionario qPersistent = questionarioCleared; |
50 | Questionario qPersistent = questionarioCleared; |
53 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_FORM.name())) |
51 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_FORM.name())) |
54 | { |
52 | { |
55 | QuestionarioView qv = new QuestionarioView(qform); |
53 | QuestionarioView qv = new QuestionarioView(qform); |
56 | if(questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_ANSWER_PROCESSOR.name())) |
54 | if(questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_ANSWER_PROCESSOR.name())) |
57 | { |
55 | { |
58 | qv.persistAnswersProcessor(qPersistent); |
56 | qv.persistAnswersProcessor(qPersistent); |
59 | } |
57 | } |
60 | qv.persistViewInObjectForm(qPersistent); |
58 | qv.persistViewInObjectForm(qPersistent); |
61 | qPersistent.setQuestionarioHistoryDrive(qform.getQuestionarioHistoryDrive()); |
59 | qPersistent.setQuestionarioHistoryDrive(qform.getQuestionarioHistoryDrive()); |
62 | } |
60 | } |
63 | else |
61 | else |
64 | throw new NotAuthorizedException("Não pode alterar o formulário porque o questionário está num estado avançado"); |
62 | throw new NotAuthorizedException("Não pode alterar o formulário porque o questionário está num estado avançado"); |
65 | 63 | ||
66 | return loadInit(questionarioCleared); |
64 | return loadInit(questionarioCleared); |
67 | } |
65 | } |
68 | 66 | ||
69 | public QuestionarioImpl setAssignDetailsState(long id, UserSession userSession, QuestionarioImpl questionarioCleared) throws NotAuthorizedException { |
67 | public QuestionarioImpl setAssignDetailsState(long id, UserSession userSession, QuestionarioImpl questionarioCleared) throws NotAuthorizedException { |
70 | 68 | ||
71 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_STATE_ASSIGNATION_DETAILS.name())) |
69 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_STATE_ASSIGNATION_DETAILS.name())) |
72 | { |
70 | { |
73 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNATION_DETAILS); |
71 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNATION_DETAILS); |
74 | questionarioCleared.getiAnswersProcessorClass().startAfetacoes(questionarioCleared); |
72 | questionarioCleared.getiAnswersProcessorClass().startAfetacoes(questionarioCleared); |
75 | } |
73 | } |
76 | else |
74 | else |
77 | throw new NotAuthorizedException("Não alterar o questionário para este estado neste momento"); |
75 | throw new NotAuthorizedException("Não alterar o questionário para este estado neste momento"); |
78 | 76 | ||
79 | return loadInit(questionarioCleared); |
77 | return loadInit(questionarioCleared); |
80 | } |
78 | } |
81 | /** |
79 | /** |
82 | * Questionario comes already cleared from Filter |
80 | * Questionario comes already cleared from Filter |
83 | * @param questionarioId |
81 | * @param questionarioId |
84 | * @param questionarioCleared |
82 | * @param questionarioCleared |
85 | * @param userSession |
83 | * @param userSession |
86 | * @return |
84 | * @return |
87 | */ |
85 | */ |
88 | public QuestionarioImpl loadQuestionario(long questionarioId,UserSession userSession,QuestionarioImpl questionarioCleared) |
86 | public QuestionarioImpl loadQuestionario(long questionarioId,UserSession userSession,QuestionarioImpl questionarioCleared) |
89 | { |
87 | { |
90 | return loadInit(questionarioCleared); |
88 | return loadInit(questionarioCleared); |
91 | } |
89 | } |
92 | 90 | ||
93 | /** |
91 | /** |
94 | * just to load proxys |
92 | * just to load proxys |
95 | * @param questionarioCleared |
93 | * @param questionarioCleared |
96 | * @return |
94 | * @return |
97 | */ |
95 | */ |
98 | private QuestionarioImpl loadInit(QuestionarioImpl questionarioCleared) |
96 | private QuestionarioImpl loadInit(QuestionarioImpl questionarioCleared) |
99 | { |
97 | { |
100 | questionarioCleared.getDescription();//to load proxy just in case |
98 | questionarioCleared.getDescription();//to load proxy just in case |
101 | if(questionarioCleared.getQuestionarioHistoryDrive() != null) |
99 | if(questionarioCleared.getQuestionarioHistoryDrive() != null) |
102 | questionarioCleared.getQuestionarioHistoryDrive().getCodeName(); |
100 | questionarioCleared.getQuestionarioHistoryDrive().getCodeName(); |
103 | IAnswersProcessor processor = questionarioCleared.getiAnswersProcessorClass(); |
101 | IAnswersProcessor processor = questionarioCleared.getiAnswersProcessorClass(); |
104 | processor.initQuestionarioAfetacoesVariables(questionarioCleared); |
102 | processor.initQuestionarioAfetacoesVariables(questionarioCleared); |
105 | return questionarioCleared; |
103 | return questionarioCleared; |
106 | } |
104 | } |
107 | 105 | ||
108 | public void loadInit(List<QuestionarioImpl> questionarioCleared) |
106 | public void loadInit(List<QuestionarioImpl> questionarioCleared) |
109 | { |
107 | { |
110 | for(QuestionarioImpl q: questionarioCleared) |
108 | for(QuestionarioImpl q: questionarioCleared) |
111 | { |
109 | { |
112 | loadInit(q); |
110 | loadInit(q); |
113 | } |
111 | } |
114 | } |
112 | } |
115 | 113 | ||
116 | 114 | ||
117 | 115 | ||
118 | public void deleteQuestionario(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
116 | public void deleteQuestionario(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
119 | { |
117 | { |
120 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_DELETE.name())) |
118 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_DELETE.name())) |
121 | { |
119 | { |
122 | DaoFactory.getQuestionarioDaoImpl().delete(questionarioCleared); |
120 | DaoFactory.getQuestionarioDaoImpl().delete(questionarioCleared); |
123 | } |
121 | } |
124 | } |
122 | } |
125 | 123 | ||
126 | /** |
124 | /** |
127 | * Passa para o estado ASSIGNED_ANSWERS |
125 | * Passa para o estado ASSIGNED_ANSWERS |
128 | * @param questionarioId |
126 | * @param questionarioId |
129 | * @param userSession |
127 | * @param userSession |
130 | * @param questionarioCleared |
128 | * @param questionarioCleared |
131 | * @return |
129 | * @return |
132 | */ |
130 | */ |
133 | public QuestionarioImpl putAssignedAnswers(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
131 | public QuestionarioImpl putAssignedAnswers(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
134 | { |
132 | { |
135 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_PUT_ANSWERS_ASSIGNED.toString())) |
133 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_PUT_ANSWERS_ASSIGNED.toString())) |
136 | { |
134 | { |
137 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNED_ANSWERS); |
135 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNED_ANSWERS); |
138 | } |
136 | } |
139 | return questionarioCleared; |
137 | return questionarioCleared; |
140 | } |
138 | } |
141 | 139 | ||
142 | public QuestionarioImpl revertAssignationDetails(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
140 | public QuestionarioImpl revertAssignationDetails(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
143 | { |
141 | { |
144 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REVERT_TO_ASSIGNATION_DETAILS.toString())) |
142 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REVERT_TO_ASSIGNATION_DETAILS.toString())) |
145 | { |
143 | { |
146 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNATION_DETAILS); |
144 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNATION_DETAILS); |
147 | } |
145 | } |
148 | return questionarioCleared; |
146 | return questionarioCleared; |
149 | } |
147 | } |
150 | 148 | ||
151 | public QuestionarioImpl startProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
149 | public QuestionarioImpl startProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
152 | { |
150 | { |
153 | 151 | ||
154 | if(questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_START_PROCESSEMENT.toString())) |
152 | if(questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_START_PROCESSEMENT.toString())) |
155 | { |
153 | { |
156 | if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNED_ANSWERS) |
154 | if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNED_ANSWERS) |
157 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING); |
155 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING); |
158 | else if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.STOPED_WITH_ANSWERS) |
156 | else if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.STOPED_WITH_ANSWERS) |
159 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS); |
157 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS); |
160 | } |
158 | } |
161 | return questionarioCleared; |
159 | return questionarioCleared; |
162 | } |
160 | } |
163 | 161 | ||
164 | public QuestionarioImpl stopProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
162 | public QuestionarioImpl stopProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
165 | { |
163 | { |
166 | 164 | ||
167 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_STOP_PROCESSEMENT.toString())) |
165 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_STOP_PROCESSEMENT.toString())) |
168 | { |
166 | { |
169 | if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING) |
167 | if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING) |
170 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNED_ANSWERS); |
168 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNED_ANSWERS); |
171 | else if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS) |
169 | else if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS) |
172 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.STOPED_WITH_ANSWERS); |
170 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.STOPED_WITH_ANSWERS); |
173 | } |
171 | } |
174 | return questionarioCleared; |
172 | return questionarioCleared; |
175 | } |
173 | } |
176 | 174 | ||
177 | public void salvarResposta(QuestionarioResposta resposta,1.5.0/docs/api/java/lang/Long.html">Long alunoRequisitadoId,UserSession userSession) throws NotAuthorizedException { |
175 | public void salvarResposta(QuestionarioResposta resposta,1.5.0/docs/api/java/lang/Long.html">Long alunoRequisitadoId,UserSession userSession) throws NotAuthorizedException { |
178 | Questionario q = DaoFactory.getQuestionarioDaoImpl().load(resposta.getQuestionario().getId()); |
176 | Questionario q = DaoFactory.getQuestionarioDaoImpl().load(resposta.getQuestionario().getId()); |
179 | QuestionarioImpl questionario = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().narrow(q); |
177 | QuestionarioImpl questionario = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().narrow(q); |
180 | QuestionarioPedagogicoAlunoRequisitado alunoRequisitado = DaoFactory.getQuestionarioPedagogicoAlunoRequisitadoDaoImpl().load(alunoRequisitadoId); |
178 | QuestionarioPedagogicoAlunoRequisitado alunoRequisitado = DaoFactory.getQuestionarioPedagogicoAlunoRequisitadoDaoImpl().load(alunoRequisitadoId); |
181 | if(questionario.getStateEnum() != QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING && questionario.getStateEnum() != QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS ) |
179 | if(questionario.getStateEnum() != QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING && questionario.getStateEnum() != QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS ) |
182 | { |
180 | { |
183 | throw new NotAuthorizedException("O questionário interrompido por razões administrativas, por favor tente mais tarde"); |
181 | throw new NotAuthorizedException("O questionário interrompido por razões administrativas, por favor tente mais tarde"); |
184 | } |
182 | } |
185 | if(!((alunoRequisitado.getRespostaRequisitada().getQuestionario().getId() == questionario.getId()) |
183 | if(!((alunoRequisitado.getRespostaRequisitada().getQuestionario().getId() == questionario.getId()) |
186 | && |
184 | && |
187 | alunoRequisitado.getRespostaRequisitada().getResposta() == null |
185 | alunoRequisitado.getRespostaRequisitada().getResposta() == null |
188 | && |
186 | && |
189 | alunoRequisitado.getAluno().getId() == userSession.getUser().getId())) |
187 | alunoRequisitado.getAluno().getId() == userSession.getUser().getId())) |
190 | { |
188 | { |
191 | throw new NotAuthorizedException("Não está autorizado a submeter esta resposta."); |
189 | throw new NotAuthorizedException("Não está autorizado a submeter esta resposta."); |
192 | } |
190 | } |
193 | 191 | ||
194 | resposta.setId(0); |
192 | resposta.setId(0); |
195 | resposta.setQuestionario(questionario); |
193 | resposta.setQuestionario(questionario); |
196 | resposta.setUser(alunoRequisitado.getAluno()); |
194 | resposta.setUser(alunoRequisitado.getAluno()); |
197 | alunoRequisitado.getRespostaRequisitada().setResposta(resposta); |
195 | alunoRequisitado.getRespostaRequisitada().setResposta(resposta); |
198 | DaoFactory.getQuestionarioRespostaDaoImpl().save(resposta); |
196 | DaoFactory.getQuestionarioRespostaDaoImpl().save(resposta); |
199 | questionario.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS); |
197 | questionario.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS); |
200 | } |
198 | } |
201 | 199 | ||
202 | 200 | ||
203 | SendEmailService sendEmailService = new SendEmailService(); |
201 | SendEmailService sendEmailService = new SendEmailService(); |
204 | public int sendMessage(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession) |
202 | public int sendMessage(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession) |
205 | { |
203 | { |
206 | 1.5.0/docs/api/java/lang/String.html">String source = "questionario message"; |
204 | 1.5.0/docs/api/java/lang/String.html">String source = "questionario message"; |
207 | AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmails(id,onlyNotAnswered); |
205 | AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmails(id,onlyNotAnswered); |
208 | return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result); |
- | |
209 | } |
- | |
210 | - | ||
211 | private int sendEmails(1.5.0/docs/api/java/lang/Long.html">Long id, 1.5.0/docs/api/java/lang/String.html">String msg, 1.5.0/docs/api/java/lang/String.html">String emailFrom, 1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject, UserSession userSession, 1.5.0/docs/api/java/lang/String.html">String source, AnnouncementDaoImpl.FindUsersResult result) { |
- | |
212 | List<String> usersToConsume = result.emails; |
- | |
213 | 206 | ||
214 | - | ||
215 | logger.info("Scheduling mail jobs to " + result.users + " users: " + usersToConsume.size() + " recipients"); |
- | |
216 | while(usersToConsume.size() > 0) |
- | |
217 | { |
- | |
218 | Iterator<String> iter = usersToConsume.iterator(); |
- | |
219 | List<String> usersToJob = new ArrayList<String>(); |
- | |
220 | int contador = 0; |
- | |
221 | while(iter.hasNext() && contador < 20) |
- | |
222 | { |
- | |
223 | usersToJob.add(iter.next()); |
- | |
224 | iter.remove(); |
- | |
225 | contador++; |
- | |
226 | } |
- | |
227 | Email e = sendEmailService.getMessageEmailAdulteredFromEmailIpp(emailFrom, |
207 | return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result); |
228 | personFrom, |
- | |
229 | subject, |
- | |
230 | msg, |
- | |
231 | usersToJob, |
- | |
232 | userSession.getUser()); |
- | |
233 | e.setHtml(true); |
- | |
234 | EMAILJob emailJob = new EMAILJob(e); |
- | |
235 | JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email (" + source + ":id " + id + ") from " + userSession.getUsername() + " as " + personFrom + " - subject:" + subject ,userSession); |
- | |
236 | } |
- | |
237 | - | ||
238 | return result.users; |
- | |
239 | } |
208 | } |
240 | 209 | ||
241 | public int sendMessageCursoAfeto(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession) |
210 | public int sendMessageCursoAfeto(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession) |
242 | { |
211 | { |
243 | 1.5.0/docs/api/java/lang/String.html">String source = "questionario curso message"; |
212 | 1.5.0/docs/api/java/lang/String.html">String source = "questionario curso message"; |
244 | AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmailsPedagogico(onlyNotAnswered,id,0); |
213 | AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmailsPedagogico(onlyNotAnswered,id,0); |
245 | return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result); |
214 | return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result); |
246 | } |
215 | } |
247 | public int sendMessageUnidadeAfeta(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession) |
216 | public int sendMessageUnidadeAfeta(boolean onlyNotAnswered,1.5.0/docs/api/java/lang/Long.html">Long id,1.5.0/docs/api/java/lang/String.html">String msg,1.5.0/docs/api/java/lang/String.html">String emailFrom,1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject,UserSession userSession) |
248 | { |
217 | { |
249 | 1.5.0/docs/api/java/lang/String.html">String source = "questionario unidade message"; |
218 | 1.5.0/docs/api/java/lang/String.html">String source = "questionario unidade message"; |
250 | AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmailsPedagogico(onlyNotAnswered,0,id); |
219 | AnnouncementDaoImpl.FindUsersResult result = DaoFactory.getQuestionarioDaoImpl().findUsersEmailsPedagogico(onlyNotAnswered,0,id); |
251 | return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result); |
220 | return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result); |
252 | } |
221 | } |
253 | 222 | ||
254 | 223 | ||
- | 224 | private int sendEmails(1.5.0/docs/api/java/lang/Long.html">Long id, 1.5.0/docs/api/java/lang/String.html">String msg, 1.5.0/docs/api/java/lang/String.html">String emailFrom, 1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject, UserSession userSession, 1.5.0/docs/api/java/lang/String.html">String source, AnnouncementDaoImpl.FindUsersResult result) { |
|
- | 225 | List<String> usersToConsume = result.emails; |
|
255 | 226 | ||
256 | 227 | ||
- | 228 | logger.info("Scheduling mail jobs to " + result.users + " users: " + usersToConsume.size() + " recipients"); |
|
- | 229 | //while(usersToConsume.size() > 0) |
|
- | 230 | //{ |
|
- | 231 | // Iterator<String> iter = usersToConsume.iterator(); |
|
- | 232 | // List<String> usersToJob = new ArrayList<String>(); |
|
- | 233 | // int contador = 0; |
|
- | 234 | // while(iter.hasNext() && contador < 20) |
|
- | 235 | // { |
|
- | 236 | // usersToJob.add(iter.next()); |
|
- | 237 | // iter.remove(); |
|
- | 238 | // contador++; |
|
- | 239 | // } |
|
- | 240 | ||
- | 241 | Email e = sendEmailService.getMessageEmailAdulteredFromEmailIpp(emailFrom, |
|
- | 242 | personFrom, |
|
- | 243 | subject, |
|
- | 244 | msg, |
|
- | 245 | usersToConsume, |
|
- | 246 | userSession.getUser()); |
|
- | 247 | ||
- | 248 | e.setHtml(true); |
|
- | 249 | EMAILJob emailJob = new EMAILJob(e); |
|
- | 250 | JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email (" + source + ":id " + id + ") from " + userSession.getUsername() + " as " + personFrom + " - subject:" + subject ,userSession); |
|
- | 251 | //} |
|
- | 252 | enviarComprovativoAoRemetente(id, msg, emailFrom, personFrom, subject, userSession, source,usersToConsume.size()); |
|
- | 253 | return result.users; |
|
- | 254 | } |
|
- | 255 | ||
- | 256 | private void enviarComprovativoAoRemetente(1.5.0/docs/api/java/lang/Long.html">Long id, 1.5.0/docs/api/java/lang/String.html">String msg, 1.5.0/docs/api/java/lang/String.html">String emailFrom, 1.5.0/docs/api/java/lang/String.html">String personFrom, 1.5.0/docs/api/java/lang/String.html">String subject, UserSession userSession, 1.5.0/docs/api/java/lang/String.html">String source,int sentTo) |
|
- | 257 | { |
|
- | 258 | Map<String,String> emailsComprovativos = new HashMap<String, String>(); |
|
- | 259 | if(Email.validEmail(userSession.getUser().getEmail())) |
|
- | 260 | emailsComprovativos.put(userSession.getUser().getEmail(),""); |
|
- | 261 | if(Email.validEmail(userSession.getUser().getOutEmail())) |
|
- | 262 | emailsComprovativos.put(userSession.getUser().getOutEmail(),""); |
|
- | 263 | if(Email.validEmail(userSession.getUser().getPreferrefEmail())) |
|
- | 264 | emailsComprovativos.put(userSession.getUser().getPreferrefEmail(),""); |
|
- | 265 | List<String> comprovativos = new ArrayList<String>(); |
|
- | 266 | comprovativos.addAll(emailsComprovativos.keySet()); |
|
- | 267 | if(comprovativos.size() > 0) |
|
- | 268 | { |
|
- | 269 | Email e = sendEmailService.getMessageEmailAdulteredFromEmailIpp(emailFrom, |
|
- | 270 | personFrom, |
|
- | 271 | subject + " (COMPROVATIVO PAE) ", |
|
- | 272 | "<u>Olá " + userSession.getUser().getName() + " - Este é um comprovativo do seu envio de mensagem a " + sentTo + " Alunos</u><br/><br/>" + msg, |
|
- | 273 | comprovativos, |
|
- | 274 | userSession.getUser()); |
|
- | 275 | ||
- | 276 | e.setHtml(true); |
|
- | 277 | EMAILJob emailJob = new EMAILJob(e); |
|
- | 278 | JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email (" + source + ":id " + id + ") from " + userSession.getUsername() + " as " + personFrom + " - subject:" + subject ,userSession); |
|
- | 279 | } |
|
- | 280 | } |
|
257 | 281 | ||
258 | 282 | ||
259 | } |
283 | } |
260 | 284 |