Exemplo n.º 1
0
        private void BtnFinalizarPedido_Click(object sender, EventArgs e)
        {
            try
            {
                ItemPedidoNegocio itemPedidoNegocio = new ItemPedidoNegocio();

                if (novoPedido)
                {
                    //PEDIDO NOVO E CADASTRO DE ITEMPRDIDO
                    PedidoNegocio pedidoNegocio = new PedidoNegocio();
                    Pedido        pedido        = new Pedido(Convert.ToInt32(TxtCodigoPedido.Text), Convert.ToInt32(LblCodigoEmpresa.Text), LblEmpresaDentista.Text, null);

                    for (int t = 0; t < DgvItensProduto.Rows.Count; t++)
                    {
                        if (DgvItensProduto.Rows[t].Cells[7].Value.ToString() == "")
                        {
                            ItemPedido itemPedido = new ItemPedido(null, Convert.ToInt32(DgvItensProduto.Rows[t].Cells[1].Value), Convert.ToInt32(TxtCodigoPedido.Text), Convert.ToDouble(DgvItensProduto.Rows[t].Cells[4].Value), Convert.ToInt32(DgvItensProduto.Rows[t].Cells[5].Value), DgvItensProduto.Rows[t].Cells[3].Value.ToString());
                            itemPedidoNegocio.Inserir(itemPedido);
                        }
                        else
                        {
                            ItemPedido itemPedido = new ItemPedido(null, Convert.ToInt32(DgvItensProduto.Rows[t].Cells[1].Value), Convert.ToInt32(TxtCodigoPedido.Text), Convert.ToDouble(DgvItensProduto.Rows[t].Cells[4].Value), Convert.ToInt32(DgvItensProduto.Rows[t].Cells[5].Value), DgvItensProduto.Rows[t].Cells[3].Value.ToString(), Convert.ToDateTime(DgvItensProduto.Rows[t].Cells[7].Value.ToString()));
                            itemPedidoNegocio.Inserir(itemPedido);
                        }
                    }

                    pedidoNegocio.Inserir(pedido);
                }
                else
                {
                    //ALTERAÇÃO DE ITEMPEDIDO E ALTERACAO DE CODIGO DO PEDIDO
                    //VERIFICAR SE O CÓDIGO DE PEDIDO É O MESMO QUE O ANTERIOR E MODIFICAR COM O ITEMPEDIDO
                    if (Convert.ToInt32(TxtCodigoPedido.Text) != pedido.Codigo)
                    {
                        PedidoNegocio pedidoNegocio = new PedidoNegocio();

                        pedidoNegocio.AlterarCodigo(pedido, Convert.ToInt32(TxtCodigoPedido.Text));
                        itemPedidoNegocio.AlterarCodigoPedido(Convert.ToInt32(TxtCodigoPedido.Text), pedido.Codigo);
                        pedido.Codigo = Convert.ToInt32(TxtCodigoPedido.Text);
                    }

                    //VERIFICAR CADA LINHA DO DATAGRID PARA VER QUAL O PRODUTO NOVO CADASTRADO E FAZER UM INSERT (ITEM PEDIDO = ""),
                    //SE ESTIVER VAZIO, FAZER UM INSERT;
                    for (int t = 0; t < DgvItensProduto.Rows.Count; t++)
                    {
                        if (DgvItensProduto.Rows[t].Cells[0].Value.ToString() == "")
                        {
                            if (DgvItensProduto.Rows[t].Cells[7].Value.ToString() == "")
                            {
                                ItemPedido itemPedido = new ItemPedido(null, Convert.ToInt32(DgvItensProduto.Rows[t].Cells[1].Value), pedido.Codigo, Convert.ToDouble(DgvItensProduto.Rows[t].Cells[4].Value), Convert.ToInt32(DgvItensProduto.Rows[t].Cells[5].Value), DgvItensProduto.Rows[t].Cells[3].Value.ToString(), null);
                                itemPedidoNegocio.Inserir(itemPedido);
                            }
                            else
                            {
                                ItemPedido itemPedido = new ItemPedido(null, Convert.ToInt32(DgvItensProduto.Rows[t].Cells[1].Value), pedido.Codigo, Convert.ToDouble(DgvItensProduto.Rows[t].Cells[4].Value), Convert.ToInt32(DgvItensProduto.Rows[t].Cells[5].Value), DgvItensProduto.Rows[t].Cells[3].Value.ToString(), Convert.ToDateTime(DgvItensProduto.Rows[t].Cells[7].Value));
                                itemPedidoNegocio.Inserir(itemPedido);
                            }
                        }
                        else
                        {
                            if (DgvItensProduto.Rows[t].Cells[7].Value.ToString() == "")
                            {
                                //SE TIVER COM CÓDIGO ITEMPEDIDO, FAZER UM UPDATE;
                                ItemPedido itemPedido = new ItemPedido(Convert.ToInt32(DgvItensProduto.Rows[t].Cells[0].Value), Convert.ToInt32(DgvItensProduto.Rows[t].Cells[1].Value), pedido.Codigo, Convert.ToDouble(DgvItensProduto.Rows[t].Cells[4].Value), Convert.ToInt32(DgvItensProduto.Rows[t].Cells[5].Value), DgvItensProduto.Rows[t].Cells[3].Value.ToString(), null);
                                itemPedidoNegocio.Alterar(itemPedido);
                            }
                            else
                            {
                                //SE TIVER COM CÓDIGO ITEMPEDIDO, FAZER UM UPDATE;
                                ItemPedido itemPedido = new ItemPedido(Convert.ToInt32(DgvItensProduto.Rows[t].Cells[0].Value), Convert.ToInt32(DgvItensProduto.Rows[t].Cells[1].Value), pedido.Codigo, Convert.ToDouble(DgvItensProduto.Rows[t].Cells[4].Value), Convert.ToInt32(DgvItensProduto.Rows[t].Cells[5].Value), DgvItensProduto.Rows[t].Cells[3].Value.ToString(), Convert.ToDateTime(DgvItensProduto.Rows[t].Cells[7].Value));
                                itemPedidoNegocio.Alterar(itemPedido);
                            }
                        }
                    }
                    //VERIFICAR COM UM FOR SE TEM UM PEDIDO QUE FOI DELETADO DO DATAGRID (SOMENTE COM ITEMPEDIDO != "").
                    int  qtde       = 0;
                    bool encontrado = false;
                    for (int t = 0; t < DgvItensProduto.Rows.Count; t++)
                    {
                        if (DgvItensProduto.Rows[t].Cells[0].Value.ToString() != "")
                        {
                            qtde++;
                        }
                    }

                    if (qtde != itemPedidos.Count)
                    {
                        for (int m = 0; m < itemPedidos.Count; m++)
                        {
                            for (int d = 0; d < DgvItensProduto.Rows.Count; d++)
                            {
                                if (DgvItensProduto.Rows[d].Cells[0].Value.ToString() != "")
                                {
                                    if (itemPedidos[m].Codigo == Convert.ToInt32(DgvItensProduto.Rows[d].Cells[0].Value))
                                    {
                                        encontrado = true;
                                        break;
                                    }
                                }
                            }

                            if (encontrado == false)
                            {
                                itemPedidoNegocio.Excluir(Convert.ToInt32(itemPedidos[m].Codigo));
                            }
                            encontrado = false;
                        }
                    }
                }

                this.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Não foi possível fazer a o cadastro do Pedido!" + ex.Message, "Exclusão", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
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.");
            }
        }