Ejemplo n.º 1
0
        protected void grvControleVigencia_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Deletar")
            {
                try
                {
                    List <TUR_Turma_Docentes_Disciplina> list = RetornaDadosGrid();

                    foreach (TUR_Turma_Docentes_Disciplina Item in list)
                    {
                        // Remove do cache as turmas do docente.
                        TUR_TurmaBO.RemoveCacheDocenteControleTurma(__SessionWEB.__UsuarioWEB.Usuario.ent_id, Item.entDocente.doc_id);
                    }

                    list.Remove(list.Find(p => p.indice == Convert.ToInt32(e.CommandArgument)));
                    AtualizaGrid(list);
                    CarregarDocenteVigente(list);
                }
                catch (Exception ex)
                {
                    ApplicationWEB._GravaErro(ex);
                    lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar excluir a vigência do docente.", UtilBO.TipoMensagem.Erro);
                }
            }

            if (e.CommandName == "Editar")
            {
                try
                {
                    List <TUR_Turma_Docentes_Disciplina> list   = RetornaDadosGrid();
                    TUR_Turma_Docentes_Disciplina        entity = list.Find(p => p.indice == Convert.ToInt32(e.CommandArgument));

                    uccDocente.Valor    = new long[] { -1, -1, -1, -1 };
                    uccDocente.Valor    = new[] { entity.entDocente.doc_id, entity.entDocente.col_id, entity.entDocente.crg_id, entity.entDocente.coc_id };
                    txtVigenciaIni.Text = entity.entDocente.tdt_vigenciaInicio.ToString("dd/MM/yyyy");
                    txtVigenciaFim.Text = entity.entDocente.tdt_vigenciaFim != new DateTime() ? entity.entDocente.tdt_vigenciaFim.ToString("dd/MM/yyyy") : string.Empty;
                    lblIndice.Text      = entity.indice.ToString();
                    lbltdt_id.Text      = entity.entDocente.tdt_id.ToString();

                    if (uccDocente.Valor[0] == -1)
                    {
                        uccDocente._Combo.Items.Add(new ListItem(entity.doc_nome, entity.entDocente.doc_id.ToString() + ";" +
                                                                 entity.entDocente.col_id.ToString() + ";" +
                                                                 entity.entDocente.crg_id.ToString() + ";" +
                                                                 entity.entDocente.coc_id.ToString()));
                        uccDocente.Valor         = new[] { entity.entDocente.doc_id, entity.entDocente.col_id, entity.entDocente.crg_id, entity.entDocente.coc_id };
                        uccDocente.PermiteEditar = false;
                    }
                }
                catch (Exception ex)
                {
                    ApplicationWEB._GravaErro(ex);
                    lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar editar a vigência do docente.", UtilBO.TipoMensagem.Erro);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Remove do cache a entidade.
        /// </summary>
        /// <param name="entity"></param>
        public static void LimpaCache(TUR_TurmaDocente entity, Guid ent_id, Int64 tur_id = 0)
        {
            if (HttpContext.Current != null)
            {
                // Chave padrão do cache - nome do método + parâmetros.
                HttpContext.Current.Cache.Remove(RetornaChaveCache_SelecionaPosicaoPorDocenteTurma(entity.doc_id, entity.tud_id));
                HttpContext.Current.Cache.Remove(RetornaChaveCache_SelecionaPosicaoPorDocenteTurma_ComInativos(entity.doc_id, entity.tud_id));
                GestaoEscolarUtilBO.LimpaCache(TUR_TurmaDisciplinaBO.Cache_SelecionaDisciplinaPorTurmaDocente, entity.doc_id.ToString());
                GestaoEscolarUtilBO.LimpaCache(TUR_TurmaDisciplinaBO.Cache_SelecionaDisciplinaPorTurmaDocente);
                GestaoEscolarUtilBO.LimpaCache(TUR_TurmaDisciplinaBO.RetornaChaveCache_SelectRelacionadaVigenteBy_DisciplinaCompartilhada(entity.tud_id, entity.doc_id.ToString()));
                CacheManager.Factory.RemoveByPattern(ModelCache.TURMA_DISCIPLINA_SELECIONA_DISCIPLINA_POR_TURMADOCENTE_SEM_VIGENCIA_PATTERN_KEY);
                GestaoEscolarUtilBO.LimpaCache(TUR_TurmaBO.RetornaChaveCache_SelecionaPorDocenteControleTurma(ent_id.ToString(), entity.doc_id.ToString()));
                GestaoEscolarUtilBO.LimpaCache(TUR_TurmaDisciplinaBO.RetornaChaveCache_SelectRelacionadaVigenteBy_DisciplinaCompartilhada(entity.tud_id, entity.doc_id.ToString()));
                TUR_TurmaBO.RemoveCacheDocenteControleTurma(ent_id, entity.doc_id);
                if (tur_id > 0)
                {
                    TUR_TurmaBO.RemoveCacheDocente_TurmaDisciplina(tur_id, entity.doc_id, ent_id);
                }
                else
                {
                    GestaoEscolarUtilBO.LimpaCache(TUR_TurmaDisciplinaBO.Cache_GetSelectBy_TurmaDocente, entity.doc_id.ToString());
                }

                GestaoEscolarUtilBO.LimpaCache(TUR_TurmaDisciplinaBO.RetornaChaveCache_SelectRelacionadaVigenteBy_DisciplinaCompartilhada(entity.tud_id, ""));
                GestaoEscolarUtilBO.LimpaCache(TUR_TurmaDisciplinaBO.RetornaChaveCache_SelectRelacionadaVigenteBy_DisciplinaCompartilhada(entity.tud_id, entity.doc_id.ToString()));
                GestaoEscolarUtilBO.LimpaCache(TUR_TurmaBO.RetornaChaveCache_DocenteControleTurmas(ent_id, entity.doc_id));
                CacheManager.Factory.RemoveByPattern(string.Format("{0}_{1}_{2}",
                                                                   ModelCache.TURMA_DISCIPLINA_SELECIONA_DISCIPLINA_POR_TURMADOCENTE_SEM_VIGENCIA_PATTERN_KEY,
                                                                   tur_id, entity.doc_id));

                if (ent_id != Guid.Empty)
                {
                    GestaoEscolarUtilBO.LimpaCache(ESC_UnidadeEscolaBO.RetornaChaveCache_SelectEscolas_VisaoIndividual(entity.doc_id, ent_id, 1));
                    GestaoEscolarUtilBO.LimpaCache(ESC_UnidadeEscolaBO.RetornaChaveCache_SelectEscolas_VisaoIndividual(entity.doc_id, ent_id, 0));
                }
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Salva os registros de TurmaDocente, efetua todas as validações necessárias, se precisar excluir um registro
        ///     do TurmaDocente é necessário mandar esse registro na linha com situação de excluido.
        /// </summary>
        /// <param name="tur_id">ID da turma</param>
        /// <param name="listTurmaDocente">Lista de entidade TUR_TurmaDocente</param>
        /// <param name="ent_id">ID da entidade do usuário logado</param>
        public static void SalvarTurmaDocente(long tur_id, List <TUR_TurmaDocente> listTurmaDocente, Guid ent_id)
        {
            TUR_TurmaDocenteDAO dao = new TUR_TurmaDocenteDAO();

            dao._Banco.Open(IsolationLevel.ReadCommitted);

            try
            {
                //Salva a lista de turmaDocente enviada
                foreach (TUR_TurmaDocente turmaDocente in listTurmaDocente)
                {
                    // Remove do cache as turmas do docente.
                    TUR_TurmaBO.RemoveCacheDocenteControleTurma(ent_id, turmaDocente.doc_id);

                    if (!turmaDocente.Validate())
                    {
                        throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(turmaDocente));
                    }

                    //Verifica se as datas das vigências estão válidas
                    if (turmaDocente.tdt_vigenciaFim != new DateTime() && turmaDocente.tdt_vigenciaInicio > turmaDocente.tdt_vigenciaFim)
                    {
                        throw new ArgumentException("Vigência inicial não pode ser maior que a vigência final.");
                    }

                    if (turmaDocente.tdt_situacao != (byte)TUR_TurmaDocenteSituacao.Excluido)
                    {
                        // Colocar situação ativa ou inativa pro docente, de acordo com a vigência.
                        if (turmaDocente.tdt_vigenciaInicio.Date <= DateTime.Now.Date &&
                            (turmaDocente.tdt_vigenciaFim == new DateTime() || turmaDocente.tdt_vigenciaFim.Date >= DateTime.Now.Date))
                        {
                            turmaDocente.tdt_situacao = turmaDocente.tdt_situacao;
                        }
                        else
                        {
                            turmaDocente.tdt_situacao = (byte)TUR_TurmaDocenteSituacao.Inativo;
                        }
                    }

                    turmaDocente.tdt_dataAlteracao = DateTime.Now;

                    if (!dao.Salvar(turmaDocente))
                    {
                        throw new ArgumentException("Erro ao salvar a atribuição de aula.");
                    }
                }

                if (ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.ALTERAR_AULAS_PARA_TITULAR_ATRIBUICAO_DOCENTES, ent_id))
                {
                    //Se houver algum registro na posição 2 ou maior transfere os lançamentos para a posição 1
                    foreach (TUR_TurmaDocente turmaDocente in listTurmaDocente.Where(turmaDocente => turmaDocente.tdt_posicao > 1 &&
                                                                                     turmaDocente.tdt_situacao == 1))
                    {
                        TransferirLancamentos_Posicao(turmaDocente.tud_id, dao._Banco);
                    }
                }

                foreach (TUR_TurmaDocente turmaDocente in listTurmaDocente)
                {
                    LimpaCache(turmaDocente, ent_id);
                }
            }
            catch (SqlException ex)
            {
                dao._Banco.Close(ex);
                throw ex;
            }
            catch (ValidationException ex)
            {
                dao._Banco.Close(ex);
                throw ex;
            }
            catch (ArgumentException ex)
            {
                dao._Banco.Close(ex);
                throw ex;
            }
            catch (Exception ex)
            {
                dao._Banco.Close(ex);
                throw ex;
            }
            finally
            {
                dao._Banco.Close();
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Salva as entidades dos docentes para a disciplina.
        /// </summary>
        /// <param name="tur_id">ID da turma</param>
        /// <param name="cad">Estrutura com dados da disciplina e lista de docentes</param>
        /// <param name="banco">Transação com banco</param>
        /// <param name="listaDocentesTodasDisciplinas">Lista de todos os docentes cadastrados para todas as disciplinas da turma - para verificar os que irá excluir</param>
        /// <param name="ent_id">Id da entidade do usuário logado.</param>
        public static void SalvarDocentesDisciplina(long tur_id
                                                    , CadastroTurmaDisciplina cad
                                                    , TalkDBTransaction banco
                                                    , List <TUR_Turma_Docentes_Disciplina> listaDocentesTodasDisciplinas
                                                    , Guid ent_id)
        {
            // Pegar os docentes que existiam antes na disciplina.
            List <TUR_Turma_Docentes_Disciplina> docentesCadastrados =
                (from TUR_Turma_Docentes_Disciplina item in listaDocentesTodasDisciplinas
                 where item.entDocente.tud_id == cad.entTurmaDisciplina.tud_id
                 select item
                ).ToList();

            foreach (TUR_Turma_Docentes_Disciplina docente in cad.listaTurmaDocente)
            {
                DateTime VigenciaFinalDocente = docente.entDocente.tdt_vigenciaFim == new DateTime() ? DateTime.MaxValue : docente.entDocente.tdt_vigenciaFim;

                // Validar se existem vigências com conflito de data.
                var x = from TUR_Turma_Docentes_Disciplina item in cad.listaTurmaDocente
                        where
                        GestaoEscolarUtilBO.ExisteConflitoDatas
                            (item.entDocente.tdt_vigenciaInicio, item.entDocente.tdt_vigenciaFim == new DateTime() ? DateTime.MaxValue : item.entDocente.tdt_vigenciaFim
                            , docente.entDocente.tdt_vigenciaInicio, VigenciaFinalDocente) &&
                        item.indice != docente.indice &&
                        item.entDocente.tdt_posicao == docente.entDocente.tdt_posicao
                        select item;

                if (x.Count() > 0)
                {
                    throw new ValidationException(
                              "Existe um conflito de datas da vigência do docente \"" + docente.doc_nome + "\".");
                }

                // Verifica se o mesmo docente está vigente em mais de uma posição.
                var y = from TUR_Turma_Docentes_Disciplina item in cad.listaTurmaDocente
                        where
                        GestaoEscolarUtilBO.ExisteConflitoDatas
                            (item.entDocente.tdt_vigenciaInicio, item.entDocente.tdt_vigenciaFim == new DateTime() ? DateTime.MaxValue : item.entDocente.tdt_vigenciaFim
                            , docente.entDocente.tdt_vigenciaInicio, VigenciaFinalDocente) &&
                        item.entDocente.tdt_posicao != docente.entDocente.tdt_posicao &&
                        item.entDocente.doc_id == docente.entDocente.doc_id &&
                        item.entDocente.coc_id == docente.entDocente.coc_id &&
                        item.entDocente.col_id == docente.entDocente.col_id &&
                        item.entDocente.crg_id == docente.entDocente.crg_id
                        select item;

                if (y.Count() > 0)
                {
                    throw new ValidationException(
                              "O docente \"" + docente.doc_nome + "\" não pode estar vigente em mais de uma posição.");
                }

                // Remove do cache as turmas do docente.
                TUR_TurmaBO.RemoveCacheDocenteControleTurma(ent_id, docente.entDocente.doc_id);
                TUR_TurmaBO.RemoveCacheDocente_TurmaDisciplina(tur_id, docente.entDocente.doc_id, ent_id);

                TUR_TurmaDocente entTurmaDocente = docente.entDocente;
                entTurmaDocente.tud_id = cad.entTurmaDisciplina.tud_id;

                LimpaCache(entTurmaDocente, ent_id);

                // Salvar entidade.
                Save(entTurmaDocente, banco);
            }

            // Se remover docente, transfere os lançamentos.
            if (!cad.listaTurmaDocente.Exists(p => (p.entDocente.tdt_posicao > 1 && p.entDocente.tdt_situacao == 1)) &&
                ACA_ParametroAcademicoBO.ParametroValorBooleanoPorEntidade(eChaveAcademico.ALTERAR_AULAS_PARA_TITULAR_ATRIBUICAO_DOCENTES, ent_id))
            {
                TransferirLancamentos_Posicao(cad.entTurmaDisciplina.tud_id, banco);
            }

            foreach (TUR_Turma_Docentes_Disciplina docente in docentesCadastrados)
            {
                // Verificar se o docente existia antes e não existe mais.
                if (!cad.listaTurmaDocente.Exists(p =>
                                                  (p.entDocente.tud_id == docente.entDocente.tud_id &&
                                                   p.entDocente.tdt_id == docente.entDocente.tdt_id)))
                {
                    // Excluir.
                    Delete(docente.entDocente, banco);
                }
            }
        }