/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 |