# Contexto del Sistema - Facturación Electrónica

## 📅 Última Actualización: 2026-03-09

---

## 🚨 Problemas Resueltos

### 1. Error 500 al extraer facturas.zip
**Causa:** MariaDB era terminado por **OOM-kill** (Out Of Memory)

**Solución:**
- Se agregó **SWAP de 4 GB** (`/swapfile`)
- MariaDB ahora tiene memoria suficiente para operar

---

### 2. Error 500 en subdominio `facturas.sistema.facturacionpymes.com`
**Causa:** Los archivos PHP extraídos del zip tenían:
- Rutas hardcodeadas viejas: `/home/facturac6/public_html/sistema/...`
- Credenciales de BD antiguas (usuario `facturac_hidalgo`, etc.)

**Solución:**
- Se actualizó `include_once` a: `/var/www/html/prod/sistema/...`
- Se actualizó usuario PDO a: `db_facturacion`
- Contraseña actual: `Fact8u6tra$PyM3s.2026_XyZ!`

---

### 3. Error 500 en `384.php` (Cliente Tramo don Eduardo)
**Causa:** Múltiples errores en el archivo PHP:
- Clase `XML_Hacienda` no encontrada (include comentado)
- Variable `$tipoPagos` no definida
- Propiedad `$fk_usuario_validar` no existe en clase Factura

**Solución aplicada a `/var/www/html/prod/facturas/384.php`:**
- Se eliminó el switch de `$tipoPagos` (variable nunca se definía)
- Se cambió `$factura2->fk_usuario_validar` por `$factura2->fk_usuario_crear`
- Se usa `$factura2->clave` y `$factura2->consecutivo` directamente (sin XML_Hacienda)
- Se inicializó `$pagos = array()` antes de usar

**URL corregida:**
- ❌ `https://facturas.sistema.facturacionpymes.com/384.phpfacid=635148&e=llave`
- ✅ `https://facturas.sistema.facturacionpymes.com/384.php?facid=635148&e=llave`

**Cliente 384:** Tramo don Eduardo (BD: `facturac_quesosymas2`)

---

### 4. Error 500 en `103.php` (Cliente Cabinas Ana)
**Causa:** Mismos errores que 384.php:
- Variable `$tipoPagos` no definida
- Clase `XML_Hacienda` no encontrada

**Solución aplicada a `/var/www/html/prod/facturas/103.php`:**
- Se eliminó el switch de `$tipoPagos`
- Se usa `$factura2->clave` y `$factura2->consecutivo` directamente (sin XML_Hacienda)
- Se inicializó `$pagos = array()` antes de usar

**URL:** `https://facturas.sistema.facturacionpymes.com/103.php?facid={ID}&e=llave`

**Cliente 103:** Cabinas Ana - Diardy del Pacifico S.A. (BD: `facturac_sistema_GeNeRaL`)

---

## 📊 Estado del Servidor

### Memoria RAM
| Total | Usada | Libre | SWAP |
|-------|-------|-------|------|
| 7.8 GB | ~5.6 GB | ~1.8 GB | 4 GB |

### Disco Duro
| Total | Usado | Disponible | % Uso |
|-------|-------|------------|-------|
| 233 GB | 161 GB | 73 GB | 69% |

---

## 🗄️ Bases de Datos

| Database | Cliente | Usuario |
|----------|---------|---------|
| `facturac_hidalgo2` | Abastecedor Hidalgo | `db_facturacion` |
| `facturac_quesosymas2` | Quesos y Más | `db_facturacion` |
| `facturac_Licencias` | Licencias | `db_facturacion` |
| `facturac_sistema_GeNeRaL` | Sistema General | `db_facturacion` |

---

## 📁 Archivos de Facturas

**Ubicación:** `/var/www/html/prod/facturas/`

**Archivos por cliente (entidad):**
- `89.php` - Cliente 89
- `103.php` - Cabinas Ana (BD: facturac_sistema_GeNeRaL)
- `325.php` - Abastecedor Hidalgo (BD: facturac_hidalgo2)
- `384.php` - Tramo don Eduardo (BD: facturac_quesosymas2)
- `index.php` - Genérico (actualmente apunta a facturac_quesosymas2)

**Total:** 45 archivos PHP actualizados

---

## 🔗 URLs Importantes

| URL | Descripción |
|-----|-------------|
| `https://sistema.facturacionpymes.com/` | Sistema principal |
| `https://facturas.sistema.facturacionpymes.com/` | Subdominio facturas |
| `https://facturas.sistema.facturacionpymes.com/325.php?facid={ID}&e=llave` | API factura Hidalgo |
| `https://facturas.sistema.facturacionpymes.com/384.php?facid={ID}&e=llave` | API factura Tramo don Eduardo |
| `https://facturas.sistema.facturacionpymes.com/103.php?facid={ID}&e=llave` | API factura Cabinas Ana |

---

## 🔧 Comandos Útiles

```bash
# Reiniciar MariaDB
systemctl restart mariadb

# Ver logs de facturas
tail -f /var/log/apache2/facturas_error.log

# Ver memoria
free -h

# Ver procesos por memoria
ps aux --sort=-%mem | head -15

# Extraer facturas.zip (si se cae el sistema)
rm -rf /var/www/html/prod/facturas && unzip /var/www/html/prod/facturas.zip
```

---

## 📝 Script de Reparación

**Archivo:** `/var/www/html/prod/fix_facturas.sh`

Actualiza automáticamente todos los archivos PHP de facturas con:
- Nuevas rutas de includes
- Nuevas credenciales de BD

---

## ⚠️ Notas Importantes

1. **Cada cliente tiene su propia BD** - El número en `325.php` representa el ID de entidad
2. **No hay URL vieja `facturacionpymes.tk`** en los archivos - ya fue verificada su ausencia
3. **El sistema requiere SWAP** - Sin los 4 GB de SWAP, MariaDB puede ser terminado por OOM

---

## 🔐 Credenciales Actuales

```php
DB_USER = 'db_facturacion'
DB_PASS = 'Fact8u6tra$PyM3s.2026_XyZ!'
```

---

*Documento generado automáticamente después de la restauración del sistema del 2026-03-09*

---

## 🕒 Cron Jobs - Quesos y Más (Reparados el 2026-03-09)

**Problema:** Los scripts fallaban por rutas relativas (`./funciones.php`, `../../../conf/conf.php`)

**Solución:** Se actualizaron a rutas absolutas

| Script | Estado | Corrección |
|--------|--------|------------|
| `/var/www/html/prod/motor/facturas_qm2_enviar.php` | ✅ Funcionando | Ruta absoluta a `funciones.php` |
| `/var/www/html/prod/motor/facturas_qm2_revisar.php` | ✅ Funcionando | Ruta absoluta a `funciones.php` |
| `/var/www/html/prod/sistema/mod_electronica/tareas_programadas/quesosymas/quesosymas_enviar_nota.php` | ✅ Funcionando | Ruta absoluta a `conf.php` |
| `/var/www/html/prod/sistema/mod_electronica/tareas_programadas/quesosymas/revisar.nota.php` | ✅ Funcionando | Ruta absoluta a `conf.php` |
| `/var/www/html/prod/sistema/mod_tareas_programadas/correo_factura_electronica_quesosymas2-4.3.php` | ✅ Ya funcionaba | - |

**Cron service:** ✅ Activo (`systemctl status cron`)
