Skip to content

Latest commit

 

History

History
221 lines (185 loc) · 7.16 KB

File metadata and controls

221 lines (185 loc) · 7.16 KB

SAVEPOINT: Sistema STL - Warehouse Management System

Fecha: 2025-06-29 18:47:50 Estado: Funcional con módulos principales implementados

📋 RESUMEN EJECUTIVO

Sistema de gestión de almacén (WMS) que integra una API SAP-STL personalizada con base de datos Firebird local. El sistema cuenta con autenticación JWT, roles de usuario, sincronización de datos en tiempo real y una interfaz moderna con diseño cream/pastel.

🏗️ ARQUITECTURA TÉCNICA

Backend

  • Framework: FastAPI (Python 3.12)
  • Base de Datos: Firebird 2.5 (externa en C:\App\STL\Datos\DATOS_STL.FDB)
  • Autenticación: JWT con roles (ADMINISTRADOR/OPERADOR)
  • API Externa: SAP-STL (https://dependent-vehicle-victory-por.trycloudflare.com)
  • Contenedor: Docker con acceso a BD externa vía host.docker.internal

Frontend

  • Framework: Next.js 14.0.4 con TypeScript
  • UI Library: Tailwind CSS + shadcn/ui
  • Estado: React hooks + API calls con Axios
  • Tema: Sistema cream/pastel con soporte dark mode
  • Contenedor: Docker con Node.js 18 Alpine

📁 ESTRUCTURA DE ARCHIVOS CLAVE

/home/rasaliad/app/stlw/
├── docker-compose.yml
├── backend/
│   ├── app/
│   │   ├── main.py
│   │   ├── core/
│   │   │   ├── config.py (configuración y variables de entorno)
│   │   │   ├── database.py (conexión Firebird)
│   │   │   └── security.py (JWT y hashing)
│   │   ├── api/
│   │   │   ├── routes.py (router principal)
│   │   │   ├── deps.py (dependencias de autenticación)
│   │   │   └── endpoints/
│   │   │       ├── auth.py
│   │   │       ├── users.py
│   │   │       ├── dispatches.py
│   │   │       ├── goods_receipts.py
│   │   │       └── items.py
│   │   ├── models/
│   │   │   └── user.py
│   │   ├── services/
│   │   │   ├── user_service.py
│   │   │   ├── sap_stl_client.py
│   │   │   └── sap_stl_sync_service.py
│   │   └── routers/
│   │       └── sap_stl.py
│   └── Dockerfile
└── frontend/
    ├── src/
    │   ├── app/
    │   │   ├── layout.tsx
    │   │   ├── page.tsx (login)
    │   │   ├── dashboard/page.tsx
    │   │   ├── productos/page.tsx
    │   │   ├── despachos/page.tsx
    │   │   ├── recepciones/page.tsx
    │   │   ├── usuarios/page.tsx
    │   │   └── configuracion/page.tsx
    │   ├── components/
    │   │   ├── app-layout.tsx (sidebar fijo + header sticky)
    │   │   ├── sidebar.tsx
    │   │   └── user-table.tsx
    │   └── lib/
    │       └── api.ts (cliente axios configurado)
    └── Dockerfile

🗄️ ESTRUCTURA DE BASE DE DATOS

Tablas Principales

  • USERS: id, username, email, hashed_password, is_active, role, created_at, updated_at
  • STL_ITEMS: 616 productos sincronizados
  • STL_DISPATCHES: 43 despachos con sync_status
  • STL_DISPATCH_LINES: 407 líneas de detalle
  • STL_GOODS_RECEIPTS: 22 recepciones
  • STL_GOODS_RECEIPT_LINES: 48 líneas de detalle
  • STL_SYNC_CONFIG: Configuración de sincronización por entidad
  • STL_SYNC_LOG: Registro de operaciones de sincronización

✅ MÓDULOS IMPLEMENTADOS

1. Autenticación y Seguridad

  • Login con JWT tokens
  • Roles: ADMINISTRADOR y OPERADOR
  • Protección de rutas por rol
  • Logout y manejo de sesiones

2. Dashboard

  • Vista general del sistema
  • Estadísticas en tiempo real
  • Accesos rápidos a módulos

3. Gestión de Usuarios

  • CRUD completo (Crear, Leer, Actualizar, Eliminar)
  • Asignación de roles
  • Activar/Desactivar usuarios
  • Búsqueda y filtros

4. Despachos (Orders)

  • Lista de 43 despachos reales
  • Vista expandible con líneas de detalle
  • Filtros por cliente y fechas
  • Sincronización manual
  • Estadísticas: Total, Hoy, Clientes únicos, Productos

5. Recepciones

  • Lista de 22 recepciones con líneas
  • Filtros por suplidor y fechas
  • Vista expandible de productos recibidos
  • Estadísticas: Total, Hoy, Suplidores únicos, Productos

6. Productos

  • Catálogo de 616 productos
  • Búsqueda por código/descripción
  • Filtro por familia
  • Paginación (50 productos/página)
  • Información: código, descripción, familia, UMB, embalaje, días vencimiento

7. Configuración (Solo Administradores)

  • Gestión de tiempos de sincronización
  • Configuración por tipo de entidad
  • Modo simulación on/off
  • Estado de conexión API

🔧 CONFIGURACIONES IMPORTANTES

Variables de Entorno

SECRET_KEY=your-secret-key-change-in-production
FIREBIRD_HOST=host.docker.internal
FIREBIRD_PORT=3050
FIREBIRD_DATABASE=C:\\App\\STL\\Datos\\DATOS_STL.FDB
FIREBIRD_USER=sysdba
FIREBIRD_PASSWORD=masterkey
SAP_STL_URL=https://dependent-vehicle-victory-por.trycloudflare.com
SAP_STL_USERNAME=STLUser
SAP_STL_PASSWORD=7a6T9IVeUdf5bvRIv
USE_MOCK_SAP_DATA=false

Usuarios del Sistema

  • admin / admin123 (ADMINISTRADOR)
  • 00107036006 / [contraseña] (OPERADOR)

🚀 COMANDOS ÚTILES

# Iniciar sistema
docker-compose up -d

# Ver logs
docker-compose logs -f

# Reiniciar servicios
docker-compose restart

# Reconstruir sin caché
docker-compose build --no-cache
docker-compose up -d

# Conectar a base de datos desde backend
docker-compose exec backend python
>>> from app.core.database import FirebirdConnection
>>> db = FirebirdConnection()

🐛 PROBLEMAS RESUELTOS

  1. Autenticación fallida: Creación de archivo deps.py faltante
  2. Role validation error: Agregado campo ROLE a tabla USERS
  3. Sincronización 2 registros: Desactivado modo mock para usar API real
  4. CORS errors: Configuración correcta en backend
  5. Endpoint 404 sync: Cambio de GET a POST y ajuste de rutas
  6. Campos incorrectos BD: Mapeo correcto RECEIPT_ID, CANTIDAD vs campos esperados
  7. Cache navegador: Múltiples rebuilds y limpieza de caché

📝 PENDIENTES

  • Resolver error 403 en sync-config endpoint
  • Arreglar DialogTitle warning en componentes
  • Implementar sincronización automática por tiempo
  • Funcionalidad de exportación de datos
  • Módulo de reportes y analytics
  • Notificaciones en tiempo real
  • Logs de auditoría detallados

🎨 CARACTERÍSTICAS UI/UX

  • Tema cream/pastel consistente
  • Sidebar fijo con scroll independiente
  • Header sticky
  • Tablas expandibles para ver detalles
  • Modo claro/oscuro
  • Diseño responsivo
  • Animaciones suaves
  • Iconos Lucide React

🔄 ESTADO ACTUAL

El sistema está completamente funcional con:

  • ✅ Autenticación y autorización funcionando
  • ✅ Todos los módulos principales implementados
  • ✅ Sincronización con API real (43 despachos, 22 recepciones, 616 productos)
  • ✅ Interfaz de usuario completa y navegable
  • ✅ Base de datos conectada y sincronizada
  • ✅ Docker compose configurado y funcionando

URLs de Acceso:


Generado automáticamente por el sistema STL