# 🚀 Solucionar Envío de Errores - Guía Rápida

## 📌 Situación Actual

Tienes registros que fallaron en Devlyn. Ahora necesitas hacerlos llegar correctamente.

## 🎯 Flujo de 4 Pasos

### Paso 1️⃣: DIAGNOSTICAR
```
1. Ve a: http://procesos.grupoac.mx/Devlyn/ver_errores.php
2. Presiona: "🔍 Diagnosticar"
3. Se abrirá debug_reintentos.php que te dirá:
   ✓ Si hay errores pendientes
   ✓ Si existen registros en la BD
   ✓ Si pueden reenviarse
```

**¿Qué esperar?**
```
SI ves "LISTO PARA REINTENTAR" → Salta al Paso 2
SI ves "NO SE ENCONTRÓ REGISTRO" → Ve al Paso 3
SI ves "TODOS YA ESTÁN MARCADOS COMO ENVIADOS" → Ve al Paso 3
```

---

### Paso 2️⃣: REINTENTAR (Si todo está listo)
```
1. Ve a: http://procesos.grupoac.mx/Devlyn/ver_errores.php
2. Presiona: "👁️ Reintento (Preview)"
   └─ Ves cuántos se reenviará
3. Si ves que está correcto, presiona: "▶️ Reintentar Ahora"
4. Confirma en el popup
5. Espera el resultado
```

**Resultado esperado:**
```
✓ EXITOSO: X registros reenviados correctamente
  └─ Se eliminan del archivo de errores
  └─ Se actualizan en la BD como enviado_devlyn=1

PARCIAL: X reenviados, Y rechazados
  └─ Los rechazados quedan en el archivo de errores
  └─ Investiga por qué fallaron en reintento_errores.php?

ERROR: Ver mensaje de error específico
  └─ Probablemente problema de red/API
  └─ Reintentar después de 30 minutos
```

---

### Paso 3️⃣: RESETEAR (Si no se encontró o está marcado como enviado)

Si `debug_reintentos.php` dice que NO encontró registros:

```
1. Ve a: http://procesos.grupoac.mx/Devlyn/ver_errores.php
2. Presiona: "⚙️ Resetear"
3. Elige:
   
   OPCIÓN A: Resetear un código específico
   ├─ Ingresa el código (ej: EB5226053)
   ├─ Presiona: "Resetear Código"
   └─ Verás: "X registro(s) marcado(s) como NO enviado(s)"
   
   OPCIÓN B: Resetear todos los errores de hoy
   ├─ Presiona: "Resetear Todos"
   ├─ Confirma
   └─ Verás: "X registros de Y código(s) reeniciado(s)"

4. Una vez resetead
o, vuelve al Paso 1
```

---

### Paso 4️⃣: LIMPIAR (Si todo se envió correctamente)

Después de que el reintento sea exitoso:

```
1. Ve a: http://procesos.grupoac.mx/Devlyn/ver_errores.php
2. Presiona: "📊 Resumen y Limpiar"
3. Verás cuáles pueden eliminarse
4. Si todo se ve bien:
   └─ Presiona: "✓ Ejecutar Limpieza"
5. Los errores que se reenviaron correctamente se eliminan
```

---

## 🛠️ Herramientas Disponibles

| Herramienta | URL | Función |
|---|---|---|
| **Ver Errores** | `ver_errores.php` | Lista todos los errores de hoy |
| **Diagnosticar** | `debug_reintentos.php` | Busca registros en BD y verifica si pueden reenviarse |
| **Reintento Preview** | `reintentar_errores.php?ver` | Muestra qué se reenviará SIN ejecutar |
| **Reintentar** | `reintentar_errores.php` | Reintenta enviar (con confirmación) |
| **Resetear** | `resetear_envios.php` | Marca como NO enviado para reintentar después |
| **Resumen y Limpiar** | `resumen_errores.php` | Compara errores vs. envíos exitosos |

---

## 🆘 Problemas Comunes

### ❌ "NO SE ENCONTRÓ REGISTRO"
```
Causas:
1. El código en el error está mal escrito
2. El registro fue eliminado de la BD
3. El registro nunca existió en OperacionPrueba

Solución:
a) Revisar el código en ver_errores.php (letra x letra)
b) Si existe pero está marcado como enviado:
   → Ejecutar: resetear_envios.php
   → Luego reintentar
```

### ⏱️ "ERROR DE CONEXIÓN CON LA API"
```
HTTP: 0
Error: Could not resolve host, Connection refused, etc.

Causas:
1. La API de Devlyn está caída
2. Problema de conectividad/firewall
3. Token expirado

Soluciones:
1. Esperar 30-60 minutos
2. Verificar: ping app.devlyn.me en cmd
3. Verificar token en config_devlyn.php
4. Reintentar después
```

### 🔴 "HTTP 500"
```
Causas:
1. Error del servidor Devlyn
2. Token inválido
3. JSON con formato incorrecto

Soluciones:
1. Verificar token en config_devlyn.php
2. Usar debug_reintentos.php para ver el JSON
3. Esperar y reintentar después
```

---

## 📊 Estado de un Código

Cada código puede estar en uno de estos estados:

```
┌─ EN TABLA OperacionPrueba
│  ├─ enviado_devlyn = 0  → NO enviado (candidato para reintentar)
│  └─ enviado_devlyn = 1  → YA enviado (resetear si necesitas reintentar)
│
└─ ARCHIVO DE ERRORES
   ├─ Si HTTP 500 o similar → Puede intentarse de nuevo
   └─ Si HTTP 0 → Problema de red, será reintentado automáticamente
```

---

## ✅ Checklist Rápido

- [ ] Ejecutaste `debug_reintentos.php` y dice "LISTO PARA REINTENTAR"
- [ ] Viste el preview en `reintentar_errores.php?ver`
- [ ] Los números son correctos
- [ ] Ejecutaste `reintentar_errores.php` sin la query `?ver`
- [ ] Confirmaste en el popup
- [ ] El resultado muestra "EXITOSO" o "PARCIAL"
- [ ] Si hay rechazados, revisaste por qué
- [ ] Ejecutaste `resumen_errores.php` para limpiar después

---

## 🔗 Links Directos

```
Panel de Errores:
http://procesos.grupoac.mx/Devlyn/ver_errores.php

Diagnóstico:
http://procesos.grupoac.mx/Devlyn/debug_reintentos.php

Resetear:
http://procesos.grupoac.mx/Devlyn/resetear_envios.php

Reintentador:
http://procesos.grupoac.mx/Devlyn/reintentar_errores.php

Limpiador:
http://procesos.grupoac.mx/Devlyn/resumen_errores.php
```

---

**Versión**: 2.0  
**Fecha**: 2026-11-13  
**Estado**: Completo y listo para usar
