# LPM Esencial 3.2.1 — Bloqueo de etapas vacías

Actualización incremental para instalaciones que ya cuentan con LPM Esencial 3.2.

## Correcciones

- Una etapa debe contener al menos una tarea antes de poder completarse.
- Todas las tareas de la etapa deben estar en estado **Completada**.
- Una etapa debe contener al menos un entregable.
- Todos los entregables deben estar en estado **Aprobado**.
- La validación se aplica en la interfaz y también en el servidor.
- Cuando una etapa no contiene tareas, la siguiente acción muestra **Agregar tarea**.
- Las tareas canceladas no se consideran completadas para el cierre.

## Instalación

1. Ubícate en la carpeta de la aplicación:

   ```bash
   cd ~/public_html/lpm-nuevo/lpm-esencial-entrega-1
   ```

2. Activa el modo mantenimiento:

   ```bash
   php artisan down
   ```

3. Extrae `LPM_Esencial_Actualizacion_3.2.1_Bloqueo_Etapas_Vacias.zip` directamente en esa carpeta y acepta reemplazar los archivos.

4. Limpia y reconstruye la caché; después reactiva la aplicación:

   ```bash
   php artisan optimize:clear
   php artisan optimize
   php artisan up
   ```

No ejecutes migraciones, seeders, `migrate:fresh` ni `db:seed`.

## Prueba recomendada

Abre el proyecto `LPM-2026-0002` en la etapa Desarrollo. Debe aparecer **Agregar la primera tarea de Desarrollo** y no debe mostrarse el botón para completar la etapa. Después valida este orden:

1. Crear y completar al menos una tarea.
2. Crear un entregable.
3. Cargar su versión y obtener la aprobación.
4. Completar la etapa.

La actualización no modifica tablas, usuarios, proyectos, tareas, entregables, versiones ni historiales existentes.
