Search in sources :

Example 11 with IndicacaoAluno

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);
    }
}
Also used : TurmaEfetiva(com.tomasio.projects.trainning.model.TurmaEfetiva) Date(java.util.Date) DAOException(com.tomasio.projects.trainning.exception.DAOException) IndicacaoAluno(com.tomasio.projects.trainning.model.IndicacaoAluno) Organizacao(com.tomasio.projects.trainning.model.Organizacao) ParseException(java.text.ParseException) SimpleDateFormat(java.text.SimpleDateFormat) Session(org.hibernate.Session)

Example 12 with IndicacaoAluno

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);
    }
}
Also used : IndicacaoAluno(com.tomasio.projects.trainning.model.IndicacaoAluno) TurmaEfetiva(com.tomasio.projects.trainning.model.TurmaEfetiva) SQLException(java.sql.SQLException) Curso(com.tomasio.projects.trainning.model.Curso) Session(org.hibernate.Session)

Example 13 with IndicacaoAluno

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);
    }
}
Also used : HibernatePessoaDAO(com.tomasio.projects.trainning.dao.HibernatePessoaDAO) PessoaDAO(com.tomasio.projects.trainning.dao.PessoaDAO) HibernateOrganizacaoDAO(com.tomasio.projects.trainning.dao.HibernateOrganizacaoDAO) Date(java.util.Date) Pessoa(com.tomasio.projects.trainning.model.Pessoa) IndicacaoDAO(com.tomasio.projects.trainning.dao.IndicacaoDAO) HibernateIndicacaoDAO(com.tomasio.projects.trainning.dao.HibernateIndicacaoDAO) DAOException(com.tomasio.projects.trainning.exception.DAOException) OrganizacaoDAO(com.tomasio.projects.trainning.dao.OrganizacaoDAO) HibernateOrganizacaoDAO(com.tomasio.projects.trainning.dao.HibernateOrganizacaoDAO) IndicacaoAluno(com.tomasio.projects.trainning.model.IndicacaoAluno) MatriculaAluno(com.tomasio.projects.trainning.model.MatriculaAluno) HibernateMatriculaDAO(com.tomasio.projects.trainning.dao.HibernateMatriculaDAO) Organizacao(com.tomasio.projects.trainning.model.Organizacao) HibernateMatriculaDAO(com.tomasio.projects.trainning.dao.HibernateMatriculaDAO) MatriculaDAO(com.tomasio.projects.trainning.dao.MatriculaDAO) HibernateIndicacaoDAO(com.tomasio.projects.trainning.dao.HibernateIndicacaoDAO) HibernatePessoaDAO(com.tomasio.projects.trainning.dao.HibernatePessoaDAO)

Example 14 with IndicacaoAluno

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"));
    }
}
Also used : DAOException(com.tomasio.projects.trainning.exception.DAOException) IndicacaoAluno(com.tomasio.projects.trainning.model.IndicacaoAluno) HibernateException(org.hibernate.HibernateException) Criteria(org.hibernate.Criteria) ParseException(java.text.ParseException) SimpleDateFormat(java.text.SimpleDateFormat) Session(org.hibernate.Session)

Example 15 with IndicacaoAluno

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"));
    }
}
Also used : DAOException(com.tomasio.projects.trainning.exception.DAOException) IndicacaoAluno(com.tomasio.projects.trainning.model.IndicacaoAluno) HibernateException(org.hibernate.HibernateException) Session(org.hibernate.Session)

Aggregations

IndicacaoAluno (com.tomasio.projects.trainning.model.IndicacaoAluno)22 DAOException (com.tomasio.projects.trainning.exception.DAOException)20 IndicacaoDAO (com.tomasio.projects.trainning.dao.IndicacaoDAO)15 ParseException (java.text.ParseException)14 IndicacaoAlunoDTO (com.tomasio.projects.trainning.dto.IndicacaoAlunoDTO)12 Transactional (org.springframework.transaction.annotation.Transactional)12 CoreException (com.tomasio.projects.trainning.exeption.CoreException)11 Session (org.hibernate.Session)6 Indicacao (com.tomasio.projects.trainning.model.Indicacao)5 IndicacaoInstrutor (com.tomasio.projects.trainning.model.IndicacaoInstrutor)4 HashMap (java.util.HashMap)4 HibernateException (org.hibernate.HibernateException)4 HibernateIndicacaoDAO (com.tomasio.projects.trainning.dao.HibernateIndicacaoDAO)3 TurmaEfetiva (com.tomasio.projects.trainning.model.TurmaEfetiva)3 SimpleDateFormat (java.text.SimpleDateFormat)3 Date (java.util.Date)3 List (java.util.List)3 HibernateMatriculaDAO (com.tomasio.projects.trainning.dao.HibernateMatriculaDAO)2 HibernatePreMatriculaDAO (com.tomasio.projects.trainning.dao.HibernatePreMatriculaDAO)2 MatriculaDAO (com.tomasio.projects.trainning.dao.MatriculaDAO)2