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;
}
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;
}
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;
}
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;
}
Aggregations