# Sistema de Ventas Avantika ## Descripción General Sistema integral de gestión de ventas, inventario y facturación multi-empresa desarrollado en PHP. Actualmente funciona con PHP heredado y requiere migración completa a PHP 8. ## Arquitectura del Sistema ### Multi-Empresa El sistema maneja múltiples empresas mediante una arquitectura de bases de datos separadas: - **Base Master:** `avantikads_nmgen` - Autenticación y catálogos globales - **Bases Empresa:** `avantikads_nm{empresaId}` - Datos específicos por empresa - **Ejemplo:** `avantikads_nm15` para empresaId = 15 ### Flujo de Autenticación 1. Usuario inicia sesión → Conexión a base master 2. Validación de credenciales en tabla `usuario` 3. Obtención de `empresaId` del registro del usuario 4. Conexión dinámica a base de datos específica de la empresa ## Estado Actual ### Versión PHP - **Actual:** PHP con funciones obsoletas (mysql_*) - **Requerido:** Migración completa a PHP 8 ### Compatibilidad - **❌ NO COMPATIBLE** con PHP 8 - **Requiere migración completa** antes de actualizar ## Problemas Críticos Identificados ### 1. Funciones Obsoletas (CRÍTICO) - **13 funciones mysql_*** en `classes/db.class.php` - **Impacto:** Sistema completo sin base de datos - **Solución:** Migración completa a MySQLi/PDO ### 2. Funciones Eliminadas en PHP 8 - `ereg_replace()` → `preg_replace()` - `each()` → `foreach()` (7 archivos) - `create_function()` → funciones anónimas (4 archivos) - `split()` → `explode()`/`preg_split()` (4 archivos) ### 3. Sintaxis Incompatible - 100+ ocurrencias de `$string{index}` → `$string[index]` - 98+ asignaciones `list()` incorrectas - Múltiples asignaciones por referencia problemáticas ### 4. Seguridad - Credenciales de bases de datos en código fuente - Falta de configuración centralizada segura ## Estructura del Proyecto ``` ventas/ ├── index.php # Punto de entrada principal ├── config.php # Configuración actual (a eliminar) ├── libraries.php # Carga de clases y librerías ├── init.php # Inicialización del sistema ├── classes/ # Clases del sistema │ ├── db.class.php # Base de datos (mysql_* obsoletas) │ ├── util.class.php # Utilidades (funciones obsoletas) │ ├── usuario.class.php # Gestión de usuarios │ ├── producto.class.php # Gestión de productos │ └── [20+ clases más] ├── ajax/ # Endpoints AJAX (50+ archivos) ├── modules/ # Módulos del sistema (100+ archivos) ├── templates_c/ # Plantillas compiladas Smarty ├── pdf/ # Generación de PDFs ├── tcpdf/ # Librería TCPDF ├── properties/ # Archivos de configuración ├── base_datos/ # Esquemas de bases de datos │ ├── avantikads_nmgen.sql # Estructura base master │ └── avantikads_nm15.sql # Ejemplo empresa └── php8-migration/ # Plan de migración a PHP 8 ``` ## Tecnologías Utilizadas ### Backend - **PHP** (versión heredada) - **MySQL** (multi-base de datos) - **Smarty** (motor de plantillas) - **NuSOAP** (webservices) - **PHPMailer** (correos electrónicos) - **TCPDF** (generación de PDFs) ### Base de Datos - **MySQL** con arquitectura multi-empresa - **Motor:** InnoDB/MyISAM mixto - **Charset:** latin1 (requiere migración a utf8mb4) ## Módulos Principales - **Usuarios:** Gestión multi-empresa de usuarios - **Productos:** Catálogo y control de inventario - **Pedidos:** Sistema de pedidos y envíos - **Ventas:** Procesamiento de ventas y facturación - **Facturación:** Facturas electrónicas (México) - **Inventario:** Control y ajustes de inventario - **Reportes:** Múltiples reportes de negocio - **Proveedores:** Gestión de proveedores - **Clientes:** Administración de clientes ## Plan de Migración a PHP 8 ### Documentación Completa Ver `php8-migration/` para documentación detallada: 1. **`analisis-sistema.md`** - Análisis general 2. **`reporte-problemas.md`** - Problemas identificados 3. **`plan-ejecucion.md`** - Plan de migración 4. **`ejemplo-db-mysqli.php`** - Ejemplo migración DB 5. **`ejemplo-env-config.php`** - Configuración segura 6. **`.env.example`** - Plantilla de variables 7. **`archivos-criticos.md`** - Lista de archivos críticos 8. **`analisis-base-datos.md`** - Análisis BD multi-empresa ### Estimación de Tiempo - **Total estimado:** 113-162 horas - **Fases:** Configuración → MySQL → Funciones → Sintaxis → Pruebas ## Requisitos de Migración ### Críticos 1. ✅ Migrar funciones mysql_* a MySQLi/PDO 2. ✅ Implementar configuración .env segura 3. ✅ Actualizar sintaxis PHP 8 4. ✅ Reemplazar funciones obsoletas ### Seguridad 1. ✅ Eliminar credenciales del código 2. ✅ Implementar variables de entorno 3. ✅ Validar routing multi-empresa 4. ✅ Aislar datos por empresa ## Advertencias Importantes ⚠️ **NO ACTUALIZAR PHP** sin completar migración completa ⚠️ **Backup completo** obligatorio antes de cambios ⚠️ **Entorno de pruebas** aislado requerido ⚠️ **Pérdida total de funcionalidad** si se actualiza PHP sin migración ## Licencia Sistema propiedad de Avantika - Uso exclusivo del propietario. --- **Última actualización:** Enero 2026 **Estado:** En espera de aprobación para migración a PHP 8