public async Task <IEnumerable <DisciplinaResposta> > ObterComponentesCJ(Modalidade?modalidade, string codigoTurma, string ueId, long codigoDisciplina, string rf)
        {
            IEnumerable <DisciplinaResposta> componentes = null;
            var atribuicoes = await repositorioAtribuicaoCJ.ObterPorFiltros(modalidade,
                                                                            codigoTurma,
                                                                            ueId,
                                                                            codigoDisciplina,
                                                                            rf,
                                                                            string.Empty,
                                                                            true);

            if (atribuicoes == null || !atribuicoes.Any())
            {
                return(null);
            }

            var disciplinasEol = await servicoEOL.ObterDisciplinasPorIdsAsync(atribuicoes.Select(a => a.DisciplinaId).Distinct().ToArray());

            var componenteRegencia = disciplinasEol?.FirstOrDefault(c => c.Regencia);

            if (componenteRegencia != null)
            {
                var componentesRegencia = await servicoEOL.ObterDisciplinasPorIdsAsync(IDS_COMPONENTES_REGENCIA);

                if (componentesRegencia != null)
                {
                    componentes = TransformarListaDisciplinaEolParaRetornoDto(componentesRegencia);
                }
            }
            else
            {
                componentes = TransformarListaDisciplinaEolParaRetornoDto(disciplinasEol);
            }
            return(componentes);
        }
        public async Task <IEnumerable <AtribuicaoCJListaRetornoDto> > Listar(AtribuicaoCJListaFiltroDto filtroDto)
        {
            var listaRetorno = await repositorioAtribuicaoCJ.ObterPorFiltros(null, null, filtroDto.UeId, 0,
                                                                             filtroDto.UsuarioRf, filtroDto.UsuarioNome, true, anoLetivo : filtroDto.AnoLetivo);

            if (listaRetorno.Any())
            {
                return(await TransformaEntidadesEmDtosListaRetorno(listaRetorno));
            }
            else
            {
                return(null);
            }
        }
        public async Task Salvar(AtribuicaoCJPersistenciaDto atribuicaoCJPersistenciaDto)
        {
            var atribuicoesAtuais = await repositorioAtribuicaoCJ.ObterPorFiltros(atribuicaoCJPersistenciaDto.Modalidade, atribuicaoCJPersistenciaDto.TurmaId,
                                                                                  atribuicaoCJPersistenciaDto.UeId, 0, atribuicaoCJPersistenciaDto.UsuarioRf, string.Empty, null);

            bool atribuiuCj = false;

            await RemoverDisciplinasCache(atribuicaoCJPersistenciaDto);

            var professorValidoNoEol = await servicoEOL.ValidarProfessor(atribuicaoCJPersistenciaDto.UsuarioRf);

            if (!professorValidoNoEol)
            {
                throw new NegocioException("Este professor não é válido para ser CJ.");
            }

            var professoresTitularesDisciplinasEol = await servicoEOL.ObterProfessoresTitularesDisciplinas(atribuicaoCJPersistenciaDto.TurmaId);

            foreach (var atribuicaoDto in atribuicaoCJPersistenciaDto.Disciplinas)
            {
                var atribuicao = TransformaDtoEmEntidade(atribuicaoCJPersistenciaDto, atribuicaoDto);

                await servicoAtribuicaoCJ.Salvar(atribuicao, professoresTitularesDisciplinasEol, atribuicoesAtuais);

                Guid perfilCJ = atribuicao.Modalidade == Modalidade.Infantil ? Perfis.PERFIL_CJ_INFANTIL : Perfis.PERFIL_CJ;

                atribuiuCj = await AtribuirPerfilCJ(atribuicaoCJPersistenciaDto, perfilCJ, atribuiuCj);
            }
        }
Exemplo n.º 4
0
        private async Task ValidaTurmasProfessor(bool ehProfessorCJ, string ueId, string disciplinaId, string codigoRf,
                                                 IEnumerable <ProfessorTurmaDto> turmasAtribuidasAoProfessor,
                                                 IEnumerable <string> idsTurmasSelecionadas)
        {
            var idsTurmasProfessor = turmasAtribuidasAoProfessor?.Select(c => c.CodTurma).ToList();

            IEnumerable <AtribuicaoCJ> lstTurmasCJ = await
                                                     repositorioAtribuicaoCJ.ObterPorFiltros(null, null, ueId, Convert.ToInt64(disciplinaId), codigoRf, null, null);

            if (
                (
                    ehProfessorCJ &&
                    (
                        lstTurmasCJ == null ||
                        idsTurmasSelecionadas.Any(c => !lstTurmasCJ.Select(tcj => tcj.TurmaId).Contains(c))
                    )
                ) ||
                (
                    idsTurmasProfessor == null ||
                    idsTurmasSelecionadas.Any(c => !idsTurmasProfessor.Contains(Convert.ToInt32(c)))
                )

                )
            {
                throw new NegocioException("Somente é possível migrar o plano de aula para turmas atribuidas ao professor");
            }
        }
Exemplo n.º 5
0
        private async Task <IEnumerable <TurmaDto> > ObterTurmasAtribuidasAoProfessor(string codigoRf, long disciplinaId)
        {
            var turmasAtribuidasAoProfessorTitular = consultasProfessor.Listar(codigoRf);
            var turmasAtribuidasAoProfessorCJ      = await repositorioAtribuicaoCJ.ObterPorFiltros(null, null, null, disciplinaId, codigoRf, null, true);

            var turmasAtribuidasAoProfessor = new List <TurmaDto>();

            if (turmasAtribuidasAoProfessorTitular != null && turmasAtribuidasAoProfessorTitular.Any())
            {
                turmasAtribuidasAoProfessor.AddRange(turmasAtribuidasAoProfessorTitular
                                                     .Select(x => new TurmaDto()
                {
                    CodigoTurma = x.CodTurma, NomeTurma = x.NomeTurma, Ano = x.Ano
                })
                                                     .ToList());
            }

            if (turmasAtribuidasAoProfessorCJ != null && turmasAtribuidasAoProfessorCJ.Any())
            {
                turmasAtribuidasAoProfessor.AddRange(turmasAtribuidasAoProfessorCJ
                                                     .Select(x => new TurmaDto()
                {
                    CodigoTurma = Convert.ToInt32(x.TurmaId),
                    NomeTurma   = x.Turma.Nome,
                    Ano         = x.Turma.Ano
                })
                                                     .ToList());
            }

            return(turmasAtribuidasAoProfessor);
        }
        private async Task ObterAtribuicoesCjUe(string professorRf, List <string> codigosUes, string codigoDre)
        {
            var atribuicoesCjAtivas = await repositorioAtribuicaoCJ.ObterPorFiltros(null, string.Empty, string.Empty, 0, professorRf, string.Empty, true, codigoDre);

            if (atribuicoesCjAtivas != null && atribuicoesCjAtivas.Any())
            {
                codigosUes.AddRange(atribuicoesCjAtivas.Select(a => a.UeId).Distinct());
            }
        }
Exemplo n.º 7
0
 public async Task <IEnumerable <AtribuicaoCJ> > Handle(ObterAtribuicoesPorTurmaEProfessorQuery request, CancellationToken cancellationToken)
 => await repositorioAtribuicaoCJ.ObterPorFiltros(request.Modalidade,
                                                  request.TurmaId,
                                                  request.UeId,
                                                  request.ComponenteCurricularId,
                                                  request.UsuarioRf,
                                                  request.UsuarioNome,
                                                  request.Substituir,
                                                  request.DreCodigo,
                                                  request.TurmaIds,
                                                  request.AnoLetivo
                                                  );
Exemplo n.º 8
0
        public async Task Salvar(AtribuicaoCJ atribuicaoCJ, IEnumerable <AtribuicaoCJ> atribuicoesAtuais = null)
        {
            var professorValidoNoEol = await servicoEOL.ValidarProfessor(atribuicaoCJ.ProfessorRf);

            if (!professorValidoNoEol)
            {
                throw new NegocioException("Este professor não é válido para ser CJ.");
            }

            ValidaComponentesCurricularesQueNaoPodemSerSubstituidos(atribuicaoCJ);

            if (atribuicoesAtuais == null)
            {
                atribuicoesAtuais = await repositorioAtribuicaoCJ.ObterPorFiltros(atribuicaoCJ.Modalidade, atribuicaoCJ.TurmaId,
                                                                                  atribuicaoCJ.UeId, 0, atribuicaoCJ.ProfessorRf, string.Empty, null);
            }

            var atribuicaoJaCadastrada = atribuicoesAtuais.FirstOrDefault(a => a.DisciplinaId == atribuicaoCJ.DisciplinaId);

            if (atribuicaoJaCadastrada == null)
            {
                if (!atribuicaoCJ.Substituir)
                {
                    return;
                }
            }
            else
            {
                if (atribuicaoCJ.Substituir == atribuicaoJaCadastrada.Substituir)
                {
                    return;
                }

                atribuicaoJaCadastrada.Substituir = atribuicaoCJ.Substituir;
                atribuicaoCJ = atribuicaoJaCadastrada;

                if (!atribuicaoCJ.Substituir)
                {
                    await ValidaSeTemAulaCriada(atribuicaoCJ);
                }
            }
            await ValidaSePerfilPodeIncluir();

            await repositorioAtribuicaoCJ.SalvarAsync(atribuicaoCJ);

            await TratarAbrangencia(atribuicaoCJ, atribuicoesAtuais);
        }
Exemplo n.º 9
0
        public async Task <IEnumerable <TurmaRetornoDto> > ObterTurmasCopia(string turmaId, string disciplinaId)
        {
            var retorno = new List <TurmaRetornoDto>();

            var turma = await repositorioTurma.ObterPorCodigo(turmaId.ToString());

            var usuario = await servicoUsuario.ObterUsuarioLogado();

            var turmasAtribuidasAoProfessor = consultasProfessor.Listar(usuario.CodigoRf);

            var lstTurmasCJ = await repositorioAtribuicaoCJ.ObterPorFiltros(turma.ModalidadeCodigo, null, null,
                                                                            Convert.ToInt64(disciplinaId), usuario.CodigoRf, null, true);

            var turmasTitular = turmasAtribuidasAoProfessor.Where(t => t.AnoLetivo == turma.AnoLetivo &&
                                                                  t.Ano == turma.Ano &&
                                                                  t.Modalidade == turma.ModalidadeCodigo.ToString() &&
                                                                  t.CodTurma.ToString() != turma.CodigoTurma);

            if (turmasTitular != null && turmasTitular.Any())
            {
                retorno.AddRange(turmasTitular
                                 .Select(x => new TurmaRetornoDto()
                {
                    Codigo = x.CodTurma.ToString(), Nome = x.NomeTurma
                })
                                 .ToList());
            }

            var turmasCJ = lstTurmasCJ.Where(t => t.Turma.AnoLetivo == turma.AnoLetivo &&
                                             t.Turma.Ano == turma.Ano &&
                                             t.Turma.ModalidadeCodigo == turma.ModalidadeCodigo &&
                                             t.TurmaId != turma.CodigoTurma);

            if (turmasCJ != null && turmasCJ.Any())
            {
                retorno.AddRange(turmasCJ
                                 .Select(x => new TurmaRetornoDto()
                {
                    Codigo = x.TurmaId, Nome = x.Turma.Nome
                })
                                 .ToList());
            }

            return(retorno);
        }
Exemplo n.º 10
0
        public async Task Salvar(AtribuicaoCJ atribuicaoCJ, IEnumerable <ProfessorTitularDisciplinaEol> professoresTitularesDisciplinasEol, IEnumerable <AtribuicaoCJ> atribuicoesAtuais = null)
        {
            ValidaComponentesCurricularesQueNaoPodemSerSubstituidos(atribuicaoCJ);

            if (professoresTitularesDisciplinasEol != null && professoresTitularesDisciplinasEol.Any(c => c.ProfessorRf.Contains(atribuicaoCJ.ProfessorRf) && c.DisciplinaId == atribuicaoCJ.DisciplinaId))
            {
                throw new NegocioException("Não é possível realizar substituição na turma onde o professor já é o titular.");
            }

            if (atribuicoesAtuais == null)
            {
                atribuicoesAtuais = await repositorioAtribuicaoCJ.ObterPorFiltros(atribuicaoCJ.Modalidade, atribuicaoCJ.TurmaId,
                                                                                  atribuicaoCJ.UeId, 0, atribuicaoCJ.ProfessorRf, string.Empty, null);
            }

            var atribuicaoJaCadastrada = atribuicoesAtuais.FirstOrDefault(a => a.DisciplinaId == atribuicaoCJ.DisciplinaId);

            if (atribuicaoJaCadastrada == null)
            {
                if (!atribuicaoCJ.Substituir)
                {
                    return;
                }
            }
            else
            {
                if (atribuicaoCJ.Substituir == atribuicaoJaCadastrada.Substituir)
                {
                    return;
                }

                atribuicaoJaCadastrada.Substituir = atribuicaoCJ.Substituir;
                atribuicaoCJ = atribuicaoJaCadastrada;

                if (!atribuicaoCJ.Substituir)
                {
                    await ValidaSeTemAulaCriada(atribuicaoCJ);
                }
            }
            await ValidaSePerfilPodeIncluir();

            await repositorioAtribuicaoCJ.SalvarAsync(atribuicaoCJ);

            await TratarAbrangencia(atribuicaoCJ, atribuicoesAtuais);
        }
        public async Task Salvar(AtribuicaoCJPersistenciaDto atribuicaoCJPersistenciaDto)
        {
            var atribuicoesAtuais = await repositorioAtribuicaoCJ.ObterPorFiltros(atribuicaoCJPersistenciaDto.Modalidade, atribuicaoCJPersistenciaDto.TurmaId,
                                                                                  atribuicaoCJPersistenciaDto.UeId, 0, atribuicaoCJPersistenciaDto.UsuarioRf, string.Empty, null);

            bool atribuiuCj = false;

            await RemoverDisciplinasCache(atribuicaoCJPersistenciaDto);

            foreach (var atribuicaoDto in atribuicaoCJPersistenciaDto.Disciplinas)
            {
                var atribuicao = TransformaDtoEmEntidade(atribuicaoCJPersistenciaDto, atribuicaoDto);

                await servicoAtribuicaoCJ.Salvar(atribuicao, atribuicoesAtuais);

                atribuiuCj = await AtribuirPerfilCJ(atribuicaoCJPersistenciaDto, atribuiuCj);
            }
        }
        public async Task <IEnumerable <ComponenteCurricularEol> > Handle(ObterComponentesCJQuery request, CancellationToken cancellationToken)
        {
            var atribuicoes = await repositorioAtribuicaoCJ.ObterPorFiltros(request.Modalidade,
                                                                            request.TurmaCodigo,
                                                                            request.UeCodigo,
                                                                            request.ComponenteCurricular,
                                                                            request.ProfessorRf,
                                                                            string.Empty,
                                                                            true);

            if (atribuicoes == null || !atribuicoes.Any())
            {
                return(null);
            }

            var disciplinasEol = await repositorioComponenteCurricular.ObterDisciplinasPorIds(atribuicoes.Select(a => a.DisciplinaId).Distinct().ToArray());

            IEnumerable <ComponenteCurricularEol> componentes = null;

            var componenteRegencia = disciplinasEol?.FirstOrDefault(c => c.Regencia);

            if (request.ListarComponentesPlanejamento && componenteRegencia != null)
            {
                var componentesRegencia = await repositorioComponenteCurricular.ObterDisciplinasPorIds(IDS_COMPONENTES_REGENCIA);

                if (componentesRegencia != null)
                {
                    componentes = TransformarListaDisciplinaEolParaRetornoDto(componentesRegencia);
                }
            }
            else
            {
                componentes = TransformarListaDisciplinaEolParaRetornoDto(disciplinasEol);
            }
            return(componentes);
        }