Subversion Repositories bacoAlunos

Rev

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