예제 #1
0
 public DataAccess.Pedido GetPedidoConProductoPorId(int id)
 {
     DataAccess.Pedido pedido = new DataAccess.Pedido();
     using (var context = new PizzaEntities())
     {
         try
         {
             pedido = context.Pedido.Where(b => b.idPedido == id).FirstOrDefault();
             if (pedido == null)
             {
                 throw new InstanceNotFoundException();
             }
             pedido.PedidoProducto = pedido.PedidoProducto;
             pedido.Estatus1       = pedido.Estatus1;
             foreach (var pedidoProducto in pedido.PedidoProducto)
             {
                 pedidoProducto.ProductoVenta = pedidoProducto.ProductoVenta;
             }
         }
         catch (EntityException)
         {
             throw new EntityException("Error al conectar a la bd");
         }catch (InstanceNotFoundException)
         {
             throw new InstanceNotFoundException("No se encontro el pedido");
         }
     }
     return(pedido);
 }
예제 #2
0
 private void btEnPreparacion_Click(object sender, RoutedEventArgs e)
 {
     if (pedidoActual == null)
     {
         MessageBox.Show("No se ha seleccionado un pedido!!!");
     }
     else if (pedidoActual.Estatus1.NombreEstatus == "En Preparación")
     {
         MessageBox.Show("No se puede seleccionar este pedido para ponerlo en preparacion por que ya se encuentra en preparacion");
     }
     else
     {
         try
         {
             PedidoController.PonerEnPreparacion(pedidoActual.idPedido);
             MessageBox.Show("Se ha puesto el pedido en preparacion");
         }
         catch (ArgumentException)
         {
             MessageBox.Show("No existen suficientes existencias en el inventario");
         }
         ucPedidos.UpdateGrid();
         pedidoActual             = null;
         dgProductos.ItemsSource  = null;
         lbidPedidoActual.Content = "Ninguno";
     }
 }
예제 #3
0
        public void GetPedidoPorIdTest()
        {
            PedidoDAO pedidoDAO = new PedidoDAO();

            DataAccess.Pedido tempPedido = pedidoDAO.GetPedidoConProductoPorId(283);
            Assert.AreEqual(tempPedido.idPedido, 283);
        }
        public ResultadoOperacionEnum.ResultadoOperacion crearPedidoMesero(DataAccess.Pedido pedido, List <DataAccess.PedidoProducto> productos)
        {
            ResultadoOperacionEnum.ResultadoOperacion resultado = new ResultadoOperacionEnum.ResultadoOperacion();
            PedidoDAO pedidoDAO = new PedidoDAO();

            resultado = pedidoDAO.CrearPedidoMesero(pedido, productos);

            return(resultado);
        }
예제 #5
0
        public void FallaCrearPedidoDomicilioTest1()
        {
            List <PedidoProducto> pedidoProductos = new List <PedidoProducto>();

            DataAccess.Cliente cliente = new DataAccess.Cliente();
            DataAccess.Pedido  pedido  = new DataAccess.Pedido();
            pedido.Cliente1    = cliente;
            pedido.Estatus     = 2;
            pedido.FechaPedido = DateTime.Now;

            PedidoDAO pedidoDAO = new PedidoDAO();

            Assert.AreEqual(pedidoDAO.CrearPedidoDomicilio(pedido, pedidoProductos), ResultadoOperacionEnum.ResultadoOperacion.FalloSQL);
        }
예제 #6
0
 private void btTerminado_Click(object sender, RoutedEventArgs e)
 {
     if (pedidoActual == null)
     {
         MessageBox.Show("No se ha seleccionado un pedido!!!");
     }
     else if (pedidoActual.Estatus1.NombreEstatus == "En Espera")
     {
         MessageBox.Show("Primero se debe preparar el pedido");
     }
     else
     {
         PedidoController.CambiarEstadoPedido(pedidoActual.idPedido, "Preparado");
         MessageBox.Show("Se ha terminado el pedido");
         ucPedidos.UpdateGrid();
         pedidoActual             = null;
         dgProductos.ItemsSource  = null;
         lbidPedidoActual.Content = "Ninguno";
     }
 }
        private void btn_NuevoPedido_Click(object sender, RoutedEventArgs e)
        {
            if (ValidarCampos())
            {
                DataAccess.Pedido pedido = new DataAccess.Pedido();
                pedido.FechaPedido = DateTime.UtcNow;
                pedido.Estatus     = 2;
                BusinessLogic.Cliente cliente1 = clientes[cbb_NombreCliente.SelectedIndex];
                //string cliente = cbb_NombreCliente.SelectedIndex;
                pedido.Cliente = cliente1.idPersona;

                foreach (BusinessLogic.ProductoVenta producto in productoVentas)
                {
                    if (dgProductosDePedido.Items != null)
                    {
                        foreach (BusinessLogic.ProductoVenta pedido1 in dgProductosDePedido.Items)
                        {
                            DataAccess.PedidoProducto pedidoProducto = new PedidoProducto();
                            pedidoProducto.idProductoVenta = pedido1.idProducto;
                            pedidoProducto.Precio          = pedido1.PrecioPúblico;
                            listaproductos.Add(pedidoProducto);
                        }
                    }
                }



                PedidoController pedidoController = new PedidoController();
                if (pedidoController.crearPedidoDomicilio(pedido, listaproductos) == ResultadoOperacionEnum.ResultadoOperacion.Exito)
                {
                    MessageBox.Show("El Pedido se registró correctamente");
                    listaproductos.Clear();
                    ActualizarDataGrid();
                    lbNuevoPrecio.Text = "";
                }
                else
                {
                    MessageBox.Show("No se puede registar el Pedido");
                }
            }
        }
예제 #8
0
 void ObtenerPedido()
 {
     try
     {
         PedidoAEditar = controller.ObtenerPedidoParaEditar(PedidoID);
     }
     catch (EntityException)
     {
         MessageBox.Show("No se pudo obtener el pedido para la edicion \nReintentar mas tarde");
         this.Close();
     }
     catch (InstanceNotFoundException)
     {
         MessageBox.Show("No se encontro el pedido, verificar la existencia");
         this.Close();
     }
     catch (FormatException)
     {
         MessageBox.Show("El pedido no esta en espera y ya no es posible modificarlo");
         this.Close();
     }
 }
예제 #9
0
        private void btn_NuevoPedido_Click(object sender, RoutedEventArgs e)
        {
            if (valdiarCampos())
            {
                DataAccess.Pedido pedido = new DataAccess.Pedido();
                pedido.FechaPedido = DateTime.UtcNow;
                pedido.Estatus     = 2;
                pedido.NumeroMesa  = (int)cbb_mesas.SelectedItem;

                foreach (BusinessLogic.ProductoVenta producto in productoVentas)
                {
                    if (dgProductosDePedido.Items != null)
                    {
                        foreach (BusinessLogic.ProductoVenta pedido1 in dgProductosDePedido.Items)
                        {
                            DataAccess.PedidoProducto pedidoProducto = new PedidoProducto();
                            pedidoProducto.idProductoVenta = pedido1.idProducto;
                            pedidoProducto.Precio          = pedido1.PrecioPúblico;
                            listaproductos.Add(pedidoProducto);
                        }
                    }
                }

                PedidoController pedidoController = new PedidoController();
                if (pedidoController.crearPedidoMesero(pedido, listaproductos) == ResultadoOperacionEnum.ResultadoOperacion.Exito)
                {
                    MessageBox.Show("El Pedido se registró correctamente");
                    listaproductos.Clear();
                    ActualizarDataGrid();
                    lbNuevoPrecio.Text = "";
                }
                else
                {
                    MessageBox.Show("No se puede registar el Pedido");
                }
            }
        }
예제 #10
0
        private void PedidosUC_PedidoUserControlClicked(object sender, EventArgs e)
        {
            pedidoActual             = ((DataAccess.Pedido)sender);
            lbidPedidoActual.Content = pedidoActual.idPedido;
            List <CustomPedidoProducto> custom = new List <CustomPedidoProducto>();

            foreach (var item in PedidoController.ObtenerPedidoProducto(pedidoActual.idPedido))
            {
                CustomPedidoProducto tempPedidoProducto = new CustomPedidoProducto
                {
                    idPedido        = item.idPedido,
                    Cantidad        = item.Cantidad,
                    Precio          = item.Precio,
                    idProductoVenta = item.idProductoVenta
                };
                ProductoController  productoController = new ProductoController();
                DataAccess.Producto producto           = productoController.ObtenerProductoPorId(tempPedidoProducto.idProductoVenta);
                tempPedidoProducto.NombreProducto = producto.Nombre;
                tempPedidoProducto.CodigoProducto = producto.Codigo;
                custom.Add(tempPedidoProducto);
            }
            dgProductos.ItemsSource = custom;
            Console.WriteLine("hofbdjs");
        }
예제 #11
0
        public ResultadoOperacion CrearPedidoMesero(DataAccess.Pedido pedido, List <PedidoProducto> productos)
        {
            ResultadoOperacion resultado = ResultadoOperacion.FallaDesconocida;

            Random random = new Random();

            pedido.idPedido = random.Next(1000);


            DbConnection dbConnection = new DbConnection();

            using (SqlConnection connection = dbConnection.GetConnection())
            {
                connection.Open();
                SqlCommand     command = connection.CreateCommand();
                SqlTransaction transaction;
                transaction         = connection.BeginTransaction("InsertarPedido");
                command.Connection  = connection;
                command.Transaction = transaction;

                try
                {
                    command.CommandText =
                        "INSERT INTO dbo.Pedido (idPedido, FechaPedido, Estatus, NumeroMesa) SELECT @idPedido, @FechaPedido, @Estatus, @NumeroMesa";

                    command.Parameters.Add(new SqlParameter("@idPedido", pedido.idPedido));
                    command.Parameters.Add(new SqlParameter("@FechaPedido", pedido.FechaPedido));
                    command.Parameters.Add(new SqlParameter("@Estatus", pedido.Estatus));
                    //command.Parameters.Add(new SqlParameter("@Cliente", pedido.Cliente));
                    command.Parameters.Add(new SqlParameter("@NumeroMesa", 1));

                    //command.Parameters.Add(new SqlParameter("@Empleado", 0));
                    //command.Parameters.Add(new SqlParameter("@DiaVenta", 0));
                    command.ExecuteNonQuery();
                    command.Parameters.Clear();


                    for (int posicion = 0; posicion < productos.Count; posicion++)
                    {
                        command.Parameters.Clear();

                        command.CommandText =
                            "INSERT INTO dbo.PedidoProducto VALUES (@idPedido, @idProductoVenta, @Cantidad, @Precio)";
                        command.Parameters.Add(new SqlParameter("@idPedido", pedido.idPedido));
                        command.Parameters.Add(new SqlParameter("@idProductoVenta", productos[posicion].idProductoVenta));
                        command.Parameters.Add(new SqlParameter("@Cantidad", productos[posicion].Cantidad));
                        command.Parameters.Add(new SqlParameter("@Precio", productos[posicion].Precio));


                        command.ExecuteNonQuery();
                    }



                    transaction.Commit();
                    resultado = ResultadoOperacion.Exito;
                }
                catch (SqlException e)
                {
                    transaction.Rollback();

                    switch (e.Number)
                    {
                    default:
                        resultado = ResultadoOperacion.FalloSQL;
                        break;
                    }
                }
            }



            return(resultado);
        }