152 lines
5.4 KiB
Markdown
Executable File
152 lines
5.4 KiB
Markdown
Executable File
# 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 |