Exemplo n.º 1
0
        private void btnCancelar_Click(object sender, EventArgs e)
        {
            #region Deletar Itens do Estoque Reservado
            //Retira os itens da lista de estoque reservado, caso existam
            if (pedidoItens != null && pedidoItens.Count > 0)
            {
                try
                {
                    //Retirar item do estoque reservado
                    try
                    {
                        EstoqueReservadoNegocio estoqueReservadoNegocio = new EstoqueReservadoNegocio();
                        EstoqueReservado        estoqueReservado        = new EstoqueReservado();

                        foreach (var itemPedido in pedidoItens)
                        {
                            estoqueReservado.IDFilial   = filialLogada.IDFilial;
                            estoqueReservado.IDProduto  = itemPedido.IDProduto;
                            estoqueReservado.Quantidade = itemPedido.Quantidade * (-1);

                            string retorno = estoqueReservadoNegocio.Inserir(estoqueReservado);

                            int IDProduto;
                            if (!int.TryParse(retorno, out IDProduto))
                            {
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erro ao remover produtos do estoque reservado. Detalhes: " + ex.Message);
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao excluir item da lista. Detalhes: " + ex.Message);
                }
            }

            #endregion

            gerenciaBotoesParaNovaVenda();

            Close();
        }
Exemplo n.º 2
0
        private void btnFinalizarVenda_Click(object sender, EventArgs e)
        {
            if ((pedidoItens != null && pedidoItens.Count > 0) && txtValorTotal.Text != "0,00")
            {
                if (txtValorFinal.Text == "0,00")
                {
                    if (DialogResult.No == MessageBox.Show("Valor final do produto está com DESCONTO de 100%. Deseja realmente continuar?", "Verificação!", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                    {
                        txtDesconto.Focus();
                        return;
                    }
                }
                if (DialogResult.Yes == MessageBox.Show("Deseja finalizar a venda?", "Verificação!", MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                {
                    //inicia a gravação no banco

                    #region Finalizar Venda Gravação no banco

                    try
                    {
                        PedidoNegocio pedidoNegocio = new PedidoNegocio();

                        pedido.ValorTotal = Convert.ToDecimal(txtValorTotal.Text);

                        pedido.ValorTotalComDesconto = Convert.ToDecimal(txtValorFinal.Text);

                        pedido.PorcentagemDesconto = Convert.ToDecimal(txtDesconto.Text.Replace("%", ""));

                        pedido.IDCaixa = ControleSistema.getCaixaAtual().IDCaixa;

                        pedido.IDPagamento = Convert.ToInt32(cbbFormaPagamento.SelectedValue);

                        string retorno = pedidoNegocio.Inserir(pedido);

                        int IDPedido;
                        if (!int.TryParse(retorno, out IDPedido))
                        {
                            MessageBox.Show("Erro ao inserir pedido. Entre em contato com o suporte técnico.");
                            return;
                        }
                        else
                        {
                            PedidoItemNegocio       pedidoItemNegocio       = new PedidoItemNegocio();
                            EstoqueReservadoNegocio estoqueReservadoNegocio = new EstoqueReservadoNegocio();
                            EstoqueReservado        estoqueReservado        = new EstoqueReservado();
                            EstoqueNegocio          estoqueNegocio          = new EstoqueNegocio();
                            Estoque estoque = new Estoque();


                            foreach (var item in pedidoItens)
                            {
                                item.IDPedido = IDPedido;
                                pedidoItemNegocio.Inserir(item);
                                estoqueReservado.IDFilial   = filialLogada.IDFilial;
                                estoqueReservado.IDProduto  = item.IDProduto;
                                estoqueReservado.Quantidade = item.Quantidade * (-1);

                                estoqueReservadoNegocio.Inserir(estoqueReservado);

                                estoque.IDFilial   = filialLogada.IDFilial;
                                estoque.IDProduto  = item.IDProduto;
                                estoque.Quantidade = item.Quantidade * (-1);

                                estoqueNegocio.Inserir(estoque);
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Erro ao inserir pedido. Detalhes: " + ex.Message);
                    }
                    #endregion

                    gerenciaBotoesParaNovaVenda();
                }
                else
                {
                    return;
                }
            }
            else
            {
                MessageBox.Show("Esta faltando dados na venda. Verifique se todos os campos estão preenchidos.");
            }
        }
Exemplo n.º 3
0
        private void deletarItem()
        {
            if (pedidoItens != null && pedidoItens.Count > 0)
            {
                try
                {
                    PedidoItem itemDeletado = dbgListaProdutos.SelectedRows[0].DataBoundItem as PedidoItem;

                    DialogResult resultado = MessageBox.Show("Deseja remover este item da lista de produtos? " + itemDeletado.ProdutoNome, "Remover Item!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);


                    if (resultado == DialogResult.Yes)
                    {
                        pedido.ValorTotal            -= itemDeletado.ValorTotal;
                        pedido.ValorTotalComDesconto -= itemDeletado.ValorTotalComDesconto;
                        txtValorTotal.Text            = pedido.ValorTotal.ToString();
                        txtValorFinal.Text            = pedido.ValorTotalComDesconto.ToString();

                        pedidoItens.Remove(itemDeletado);

                        dbgListaProdutos.DataSource = null;

                        dbgListaProdutos.DataSource = pedidoItens;

                        dbgListaProdutos.Update();
                        dbgListaProdutos.Refresh();

                        //Retirar item do estoque reservado
                        try
                        {
                            EstoqueReservadoNegocio estoqueReservadoNegocio = new EstoqueReservadoNegocio();
                            EstoqueReservado        estoqueReservado        = new EstoqueReservado();

                            estoqueReservado.IDFilial   = filialLogada.IDFilial;
                            estoqueReservado.IDProduto  = itemDeletado.IDProduto;
                            estoqueReservado.Quantidade = itemDeletado.Quantidade * (-1);

                            string retorno = estoqueReservadoNegocio.Inserir(estoqueReservado);

                            int IDProduto;
                            if (int.TryParse(retorno, out IDProduto))
                            {
                                return;
                            }
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Erro ao remover produto do estoque reservado. Detalhes: " + ex.Message);
                        }
                    }
                    else
                    {
                        return;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao excluir item da lista. Detalhes: " + ex.Message);
                }
            }
            else
            {
                MessageBox.Show("Não existe produto na lista para ser removido.");
            }
        }
Exemplo n.º 4
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (txtCliente.Text != "" && txtproduto.Text != "")
            {
                #region Verifica Se Existe o Produto No Estoque Antes de Inserir na Lista
                try
                {
                    EstoqueDisponivel estoqueDisponivel = new EstoqueDisponivel();
                    EstoqueNegocio    estoqueNegocio    = new EstoqueNegocio();

                    estoqueDisponivel = estoqueNegocio.ConsultarEstoqueDisponivel(produtoSelecionado.IDProduto, filialLogada.IDFilial);

                    if (estoqueDisponivel.QuantidadeDisponivel < Convert.ToInt32(txtQuantidade.Text))
                    {
                        MessageBox.Show
                            ("Não existe a quantidade solicitada em estoque do produto " + estoqueDisponivel.NomeProduto +
                            ". Quantidade disponível: " + estoqueDisponivel.QuantidadeDisponivel +
                            " . Quantidade reservada: " + estoqueDisponivel.QuantidadeReservada);
                        return;
                    }
                    else
                    {
                        EstoqueReservadoNegocio estoqueReservadoNegocio = new EstoqueReservadoNegocio();
                        EstoqueReservado        estoqueReservado        = new EstoqueReservado();

                        estoqueReservado.IDFilial   = filialLogada.IDFilial;
                        estoqueReservado.IDProduto  = produtoSelecionado.IDProduto;
                        estoqueReservado.Quantidade = Convert.ToInt32(txtQuantidade.Text);
                        string retorno = estoqueReservadoNegocio.Inserir(estoqueReservado);

                        int IDProduto;
                        if (!int.TryParse(retorno, out IDProduto))
                        {
                            MessageBox.Show("Erro ao inserir produto no estoque reservado");
                            return;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao consultar estoque disponível. Detalhes: " + ex.Message);
                    return;
                }

                #endregion


                #region Adicionar Produto Na Lista De Venda
                try
                {
                    if (pedido == null)
                    {
                        //Cria o pedido
                        pedido                      = new Pedido();
                        pedido.IDOperacao           = 1;
                        pedido.IDPessoaDestinatario = clienteSelecionado.IDCliente;
                        pedido.IDPessoaEmitente     = filialLogada.IDFilial;
                        pedido.IDSituacao           = 1;
                    }

                    //adiciono item no pedido
                    if (pedidoItens == null)
                    {
                        pedidoItens = new PedidoItemColecao();
                    }


                    if (pedidoItens.Exists(p => p.IDProduto == produtoSelecionado.IDProduto))
                    {
                        try
                        {
                            var pedidoItemExistente = pedidoItens.Single(p => p.IDProduto == produtoSelecionado.IDProduto);
                            pedidoItemExistente.Quantidade += Convert.ToInt32(txtQuantidade.Text);
                            pedidoItemExistente.ValorTotal += (produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text));
                            decimal valorDescontoItemExistente = ((produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text)) * Convert.ToDecimal(txtDescontoItem.Text.Replace("%", ""))) / 100;
                            pedidoItemExistente.ValorDesconto += decimal.Round(valorDescontoItemExistente, 2);                                                      //45
                            decimal valorTotalItemComDesconto = (produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text)) - valorDescontoItemExistente; //22,5
                            pedidoItemExistente.ValorTotalComDesconto += decimal.Round(valorTotalItemComDesconto, 2);
                            pedidoItemExistente.PercentualDesconto     = decimal.Round((pedidoItemExistente.ValorDesconto * 100) / pedidoItemExistente.ValorTotal, 2);
                            pedidoItem = pedidoItemExistente;

                            //Adiciona valor total e total com desconto ao pedido
                            decimal valorTotalDoItemNovo = produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text);
                            pedido.ValorTotal += valorTotalDoItemNovo;
                            txtValorTotal.Text = pedido.ValorTotal.ToString();
                            decimal valorTotalDoitemNovoComDesconto = valorTotalDoItemNovo - valorDescontoItemExistente;
                            pedido.ValorTotalComDesconto += valorTotalDoitemNovoComDesconto;
                            txtValorFinal.Text            = pedido.ValorTotalComDesconto.ToString();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Erro ao inserir produto. Detalhes: " + ex.Message);
                        }
                    }
                    else
                    {
                        pedidoItem             = new PedidoItem();
                        pedidoItem.IDProduto   = produtoSelecionado.IDProduto;
                        pedidoItem.ProdutoNome = produtoSelecionado.Nome;
                        pedidoItem.Quantidade  = Convert.ToInt32(txtQuantidade.Text);
                        pedidoItem.ValorTotal  = produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text);
                        decimal valorDescontoItem = ((produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text)) * Convert.ToDecimal(txtDescontoItem.Text.Replace("%", ""))) / 100;
                        pedidoItem.ValorDesconto         = decimal.Round(valorDescontoItem, 2);
                        pedidoItem.ValorUnitario         = produtoSelecionado.PrecoVenda;
                        pedidoItem.ValorTotalComDesconto = decimal.Round((produtoSelecionado.PrecoVenda * Convert.ToInt32(txtQuantidade.Text)) - valorDescontoItem, 2);
                        pedidoItem.PercentualDesconto    = decimal.Round((pedidoItem.ValorDesconto * 100) / pedidoItem.ValorTotal, 2);

                        //Adiciona valor total e total com desconto ao pedido
                        pedido.ValorTotal            += pedidoItem.ValorTotal;
                        txtValorTotal.Text            = pedido.ValorTotal.ToString();
                        pedido.ValorTotalComDesconto += pedidoItem.ValorTotalComDesconto;
                        txtValorFinal.Text            = pedido.ValorTotalComDesconto.ToString();

                        pedidoItens.Add(pedidoItem);
                    }



                    dbgListaProdutos.DataSource         = null;
                    dbgListaProdutos.DataSource         = pedidoItens;
                    dbgListaProdutos.Columns[0].Visible = false;
                    dbgListaProdutos.Columns[1].Visible = false;
                    dbgListaProdutos.Update();
                    dbgListaProdutos.Refresh();
                    txtproduto.Clear();
                    txtDescontoItem.Text = "0";
                    //txtQuantidade.Text = "1";
                    btnProcurarProduto.Focus();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao inserir produto no pedido. Detalhes: " + ex.Message);
                }
            }
            #endregion

            else
            {
                MessageBox.Show("É necesssário adicionar um cliente e selecionar um produto para inserir na venda.");
            }
        }