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

152
README.md Normal file
View File

@@ -0,0 +1,152 @@
# 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