Primer commit del sistema avantika sin cambios
This commit is contained in:
152
README.md
Normal file
152
README.md
Normal 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
|
||||
Reference in New Issue
Block a user