Search in sources :

Example 1 with DistribuicaoDAO

use of com.tomasio.projects.trainning.dao.DistribuicaoDAO in project trainning by fernandotomasio.

the class AtividadesEnsinoServiceSimpleImpl method calculateCustoPrevistoAdministrativo.

@Override
@Transactional(readOnly = true)
public BigDecimal calculateCustoPrevistoAdministrativo(TurmaEfetivaDTO[] turmas) {
    BigDecimal result = new BigDecimal(0);
    DistribuicaoDAO distribuicaoDAO = factory.getDistribuicaoDAO();
    String parameterIcea = ConfigHelper.getValue("custos.icea");
    BigDecimal custoIndividualIcea = new BigDecimal(parameterIcea);
    OrganizacaoDAO organizacaoDAO = factory.getOrganizacaoDAO();
    try {
        for (TurmaEfetivaDTO turma : turmas) {
            List<Distribuicao> vagas = distribuicaoDAO.findAll(turma.getId());
            FaseDTO[] fases = turma.getFases();
            for (FaseDTO fase : fases) {
                if ("PRESENCIAL".equals(fase.getTipoFase())) {
                    int intervalo = 0;
                    if (fase.getDataInicio() != null && fase.getDataTermino() != null) {
                        DateTime dataInicio = new DateTime(fase.getDataInicio().getTime());
                        DateTime dataTermino = new DateTime(fase.getDataTermino().getTime());
                        Days d = Days.daysBetween(dataInicio, dataTermino);
                        intervalo = d.getDays() + 2;
                    }
                    if (intervalo <= 0) {
                        continue;
                    }
                    int countVagas = 0;
                    for (Distribuicao vaga : vagas) {
                        if (vaga.isReserva()) {
                            continue;
                        }
                        countVagas++;
                    }
                    BigDecimal custoTurma = custoIndividualIcea.multiply(new BigDecimal(intervalo)).multiply(new BigDecimal(countVagas));
                    result = result.add(custoTurma);
                }
            }
        }
    } catch (DAOException ex) {
        Logger.getLogger(AtividadesEnsinoServiceSimpleImpl.class.getName()).log(Level.SEVERE, null, ex);
    }
    return result;
}
Also used : DistribuicaoDAO(com.tomasio.projects.trainning.dao.DistribuicaoDAO) BigDecimal(java.math.BigDecimal) DateTime(org.joda.time.DateTime) FaseDTO(com.tomasio.projects.trainning.dto.FaseDTO) DAOException(com.tomasio.projects.trainning.exception.DAOException) OrganizacaoDAO(com.tomasio.projects.trainning.dao.OrganizacaoDAO) TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) Distribuicao(com.tomasio.projects.trainning.model.Distribuicao) Days(org.joda.time.Days) Transactional(org.springframework.transaction.annotation.Transactional)

Example 2 with DistribuicaoDAO

use of com.tomasio.projects.trainning.dao.DistribuicaoDAO in project trainning by fernandotomasio.

the class AtividadesEnsinoServiceSimpleImpl method findAllDistribuicoes.

@Override
@Transactional(readOnly = true)
public DistribuicaoDTO[] findAllDistribuicoes() {
    DistribuicaoDAO dao = factory.getDistribuicaoDAO();
    DistribuicaoDTO[] distribuicoesArray = null;
    try {
        List<Distribuicao> distribuicoes = dao.findAll();
        if (distribuicoes != null) {
            distribuicoesArray = new DistribuicaoDTO[distribuicoes.size()];
            for (int i = 0; i < distribuicoes.size(); i++) {
                distribuicoesArray[i] = distribuicoes.get(i).createDTOWithoutDependencies();
            }
        }
    } 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());
    }
    return distribuicoesArray;
}
Also used : DAOException(com.tomasio.projects.trainning.exception.DAOException) DistribuicaoDTO(com.tomasio.projects.trainning.dto.DistribuicaoDTO) CoreException(com.tomasio.projects.trainning.exeption.CoreException) Distribuicao(com.tomasio.projects.trainning.model.Distribuicao) DistribuicaoDAO(com.tomasio.projects.trainning.dao.DistribuicaoDAO) DAOException(com.tomasio.projects.trainning.exception.DAOException) ParseException(java.text.ParseException) CoreException(com.tomasio.projects.trainning.exeption.CoreException) Transactional(org.springframework.transaction.annotation.Transactional)

Example 3 with DistribuicaoDAO

use of com.tomasio.projects.trainning.dao.DistribuicaoDAO in project trainning by fernandotomasio.

the class ImportTurmasImplEfetivasFromTabelao method distribuirVagas.

private void distribuirVagas(int codTabelao, TurmaEfetiva turmaCriada, Connection conn) {
    try {
        // DAOFactory factory = DAOUtil.getDAOFactory();
        DistribuicaoDAO distribuicaoDAO = new HibernateDistribuicaoDAO();
        OrganizacaoDAO organizacaoDAO = new HibernateOrganizacaoDAO();
        Statement stm = conn.createStatement();
        ResultSet rs = stm.executeQuery("select * from distribuicaovagas where codTabelao=" + codTabelao);
        while (rs.next()) {
            String local = rs.getString("local");
            int quantidadeVagas = rs.getInt("quantidade");
            boolean reserva = rs.getBoolean("reserva");
            local = corrigirLocal(local);
            Organizacao organizacao = organizacaoDAO.findBySigla(local);
            if (organizacao == null) {
                System.out.println("DISTRIBUIÇÃO NÃO IMPORTADA: " + turmaCriada.getCurso().getCodigo() + " - " + turmaCriada.getNumeroTurma() + " ->" + local);
                continue;
            }
            if (quantidadeVagas < 1) {
                System.out.println("DISTRIBUIÇÃO - DISTRIBUIÇÃO DE 0 VAGAS");
                continue;
            }
            if ((organizacao != null) && (quantidadeVagas > 0)) {
                Distribuicao distribuicao = new Distribuicao();
                if (organizacao != null) {
                    distribuicao.setOrganizacao(organizacao);
                }
                distribuicao.setTurma(turmaCriada);
                distribuicao.setQuantidadeVagas(quantidadeVagas);
                distribuicao.setReserva(false);
                distribuicaoDAO.create(distribuicao);
            } else {
                if (organizacao == null) {
                    System.out.println(turmaCriada.getCurso().getCodigo() + " - " + turmaCriada.getNumeroTurma() + "organização não encontrada: " + local);
                }
                if (quantidadeVagas <= 0) {
                    System.out.println(turmaCriada.getCurso().getCodigo() + " - " + turmaCriada.getNumeroTurma() + "quantidade de vagas inválida: " + local);
                }
            }
        }
    } 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 : HibernateOrganizacaoDAO(com.tomasio.projects.trainning.dao.HibernateOrganizacaoDAO) DistribuicaoDAO(com.tomasio.projects.trainning.dao.DistribuicaoDAO) HibernateDistribuicaoDAO(com.tomasio.projects.trainning.dao.HibernateDistribuicaoDAO) DAOException(com.tomasio.projects.trainning.exception.DAOException) OrganizacaoDAO(com.tomasio.projects.trainning.dao.OrganizacaoDAO) HibernateOrganizacaoDAO(com.tomasio.projects.trainning.dao.HibernateOrganizacaoDAO) HibernateDistribuicaoDAO(com.tomasio.projects.trainning.dao.HibernateDistribuicaoDAO) Organizacao(com.tomasio.projects.trainning.model.Organizacao) Distribuicao(com.tomasio.projects.trainning.model.Distribuicao)

Example 4 with DistribuicaoDAO

use of com.tomasio.projects.trainning.dao.DistribuicaoDAO in project trainning by fernandotomasio.

the class AtividadesEnsinoServiceSimpleImpl method findAllDistribuicoes.

@Override
@Transactional(readOnly = true)
public DistribuicaoDTO[] findAllDistribuicoes(Long turmaId) {
    DistribuicaoDAO dao = factory.getDistribuicaoDAO();
    DistribuicaoDTO[] distribuicoesArray = null;
    try {
        List<Distribuicao> distribuicoes = dao.findAll(turmaId);
        if (distribuicoes != null) {
            distribuicoesArray = new DistribuicaoDTO[distribuicoes.size()];
            for (int i = 0; i < distribuicoes.size(); i++) {
                distribuicoesArray[i] = distribuicoes.get(i).createDTOWithoutDependencies();
            }
        }
    } 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());
    }
    return distribuicoesArray;
}
Also used : DAOException(com.tomasio.projects.trainning.exception.DAOException) DistribuicaoDTO(com.tomasio.projects.trainning.dto.DistribuicaoDTO) CoreException(com.tomasio.projects.trainning.exeption.CoreException) Distribuicao(com.tomasio.projects.trainning.model.Distribuicao) DistribuicaoDAO(com.tomasio.projects.trainning.dao.DistribuicaoDAO) DAOException(com.tomasio.projects.trainning.exception.DAOException) ParseException(java.text.ParseException) CoreException(com.tomasio.projects.trainning.exeption.CoreException) Transactional(org.springframework.transaction.annotation.Transactional)

Example 5 with DistribuicaoDAO

use of com.tomasio.projects.trainning.dao.DistribuicaoDAO in project trainning by fernandotomasio.

the class AtividadesEnsinoServiceSimpleImpl method calculateCustoPrevistoAlunos.

@Override
@Transactional(readOnly = true)
public Map<String, BigDecimal> calculateCustoPrevistoAlunos(TurmaEfetivaDTO[] turmas) {
    Map<String, BigDecimal> result = new HashMap();
    DistribuicaoDAO distribuicaoDAO = factory.getDistribuicaoDAO();
    String parameterDiaria = ConfigHelper.getValue("custos.diaria");
    String parameterPassagem = ConfigHelper.getValue("custos.passagem");
    BigDecimal diaria = new BigDecimal(parameterDiaria);
    BigDecimal passagem = new BigDecimal(parameterPassagem);
    OrganizacaoDAO organizacaoDAO = factory.getOrganizacaoDAO();
    BigDecimal transportePrevisto = new BigDecimal(0.00);
    BigDecimal diariasPrevisto = new BigDecimal(0.00);
    try {
        for (TurmaEfetivaDTO turma : turmas) {
            List<Distribuicao> vagas = distribuicaoDAO.findAll(turma.getId());
            FaseDTO[] fases = turma.getFases();
            for (FaseDTO fase : fases) {
                if ("PRESENCIAL".equals(fase.getTipoFase())) {
                    int intervalo = 0;
                    if (fase.getDataInicio() != null && fase.getDataTermino() != null) {
                        DateTime dataInicio = new DateTime(fase.getDataInicio().getTime());
                        DateTime dataTermino = new DateTime(fase.getDataTermino().getTime());
                        Days d = Days.daysBetween(dataInicio, dataTermino);
                        intervalo = d.getDays() + 2;
                    }
                    if (intervalo <= 0) {
                        continue;
                    }
                    if (intervalo > 50) {
                        intervalo = 50;
                    }
                    for (Distribuicao vaga : vagas) {
                        if (vaga.isReserva()) {
                            continue;
                        }
                        Organizacao organizacaoAluno = organizacaoDAO.find(vaga.getOrganizacao().getId());
                        if (organizacaoAluno.createDTO() instanceof ExternoDTO) {
                            continue;
                        }
                        Organizacao organizacaoLocal = organizacaoDAO.find(fase.getLocal().getId());
                        if (!organizacaoAluno.getCidade().getId().equals(organizacaoLocal.getCidade().getId())) {
                            diariasPrevisto = diariasPrevisto.add(diaria.multiply(new BigDecimal(intervalo)).multiply(new BigDecimal(vaga.getQuantidadeVagas())));
                            transportePrevisto = transportePrevisto.add(passagem.multiply(new BigDecimal(vaga.getQuantidadeVagas())));
                        }
                    }
                }
            }
        }
    } catch (DAOException ex) {
        Logger.getLogger(AtividadesEnsinoServiceSimpleImpl.class.getName()).log(Level.SEVERE, null, ex);
    }
    result.put("transporte", transportePrevisto);
    result.put("diarias", diariasPrevisto);
    result.put("total", diariasPrevisto.add(transportePrevisto));
    return result;
}
Also used : HashMap(java.util.HashMap) DistribuicaoDAO(com.tomasio.projects.trainning.dao.DistribuicaoDAO) BigDecimal(java.math.BigDecimal) DateTime(org.joda.time.DateTime) FaseDTO(com.tomasio.projects.trainning.dto.FaseDTO) DAOException(com.tomasio.projects.trainning.exception.DAOException) OrganizacaoDAO(com.tomasio.projects.trainning.dao.OrganizacaoDAO) TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) Organizacao(com.tomasio.projects.trainning.model.Organizacao) Distribuicao(com.tomasio.projects.trainning.model.Distribuicao) Days(org.joda.time.Days) ExternoDTO(com.tomasio.projects.trainning.dto.ExternoDTO) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

DistribuicaoDAO (com.tomasio.projects.trainning.dao.DistribuicaoDAO)9 DAOException (com.tomasio.projects.trainning.exception.DAOException)9 Distribuicao (com.tomasio.projects.trainning.model.Distribuicao)9 Transactional (org.springframework.transaction.annotation.Transactional)8 CoreException (com.tomasio.projects.trainning.exeption.CoreException)6 ParseException (java.text.ParseException)6 OrganizacaoDAO (com.tomasio.projects.trainning.dao.OrganizacaoDAO)3 DistribuicaoDTO (com.tomasio.projects.trainning.dto.DistribuicaoDTO)3 FaseDTO (com.tomasio.projects.trainning.dto.FaseDTO)2 TurmaEfetivaDTO (com.tomasio.projects.trainning.dto.TurmaEfetivaDTO)2 Organizacao (com.tomasio.projects.trainning.model.Organizacao)2 BigDecimal (java.math.BigDecimal)2 DateTime (org.joda.time.DateTime)2 Days (org.joda.time.Days)2 HibernateDistribuicaoDAO (com.tomasio.projects.trainning.dao.HibernateDistribuicaoDAO)1 HibernateOrganizacaoDAO (com.tomasio.projects.trainning.dao.HibernateOrganizacaoDAO)1 ExternoDTO (com.tomasio.projects.trainning.dto.ExternoDTO)1 HashMap (java.util.HashMap)1