3ae4be595784dca658fe7fec0d8081531b346349
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%