El fallo al cancelar saltaba porque el producto no existía. Para evitar ese fallo solo se podra cancelar una venta si es una venta con menos de 30 días (en 30 días es improbable que borren productos) o si ya es una venta cancelada.

Solución alternativa:
- Crear un método en el modelo de sale que devuelva true o false segun si todos los productos de una misma venta existen. Si no existe el producto lo podríamos crear.