Search in sources :

Example 71 with TurmaEfetivaDTO

use of com.tomasio.projects.trainning.dto.TurmaEfetivaDTO in project trainning by fernandotomasio.

the class TurmasEfetivasController method showIndex.

@RequestMapping({ "/", "/index", "" })
public String showIndex(Model model, TurmaSearchForm searchForm, BindingResult bindingResult, @ModelAttribute("organizacaoGestora") OrganizacaoDTO organizacaoGestora, HttpServletRequest request) {
    SimpleDateFormat dfYear = new SimpleDateFormat("yyyy");
    SimpleDateFormat dfDate = new SimpleDateFormat("yyyyMMdd");
    Date exercicio = null;
    if (searchForm.getAno() != null) {
        try {
            exercicio = dfYear.parse(searchForm.getAno());
        } catch (ParseException ex) {
            Logger.getLogger(TurmasEfetivasController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    if (exercicio == null) {
        try {
            exercicio = dfYear.parse("2018");
        // DEVE MOSTRAR O ANO VIGENTE
        // exercicio = (Date) dfYear.parse(dfYear.format(new Date()));
        } catch (ParseException ex) {
            Logger.getLogger(TurmasEfetivasController.class.getName()).log(Level.SEVERE, null, ex);
        }
        searchForm.setAno(dfYear.format(exercicio));
    }
    searchForm.setOrganizacaoGestoraId(organizacaoGestora.getId().toString());
    TurmaEfetivaDTO[] turmas;
    if (searchForm.getSearch() == null || searchForm.getSearch().equals("")) {
        turmas = atividadesEnsinoService.findAllTurmasEfetivas(exercicio, null, null, null, Long.parseLong(searchForm.getOrganizacaoGestoraId()), null);
    } else {
        turmas = atividadesEnsinoService.searchTurmasEfetivas(exercicio, null, null, null, Long.parseLong(searchForm.getOrganizacaoGestoraId()), searchForm.getSearch(), null, null);
    }
    List turmasDataList = new ArrayList();
    for (TurmaEfetivaDTO turma : turmas) {
        String responsavelId = turma.getResponsavelId() + "";
        // System.out.println("responsavel" + responsavelId + " turmaId = " + turma.getId());
        // verificar se usuário filtrou por searchForm.getStatus() (STATUS da Turma)
        // int prazoPendencia = 35;
        boolean pendenteDecea = false;
        if (searchForm.getStatus() == null || searchForm.getStatus().equals("")) {
            // verificar usuário filtrou por searchForm.getOrganizacaoId (OM Responsável)
            if (searchForm.getOrganizacaoId() == null || searchForm.getOrganizacaoId().equals("")) {
                // Não filtrou por Responsável
                // não usou nenhum dos dois filtros
                Map item = new HashMap();
                item.put("id", turma.getId());
                item.put("codigo", turma.getCurso().getCodigo());
                item.put("descricao", turma.getCurso().getDescricao());
                item.put("local", turma.getLocal());
                try {
                    if (turma.getCurso().getAreaId() != null) {
                        AreaDTO area = trainningService.findArea(turma.getCurso().getAreaId());
                        if (area != null) {
                            item.put("area", area.getSigla());
                        } else {
                            item.put("area", "N/D");
                        }
                    } else {
                        item.put("area", "N/D");
                    }
                } catch (Exception e) {
                    item.put("area", "N/D");
                }
                OrganizacaoDTO responsavel = organizationalService.findOrganizacao(turma.getResponsavelId());
                item.put("responsavel", responsavel.getSigla());
                item.put("numero", turma.getNumeroTurma());
                item.put("dataInicio", turma.getDataInicioFormatted());
                item.put("dataTermino", turma.getDataTerminoFormatted());
                item.put("dataAtivacao", turma.getDataAtivacaoFormatted());
                if (turma.getPeriodoIndicacao() != null) {
                    item.put("dataInicioIndicacoes", turma.getPeriodoIndicacao().getDataInicioFormated());
                    item.put("dataTerminoIndicacoes", turma.getPeriodoIndicacao().getDataTerminoFormated());
                }
                item.put("extra", turma.isExtra());
                if (turma.getDataInicio() != null) {
                    item.put("dataInicioHidden", dfDate.format(turma.getDataInicio()));
                } else {
                    item.put("dataInicioHidden", "9999");
                }
                if (turma.getDataTermino() != null) {
                    item.put("dataTerminoHidden", dfDate.format(turma.getDataTermino()));
                } else {
                    item.put("dataTerminoHidden", "9999");
                }
                if (turma.getPeriodoIndicacao() != null && turma.getPeriodoIndicacao().getDataInicio() != null) {
                    item.put("dataInicioIndicacoesHidden", dfDate.format(turma.getPeriodoIndicacao().getDataInicio()));
                } else {
                    item.put("dataInicioIndicacoesHidden", "9999");
                }
                if (turma.getPeriodoIndicacao() != null && turma.getPeriodoIndicacao().getDataTermino() != null) {
                    item.put("dataTerminoIndicacoesHidden", dfDate.format(turma.getPeriodoIndicacao().getDataTermino()));
                } else {
                    item.put("dataTerminoIndicacoesHidden", "9999");
                }
                if (turma.getDataAtivacao() != null) {
                    item.put("dataAtivacaoHidden", dfDate.format(turma.getDataAtivacao()));
                } else {
                    item.put("dataAtivacaoHidden", "9999");
                }
                item.put("openForIndicacoes", turma.isOpenForIndicacoes());
                if (turma.getStatus().equals("INDICAÇÕES EM ANÁLISE")) {
                    item.put("cssClass", "info");
                }
                if (turma.getStatus().equals("ATIVADO")) {
                    item.put("cssClass", "ativado");
                }
                if (turma.getStatus().equals("EM ANDAMENTO")) {
                    item.put("cssClass", "andamento");
                }
                if (turma.getStatus().equals("PROGRAMADO")) {
                    // item.put("cssClass", "pendente blink_me");
                    if (organizacaoGestora.getSigla().equals("DECEA")) {
                        // REGRA SOMENTE PARA OS CURSOS DO DECEA !!
                        if (turma.getDataAtivacao() != null) {
                            Calendar data = Calendar.getInstance();
                            // if (turma.getDataAtivacao().before(data.getTime()) || turma.getDataAtivacao().before(data2.getTime())) {
                            if (turma.getDataAtivacao().before(data.getTime())) {
                                item.put("cssClass", "pendente blink_me");
                                pendenteDecea = true;
                            } else {
                                item.put("cssClass", "programado");
                            }
                        }
                    } else {
                        item.put("cssClass", "programado");
                    }
                }
                if (turma.isCancelado()) {
                    item.put("cssClass", "cancelado");
                }
                if (turma.getStatus().equals("INSC. ABERTAS")) {
                    item.put("cssClass", "success");
                }
                if (turma.getProcessStatus() != null && turma.getProcessStatus().equals("AGUARDANDO DIVULGAÇÃO")) {
                    item.remove("cssClass");
                    item.put("cssClass", "danger");
                }
                // TEM QUE FICAR POR ÚLTIMO
                if ((turma.getDataInicioFormatted() != null) && (turma.getDataInicioFormatted().equalsIgnoreCase("31/12/2017") || turma.isAdiado())) {
                    item.put("status", "ADIADO");
                    item.remove("cssClass");
                    item.put("cssClass", "danger");
                } else if (pendenteDecea) {
                    // REGRA SOMENTE PARA OS CURSOS DO DECEA !!
                    item.put("status", "PENDENTE");
                } else {
                    item.put("status", turma.getStatus());
                }
                item.put("processStatus", turma.getProcessStatus());
                turmasDataList.add(item);
            } else // filtrou por Responsável
            if (searchForm.getOrganizacaoId().equals(responsavelId)) {
                // comparar se a turma é igual filtro passado
                Map item = new HashMap();
                item.put("id", turma.getId());
                item.put("codigo", turma.getCurso().getCodigo());
                item.put("descricao", turma.getCurso().getDescricao());
                item.put("local", turma.getLocal());
                // try {
                if (turma.getCurso().getArea().getId() != null) {
                    AreaDTO area = trainningService.findArea(turma.getCurso().getAreaId());
                    if (area != null) {
                        item.put("area", area.getSigla());
                    } else {
                        item.put("area", "N/D");
                    }
                } else {
                    item.put("area", "N/D");
                }
                // } catch (Exception e) {
                // item.put("area", "N/D");
                // }
                OrganizacaoDTO responsavel = organizationalService.findOrganizacao(turma.getResponsavelId());
                item.put("responsavel", responsavel.getSigla());
                item.put("numero", turma.getNumeroTurma());
                item.put("dataInicio", turma.getDataInicioFormatted());
                item.put("dataTermino", turma.getDataTerminoFormatted());
                item.put("extra", turma.isExtra());
                item.put("openForIndicacoes", turma.isOpenForIndicacoes());
                // INCLUI EM 21/02/18
                if (turma.getStatus().equals("INDICAÇÕES EM ANÁLISE")) {
                    item.put("cssClass", "info");
                }
                if (turma.getStatus().equals("ATIVADO")) {
                    item.put("cssClass", "ativado");
                }
                if (turma.getStatus().equals("EM ANDAMENTO")) {
                    item.put("cssClass", "andamento");
                }
                if (turma.getStatus().equals("PROGRAMADO")) {
                    // item.put("cssClass", "pendente blink_me");
                    if (organizacaoGestora.getSigla().equals("DECEA")) {
                        // REGRA SOMENTE PARA OS CURSOS DO DECEA !!
                        if (turma.getDataAtivacao() != null) {
                            Calendar data = Calendar.getInstance();
                            // if (turma.getDataAtivacao().before(data.getTime()) || turma.getDataAtivacao().before(data2.getTime())) {
                            if (turma.getDataAtivacao().before(data.getTime())) {
                                item.put("cssClass", "pendente blink_me");
                                pendenteDecea = true;
                            } else {
                                item.put("cssClass", "programado");
                            }
                        }
                    } else {
                        item.put("cssClass", "programado");
                    }
                }
                if (turma.isCancelado()) {
                    item.put("cssClass", "cancelado");
                }
                if (turma.getStatus().equals("INSC. ABERTAS")) {
                    item.put("cssClass", "success");
                }
                if (turma.getProcessStatus() != null && turma.getProcessStatus().equals("AGUARDANDO DIVULGAÇÃO")) {
                    item.remove("cssClass");
                    item.put("cssClass", "danger");
                }
                // TEM QUE FICAR POR ÚLTIMO
                if ((turma.getDataInicioFormatted() != null) && (turma.getDataInicioFormatted().equalsIgnoreCase("31/12/2017") || turma.isAdiado())) {
                    item.put("status", "ADIADO");
                    item.remove("cssClass");
                    item.put("cssClass", "danger");
                } else if (pendenteDecea) {
                    // REGRA SOMENTE PARA OS CURSOS DO DECEA !!
                    item.put("status", "PENDENTE");
                } else {
                    item.put("status", turma.getStatus());
                }
                turmasDataList.add(item);
            }
        } else // usuário filtrou por searchForm.getStatus()
        if (turma.getStatus().equals(searchForm.getStatus())) {
            // verificar se ele filtrou pelo responsavel
            if (searchForm.getOrganizacaoId() == null || searchForm.getOrganizacaoId().equals("")) {
                // Não filtrou por Responsável
                Map item = new HashMap();
                item.put("id", turma.getId());
                item.put("codigo", turma.getCurso().getCodigo());
                item.put("descricao", turma.getCurso().getDescricao());
                item.put("local", turma.getLocal());
                // try {
                if (turma.getCurso().getArea().getId() != null) {
                    AreaDTO area = trainningService.findArea(turma.getCurso().getAreaId());
                    if (area != null) {
                        item.put("area", area.getSigla());
                    } else {
                        item.put("area", "N/D");
                    }
                } else {
                    item.put("area", "N/D");
                }
                // } catch (Exception e) {
                // item.put("area", "N/D");
                // }
                OrganizacaoDTO responsavel = organizationalService.findOrganizacao(turma.getResponsavelId());
                item.put("responsavel", responsavel.getSigla());
                item.put("numero", turma.getNumeroTurma());
                item.put("dataInicio", turma.getDataInicioFormatted());
                item.put("dataTermino", turma.getDataTerminoFormatted());
                item.put("extra", turma.isExtra());
                item.put("openForIndicacoes", turma.isOpenForIndicacoes());
                // INCLUI EM 21/02/18
                if (turma.getStatus().equals("INDICAÇÕES EM ANÁLISE")) {
                    item.put("cssClass", "info");
                }
                if (turma.getStatus().equals("ATIVADO")) {
                    item.put("cssClass", "ativado");
                }
                if (turma.getStatus().equals("EM ANDAMENTO")) {
                    item.put("cssClass", "andamento");
                }
                if (turma.getStatus().equals("PROGRAMADO")) {
                    // item.put("cssClass", "pendente blink_me");
                    if (organizacaoGestora.getSigla().equals("DECEA")) {
                        // REGRA SOMENTE PARA OS CURSOS DO DECEA !!
                        if (turma.getDataAtivacao() != null) {
                            Calendar data = Calendar.getInstance();
                            // if (turma.getDataAtivacao().before(data.getTime()) || turma.getDataAtivacao().before(data2.getTime())) {
                            if (turma.getDataAtivacao().before(data.getTime())) {
                                item.put("cssClass", "pendente blink_me");
                                pendenteDecea = true;
                            } else {
                                item.put("cssClass", "programado");
                            }
                        }
                    } else {
                        item.put("cssClass", "programado");
                    }
                }
                if (turma.isCancelado()) {
                    item.put("cssClass", "cancelado");
                }
                if (turma.getStatus().equals("INSC. ABERTAS")) {
                    item.put("cssClass", "success");
                }
                if (turma.getProcessStatus() != null && turma.getProcessStatus().equals("AGUARDANDO DIVULGAÇÃO")) {
                    item.remove("cssClass");
                    item.put("cssClass", "danger");
                }
                // TEM QUE FICAR POR ÚLTIMO
                if ((turma.getDataInicioFormatted() != null) && (turma.getDataInicioFormatted().equalsIgnoreCase("31/12/2017") || turma.isAdiado())) {
                    item.put("status", "ADIADO");
                    item.remove("cssClass");
                    item.put("cssClass", "danger");
                } else if (pendenteDecea) {
                    // REGRA SOMENTE PARA OS CURSOS DO DECEA !!
                    item.put("status", "PENDENTE");
                } else {
                    item.put("status", turma.getStatus());
                }
                turmasDataList.add(item);
            } else // usou os dois filtros
            if (searchForm.getOrganizacaoId().equals(responsavelId)) {
                // comparar se a turma é igual filtro passado
                Map item = new HashMap();
                item.put("id", turma.getId());
                item.put("codigo", turma.getCurso().getCodigo());
                item.put("descricao", turma.getCurso().getDescricao());
                item.put("local", turma.getLocal());
                // try {
                if (turma.getCurso().getArea().getId() != null) {
                    AreaDTO area = trainningService.findArea(turma.getCurso().getAreaId());
                    if (area != null) {
                        item.put("area", area.getSigla());
                    } else {
                        item.put("area", "N/D");
                    }
                } else {
                    item.put("area", "N/D");
                }
                // } catch (Exception e) {
                // item.put("area", "N/D");
                // }
                OrganizacaoDTO responsavel = organizationalService.findOrganizacao(turma.getResponsavelId());
                item.put("responsavel", responsavel.getSigla());
                item.put("numero", turma.getNumeroTurma());
                item.put("dataInicio", turma.getDataInicioFormatted());
                item.put("dataTermino", turma.getDataTerminoFormatted());
                item.put("extra", turma.isExtra());
                item.put("openForIndicacoes", turma.isOpenForIndicacoes());
                // INCLUI EM 21/02/18
                if (turma.getStatus().equals("INDICAÇÕES EM ANÁLISE")) {
                    item.put("cssClass", "info");
                }
                if (turma.getStatus().equals("ATIVADO")) {
                    item.put("cssClass", "ativado");
                }
                if (turma.getStatus().equals("EM ANDAMENTO")) {
                    item.put("cssClass", "andamento");
                }
                if (turma.getStatus().equals("PROGRAMADO")) {
                    // item.put("cssClass", "pendente blink_me");
                    if (organizacaoGestora.getSigla().equals("DECEA")) {
                        // REGRA SOMENTE PARA OS CURSOS DO DECEA !!
                        if (turma.getDataAtivacao() != null) {
                            Calendar data = Calendar.getInstance();
                            // if (turma.getDataAtivacao().before(data.getTime()) || turma.getDataAtivacao().before(data2.getTime())) {
                            if (turma.getDataAtivacao().before(data.getTime())) {
                                item.put("cssClass", "pendente blink_me");
                                pendenteDecea = true;
                            } else {
                                item.put("cssClass", "programado");
                            }
                        }
                    } else {
                        item.put("cssClass", "programado");
                    }
                }
                if (turma.isCancelado()) {
                    item.put("cssClass", "cancelado");
                }
                if (turma.getStatus().equals("INSC. ABERTAS")) {
                    item.put("cssClass", "success");
                }
                if (turma.getProcessStatus() != null && turma.getProcessStatus().equals("AGUARDANDO DIVULGAÇÃO")) {
                    item.remove("cssClass");
                    item.put("cssClass", "danger");
                }
                // TEM QUE FICAR POR ÚLTIMO
                if ((turma.getDataInicioFormatted() != null) && (turma.getDataInicioFormatted().equalsIgnoreCase("31/12/2017") || turma.isAdiado())) {
                    item.put("status", "ADIADO");
                    item.remove("cssClass");
                    item.put("cssClass", "danger");
                } else if (pendenteDecea) {
                    // REGRA SOMENTE PARA OS CURSOS DO DECEA !!
                    item.put("status", "PENDENTE");
                } else {
                    item.put("status", turma.getStatus());
                }
                turmasDataList.add(item);
            }
        }
    }
    OrganizacaoDTO[] organizacoes = organizationalService.findAllOrganizacoesSubordinadas(organizacaoGestora.getId());
    model.addAttribute("organizacoes", organizacoes);
    model.addAttribute("turmas", turmas);
    model.addAttribute("total", turmasDataList.size());
    model.addAttribute("searchForm", searchForm);
    model.addAttribute("turmasDataList", turmasDataList);
    return "turmas_efetivas";
}
Also used : HashMap(java.util.HashMap) Calendar(java.util.Calendar) ArrayList(java.util.ArrayList) AreaDTO(com.tomasio.projects.trainning.dto.AreaDTO) Date(java.util.Date) IOException(java.io.IOException) DataIntegrityViolationException(org.springframework.dao.DataIntegrityViolationException) ParseException(java.text.ParseException) CoreException(com.tomasio.projects.trainning.exeption.CoreException) TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) ArrayList(java.util.ArrayList) List(java.util.List) ParseException(java.text.ParseException) OrganizacaoDTO(com.tomasio.projects.trainning.dto.OrganizacaoDTO) SimpleDateFormat(java.text.SimpleDateFormat) Map(java.util.Map) HashMap(java.util.HashMap) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 72 with TurmaEfetivaDTO

use of com.tomasio.projects.trainning.dto.TurmaEfetivaDTO in project trainning by fernandotomasio.

the class SGCAuthService method createTurmaEfetiva.

/**
 * This is a sample web service operation
 *
 * @param cursoId
 * @param organizacaoGestoraId
 * @param organizacaoResponsavelId
 * @param numeroTurma
 * @param quantidadeVagas
 * @param inicioIndicacoes
 * @param terminoIndicacoes
 * @param fases
 * @return
 */
@WebMethod(operationName = "createTurmaEfetiva")
public Long createTurmaEfetiva(@WebParam(name = "cursoId") Long cursoId, @WebParam(name = "organizacaoGestoraId") Long organizacaoGestoraId, @WebParam(name = "organizacaoResponsavelId") Long organizacaoResponsavelId, @WebParam(name = "numeroTurma") Integer numeroTurma, @WebParam(name = "quantidadeVagas") Integer quantidadeVagas, @WebParam(name = "inicioIndicacoes") Date inicioIndicacoes, @WebParam(name = "terminoIndicacoes") Date terminoIndicacoes, @WebParam(name = "fases") FaseDTO[] fases) {
    TurmaEfetivaDTO turma = new TurmaEfetivaDTO();
    CursoDTO curso = trainningService.findCurso(cursoId);
    turma.setCurso(curso);
    turma.setOrganizacaoGestoraId(organizacaoGestoraId);
    turma.setResponsavelId(organizacaoResponsavelId);
    turma.setNumeroTurma(numeroTurma);
    PeriodoDTO periodoIndicacoes = new PeriodoDTO();
    periodoIndicacoes.setDataInicio(inicioIndicacoes);
    periodoIndicacoes.setDataTermino(terminoIndicacoes);
    turma.setPeriodoIndicacao(periodoIndicacoes);
    turma.setFases(fases);
    return trainningService.createCurso(curso);
}
Also used : TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) PeriodoDTO(com.tomasio.projects.trainning.dto.PeriodoDTO) CursoDTO(com.tomasio.projects.trainning.dto.CursoDTO) WebMethod(javax.jws.WebMethod)

Example 73 with TurmaEfetivaDTO

use of com.tomasio.projects.trainning.dto.TurmaEfetivaDTO in project trainning by fernandotomasio.

the class BusinessPermissionsManager method hasPermissionForIndicacao.

public boolean hasPermissionForIndicacao(IndicacaoPermissionModel permission, IndicacaoDTO indicacao, OrganizacaoDTO userOrganization) {
    TurmaEfetivaDTO turma = indicacao.getTurma();
    OrganizacaoDTO organizacaoIndicadora = indicacao.getOrganizacao();
    if (permission.equals(IndicacaoPermissionModel.EDIT)) {
        // VERIFICA SE A ORGANIZACAO DO USUÁRIO É A ORGANIZACAO QUE CRIOU INDICOU
        if (!organizacaoIndicadora.getId().equals(userOrganization.getId())) {
            return false;
        }
        // NAO PERMITE A INCLUSÃO DE INDICAÇÕES EM CURSOS JÁ PRE-ATIVADOS OU ATIVADOS
        if (turma.isPreAtivado() || turma.isAtivado()) {
            return false;
        }
        // NAO PERMITE A EDIÇÃO DE INDICAÇÕES FORA DO PERIODO DE INDICAÇÕES
        if (!turma.isOpenForIndicacoes()) {
            return false;
        }
        // NAO PERMITE A EDIÇÃO DE INDICAÇÕES JÁ APROVADAS
        if (indicacao.isAprovado() && indicacao.getLastWorkflowActor() != null) {
            return false;
        }
        // NAO PERMITE A EDIÇÃO DE INDICAÇÕES JÁ REPROVADAS
        if (indicacao.isReprovado()) {
            return false;
        }
    }
    if (permission.equals(IndicacaoPermissionModel.REMOVE)) {
        // VERIFICA SE A ORGANIZACAO DO USUÁRIO É A ORGANIZACAO QUE CRIOU INDICOU
        if (!organizacaoIndicadora.getId().equals(userOrganization.getId())) {
            return false;
        }
        // NAO PERMITE A INCLUSÃO DE INDICAÇÕES EM CURSOS JÁ PRE-ATIVADOS OU ATIVADOS
        if (turma.isPreAtivado() || turma.isAtivado()) {
            return false;
        }
        // NAO PERMITE A REMOÇÃO DE INDICAÇÕES FORA DO PERIODO DE INDICAÇÕES
        if (!turma.isOpenForIndicacoes()) {
            return false;
        }
        // NAO PERMITE A REMOCAO DE INDICAÇÕES JÁ APROVADAS
        if (indicacao.isAprovado() && indicacao.getLastWorkflowActor() != null) {
            return false;
        }
        // NAO PERMITE A REMOÇÃO DE INDICAÇÕES JÁ REPROVADAS
        if (indicacao.isReprovado()) {
            return false;
        }
    }
    if (permission.equals(IndicacaoPermissionModel.APROVE)) {
        OrganizacaoDTO nextAprovador = indicacao.getNextWorkflowActor();
        if (nextAprovador == null) {
            return false;
        }
        // VERIFICA QUE A ORGANIZAÇÃO DO USUÁRIO NÃO É A PROXIMA NO WORKFLOW DE APROVAÇÃO
        if (!userOrganization.getId().equals(nextAprovador.getId())) {
            return false;
        }
        // NAO PERMITE A APROVAÇÃO DE INDICAÇÕES EM CURSOS JÁ PRE-ATIVADOS OU ATIVADOS
        if (turma.isPreAtivado() || turma.isAtivado()) {
            return false;
        }
        // VERIFICA SE O PERIODO DE APROVAÇÕES ESTÁ FECHADO
        if (userOrganization instanceof ComandoDTO) {
            if ((!turma.isOpenForAprovacoes()) && (!turma.isOpenForIndicacoes())) {
                return false;
            }
        } else {
            if (userOrganization instanceof UnidadeDTO) {
                UnidadeDTO userUnidade = (UnidadeDTO) userOrganization;
                if (userUnidade.getParent().getId().equals(turma.getOrganizacaoGestoraId())) {
                    if (!turma.isOpenForAprovacoes() && (!turma.isOpenForIndicacoes())) {
                        return false;
                    }
                } else {
                    if (!turma.isOpenForIndicacoes()) {
                        return false;
                    }
                }
            } else {
                if (!turma.isOpenForIndicacoes()) {
                    return false;
                }
            }
        }
    }
    if (permission.equals(IndicacaoPermissionModel.REJECT)) {
        OrganizacaoDTO nextAprovador = indicacao.getNextWorkflowActor();
        if (nextAprovador == null) {
            return false;
        }
        // VERIFICA QUE A ORGANIZAÇÃO DO USUÁRIO NÃO É A PROXIMA NO WORKFLOW DE APROVAÇÃO
        if (!userOrganization.getId().equals(nextAprovador.getId())) {
            return false;
        }
        // NAO PERMITE A APROVAÇÃO DE INDICAÇÕES EM CURSOS JÁ PRE-ATIVADOS OU ATIVADOS
        if (turma.isPreAtivado() || turma.isAtivado()) {
            return false;
        }
        // VERIFICA SE O PERIODO DE APROVAÇÕES ESTÁ FECHADO
        if (userOrganization instanceof ComandoDTO) {
            if (!turma.isOpenForAprovacoes() && (!turma.isOpenForIndicacoes())) {
                return false;
            }
        } else {
            if (userOrganization instanceof UnidadeDTO) {
                UnidadeDTO userUnidade = (UnidadeDTO) userOrganization;
                if (userUnidade.getParent().getId().equals(turma.getOrganizacaoGestoraId())) {
                    if (!turma.isOpenForAprovacoes() && (!turma.isOpenForIndicacoes())) {
                        return false;
                    }
                } else {
                    if (!turma.isOpenForIndicacoes()) {
                        return false;
                    }
                }
            } else {
                if (!turma.isOpenForIndicacoes()) {
                    return false;
                }
            }
        }
    }
    if (permission.equals(IndicacaoPermissionModel.CANCEL_REJECT)) {
        OrganizacaoDTO lastParticipant = indicacao.getLastWorkflowActor();
        if (lastParticipant == null) {
            return false;
        }
        // VERIFICA QUE A ORGANIZAÇÃO DO USUÁRIO NÃO É A PROXIMA NO WORKFLOW DE APROVAÇÃO
        if (!userOrganization.getId().equals(lastParticipant.getId())) {
            return false;
        }
        // NAO PERMITE A APROVAÇÃO DE INDICAÇÕES EM CURSOS JÁ PRE-ATIVADOS OU ATIVADOS
        if (turma.isPreAtivado() || turma.isAtivado()) {
            return false;
        }
        // VERIFICA SE O PERIODO DE APROVAÇÕES ESTÁ FECHADO
        if (userOrganization instanceof ComandoDTO) {
            if ((!turma.isOpenForAprovacoes()) && (!turma.isOpenForIndicacoes())) {
                return false;
            }
        } else {
            if (userOrganization instanceof UnidadeDTO) {
                UnidadeDTO userUnidade = (UnidadeDTO) userOrganization;
                if (userUnidade.getParent().getId().equals(turma.getOrganizacaoGestoraId())) {
                    if (!turma.isOpenForAprovacoes() && (!turma.isOpenForIndicacoes())) {
                        return false;
                    }
                } else {
                    if (!turma.isOpenForIndicacoes()) {
                        return false;
                    }
                }
            } else {
                if (!turma.isOpenForIndicacoes()) {
                    return false;
                }
            }
        }
        if (!(indicacao.isReprovado() && lastParticipant.equals(userOrganization))) {
            return false;
        }
    }
    if (permission.equals(IndicacaoPermissionModel.CANCEL_APROVE)) {
        OrganizacaoDTO lastParticipant = indicacao.getLastWorkflowActor();
        if (lastParticipant == null) {
            return false;
        }
        // VERIFICA QUE A ORGANIZAÇÃO DO USUÁRIO NÃO É A PROXIMA NO WORKFLOW DE APROVAÇÃO
        if (!userOrganization.getId().equals(lastParticipant.getId())) {
            return false;
        }
        // NAO PERMITE A APROVAÇÃO DE INDICAÇÕES EM CURSOS JÁ PRE-ATIVADOS OU ATIVADOS
        if (turma.isPreAtivado() || turma.isAtivado()) {
            return false;
        }
        // VERIFICA SE O PERIODO DE APROVAÇÕES ESTÁ FECHADO
        if (userOrganization instanceof ComandoDTO) {
            if ((!turma.isOpenForAprovacoes()) && (!turma.isOpenForIndicacoes())) {
                return false;
            }
        } else {
            if (userOrganization instanceof UnidadeDTO) {
                UnidadeDTO userUnidade = (UnidadeDTO) userOrganization;
                if (userUnidade.getParent().getId().equals(turma.getOrganizacaoGestoraId())) {
                    if (!turma.isOpenForAprovacoes() && (!turma.isOpenForIndicacoes())) {
                        return false;
                    }
                } else {
                    if (!turma.isOpenForIndicacoes()) {
                        return false;
                    }
                }
            } else {
                if (!turma.isOpenForIndicacoes()) {
                    return false;
                }
            }
        }
        if (indicacao.isReprovado()) {
            return false;
        }
        if (!lastParticipant.equals(userOrganization)) {
            return false;
        }
    }
    return true;
}
Also used : TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) UnidadeDTO(com.tomasio.projects.trainning.dto.UnidadeDTO) OrganizacaoDTO(com.tomasio.projects.trainning.dto.OrganizacaoDTO) ComandoDTO(com.tomasio.projects.trainning.dto.ComandoDTO)

Example 74 with TurmaEfetivaDTO

use of com.tomasio.projects.trainning.dto.TurmaEfetivaDTO 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)

Example 75 with TurmaEfetivaDTO

use of com.tomasio.projects.trainning.dto.TurmaEfetivaDTO in project trainning by fernandotomasio.

the class AtividadesEnsinoServiceSimpleImpl method searchTurmasEfetivas.

@Override
@Transactional(readOnly = true)
public TurmaEfetivaDTO[] searchTurmasEfetivas(Date exercicio, Long planoId, Long cursoId, Long responsavelId, Long organizacaoGestoraId, String term, Integer pageNumber, Integer pagesize) {
    TurmaDAO dao = factory.getTurmaDAO();
    TurmaEfetivaDTO[] turmasArray = null;
    try {
        List<TurmaEfetiva> turmas = dao.searchTurmasEfetivas(exercicio, planoId, cursoId, responsavelId, organizacaoGestoraId, term, pageNumber, pagesize);
        if (turmas != null) {
            turmasArray = new TurmaEfetivaDTO[turmas.size()];
            for (int i = 0; i < turmas.size(); i++) {
                turmasArray[i] = turmas.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 turmasArray;
}
Also used : DAOException(com.tomasio.projects.trainning.exception.DAOException) TurmaEfetivaDTO(com.tomasio.projects.trainning.dto.TurmaEfetivaDTO) StatusTurmaEfetiva(com.tomasio.projects.trainning.model.StatusTurmaEfetiva) TurmaEfetiva(com.tomasio.projects.trainning.model.TurmaEfetiva) CoreException(com.tomasio.projects.trainning.exeption.CoreException) TurmaDAO(com.tomasio.projects.trainning.dao.TurmaDAO) DAOException(com.tomasio.projects.trainning.exception.DAOException) ParseException(java.text.ParseException) CoreException(com.tomasio.projects.trainning.exeption.CoreException) Transactional(org.springframework.transaction.annotation.Transactional)

Aggregations

TurmaEfetivaDTO (com.tomasio.projects.trainning.dto.TurmaEfetivaDTO)92 OrganizacaoDTO (com.tomasio.projects.trainning.dto.OrganizacaoDTO)37 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)36 Date (java.util.Date)31 SimpleDateFormat (java.text.SimpleDateFormat)28 PessoaDTO (com.tomasio.projects.trainning.dto.PessoaDTO)27 HashMap (java.util.HashMap)27 ArrayList (java.util.ArrayList)24 Map (java.util.Map)20 IndicacaoAlunoDTO (com.tomasio.projects.trainning.dto.IndicacaoAlunoDTO)18 CoreException (com.tomasio.projects.trainning.exeption.CoreException)18 FaseDTO (com.tomasio.projects.trainning.dto.FaseDTO)16 ParseException (java.text.ParseException)16 DAOException (com.tomasio.projects.trainning.exception.DAOException)14 Transactional (org.springframework.transaction.annotation.Transactional)14 AtividadesEnsinoService (com.tomasio.projects.trainning.interfaces.AtividadesEnsinoService)12 CustoDTO (com.tomasio.projects.trainning.dto.CustoDTO)11 IndicacaoDTO (com.tomasio.projects.trainning.dto.IndicacaoDTO)11 TurmaDAO (com.tomasio.projects.trainning.dao.TurmaDAO)9 BigDecimal (java.math.BigDecimal)9