Пример #1
0
        /// <summary>
        /// Parâmetros para efetuar a exclusão lógica.
        /// </summary>
        protected override void ParamDeletar(QueryStoredProcedure qs, ORC_Conteudo entity)
        {
            Param               = qs.NewParameter();
            Param.DbType        = DbType.Int32;
            Param.ParameterName = "@obj_id";
            Param.Size          = 4;
            Param.Value         = entity.obj_id;
            qs.Parameters.Add(Param);

            Param               = qs.NewParameter();
            Param.DbType        = DbType.Int32;
            Param.ParameterName = "@ctd_id";
            Param.Size          = 4;
            Param.Value         = entity.ctd_id;
            qs.Parameters.Add(Param);

            Param               = qs.NewParameter();
            Param.DbType        = DbType.Byte;
            Param.ParameterName = "@situacao";
            Param.Size          = 1;
            Param.Value         = 3;
            qs.Parameters.Add(Param);

            Param               = qs.NewParameter();
            Param.DbType        = DbType.DateTime;
            Param.ParameterName = "@dataAlteracao";
            Param.Size          = 8;
            Param.Value         = DateTime.Now;
            qs.Parameters.Add(Param);
        }
Пример #2
0
        /// <summary>
        /// Salva os registros de habilidades para o conteúdo.
        /// </summary>
        /// <param name="entConteudo">Entidade conteúdo</param>
        /// <param name="list">Lista de habilidades para salvar</param>
        /// <param name="banco">Transação com banco - obrigatório</param>
        internal static void SalvarHabilidadesConteudo(ORC_Conteudo entConteudo, List <ORC_Habilidades> list, TalkDBTransaction banco)
        {
            foreach (ORC_Habilidades entity in list)
            {
                entity.obj_id = entConteudo.obj_id;
                entity.ctd_id = entConteudo.ctd_id;
                entity.IsNew  = entity.hbl_id <= 0;

                if (!string.IsNullOrEmpty(entity.hbl_descricao))
                {
                    if (!entity.Validate())
                    {
                        throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entity));
                    }

                    // Verifica se já existe uma habilidade cadastrada com a mesma descrição, no mesmo objetivo e conteúdo.
                    if (VerificaHabilidadePorNome_Objetivo_Conteudo(entity.obj_id, entity.ctd_id, entity.hbl_id, entity.hbl_descricao))
                    {
                        throw new ValidationException("Já existe uma habilidade cadastrada com a descrição " + entity.hbl_descricao + " no mesmo conteúdo.");
                    }

                    Save(entity, banco);
                }
                else
                {
                    if (entity.hbl_id > 0)
                    {
                        Delete(entity, banco);
                    }
                }
            }
        }
Пример #3
0
        protected void btnExcluirConteudo_Click(object sender, EventArgs e)
        {
            try
            {
                // Pegar os ID's dos itens que serão excluídos.
                ImageButton btn    = (ImageButton)sender;
                string      obj_id = btn.CommandArgument.Split(';')[0];
                string      ctd_id = btn.CommandArgument.Split(';')[1];

                ORC_Conteudo entity = new ORC_Conteudo {
                    obj_id = Convert.ToInt32(string.IsNullOrEmpty(obj_id) ? "0" : obj_id)
                    ,
                    ctd_id = Convert.ToInt32(string.IsNullOrEmpty(ctd_id) ? "0" : ctd_id)
                };

                if (entity.obj_id > 0 && entity.ctd_id > 0)
                {
                    ORC_ConteudoBO.Delete(entity);

                    ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Delete, "obj_id: " + entity.obj_id + "; ctd_id: " + entity.ctd_id);

                    VS_EditItem = -1;

                    // Recarregar repeater.
                    CarregarObjetivosConteudos();

                    lblMensagem.Text = UtilBO.GetErroMessage("Conteúdo do ojetivo da orientação curricular excluído com sucesso.", UtilBO.TipoMensagem.Sucesso);
                }
                else
                {
                    lblMensagem.Text = UtilBO.GetErroMessage("Não foi possível excluir o conteúdo do objetivo da orientação curricular.", UtilBO.TipoMensagem.Alerta);
                }
            }
            catch (ValidationException ex)
            {
                lblMensagem.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar excluir o conteúdo do objetivo da orientação curricular.", UtilBO.TipoMensagem.Erro);
            }
        }
Пример #4
0
        /// <summary>
        /// Salva os períodos relacionados ao conteúdo.
        /// </summary>
        /// <param name="entConteudo">Entidae do conteúdo</param>
        /// <param name="list">Lista de tpc_id</param>
        /// <param name="banco">Transação - obrigatório</param>
        internal static void SalvarPeriodos(ORC_Conteudo entConteudo, List <int> list, TalkDBTransaction banco)
        {
            List <ORC_ConteudoTipoPeriodoCalendario> listaPeriodosBanco = SelecionaListaPor_Conteudo(entConteudo.obj_id, entConteudo.ctd_id, banco);

            // Inclui os períodos para o conteúdo do objetivo
            foreach (int tpc_id in list)
            {
                ORC_ConteudoTipoPeriodoCalendario entity = new ORC_ConteudoTipoPeriodoCalendario
                {
                    obj_id = entConteudo.obj_id,
                    ctd_id = entConteudo.ctd_id,
                    tpc_id = tpc_id
                };

                // Só inclui o tipo de período do calendário para o conteúdo do objetivo se ele não existir no banco
                if (!listaPeriodosBanco.Exists(p => p.obj_id == entity.obj_id &&
                                               p.ctd_id == entity.ctd_id &&
                                               p.tpc_id == entity.tpc_id))
                {
                    if (!entity.Validate())
                    {
                        throw new ValidationException(GestaoEscolarUtilBO.ErrosValidacao(entity));
                    }

                    Save(entity, banco);
                }
            }

            // Deleta os períodos para o conteúdo do objetivo que não estão na lista do usuário
            foreach (ORC_ConteudoTipoPeriodoCalendario entityPeriodo in listaPeriodosBanco)
            {
                if (!list.Exists(p => p.Equals(entityPeriodo.tpc_id)))
                {
                    Delete(entityPeriodo, banco);
                }
            }
        }
Пример #5
0
        /// <summary>
        /// Retorna a estrutura de cadastro de conteúdo, com os dados do item de repeater passado por
        /// parâmetro.
        /// </summary>
        /// <param name="item">Item</param>
        /// <returns></returns>
        private ORC_Conteudo_Cadastro RetornaConteudoCadastro(RepeaterItem item)
        {
            Literal litCtd_id = (Literal)item.FindControl("litCtd_id");
            Literal litObj_id = (Literal)item.FindControl("litObj_id");
            int     ctd_id    = 0;
            int     obj_id    = 0;

            // se não vier da ação de copiar orientação curricular, guarda os ids para alterar caso seja uma alteração.
            if (Cal_id_Copia <= 0)
            {
                obj_id = Convert.ToInt32(litObj_id.Text);
                ctd_id = Convert.ToInt32(litCtd_id.Text);
            }

            ORC_Conteudo entConteudo = new ORC_Conteudo
            {
                obj_id = obj_id
                ,
                ctd_id = ctd_id
            };

            List <ORC_ConteudoItem> listaItens       = RetornaItensConteudo(item, obj_id, ctd_id);
            List <ORC_Habilidades>  listaHabilidades = RetornaHabilidades(item, obj_id, ctd_id);
            List <int> listaPeriodos = RetornaPeriodos(item);

            return(new ORC_Conteudo_Cadastro
            {
                entConteudo = entConteudo
                ,
                listItensConteudo = listaItens
                ,
                listHabilidades = listaHabilidades
                ,
                listPeriodos = listaPeriodos
            });
        }
Пример #6
0
        protected void btnAdicionarConteudo_Click(object sender, EventArgs e)
        {
            try
            {
                // Utilizado na validação de item do conteúdo e de habilidade
                Button       btn = (Button)sender;
                RepeaterItem rptItemConteudoValidacao = (RepeaterItem)btn.NamingContainer;
                Repeater     rptItemValidacao         = (Repeater)rptItemConteudoValidacao.FindControl("rptConteudoItem");
                foreach (RepeaterItem item in rptItemValidacao.Items)
                {
                    TextBox txtItem = (TextBox)item.FindControl("txtDescricao");
                    if (string.IsNullOrEmpty(txtItem.Text))
                    {
                        throw new ValidationException("Item do conteúdo é obrigatório.");
                    }
                }
                Repeater rptHabilidadeValidacao = (Repeater)rptItemConteudoValidacao.FindControl("rptHabilidades");
                foreach (RepeaterItem item in rptHabilidadeValidacao.Items)
                {
                    TextBox txtHabilidade = (TextBox)item.FindControl("txtDescricao");
                    if (string.IsNullOrEmpty(txtHabilidade.Text))
                    {
                        throw new ValidationException("Habilidade é obrigatório.");
                    }
                }

                // Adicionar item de conteúdo na lista de dados.
                Repeater rptContainer = RetornaRepeaterBotao(sender);
                List <ORC_Conteudo_Cadastro> lista = new List <ORC_Conteudo_Cadastro>();

                // Se o botão está dentro do repeater de objetivos - não tem item no repeater de conteúdo.
                if (!rptContainer.ID.Equals(rptObjetivos.ID))
                {
                    foreach (RepeaterItem item in rptContainer.Items)
                    {
                        lista.Add(RetornaConteudoCadastro(item));
                    }
                }

                int obj_id = -1;

                if (lista.Count > 0)
                {
                    ORC_Conteudo ent = lista.FindLast(p => p.entConteudo != null).entConteudo;

                    if (ent != null)
                    {
                        obj_id = ent.obj_id;
                    }
                }

                // Verifica a qtde de conteúdos cadastrados
                var x2 = from ORC_Conteudo_Cadastro cad in lista
                         select cad.entConteudo;

                // Gera um novo id para o conteúdo (utilizado apenas na tela)
                int ctd_id = x2.Count() + 1;

                ORC_Conteudo_Cadastro novoItem = CriaNovoConteudo(obj_id, ctd_id);

                lista.Add(novoItem);

                listaConteudoCadastro = lista;

                var x = from ORC_Conteudo_Cadastro cad in lista
                        select cad.entConteudo;

                // Seta flag que indica se o item do Objetivo é o que está sendo editado.
                editandoItemObjetivo = true;

                Repeater rptConteudos = rptContainer;

                if (rptContainer.ID.Equals(rptObjetivos.ID))
                {
                    RepeaterItem itemObjetivo = RetornaRepeaterItemBotao(sender);
                    rptConteudos = (Repeater)itemObjetivo.FindControl("rptConteudos");
                }

                // Dá o dataBind no repeater, e seta a propriedade Visible no botão de adicionar conteúdo.
                rptConteudos.DataSource = x;
                AtualizaRepeaterConteudos(rptConteudos, (RepeaterItem)rptConteudos.NamingContainer);

                RepeaterItem rptItem = (RepeaterItem)rptConteudos.NamingContainer;

                // Seta flag que indica se o item do Objetivo é o que está sendo editado.
                editandoItemObjetivo = true;

                // Atualiza o rowSpan da coluna de objetivos.
                HtmlTableCell tdObj = (HtmlTableCell)rptItem.FindControl("tdObj");
                tdObj.RowSpan = x.Count() + 1;

                listaConteudoCadastro = null;
            }
            catch (ValidationException ex)
            {
                lblMensagem.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta);
            }
            catch (Exception ex)
            {
                ApplicationWEB._GravaErro(ex);
                lblMensagem.Text = UtilBO.GetErroMessage("Erro ao tentar adicionar item de conteúdo.", UtilBO.TipoMensagem.Erro);
            }
        }
Пример #7
0
 /// <summary>
 /// Método alterado para que o delete não faça exclusão física e sim lógica (update).
 /// </summary>
 /// <param name="entity"> Entidade ORC_ConteudoItem</param>
 /// <returns>true = sucesso | false = fracasso</returns>
 public override bool Delete(ORC_Conteudo entity)
 {
     __STP_DELETE = "NEW_ORC_Conteudo_Update_Situacao";
     return(base.Delete(entity));
 }