5cdfc9c39a511d7cde10f6b7d80bb84dac874623
Initialized $pages array in else block to prevent undefined variable warning when no search criteria are provided and SQL returns results.
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_nm15para empresaId = 15
Flujo de Autenticación
- Usuario inicia sesión → Conexión a base master
- Validación de credenciales en tabla
usuario - Obtención de
empresaIddel registro del usuario - 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:
analisis-sistema.md- Análisis generalreporte-problemas.md- Problemas identificadosplan-ejecucion.md- Plan de migraciónejemplo-db-mysqli.php- Ejemplo migración DBejemplo-env-config.php- Configuración segura.env.example- Plantilla de variablesarchivos-criticos.md- Lista de archivos críticosanalisis-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
- ✅ Migrar funciones mysql_* a MySQLi/PDO
- ✅ Implementar configuración .env segura
- ✅ Actualizar sintaxis PHP 8
- ✅ Reemplazar funciones obsoletas
Seguridad
- ✅ Eliminar credenciales del código
- ✅ Implementar variables de entorno
- ✅ Validar routing multi-empresa
- ✅ 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
Description
Languages
PHP
77%
Smarty
7.7%
HTML
5.1%
JavaScript
4.3%
C
3.7%
Other
2.2%