Rev 1573 | Rev 1579 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
1326 | jmachado | 1 | package pt.estgp.estgweb.services.questionarios; |
2 | |||
1573 | jmachado | 3 | import jomm.dao.impl.AbstractDao; |
1404 | jmachado | 4 | import org.apache.log4j.Logger; |
1429 | jmachado | 5 | import pt.estgp.estgweb.Globals; |
1326 | jmachado | 6 | import pt.estgp.estgweb.domain.*; |
7 | import pt.estgp.estgweb.domain.dao.DaoFactory; |
||
1425 | jmachado | 8 | import pt.estgp.estgweb.domain.dao.impl.AnnouncementDaoImpl; |
1326 | jmachado | 9 | import pt.estgp.estgweb.domain.views.QuestionarioView; |
1425 | jmachado | 10 | import pt.estgp.estgweb.services.email.EMAILJob; |
1429 | jmachado | 11 | import pt.estgp.estgweb.services.email.EMAILJobPersonalizedCertificated; |
1425 | jmachado | 12 | import pt.estgp.estgweb.services.email.SendEmailService; |
1544 | jmachado | 13 | import pt.estgp.estgweb.services.jobs.JobDeamon; |
1425 | jmachado | 14 | import pt.estgp.estgweb.services.jobs.JobScheduleService; |
1544 | jmachado | 15 | import pt.estgp.estgweb.services.jobs.ServiceJob; |
1456 | jmachado | 16 | import pt.estgp.estgweb.utils.ConfigProperties; |
1425 | jmachado | 17 | import pt.estgp.estgweb.utils.Email; |
1429 | jmachado | 18 | import pt.estgp.estgweb.utils.EmailPersonalizedCertificated; |
1326 | jmachado | 19 | import pt.estgp.estgweb.web.exceptions.NotAuthorizedException; |
20 | import pt.utl.ist.berserk.logic.serviceManager.IService; |
||
21 | |||
1426 | jmachado | 22 | import java.util.*; |
1326 | jmachado | 23 | |
24 | /** |
||
25 | * Created by jorgemachado on 21/03/16. |
||
26 | */ |
||
27 | public class QuestionariosService implements IService |
||
28 | { |
||
29 | |||
1404 | jmachado | 30 | 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); |
31 | |||
1326 | jmachado | 32 | //NEW QUESTIONARIOS COME BY THIS SERVICE |
33 | public QuestionarioImpl newQuestionarioForm(QuestionarioImpl qform, UserSession userSession) throws NotAuthorizedException |
||
34 | { |
||
35 | if(qform.getQuestionarioHistoryDrive().getId() > 0) |
||
36 | { |
||
37 | QuestionarioHistoryDrive hist = DaoFactory.getQuestionarioHistoryDriveDaoImpl().load(qform.getQuestionarioHistoryDrive().getId()); |
||
38 | qform.setQuestionarioHistoryDrive(hist); |
||
39 | } |
||
40 | else |
||
41 | { |
||
42 | qform.setQuestionarioHistoryDrive(null); |
||
43 | } |
||
44 | DaoFactory.getQuestionarioDaoImpl().save(qform); |
||
45 | return qform; |
||
46 | } |
||
47 | public QuestionarioImpl saveQuestionarioForm(QuestionarioImpl qform, UserSession userSession, QuestionarioImpl questionarioCleared) throws NotAuthorizedException { |
||
48 | if(qform.getQuestionarioHistoryDrive().getId() > 0) |
||
49 | { |
||
50 | QuestionarioHistoryDrive hist = DaoFactory.getQuestionarioHistoryDriveDaoImpl().load(qform.getQuestionarioHistoryDrive().getId()); |
||
51 | qform.setQuestionarioHistoryDrive(hist); |
||
52 | } |
||
53 | else |
||
54 | { |
||
55 | qform.setQuestionarioHistoryDrive(null); |
||
56 | } |
||
57 | Questionario qPersistent = questionarioCleared; |
||
58 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_FORM.name())) |
||
59 | { |
||
60 | QuestionarioView qv = new QuestionarioView(qform); |
||
61 | if(questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SAVE_ANSWER_PROCESSOR.name())) |
||
62 | { |
||
63 | qv.persistAnswersProcessor(qPersistent); |
||
64 | } |
||
65 | qv.persistViewInObjectForm(qPersistent); |
||
66 | qPersistent.setQuestionarioHistoryDrive(qform.getQuestionarioHistoryDrive()); |
||
67 | } |
||
68 | else |
||
69 | throw new NotAuthorizedException("Não pode alterar o formulário porque o questionário está num estado avançado"); |
||
70 | |||
71 | return loadInit(questionarioCleared); |
||
72 | } |
||
73 | |||
74 | public QuestionarioImpl setAssignDetailsState(long id, UserSession userSession, QuestionarioImpl questionarioCleared) throws NotAuthorizedException { |
||
75 | |||
76 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_SET_STATE_ASSIGNATION_DETAILS.name())) |
||
77 | { |
||
78 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNATION_DETAILS); |
||
1329 | jmachado | 79 | questionarioCleared.getiAnswersProcessorClass().startAfetacoes(questionarioCleared); |
1326 | jmachado | 80 | } |
81 | else |
||
82 | throw new NotAuthorizedException("Não alterar o questionário para este estado neste momento"); |
||
83 | |||
84 | return loadInit(questionarioCleared); |
||
85 | } |
||
86 | /** |
||
87 | * Questionario comes already cleared from Filter |
||
88 | * @param questionarioId |
||
89 | * @param questionarioCleared |
||
90 | * @param userSession |
||
91 | * @return |
||
92 | */ |
||
93 | public QuestionarioImpl loadQuestionario(long questionarioId,UserSession userSession,QuestionarioImpl questionarioCleared) |
||
94 | { |
||
95 | return loadInit(questionarioCleared); |
||
96 | } |
||
97 | |||
98 | /** |
||
99 | * just to load proxys |
||
100 | * @param questionarioCleared |
||
101 | * @return |
||
102 | */ |
||
103 | private QuestionarioImpl loadInit(QuestionarioImpl questionarioCleared) |
||
104 | { |
||
105 | questionarioCleared.getDescription();//to load proxy just in case |
||
106 | if(questionarioCleared.getQuestionarioHistoryDrive() != null) |
||
107 | questionarioCleared.getQuestionarioHistoryDrive().getCodeName(); |
||
1328 | jmachado | 108 | IAnswersProcessor processor = questionarioCleared.getiAnswersProcessorClass(); |
109 | processor.initQuestionarioAfetacoesVariables(questionarioCleared); |
||
1326 | jmachado | 110 | return questionarioCleared; |
111 | } |
||
1328 | jmachado | 112 | |
1329 | jmachado | 113 | public void loadInit(List<QuestionarioImpl> questionarioCleared) |
1326 | jmachado | 114 | { |
115 | for(QuestionarioImpl q: questionarioCleared) |
||
116 | { |
||
1328 | jmachado | 117 | loadInit(q); |
1326 | jmachado | 118 | } |
119 | } |
||
120 | |||
121 | |||
1329 | jmachado | 122 | |
1326 | jmachado | 123 | public void deleteQuestionario(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
124 | { |
||
125 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_DELETE.name())) |
||
126 | { |
||
127 | DaoFactory.getQuestionarioDaoImpl().delete(questionarioCleared); |
||
128 | } |
||
129 | } |
||
130 | |||
1403 | jmachado | 131 | /** |
132 | * Passa para o estado ASSIGNED_ANSWERS |
||
133 | * @param questionarioId |
||
134 | * @param userSession |
||
135 | * @param questionarioCleared |
||
136 | * @return |
||
137 | */ |
||
138 | public QuestionarioImpl putAssignedAnswers(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
||
139 | { |
||
1404 | jmachado | 140 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_PUT_ANSWERS_ASSIGNED.toString())) |
141 | { |
||
142 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNED_ANSWERS); |
||
143 | } |
||
144 | return questionarioCleared; |
||
145 | } |
||
1403 | jmachado | 146 | |
1404 | jmachado | 147 | public QuestionarioImpl revertAssignationDetails(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
148 | { |
||
149 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REVERT_TO_ASSIGNATION_DETAILS.toString())) |
||
150 | { |
||
151 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNATION_DETAILS); |
||
152 | } |
||
1403 | jmachado | 153 | return questionarioCleared; |
154 | } |
||
155 | |||
156 | public QuestionarioImpl startProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
||
157 | { |
||
158 | |||
1404 | jmachado | 159 | if(questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_START_PROCESSEMENT.toString())) |
160 | { |
||
1413 | jmachado | 161 | if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNED_ANSWERS) |
162 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING); |
||
163 | else if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.STOPED_WITH_ANSWERS) |
||
164 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS); |
||
1404 | jmachado | 165 | } |
1403 | jmachado | 166 | return questionarioCleared; |
167 | } |
||
168 | |||
1404 | jmachado | 169 | public QuestionarioImpl stopProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
170 | { |
||
171 | |||
172 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_STOP_PROCESSEMENT.toString())) |
||
173 | { |
||
1413 | jmachado | 174 | if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING) |
175 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.ASSIGNED_ANSWERS); |
||
176 | else if(questionarioCleared.getStateEnum() == QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS) |
||
177 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.STOPED_WITH_ANSWERS); |
||
1404 | jmachado | 178 | } |
179 | return questionarioCleared; |
||
180 | } |
||
181 | |||
1544 | jmachado | 182 | public QuestionarioImpl closeProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
183 | { |
||
184 | |||
185 | if(questionarioCleared.isClear((UserSessionImpl) userSession,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CLOSE_PROCESSEMENT.toString())) |
||
186 | { |
||
187 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.CLOSED); |
||
188 | } |
||
189 | return questionarioCleared; |
||
190 | } |
||
191 | |||
192 | public QuestionarioImpl reopenProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) |
||
193 | { |
||
194 | |||
195 | if(questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_REOPEN_PROCESSEMENT.toString())) |
||
196 | { |
||
197 | if(DaoFactory.getQuestionarioDaoImpl().getNumeroRespostas(questionarioId) > 0) |
||
198 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS); |
||
199 | else |
||
200 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING); |
||
201 | } |
||
202 | return questionarioCleared; |
||
203 | } |
||
204 | |||
205 | public QuestionarioImpl generateOlap(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared) throws NotAuthorizedException { |
||
206 | |||
207 | if(!questionarioCleared.isClear((UserSessionImpl) userSession, QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_GENERATE_OLAP.toString()) ) |
||
208 | { |
||
209 | throw new NotAuthorizedException("Nao tem autorização para atribuir respostas ao questionario " + questionarioId); |
||
210 | } |
||
211 | |||
212 | questionarioCleared.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_OLAP); |
||
213 | |||
214 | Set<JobServiceTaskParameter> paramsJob = new HashSet<JobServiceTaskParameter>(); |
||
215 | |||
216 | JobServiceTaskParameterImpl paramJob = DomainObjectFactory.createJobServiceTaskParameterImpl(); |
||
217 | paramJob.setName(ServiceJob.JOB_questionario_id_KEY); |
||
218 | paramJob.setDescription("ID do questionário"); |
||
219 | paramJob.setObject("" + questionarioId); |
||
220 | paramsJob.add(paramJob); |
||
221 | |||
222 | JobServiceTask job = JobDeamon.createServiceJob(questionarioCleared.getiAnswersProcessorClass().getJobServiceOlapGenerationProcessor(), userSession.getUser(), paramsJob, |
||
223 | "Service: Geracao OLAP a um questionário Pedagógico"); |
||
224 | questionarioCleared.setAnswerOlapGenerationTaskId(job.getId()); |
||
225 | |||
226 | |||
227 | return questionarioCleared; |
||
228 | } |
||
229 | |||
1412 | jmachado | 230 | public void salvarResposta(QuestionarioResposta resposta,1.5.0/docs/api/java/lang/Long.html">Long alunoRequisitadoId,UserSession userSession) throws NotAuthorizedException { |
231 | Questionario q = DaoFactory.getQuestionarioDaoImpl().load(resposta.getQuestionario().getId()); |
||
232 | QuestionarioImpl questionario = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().narrow(q); |
||
233 | QuestionarioPedagogicoAlunoRequisitado alunoRequisitado = DaoFactory.getQuestionarioPedagogicoAlunoRequisitadoDaoImpl().load(alunoRequisitadoId); |
||
234 | 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 ) |
||
235 | { |
||
236 | throw new NotAuthorizedException("O questionário interrompido por razões administrativas, por favor tente mais tarde"); |
||
237 | } |
||
238 | if(!((alunoRequisitado.getRespostaRequisitada().getQuestionario().getId() == questionario.getId()) |
||
239 | && |
||
240 | alunoRequisitado.getRespostaRequisitada().getResposta() == null |
||
241 | && |
||
242 | alunoRequisitado.getAluno().getId() == userSession.getUser().getId())) |
||
243 | { |
||
244 | throw new NotAuthorizedException("Não está autorizado a submeter esta resposta."); |
||
245 | } |
||
1404 | jmachado | 246 | |
1412 | jmachado | 247 | resposta.setId(0); |
248 | resposta.setQuestionario(questionario); |
||
249 | resposta.setUser(alunoRequisitado.getAluno()); |
||
250 | alunoRequisitado.getRespostaRequisitada().setResposta(resposta); |
||
251 | DaoFactory.getQuestionarioRespostaDaoImpl().save(resposta); |
||
252 | questionario.setStateClass(QuestionarioImpl.1.5.0/docs/api/org/omg/PortableServer/POAManagerPackage/State.html">State.PROCESSING_WITH_ANSWERS); |
||
253 | } |
||
1404 | jmachado | 254 | |
1412 | jmachado | 255 | |
1425 | jmachado | 256 | SendEmailService sendEmailService = new SendEmailService(); |
257 | 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) |
||
258 | { |
||
259 | 1.5.0/docs/api/java/lang/String.html">String source = "questionario message"; |
||
1429 | jmachado | 260 | AnnouncementDaoImpl.FindUsersIdResult result = DaoFactory.getQuestionarioDaoImpl().findUsersIds(id, onlyNotAnswered); |
1426 | jmachado | 261 | |
1425 | jmachado | 262 | return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result); |
263 | } |
||
1412 | jmachado | 264 | |
1425 | jmachado | 265 | 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) |
266 | { |
||
267 | 1.5.0/docs/api/java/lang/String.html">String source = "questionario curso message"; |
||
1429 | jmachado | 268 | AnnouncementDaoImpl.FindUsersIdResult result = DaoFactory.getQuestionarioDaoImpl().findUsersIdsPedagogico(onlyNotAnswered, id, 0); |
1425 | jmachado | 269 | return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result); |
270 | } |
||
271 | 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) |
||
272 | { |
||
273 | 1.5.0/docs/api/java/lang/String.html">String source = "questionario unidade message"; |
||
1429 | jmachado | 274 | AnnouncementDaoImpl.FindUsersIdResult result = DaoFactory.getQuestionarioDaoImpl().findUsersIdsPedagogico(onlyNotAnswered, 0, id); |
1425 | jmachado | 275 | return sendEmails(id, msg, emailFrom, personFrom, subject, userSession, source, result); |
276 | } |
||
277 | |||
278 | |||
1457 | jmachado | 279 | public int sendMessageAllProcessing(boolean onlyNotAnswered,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) |
280 | { |
||
281 | 1.5.0/docs/api/java/lang/String.html">String source = "questionarios em processamento message"; |
||
282 | AnnouncementDaoImpl.FindUsersIdResult result = DaoFactory.getQuestionarioDaoImpl().findUsersIdsPedagogicoAllProcessing(onlyNotAnswered); |
||
283 | return sendEmails(null, msg, emailFrom, personFrom, subject, userSession, source, result); |
||
284 | } |
||
285 | |||
1429 | jmachado | 286 | 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.FindUsersIdResult result) { |
287 | List<Long> usersToConsume = result.userIds; |
||
1425 | jmachado | 288 | |
289 | |||
1426 | jmachado | 290 | logger.info("Scheduling mail jobs to " + result.users + " users: " + usersToConsume.size() + " recipients"); |
1489 | jmachado | 291 | logger.info("Sender User logged in BACO: " + userSession.getUser().getName() + "(" + userSession.getUser().getUsername() + ")" + " - " + userSession.getUser().getEmail()); |
1426 | jmachado | 292 | //while(usersToConsume.size() > 0) |
293 | //{ |
||
294 | // Iterator<String> iter = usersToConsume.iterator(); |
||
295 | // List<String> usersToJob = new ArrayList<String>(); |
||
296 | // int contador = 0; |
||
297 | // while(iter.hasNext() && contador < 20) |
||
298 | // { |
||
299 | // usersToJob.add(iter.next()); |
||
300 | // iter.remove(); |
||
301 | // contador++; |
||
302 | // } |
||
1425 | jmachado | 303 | |
1455 | jmachado | 304 | 1.5.0/docs/api/java/lang/String.html">String suffix = Globals.SYSTEM_EMAIL_CERTIFICATED_HOME_PAGE; |
305 | if(suffix.startsWith("/")) |
||
306 | suffix = suffix.substring(1); |
||
307 | 1.5.0/docs/api/java/lang/String.html">String url = Globals.SITE_URL.endsWith("/") ? Globals.SITE_URL + suffix : Globals.SITE_URL + "/" + suffix; |
||
308 | |||
1429 | jmachado | 309 | EmailPersonalizedCertificated e = sendEmailService.getMessageEmailAdulteredFromEmailIppCertificated(emailFrom, |
1426 | jmachado | 310 | personFrom, |
311 | subject, |
||
312 | msg, |
||
1429 | jmachado | 313 | userSession.getUser(), |
1426 | jmachado | 314 | usersToConsume, |
1455 | jmachado | 315 | url); |
1425 | jmachado | 316 | |
1426 | jmachado | 317 | e.setHtml(true); |
1429 | jmachado | 318 | EMAILJobPersonalizedCertificated emailJob = new EMAILJobPersonalizedCertificated(e); |
1426 | jmachado | 319 | JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email (" + source + ":id " + id + ") from " + userSession.getUsername() + " as " + personFrom + " - subject:" + subject ,userSession); |
320 | //} |
||
321 | enviarComprovativoAoRemetente(id, msg, emailFrom, personFrom, subject, userSession, source,usersToConsume.size()); |
||
1456 | jmachado | 322 | enviarComprovativoAAdministracao(id, msg, emailFrom, personFrom, subject, userSession, source,usersToConsume.size()); |
1426 | jmachado | 323 | return result.users; |
324 | } |
||
325 | |||
1456 | jmachado | 326 | private void enviarComprovativoAAdministracao(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) |
327 | { |
||
328 | |||
329 | |||
330 | Email e = sendEmailService.getMessageEmailAdulteredFromEmailIpp(emailFrom, |
||
331 | personFrom, |
||
332 | subject + " (COMPROVATIVO PAE) ", |
||
333 | "<u>Caros membros da administração este é um comprovativo de um email enviado pelo PAE pelo user: " + userSession.getUser().getName() + " - Este é um comprovativo do seu envio de mensagem a " + sentTo + " Alunos</u><br/><br/>" + msg, |
||
334 | ConfigProperties.getListValuesByPrefix("admin.email"), |
||
335 | userSession.getUser()); |
||
336 | |||
337 | e.setHtml(true); |
||
338 | EMAILJob emailJob = new EMAILJob(e); |
||
339 | JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email (" + source + ":id " + id + ") from " + userSession.getUsername() + " as " + personFrom + " - subject:" + subject ,userSession); |
||
340 | } |
||
341 | |||
1426 | jmachado | 342 | 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) |
343 | { |
||
344 | Map<String,String> emailsComprovativos = new HashMap<String, String>(); |
||
345 | if(Email.validEmail(userSession.getUser().getEmail())) |
||
346 | emailsComprovativos.put(userSession.getUser().getEmail(),""); |
||
347 | if(Email.validEmail(userSession.getUser().getOutEmail())) |
||
348 | emailsComprovativos.put(userSession.getUser().getOutEmail(),""); |
||
349 | if(Email.validEmail(userSession.getUser().getPreferrefEmail())) |
||
350 | emailsComprovativos.put(userSession.getUser().getPreferrefEmail(),""); |
||
351 | List<String> comprovativos = new ArrayList<String>(); |
||
352 | comprovativos.addAll(emailsComprovativos.keySet()); |
||
353 | if(comprovativos.size() > 0) |
||
354 | { |
||
355 | Email e = sendEmailService.getMessageEmailAdulteredFromEmailIpp(emailFrom, |
||
356 | personFrom, |
||
357 | subject + " (COMPROVATIVO PAE) ", |
||
358 | "<u>Olá " + userSession.getUser().getName() + " - Este é um comprovativo do seu envio de mensagem a " + sentTo + " Alunos</u><br/><br/>" + msg, |
||
359 | comprovativos, |
||
360 | userSession.getUser()); |
||
361 | |||
362 | e.setHtml(true); |
||
363 | EMAILJob emailJob = new EMAILJob(e); |
||
364 | JobScheduleService.getInstance().scheduleNow(emailJob,"Message Email (" + source + ":id " + id + ") from " + userSession.getUsername() + " as " + personFrom + " - subject:" + subject ,userSession); |
||
365 | } |
||
366 | } |
||
367 | |||
368 | |||
1573 | jmachado | 369 | /*** |
370 | * REPORTS ****************************** |
||
371 | */ |
||
372 | |||
373 | public void saveReportGroup(1.5.0/docs/api/java/lang/String.html">String title,1.5.0/docs/api/java/lang/String.html">String classType, UserSession userSession) throws 1.5.0/docs/api/java/lang/ClassNotFoundException.html">ClassNotFoundException, 1.5.0/docs/api/java/lang/IllegalAccessException.html">IllegalAccessException, 1.5.0/docs/api/java/lang/InstantiationException.html">InstantiationException |
||
374 | { |
||
375 | QuestionarioReportFileGroup reportFileGroup = (QuestionarioReportFileGroup) 1.5.0/docs/api/java/lang/Class.html">Class.forName(classType).newInstance(); |
||
376 | reportFileGroup.setTitle(title); |
||
1574 | jmachado | 377 | 1.5.0/docs/api/java/lang/String.html">String processorClassForGroup = ConfigProperties.getProperty("questionarios.processor." + classType); |
378 | reportFileGroup.setReportProcessorClass(processorClassForGroup); |
||
1573 | jmachado | 379 | AbstractDao.getCurrentSession().save(reportFileGroup); |
380 | } |
||
381 | |||
1326 | jmachado | 382 | } |