use of com.tomasio.projects.trainning.model.TurmaEfetiva in project trainning by fernandotomasio.
the class AtividadesEnsinoServiceSimpleImpl method removePreMatricula.
@Override
@Transactional
public void removePreMatricula(Long preMatriculaId) {
PreMatriculaDAO preMatriculaDAO = factory.getPreMatriculaDAO();
IndicacaoDAO indicacaoDAO = factory.getIndicacaoDAO();
TurmaDAO turmaDAO = factory.getTurmaDAO();
try {
PreMatricula preMatricula = preMatriculaDAO.find(preMatriculaId);
Indicacao indicacao = preMatricula.getIndicacao();
TurmaEfetiva turma = preMatricula.getTurma();
preMatriculaDAO.remove(preMatriculaId);
indicacao.setPreMatriculado(false);
indicacaoDAO.update(indicacao);
if (hasPreMatriculas(turma.getId())) {
turma.setPreAtivado(true);
} else {
turma.setPreAtivado(false);
}
turmaDAO.update(turma);
} catch (DAOException ex) {
ex.printStackTrace();
throw new CoreException(ex.getMessage());
} catch (Exception ex) {
ex.printStackTrace();
throw new CoreException("Erro em tempo de execução: " + ex.getMessage());
}
}
use of com.tomasio.projects.trainning.model.TurmaEfetiva in project trainning by fernandotomasio.
the class HibernateIndicacaoDAO method travaDeIndicacao.
@Override
public void travaDeIndicacao(Indicacao indicacao, String chamada) throws DAOException {
Session session = sessionFactory.getCurrentSession();
TurmaEfetiva turma = (TurmaEfetiva) session.get(TurmaEfetiva.class, indicacao.getTurma().getId());
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
SimpleDateFormat dfExec = new SimpleDateFormat("yyyy");
Date exercicio = null;
try {
exercicio = dfExec.parse(dfExec.format(new Date()));
} catch (ParseException ex) {
Logger.getLogger(HibernateIndicacaoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
String erroMessage = "";
boolean erro = false;
String message = "<br>";
// if (indicacao instanceof IndicacaoAluno) {
// teste: se matriculado no mesmo curso no ano vigente
// não permitir e avisar ao usuário - COMGAP PODE
@SuppressWarnings("unchecked") List<Matricula> matriculasNesteCurso = session.createQuery("" + "from MatriculaAluno m " + "where m.pessoa.id = :pessoaId " + "and m.turma.exercicio=:exercicio " + "and m.turma.curso.id=:cursoId").setLong("pessoaId", indicacao.getPessoa().getId()).setLong("cursoId", turma.getCurso().getId()).setDate("exercicio", exercicio).list();
if (matriculasNesteCurso.size() > 0) {
// vasculhar as matriculas para verificar se é válida e pegar os detalhes
for (Matricula matricula : matriculasNesteCurso) {
Organizacao organizacaoGestora = (Organizacao) session.get(Organizacao.class, matricula.getTurma().getOrganizacaoGestoraId());
// verificar se é válida
if (!matricula.isCancelada()) {
String ano;
ano = dfExec.format(matricula.getTurma().getExercicio());
message += "=> " + matricula.getTurma().getCurso().getCodigo() + " - " + matricula.getTurma().getNumeroTurma() + " / " + ano + " (" + organizacaoGestora.getSigla() + ") - Período de " + df.format(matricula.getTurma().getDataInicio()) + " a " + df.format(matricula.getTurma().getDataTermino()) + "<br>";
}
}
erroMessage += "O candidato já está matriculado neste curso no ano vigente, na(s) seguinte(s) edição(ões):<br>" + message + "<BR>";
erro = true;
// throw new DAOException("O candidato já está matriculado neste curso no ano vigênte");
}
// teste: se já concluiu COM APROVEITAMENTO esse curso anteriormente
// não permitir e avisar ao usuário - COMGAP PODE
@SuppressWarnings("unchecked") List<Conclusao> conclusoes = session.createQuery("" + "from Conclusao c " + "where c.pessoa.id = :pessoaId " + "and c.capacitacao.id= :capacitacaoId " + "and c.comAproveitamento=true").setLong("pessoaId", indicacao.getPessoa().getId()).setLong("capacitacaoId", turma.getCurso().getId()).list();
if (conclusoes.size() > 0) {
message = "";
// vasculhar as apresentacoes para pegar os detalhes
for (Conclusao curso : conclusoes) {
if (curso.getMatricula() != null) {
String ano;
Organizacao organizacaoGestora = (Organizacao) session.get(Organizacao.class, curso.getMatricula().getTurma().getOrganizacaoGestoraId());
ano = dfExec.format(curso.getMatricula().getTurma().getExercicio());
message += "=> " + curso.getMatricula().getTurma().getCurso().getCodigo() + " - " + curso.getMatricula().getTurma().getNumeroTurma() + " / " + ano + " (" + organizacaoGestora.getSigla() + ") - Período de " + df.format(curso.getMatricula().getTurma().getDataInicio()) + " a " + df.format(curso.getMatricula().getTurma().getDataTermino()) + "<br>";
} else {
// curso concluído sem vínculo com tumas do SGC
message += "=> " + curso.getAno() + " (" + curso.getLocal() + ") - Período de " + df.format(curso.getPeriodo().getDataInicio()) + " a " + df.format(curso.getPeriodo().getDataTermino()) + "<br>";
}
}
erroMessage += "O Candidato já concluiu com aproveitamento esta capacitação em:<br>" + message + "<br>";
erro = true;
// throw new DAOException("Capacitação já realizada por este indicado");
}
// não permitir e avisar ao usuário - COMGAP PODE
if (turma.getDataInicio() != null && turma.getDataTermino() != null) {
Date dataInicioIndic = null;
Date dataTerminoIndic = null;
try {
dataInicioIndic = df.parse(df.format(turma.getDataInicio()));
dataTerminoIndic = df.parse(df.format(turma.getDataTermino()));
} catch (ParseException ex) {
Logger.getLogger(HibernateIndicacaoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
// verificar se tem matricula em curso
@SuppressWarnings("unchecked") List<Matricula> matriculas = session.createQuery("" + "from MatriculaAluno m " + "where m.pessoa.id = :pessoaId").setLong("pessoaId", indicacao.getPessoa().getId()).list();
if (matriculas.size() > 0) {
// foi matriculado antes
// verificar se alguma dessa é no mesmo período da indicação
// descobrir a menor data inicio e a maior data de termino
boolean mesmaData = false;
boolean erroMesmaData = false;
message = "";
// vasculhar as matriculas
for (Matricula matricula : matriculas) {
// verificar se é válida
if (!matricula.isCancelada()) {
if (matricula.getTurma().getDataInicio() != null && matricula.getTurma().getDataTermino() != null) {
Date dataInicioMatricula = null;
Date dataTerminoMatricula = null;
try {
dataInicioMatricula = df.parse(df.format(matricula.getTurma().getDataInicio()));
dataTerminoMatricula = df.parse(df.format(matricula.getTurma().getDataTermino()));
} catch (ParseException ex) {
Logger.getLogger(HibernateIndicacaoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
// verificar se o período da indicação coincide
if ((dataInicioIndic.equals(dataInicioMatricula)) || (dataInicioIndic.equals(dataTerminoMatricula)) || (dataTerminoIndic.equals(dataInicioMatricula)) || (dataTerminoIndic.equals(dataTerminoMatricula))) {
mesmaData = true;
// verificar se o curso em que está mariculado está dentro do curso indicado
} else if ((dataInicioIndic.before(dataInicioMatricula) && dataTerminoIndic.after(dataTerminoMatricula))) {
// dentro do periodo de indicação
mesmaData = true;
// verificar se o INICIO do curso em que está matriculado está dentro do curso indicado
} else if ((dataInicioIndic.before(dataInicioMatricula) && dataTerminoIndic.after(dataInicioMatricula))) {
// inicio do matriculado dentro do indicado
mesmaData = true;
// verificar se o TEMINO do curso em que está matriculado está dentro do curso indicado
} else if ((dataInicioIndic.before(dataTerminoMatricula) && dataTerminoIndic.after(dataTerminoMatricula))) {
// termino do matriculado dentro do indicado
mesmaData = true;
// verificar se o curso em que está indicado está dentro do curso matriculado
} else if ((dataInicioIndic.after(dataInicioMatricula) && dataTerminoIndic.before(dataTerminoMatricula))) {
// mariculado dentro do periodo do curso a ser indicado
mesmaData = true;
}
if (mesmaData == true) {
String ano;
ano = dfExec.format(matricula.getTurma().getExercicio());
Organizacao organizacaoGestora = (Organizacao) session.get(Organizacao.class, matricula.getTurma().getOrganizacaoGestoraId());
// teste: se já matriculado em curso nesta mesma data
erroMesmaData = true;
// não permitir e avisar ao usuário
message += "=> " + matricula.getTurma().getCurso().getCodigo() + " - " + matricula.getTurma().getNumeroTurma() + " / " + ano + " (" + organizacaoGestora.getSigla() + ") - Período de " + df.format(matricula.getTurma().getDataInicio()) + " a " + df.format(matricula.getTurma().getDataTermino()) + "<br>";
}
}
mesmaData = false;
}
}
// loop varendo todas matriculas
if (erroMesmaData) {
erroMessage += "O candidato já está matriculado no(s) seguinte(s) curso(s) no mesmo período:<br>" + message + "<br>";
erro = true;
// throw new DAOException("O candidato já está matriculado no(s) seguinte(s) curso(s) no mesmo período: " + message + "<br>");
}
}
}
// teste: se já indicado para esta turma do curso
// não permitir e avisar ao usuário
Long countIndicacao = null;
// VERIFICAR QUEM CHAMOU O MÉTODO
if (chamada.equals("CREATE")) {
countIndicacao = (Long) session.createQuery("" + "select count(*) from IndicacaoAluno i " + "where i.pessoa.id = :pessoaId " + "and i.turma.id = :turmaId").setLong("pessoaId", indicacao.getPessoa().getId()).setLong("turmaId", turma.getId()).uniqueResult();
} else if (chamada.equals("UPDATE")) {
countIndicacao = (Long) session.createQuery("" + "select count(*) from IndicacaoAluno i " + "where i.pessoa.id = :pessoaId " + "and i.turma.id = :turmaId " + "and i.id <> :indicacaoId").setLong("indicacaoId", indicacao.getId()).setLong("pessoaId", indicacao.getPessoa().getId()).setLong("turmaId", turma.getId()).uniqueResult();
}
if (countIndicacao > 0) {
erroMessage += "O candidato já está indicado para esta Turma<br>";
erro = true;
// throw new DAOException("Indicação já existente");
}
// }
// teste: se concluiu SEM aproveitamento algum curso no ano vigente
// não permitir e avisar ao usuário - COMGAP PODE
// verificar matricula VÁLIDA com conclusão SEM APROVEITAMENTO
Long countMatricula = (Long) session.createQuery("" + "select count(*) from MatriculaAluno m " + "where m.pessoaId = :pessoaId " + "and m.turma.exercicio=:exercicio").setLong("pessoaId", indicacao.getPessoa().getId()).setDate("exercicio", exercicio).uniqueResult();
if (countMatricula > 0) {
// teve matriculas no ano
// verificar se o curso matriculado já terminou e se não concluiu
@SuppressWarnings("unchecked") List<Matricula> matriculas = session.createQuery("" + "from MatriculaAluno m " + "where m.pessoa.id = :pessoaId " + "and m.turma.exercicio=:exercicio").setLong("pessoaId", indicacao.getPessoa().getId()).setDate("exercicio", exercicio).list();
message = "";
boolean erroNaoConcluiuComAproveitamento = false;
// vasculhar as matriculas
for (Matricula matricula : matriculas) {
// verificar se matricula válida
if (!matricula.isCancelada()) {
// verificar se curso terminou
if (matricula.getTurma().getDataTermino().before(new Date())) {
@SuppressWarnings("unchecked") List<Conclusao> conclusoesSemAproveitamento = session.createQuery("" + "from Conclusao conclusao " + "where conclusao.matricula.id=:matriculaId" + "and conclusao.comAproveitamento=false").setLong("matriculaId", matricula.getId()).list();
if (conclusoesSemAproveitamento.size() > 0) {
// vasculhar para verificar se não estão justificadas
for (Conclusao conclusao : conclusoesSemAproveitamento) {
if (!conclusao.isJustificado()) {
// não justificada
erroNaoConcluiuComAproveitamento = true;
String ano;
Organizacao organizacaoGestora = (Organizacao) session.get(Organizacao.class, matricula.getTurma().getOrganizacaoGestoraId());
ano = dfExec.format(matricula.getTurma().getExercicio());
// teste: concluiu sem aproveitamnto algum curso no ano vigente
message += "=> " + matricula.getTurma().getCurso().getCodigo() + " - " + matricula.getTurma().getNumeroTurma() + " / " + ano + " (" + organizacaoGestora.getSigla() + ") - Período de " + df.format(matricula.getTurma().getDataInicio()) + " a " + df.format(matricula.getTurma().getDataTermino()) + "<br>";
}
}
}
}
}
}
if (erroNaoConcluiuComAproveitamento) {
erroMessage += "O candidato concluíu sem aproveitamento o(s) seguinte(s) cuso(s) no ano vigentem:<br>" + message + "<br>As conclusões sem aproveitamento, quando não justificadas, impossilitam a idicação no ano vigente<br>";
erro = true;
// throw new DAOException("O candidato não concluíu o(s) seguinte(s) cuso(s) " + message + "no ano vigentem o impossibilitando de ser indicado.");
}
}
// teste final de erro
if (erro) {
throw new DAOException(erroMessage);
}
}
use of com.tomasio.projects.trainning.model.TurmaEfetiva in project trainning by fernandotomasio.
the class HibernateIndicacaoDAO method alertaDeIndicacao.
@SuppressWarnings("unchecked")
@Override
public void alertaDeIndicacao(Indicacao indicacao, String chamada) throws DAOException {
Session session = sessionFactory.getCurrentSession();
TurmaEfetiva turma = (TurmaEfetiva) session.get(TurmaEfetiva.class, indicacao.getTurma().getId());
SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy");
SimpleDateFormat dfExec = new SimpleDateFormat("yyyy");
Date exercicio = null;
try {
exercicio = dfExec.parse(dfExec.format(new Date()));
} catch (ParseException ex) {
Logger.getLogger(HibernateIndicacaoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
String erroMessage = "<br>";
boolean erro = false;
// if (indicacao instanceof IndicacaoAluno) {
// teste: se indicado no mesmo curso em edições diferentes
// avisar ao usuário
// VERIFICAR QUEM CHAMOU O MÉTODO
Long countIndicacao = null;
if (chamada.equals("CREATE")) {
countIndicacao = (Long) session.createQuery("" + "select count(*) from IndicacaoAluno i " + "where i.pessoa.id = :pessoaId " + "and i.turma.exercicio=:exercicio " + "and i.turma.id <> :turmaId " + "and i.turma.curso.id = :cursoId").setLong("pessoaId", indicacao.getPessoa().getId()).setLong("cursoId", turma.getCurso().getId()).setDate("exercicio", exercicio).setLong("turmaId", indicacao.getTurma().getId()).uniqueResult();
} else if (chamada.equals("UPDATE")) {
countIndicacao = (Long) session.createQuery("" + "select count(*) from IndicacaoAluno i " + "where i.pessoa.id = :pessoaId " + "and i.turma.exercicio=:exercicio " + "and i.turma.curso.id = :cursoId " + "and i.turma.id <> :turmaId " + "and i.id <> :indicacaoId").setLong("indicacaoId", indicacao.getId()).setLong("pessoaId", indicacao.getPessoa().getId()).setLong("cursoId", turma.getCurso().getId()).setDate("exercicio", exercicio).setLong("turmaId", indicacao.getTurma().getId()).uniqueResult();
}
if (countIndicacao > 0) {
List<IndicacaoAluno> indicacoes = null;
if (chamada.equals("CREATE")) {
indicacoes = session.createQuery("" + "from IndicacaoAluno i " + "where i.pessoa.id = :pessoaId " + "and i.turma.exercicio=:exercicio " + "and i.turma.id <> :turmaId " + "and i.turma.curso.id = :cursoId").setLong("pessoaId", indicacao.getPessoa().getId()).setLong("cursoId", turma.getCurso().getId()).setDate("exercicio", exercicio).setLong("turmaId", turma.getId()).list();
} else if (chamada.equals("UPDATE")) {
indicacoes = session.createQuery("" + "from IndicacaoAluno i " + "where i.pessoa.id = :pessoaId " + "and i.turma.exercicio=:exercicio " + "and i.turma.curso.id = :cursoId " + "and i.turma.id <> :turmaId " + "and i.id <> :indicacaoId").setLong("indicacaoId", indicacao.getId()).setLong("pessoaId", indicacao.getPessoa().getId()).setLong("cursoId", turma.getCurso().getId()).setDate("exercicio", exercicio).setLong("turmaId", indicacao.getTurma().getId()).list();
}
String message = "";
if (indicacoes.size() > 0) {
// vasculhar as indicacoes para coletar os detalhes das edições
for (@SuppressWarnings("unused") IndicacaoAluno indic : indicacoes) {
String ano;
ano = dfExec.format(turma.getExercicio());
Organizacao organizacaoGestora = (Organizacao) session.get(Organizacao.class, turma.getOrganizacaoGestoraId());
message += "=> " + turma.getCurso().getCodigo() + " - " + turma.getNumeroTurma() + " / " + ano + " (" + organizacaoGestora.getSigla() + ") - Período de " + df.format(turma.getDataInicio()) + " a " + df.format(turma.getDataTermino()) + "<br>";
}
// loop varendo todas matriculas
erroMessage += "O candidato já está indicado neste curso no ano vigente nas seguinte(s) edição(ões):<br>" + message + "<br>";
erro = true;
// throw new DAOException("O candidato já está indicado neste curso nas seguinte(s) edição(ões) " + message + " no ano vigente.");
}
}
// }
if (erro) {
throw new DAOException(erroMessage);
}
}
use of com.tomasio.projects.trainning.model.TurmaEfetiva in project trainning by fernandotomasio.
the class HibernateTurmaDAO method findAllTurmasEfetivasNotCancelOfResponsavelOrResponsavelConclusao.
@SuppressWarnings("unchecked")
@Override
public List<TurmaEfetiva> findAllTurmasEfetivasNotCancelOfResponsavelOrResponsavelConclusao(Date exercicio, Long organizacaoId) throws DAOException {
Session session = sessionFactory.getCurrentSession();
SimpleDateFormat df = new SimpleDateFormat("yyyy");
try {
exercicio = df.parse(df.format(exercicio));
} catch (ParseException ex) {
Logger.getLogger(HibernateTurmaDAO.class.getName()).log(Level.SEVERE, null, ex);
}
try {
// selecionar todas turmas da organizacao no ano
List<TurmaEfetiva> turmas = session.createQuery("from TurmaEfetiva t " + "where t.exercicio = :exercicio " + "and (t.responsavelId = :organizacaoId1 or t.responsavelConclusaoId = :organizacaoId2)" + "and t.cancelado = false").setLong("organizacaoId1", organizacaoId).setLong("organizacaoId2", organizacaoId).setDate("exercicio", exercicio).list();
Collections.sort(turmas, new TurmaEfetivaSort());
return turmas;
} catch (HibernateException e) {
Logger.getLogger(HibernateTurmaDAO.class.getName()).log(Level.SEVERE, null, e);
throw new DAOException(MessageHelper.getMessage("turmas.find.list.error"));
}
}
use of com.tomasio.projects.trainning.model.TurmaEfetiva in project trainning by fernandotomasio.
the class HibernateTurmaDAO method instantiateTurma.
@SuppressWarnings("unused")
private Turma instantiateTurma(TurmaDTO dto) {
Turma turma;
if (dto instanceof TurmaEfetivaDTO) {
TurmaEfetivaDTO aux = (TurmaEfetivaDTO) dto;
turma = new TurmaEfetiva(aux);
} else {
TurmaPlanejadaDTO aux = (TurmaPlanejadaDTO) dto;
turma = new TurmaPlanejada(aux);
}
return turma;
}
Aggregations