public static bool Modificar(Inventario inventario)
        {
            Contexto contexto    = new Contexto();
            bool     paso        = false;
            var      invAnterior = Buscar(inventario.InventarioId);

            try
            {
                if (invAnterior != null)
                {
                    foreach (var item in invAnterior.Productos)
                    {
                        var producto = ProductosBLL.Buscar(item.ProductoId);
                        producto.Inventario     -= item.Inventario;
                        producto.ValorInventario = producto.Inventario * producto.PrecioUnitario;
                        ProductosBLL.Modificar(producto);
                        contexto.Entry(item).State = EntityState.Deleted;
                    }
                }

                foreach (var item in inventario.Productos)
                {
                    if (item.InventarioDetalleId == 0)
                    {
                        contexto.Entry(item).State = EntityState.Added;
                        var producto = ProductosBLL.Buscar(item.ProductoId);
                        producto.Inventario     += item.Inventario;
                        producto.ValorInventario = producto.Inventario * producto.PrecioUnitario;
                        ProductosBLL.Modificar(producto);
                    }
                    else
                    {
                        contexto.Entry(item).State = EntityState.Modified;
                        var Producto = ProductosBLL.Buscar(item.ProductoId);
                        Producto.Inventario     += item.Inventario;
                        Producto.ValorInventario = Producto.Inventario * Producto.PrecioUnitario;
                        ProductosBLL.Modificar(Producto);
                    }
                }

                contexto.Entry(inventario).State = EntityState.Modified;
                paso = (contexto.SaveChanges() > 0);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                contexto.Dispose();
            }

            return(paso);
        }
        public static bool Eliminar(int id)
        {
            Contexto contexto = new Contexto();
            bool     paso     = false;

            try
            {
                Ventas venta = VentasBLL.Buscar(id);

                if (venta != null)
                {
                    Clientes cliente = ClientesBLL.Buscar(venta.ClienteId);

                    if (venta.Tipo == "Credito")
                    {
                        if (venta.TotalGeneral > cliente.Balance)
                        {
                            cliente.Balance = 0;
                        }
                        else
                        {
                            cliente.Balance       -= venta.TotalGeneral;
                            cliente.LimiteCredito += venta.TotalGeneral;
                            ClientesBLL.Modificar(cliente);
                        }
                    }


                    foreach (var item in venta.VentasDetalle) //Afecta el inventario
                    {
                        var Producto = ProductosBLL.Buscar(item.ProductoId);
                        Producto.Inventario     += item.Cantidad;
                        Producto.ValorInventario = Producto.Inventario * Producto.PrecioUnitario;
                        ProductosBLL.Modificar(Producto);
                    }

                    contexto.Ventas.Remove(venta);
                    paso = (contexto.SaveChanges() > 0);
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                contexto.Dispose();
            }

            return(paso);
        }
        public static bool Modificar(Ventas venta)
        {
            Contexto contexto      = new Contexto();
            bool     paso          = false;
            var      ventaAnterior = Buscar(venta.VentaId);
            Clientes cliente       = ClientesBLL.Buscar(ventaAnterior.ClienteId);
            Clientes NuevoCliente  = ClientesBLL.Buscar(venta.ClienteId);

            try
            {
                if (ventaAnterior.ClienteId == venta.ClienteId)
                {
                    if (venta.Tipo == "Credito")
                    {
                        if (ventaAnterior.Tipo == "Contado")
                        {
                            cliente.Balance       += venta.TotalGeneral;
                            cliente.LimiteCredito -= venta.TotalGeneral;
                            ClientesBLL.Modificar(cliente);
                        }
                        else
                        {
                            if ((ventaAnterior.TotalGeneral != venta.TotalGeneral))
                            {
                                cliente.Balance       = ((cliente.Balance - ventaAnterior.TotalGeneral) + venta.TotalGeneral);
                                cliente.LimiteCredito = ((cliente.LimiteCredito + ventaAnterior.TotalGeneral) - venta.TotalGeneral);
                            }

                            ClientesBLL.Modificar(cliente);
                        }
                    }
                    else
                    {
                        if (ventaAnterior.Tipo == "Credito")
                        {
                            cliente.Balance       -= ventaAnterior.TotalGeneral;
                            cliente.LimiteCredito += venta.TotalGeneral;
                            ClientesBLL.Modificar(cliente);
                        }
                    }
                }
                else
                {
                    if (ventaAnterior.Tipo == "Credito")
                    {
                        if (venta.Tipo == "Contado")
                        {
                            cliente.Balance       -= ventaAnterior.TotalGeneral;
                            cliente.LimiteCredito += ventaAnterior.TotalGeneral;
                            ClientesBLL.Modificar(cliente);
                        }
                        else
                        {
                            if (venta.Tipo == "Credito")
                            {
                                cliente.Balance       -= ventaAnterior.TotalGeneral;
                                cliente.LimiteCredito += ventaAnterior.TotalGeneral;
                                ClientesBLL.Modificar(cliente);

                                NuevoCliente.Balance       += venta.TotalGeneral;
                                NuevoCliente.LimiteCredito -= venta.TotalGeneral;
                                ClientesBLL.Modificar(NuevoCliente);
                            }
                        }
                    }
                    else
                    {
                        if (venta.Tipo == "Credito")
                        {
                            NuevoCliente.Balance       += venta.TotalGeneral;
                            NuevoCliente.LimiteCredito -= venta.TotalGeneral;
                            ClientesBLL.Modificar(NuevoCliente);
                        }
                    }
                }

                foreach (var item in ventaAnterior.VentasDetalle)
                {
                    if (!venta.VentasDetalle.Exists(o => o.VentasDetalleId == item.VentasDetalleId))
                    {
                        var producto = ProductosBLL.Buscar(item.ProductoId);
                        producto.Inventario     += item.Cantidad;
                        producto.ValorInventario = producto.Inventario * producto.PrecioUnitario;
                        ProductosBLL.Modificar(producto);
                        contexto.Entry(item).State = EntityState.Deleted;
                    }
                }

                foreach (var item in venta.VentasDetalle)
                {
                    if (item.VentasDetalleId == 0)
                    {
                        contexto.Entry(item).State = EntityState.Added;
                        var producto = ProductosBLL.Buscar(item.ProductoId);
                        producto.Inventario     -= item.Cantidad;
                        producto.ValorInventario = producto.Inventario * producto.PrecioUnitario;
                        ProductosBLL.Modificar(producto);
                    }
                    else
                    {
                        contexto.Entry(item).State = EntityState.Modified;
                        var Producto = ProductosBLL.Buscar(item.ProductoId);
                        Producto.ValorInventario = Producto.Inventario * Producto.PrecioUnitario;
                        ProductosBLL.Modificar(Producto);
                    }
                }

                contexto.Entry(venta).State = EntityState.Modified;
                paso = (contexto.SaveChanges() > 0);
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                contexto.Dispose();
            }

            return(paso);
        }