Subversion Repositories bacoAlunos

Rev

Rev 1573 | Rev 1579 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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