/// <summary>
        /// Incluir um novo grupo
        /// </summary>
        /// <param name="grupo">Grupo a ser incluída</param>
        /// <returns>Resultado</returns>
        /// 
        ///VERIFICAR LOCAL ....
        public Resultado Incluir(Ped_Item oPedItem, Int32 IDPedido)
        {
            Resultado resultado = new Resultado();

            try
            {
                DbCommand dbCommand = this.m_db.GetStoredProcCommand("dbo.SP_PEDITEM_INSERE");
                this.m_db.AddInParameter(dbCommand, "@COD_PEDIDO", DbType.Int32, IDPedido);
                this.m_db.AddInParameter(dbCommand, "@COD_ITEM", DbType.Int32, oPedItem.Item.ItemID);
                this.m_db.AddInParameter(dbCommand, "@COD_PROJETO", DbType.Int32, oPedItem.Projeto.ProjetoID);
                this.m_db.AddInParameter(dbCommand, "@QUANTIDADE", DbType.Int32, oPedItem.Quantidade);

                resultado.Id = Convert.ToInt32(this.m_db.ExecuteScalar(dbCommand));
                resultado.Sucesso = (resultado.Id > 0);

            }
            catch (Exception ex)
            {
                resultado.Sucesso = false;
                Mensagem mensagem = new Mensagem();
                mensagem.Campo = "PedidoItem";
                mensagem.Descricoes.Add(ex.Message);
                resultado.Mensagens.Add(mensagem);
            }

            return resultado;
        }
        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;
        }
        /// <summary>
        /// Incluir um novo grupo
        /// </summary>
        /// <param name="grupo">Grupo a ser incluída</param>
        /// <returns>Resultado</returns>
        public Resultado Incluir(Ped_Item oPedItem, Int32 IDPedido)
        {
            Resultado resultado = new Resultado();

            try
            {
                DbCommand dbCommand = this.m_db.GetStoredProcCommand("dbo.SP_PEDITEM_INSERE");
                this.m_db.AddInParameter(dbCommand, "@COD_PEDIDO", DbType.Int32, IDPedido);
                this.m_db.AddInParameter(dbCommand, "@COD_ITEM", DbType.Int32, oPedItem.Item.ItemID);
                this.m_db.AddInParameter(dbCommand, "@COD_PROJETO", DbType.Int32, oPedItem.Projeto.ProjetoID);
                this.m_db.AddInParameter(dbCommand, "@QUANTIDADE", DbType.Int32, oPedItem.Quantidade);
                this.m_db.AddInParameter(dbCommand, "@DT_PEDINTEM", DbType.DateTime, oPedItem.Data_Pedido);
                this.m_db.AddInParameter(dbCommand, "@GRUPO_ID", DbType.Int32, oPedItem.Area.ID);
                this.m_db.AddInParameter(dbCommand, "@STATUS", DbType.Int32, oPedItem.Status);
                this.m_db.AddInParameter(dbCommand, "@OUTROS", DbType.String, Consts.Funcoes.NullOrString(oPedItem.Outros));
                this.m_db.AddInParameter(dbCommand, "@DESCRICAO", DbType.String, Consts.Funcoes.NullOrString(oPedItem.Descrição));

                resultado.Id = Convert.ToInt32(this.m_db.ExecuteScalar(dbCommand));
                resultado.Sucesso = (resultado.Id > 0);

            }
            catch (Exception ex)
            {
                resultado.Sucesso = false;
                Mensagem mensagem = new Mensagem();
                mensagem.Campo = "PedidoItem";
                mensagem.Descricoes.Add(ex.Message);
                resultado.Mensagens.Add(mensagem);
            }

            return resultado;
        }
        public Resultado FecharProcesso(Ped_Item oPedItem)
        {
            Resultado resultado = new Resultado();
            try
            {
                DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.SP_PEDINTEM_UPDATE");
                this.m_db.AddInParameter(dbc, "@VAL", DbType.Decimal, oPedItem.ValorUnitario);
                this.m_db.AddInParameter(dbc, "@PEDITEM", DbType.Int32, oPedItem.PedidoItensID);
                this.m_db.AddInParameter(dbc, "@STATUS", DbType.Int32, oPedItem.Status);

                resultado.Id = Convert.ToInt32(this.m_db.ExecuteScalar(dbc));
                resultado.Sucesso = (resultado.Id > 0);

            }
            catch (Exception ex)
            {
                resultado.Sucesso = false;
                Mensagem mensagem = new Mensagem();
                mensagem.Campo = "PedidoItemValor";
                mensagem.Descricoes.Add(ex.Message);
                resultado.Mensagens.Add(mensagem);
            }

            return resultado;
        }
        public Resultado AtualizaValor(Ped_Item oPedItem)
        {
            Resultado resultado = new Resultado();
            try
            {
                DbCommand dbc = this.m_db.GetStoredProcCommand("dbo.SP_PEDINTEM_UPDATE");
                this.m_db.AddInParameter(dbc, "@PEDITEM", DbType.Int32, oPedItem.PedidoItensID);
                this.m_db.AddInParameter(dbc, "@STATUS", DbType.Int32, oPedItem.Status);
                if (oPedItem.Data_PrevisaoEntrega >= DateTime.Now)
                {
                    this.m_db.AddInParameter(dbc, "@VAL", DbType.Decimal, oPedItem.ValorUnitario);
                    this.m_db.AddInParameter(dbc, "@DATAPREVISAO", DbType.DateTime, oPedItem.Data_PrevisaoEntrega);
                }

                resultado.Id = Convert.ToInt32(this.m_db.ExecuteNonQuery(dbc));
                resultado.Sucesso = (resultado.Id > 0);

            }
            catch (Exception ex)
            {
                resultado.Sucesso = false;
                Mensagem mensagem = new Mensagem();
                mensagem.Campo = "PedidoItemValor";
                mensagem.Descricoes.Add(ex.Message);
                resultado.Mensagens.Add(mensagem);
            }

            return resultado;
        }
 public Resultado Validar(Ped_Item oPedItem)
 {
     return new PedItemValidation(oPedItem).Validar();
 }
        protected List<Ped_Item> SalvaItens()
        {
            List<Ped_Item> ListaPedItens = new List<Ped_Item>();

            foreach (GridViewRow item in gvListaPCompraItens.Rows)
            {
                if (item.RowType == DataControlRowType.DataRow)
                {
                    TextBox txtvalor = (TextBox)item.FindControl("txtValorunitario");
                    TextBox txtPrevisaoEntrega = (TextBox)item.FindControl("txtDtEntrega");
                    CheckBox chkDisp = (CheckBox)item.FindControl("chkDisponibilidade");
                    Label lblCodProcesso = (Label)item.FindControl("lblCodProcesso");
                    if (txtvalor.Text != null && txtvalor.Text != String.Empty || chkDisp.Checked)
                    {
                        Ped_Item PedItem = new Ped_Item();
                        PedItem.PedidoItensID = Convert.ToInt32(((Label)item.FindControl("llbPedItemID")).Text);
                        if (txtvalor.Text != null && txtvalor.Text != String.Empty)
                            PedItem.ValorUnitario = Convert.ToDecimal(txtvalor.Text);
                        else
                            PedItem.ValorUnitario = 0;

                        if (txtPrevisaoEntrega.Text != null && txtPrevisaoEntrega.Text != String.Empty)
                            PedItem.Data_PrevisaoEntrega = Convert.ToDateTime(txtPrevisaoEntrega.Text);
                        else
                            PedItem.Data_PrevisaoEntrega = DateTime.MinValue;

                        if (chkDisp.Checked)
                            PedItem.Status = Conversion.preencheCampoInt(StatusItemPedido.Indisponível);
                        else
                            PedItem.Status = Conversion.preencheCampoInt(StatusItemPedido.Aguardando_Entrega); ;

                        PedItem.CodProcesso = Conversion.preencheCampoInt(lblCodProcesso.Text);
                        ListaPedItens.Add(PedItem);
                    }
                }
            }
            return ListaPedItens;
        }
        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 = "";
            }
        }
 public PedItemValidation(Ped_Item oPedItem)
 {
     this.m_PedidosItens = oPedItem;
     this.m_resultado.Sucesso = true;
 }