# SIHO PMS MASTER RC20 — Certificación SIHO LAB

## Objetivo

Certificar una instalación limpia antes de promoverla a una instalación cliente.

## Preparación

1. Restaurar la base maestra `database/master/siho_pms_master.sql`.
2. Aplicar los parches indicados en `INSTALLATION_MANIFEST.json` en el orden declarado.
3. Configurar `.env` y la identidad exclusiva de SIHO LAB.
4. Confirmar que `SIHO_LAB_MODE=true` y que el código de instalación coincide con el código autorizado.
5. No usar una base con información real de clientes.

## Certificación normal

```bash
php artisan siho:lab-certify
```

## Certificación con reglas de producción

```bash
php artisan siho:lab-certify --production
```

## Resultado

- Código `0`: certificación aprobada.
- Código `2`: certificación rechazada.
- Las advertencias de integridad rechazan la certificación salvo que se use conscientemente `--allow-warnings`.

El reporte consolidado se guarda por defecto en:

```text
storage/app/siho-lab-certification.json
```

## Criterios mínimos de aprobación

- Modo e identidad LAB válidos.
- Manifiesto JSON válido.
- Conexión a la base disponible.
- Preflight aprobado.
- Auditoría transversal sin hallazgos críticos.
- En modo producción, `APP_DEBUG=false`.

## Pruebas operativas manuales posteriores

1. Abrir caja una sola vez.
2. Crear cliente sin duplicados.
3. Registrar check-in.
4. Agregar consumo y comprobar inventario.
5. Renovar estancia.
6. Cambiar de habitación.
7. Eliminar administrativamente un consumo de la caja activa con motivo.
8. Ejecutar check-out.
9. Confirmar estado `PARA LIMPIEZA`.
10. Completar limpieza y liberar habitación.
11. Cerrar caja y comprobar arqueo.
12. Confirmar que no se puedan borrar movimientos de una caja cerrada.
13. Ejecutar nuevamente `php artisan siho:lab-certify --production`.

La promoción a cliente sólo procede cuando las pruebas manuales y la certificación automática están aprobadas.
