public Produto VerProduto(string NumeroProduto)
        {
            Produto produto = new Produto();

            try
            {
                // Conectar ao banco
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    // Busca  id para estoque especifico
                    ProdutoEstoque produtoEstoque = (from p in database.ProdutoEstoque
                                                     where String.Compare(p.NumeroProduto, NumeroProduto) == 0
                                                     select p).First();

                    Produto product = new Produto()
                    {
                        NumeroProduto    = produtoEstoque.NumeroProduto,
                        NomeProduto      = produtoEstoque.NomeProduto,
                        DescricaoProduto = produtoEstoque.DescricaoProduto,
                        EstoqueProduto   = produtoEstoque.EstoqueProduto
                    };
                    produto = product;
                }
            }
            catch
            {
                return(null);
            }

            return(produto);
        }
        public bool AdicionarEstoque(string NumeroProduto, int Quantidade)
        {
            try
            {
                // Conectar ao banco
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    // Busca  id para estoque especifico
                    ProdutoEstoque produtoEstoque = (from p in database.ProdutoEstoque
                                                     where String.Compare(p.NumeroProduto, NumeroProduto) == 0
                                                     select p).First();
                    if (produtoEstoque == null)
                    {
                        return(false);
                    }
                    // Busca o estoque
                    produtoEstoque.EstoqueProduto += Quantidade;
                    database.SaveChanges();
                }
            }
            catch
            {
                return(false);
            }

            return(true);
        }
示例#3
0
        public bool IncluirProduto(EstoqueProdutoData produto)
        {
            // Connect to the ProductsModel database
            using (ProvedorEstoque database = new ProvedorEstoque())
            {
                try
                {
                    ProdutoEstoque novoProduto = new ProdutoEstoque
                    {
                        NomeProduto      = produto.NomeProduto,
                        NumeroProduto    = produto.NumeroProduto,
                        DescricaoProduto = produto.DescricaoProduto,
                        EstoqueProduto   = produto.EstoqueProduto
                    };

                    database.ProdutoEstoques.Add(novoProduto);

                    database.SaveChanges();
                    return(true);
                }
                catch
                {
                    return(false);
                }
            }
        }
        private void btnConfirmar_Click(object sender, EventArgs e)
        {
            ProdutoDAO produtoDAO = new ProdutoDAO();
            Produto    produto    = produtoDAO.Read(txtCodigoBarras.Text);

            ProdutoEstoqueDAO produtoEstoqueDAO = new ProdutoEstoqueDAO();
            ProdutoEstoque    produtoEstoque    = produtoEstoqueDAO.Read(produto.Codigo);

            if (!txtQuantidade.Text.Equals(""))
            {
                /* Atualiza o estoque */
                produtoEstoque.QuantidadeEstoque += int.Parse(txtQuantidade.Text);
                produtoEstoqueDAO.Update(produtoEstoque);

                /* Exibe a mensage na tela */
                MessageBox.Show("Quantidade em estoque do produto atualizada", "Estoque atualizado",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
                btnConfirmar.Enabled = false;

                /* Limpa as caixas de texto */
                txtCodigoBarras.Text = "";
                txtDescricao.Text    = "";
                txtQuantidade.Text   = "";
            }
            else
            {
                MessageBox.Show("Por favor, insira a quantidade recebida do produto",
                                "Falntando Informações", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
示例#5
0
        public Produto VerProduto(string numeroProduto)
        {
            Produto produto = null;

            try
            {
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque produtoEstoque = database.ProdutoEstoques.First(
                        p => String.Compare(p.NumeroProduto, numeroProduto) == 0);

                    produto = new Produto()
                    {
                        NumeroProduto    = produtoEstoque.NumeroProduto,
                        NomeProduto      = produtoEstoque.NomeProduto,
                        DescricaoProduto = produtoEstoque.DescricaoProduto,
                        EstoqueProduto   = produtoEstoque.EstoqueProduto
                    };
                }
            }
            catch
            {
            }

            return(produto);
        }
示例#6
0
        public bool RemoverProduto(string NumeroProduto)
        {
            try
            {
                // Connect to the ProductsModel database
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque produtoEstoqueDB = database.ProdutoEstoques.First(pe => pe.NumeroProduto == NumeroProduto);
                    if (produtoEstoqueDB == null)
                    {
                        return(false);
                    }

                    database.ProdutoEstoques.Remove(produtoEstoqueDB);
                    // Save the change back to the database
                    database.SaveChanges();
                }
            }
            catch
            {
                // If an exception occurs, return false to indicate failure
                return(false);
            }

            // Return true to indicate success
            return(true);
        }
示例#7
0
        public bool IncluirProduto(ProdutoEstoqueData produto)
        {
            try
            {
                // Connect to the ProductsModel database
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque produtoEstoque = new ProdutoEstoque()
                    {
                        NumeroProduto    = produto.NumeroProduto,
                        NomeProduto      = produto.NomeProduto,
                        DescricaoProduto = produto.DescricaoProduto,
                        EstoqueProduto   = produto.EstoqueProduto
                    };

                    database.ProdutoEstoques.Add(produtoEstoque);
                    database.SaveChanges();
                }
            }
            catch
            {
                // If an exception occurs, return false to indicate failure
                return(false);
            }
            return(true);
        }
示例#8
0
        //Persistir o objecto e atualizar informações
        private bool atualizar(EstoqueSaida OEstoqueSaida)
        {
            //Localizar existentes no banco
            EstoqueSaida   dbEstoqueSaida   = this.carregar(OEstoqueSaida.id);
            ProdutoEstoque dbProdutoEstoque = db.ProdutoEstoque.FirstOrDefault(x => x.id == dbEstoqueSaida.idProdutoEstoque);

            //Configurar valores padrão
            OEstoqueSaida.setDefaultUpdateValues <EstoqueSaida>();
            OEstoqueSaida.ProdutoEstoque.setDefaultUpdateValues <ProdutoEstoque>();
            OEstoqueSaida.idProdutoEstoque  = dbProdutoEstoque.id;
            OEstoqueSaida.ProdutoEstoque.id = dbProdutoEstoque.id;

            //Atualizacao da Funcionario
            var EstoqueSaidaEntry = db.Entry(dbEstoqueSaida);

            EstoqueSaidaEntry.CurrentValues.SetValues(OEstoqueSaida);
            EstoqueSaidaEntry.ignoreFields <EstoqueSaida>();

            //Atualizacao Dados Pessoa
            var ProdutoEstoqueEntry = db.Entry(dbProdutoEstoque);

            ProdutoEstoqueEntry.CurrentValues.SetValues(OEstoqueSaida.ProdutoEstoque);
            ProdutoEstoqueEntry.ignoreFields <ProdutoEstoque>();

            db.SaveChanges();
            return(OEstoqueSaida.id > 0);
        }
示例#9
0
        public ProdutoTO VerProduto(string NumeroProduto)
        {
            ProdutoTO produtoTO = null;

            try
            {
                // Connect to the ProductsModel database
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque produtoEstoqueDB = database.ProdutoEstoques.First(pe => pe.NumeroProduto == NumeroProduto);
                    if (produtoEstoqueDB != null)
                    {
                        produtoTO = new ProdutoTO();
                        produtoTO.setNumeroProduto(produtoEstoqueDB.NumeroProduto);
                        produtoTO.setNomeProduto(produtoEstoqueDB.NomeProduto);
                        produtoTO.setDescricaoProduto(produtoEstoqueDB.DescricaoProduto);
                        produtoTO.setEstoqueProduto(produtoEstoqueDB.EstoqueProduto);
                    }
                }
            }
            catch
            {
                // If an exception occurs, return false to indicate failure
            }

            // Return true to indicate success
            return(produtoTO);
        }
        public bool IncluirProduto(ProductData productData)
        {
            List <string> productsList = new List <string>();

            try
            {
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque produtoEstoque = new ProdutoEstoque();

                    produtoEstoque.NumeroProduto    = productData.NomeProduto;
                    produtoEstoque.NumeroProduto    = productData.NomeProduto;
                    produtoEstoque.DescricaoProduto = productData.DescricaoProduto;
                    produtoEstoque.EstoqueProduto   = productData.EstoqueProduto;

                    database.ProdutoE.Add(produtoEstoque);
                    database.SaveChanges();
                }
            }
            catch
            {
                return(false);
            }
            return(true);
        }
示例#11
0
        public bool AdcionarEstoque(string NumeroProduto, int Quantidade)
        {
            try
            {
                // Connect to the ProductsModel database
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque produtoEstoqueDB = database.ProdutoEstoques.Find(NumeroProduto);
                    if (produtoEstoqueDB != null)
                    {
                        database.Entry(produtoEstoqueDB).State = EntityState.Modified;

                        int quantidadeTotal = produtoEstoqueDB.EstoqueProduto;
                        quantidadeTotal += Quantidade;
                        produtoEstoqueDB.EstoqueProduto = quantidadeTotal;

                        // Save the change back to the database
                        database.SaveChanges();
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            catch
            {
                // If an exception occurs, return false to indicate failure
                return(false);
            }

            // Return true to indicate success
            return(true);
        }
示例#12
0
        public ProdutoEstoqueData VerProduto(string NumeroProduto)
        {
            ProdutoEstoqueData productData = null;

            try
            {
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    // Find the first product that matches the specified product code
                    ProdutoEstoque productEstoque = database.ProdutoEstoques.First(
                        p => String.Compare(p.NumeroProduto, NumeroProduto) == 0);
                    productData = new ProdutoEstoqueData()
                    {
                        NumeroProduto    = productEstoque.NumeroProduto,
                        NomeProduto      = productEstoque.NomeProduto,
                        DescricaoProduto = productEstoque.DescricaoProduto,
                        EstoqueProduto   = productEstoque.EstoqueProduto
                    };
                }
            }
            catch
            {
                // Ignore exceptions in this implementation
            }
            // Return the product
            return(productData);
        }
        public ProductData VerProduto(string NumeroProduto)
        {
            ProductData   productData  = null;
            List <string> productsList = new List <string>();

            try
            {
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque matchingProduct = database.ProdutoE.First(
                        p => String.Compare(p.NumeroProduto, NumeroProduto) == 0);
                    productData = new ProductData()
                    {
                        NumeroProduto    = matchingProduct.NumeroProduto,
                        NomeProduto      = matchingProduct.NomeProduto,
                        DescricaoProduto = matchingProduct.DescricaoProduto,
                        EstoqueProduto   = matchingProduct.EstoqueProduto
                    };
                }
            }
            catch
            {
                // Ignore exceptions in this implementation
            }
            return(productData);
        }
        public Produto VerProduto(string NumeroProduto)
        {
            Produto produto = new Produto();

            try
            {
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque produtoEstoque = (from p in database.ProdutoEstoques where string.Compare(p.NumeroProduto, NumeroProduto) == 0 select p).First();
                    if (produtoEstoque == null)
                    {
                        return(null);
                    }
                    else
                    {
                        produto.DescricaoProduto = produtoEstoque.DescricaoProduto;
                        produto.EstoqueProduto   = produtoEstoque.EstoqueProduto;
                        produto.NomeProduto      = produtoEstoque.NomeProduto;
                        produto.NumeroProduto    = produtoEstoque.NumeroProduto;
                        return(produto);
                    }
                }
            }
            catch
            {
                return(null);
            }
        }
示例#15
0
        public Produto VerProduto(string NumeroProduto)
        {
            Produto produto = null;

            try
            {
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    int produtoID = (
                        from pe in database.ProdutoEstoques
                        where String.Compare(pe.NumeroProduto, NumeroProduto) == 0
                        select pe.Id).First();

                    ProdutoEstoque produtoEstoque = database.ProdutoEstoques.First(pe => pe.Id == produtoID);

                    produto = new Produto();
                    produto.setNumeroProduto(produtoEstoque.NumeroProduto);
                    produto.setNomeProduto(produtoEstoque.NomeProduto);
                    produto.setDescricaoProduto(produtoEstoque.DescricaoProduto);
                    produto.setEstoqueProduto(produtoEstoque.EstoqueProduto);
                }
            }
            catch
            {
            }
            return(produto);
        }
示例#16
0
        public bool RemoverEstoque(string NumeroProduto, int quantidade)
        {
            try
            {
                // Connect to the ProductsModel database
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    // Find the first product that matches the specified product code

                    ProdutoEstoque produtoEstoque = database.ProdutoEstoques.First(pi => pi.NumeroProduto == NumeroProduto);
                    if (produtoEstoque.EstoqueProduto - quantidade > 0)
                    {
                        produtoEstoque.EstoqueProduto -= quantidade;
                        database.SaveChanges();
                    }

                    // Save the change back to the database
                }
            }
            catch
            {
                // If an exception occurs, return false to indicate failure
                return(false);
            }

            return(true);
        }
示例#17
0
 public bool RemoverEstoque(string NumProduto, int QuantProduto)
 {
     try
     {
         // Connect to the ProductsModel database
         using (ProvedorEstoque database = new ProvedorEstoque())
         {
             ProdutoEstoque prod = (from p in database.ProdutosEstoques
                                    where String.Compare(p.NumeroProduto, NumProduto) == 0
                                    select p).First();
             int estoque = prod.EstoqueProduto - QuantProduto;
             if (estoque > 0)
             {
                 prod.EstoqueProduto = estoque;
             }
             else
             {
                 prod.EstoqueProduto = 0;
             }
             database.SaveChanges();
         }
     }
     catch
     {
         // If an exception occurs, return false to indicate failure
         return(false);
     }
     // Return true to indicate success
     return(true);
 }
示例#18
0
        public EstoqueProdutoData VerProduto(string productCode)
        {
            EstoqueProdutoData productData = null;

            try
            {
                // Connect to the ProductsModel database
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    // Find the first product that matches the specified product code
                    ProdutoEstoque matchingProduct = database.ProdutoEstoques.First(
                        p => String.Compare(p.NumeroProduto, productCode) == 0);
                    productData = new EstoqueProdutoData()
                    {
                        NumeroProduto    = matchingProduct.NumeroProduto,
                        NomeProduto      = matchingProduct.NomeProduto,
                        DescricaoProduto = matchingProduct.DescricaoProduto,
                        EstoqueProduto   = matchingProduct.EstoqueProduto
                    };
                }
            }
            catch
            {
                // Ignore exceptions in this implementation
            }
            // Return the product
            return(productData);
        }
        public Produto VerProduto(string NumeroProduto)
        {
            Produto product = null;

            try
            {
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    // Find the first product that matches the specified product code
                    ProdutoEstoque matchingProduct = database.ProdutoEstoques.First(p => String.Compare(p.NumeroProduto, NumeroProduto) == 0);
                    product = new Produto()
                    {
                        NomeProduto      = matchingProduct.NomeProduto,
                        NumeroProduto    = matchingProduct.NumeroProduto,
                        DescricaoProduto = matchingProduct.DescricaoProduto,
                        EstoqueProduto   = matchingProduct.EstoqueProduto
                    };
                }
            }
            catch
            {
                ///////////////////
            }

            return(product);
        }
        public bool RemoverProduto(string NumeroProduto)
        {
            try
            {
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque prod = database.ProdutoEstoques.Where(p => p.NumeroProduto == NumeroProduto).FirstOrDefault();

                    if (prod != null)
                    {
                        database.ProdutoEstoques.Remove(prod);
                        database.SaveChanges();
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            catch
            {
                return(false);
            }
        }
        public bool AdicionarEstoque(string NumeroProduto, int Quantidade)
        {
            try
            {
                // Connect to the ProductsModel database
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    // Find the ProductID for the specified produc
                    string productID = (from p in database.ProdutoEstoques
                                        where String.Equals(p.NumeroProduto, NumeroProduto) == true
                                        select p.NumeroProduto).First();

                    // Find the Stock object that matches the parameters passed
                    // in to the operation
                    ProdutoEstoque stock = database.ProdutoEstoques.First(pi => pi.NumeroProduto == productID);

                    stock.EstoqueProduto = stock.EstoqueProduto + Quantidade;



                    // Save the change back to the database
                    database.SaveChanges();
                }
            }
            catch
            {
                // If an exception occurs, return false to indicate failure
                return(false);
            }
            // Return true to indicate success
            return(true);
        }
示例#22
0
        public bool IncluirProduto(ProdutoTO ProdutoTO)
        {
            try
            {
                // Connect to the ProductsModel database
                using (ProvedorEstoque database = new ProvedorEstoque())
                {
                    ProdutoEstoque produtoestoque = new ProdutoEstoque();
                    produtoestoque.NumeroProduto    = ProdutoTO.getNumeroProduto();
                    produtoestoque.NomeProduto      = ProdutoTO.getNomeProduto();
                    produtoestoque.DescricaoProduto = ProdutoTO.getDescricaoProduto();
                    produtoestoque.EstoqueProduto   = ProdutoTO.getEstoqueProduto();
                    database.ProdutoEstoques.Add(produtoestoque);
                    // Save the change back to the database
                    database.SaveChanges();
                }
            }
            catch
            {
                // If an exception occurs, return false to indicate failure
                return(false);
            }

            // Return true to indicate success
            return(true);
        }
示例#23
0
        public new async Task Update(List <ProdutoFornecedorEntrada> obj)
        {
            var listaRemoveobj = obj.FindAll(entrada => entrada.Ativo == false);
            var listaAddobj    = obj.FindAll(entrada => entrada.ProdutoEntradaId == 0);

            #region  //atualizar estoque Remove


            await _produtoFornecedorEntradaService.Update(listaRemoveobj);

            foreach (var item in listaRemoveobj.Where(item => item.ProdutoId != null))
            {
                var estoque = await
                              _produtoEstoqueService.GetProdutoEstoque(
                    produtoEstoque =>
                    produtoEstoque.EmpresaId == item.EmpresaId && produtoEstoque.ProdutoId == item.ProdutoId);



                var quantEstoque = estoque.QuantidadeEstoque;
                quantEstoque -= item.QuantidadeEntrada;
                estoque.SetEstoque(quantEstoque);
                await _produtoEstoqueService.Update(estoque);
            }

            #endregion

            #region  //atualizar estoque add

            await _produtoFornecedorEntradaService.Add(listaAddobj);

            foreach (var item in listaAddobj.Where(item => item.ProdutoId != null))
            {
                var estoque = await
                              _produtoEstoqueService.GetProdutoEstoque(
                    produtoEstoque =>
                    produtoEstoque.EmpresaId == item.EmpresaId && produtoEstoque.ProdutoId == item.ProdutoId);


                if (estoque == null)
                {
                    estoque = new ProdutoEstoque(0, item.EmpresaId, item.ProdutoId, item.QuantidadeEntrada, item.ValorUnitario, true);
                    await _produtoEstoqueService.Add(estoque);
                }
                else
                {
                    var quantEstoque = estoque.QuantidadeEstoque;
                    quantEstoque += item.QuantidadeEntrada;
                    estoque.SetEstoque(quantEstoque);
                    estoque.SetValorVenda(item.ValorUnitario);
                    await _produtoEstoqueService.Update(estoque);
                }
            }

            #endregion
        }
 // DELETE api/<controller>/5
 public async void Delete(ProdutoEstoque value)
 {
     try
     {
         await _produtoEstoqueApp.RemovePhysical(value);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
 // PUT api/<controller>/5
 public async void Put(int id, [FromBody] ProdutoEstoque value)
 {
     try
     {
         await _produtoEstoqueApp.Update(value);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
 // POST api/<controller>
 public async void Post([FromBody] ProdutoEstoque value)
 {
     try
     {
         await _produtoEstoqueApp.Add(value);
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
示例#27
0
        public async Task ConsultarMediaVenda()
        {
            string where = "WHERE AD_INTEGRARFWLOG = '1' ";

            List <ProdutoMediaVendaIntegracao> produtoMediaVenda = await IntegracaoSankhya.Instance.PreExecutarQuery <ProdutoMediaVendaIntegracao>(where);

            foreach (var produtoInt in produtoMediaVenda)
            {
                try
                {
                    ValidarDadosIntegracao(produtoInt);

                    Empresa empresa = _uow.EmpresaRepository.ConsultaPorCodigoIntegracao(Convert.ToInt32(produtoInt.CodigoIntegracaoEmpresa));

                    if (empresa == null)
                    {
                        throw new Exception(string.Format("Código da Empresa (CODEMP: {0}) inválido", produtoInt.CodigoIntegracaoEmpresa));
                    }

                    Produto produto = _uow.ProdutoRepository.ConsultarPorCodigoIntegracao(Convert.ToInt32(produtoInt.CodigoIntegracaoProduto));

                    if (produto == null)
                    {
                        throw new Exception(string.Format("Código da Produto (CODPROD: {0}) inválido", produtoInt.CodigoIntegracaoProduto));
                    }

                    ProdutoEstoque produtoEstoque = _uow.ProdutoEstoqueRepository.ObterPorProdutoEmpresa(produto.IdProduto, empresa.IdEmpresa);

                    if (produtoEstoque != null)
                    {
                        if (!String.IsNullOrEmpty(produtoInt.MediaVenda))
                        {
                            produtoEstoque.MediaVenda = double.Parse(produtoInt.MediaVenda, CultureInfo.InvariantCulture);
                        }
                        else
                        {
                            produtoEstoque.MediaVenda = null;
                        }
                    }

                    await _uow.SaveChangesAsync();

                    Dictionary <string, string> chaves = new Dictionary <string, string> {
                        { "CODPROD", produto.CodigoIntegracao.ToString() }, { "CODEMP", empresa.CodigoIntegracao.ToString() }
                    };

                    await IntegracaoSankhya.Instance.AtualizarInformacaoIntegracao("AD_MEDVENDPRO", chaves, "AD_INTEGRARFWLOG", "0");
                }
                catch (Exception ex)
                {
                    _log.Error(string.Format("Erro gerado na integração da Média de Venda do Produto {0} Empresa: {1}.", produtoInt.CodigoIntegracaoProduto, produtoInt.CodigoIntegracaoEmpresa), ex);
                }
            }
        }
示例#28
0
        private static void IncluiPosicaoEstoque(Produto produto)
        {
            var estoque = new ProdutoEstoque
            {
                Lancamento = DateTime.UtcNow,
                Quantidade = produto.EstoqueAtual.Quantidade
            };


            produto.PosicoesEstoque.Clear();
            produto.PosicoesEstoque.Add(estoque);
        }
示例#29
0
        private void btnConfirmarProduto_Click(object sender, EventArgs e)
        {
            /* Encontra o produto no banco de dados */
            Produto produto = produtoDAO.Read(txtCodBarras.Text);

            /* Apos encontrar o produto, traz as informações do estoque desse produto*/
            ProdutoEstoque produtoEstoque = produtoEstoqueDAO.Read(produto.Codigo);

            /* Verifica se existe este produto no estoque */
            if (produtoEstoque.QuantidadeEstoque > 0)
            {
                /* Salva a quantidade, se não tiver nada no textbox assume 1 */
                int quantidade;
                if (!int.TryParse(txtQuantidade.Text, out quantidade))
                {
                    quantidade = 1;
                }

                if (quantidade <= produtoEstoque.QuantidadeEstoque)
                {
                    /* Adiciona o produto no Data Grid View */
                    dgvProdutos.Rows.Add(produto.Codigo, produto.Descricao, quantidade,
                                         (produto.Preco * quantidade).ToString("c"));

                    /* Atualiza p subTotal da Venda */
                    subTotal        += (produto.Preco * quantidade);
                    txtSubTotal.Text = subTotal.ToString("c");

                    /* Desabilita os botões */
                    btnConfirmarProduto.Enabled = false;
                    btnCancelarProduto.Enabled  = false;
                    btnConfirmarVenda.Enabled   = true;

                    txtQuantidade.ReadOnly = true; /* Desabilita a edição */

                    LimparTextBox();               /* Limpa as textBox */
                }
                else
                {
                    MessageBox.Show("Quantidade indisponível, este produto possui " + produtoEstoque.QuantidadeEstoque
                                    + " unidades no estoque.", "AVISO", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            else
            {
                MessageBox.Show("Produto indisponível.", "AVISO",
                                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

            dgvProdutos.ClearSelection();
        }
        public bool AdicionarEstoque(string numeroProduto, int quantidade)
        {
            try {
                using (ProvedorEstoque database = new ProvedorEstoque()) {
                    ProdutoEstoque produtoEstoque = database.ProdutoEstoques.First(
                        p => String.Compare(p.NumeroProduto, numeroProduto) == 0);
                    produtoEstoque.EstoqueProduto = produtoEstoque.EstoqueProduto + quantidade;
                    database.SaveChanges();
                }
            } catch {
                return(false);
            }

            return(true);
        }