//#region Métodos
        ///// <summary>
        ///// Selecionar a lista de módulos
        ///// </summary>
        ///// <returns>Lista de módulos</returns>
        public List<Categoria> Listar()
        {
            DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.SP_CATEGORIA_LISTA");
            //
            List<Categoria> listaCategoria = new List<Categoria>();

            using (IDataReader readerCategoria = this.m_db.ExecuteReader(dbc))
            {
                while (readerCategoria.Read())
                {
                    Categoria categoria = new Categoria();
                    categoria.CategoriaID = Conversion.preencheCampoInt(readerCategoria["COD_CATEGORIA"]);
                    categoria.Nome = Conversion.preencheCampoString(readerCategoria["NOM_CATEGORIA"]);

                    listaCategoria.Add(categoria);
                }
                readerCategoria.Dispose();
            }
            return listaCategoria;
        }
        /// <summary>
        /// Selecionar um usuário especifico
        /// </summary>
        /// <param name="idPerfil">Identificador do Usuario</param>
        /// <returns>Objeto usuário preenchido</returns>
        public Categoria GetCategoriaByID(int CategoriaID)
        {
            Categoria categoriaRetorno = null;

            DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.SP_CATEGORIA_GETbyID");
            this.m_db.AddInParameter(dbc, "@CATEGORIA_ID", DbType.Int32, CategoriaID);

            using (IDataReader readerCategoria = this.m_db.ExecuteReader(dbc))
            {
                if (readerCategoria.Read())
                {
                    categoriaRetorno = new Categoria();
                    categoriaRetorno.CategoriaID = Conversion.preencheCampoInt(readerCategoria["COD_CATEGORIA"]);
                    categoriaRetorno.Nome = Conversion.preencheCampoString(readerCategoria["NOM_CATEGORIA"]);

                }
                readerCategoria.Close();
            }
            return categoriaRetorno;
        }
        public List<Ped_Item> ListarByNumPed(int CodPedido)
        {
            DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.SP_PEDIDO_PESQUISA_COD");
            this.m_db.AddInParameter(dbc, "@COD_PED", DbType.Int32, CodPedido);

            List<Ped_Item> listaPedido = new List<Ped_Item>();

            using (IDataReader readerPedItem = this.m_db.ExecuteReader(dbc))
            {
                while (readerPedItem.Read())
                {
                    Ped_Item oPed_Item = new Ped_Item();
                    oPed_Item.PedidoItensID = Conversion.preencheCampoInt(readerPedItem["COD_PEDITENS"]);
                    oPed_Item.Quantidade = Conversion.preencheCampoInt(readerPedItem["NUM_QUANTIDADE"]);
                    oPed_Item.QuantidadeComprada = Conversion.preencheCampoInt(readerPedItem["NUM_QTDCOMPRADA"]);
                    oPed_Item.Outros = Conversion.preencheCampoString(readerPedItem["DSC_OUTROS"]);
                    oPed_Item.Data_Pedido = readerPedItem["DAT_PEDIDO_ITEM"].ToString() == "" ? DateTime.MinValue : Conversion.preencheCampoDateTime(readerPedItem["DAT_PEDIDO_ITEM"]);
                    oPed_Item.Data_EntradaFornecedor = readerPedItem["DAT_PEDIDO_FORN"].ToString() == "" ? DateTime.MinValue : Conversion.preencheCampoDateTime(readerPedItem["DAT_PEDIDO_FORN"]);
                    oPed_Item.Data_PrevisaoEntrega = readerPedItem["DAT_PEDIDO_PREVISAO"].ToString() == "" ? DateTime.MinValue : Conversion.preencheCampoDateTime(readerPedItem["DAT_PEDIDO_PREVISAO"]);
                    oPed_Item.Data_Entrega = readerPedItem["DAT_PEDIDO_ENTREGA"].ToString() == "" ? DateTime.MinValue : Conversion.preencheCampoDateTime(readerPedItem["DAT_PEDIDO_ENTREGA"]);
                    oPed_Item.Status = Conversion.preencheCampoInt(readerPedItem["NUM_STATUS_ITEM"]);

                    Item oItm = new Item();
                    oItm.Nome = Conversion.preencheCampoString(readerPedItem["NOM_ITEM"]);
                    oItm.Requer_Aprovação = Conversion.preencheCampoBoolean(readerPedItem["FLG_APROVACAO"]);

                    Categoria oCategoria = new Categoria();
                    oCategoria.Nome = Conversion.preencheCampoString(readerPedItem["NOM_CATEGORIA"]);

                    Grupo oArea = new Grupo();
                    oArea.ID = Conversion.preencheCampoInt(readerPedItem["GRUPO_ID"]);
                    oArea.Nome = Conversion.preencheCampoString(readerPedItem["NOM_GRUPO"]);

                    oItm.Categoria = oCategoria;

                    oPed_Item.Item = oItm;
                    oPed_Item.Area = oArea;

                    Projetos oProjeto = new Projetos();

                    oProjeto.Nome = Conversion.preencheCampoString(readerPedItem["NOM_PROJETO"]);
                    oPed_Item.Projeto = oProjeto;

                    listaPedido.Add(oPed_Item);
                }
                readerPedItem.Dispose();
            }
            return listaPedido;
        }
        protected void btnAddItem_Click(object sender, ImageClickEventArgs e)
        {
            if (Page.IsValid)
            {
                if (ddlItem.SelectedIndex > 0)
                {
                    Resultado resultado = new Resultado();
                    List<Ped_Item> listaPedItem = null;

                    Ped_Item ItemPedido = new Ped_Item();

                    if (ListaGridPersistida != null)
                    {
                        listaPedItem = (List<Ped_Item>)ListaGridPersistida;
                    }
                    else
                    {
                        listaPedItem = new List<Ped_Item>();
                    }

                    Projetos oProd = new Projetos();
                    oProd.ProjetoID = Convert.ToInt32(ddlProjeto.SelectedValue);
                    oProd.Nome = ddlProjeto.SelectedItem.ToString();

                    Categoria oCat = new Categoria();
                    oCat.CategoriaID = Convert.ToInt32(ddlCategoria.SelectedValue);
                    oCat.Nome = ddlCategoria.SelectedItem.ToString();

                    Grupo oArea = new Grupo();
                    if (((Usuario)Session["USUARIO"]).Perfil.PerfilId != 3)
                    {
                        oArea.ID = Convert.ToInt32(ddlArea.SelectedValue);
                        oArea.Nome = ddlArea.SelectedItem.ToString();
                    }
                    else
                    {
                        oArea = ((Usuario)Session["USUARIO"]).Area;
                    }

                    Item oItem = new Item();
                    oItem.ItemID = Convert.ToInt32(ddlItem.SelectedValue);
                    oItem.Nome = ddlItem.SelectedItem.ToString();
                    oItem.Categoria = oCat;

                    ItemPedido.PedidoItensID = listaPedItem.Count + 1;
                    ItemPedido.Item = oItem;
                    ItemPedido.Projeto = oProd;
                    ItemPedido.Area = oArea;
                    ItemPedido.Quantidade = Convert.ToInt32(txtQuantidade.Text);
                    ItemPedido.Data_Pedido = DateTime.Now;
                    ItemPedido.Status = Convert.ToInt32(StatusItemPedido.Em_Aberto);

                    if (txtOutros.Text.ToString() != string.Empty)
                    {
                        ItemPedido.Outros = txtOutros.Text.ToString();
                    }
                    if (txtDesc.Text.ToString() != string.Empty)
                    {
                        ItemPedido.Descrição = txtDesc.Text.ToString();
                    }

                    string msgConfirmacao = string.Empty;

                    resultado = oPedItemFacade.Validar(ItemPedido);

                    if (resultado.Sucesso)
                    {
                        ListaGridPersistida = listaPedItem;
                        listaPedItem.Add(ItemPedido);
                        gvPedItens.DataSource = (List<Ped_Item>)ListaGridPersistida;
                        gvPedItens.DataBind();
                        btnSalvar.Visible = true;
                        btnCancelar.Visible = true;
                    }
                }

                else
                {
                    ScriptManager.RegisterStartupScript(this, this.GetType(), "ResultadoConfirmação", "alert('Selecione um Item para adicionar a lista!');", true);
                }

                ddlCategoria_SelectedIndexChanged(null, null);
                txtDesc.Text = "";
                txtOutros.Text = "";
                txtQuantidade.Text = "";
            }
        }