// Continuar daqui.
 public static bool Excluir(Pedido_Produto pedido_produto)
 {
     try
     {
         using (OracleCommand c = ConexaoOracle.ObterConexao().CreateCommand())
         {
             c.CommandType = System.Data.CommandType.Text;
             c.CommandText = "DELETE FROM pedido_produto WHERE pedido_produtoid=:pedido_produtoid";
             c.Parameters.Add("pedido_produtoid", OracleType.Int32).Value = BuscarCodigo(pedido_produto);
             if (c.ExecuteNonQuery() > 0)
             {
                 return true;
             }
         }
         return false;
     }
     catch (OracleException ex)
     {
         if (ex.Message.Contains("child record found"))
         {
             MessageBox.Show("Impossível excluir.");
         }
         return false;
     }
 }
        public static List<Pedido_Produto> BuscarTodos(int codigo)
        {
            Pedido_Produto pedido_produto = null;
            List<Pedido_Produto> list_pp = new List<Pedido_Produto>();
            try
            {
                using (OracleCommand c = ConexaoOracle.ObterConexao().CreateCommand())
                {
                    c.CommandType = System.Data.CommandType.Text;
                    c.CommandText = "SELECT produtoid, pedidoid, valor, quantidade, adicionalid FROM pedido_produto WHERE pedidoid = :codigo";
                    c.Parameters.Add("codigo", OracleType.Int32).Value = codigo;

                    using (OracleDataReader leitor = c.ExecuteReader())
                    {
                        while (leitor.Read())
                        {
                            int bd_produtoid = leitor.GetInt32(0);
                            int bd_pedidoid = leitor.GetInt32(1);
                            float bd_valor = leitor.GetFloat(2);
                            int bd_quantidade = leitor.GetInt32(3);
                            int bd_adicionalid = leitor.GetInt32(4);

                            pedido_produto = new Pedido_Produto(bd_produtoid, bd_valor, bd_quantidade, bd_pedidoid, bd_adicionalid);
                            list_pp.Add(pedido_produto);
                        }
                    }
                }
                return list_pp;
            }
            catch (NullReferenceException e)
            {
                throw e;
            }
        }
        public static int BuscarCodigo(Pedido_Produto pedido_produto)
        {
            try
            {
                int pedido_produtoid = 0;
                using (OracleCommand c = ConexaoOracle.ObterConexao().CreateCommand())
                {
                    c.CommandType = System.Data.CommandType.Text;
                    c.CommandText = "SELECT pedido_produtoid FROM pedido_produto WHERE produtoid = :codigo and pedidoid = :pedidoid and quantidade = :quantidade and adicionalid = :adicionalid";
                    c.Parameters.Add("codigo", OracleType.Int32).Value = pedido_produto.getProdutoId();
                    c.Parameters.Add("pedidoid", OracleType.Int32).Value = pedido_produto.getPedidoId();
                    //c.Parameters.Add("valor", OracleType.Float).Value = pedido_produto.getValor();
                    c.Parameters.Add("quantidade", OracleType.Int32).Value = pedido_produto.getQuantidade();
                    c.Parameters.Add("adicionalid", OracleType.Int32).Value = pedido_produto.getAdicional_comidaId();

                    using (OracleDataReader leitor = c.ExecuteReader())
                    {
                        while (leitor.Read())
                        {
                            pedido_produtoid = leitor.GetInt32(0);
                        }
                    }
                }
                return pedido_produtoid;
            }
            catch (NullReferenceException e)
            {
                throw e;
            }
        }
 public static bool Inserir(Pedido_Produto pedido_produto)
 {
     try
     {
         using (OracleCommand c = ConexaoOracle.ObterConexao().CreateCommand())
         {
             c.CommandType = System.Data.CommandType.Text;
             c.CommandText = "INSERT into PEDIDO_PRODUTO VALUES(PEDIDO_PRODUTO_SEQ.NEXTVAL, :produtoid, :pedidoid, :valor, :quantidade, :adicionalid)";
             c.Parameters.Add("produtoid", OracleType.Int32).Value = pedido_produto.getProdutoId();
             c.Parameters.Add("pedidoid", OracleType.Int32).Value = pedido_produto.getPedidoId();
             c.Parameters.Add("valor", OracleType.Float).Value = pedido_produto.getValor();
             c.Parameters.Add("quantidade", OracleType.Int32).Value = pedido_produto.getQuantidade();
             c.Parameters.Add("adicionalid", OracleType.Int32).Value = pedido_produto.getAdicional_comidaId();
             c.ExecuteNonQuery();
             return true;
         }
     }
     catch (OracleException e)
     {
         throw e;
     }
 }
 public static bool Gravar(Pedido_Produto pedido_produto)
 {
     return Inserir(pedido_produto);
 }
Beispiel #6
0
        private void bEfetivar_Click(object sender, EventArgs e)
        {
            try
            {
                int checkCancelado;

                if (botao == 1) //Cadastrar
                {
                    if (tbCodigoCliente.Text.Equals("") || cbStatus.Text.Equals("") || cbFormaPagamento.Text.Equals("") || tbValorTotal.Text.Equals("") || dgvPedidos.Rows.Count < 2)
                    {
                        MessageBox.Show("Preencha todos os campos obrigatórios: *");
                    }
                    else
                    {
                        if (cbCancelado.Checked)
                        {
                            checkCancelado = 1;
                        }
                        else
                        {
                            checkCancelado = 0;
                        }

                        if (tbObservacao.Text == "")
                        {
                            tbObservacao.Text = " ";
                        }
                        Pedidos pedido = new Pedidos(int.Parse(tbCodigoCliente.Text), FuncionarioDAO.BuscaCodigo(tbFuncionario.Text), TelaPedidos.getEntrega(), float.Parse(tbValorTotal.Text), float.Parse(tbValorPago.Text), cbFormaPagamento.Text, DateTime.Parse(mtbData.Text), float.Parse(tbDesconto.Text), cbStatus.Text, checkCancelado, tbObservacao.Text);
                        if (PedidosRN.Salvar(pedido))
                        {
                            for (int i = 0; i < dgvPedidos.Rows.Count - 1; i++)
                            {
                                int produtoid = int.Parse(dgvPedidos.Rows[i].Cells[0].Value.ToString());
                                float valor = float.Parse(dgvPedidos.Rows[i].Cells[3].Value.ToString());
                                int qtd = int.Parse(dgvPedidos.Rows[i].Cells[4].Value.ToString());
                                int pedidoid = PedidoDAO.CurrvalPedido();
                                int adicionalid = int.Parse(dgvPedidos.Rows[i].Cells[1].Value.ToString());
                                Pedido_Produto pedido_produto = new Pedido_Produto(produtoid, valor, qtd, pedidoid, adicionalid);
                                PedidoProdutoDAO.Gravar(pedido_produto);
                            }
                            bCancelar_Click(sender, e);
                            MessageBox.Show("Pedido foi cadastrado com sucesso!");
                        }
                    }
                }

                if (botao == 2) //Alterar
                {
                    if ((!tbCodigo.Enabled && tbCodigo.Text != ""))
                    {
                        if (cbStatus.Text.Equals("") || cbFormaPagamento.Text.Equals("") || tbValorPago.Text.Equals("") || tbValorTotal.Text.Equals("") || dgvPedidos.Rows.Count < 2)
                        {
                            MessageBox.Show("Preencha todos os campos obrigatórios: *");
                        }
                        else
                        {
                            if (cbCancelado.Checked)
                            {
                                checkCancelado = 1;
                            }
                            else
                            {
                                checkCancelado = 0;
                            }

                            if (tbObservacao.Text == "")
                            {
                                tbObservacao.Text = " ";
                            }
                            Pedidos pedido = new Pedidos(int.Parse(tbCodigo.Text), int.Parse(tbCodigoCliente.Text), FuncionarioDAO.BuscaCodigo(tbFuncionario.Text), TelaPedidos.getEntrega(), float.Parse(tbValorTotal.Text), float.Parse(tbValorPago.Text), cbFormaPagamento.Text, DateTime.Parse(mtbData.Text), float.Parse(tbDesconto.Text), cbStatus.Text, checkCancelado, tbObservacao.Text);

                            if (PedidosRN.Alterar(pedido))
                            {
                                List<Pedido_Produto> list_pp = new List<Pedido_Produto>();
                                for (int i = 0; i < dgvPedidos.Rows.Count - 1; i++)
                                {
                                    int produtoid = int.Parse(dgvPedidos.Rows[i].Cells[0].Value.ToString());
                                    float valor = (float)dgvPedidos.Rows[i].Cells[3].Value;
                                    int qtd = int.Parse(dgvPedidos.Rows[i].Cells[4].Value.ToString());
                                    int pedidoid = int.Parse(tbCodigo.Text);
                                    int adicionalid = int.Parse(dgvPedidos.Rows[i].Cells[1].Value.ToString());
                                    Pedido_Produto pedido_produto = new Pedido_Produto(produtoid, valor, qtd, pedidoid, adicionalid);
                                    list_pp.Add(pedido_produto);
                                }
                                List<Pedido_Produto> nova = PedidoProdutoDAO.BuscarTodos(pedido.getPedidoId());
                                if(nova.Count != 0)
                                {
                                    List<Pedido_Produto> banco = new List<Pedido_Produto>();
                                    List<Pedido_Produto> alterado = new List<Pedido_Produto>();
                                    bool verifica = false;
                                    for (int i = 0; i < nova.Count; i++ )
                                    {
                                        for (int j = 0; j < list_pp.Count; j++)
                                        {
                                            if (nova[i].getProdutoId() == list_pp[j].getProdutoId() && nova[i].getPedidoId() == list_pp[j].getPedidoId() && nova[i].getValor() == list_pp[j].getValor() && nova[i].getQuantidade() == list_pp[j].getQuantidade() && nova[i].getAdicional_comidaId() == list_pp[j].getAdicional_comidaId())
                                            {
                                                verifica = true;
                                            }
                                        }
                                        if(!verifica)
                                            banco.Add(nova[i]);
                                        verifica = false;
                                    }
                                    for (int i = 0; i < list_pp.Count; i++)
                                    {
                                        for (int j = 0; j < nova.Count; j++)
                                        {
                                            if (list_pp[i].getProdutoId() == nova[j].getProdutoId() && list_pp[i].getPedidoId() == nova[j].getPedidoId() && list_pp[i].getValor() == nova[j].getValor() && list_pp[i].getQuantidade() == nova[j].getQuantidade() && list_pp[i].getAdicional_comidaId() == nova[j].getAdicional_comidaId())
                                            {
                                                verifica = true;
                                            }
                                        }
                                        if (!verifica)
                                            alterado.Add(list_pp[i]);
                                        verifica = false;
                                    }
                                    if (banco.Count > 0)
                                    {
                                        for(int i = 0; i < banco.Count; i++)
                                        {
                                            PedidoProdutoDAO.Excluir(banco[i]);
                                        }
                                    }
                                    if(alterado.Count > 0)
                                    {
                                        for (int i = 0; i < alterado.Count; i++)
                                        {
                                            PedidoProdutoDAO.Inserir(alterado[i]);
                                        }
                                    }
                                }
                                else
                                {
                                    for (int i = 0; i < list_pp.Count; i++)
                                    {
                                        PedidoProdutoDAO.Inserir(list_pp[i]);
                                    }
                                }

                                bCancelar_Click(sender, e);
                                MessageBox.Show("O pedido " + pedido.getPedidoId() + " foi alterado com sucesso!");
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //ingredientesNovo = new List<ListaIngredientes>();
                if (ex.Message.Contains("unique constraint"))
                {
                    MessageBox.Show("Um valor único não foi informado.");
                }
                else
                {
                    MessageBox.Show("Ocorreu um erro: " + ex.Message);
                }
            }
        }