use of com.tomasio.projects.trainning.model.IndicacaoAluno 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.IndicacaoAluno in project trainning by fernandotomasio.
the class PostgreSqlCapacitaDAO method exportData.
@SuppressWarnings("unchecked")
@Override
public void exportData(Map<Object, Object> dataMap, Long turmaId) throws DAOException {
Session session = sessionFactory.getCurrentSession();
TurmaEfetiva turma = (TurmaEfetiva) session.get(TurmaEfetiva.class, turmaId);
Curso curso = (Curso) session.get(Curso.class, turma.getCurso().getId());
List<IndicacaoAluno> indicacoes = session.createQuery("from IndicacaoAluno indicacao where indicacao.turma.id=:turmaId order by indicacao.dataCriacao, indicacao.organizacao.sigla, indicacao.prioridade").setLong("turmaId", turmaId).list();
try {
openTransaction();
exportCurso(curso);
exportTurma(turma);
exportIndicacoes(indicacoes, turma);
commit();
} catch (SQLException ex) {
Logger.getLogger(PostgreSqlCapacitaDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
use of com.tomasio.projects.trainning.model.IndicacaoAluno in project trainning by fernandotomasio.
the class ImportTurmasImplEfetivasFromTabelao method recuperarIndicacoes.
private void recuperarIndicacoes(int codTabelao, TurmaEfetiva turmaCriada, Connection conn) {
try {
IndicacaoDAO indicacaoDAO = new HibernateIndicacaoDAO();
OrganizacaoDAO organizacaoDAO = new HibernateOrganizacaoDAO();
PessoaDAO pessoaDAO = new HibernatePessoaDAO();
MatriculaDAO matriculaDAO = new HibernateMatriculaDAO();
Statement stm = conn.createStatement();
ResultSet rs = stm.executeQuery("select * from indicacoes where codTabelao=" + codTabelao);
while (rs.next()) {
String local = rs.getString("LOCATUAL");
String cpf = rs.getString("cpf");
String email = rs.getString("email");
String emailChefia = rs.getString("email_chefia");
String justificativa = rs.getString("justificativa");
boolean aprovado = rs.getBoolean("aprovado");
int prioridade = rs.getInt("prioridade");
Date dataCriacao = rs.getDate("dataIndicacao");
if (dataCriacao == null) {
dataCriacao = new Date();
}
boolean matriculado = rs.getBoolean("matriculado");
local = ImportHelper.corrigirLocal(local);
Organizacao organizacao = organizacaoDAO.findBySigla(local);
Pessoa pessoa = ImportHelper.findPessoa(cpf, conn);
if (pessoa != null) {
IndicacaoAluno indicacao = new IndicacaoAluno();
indicacao.setDataCriacao(new Date());
if (organizacao != null) {
indicacao.setOrganizacao(organizacao);
} else {
indicacao.setOrganizacao(organizacaoDAO.findBySigla("DECEA"));
}
indicacao.setPessoa(pessoa);
indicacao.setTurma(turmaCriada);
indicacao.setEmail(email);
indicacao.setEmailChefia(emailChefia);
indicacao.setJustificativa(justificativa);
indicacao.setPrioridade(prioridade);
indicacao.setDataCriacao(dataCriacao);
Long indicacaoId = indicacaoDAO.create(indicacao);
if (matriculado) {
MatriculaAluno matricula = new MatriculaAluno();
matricula.setIndicacao(indicacaoDAO.find(indicacaoId));
matricula.setPessoa(pessoa);
matricula.setTurma(turmaCriada);
matriculaDAO.create(matricula);
}
} else {
System.out.println("INDICAÇÃO NÃO IMPORTADA: " + turmaCriada.getCurso().getCodigo() + " - " + turmaCriada.getNumeroTurma() + " ->" + cpf);
}
}
} catch (SQLException ex) {
Logger.getLogger(ImportTurmasImplEfetivasFromTabelao.class.getName()).log(Level.SEVERE, null, ex);
} catch (DAOException ex) {
Logger.getLogger(ImportTurmasImplEfetivasFromTabelao.class.getName()).log(Level.SEVERE, null, ex);
}
}
use of com.tomasio.projects.trainning.model.IndicacaoAluno in project trainning by fernandotomasio.
the class HibernateIndicacaoDAO method findAllAlunosByOrganizacoesBeneficiadas.
@Override
public List<IndicacaoAluno> findAllAlunosByOrganizacoesBeneficiadas(Date exercicio, List<Long> organizacoesBeneficiadasIds, List<Long> cursosIds, List<Long> turmasIds) throws DAOException {
if (organizacoesBeneficiadasIds == null || organizacoesBeneficiadasIds.size() <= 0) {
throw new IllegalArgumentException("É obrigatório informar a organização beneficiada");
}
Session session = sessionFactory.getCurrentSession();
try {
Criteria criteria = session.createCriteria(IndicacaoAluno.class);
// ProjectionList proList = Projections.projectionList();
// proList.add(Projections.property("pessoa"));
// proList.add(Projections.property("turma"));
//
criteria.createAlias("turma", "t");
criteria.createAlias("pessoa", "p");
criteria.createAlias("t.curso", "c");
criteria.add(Restrictions.in("organizacaoBeneficiada.id", organizacoesBeneficiadasIds));
if (exercicio != null) {
SimpleDateFormat df = new SimpleDateFormat("yyyy");
try {
exercicio = df.parse(df.format(exercicio));
} catch (ParseException ex) {
Logger.getLogger(HibernateIndicacaoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
criteria.add(Restrictions.eq("t.exercicio", exercicio));
}
if (cursosIds != null && cursosIds.size() > 0) {
criteria.add(Restrictions.in("c.id", cursosIds));
}
if (turmasIds != null && turmasIds.size() > 0) {
criteria.add(Restrictions.in("t.id", turmasIds));
}
criteria.addOrder(Order.asc("c.codigo"));
criteria.addOrder(Order.asc("organizacaoBeneficiada.id"));
criteria.addOrder(Order.asc("t.numeroTurma"));
criteria.addOrder(Order.desc("p.oficial"));
criteria.addOrder(Order.desc("p.nome"));
@SuppressWarnings("unchecked") List<IndicacaoAluno> indicacoes = criteria.list();
return indicacoes;
} catch (HibernateException e) {
Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, e);
throw new DAOException(MessageHelper.getMessage("indicacoes.find.list.error"));
}
}
use of com.tomasio.projects.trainning.model.IndicacaoAluno in project trainning by fernandotomasio.
the class HibernateIndicacaoDAO method create.
@Override
public Long create(Indicacao indicacao) throws DAOException {
Session session = sessionFactory.getCurrentSession();
if (indicacao instanceof IndicacaoAluno) {
// teste: se já tem indicao com a mesma prioridade
// não permitir e avisar ao usuário
Long countIndicacao = (Long) session.createQuery("" + "select count(*) from IndicacaoAluno i " + "where i.turma.id = :turmaId " + "and i.prioridade = :prioridade " + "and i.organizacao.id=:organizacaoId").setLong("turmaId", indicacao.getTurma().getId()).setLong("prioridade", indicacao.getPrioridade()).setLong("organizacaoId", indicacao.getOrganizacao().getId()).uniqueResult();
if (countIndicacao > 0) {
throw new DAOException("Prioridade já utilizada em outra indicação desta Organização");
}
// teste: se já indicado para esta turma do curso
// não permitir e avisar ao usuário
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", indicacao.getTurma().getId()).uniqueResult();
if (countIndicacao > 0) {
throw new DAOException("Indicação já existente");
}
}
try {
Long indicacaoId = (Long) session.save(indicacao);
return indicacaoId;
} catch (HibernateException e) {
Logger.getLogger(HibernateIndicacaoDAO.class.getName()).log(Level.SEVERE, null, e);
throw new DAOException(MessageHelper.getMessage("indicacoes.create.error"));
}
}
Aggregations