Search in sources :

Example 6 with UnidadeDTO

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

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

the class OrganizationalServiceSimpleImpl method intantiateOrganizacao.

private Organizacao intantiateOrganizacao(OrganizacaoDTO dto) {
    Organizacao organizacao;
    if (dto instanceof ExternoDTO) {
        ExternoDTO aux = (ExternoDTO) dto;
        organizacao = new Externo(aux);
    } else if (dto instanceof ComandoDTO) {
        ComandoDTO aux = (ComandoDTO) dto;
        organizacao = new Comando(aux);
    } else {
        UnidadeDTO aux = (UnidadeDTO) dto;
        organizacao = new Unidade(aux);
    }
    return organizacao;
}
Also used : Comando(com.tomasio.projects.trainning.model.Comando) Organizacao(com.tomasio.projects.trainning.model.Organizacao) Unidade(com.tomasio.projects.trainning.model.Unidade) ExternoDTO(com.tomasio.projects.trainning.dto.ExternoDTO) Externo(com.tomasio.projects.trainning.model.Externo) UnidadeDTO(com.tomasio.projects.trainning.dto.UnidadeDTO) ComandoDTO(com.tomasio.projects.trainning.dto.ComandoDTO)

Example 8 with UnidadeDTO

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

the class OrganizerHelper method arrangeTreinamentosConsolidados.

private List<TreinamentoSolicitadoConsolidadoDTO> arrangeTreinamentosConsolidados(Long planejamentoId, Map<String, IndicadorDTO> indicadores, Map<String, Integer> treinamentosPlanejadosMap, TreinamentoSolicitadoDTO[] treinamentosSolicitados) {
    // findNextPlanejamentos(planejamentoId);
    PlanejamentoDTO[] arrayPlanejamentos = null;
    List<TreinamentoSolicitadoConsolidadoDTO> treinamentosConsolidados = new ArrayList<TreinamentoSolicitadoConsolidadoDTO>();
    for (TreinamentoSolicitadoDTO t : treinamentosSolicitados) {
        TreinamentoSolicitadoConsolidadoDTO treinamentoConsolidado = new TreinamentoSolicitadoConsolidadoDTO();
        treinamentoConsolidado.setTreinamentoSolicitadoObjectId(t.getObjectId());
        treinamentoConsolidado.setPlanejamentoId(t.getItemPlanejamento().getPlanejamento().getId());
        treinamentoConsolidado.setCodCurso(t.getItemPlanejamento().getCurso().getCodigo());
        treinamentoConsolidado.setCursoId(t.getItemPlanejamento().getCurso().getId());
        treinamentoConsolidado.setDescricaoCurso(t.getItemPlanejamento().getCurso().getDescricao());
        if (t.getItemPlanejamento().getCurso().getTipo() != null) {
            treinamentoConsolidado.setTipoCurso(t.getItemPlanejamento().getCurso().getTipo());
        }
        treinamentoConsolidado.setOrganizacaoId(t.getOrganizacao().getId());
        treinamentoConsolidado.setSiglaOrganizacao(t.getOrganizacao().getSigla());
        treinamentoConsolidado.setNomeOrganizacao(t.getOrganizacao().getNome());
        treinamentoConsolidado.setTreinamentoSolicitadoId(t.getId());
        treinamentoConsolidado.setQuantidadeTreinamentoSolicitado(t.getQuantidade());
        IndicadorDTO indicador = indicadores.get(t.getItemPlanejamento().getCurso().getCodigo() + "-" + t.getOrganizacao().getSigla());
        if (indicador != null) {
            treinamentoConsolidado.setIndicadorMinimo(indicador.getMinimo());
            treinamentoConsolidado.setIndicadorIdeal(indicador.getIdeal());
            treinamentoConsolidado.setIndicadorExistente(indicador.getExistente());
            int gapIdeal = indicador.getIdeal() - indicador.getExistente();
            if (gapIdeal < 0) {
                gapIdeal = 0;
            }
            int gapMinimo = indicador.getMinimo() - indicador.getExistente();
            if (gapMinimo < 0) {
                gapMinimo = 0;
            }
            boolean idealAtingido = false;
            boolean minimoAtingido = false;
            if (gapMinimo == 0) {
                minimoAtingido = true;
            }
            if (gapIdeal == 0) {
                idealAtingido = true;
            }
            int status = 0;
            if (minimoAtingido) {
                if (idealAtingido) {
                    status = 2;
                } else {
                    status = 1;
                }
            }
            treinamentoConsolidado.setStatusIndicadores(status);
            treinamentoConsolidado.setMinimoAtingido(minimoAtingido);
            treinamentoConsolidado.setIdealAtingido(idealAtingido);
            treinamentoConsolidado.setGapIdeal(gapIdeal);
            treinamentoConsolidado.setGapMinimo(gapMinimo);
        } else {
            treinamentoConsolidado.setMinimoAtingido(true);
            treinamentoConsolidado.setIdealAtingido(true);
            treinamentoConsolidado.setGapIdeal(0);
            treinamentoConsolidado.setGapMinimo(0);
            treinamentoConsolidado.setStatusIndicadores(2);
        }
        int[] vagas = new int[5];
        for (int i = 0; i < vagas.length; i++) {
            PlanejamentoDTO planejamento = arrayPlanejamentos[i];
            if (planejamento.getId() != null) {
                String planId = String.valueOf(planejamento.getId());
                String cursoId = String.valueOf(t.getItemPlanejamento().getCurso().getId());
                String organizacaoId = String.valueOf(t.getOrganizacao().getId());
                Integer aux = treinamentosPlanejadosMap.get(planId + cursoId + organizacaoId);
                if (aux != null) {
                    vagas[i] = aux;
                }
            }
        }
        treinamentoConsolidado.setVagas(vagas);
        int[] previsaoExistente = new int[5];
        for (int i = 0; i < previsaoExistente.length; i++) {
            int auxExistente = 0;
            if (indicador != null) {
                auxExistente = indicador.getExistente();
            }
            previsaoExistente[i] = auxExistente + vagas[i];
        }
        treinamentoConsolidado.setPrevisaoExistente(previsaoExistente);
        OrganizacaoDTO organizacaoParent = null;
        UnidadeDTO auxOrganizacao = null;
        if (t.getOrganizacao() instanceof UnidadeDTO) {
            auxOrganizacao = (UnidadeDTO) t.getOrganizacao();
        }
        if (auxOrganizacao != null && auxOrganizacao.getParent() != null) {
            organizacaoParent = auxOrganizacao.getParent();
        }
        if (auxOrganizacao != null && auxOrganizacao.getParent() == null) {
            organizacaoParent = auxOrganizacao;
        }
        if (organizacaoParent != null) {
            treinamentoConsolidado.setOrganizacaoParentId(organizacaoParent.getId());
            treinamentoConsolidado.setOrganizacaoParentNome(organizacaoParent.getNome());
            treinamentoConsolidado.setOrganizacaoParentSigla(organizacaoParent.getSigla());
        }
        treinamentosConsolidados.add(treinamentoConsolidado);
    }
    return treinamentosConsolidados;
}
Also used : ArrayList(java.util.ArrayList) PlanejamentoDTO(com.tomasio.projects.trainning.dto.PlanejamentoDTO) TreinamentoSolicitadoConsolidadoDTO(com.tomasio.projects.trainning.dto.TreinamentoSolicitadoConsolidadoDTO) IndicadorDTO(com.tomasio.projects.trainning.dto.IndicadorDTO) UnidadeDTO(com.tomasio.projects.trainning.dto.UnidadeDTO) OrganizacaoDTO(com.tomasio.projects.trainning.dto.OrganizacaoDTO) TreinamentoSolicitadoDTO(com.tomasio.projects.trainning.dto.TreinamentoSolicitadoDTO)

Example 9 with UnidadeDTO

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

the class ReportUtil method buildOrganizacoesMap.

public Map<Long, OrganizacaoDTO> buildOrganizacoesMap(List<TreinamentoSolicitadoConsolidadoDTO> treinamentos) {
    Map<Long, OrganizacaoDTO> organizacoesMap = new HashMap<Long, OrganizacaoDTO>();
    for (TreinamentoSolicitadoConsolidadoDTO treinamento : treinamentos) {
        OrganizacaoDTO organizacao = organizacoesMap.get(treinamento.getOrganizacaoId());
        if (organizacao == null) {
            organizacao = new UnidadeDTO();
            organizacao.setId(treinamento.getOrganizacaoId());
            organizacao.setSigla(treinamento.getSiglaOrganizacao());
            organizacao.setNome(treinamento.getNomeOrganizacao());
            organizacoesMap.put(treinamento.getOrganizacaoId(), organizacao);
        }
    }
    return organizacoesMap;
}
Also used : TreinamentoSolicitadoConsolidadoDTO(com.tomasio.projects.trainning.dto.TreinamentoSolicitadoConsolidadoDTO) HashMap(java.util.HashMap) UnidadeDTO(com.tomasio.projects.trainning.dto.UnidadeDTO) OrganizacaoDTO(com.tomasio.projects.trainning.dto.OrganizacaoDTO)

Aggregations

UnidadeDTO (com.tomasio.projects.trainning.dto.UnidadeDTO)9 OrganizacaoDTO (com.tomasio.projects.trainning.dto.OrganizacaoDTO)8 ComandoDTO (com.tomasio.projects.trainning.dto.ComandoDTO)5 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)5 EnderecoDTO (com.tomasio.projects.trainning.dto.EnderecoDTO)3 PlanejamentoDTO (com.tomasio.projects.trainning.dto.PlanejamentoDTO)3 ArrayList (java.util.ArrayList)3 CidadeDTO (com.tomasio.projects.trainning.dto.CidadeDTO)2 ExternoDTO (com.tomasio.projects.trainning.dto.ExternoDTO)2 ItemPlanejamentoDTO (com.tomasio.projects.trainning.dto.ItemPlanejamentoDTO)2 OrganizacaoFABDTO (com.tomasio.projects.trainning.dto.OrganizacaoFABDTO)2 TreinamentoSolicitadoConsolidadoDTO (com.tomasio.projects.trainning.dto.TreinamentoSolicitadoConsolidadoDTO)2 HashMap (java.util.HashMap)2 CursoDTO (com.tomasio.projects.trainning.dto.CursoDTO)1 IndicadorDTO (com.tomasio.projects.trainning.dto.IndicadorDTO)1 TreinamentoSolicitadoDTO (com.tomasio.projects.trainning.dto.TreinamentoSolicitadoDTO)1 TurmaEfetivaDTO (com.tomasio.projects.trainning.dto.TurmaEfetivaDTO)1 CoreException (com.tomasio.projects.trainning.exeption.CoreException)1 OrganizacaoForm (com.tomasio.projects.trainning.form.OrganizacaoForm)1 Comando (com.tomasio.projects.trainning.model.Comando)1