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);
            }
        }
예제 #2
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();
        }
예제 #3
0
        private void btnConfirmarVenda_Click(object sender, EventArgs e)
        {
            /* Verifica se o usúario tem certeza que deseja concluir a venda */
            var result = MessageBox.Show(this, "Você tem certeza que deseja concluir está venda?",
                                         "Deseja concluir está venda?", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);

            if (result == DialogResult.Yes)
            {
                List <ItemVenda> itens = new List <ItemVenda>();

                /* Realiza as operações com a venda */
                Venda venda = new Venda();

                /* Coloca o codigo em venda, sendo o último inserido no banco mais um */
                venda.Codigo = vendaDAO.NextCodVenda();

                /* Coloca a hora da venda */
                venda.DataHora = DateTime.Now;

                /* Coloca o valor total da venda */
                venda.ValotTotal = subTotal;

                /* Grava a venda no Banco de Dados */
                vendaDAO.Create(venda);

                /* Depois, realiza as operações com os itens */

                /* Percorre todos os produtos que estão no Data Grid View */
                for (int i = 0; i < dgvProdutos.Rows.Count; i++)
                {
                    ProdutoEstoqueDAO produtoEstoqueDAO = new ProdutoEstoqueDAO();
                    ItemVenda         itemVenda         = new ItemVenda();

                    /* Busca o produto pelo código presente no DGV e o coloca em item*/
                    itemVenda.Produto = produtoDAO.Read(int.Parse(dgvProdutos.Rows[i].Cells[0].Value.ToString()));

                    /* Informa a venda para o item */
                    itemVenda.Venda = venda;

                    /* Coloca a quantidade em item */
                    itemVenda.Quantidade = int.Parse(dgvProdutos.Rows[i].Cells[2].Value.ToString());

                    /* Pega o preco do produto e coloca o preco no item da venda
                     * (Caso o valor do produto mude, temos esse registro do valor que o produto foi vendido)*/
                    itemVenda.PrecoUnitario = itemVenda.Produto.Preco;

                    /* Grava o ItemVenda no Banco de Dados */
                    itemVendaDAO.Create(itemVenda);

                    /* Adiciona os itens em uma lista para gerar a nota Fiscal */
                    itens.Add(itemVenda);

                    /* Recupera a informação do Produto Estoque */
                    ProdutoEstoque produtoEstoque = produtoEstoqueDAO.Read(itemVenda.Produto.Codigo);

                    /* Atualiza o estoque subtraindo os produtos vendidos */
                    produtoEstoque.QuantidadeEstoque -= itemVenda.Quantidade;

                    /* Armazena o BD o novo estoque */
                    produtoEstoqueDAO.Update(produtoEstoque);
                }

                /* Verifica se o usúario quer gerar a nota fiscal */
                var result2 = MessageBox.Show(this, "Você deseja gerar e salvar a nota fiscal?",
                                              "Deseja gerar a nota fiscal?", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation);

                if (result2 == DialogResult.Yes)
                {
                    /* Responsável por gerar o relatório dos produtos do estoque */

                    /* Caixa de diálogo para salvar o arquivo */
                    SaveFileDialog saveFileDialog = new SaveFileDialog();
                    saveFileDialog.AddExtension = true;
                    saveFileDialog.DefaultExt   = ".pdf";
                    saveFileDialog.ShowDialog();

                    if (!saveFileDialog.FileName.ToString().Equals(""))
                    {
                        Relatorios.GerarNotaFiscal(saveFileDialog.FileName.ToString(), itens);

                        MessageBox.Show("Nota fiscal foi gerada", "Nota Fiscal Gerada",
                                        MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }

                /* Desabilita o botão */
                btnConfirmarVenda.Enabled  = false;
                btnExcluirProduto.Enabled  = false;
                btnCancelarProduto.Enabled = false;

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

                LimparTextBox();               /* Limpa as textBox */

                dgvProdutos.Rows.Clear();      /* Limpa o DGV */

                subTotal = 0.0m;

                txtSubTotal.Text = subTotal.ToString("c");

                /* Mensagem indicando que a compra foi realizada com sucesso */
                MessageBox.Show("Venda foi realizada com sucesso.", "Venda realizada",
                                MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }