Primer commit del sistema avantika sin cambios

This commit is contained in:
2026-01-06 19:42:24 -06:00
commit 3ae4be5957
7127 changed files with 440072 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
# Plan de Migración PHP 8 - Archivos y Cambios Específicos
## Requisitos Adicionales del Cliente
### Configuración Segura con .env
- **Migrar toda configuración sensible a archivo .env**
- **Eliminar credenciales de bases de datos del código**
- **Usar empresaId del usuario para determinar conexión**
### Arquitectura Multi-Empresa
- **Los usuarios tienen campo empresaId en su registro**
- **La conexión a BD debe seleccionarse dinámicamente por empresaId**
- **No debe existir información de bases de datos fuera del .env**
## Archivos Creados para la Migración
### 1. `/php8-migration/analisis-sistema.md`
- Análisis general del sistema
- Identificación de estructura y componentes
- Evaluación de librerías utilizadas
### 2. `/php8-migration/reporte-problemas.md`
- Reporte detallado de incompatibilidades
- Priorización de problemas
- Estimación de tiempos y riesgos
### 3. `/php8-migration/ejemplo-db-mysqli.php`
- Ejemplo de migración de MySQL a MySQLi
- Código compatible con PHP 8
### 4. `/php8-migration/ejemplo-env-config.php`
- Ejemplo de configuración con archivo .env
- Gestión multi-empresa basada en usuario
## Cambios Críticos Requeridos
### Nivel URGENTE - Configuración y Base de Datos
#### 1. Migrar a Configuración .env
**Archivo:** `config.php` (eliminar completamente)
- **Eliminar todas las credenciales del código**
- **Crear archivo .env con variables seguras**
- **Implementar clase Config para gestión centralizada**
- **Impacto:** Seguridad y mantenibilidad
#### 2. Implementar Conexión Multi-Empresa
**Archivos:** `classes/db.class.php`, `classes/util.class.php`
- **Reemplazar 13 funciones mysql_* por mysqli***
- **Implementar gestión de empresas basada en empresaId del usuario**
- **Crear DatabaseManager para conexiones dinámicas**
- **Impacto:** Sistema completo sin base de datos
#### 3. Actualizar Lógica de Selección de BD
**Archivos:** 100+ archivos con `$_SESSION['empresaId']`
- **Reemplazar `SQL_DATABASE2.$empresaId` por conexión dinámica**
- **Usar DatabaseManager para obtener conexión específica**
- **Impacto:** Funcionalidad multi-empresa completa
### Nivel ALTO - Funciones Eliminadas
1. **`classes/util.class.php:575`** - `ereg_replace()``preg_replace()`
2. **`ajax/cuentas-pagar.php:18`** - `split()``explode()`
3. **`ajax/evaluar-pedidos.php:160,360`** - `split()``explode()`
4. **7 archivos con `each()`** - Reemplazar por `foreach`
5. **4 archivos con `create_function()`** - Reemplazar por funciones anónimas
### Nivel MEDIO - Sintaxis
1. **100+ ocurrencias de `$string{index}`**`$string[index]`
2. **98+ ocurrencias de `list()` incorrecto** → sintaxis moderna
3. **Múltiples asignaciones por referencia** → revisión y limpieza
## Estructura de Archivos de Migración
```
php8-migration/
├── analisis-sistema.md # Análisis general
├── reporte-problemas.md # Problemas identificados
├── ejemplo-db-mysqli.php # Ejemplo de migración DB
├── ejemplo-env-config.php # Ejemplo configuración .env
├── .env.example # Plantilla archivo .env
├── plan-ejecucion.md # Plan actualizado (este archivo)
└── archivos-criticos.txt # Lista de archivos críticos
```
## Recomendaciones de Seguridad
### Antes de Cualquier Cambio:
1.**Backup completo del sistema**
2.**Crear entorno de prueba aislado**
3.**Documentar versión actual funcional**
4.**Lista de todos los usuarios y procesos activos**
### Durante la Migración:
1.**Cambiar un módulo a la vez**
2.**Probar cada cambio inmediatamente**
3.**Mantener log detallado de modificaciones**
4.**No aplicar cambios a producción sin pruebas**
### Después de Cada Cambio:
1.**Ejecutar pruebas unitarias**
2.**Verificar funcionalidad completa**
3.**Comprobar rendimiento**
4.**Validar que no hay regresiones**
## Próximos Pasos Sugeridos
1. **Aprobación del plan:** Revisar y aprobar este análisis
2. **Preparación del entorno:** Configurar entorno de pruebas
3. **Backup completo:** Realizar backup integral del sistema
4. **Migración fase 1:** Actualizar capa de base de datos (MySQL → MySQLi)
5. **Migración fase 2:** Reemplazar funciones eliminadas
6. **Migración fase 3:** Actualizar sintaxis
7. **Pruebas finales:** Validación completa del sistema
## Estado Actual
-**NO COMPATIBLE** con PHP 8
- ⚠️ **Requiere migración completa** antes de actualizar PHP
- 🔴 **Alto riesgo** de pérdida total de funcionalidad
- 📋 **Plan detallado** disponible para ejecución
**ADVERTENCIA:** No actualizar la versión de PHP sin completar todos los cambios de migración.