Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 1394 → Rev 1403

/branches/v3/impl/conf/WEB-INF/struts/struts-pae-questionarios.xml
79,6 → 79,7
<action path="/user/questionarioPedagogicoStartCheckCourses" forward="page.pae.questionario.courses.check"/>
<action path="/user/questionarioPedagogicoStartAssignAnswers" forward="page.pae.questionario.assign.answers"/>
 
 
<action path="/user/questionariosPaeSelectCourses"
type="pt.estgp.estgweb.web.controllers.questionarios.QuestionarioCourseSelectionController"
name="QuestionarioForm"
/branches/v3/impl/conf/berserk/sd.xml
2642,6 → 2642,34
 
 
<service>
<name>QuestionarioPutAssignedAnswers</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
<description></description>
<isTransactional>true</isTransactional>
<defaultMethod>putAssignedAnswers</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
<chain name="QuestionarioClearancesPre"/>
</filterChains>
</service>
<service>
<name>QuestionarioStartProcessement</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.QuestionariosService</implementationClass>
<description></description>
<isTransactional>true</isTransactional>
<defaultMethod>startProcessement</defaultMethod>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
<chain name="AuthenticatedUsers"/>
<chain name="QuestionarioClearancesPre"/>
</filterChains>
</service>
 
 
<service>
<name>RunJobSelectCourses</name>
<implementationClass>pt.estgp.estgweb.services.questionarios.pedagogico.UpdateCoursesAndUnitsJobService</implementationClass>
<description></description>
/branches/v3/impl/src/java/pt/estgp/estgweb/Globals.java
432,7 → 432,7
public static final boolean MODO_PAE_ENABLED = ConfigProperties.getBooleanProperty("mode.pae.enabled");
public static final String QUESTIONARIOS_GERAIS = "questionarios.gerais";
public static final String QUESTIONARIOS_ADMIN = "questionarios.admin";
public static final String QUESTIONARIOS_ASSIGNEMENTS_ADMIN = "questionarios.atribuicoes.admin";
public static final String QUESTIONARIOS_ASSIGNEMENTS_CHECK_STUDENTS_ADMIN = "questionarios.atribuicoes.admin";
public static final String QUESTIONARIOS_ASSIGNEMENTS_CHECK_TEACHERS_ADMIN = "questionarios.atribuicoes.check_teachers";
public static final String QUESTIONARIOS_TIPOLOGIAS_ADMIN = "questionarios.tipologias.admin";
public static final boolean USE_XSL_CACHE =ConfigProperties.getBooleanProperty("xsl.use.cache");
/branches/v3/impl/src/java/pt/estgp/estgweb/services/courseunits/CreateCourseUnitAdminService.java
48,7 → 48,7
}
cUV.persistViewAdminInObject(courseUnit);
 
courseUnit.setInstitutionCode("" + DaoFactory.getConfigurationDaoImpl().getSigesInstitutionCode());
 
//por o curso
//por os profs
//por alunos
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportStudentsService.java
59,6 → 59,7
int studentsChangeBI = 0;
int unitsAddedToStudents = 0;
int alunosErasmusCadeirasEcontradas = 0;
int alunosSemTurmaParaAUnidades = 0;
int turmaMoreThanOneRegularCourse = 0;
int unidadesProcuradasNumCursoAleatorio = 0;
List<String> turmasMoreThanOneCourse = new ArrayList<String>();
67,6 → 68,8
int estudantesComCadeirasSemTurma = 0;
int turmasComCodigoNullRemovidas = 0;
int unidadesSoComAlunosExtra = 0;
int turmasVindasANullDoSIGES = 0;
int turmasVindasANullDoSIGESEncontradasNoutroCampo = 0;
 
 
 
102,6 → 105,8
turmasComCodigoNullRemovidas = 0;
unidadesSoComAlunosExtra = 0;
unidadesProcuradasNumCursoAleatorio = 0;
alunosSemTurmaParaAUnidades = 0;
turmasVindasANullDoSIGES = 0;
ImportCourseService.resetCourseYearTurmaPolicy();
 
 
162,6 → 167,9
newUser = true;
}
 
if(alunoSiges.getCodigo() == 11211)
System.out.println("Aqui");
 
persist(alunoSiges, s, newUser,year,institutionCode,activeImportYearParaVerificacaoDePropinasEmDia,logMessages,service);
 
if(studentComUnidadesRepetidas)
263,7 → 271,19
serviceLogInfo("#Units not Removed because localy added: " + unitsLocalAddedNotRemoved);
serviceLogInfo("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded);
serviceLogInfo("#Alunos com Unidades repetidas: " + unitsRepeated);
serviceLogInfo("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas);
serviceLogWarn("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas);
if(turmasVindasANullDoSIGES > 0)
{
serviceLogError("######!!!!!Turmas a NULL NO SIGES " + turmasVindasANullDoSIGES + " - POSSIVEL CAMPO DE TURMA diferente de TURMA_T na tabela T_INSCR, procure no LOG pela frase: (turmasVindasANullDoSIGES) ");
}
if(turmasVindasANullDoSIGESEncontradasNoutroCampo > 0)
{
serviceLogInfo("######!!!!!Foram no entanto encontradas noutro campo P L TP O C S E: " + turmasVindasANullDoSIGESEncontradasNoutroCampo + " turmas ver mais info no LOG");
}
if(alunosSemTurmaParaAUnidades > 0)
{
serviceLogError("######!!!!!Alunos com Unidade mas sem Turma: " + alunosSemTurmaParaAUnidades + " -> verificar situação junto da administração de software do PAE - procure no LOG pela frase:(alunosSemTurmaParaAUnidades)");
}
if(unidadesProcuradasNumCursoAleatorio > 0)
serviceLogInfo("######!!!!!Unidades atribuidas com curso aleatoriamente escolhido derivado a duvidas: " + unidadesProcuradasNumCursoAleatorio + " (procurar por \"tem mais de um curso vamos procurar num qualquer\")");
if(turmaMoreThanOneRegularCourse > 0)
325,6 → 345,18
logger.info("#Units not Added because localy removed: " + unitsLocallyRemovedNotAdded);
logger.info("#Alunos com Unidades repetidas: " + unitsRepeated);
logger.info("#ERASMUS Sum Subscriptions Replaced: " + alunosErasmusCadeirasEcontradas);
if(turmasVindasANullDoSIGES > 0)
{
logger.error("######!!!!!Turmas a NULL NO SIGES " + turmasVindasANullDoSIGES + " - POSSIVEL CAMPO DE TURMA diferente de TURMA_T na tabela T_INSCR procure no LOG pela frase: (turmasVindasANullDoSIGES) ");
}
if(turmasVindasANullDoSIGESEncontradasNoutroCampo > 0)
{
logger.info("######!!!!!Foram no entanto encontradas noutro campo P L TP O C S E: " + turmasVindasANullDoSIGESEncontradasNoutroCampo + " turmas ver mais info no LOG");
}
if(alunosSemTurmaParaAUnidades > 0)
{
logger.error("######!!!!!Alunos com Unidade mas sem Turma: " + alunosSemTurmaParaAUnidades + " -> verificar situação junto da administração de software do PAE - procure no LOG pela frase:(alunosSemTurmaParaAUnidades)");
}
if(unidadesProcuradasNumCursoAleatorio > 0)
logger.warn("######!!!!!Unidades atribuidas com curso aleatoriamente escolhido derivado a duvidas: " + unidadesProcuradasNumCursoAleatorio + " (procurar por \"tem mais de um curso vamos procurar num qualquer\")");
 
510,16 → 542,18
"where courseunit.importYear=\"" + year + "\" and courseunit.institutionCode = \"" + institutionCode + "\" and turmas.studentId is null ");
ResultSet rs = ps.executeQuery();
List<Integer> longs = new ArrayList<Integer>();
//alunosSemTurmaParaAUnidades = longs.size();
while(rs.next())
{
longs.add(rs.getInt("sigesCode"));
}
alunosSemTurmaParaAUnidades = longs.size();
rs.close();
ps.close();
 
if(longs.size() > 0)
{
String msgS = "Existem estudantes no BACO com unidades sem turma respectiva ano: " + year + " institution:" + institutionCode + " possiveis adicionados manualmente, confirmar";
String msgS = "(alunosSemTurmaParaAUnidades) ATENÇÃO_ Existem estudantes no BACO com unidades sem turma respectiva ano: " + year + " institution:" + institutionCode + " possiveis adicionados manualmente, confirmar";
serviceLogWarn(msgS);
logger.warn(msgS);
msgS = "";
568,8 → 602,8
estudantesDesaparecidosDoSigesNesteAno++;
Student s = DaoFactory.getStudentDaoImpl().loadBySigesCode(c);
StudentImpl studentImpl = (StudentImpl) DaoFactory.getStudentDaoImpl().narrow(s);
removerUnidadesQueDesapareceramNoSiges(year, new HashSet<CourseUnit>(), studentImpl);
consistirTurmasAluno(studentImpl, year, new HashMap<CourseUnit, String>());
removerUnidadesQueDesapareceramNoSiges(year, new HashSet<CourseUnit>(), studentImpl,institutionCode);
consistirTurmasAluno(studentImpl, year, new HashMap<CourseUnit, String>(),institutionCode);
}
}
else
835,8 → 869,8
serviceLogWarn("ATENTION STUDENT WITH ZERO UNITS: codigo " + alunoSiges.getCodigo());
logger.warn("ATENTION STUDENT WITH ZERO UNITS: codigo " + alunoSiges.getCodigo());
StudentImpl studentImpl = (StudentImpl) DaoFactory.getStudentDaoImpl().narrow(student);
removerUnidadesQueDesapareceramNoSiges(year, new HashSet<CourseUnit>(), studentImpl);
consistirTurmasAluno(studentImpl, year, new HashMap<CourseUnit, String>());
removerUnidadesQueDesapareceramNoSiges(year, new HashSet<CourseUnit>(), studentImpl,institutionCode);
consistirTurmasAluno(studentImpl, year, new HashMap<CourseUnit, String>(),institutionCode);
}
else
{
866,7 → 900,7
 
//PASSO 4 - Remover unidades deste ano que nao vem do SIGES e que nao foram adicionadas localmente
//turmas separadas : Seguro a verificação de existencia é feita pelo id da unidade curricular no baco nas verificacoes para remocoes
removerUnidadesQueDesapareceramNoSiges(year, unitsFromSigesPersistentInBaco, studentImpl);
removerUnidadesQueDesapareceramNoSiges(year, unitsFromSigesPersistentInBaco, studentImpl,institutionCode);
 
//PASSO 5 - Consistir Turmas do Aluno com novas cadeiras - Turmas do aluno sem cadeira correspondente sao apagadas, novas sao adicionadas
//Este metodo vai necessitar de obter as turmas das unidades que vieram do SIGES atraves do mapa map_CourseUnit_x_Turma
874,11 → 908,11
//em termos de relacoes com turmas na classe CourseUnitTurma
//deste modo se alguma unidade foi adicionada localmente poderá nao ser removida no PASSO 4 e nao havera correspondente
//para a turma nesta tabela map_CourseUnit_x_Turma logo essas turmas nessas unidades nao serao mechidas, um aviso e emitido
consistirTurmasAluno(studentImpl, year, map_CourseUnit_x_Turma);
consistirTurmasAluno(studentImpl, year, map_CourseUnit_x_Turma,institutionCode);
}
}
 
private void consistirTurmasAluno(StudentImpl student, String year, Map<CourseUnit, String> map_CourseUnit_x_Turma) {
private void consistirTurmasAluno(StudentImpl student, String year, Map<CourseUnit, String> map_CourseUnit_x_Turma, int institutionCode) {
//PASSO 1 Para cada cadeira onde o aluno se encontra inscrito
// obter a turma onde o aluno esta' colocado, se nao existir criar e afectar a turma
//PASSO 2 Colocar o aluno nessa turma se ele ainda lá nao estiver
890,15 → 924,13
Map<CourseUnitTurma,Boolean> turmasAfectadas = new HashMap<CourseUnitTurma,Boolean>();
for(CourseUnit cu: student.getSubscribedUnits())
{
if(cu.getImportYear().equals(year))
if(cu.getImportYear().equals(year) && cu.getInstitutionCode().equals(""+institutionCode))
{
if(cu.getTurmas() == null)
{
cu.setTurmas(new HashSet<CourseUnitTurma>());
}
 
// TODO O CODIGO DA TURMA AQUI VEM ANUL NUM CASO QUALQUER ESQUISITO VER O QUE E NO RUN
 
String codigoTurma = map_CourseUnit_x_Turma.get(cu);
if(student.isLocalUnit(cu) && codigoTurma == null)
{
906,14 → 938,14
//mas foi mantida porque foi adicionada manualmente
//deste modo usaremos a turma antiga
//e nao afetaremos uma turma nao afetada, esta nao sera verificada
String msg = "Atenção turma com código null nao sera verificada e' local unit:" + cu.getCode() + " aluno:" + student.getSigesCode();
String msg = "Atenção turma não encontrada para uma unidade do aluno, A unidade não foi importada do SIGES logo não há turma mas nao sera verificada porque e' uma local unit:" + cu.getCode() + " aluno:" + student.getSigesCode();
serviceLogInfo(msg);
logger.info(msg);
}
else if(codigoTurma == null)
{
//Este caso nao deverá acontecer porque no PASSO 4 da persistencia apenas nao se removem as adicionadas localmente
String msg = "Atenção turma com código null e nao e' local unit:" + cu.getCode() + " aluno:" + student.getSigesCode();
String msg = "Atenção turma não encontrada para uma unidade do aluno. A Unidade não foi importada do SIGES ou vinha com turma NULL, logo nao se sabe a turma do aluno para escolher, e não e' uma unidade LOCALMENTE ADICIONADA logo devia vir do SIGES ou ter sido removida - unit:" + cu.getCode() + " aluno:" + student.getSigesCode();
serviceLogError(msg);
logger.error(msg);
}
943,7 → 975,7
while(iter.hasNext())
{
CourseUnitTurmaImpl turma = iter.next();
if(turma.getCourseUnit().getImportYear().equals(year))
if(turma.getCourseUnit().getImportYear().equals(year) && turma.getCourseUnit().getInstitutionCode().equals(institutionCode+""))
{
if(student.isLocalUnit(turma.getCourseUnit()) && turmasAfectadas.get(turma) == null)
{
1006,12 → 1038,12
* @param unitsFromSigesPersistentInBaco
* @param student
*/
private void removerUnidadesQueDesapareceramNoSiges(String year, Set<CourseUnit> unitsFromSigesPersistentInBaco, StudentImpl student) {
private void removerUnidadesQueDesapareceramNoSiges(String year, Set<CourseUnit> unitsFromSigesPersistentInBaco, StudentImpl student,int institutionCode) {
Iterator<CourseUnit> iterNowUnits = student.getSubscribedUnits().iterator();
while(iterNowUnits.hasNext())
{
CourseUnit cUNow = iterNowUnits.next();
if(cUNow.getImportYear().equals(year))
if(cUNow.getImportYear().equals(year) && cUNow.getInstitutionCode().equals(""+institutionCode))
//Apenas tentamos apagar as unidades do ano corrente.
//Este servico trabalha com unidades importadas do ano que e passado como argumento
//Se importamos unidades desse ano, as dos outros anos nao vem na lista, logo
1104,6 → 1136,22
Set<CourseUnit> unitsFromSigesPersistentInBaco = new HashSet<CourseUnit>();
for (Disciplina disciplina : alunoSiges.getDisciplinasInscrito())
{
if(disciplina.getCdTurma() == null)
{
turmasVindasANullDoSIGES++;
String msg = "(turmasVindasANullDoSIGES) ATENÇÃO ERRO: Existe uma turma a null numa inscrição vinda do SIGES, procurar razão: unidade:" + disciplina.getCodigo() + " estudante:" + student.getSigesCode() + " possivelmente campo de turma em uso é errado, Vamos tentar usar o campo de outra TURMA P, L, TP, P, O, C, E, S";
serviceLogWarn(msg);
logger.warn(msg);
if(disciplina.getOutraTurma() != null)
{
turmasVindasANullDoSIGESEncontradasNoutroCampo++;
disciplina.setCdTurma(disciplina.getOutraTurma());
msg = "Encontrada Outra Turma: Atenção vai ser usada a turma " + disciplina.getOutraTurmaCode();
serviceLogWarn(msg);
logger.warn(msg);
}
}
 
boolean cursoFicticio = isCursoFicticio(disciplina.getCodigoCurso().intValue());
Integer codigoDoCurso = disciplina.getCodigoCurso().intValue();
 
1214,7 → 1262,8
{
for(CourseUnit found: courseUnits)
{
map_CourseUnit_x_Turma.put(found,disciplina.getCdTurma());
String turma = disciplina.getCdTurma();
map_CourseUnit_x_Turma.put(found, turma);
}
 
unitsFromSigesPersistentInBaco.addAll(courseUnits);
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/dao/AlunoDao.java
133,8 → 133,13
" CSE.T_INSCRI.CD_TURMA_T AS CD_TURMA, " +
" CSE.T_INSCRI.CD_TURMA_P, " +
" CSE.T_INSCRI.CD_TURMA_L, " +
" CSE.T_INSCRI.CD_TURMA_TP " +
" CSE.T_INSCRI.CD_TURMA_TP, " +
" CSE.T_INSCRI.CD_TURMA_S, " +
" CSE.T_INSCRI.CD_TURMA_C, " +
" CSE.T_INSCRI.CD_TURMA_O, " +
" CSE.T_INSCRI.CD_TURMA_E " +
" FROM CSE.T_INSCRI INNER JOIN CSE.T_TBDISCIP ON CSE.T_INSCRI.CD_DISCIP = CSE.T_TBDISCIP.CD_DISCIP" +
//" INNER JOIN CSE.T_CURSOS ON CSE.T_CURSOS.CD_CURSO = CSE.T_INSCRI.CD_CURSO " +
" WHERE CSE.T_INSCRI.CD_ALUNO = " + codigo + " " +
" AND" +
" CSE.T_TBDISCIP.CD_INSTITUIC= " + codigoInstituicao + " AND " +
160,6 → 165,41
d.cdTipoDisciplina = getDecimal("CD_TIPDIS", aReader);
d.cdDuracao = getString("CD_DURACAO", aReader);
d.cdTurma = getString("CD_TURMA", aReader);
if(getString("CD_TURMA_P", aReader) != null)
{
d.outraTurma = getString("CD_TURMA_P", aReader);
d.outraTurmaCode = "P";
}
else if(getString("CD_TURMA_L", aReader) != null)
{
d.outraTurma = getString("CD_TURMA_L", aReader);
d.outraTurmaCode = "L";
}
else if(getString("CD_TURMA_TP", aReader) != null)
{
d.outraTurma = getString("CD_TURMA_TP", aReader);
d.outraTurmaCode = "TP";
}
else if(getString("CD_TURMA_S", aReader) != null)
{
d.outraTurma = getString("CD_TURMA_S", aReader);
d.outraTurmaCode = "S";
}
else if(getString("CD_TURMA_C", aReader) != null)
{
d.outraTurma = getString("CD_TURMA_C", aReader);
d.outraTurmaCode = "C";
}
else if(getString("CD_TURMA_O", aReader) != null)
{
d.outraTurma = getString("CD_TURMA_O", aReader);
d.outraTurmaCode = "O";
}
else if(getString("CD_TURMA_E", aReader) != null)
{
d.outraTurma = getString("CD_TURMA_E", aReader);
d.outraTurmaCode = "E";
}
disciplinas.add(d);
}
//close the reader
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/dao/DisciplinaDao.java
87,7 → 87,7
"CSE.T_INSCRI INNER JOIN CSE.T_TBDISCIP ON CSE.T_INSCRI.CD_DISCIP=CSE.T_TBDISCIP.CD_DISCIP " +
"INNER JOIN CSE.T_CURSOS ON CSE.T_CURSOS.CD_CURSO = CSE.T_INSCRI.CD_CURSO " +
"WHERE "+
" (((((CSE.T_TBDISCIP.CD_INSTITUIC)=" + codigoInstituicao + ") AND ((CSE.T_INSCRI.CD_LECTIVO)='" + ano + "')) AND CSE.T_INSCRI.CD_DURACAO = '" + semestre + "') AND ((CSE.T_INSCRI.CD_STATUS)<>5) AND (CSE.T_INSCRI.CD_TIPDIS = 2 OR CSE.T_INSCRI.CD_TIPDIS = 1))";
" (((((CSE.T_CURSOS.CD_INSTITUIC)=" + codigoInstituicao + ") AND ((CSE.T_INSCRI.CD_LECTIVO)='" + ano + "')) AND CSE.T_INSCRI.CD_DURACAO = '" + semestre + "') AND ((CSE.T_INSCRI.CD_STATUS)<>5) AND (CSE.T_INSCRI.CD_TIPDIS = 2 OR CSE.T_INSCRI.CD_TIPDIS = 1))";
/**\//SO QUEREMOS 1 e 2
* eliminamos tb inscricoes nao regulares STATUS <> 5</>
* As restantes 5 e 6 so servem para depois procurar a Real para atribuir ao aluno
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/oracle/domain/Disciplina.java
13,6 → 13,8
public String cdDuracao;
public Integer codigoInstituicao;
public String cdTurma;
public String outraTurma;
public String outraTurmaCode;
 
 
public String nome;
183,6 → 185,22
this.grauCurso = grauCurso;
}
 
public String getOutraTurma() {
return outraTurma;
}
 
public void setOutraTurma(String outraTurma) {
this.outraTurma = outraTurma;
}
 
public String getOutraTurmaCode() {
return outraTurmaCode;
}
 
public void setOutraTurmaCode(String outraTurmaCode) {
this.outraTurmaCode = outraTurmaCode;
}
 
@Override
public String toString() {
return "Disciplina{" +
192,6 → 210,7
", cdDuracao='" + cdDuracao + '\'' +
", codigoInstituicao=" + codigoInstituicao +
", cdTurma='" + cdTurma + '\'' +
", cdOutraTurma='" + outraTurma + '\'' +
", nome='" + nome + '\'' +
", nomeCurso='" + nomeCurso + '\'' +
", grauCurso='" + grauCurso + '\'' +
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportTeachersService.java
152,7 → 152,7
 
try
{
persist(d, t, newUser,year,logMessages);
persist(d, t, newUser,year,logMessages,institutionCode);
}
catch (Exception e)
{
283,7 → 283,7
* @param institutionCode
* @param codigos
*/
private void removerUnidadesDosDesaparecidosDoSiges(String year, int institutionCode, List<Integer> codigos) {
private void removerUnidadesDosDesaparecidosDoSiges(String year, int institutionCode, List<Integer> codigos) {
String msgS;
List<Integer> codesInBaco = DaoFactory.getTeacherDaoImpl().findAllSigesCodesYear(year,institutionCode);
codesInBaco.removeAll(codigos);
305,7 → 305,7
professoresDesaparecidosDoSigesNesteAno++;
Teacher t = DaoFactory.getTeacherDaoImpl().loadBySigesCode(c);
TeacherImpl teacherImpl = (TeacherImpl) DaoFactory.getTeacherDaoImpl().narrow(t);
removerUnidadesQueDesapareceramNoSiges(year, teacherImpl, new HashSet<CourseUnit>());
removerUnidadesQueDesapareceramNoSiges(year, teacherImpl, new HashSet<CourseUnit>(),institutionCode);
//consistirTurmasAluno(studentImpl, year, new HashMap<CourseUnit, String>());
}
}
435,7 → 435,7
* @param teacher teacher
* @throws Exception .
*/
private void persist(Docente teacherSiges, Teacher teacher, boolean newUser, String year,DefaultLogMessages logmessages) throws Exception
private void persist(Docente teacherSiges, Teacher teacher, boolean newUser, String year,DefaultLogMessages logmessages,int institutionCode) throws Exception
{
String msgS;
try
451,7 → 451,7
/******Logging****/
 
TeacherImpl tImpl = (TeacherImpl) DaoFactory.getTeacherDaoImpl().narrow(teacher);
removerUnidadesQueDesapareceramNoSiges(year, tImpl, new HashSet<CourseUnit>());
removerUnidadesQueDesapareceramNoSiges(year, tImpl, new HashSet<CourseUnit>(),institutionCode);
}
else
{
471,7 → 471,7
//PASSO 3
adicionarCadeirasNovasAoDocente(tImpl, unitsFromSigesPersistentInBaco);
//PASSO 4
removerUnidadesQueDesapareceramNoSiges(year, tImpl, unitsFromSigesPersistentInBaco);
removerUnidadesQueDesapareceramNoSiges(year, tImpl, unitsFromSigesPersistentInBaco,institutionCode);
 
}
 
485,14 → 485,14
List<String> arguments = new ArrayList<String>();
String cause = e.getCause() == null ? "" : e.getCause().toString();
arguments.add((e.toString() + "\n" + cause).replace("\n","<br/>"));
Email email = new Email("Erro de importa��o de professores",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments);
Email email = new Email("Erro de importacao de professores",emails,"baco@estgp.pt","messageToAdmin_pt.txt",arguments);
new SendEmailService().sendEmail(email);
throw e;
}
 
}
 
private void removerUnidadesQueDesapareceramNoSiges(String year, Teacher teacher, Set<CourseUnit> units)
private void removerUnidadesQueDesapareceramNoSiges(String year, Teacher teacher, Set<CourseUnit> units,int institutionCode)
{
//Remover unidades deste ano que nao vem do SIGES e que nao foram adicionadas localmente
Iterator<CourseUnit> iterNowUnits = teacher.getTeachedUnits().iterator();
500,7 → 500,7
while(iterNowUnits.hasNext())
{
CourseUnit cUNow = iterNowUnits.next();
if(cUNow.getImportYear().equals(year))
if(cUNow.getImportYear().equals(year) && cUNow.getInstitutionCode().equals(institutionCode+""))
{
//Apenas tentamos apagar as unidades do ano corrente.
//Este servico trabalha com unidades importadas do ano que e passado como argumento
/branches/v3/impl/src/java/pt/estgp/estgweb/services/sigesimports/ImportCourseService.java
432,7 → 432,7
else
c.setCdTurma("");
c.setName(d.getNome());
c.setInstitutionCode("" + institutionCode);
c.setInstitutionCode("" + d.getCodigoInstituicao());//MUDADO AQUI
c.setCode("" + d.getCodigo().intValue());
c.setCourseCode("" + d.getCodigoCurso());
c.setCourseName("" + d.getNomeCurso());
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/AnswersAlunosProcessor.java
27,6 → 27,7
int unidadesNaoVistasProf = 0;
int unidadesNaoVistasAlunos = 0;
int cursosUtilizados = 0;
int respostasRequisitadas = 0;
 
private static Logger logger = Logger.getLogger(AnswersAlunosProcessor.class);
/**
38,6 → 39,14
protected ILogMessages runJobServiceTask() throws Throwable
{
 
unidadesNaoUtilizadas = 0;
unidadesUtilizadas = 0;
unidadesMarcadas = 0;
unidadesNaoVistasProf = 0;
unidadesNaoVistasAlunos = 0;
cursosUtilizados = 0;
respostasRequisitadas = 0;
 
DefaultLogMessages logMessages = new DefaultLogMessages();
long questionarioId = Long.parseLong(getParametersMap().get(ServiceJob.JOB_questionario_id_KEY).getObject());
QuestionarioImpl q = (QuestionarioImpl) DaoFactory.getQuestionarioDaoImpl().load(questionarioId);
52,6 → 61,10
 
List<Long> cursosAfetosIds = DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().findCursosAfetosIds(questionarioId);
int count = 0;
 
 
UpdateCoursesAndUnitsJobService.revertAllRespostasCandidatas(questionarioId, this);
 
for(Long cursoAfetoId : cursosAfetosIds)
{
/** COMMIT OPERATION **/
67,18 → 80,18
logger.info(msg);
serviceLogInfo(msg);
 
new UpdateCoursesAndUnitsJobService().revertAllRespostasCandidatas(questionarioId);
 
 
int unidades;
if(cu.getUnidadesAfetas() != null)
{
unidades = cu.getUnidadesAfetas().size();
int countUnidadades = 0;
int countUnidades = 0;
for(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeCurricularAfeta: cu.getUnidadesAfetas())
{
countUnidadades++;
countUnidades++;
msg = unidadeCurricularAfeta.isUsar() ? "(+)" : "(----IGNORADA-----)";
msg += "(" + countUnidadades + "/" + unidades + ") Iniciando atribuição de Unidade Curricular Afeta " + unidadeCurricularAfeta.getCodigoUnidade() + " - " + unidadeCurricularAfeta.getNome();
msg += "(" + countUnidades + "/" + unidades + ") Iniciando atribuição de Unidade Curricular Afeta " + unidadeCurricularAfeta.getCodigoUnidade() + " - " + unidadeCurricularAfeta.getNome();
logger.info(msg);
serviceLogInfo(msg);
 
133,6 → 146,7
for(CourseUnitImpl.Tipologia tMerge: tipologias)
{
((QuestionarioPedagogicoUnidadeCurricularAfetaImpl)unidadeCurricularAfeta).incStatTipologiasRequisitadas();
((QuestionarioPedagogicoCursoAfetoImpl)cu).incStatTipologiasRequisitadas();
criarTipologiasRequisitadas(logMessages, q, (QuestionarioPedagogicoUnidadeCurricularAfetaImpl) unidadeCurricularAfeta, (QuestionarioPedagogicoCursoAfetoImpl)cu, cuImpl, tMerge);
}
 
162,6 → 176,7
serviceLogInfo("#unidadesNaoVistasProf:" + unidadesNaoVistasProf);
serviceLogInfo("#unidadesNaoVistasAlunos:" + unidadesNaoVistasAlunos);
serviceLogInfo("#cursosUtilizados:" + cursosUtilizados);
serviceLogInfo("#respostasRequisitadas:" + respostasRequisitadas);
 
logger.info("######################################");
logger.info("######################################");
171,6 → 186,7
logger.info("#unidadesNaoVistasProf:" + unidadesNaoVistasProf);
logger.info("#unidadesNaoVistasAlunos:" + unidadesNaoVistasAlunos);
logger.info("#cursosUtilizados:" + cursosUtilizados);
logger.info("#respostasRequisitadas:" + respostasRequisitadas);
return logMessages;
}
 
278,6 → 294,7
alunoRequisitado.setAluno(s);
alunoRequisitado.setRespostaRequisitada(respostaRequisitada);
DaoFactory.getQuestionarioPedagogicoAlunoRequisitadoDaoImpl().save(alunoRequisitado);
respostasRequisitadas++;
}
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/pedagogico/UpdateCoursesAndUnitsJobService.java
153,16 → 153,18
unidades = cu.getUnidadesAfetas().size();
for(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeCurricularAfeta: cu.getUnidadesAfetas())
{
logger.info("Reverting Unidade Curricular Afeta " + unidadeCurricularAfeta.getCodigoUnidade() + " - " + unidadeCurricularAfeta.getNome());
unidadeCurricularAfeta.setCursoAfeto(null);
DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().delete(unidadeCurricularAfeta);
String msg = "Reverting Unidade Curricular Afeta " + unidadeCurricularAfeta.getCodigoUnidade() + " - " + unidadeCurricularAfeta.getNome();
logger.info(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.WARNING,msg));
if(unidadeCurricularAfeta.getTipologiasRequisitadas() != null && unidadeCurricularAfeta.getTipologiasRequisitadas().size() > 0)
{
String msg = "A unidade " + unidadeCurricularAfeta.getCodigoUnidade() + " tem tipologias requisitadas que tem de ser removidas primeiro, iremos remover todas as tipologias e respostas candidatas associadas";
msg = "A unidade " + unidadeCurricularAfeta.getCodigoUnidade() + " tem tipologias requisitadas que tem de ser removidas primeiro, iremos remover todas as tipologias e respostas candidatas associadas";
logger.warn(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.WARNING,msg));
removeTipologiasERespostasCascade(unidadeCurricularAfeta);
}
unidadeCurricularAfeta.setCursoAfeto(null);
DaoFactory.getQuestionarioPedagogicoUnidadeCurricularAfetaDaoImpl().delete(unidadeCurricularAfeta);
}
}
String msg = "Removendo curso afeto:" + cu.getNome() + " e " + unidades + " uniades afetas";
177,18 → 179,18
}
 
 
public ILogMessages revertAllRespostasCandidatas(long questionarioId) throws NotAuthorizedException {
public static ILogMessages revertAllRespostasCandidatas(long questionarioId, ServiceJob serviceJob) throws NotAuthorizedException {
 
DefaultLogMessages logMessages = new DefaultLogMessages();
String msg = "Revertendo respostas candidatas do questionario " + questionarioId;
logger.warn(msg);
serviceLogWarn(msg);
logger.info(msg);
serviceJob.serviceLogInfo(msg);
 
for(QuestionarioPedagogicoCursoAfeto cu : DaoFactory.getQuestionarioPedagogicoCursoAfetoDaoImpl().find(questionarioId))
{
msg = "Revertendo respostas do curso " + cu.getCodigoCurso() + " , iremos remover todas as tipologias e respostas candidatas associadas";
logger.warn(msg);
serviceLogWarn(msg);
logger.info(msg);
serviceJob.serviceLogInfo(msg);
((QuestionarioPedagogicoCursoAfetoImpl)cu).resetAnswerStats();
 
int unidades = 0;
202,16 → 204,13
if(unidadeCurricularAfeta.getTipologiasRequisitadas() != null && unidadeCurricularAfeta.getTipologiasRequisitadas().size() > 0)
{
msg = "A unidade " + unidadeCurricularAfeta.getCodigoUnidade() + " tem tipologias requisitadas que tem de ser removidas primeiro, iremos remover todas as tipologias e respostas candidatas associadas";
logger.warn(msg);
serviceLogWarn(msg);
logger.info(msg);
serviceJob.serviceLogWarn(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.WARNING,msg));
removeTipologiasERespostasCascade(unidadeCurricularAfeta);
}
}
}
msg = "Removendo curso afeto:" + cu.getNome() + " e " + unidades + " uniades afetas";
logger.info(msg);
serviceLogWarn(msg);
logMessages.addMessage(new DefaultLogMessage("questionario.courses.selection", LogMessageTypeEnum.INFO,msg));
}
return logMessages;
220,7 → 219,7
/**
*
*/
protected void removeTipologiasERespostasCascade(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeAfeta)
protected static void removeTipologiasERespostasCascade(QuestionarioPedagogicoUnidadeCurricularAfeta unidadeAfeta)
{
for(QuestionarioPedagogicoTipologiaRequisitada tr: unidadeAfeta.getTipologiasRequisitadas())
{
273,7 → 272,7
logger.info(msg);
/**logging**/
 
revertAllRespostasCandidatas(questionarioId);
revertAllRespostasCandidatas(questionarioId,this);
 
List<String> newCourseCodesList = new ArrayList<String>();
int count = 0;
515,7 → 514,7
unidadeAfeta.setCursoAfeto(cursoAfeto);//so metemos de um dos lados
unidadeAfeta.setCourseUnit(cu);
unidadeAfeta.setCodigoUnidade(cu.getCode());
unidadeAfeta.setObs("");
unidadeAfeta.addObs("");
unidadeAfeta.setNome(cu.getName());
 
unidadeAfeta.setMarked(false);
682,7 → 681,8
 
public void updateCheckVarPedagogico(long questionarioId,long unidadeAfetaId, String op,String val,UserSession session, QuestionarioImpl questionarioCleared) throws NotAuthorizedException {
 
if(!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS.name()) &&
if(!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT.name()) &&
!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS.name()) &&
!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS.name()) &&
!questionarioCleared.isClear((UserSessionImpl) session,QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_TIPOLOGIES.name()))
{
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/PedagogicoAlunosProcessor.java
101,9 → 101,10
 
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_ADMIN))
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_CHECK_STUDENTS_ADMIN))
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS.name(),usession);
//s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT.name(),usession);
}
 
if((usession.getUser().isSuperuserOrAdmin()
111,6 → 112,7
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_CHECK_TEACHERS_ADMIN))
{
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS.name(),usession);
s.addClearance(QuestionarioImpl.QuestionarioClearancesOperation.QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT.name(),usession);
}
 
if((usession.getUser().isSuperuserOrAdmin()
/branches/v3/impl/src/java/pt/estgp/estgweb/services/questionarios/QuestionariosService.java
113,4 → 113,23
}
}
 
/**
* Passa para o estado ASSIGNED_ANSWERS
* @param questionarioId
* @param userSession
* @param questionarioCleared
* @return
*/
public QuestionarioImpl putAssignedAnswers(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared)
{
 
return questionarioCleared;
}
 
public QuestionarioImpl startProcessement(long questionarioId, UserSession userSession,QuestionarioImpl questionarioCleared)
{
 
return questionarioCleared;
}
 
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/views/CourseUnitView.java
34,6 → 34,7
private String courseName;
private String semestre;
private String importYear;
private String institutionCode;
private String contentsGrants;
private BlogView blog;
private String pathIntranet;
142,6 → 143,7
this.sumariosPathFileIntranet = ((CourseUnitImpl)courseUnit).getSummariosPathFileIntranet();
this.evaluationOpenByAdmin = courseUnit.isEvaluationOpenByAdmin(); //nao tem persistencia propria tem de ser feito num serviço
this.cdTurma = courseUnit.getCdTurma();
this.institutionCode = courseUnit.getInstitutionCode();
 
// this.objectives = courseUnit.getObjectives(); DEPRECATED
if(courseUnit.getCourseUnitProgram() !=null && courseUnit.getCourseUnitProgram().getCourseUnitProgramPart2() != null)
470,6 → 472,7
c.setCode(code);
c.setCdTurma(cdTurma);
c.setSemestre(semestre);
c.setInstitutionCode(institutionCode);
if(courseId > 0)
{
c.setCourse(DaoFactory.getCourseDaoImpl().load(courseId));
729,7 → 732,14
return true;
}
 
public String getInstitutionCode() {
return institutionCode;
}
 
public void setInstitutionCode(String institutionCode) {
this.institutionCode = institutionCode;
}
 
public boolean isValidProgram()
{
return validProgram;
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoUnidadeCurricularAfetaImpl.java
9,8 → 9,10
{
if(getObs() == null)
setObs("");
else if(obs.trim().length() > 0)
setObs(getObs() + " ; ");
 
setObs(getObs() + " ; " + obs);
setObs(getObs() + obs);
}
 
public void resetStats() {
19,7 → 21,7
setStudents(0);
setProfs(0);
setMarked(false);
setObs("");
//setObs("");
setProfsWithoutTurma(0);
setTurmas(0);
setTurmaWithoutProf(0);
27,10 → 29,11
}
 
public void resetAnswerStats() {
 
setStatTipologiasRequisitadas(0);
setStatRespostasRequisitadas(0);
}
 
public void incStatTipologiasRequisitadas(){ setStatTipologiasRequisitadas(getStatRespostasRequisitadas()+1);}
public void incStatTipologiasRequisitadas(){ setStatTipologiasRequisitadas(getStatTipologiasRequisitadas()+1);}
public void incStatRespostasRequisitadas(){ setStatRespostasRequisitadas(getStatRespostasRequisitadas() + 1);}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioImpl.java
30,7 → 30,7
 
CREATED(1),
ASSIGNATION_DETAILS(2),
ASSIGNING_ANSWERS_PROCESSEMENT(3),
ASSIGNING_ANSWERS_PROCESSEMENT(3), //NAO USADO NO PEDAGOGIGO OS ESTADOS INTERNOS RESOLVEM O PROBLEMA
ASSIGNED_ANSWERS(4),
PROCESSING(5),
PROCESSING_WITH_ANSWERS(6),
289,7 → 289,7
 
if((usession.getUser().isSuperuserOrAdmin()
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ADMIN))
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_ADMIN)
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_CHECK_STUDENTS_ADMIN)
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_TIPOLOGIAS_ADMIN)
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_ASSIGNEMENTS_CHECK_TEACHERS_ADMIN)
|| usession.getUser().hasRole(Globals.QUESTIONARIOS_GERAIS))
323,7 → 323,7
 
getiAnswersProcessorClass().initClearances(this,usession,s);
}
if(getStateEnum() == State.ASSIGNING_ANSWERS_PROCESSEMENT)
if(getStateEnum() == State.ASSIGNED_ANSWERS)
{
 
}
344,6 → 344,9
QUESTIONARIO_DELETE,
QUESTIONARIO_REVERT_ALL_ASSIGNEMENTS,
 
QUESTIONARIO_START_PROCESSEMENT,
QUESTIONARIO_REVERT_TO_ASSIGNATION_DETAILS,
 
/*Pedagogico Cursos*/
QUESTIONARIO_SET_ANO_SEMESTRE,
QUESTIONARIO_SCHEDULLE_SELECT_COURSES,
353,6 → 356,7
QUESTIONARIO_SEE_START_ASSIGN_ANSWERS,
QUESTIONARIO_CHANGE_ASSIGNEMENTS,
QUESTIONARIO_CHANGE_ASSIGNEMENTS_CHECK_TEACHERS,
QUESTIONARIO_CHANGE_ASSIGNEMENTS_USE_UNIT,
QUESTIONARIO_FINNISH_ASSIGNEMENTS,
;
 
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/QuestionarioPedagogicoCursoAfetoDaoImpl.java
1,6 → 1,7
package pt.estgp.estgweb.domain.dao.impl;
 
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
import org.hibernate.Query;
import org.hibernate.criterion.Projections;
import pt.estgp.estgweb.domain.QuestionarioPedagogicoCursoAfeto;
14,6 → 15,8
*/
public class QuestionarioPedagogicoCursoAfetoDaoImpl extends QuestionarioPedagogicoCursoAfetoDao{
 
private static final Logger logger = Logger.getLogger(QuestionarioPedagogicoCursoAfetoDaoImpl.class);
 
public static QuestionarioPedagogicoCursoAfetoDaoImpl getInstance() {
if (myInstance == null)
myInstance = new QuestionarioPedagogicoCursoAfetoDaoImpl();
55,6 → 58,18
public long naoUsadas;
}
 
public static class QuestionarioStatsVars
{
public long cursos;
public long unidades;
public long profs;
public long alunos;
public long turmas;
public long alunosDeUsadas;
public long profsDeUsadas;
public long unidadesUsadas;
}
 
public CourseStatsVars loadStats(long cursoAfetoId)
{
CourseStatsVars courseStatsVars = new CourseStatsVars();
72,13 → 87,58
 
q.setLong("id",cursoAfetoId);
Object[] results = (Object[]) q.uniqueResult();
courseStatsVars.porVer = (Long) results[0];
courseStatsVars.porVerProfs = (Long) results[1];
courseStatsVars.naoUsadas = (Long) results[2];
courseStatsVars.marcadas = (Long) results[3];
courseStatsVars.observadas = (Long) results[4];
courseStatsVars.unidades = (Long) results[5];
 
if(results != null && results[0] != null)
{
courseStatsVars.porVer = (Long) results[0];
courseStatsVars.porVerProfs = (Long) results[1];
courseStatsVars.naoUsadas = (Long) results[2];
courseStatsVars.marcadas = (Long) results[3];
courseStatsVars.observadas = (Long) results[4];
courseStatsVars.unidades = (Long) results[5];
}
 
return courseStatsVars;
}
 
public QuestionarioStatsVars loadQuestionarioStats(long questionarioId)
{
QuestionarioStatsVars questionarioStatsVars = new QuestionarioStatsVars();
Query q = AbstractDao.getCurrentSession().createQuery("SELECT " +
" count(distinct c.id) AS cursos " +
",count(distinct u.id) AS unidades " +
",sum (u.profs) AS profs " +
",sum (u.turmas) AS turmas " +
",sum (u.students) AS students " +
",sum (case when u.usar = true then u.students else 0 end) AS alunosDeUsadas " +
",sum (case when u.usar = true then u.profs else 0 end) AS profsDeUsadas " +
",sum (case when u.usar = true then 1 else 0 end) AS unidadesUsadas " +
",sum (case when u.usar = true then 1 else 1 end) AS unidadesTodasCheck " +
"from " + QuestionarioPedagogicoCursoAfeto.class.getName() + " c " +
"JOIN c.questionario q " +
"JOIN c.unidadesAfetas u " +
"WHERE q.id = :id " +
"GROUP BY u.id");
 
q.setLong("id",questionarioId);
Object[] results = (Object[]) q.uniqueResult();
 
if(results != null && results[0] != null)
{
questionarioStatsVars.cursos = (Long) results[0];
questionarioStatsVars.unidades = (Long) results[1];
questionarioStatsVars.profs = (Long) results[2];
questionarioStatsVars.turmas = (Long) results[3];
questionarioStatsVars.alunos = (Long) results[4];
questionarioStatsVars.alunosDeUsadas = (Long) results[5];
questionarioStatsVars.profsDeUsadas = (Long) results[6];
questionarioStatsVars.unidadesUsadas = (Long) results[7];
 
if(((Long) results[8]) != questionarioStatsVars.unidades)
logger.error("TEM UM ERRO NA QUERY, a contagem de usadas com o distinct da diferente de com o SUM");
 
}
 
return questionarioStatsVars;
}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseDaoImpl.java
67,7 → 67,24
.uniqueResult();
}
 
public int countCoursesUnits(String importYear,long courseId,String semestre)
{
/* return createCriteria()
.createAlias("courseUnits", "c")
.setProjection(Projections.property("c.id"))
.add(eq("c.importYear", importYear))
.add(eq("id", courseId))
.list().size();
*/
return (Integer) createCriteria(CourseUnit.class)
.setProjection(Projections.rowCount())
.add(eq("importYear",importYear))
.add(eq("semestre",semestre))
.add(eq("course.id",courseId))
.uniqueResult();
}
 
 
public int countCoursesUnitsTurmas(String importYear,long courseId)
{
return (Integer) createCriteria(CourseUnitTurma.class)
231,7 → 248,7
}
if (institutionCode != null && institutionCode.trim().length() > 0)
{
query += logic + "cu.institutionCode = :institutionCode ";
query += logic + "c.institutionalCode = :institutionCode ";
logic = " and ";
}
if (area != null && area.length() > 0)
/branches/v3/impl/src/java/pt/estgp/estgweb/domain/QuestionarioPedagogicoCursoAfetoImpl.java
28,6 → 28,6
setStatRespostasRequisitadas(0);
}
 
public void incStatTipologiasRequisitadas(){ setStatTipologiasRequisitadas(getStatRespostasRequisitadas()+1);}
public void incStatTipologiasRequisitadas(){ setStatTipologiasRequisitadas(getStatTipologiasRequisitadas()+1);}
public void incStatRespostasRequisitadas(){ setStatRespostasRequisitadas(getStatRespostasRequisitadas() + 1);}
}
/branches/v3/impl/src/java/pt/estgp/estgweb/web/controllers/questionarios/QuestionarioController.java
141,5 → 141,64
}
 
 
public ActionForward putInAssignedAnwsers(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable
{
 
 
QuestionarioForm frm = (QuestionarioForm) form;
 
long questionarioId;
if(request.getParameter("questionarioId")!=null)
questionarioId = Long.parseLong(request.getParameter("questionarioId"));
else
questionarioId = frm.getQuestionario().getId();
 
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId"};
Object[] args = {questionarioId};
 
QuestionarioImpl affected = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"QuestionarioPutAssignedAnswers",args,names);
 
frm.setQuestionario(affected);
 
return mapping.findForward("admin");
}
 
public ActionForward startProcessement(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Throwable
{
 
 
QuestionarioForm frm = (QuestionarioForm) form;
 
long questionarioId;
if(request.getParameter("questionarioId")!=null)
questionarioId = Long.parseLong(request.getParameter("questionarioId"));
else
questionarioId = frm.getQuestionario().getId();
 
 
IServiceManager sm = ServiceManager.getInstance();
String[] names = {"questionarioId"};
Object[] args = {questionarioId};
 
QuestionarioImpl affected = (QuestionarioImpl) sm.execute(RequestUtils.getRequester(request, response),"QuestionarioStartProcessement",args,names);
 
frm.setQuestionario(affected);
 
return mapping.findForward("admin");
}
 
 
 
 
 
}
/branches/v3/impl/src/doc/estgweb.eap
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/branches/v3/impl/src/doc/siges/ModeloDeInformacaoPAE-EmVigor.docx
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream
/branches/v3/impl/src/doc/siges/ModeloDeInformacaoPAEv2.docx
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+ application/octet-stream