protected void gvProdutos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("Alterar"))
            {
                int index = int.Parse(e.CommandArgument.ToString());
                int ID = int.TryParse(gvProdutos.Rows[index].Cells[1].Text, out ID) ? ID : 0;

                try
                {
                    ProdutoBll produtoBll = new ProdutoBll();
                    Produto produto = produtoBll.RetornaProduto(ID);

                    txtID.Text = string.Format("{0:000000}", produto.ID);
                    txtDescricao.Text = produto.Descricao;
                    txtPrecoQuantidade.Text = string.Format("{0:C}", produto.PrecoQuantidade);
                    txtPrecoUnitario.Text = string.Format("{0:C}", produto.PrecoUnitario);
                    cbAtivo.Checked = produto.Ativo.Equals(1) ? true : false;

                    hfTipoOperacao.Value = TipoOperacao.Update.ToString();
                }
                catch (Exception ex)
                {
                    LogBll.InserirLog(new Log
                    {
                        ItemID = ID,
                        Login = User.Identity.Name,
                        Mensagem = ex.Message,
                        Operacao = TipoOperacao.Read.ToString(),
                        Tabela = "Produto"
                    });

                    Msg.Erro(Resource.ContateAdminstrador, this);
                }
            }
        }
        protected void btnProduto_Click(object sender, EventArgs e)
        {
            double Quantidade = double.TryParse(txtQuantidadeProduto.Text, out Quantidade) ? Quantidade : 0;

            if (Quantidade.Equals(0))
            {
                Msg.Info(Resource.QuantidadeMaiorZero, this);

                txtQuantidadeProduto.Focus();
            }
            else if (!ddlProdutos.SelectedValue.Equals("0"))
            {
                ProdutoBll ProdutoBll = new ProdutoBll();
                DataTable ProdutosTable = new DataTable();

                if (ViewState["Produtos"] != null)
                {
                    ProdutosTable = (DataTable)ViewState["Produtos"];
                }
                else
                {
                    ProdutosTable.Columns.Add("ID");
                    ProdutosTable.Columns.Add("produtoID");
                    ProdutosTable.Columns.Add("descricao");
                    ProdutosTable.Columns.Add("quantidade");
                    ProdutosTable.Columns.Add("total");
                    ProdutosTable.Columns.Add("precounitario");
                }

                int ID = int.Parse(ddlProdutos.SelectedValue);
                double PrecoUnitario = double.TryParse(txtPrecoProduto.Text, out PrecoUnitario) ? PrecoUnitario : 0;

                Produto Produto = ProdutoBll.RetornaProduto(ID);

                double Total = Quantidade * PrecoUnitario;

                ProdutosTable.NewRow();

                ProdutosTable.Rows.Add(0, Produto.ID, Produto.Descricao, string.Format("{0:N3}", Quantidade), string.Format("{0:N}", Total), PrecoUnitario);

                ViewState["Produtos"] = ProdutosTable;

                gvProdutos.DataSource = ProdutosTable;
                gvProdutos.DataBind();

                LimparFormularioProduto();
            }
            else
            {
                Msg.Info("Selecione um produto", this);
            }
        }
        protected void ddlProdutos_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                ProdutoBll ProdutoBll = new ProdutoBll();
                int ID = int.Parse(ddlProdutos.SelectedValue);

                if (!ID.Equals(0))
                {
                    Produto Produto = ProdutoBll.RetornaProduto(ID);

                    txtPrecoProduto.Text = string.Format("{0:N}", Produto.PrecoUnitario);
                }
            }
            catch (Exception ex)
            {
                Msg.Erro(Resource.ContateAdminstrador, this);
            }
        }
        private void BindarProdutos()
        {
            try
            {
                ProdutoBll ProdutoBll = new ProdutoBll();

                ddlProdutos.DataSource = ProdutoBll.RetornaProdutos();
                ddlProdutos.DataTextField = "Descricao";
                ddlProdutos.DataValueField = "ID";
                ddlProdutos.DataBind();
                ddlProdutos.Items.Insert(0, "Selecione");
                ddlProdutos.Items[0].Value = "0";
            }
            catch (Exception ex)
            {
                Msg.Erro(Resource.ContateAdminstrador, this);
            }
        }
        protected void gvPedidos_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("Alterar"))
            {
                int Linha = int.Parse(e.CommandArgument.ToString());
                int ID = int.TryParse(gvPedidos.Rows[Linha].Cells[0].Text, out ID) ? ID : 0;

                try
                {
                    PedidoBll PedidoBll = new PedidoBll();
                    ProdutoBll ProdutoBll = new ProdutoBll();
                    Pedido Pedido = PedidoBll.RetornarPedido(ID);

                    txtID.Text = string.Format("{0:000000}", Pedido.ID);
                    txtDocumento.Text = Pedido.Documento;
                    txtDataEmissao.Text = string.Format("{0:dd/MM/yyyy}", Pedido.DataEmissao);
                    txtDataEntrega.Text = string.Format("{0:dd/MM/yyyy}", Pedido.DataEntrega);

                    var Produtos = ProdutoBll.RetornarPedidoProdutos(Pedido.ID);

                    gvProdutos.DataSource = Produtos;
                    gvProdutos.DataBind();
                    ViewState["Produtos"] = Produtos.ToDataTable();
                }
                catch (Exception ex)
                {
                    Msg.Erro(Resource.ContateAdminstrador, this);
                }
            }
        }
        private void AlterarProduto()
        {
            int ID = int.TryParse(txtID.Text, out ID) ? ID : 0;

            try
            {
                ProdutoBll produtoBll = new ProdutoBll();
                Produto produto = produtoBll.RetornaProduto(ID);
                int fornecedorID = int.TryParse(ddlFornecedor.SelectedValue, out fornecedorID) ? fornecedorID : 0;
                decimal precoUnitario = decimal.TryParse(txtPrecoUnitario.Text, out precoUnitario) ? precoUnitario : 0;
                decimal precoQuantidade = decimal.TryParse(txtPrecoQuantidade.Text, out precoQuantidade) ? precoQuantidade : 0;
                decimal quantidadeReposicao = decimal.TryParse(txtQuantidadeReposicao.Text, out quantidadeReposicao) ? quantidadeReposicao : 0;

                produto.Ativo = cbAtivo.Checked;
                produto.Ativo = cbAtivo.Checked;
                produto.Descricao = txtDescricao.Text;
                //TODO: IMPLEMENTAR
                //produto.EmpresaID
                //produto.FornecedorID = fornecedorID;
                produto.PrecoQuantidade = precoQuantidade;
                produto.PrecoUnitario = precoUnitario;

                produtoBll.AlterarProduto(produto);

                LimparFormulario();

                LogBll.InserirLog(new Log
                {
                    ItemID = ID,
                    Login = Context.User.Identity.Name,
                    Operacao = TipoOperacao.Update.ToString(),
                    Tabela = "Produto"
                });

                Msg.Sucesso(Resource.ItemSalvoSucesso, this);
            }
            catch (Exception ex)
            {
                LogBll.InserirLog(new Log
                {
                    ItemID = ID,
                    Login = Context.User.Identity.Name,
                    Mensagem = ex.Message,
                    Operacao = TipoOperacao.Update.ToString(),
                    Tabela = "Produto"
                });

                Msg.Erro(Resource.ContateAdminstrador, this);
            }
        }
        private void BindarGrid()
        {
            try
            {
                ProdutoBll produtoBll = new ProdutoBll();

                gvProdutos.DataSource = produtoBll.BuscarProdutos(txtFiltro.Text);
                gvProdutos.DataBind();
            }
            catch (Exception ex)
            {
                LogBll.InserirLog(new Log
                {
                    Login = User.Identity.Name,
                    Mensagem = ex.Message,
                    Operacao = TipoOperacao.Read.ToString(),
                    Tabela = "Produto"
                });
                Msg.Erro(Resource.ContateAdminstrador, this);
            }
        }