commit 1d39436fedc3f36ff49237f0570228a3a7454976 Author: rckrdmrd Date: Sun Jan 4 06:12:11 2026 -0600 Initial commit - erp-vidrio-templado diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..7125fd5 --- /dev/null +++ b/.env.example @@ -0,0 +1,118 @@ +# =========================================== +# VIDRIO TEMPLADO - Variables de Entorno +# =========================================== +# Copiar este archivo a .env y configurar valores +# Puertos según DEVENV-PORTS.md + +# ------------------------------------------- +# BASE DE DATOS POSTGRESQL +# ------------------------------------------- +DB_HOST=localhost +DB_PORT=5434 +DB_NAME=vidrio_templado_db +DB_USER=vidrio_user +DB_PASSWORD=vidrio_secret_2025 + +# URL de conexion completa +DATABASE_URL=postgresql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME} + +# ------------------------------------------- +# SCHEMAS DE BASE DE DATOS +# ------------------------------------------- +# Schemas heredados de erp-core +DB_SCHEMA_AUTH=auth +DB_SCHEMA_CORE=core +DB_SCHEMA_INVENTORY=inventory + +# Schemas propios de vidrio-templado +DB_SCHEMA_GLASS=glass +DB_SCHEMA_PRODUCTION=production +DB_SCHEMA_QUALITY=quality +DB_SCHEMA_LOGISTICS=logistics + +# ------------------------------------------- +# APLICACION +# ------------------------------------------- +APP_NAME=vidrio-templado +APP_ENV=development +APP_PORT=3031 +APP_URL=http://localhost:3031 + +# ------------------------------------------- +# FRONTEND +# ------------------------------------------- +FRONTEND_PORT=3030 +FRONTEND_URL=http://localhost:3030 + +# ------------------------------------------- +# AUTENTICACION JWT +# ------------------------------------------- +JWT_SECRET=your_jwt_secret_here_change_in_production +JWT_EXPIRES_IN=24h +JWT_REFRESH_EXPIRES_IN=7d + +# ------------------------------------------- +# MULTI-TENANT +# ------------------------------------------- +TENANT_ID_HEADER=X-Tenant-ID +TENANT_ID_PARAM=tenant_id + +# ------------------------------------------- +# ALMACENAMIENTO DE ARCHIVOS +# ------------------------------------------- +STORAGE_TYPE=local +STORAGE_PATH=./uploads +# Para S3: +# STORAGE_TYPE=s3 +# AWS_ACCESS_KEY_ID= +# AWS_SECRET_ACCESS_KEY= +# AWS_REGION=us-east-1 +# AWS_S3_BUCKET=vidrio-templado-files + +# ------------------------------------------- +# NOTIFICACIONES +# ------------------------------------------- +# Email (SMTP) +SMTP_HOST=smtp.gmail.com +SMTP_PORT=587 +SMTP_USER= +SMTP_PASSWORD= +SMTP_FROM=noreply@vidrio-templado.com + +# ------------------------------------------- +# FACTURACION ELECTRONICA (SAT) +# ------------------------------------------- +SAT_ENVIRONMENT=sandbox +SAT_RFC= +SAT_CER_PATH=./certs/csd.cer +SAT_KEY_PATH=./certs/csd.key +SAT_KEY_PASSWORD= + +# ------------------------------------------- +# LOGGING +# ------------------------------------------- +LOG_LEVEL=debug +LOG_FORMAT=json + +# ------------------------------------------- +# REDIS (Cache y Colas) +# ------------------------------------------- +REDIS_HOST=localhost +REDIS_PORT=6381 +REDIS_PASSWORD= + +# ------------------------------------------- +# CORS +# ------------------------------------------- +CORS_ORIGIN=http://localhost:3030,http://localhost:3031 + +# ------------------------------------------- +# PRODUCCION (Específico de Vidrio) +# ------------------------------------------- +# Nesting/Optimización de corte +NESTING_ALGORITHM=guillotine +NESTING_MAX_WASTE_PERCENT=15 + +# Control de hornos +FURNACE_DEFAULT_TEMP_CELSIUS=620 +FURNACE_ALARM_THRESHOLD=50 diff --git a/INVENTARIO.yml b/INVENTARIO.yml new file mode 100644 index 0000000..f808d2a --- /dev/null +++ b/INVENTARIO.yml @@ -0,0 +1,31 @@ +# Inventario generado por EPIC-008 +proyecto: erp-vidrio-templado +fecha: "2026-01-04" +generado_por: "inventory-project.sh v1.0.0" + +inventario: + docs: + total: 19 + por_tipo: + markdown: 19 + yaml: 0 + json: 0 + orchestration: + total: 23 + por_tipo: + markdown: 14 + yaml: 9 + json: 0 + +problemas: + archivos_obsoletos: 0 + referencias_antiguas: 0 + simco_faltantes: + - _MAP.md en docs/ + - PROJECT-STATUS.md + +estado_simco: + herencia_simco: true + contexto_proyecto: true + map_docs: false + project_status: false diff --git a/PROJECT-STATUS.md b/PROJECT-STATUS.md new file mode 100644 index 0000000..f5c73cc --- /dev/null +++ b/PROJECT-STATUS.md @@ -0,0 +1,144 @@ +# ESTADO DEL PROYECTO - ERP Vidrio Templado + +**Proyecto:** ERP Vidrio Templado (Proyecto Independiente) +**Estado:** 📋 En planificación +**Progreso:** 25% +**Última actualización:** 2025-12-08 + +--- + +## 📊 RESUMEN EJECUTIVO + +| Área | Estado | Descripción | +|------|--------|-------------| +| **Documentación** | 🟡 Inicial | 8 módulos definidos, estructura base | +| **DDL/Schemas** | ❌ No iniciado | Pendiente diseño de BD | +| **Backend** | ❌ No iniciado | Pendiente desarrollo | +| **Frontend** | ❌ No iniciado | Pendiente desarrollo | + +--- + +## 📋 MÓDULOS DEFINIDOS (8) + +| Código | Nombre | Descripción | Reutilización | Estado | +|--------|--------|-------------|---------------|--------| +| VT-001 | Fundamentos | Auth, Users, Tenants | 100% core | PLANIFICADO | +| VT-002 | Cotizaciones | Cotizador por m² | 30% core | PLANIFICADO | +| VT-003 | Producción | Órdenes de producción | 20% core | PLANIFICADO | +| VT-004 | Inventario | Stock vidrio/MP | 70% core | PLANIFICADO | +| VT-005 | Corte | Optimización nesting | 0% (nuevo) | PLANIFICADO | +| VT-006 | Templado | Control de hornos | 0% (nuevo) | PLANIFICADO | +| VT-007 | Calidad | QC y certificaciones | 40% core | PLANIFICADO | +| VT-008 | Despacho | Logística entregas | 50% core | PLANIFICADO | + +**Story Points Estimados:** 259 SP (detallado en épicas) + +--- + +## 🏭 DOMINIO DE NEGOCIO + +### Proceso de Producción +``` +Cotización → Orden Producción → Corte → Templado → QC → Despacho +``` + +### Productos +- Vidrio templado (varios espesores: 4mm, 6mm, 8mm, 10mm, 12mm) +- Vidrio laminado +- Vidrio insulado +- Espejo +- Grabados y sandblasting + +### Características Específicas +- Cotización por dimensiones (alto × ancho) +- Optimización de corte (nesting) +- Control de hornos de templado +- Pruebas de fragmentación +- Trazabilidad de lotes + +--- + +## 📁 ESTRUCTURA DE DOCUMENTACIÓN + +``` +docs/ +├── 00-vision-general/ +│ └── VISION-VIDRIO.md ✅ +├── 02-definicion-modulos/ +│ ├── INDICE-MODULOS.md ✅ +│ ├── VT-001-fundamentos/README.md ✅ +│ ├── VT-002-cotizaciones/README.md ✅ +│ ├── VT-003-produccion/README.md ✅ +│ ├── VT-004-inventario/README.md ✅ +│ ├── VT-005-corte/README.md ✅ +│ ├── VT-006-templado/README.md ✅ +│ ├── VT-007-calidad/README.md ✅ +│ └── VT-008-despacho/README.md ✅ +└── 08-epicas/ + └── EPIC-VT-001-fundamentos.md ✅ +``` + +--- + +## 🎯 PRÓXIMOS PASOS + +### Fase 1: Documentación Detallada +1. [ ] Crear épicas completas (EPIC-VT-002 a 008) +2. [ ] Documentar User Stories por módulo +3. [ ] Definir requerimientos funcionales (RF) +4. [ ] Crear especificaciones técnicas (ET) + +### Fase 2: Diseño de Base de Datos +5. [ ] Diseñar schemas de BD +6. [ ] Implementar DDL +7. [ ] Documentar modelo de datos + +### Fase 3: Desarrollo +8. [ ] Implementar backend (TypeScript/Express) +9. [ ] Implementar frontend (React) +10. [ ] Testing + +--- + +## 📈 MÉTRICAS + +| Métrica | Valor | +|---------|-------| +| Módulos definidos | 8 | +| Épicas creadas | 8/8 ✅ | +| User Stories | 0 (pendiente) | +| Story Points | 259 | +| Archivos MD | 29 | +| Archivos SQL | 0 | +| Archivos TS | 0 | + +--- + +## 🏗️ ARQUITECTURA + +**Tipo:** Proyecto Independiente (fork conceptual del ERP-Core) + +**Patrones a reutilizar del ERP-Core:** +- Multi-tenancy con RLS (para franquicias) +- Estructura de autenticación +- Patrones de inventario +- Sistema de cotizaciones base + +**Módulos 100% nuevos:** +- VT-005: Corte (algoritmo de nesting) +- VT-006: Templado (control de hornos) + +**Opera de forma autónoma:** No requiere ERP-Core instalado + +--- + +## 🔗 REFERENCIAS + +- Índice de módulos: `docs/02-definicion-modulos/INDICE-MODULOS.md` +- Visión: `docs/00-vision-general/VISION-VIDRIO.md` +- SPECS heredadas: `orchestration/00-guidelines/HERENCIA-SPECS-CORE.md` +- Directivas: `orchestration/directivas/` + +--- + +**Última actualización:** 2025-12-08 diff --git a/README.md b/README.md new file mode 100644 index 0000000..110910a --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +# ERP Vidrio Templado - Vertical de Producción + +## Descripción + +Vertical especializada del ERP Suite para empresas de producción de vidrio templado. **Extiende erp-core** con módulos específicos para gestión de producción, control de calidad, y trazabilidad de lotes. + +**Estado:** En planificación (0%) +**Versión:** 0.1.0 +**Base:** Extiende erp-core (60-70%) + +## Estructura del Proyecto + +``` +vidrio-templado/ +├── backend/ # Extensiones backend específicas +├── frontend/ # UI especializada +├── database/ # DDL y migrations específicos +├── docs/ # Documentación del proyecto +│ ├── 00-vision-general/ +│ ├── 01-fase-mvp/ +│ ├── 02-modelado/ +│ └── 90-transversal/ +└── orchestration/ # Sistema de agentes NEXUS + ├── 00-guidelines/ + │ └── CONTEXTO-PROYECTO.md + ├── trazas/ + ├── estados/ + └── PROXIMA-ACCION.md +``` + +## Módulos Específicos Planificados + +| Módulo | Descripción | Prioridad | +|--------|-------------|-----------| +| Órdenes de Producción | Gestión de órdenes de corte y templado | Alta | +| Control de Calidad | Testing de resistencia y conformidad | Alta | +| Inventario Materia Prima | Stock de vidrio crudo, químicos | Alta | +| Gestión de Hornos | Control de maquinaria y mantenimiento | Media | +| Trazabilidad de Lotes | Seguimiento desde MP hasta PT | Media | +| Cotizaciones | Cotizador con cálculo automático | Media | + +## Schemas Planificados + +| Schema | Descripción | +|--------|-------------| +| `production_management` | Órdenes, procesos, tiempos | +| `quality_management` | Pruebas, certificaciones | +| `inventory_management` | Extendido para vidrio | + +## Documentación + +- **Contexto:** `orchestration/00-guidelines/CONTEXTO-PROYECTO.md` +- **Próxima acción:** `orchestration/PROXIMA-ACCION.md` +- **Trazas de agentes:** `orchestration/trazas/` + +## Dependencias + +- **Requiere:** erp-core completado +- **Referencia:** Patrones de construcción aplicables + +--- +*Proyecto parte de ERP Suite - Fábrica de Software con Agentes IA* diff --git a/database/HERENCIA-ERP-CORE.md b/database/HERENCIA-ERP-CORE.md new file mode 100644 index 0000000..0ca23fe --- /dev/null +++ b/database/HERENCIA-ERP-CORE.md @@ -0,0 +1,191 @@ +# Herencia de Base de Datos - ERP Core -> Vidrio Templado + +**Fecha:** 2025-12-08 +**Versión:** 1.0 +**Vertical:** Vidrio Templado +**Nivel:** 2B.2 + +--- + +## RESUMEN + +La vertical de Vidrio Templado hereda los schemas base del ERP Core y extiende con schemas específicos del dominio de producción de vidrio. + +**Ubicación DDL Core:** `apps/erp-core/database/ddl/` + +--- + +## ARQUITECTURA DE HERENCIA + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ ERP CORE (Base) │ +│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ +│ │ auth │ │ core │ │financial│ │inventory│ │ purchase │ │ +│ │ 26 tbl │ │ 12 tbl │ │ 15 tbl │ │ 15 tbl │ │ 8 tbl │ │ +│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │ +│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ +│ │ sales │ │analytics│ │ system │ │ +│ │ 6 tbl │ │ 5 tbl │ │ 10 tbl │ │ +│ └─────────┘ └─────────┘ └─────────┘ │ +│ TOTAL: ~97 tablas heredadas │ +└─────────────────────────────────────────────────────────────────┘ + │ + │ HEREDA + ▼ +┌─────────────────────────────────────────────────────────────────┐ +│ VIDRIO TEMPLADO (Extensiones) │ +│ ┌───────────────┐ ┌───────────────┐ ┌───────────────┐ │ +│ │ production │ │ quality │ │ glass │ │ +│ │ management │ │ control │ │ inventory │ │ +│ │ (hornos) │ │ (inspección) │ │ (lotes) │ │ +│ └───────────────┘ └───────────────┘ └───────────────┘ │ +│ EXTENSIONES: ~25 tablas (planificadas) │ +└─────────────────────────────────────────────────────────────────┘ +``` + +--- + +## SCHEMAS HEREDADOS DEL CORE + +| Schema | Tablas | Uso en Vidrio Templado | +|--------|--------|------------------------| +| `auth` | 26 | Autenticación, usuarios, roles, permisos | +| `core` | 12 | Partners (clientes), catálogos | +| `financial` | 15 | Facturas, cuentas contables | +| `inventory` | 15 | Base para materia prima y producto terminado | +| `purchase` | 8 | Compras de materiales | +| `sales` | 6 | Cotizaciones, órdenes de venta | +| `analytics` | 5 | Centros de costo | +| `system` | 10 | Mensajes, notificaciones | + +**Total heredado:** ~97 tablas + +--- + +## SCHEMAS ESPECÍFICOS DE VIDRIO TEMPLADO (Planificados) + +### 1. Schema `production` (estimado 10+ tablas) + +**Propósito:** Gestión de producción y hornos de templado + +```sql +-- Tablas principales planificadas: +production.production_orders -- Órdenes de producción +production.production_lines -- Líneas de producción (hornos) +production.work_orders -- Órdenes de trabajo +production.cutting_plans -- Planes de corte +production.oven_schedules -- Programación de hornos +production.temperature_logs -- Registros de temperatura +``` + +### 2. Schema `quality` (estimado 8+ tablas) + +**Propósito:** Control de calidad y trazabilidad + +```sql +-- Tablas principales planificadas: +quality.inspections -- Inspecciones de calidad +quality.defect_types -- Catálogo de defectos +quality.quality_tests -- Pruebas de calidad +quality.certifications -- Certificaciones de producto +quality.non_conformities -- No conformidades +``` + +### 3. Schema `glass` (estimado 7+ tablas) + +**Propósito:** Inventario especializado de vidrio + +```sql +-- Extiende: inventory schema del core +glass.glass_types -- Tipos de vidrio +glass.glass_lots -- Lotes de producción +glass.glass_dimensions -- Dimensiones estándar +glass.raw_materials -- Materia prima +``` + +--- + +## SPECS DEL CORE APLICABLES + +**Documento detallado:** `orchestration/00-guidelines/HERENCIA-SPECS-CORE.md` + +### Correcciones de DDL Core (2025-12-08) + +El DDL del ERP-Core fue corregido para resolver FK inválidas: + +1. **stock_valuation_layers**: Campos `journal_entry_id` y `journal_entry_line_id` (antes `account_move_*`) +2. **stock_move_consume_rel**: Nueva tabla de trazabilidad (antes `move_line_consume_rel`) +3. **category_stock_accounts**: FK corregida a `core.product_categories` +4. **product_categories**: ALTERs ahora apuntan a schema `core` + +### SPECS Obligatorias + +| Spec Core | Aplicación en Vidrio Templado | SP | Estado | +|-----------|------------------------------|----:|--------| +| SPEC-SISTEMA-SECUENCIAS | Foliado de órdenes y lotes | 8 | ✅ DDL LISTO | +| SPEC-VALORACION-INVENTARIO | Costeo de materia prima y producto | 21 | ✅ DDL LISTO | +| SPEC-SEGURIDAD-API-KEYS-PERMISOS | Control de acceso | 31 | ✅ DDL LISTO | +| SPEC-TRAZABILIDAD-LOTES-SERIES | Lotes de producción de vidrio | 13 | ✅ DDL LISTO | +| SPEC-PRICING-RULES | Precios por dimensiones y tipo | 8 | PENDIENTE | +| SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN | Control de producción | 13 | PENDIENTE | +| SPEC-MAIL-THREAD-TRACKING | Historial de órdenes | 13 | PENDIENTE | +| SPEC-WIZARD-TRANSIENT-MODEL | Wizards de corte y templado | 8 | PENDIENTE | + +### SPECS Opcionales + +| Spec Core | Decisión | Razón | +|-----------|----------|-------| +| SPEC-INVENTARIOS-CICLICOS | EVALUAR | Útil para materia prima | +| SPEC-FIRMA-ELECTRONICA-NOM151 | EVALUAR | Certificados de calidad | + +### SPECS No Aplican + +| Spec Core | Razón | +|-----------|-------| +| SPEC-INTEGRACION-CALENDAR | No requiere calendario externo | +| SPEC-CONSOLIDACION-FINANCIERA | Negocio de una sola planta | + +--- + +## ORDEN DE EJECUCIÓN DDL (Futuro) + +```bash +# PASO 1: Cargar ERP Core (base) +cd apps/erp-core/database +./scripts/reset-database.sh --force + +# PASO 2: Cargar extensiones de Vidrio Templado +cd apps/verticales/vidrio-templado/database +psql $DATABASE_URL -f init/00-extensions.sql +psql $DATABASE_URL -f init/01-create-schemas.sql +psql $DATABASE_URL -f init/02-production-tables.sql +psql $DATABASE_URL -f init/03-quality-tables.sql +psql $DATABASE_URL -f init/04-glass-inventory.sql +``` + +--- + +## MAPEO DE NOMENCLATURA + +| Core | Vidrio Templado | +|------|-----------------| +| `core.partners` | Clientes, proveedores | +| `inventory.products` | Producto terminado base | +| `inventory.locations` | Almacenes de vidrio | +| `sales.sale_orders` | Pedidos de vidrio | +| `purchase.purchase_orders` | Compras de materia prima | + +--- + +## REFERENCIAS + +- ERP Core DDL: `apps/erp-core/database/ddl/` +- ERP Core README: `apps/erp-core/database/README.md` +- Directivas: `orchestration/directivas/` +- Inventarios: `orchestration/inventarios/` + +--- + +**Documento de herencia oficial** +**Última actualización:** 2025-12-08 diff --git a/database/README.md b/database/README.md new file mode 100644 index 0000000..7631956 --- /dev/null +++ b/database/README.md @@ -0,0 +1,90 @@ +# Base de Datos - ERP Vidrio Templado + +## Resumen + +| Aspecto | Valor | +|---------|-------| +| **Schema principal** | `vidrio` | +| **Tablas específicas** | 14 | +| **ENUMs** | 5 | +| **Hereda de ERP-Core** | 144 tablas (12 schemas) | + +## Prerequisitos + +1. **ERP-Core instalado** con todos sus schemas +2. **Extensiones PostgreSQL**: pg_trgm + +## Orden de Ejecución DDL + +```bash +# 1. Instalar ERP-Core primero +cd apps/erp-core/database +./scripts/reset-database.sh + +# 2. Instalar extensión Vidrio Templado +cd apps/verticales/vidrio-templado/database +psql $DATABASE_URL -f init/00-extensions.sql +psql $DATABASE_URL -f init/01-create-schemas.sql +psql $DATABASE_URL -f init/02-rls-functions.sql +psql $DATABASE_URL -f init/03-vidrio-tables.sql +``` + +## Tablas Implementadas + +### Schema: vidrio (14 tablas) + +| Tabla | Módulo | Descripción | +|-------|--------|-------------| +| glass_catalog | VT-001 | Catálogo de tipos de vidrio | +| process_catalog | VT-001 | Catálogo de procesos | +| production_orders | VT-002 | Órdenes de producción | +| production_lines | VT-002 | Líneas de producción | +| furnaces | VT-003 | Hornos de templado | +| furnace_batches | VT-003 | Lotes en horno | +| cutting_machines | VT-003 | Máquinas de corte | +| quality_tests | VT-004 | Tipos de prueba de calidad | +| quality_inspections | VT-004 | Inspecciones de calidad | +| quality_test_results | VT-004 | Resultados de pruebas | +| glass_lots | VT-005 | Lotes de vidrio | +| lot_consumption | VT-005 | Consumo de lotes | +| quotations | VT-006 | Cotizaciones | +| quotation_lines | VT-006 | Líneas de cotización | + +## ENUMs + +| Enum | Valores | +|------|---------| +| glass_type | clear, tinted, reflective, low_e, laminated, tempered | +| production_status | draft, scheduled, in_progress, cutting, tempering, quality_check, completed, cancelled | +| furnace_status | idle, preheating, heating, cooling, maintenance | +| inspection_result | pending, passed, failed, conditional | +| quotation_status | draft, sent, approved, rejected, expired | + +## Row Level Security + +Todas las tablas tienen RLS con: +```sql +tenant_id = current_setting('app.current_tenant_id', true)::UUID +``` + +## Funciones Específicas + +### vidrio.calculate_area_m2(width_mm, height_mm) +Calcula el área en metros cuadrados a partir de dimensiones en milímetros. + +```sql +SELECT vidrio.calculate_area_m2(1500, 2000); +-- Resultado: 3.00 m² +``` + +## Consideraciones Especiales + +- **Cálculos de área**: Siempre en m² para costeo +- **Trazabilidad**: Lotes vinculados a piezas producidas +- **Control de calidad**: Pruebas obligatorias antes de entrega +- **Capacidad hornos**: Máximo área por batch configurable + +## Referencias + +- [HERENCIA-ERP-CORE.md](../orchestration/00-guidelines/HERENCIA-ERP-CORE.md) +- [DATABASE_INVENTORY.yml](../orchestration/inventarios/DATABASE_INVENTORY.yml) diff --git a/database/init/00-extensions.sql b/database/init/00-extensions.sql new file mode 100644 index 0000000..907457e --- /dev/null +++ b/database/init/00-extensions.sql @@ -0,0 +1,23 @@ +-- ============================================================================ +-- EXTENSIONES PostgreSQL - ERP Vidrio Templado +-- ============================================================================ +-- Versión: 1.0.0 +-- Fecha: 2025-12-09 +-- Prerequisito: ERP-Core debe estar instalado +-- ============================================================================ + +-- Verificar que ERP-Core esté instalado +DO $$ +BEGIN + IF NOT EXISTS (SELECT 1 FROM pg_namespace WHERE nspname = 'auth') THEN + RAISE EXCEPTION 'ERP-Core no instalado. Ejecutar primero DDL de erp-core.'; + END IF; +END $$; + +-- Extensión para cálculos geométricos (áreas de vidrio) +-- Ya debería estar en ERP-Core, pero por si acaso +CREATE EXTENSION IF NOT EXISTS pg_trgm; + +-- ============================================================================ +-- FIN EXTENSIONES +-- ============================================================================ diff --git a/database/init/01-create-schemas.sql b/database/init/01-create-schemas.sql new file mode 100644 index 0000000..b70c781 --- /dev/null +++ b/database/init/01-create-schemas.sql @@ -0,0 +1,15 @@ +-- ============================================================================ +-- SCHEMAS - ERP Vidrio Templado +-- ============================================================================ +-- Versión: 1.0.0 +-- Fecha: 2025-12-09 +-- ============================================================================ + +-- Schema principal para operaciones de vidrio templado +CREATE SCHEMA IF NOT EXISTS vidrio; + +COMMENT ON SCHEMA vidrio IS 'Schema para operaciones de manufactura de vidrio templado'; + +-- ============================================================================ +-- FIN SCHEMAS +-- ============================================================================ diff --git a/database/init/02-rls-functions.sql b/database/init/02-rls-functions.sql new file mode 100644 index 0000000..fbe0a3a --- /dev/null +++ b/database/init/02-rls-functions.sql @@ -0,0 +1,30 @@ +-- ============================================================================ +-- FUNCIONES RLS - ERP Vidrio Templado +-- ============================================================================ +-- Versión: 1.0.0 +-- Fecha: 2025-12-09 +-- Nota: Usa las funciones de contexto de ERP-Core (auth schema) +-- ============================================================================ + +-- Las funciones principales están en ERP-Core: +-- auth.get_current_tenant_id() +-- auth.get_current_user_id() +-- auth.get_current_company_id() + +-- Función para calcular área de vidrio en m2 +CREATE OR REPLACE FUNCTION vidrio.calculate_area_m2( + width_mm DECIMAL, + height_mm DECIMAL +) +RETURNS DECIMAL AS $$ +BEGIN + RETURN (width_mm / 1000.0) * (height_mm / 1000.0); +END; +$$ LANGUAGE plpgsql IMMUTABLE; + +COMMENT ON FUNCTION vidrio.calculate_area_m2 IS +'Calcula el área en metros cuadrados a partir de dimensiones en milímetros'; + +-- ============================================================================ +-- FIN FUNCIONES RLS +-- ============================================================================ diff --git a/database/init/03-vidrio-tables.sql b/database/init/03-vidrio-tables.sql new file mode 100644 index 0000000..d60c034 --- /dev/null +++ b/database/init/03-vidrio-tables.sql @@ -0,0 +1,716 @@ +-- ============================================================================ +-- TABLAS VIDRIO TEMPLADO - ERP Vidrio +-- ============================================================================ +-- Módulos: VT-001 (Producción), VT-002 (Calidad), VT-003 (Inventario), +-- VT-004 (Maquinaria), VT-005 (Trazabilidad), VT-006 (Cotizaciones) +-- Versión: 1.0.0 +-- Fecha: 2025-12-09 +-- ============================================================================ +-- PREREQUISITOS: +-- 1. ERP-Core instalado (auth, core, inventory, sales) +-- 2. Schema vidrio creado +-- ============================================================================ + +-- ============================================================================ +-- TYPES (ENUMs) +-- ============================================================================ + +DO $$ BEGIN + CREATE TYPE vidrio.glass_type AS ENUM ( + 'clear', 'tinted', 'reflective', 'low_e', 'laminated', 'tempered', 'insulated' + ); +EXCEPTION WHEN duplicate_object THEN NULL; END $$; + +DO $$ BEGIN + CREATE TYPE vidrio.production_status AS ENUM ( + 'draft', 'scheduled', 'cutting', 'processing', 'tempering', 'quality_check', 'completed', 'cancelled' + ); +EXCEPTION WHEN duplicate_object THEN NULL; END $$; + +DO $$ BEGIN + CREATE TYPE vidrio.quality_result AS ENUM ( + 'pending', 'passed', 'failed', 'conditional' + ); +EXCEPTION WHEN duplicate_object THEN NULL; END $$; + +DO $$ BEGIN + CREATE TYPE vidrio.furnace_status AS ENUM ( + 'idle', 'heating', 'ready', 'in_use', 'cooling', 'maintenance' + ); +EXCEPTION WHEN duplicate_object THEN NULL; END $$; + +DO $$ BEGIN + CREATE TYPE vidrio.edge_type AS ENUM ( + 'flat_polished', 'beveled', 'pencil', 'ogee', 'waterfall', 'raw' + ); +EXCEPTION WHEN duplicate_object THEN NULL; END $$; + +-- ============================================================================ +-- CATÁLOGOS BASE +-- ============================================================================ + +-- Tabla: glass_catalog (Catálogo de tipos de vidrio) +CREATE TABLE IF NOT EXISTS vidrio.glass_catalog ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + + -- Identificación + code VARCHAR(30) NOT NULL, + name VARCHAR(100) NOT NULL, + description TEXT, + + -- Tipo y características + glass_type vidrio.glass_type NOT NULL, + thickness_mm DECIMAL(5,2) NOT NULL, -- 3, 4, 5, 6, 8, 10, 12, 15, 19 mm + color VARCHAR(50), + + -- Propiedades físicas + weight_per_m2 DECIMAL(8,3), -- kg/m2 + max_width_mm INTEGER, + max_height_mm INTEGER, + + -- Precios base + price_per_m2 DECIMAL(12,2), + cost_per_m2 DECIMAL(12,2), + + -- Control + is_active BOOLEAN NOT NULL DEFAULT TRUE, + + -- Auditoría + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_glass_catalog_code UNIQUE (tenant_id, code) +); + +-- Tabla: process_catalog (Catálogo de procesos) +CREATE TABLE IF NOT EXISTS vidrio.process_catalog ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + + code VARCHAR(30) NOT NULL, + name VARCHAR(100) NOT NULL, + description TEXT, + + -- Tipo de proceso + process_type VARCHAR(50) NOT NULL, -- cutting, edging, drilling, tempering, laminating + + -- Costos + cost_per_unit DECIMAL(12,2), + cost_per_m2 DECIMAL(12,2), + time_minutes INTEGER, + + is_active BOOLEAN NOT NULL DEFAULT TRUE, + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_process_catalog_code UNIQUE (tenant_id, code) +); + +-- ============================================================================ +-- PRODUCCIÓN (VT-001) +-- ============================================================================ + +-- Tabla: production_orders (Órdenes de producción) +CREATE TABLE IF NOT EXISTS vidrio.production_orders ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + + -- Número de orden + order_number VARCHAR(30) NOT NULL, + + -- Referencias + sale_order_id UUID, -- FK a sales.sale_orders (ERP Core) + customer_id UUID, -- FK a core.partners (ERP Core) + + -- Estado + status vidrio.production_status NOT NULL DEFAULT 'draft', + + -- Fechas + order_date DATE NOT NULL DEFAULT CURRENT_DATE, + due_date DATE NOT NULL, + start_date TIMESTAMPTZ, + end_date TIMESTAMPTZ, + + -- Prioridad + priority INTEGER DEFAULT 5 CHECK (priority BETWEEN 1 AND 10), + + -- Totales + total_pieces INTEGER DEFAULT 0, + total_area_m2 DECIMAL(12,4) DEFAULT 0, + completed_pieces INTEGER DEFAULT 0, + + -- Notas + notes TEXT, + internal_notes TEXT, + + -- Auditoría + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id), + deleted_at TIMESTAMPTZ, + deleted_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_production_orders_number UNIQUE (tenant_id, order_number) +); + +-- Tabla: production_lines (Piezas de producción) +CREATE TABLE IF NOT EXISTS vidrio.production_lines ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + production_order_id UUID NOT NULL REFERENCES vidrio.production_orders(id) ON DELETE CASCADE, + + -- Identificación de pieza + line_number INTEGER NOT NULL, + piece_code VARCHAR(50), + + -- Tipo de vidrio + glass_catalog_id UUID NOT NULL REFERENCES vidrio.glass_catalog(id), + + -- Dimensiones (en mm) + width_mm DECIMAL(8,2) NOT NULL, + height_mm DECIMAL(8,2) NOT NULL, + quantity INTEGER NOT NULL DEFAULT 1, + + -- Área calculada + area_m2 DECIMAL(12,6) GENERATED ALWAYS AS ( + (width_mm / 1000.0) * (height_mm / 1000.0) * quantity + ) STORED, + + -- Acabados + edge_type vidrio.edge_type DEFAULT 'flat_polished', + has_holes BOOLEAN DEFAULT FALSE, + hole_count INTEGER DEFAULT 0, + has_cutouts BOOLEAN DEFAULT FALSE, + + -- Estado + status vidrio.production_status DEFAULT 'draft', + + -- Lote de producción + lot_id UUID, + furnace_batch_id UUID, + + -- Notas + notes TEXT, + drawing_url VARCHAR(500), + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id) +); + +-- ============================================================================ +-- MAQUINARIA (VT-004) +-- ============================================================================ + +-- Tabla: furnaces (Hornos de templado) +CREATE TABLE IF NOT EXISTS vidrio.furnaces ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + + code VARCHAR(30) NOT NULL, + name VARCHAR(100) NOT NULL, + + -- Capacidad + max_width_mm INTEGER NOT NULL, + max_height_mm INTEGER NOT NULL, + min_thickness_mm DECIMAL(4,2), + max_thickness_mm DECIMAL(4,2), + + -- Estado + status vidrio.furnace_status DEFAULT 'idle', + current_temperature INTEGER, + + -- Mantenimiento + last_maintenance_date DATE, + next_maintenance_date DATE, + + is_active BOOLEAN NOT NULL DEFAULT TRUE, + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_furnaces_code UNIQUE (tenant_id, code) +); + +-- Tabla: furnace_batches (Lotes de hornada) +CREATE TABLE IF NOT EXISTS vidrio.furnace_batches ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + furnace_id UUID NOT NULL REFERENCES vidrio.furnaces(id), + + -- Identificación + batch_number VARCHAR(30) NOT NULL, + + -- Tiempos + start_time TIMESTAMPTZ NOT NULL, + end_time TIMESTAMPTZ, + + -- Parámetros + temperature INTEGER NOT NULL, -- Temperatura objetivo + cycle_time_minutes INTEGER, -- Tiempo de ciclo + + -- Conteo + pieces_count INTEGER DEFAULT 0, + pieces_passed INTEGER DEFAULT 0, + pieces_failed INTEGER DEFAULT 0, + + -- Operador + operator_id UUID REFERENCES auth.users(id), + + -- Notas + notes TEXT, + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_furnace_batches_number UNIQUE (tenant_id, batch_number) +); + +-- Tabla: cutting_machines (Máquinas de corte) +CREATE TABLE IF NOT EXISTS vidrio.cutting_machines ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + + code VARCHAR(30) NOT NULL, + name VARCHAR(100) NOT NULL, + machine_type VARCHAR(50), -- manual, semi_auto, cnc + + -- Capacidad + max_width_mm INTEGER, + max_height_mm INTEGER, + + -- Estado + is_active BOOLEAN NOT NULL DEFAULT TRUE, + + -- Mantenimiento + last_maintenance_date DATE, + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_cutting_machines_code UNIQUE (tenant_id, code) +); + +-- ============================================================================ +-- CALIDAD (VT-002) +-- ============================================================================ + +-- Tabla: quality_tests (Pruebas de calidad) +CREATE TABLE IF NOT EXISTS vidrio.quality_tests ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + + code VARCHAR(30) NOT NULL, + name VARCHAR(100) NOT NULL, + description TEXT, + + -- Tipo de prueba + test_type VARCHAR(50) NOT NULL, -- visual, fragmentation, impact, heat_soak + + -- Parámetros + min_value DECIMAL(12,4), + max_value DECIMAL(12,4), + unit VARCHAR(20), + + is_mandatory BOOLEAN DEFAULT TRUE, + is_active BOOLEAN DEFAULT TRUE, + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_quality_tests_code UNIQUE (tenant_id, code) +); + +-- Tabla: quality_inspections (Inspecciones de calidad) +CREATE TABLE IF NOT EXISTS vidrio.quality_inspections ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + + -- Referencia + production_line_id UUID REFERENCES vidrio.production_lines(id), + furnace_batch_id UUID REFERENCES vidrio.furnace_batches(id), + + -- Número + inspection_number VARCHAR(30) NOT NULL, + inspection_date TIMESTAMPTZ NOT NULL DEFAULT NOW(), + + -- Resultado general + result vidrio.quality_result NOT NULL DEFAULT 'pending', + + -- Inspector + inspector_id UUID NOT NULL REFERENCES auth.users(id), + + -- Notas + notes TEXT, + rejection_reason TEXT, + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_quality_inspections_number UNIQUE (tenant_id, inspection_number) +); + +-- Tabla: quality_test_results (Resultados de pruebas) +CREATE TABLE IF NOT EXISTS vidrio.quality_test_results ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + inspection_id UUID NOT NULL REFERENCES vidrio.quality_inspections(id) ON DELETE CASCADE, + test_id UUID NOT NULL REFERENCES vidrio.quality_tests(id), + + -- Resultado + result vidrio.quality_result NOT NULL, + measured_value DECIMAL(12,4), + + -- Notas + notes TEXT, + photo_url VARCHAR(500), + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id) +); + +-- ============================================================================ +-- TRAZABILIDAD (VT-005) +-- ============================================================================ + +-- Tabla: glass_lots (Lotes de vidrio crudo) +CREATE TABLE IF NOT EXISTS vidrio.glass_lots ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + + -- Identificación + lot_number VARCHAR(30) NOT NULL, + glass_catalog_id UUID NOT NULL REFERENCES vidrio.glass_catalog(id), + + -- Proveedor + supplier_id UUID, -- FK a core.partners (ERP Core) + supplier_lot VARCHAR(50), + purchase_order_id UUID, -- FK a purchase.purchase_orders (ERP Core) + + -- Recepción + receipt_date DATE NOT NULL, + quantity_sheets INTEGER NOT NULL, + quantity_remaining INTEGER NOT NULL, + + -- Dimensiones del lote + sheet_width_mm INTEGER, + sheet_height_mm INTEGER, + + -- Calidad + quality_certificate VARCHAR(100), + inspection_status vidrio.quality_result DEFAULT 'pending', + + -- Fechas + expiry_date DATE, + + -- Notas + notes TEXT, + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_glass_lots_number UNIQUE (tenant_id, lot_number) +); + +-- Tabla: lot_consumption (Consumo de lotes) +CREATE TABLE IF NOT EXISTS vidrio.lot_consumption ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + glass_lot_id UUID NOT NULL REFERENCES vidrio.glass_lots(id), + production_line_id UUID NOT NULL REFERENCES vidrio.production_lines(id), + + quantity_sheets INTEGER NOT NULL DEFAULT 1, + consumption_date TIMESTAMPTZ NOT NULL DEFAULT NOW(), + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id) +); + +-- ============================================================================ +-- COTIZACIONES (VT-006) +-- ============================================================================ + +-- Tabla: quotations (Cotizaciones de vidrio) +CREATE TABLE IF NOT EXISTS vidrio.quotations ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + + -- Número + quotation_number VARCHAR(30) NOT NULL, + + -- Cliente + customer_id UUID NOT NULL, -- FK a core.partners (ERP Core) + contact_name VARCHAR(200), + contact_email VARCHAR(255), + contact_phone VARCHAR(20), + + -- Estado + status VARCHAR(20) NOT NULL DEFAULT 'draft', -- draft, sent, confirmed, cancelled, expired + + -- Fechas + quotation_date DATE NOT NULL DEFAULT CURRENT_DATE, + valid_until DATE NOT NULL, + + -- Proyecto/Obra + project_name VARCHAR(200), + project_location VARCHAR(255), + + -- Totales + subtotal DECIMAL(14,2) DEFAULT 0, + discount_percent DECIMAL(5,2) DEFAULT 0, + discount_amount DECIMAL(14,2) DEFAULT 0, + tax_amount DECIMAL(14,2) DEFAULT 0, + total DECIMAL(14,2) DEFAULT 0, + + -- Conversión + sale_order_id UUID, -- FK a sales.sale_orders cuando se confirma + + -- Notas + notes TEXT, + terms_conditions TEXT, + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id), + updated_at TIMESTAMPTZ, + updated_by UUID REFERENCES auth.users(id), + + CONSTRAINT uq_quotations_number UNIQUE (tenant_id, quotation_number) +); + +-- Tabla: quotation_lines (Líneas de cotización) +CREATE TABLE IF NOT EXISTS vidrio.quotation_lines ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + tenant_id UUID NOT NULL REFERENCES auth.tenants(id) ON DELETE CASCADE, + quotation_id UUID NOT NULL REFERENCES vidrio.quotations(id) ON DELETE CASCADE, + + -- Tipo de vidrio + glass_catalog_id UUID NOT NULL REFERENCES vidrio.glass_catalog(id), + + -- Dimensiones + width_mm DECIMAL(8,2) NOT NULL, + height_mm DECIMAL(8,2) NOT NULL, + quantity INTEGER NOT NULL DEFAULT 1, + + -- Área + area_m2 DECIMAL(12,6) GENERATED ALWAYS AS ( + (width_mm / 1000.0) * (height_mm / 1000.0) * quantity + ) STORED, + + -- Acabados + edge_type vidrio.edge_type DEFAULT 'flat_polished', + has_holes BOOLEAN DEFAULT FALSE, + hole_count INTEGER DEFAULT 0, + has_cutouts BOOLEAN DEFAULT FALSE, + + -- Precios + price_per_m2 DECIMAL(12,2) NOT NULL, + processing_cost DECIMAL(12,2) DEFAULT 0, + subtotal DECIMAL(14,2) NOT NULL, + + -- Descripción + description TEXT, + + -- Orden + sequence INTEGER DEFAULT 1, + + created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), + created_by UUID REFERENCES auth.users(id) +); + +-- ============================================================================ +-- ÍNDICES +-- ============================================================================ + +-- Glass catalog +CREATE INDEX IF NOT EXISTS idx_glass_catalog_tenant ON vidrio.glass_catalog(tenant_id); +CREATE INDEX IF NOT EXISTS idx_glass_catalog_type ON vidrio.glass_catalog(glass_type); + +-- Process catalog +CREATE INDEX IF NOT EXISTS idx_process_catalog_tenant ON vidrio.process_catalog(tenant_id); + +-- Production orders +CREATE INDEX IF NOT EXISTS idx_production_orders_tenant ON vidrio.production_orders(tenant_id); +CREATE INDEX IF NOT EXISTS idx_production_orders_status ON vidrio.production_orders(status); +CREATE INDEX IF NOT EXISTS idx_production_orders_customer ON vidrio.production_orders(customer_id); +CREATE INDEX IF NOT EXISTS idx_production_orders_date ON vidrio.production_orders(order_date); +CREATE INDEX IF NOT EXISTS idx_production_orders_due ON vidrio.production_orders(due_date); + +-- Production lines +CREATE INDEX IF NOT EXISTS idx_production_lines_tenant ON vidrio.production_lines(tenant_id); +CREATE INDEX IF NOT EXISTS idx_production_lines_order ON vidrio.production_lines(production_order_id); +CREATE INDEX IF NOT EXISTS idx_production_lines_glass ON vidrio.production_lines(glass_catalog_id); +CREATE INDEX IF NOT EXISTS idx_production_lines_status ON vidrio.production_lines(status); + +-- Furnaces +CREATE INDEX IF NOT EXISTS idx_furnaces_tenant ON vidrio.furnaces(tenant_id); +CREATE INDEX IF NOT EXISTS idx_furnaces_status ON vidrio.furnaces(status); + +-- Furnace batches +CREATE INDEX IF NOT EXISTS idx_furnace_batches_tenant ON vidrio.furnace_batches(tenant_id); +CREATE INDEX IF NOT EXISTS idx_furnace_batches_furnace ON vidrio.furnace_batches(furnace_id); +CREATE INDEX IF NOT EXISTS idx_furnace_batches_date ON vidrio.furnace_batches(start_time); + +-- Quality inspections +CREATE INDEX IF NOT EXISTS idx_quality_inspections_tenant ON vidrio.quality_inspections(tenant_id); +CREATE INDEX IF NOT EXISTS idx_quality_inspections_result ON vidrio.quality_inspections(result); + +-- Glass lots +CREATE INDEX IF NOT EXISTS idx_glass_lots_tenant ON vidrio.glass_lots(tenant_id); +CREATE INDEX IF NOT EXISTS idx_glass_lots_glass ON vidrio.glass_lots(glass_catalog_id); +CREATE INDEX IF NOT EXISTS idx_glass_lots_supplier ON vidrio.glass_lots(supplier_id); + +-- Quotations +CREATE INDEX IF NOT EXISTS idx_quotations_tenant ON vidrio.quotations(tenant_id); +CREATE INDEX IF NOT EXISTS idx_quotations_customer ON vidrio.quotations(customer_id); +CREATE INDEX IF NOT EXISTS idx_quotations_status ON vidrio.quotations(status); +CREATE INDEX IF NOT EXISTS idx_quotations_date ON vidrio.quotations(quotation_date); + +-- Quotation lines +CREATE INDEX IF NOT EXISTS idx_quotation_lines_tenant ON vidrio.quotation_lines(tenant_id); +CREATE INDEX IF NOT EXISTS idx_quotation_lines_quotation ON vidrio.quotation_lines(quotation_id); + +-- ============================================================================ +-- ROW LEVEL SECURITY +-- ============================================================================ + +ALTER TABLE vidrio.glass_catalog ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.process_catalog ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.production_orders ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.production_lines ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.furnaces ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.furnace_batches ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.cutting_machines ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.quality_tests ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.quality_inspections ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.quality_test_results ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.glass_lots ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.lot_consumption ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.quotations ENABLE ROW LEVEL SECURITY; +ALTER TABLE vidrio.quotation_lines ENABLE ROW LEVEL SECURITY; + +-- Políticas de aislamiento por tenant +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_glass_catalog ON vidrio.glass_catalog; + CREATE POLICY tenant_isolation_glass_catalog ON vidrio.glass_catalog + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_process_catalog ON vidrio.process_catalog; + CREATE POLICY tenant_isolation_process_catalog ON vidrio.process_catalog + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_production_orders ON vidrio.production_orders; + CREATE POLICY tenant_isolation_production_orders ON vidrio.production_orders + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_production_lines ON vidrio.production_lines; + CREATE POLICY tenant_isolation_production_lines ON vidrio.production_lines + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_furnaces ON vidrio.furnaces; + CREATE POLICY tenant_isolation_furnaces ON vidrio.furnaces + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_furnace_batches ON vidrio.furnace_batches; + CREATE POLICY tenant_isolation_furnace_batches ON vidrio.furnace_batches + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_cutting_machines ON vidrio.cutting_machines; + CREATE POLICY tenant_isolation_cutting_machines ON vidrio.cutting_machines + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_quality_tests ON vidrio.quality_tests; + CREATE POLICY tenant_isolation_quality_tests ON vidrio.quality_tests + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_quality_inspections ON vidrio.quality_inspections; + CREATE POLICY tenant_isolation_quality_inspections ON vidrio.quality_inspections + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_quality_test_results ON vidrio.quality_test_results; + CREATE POLICY tenant_isolation_quality_test_results ON vidrio.quality_test_results + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_glass_lots ON vidrio.glass_lots; + CREATE POLICY tenant_isolation_glass_lots ON vidrio.glass_lots + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_lot_consumption ON vidrio.lot_consumption; + CREATE POLICY tenant_isolation_lot_consumption ON vidrio.lot_consumption + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_quotations ON vidrio.quotations; + CREATE POLICY tenant_isolation_quotations ON vidrio.quotations + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +DO $$ BEGIN + DROP POLICY IF EXISTS tenant_isolation_quotation_lines ON vidrio.quotation_lines; + CREATE POLICY tenant_isolation_quotation_lines ON vidrio.quotation_lines + FOR ALL USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID); +EXCEPTION WHEN undefined_object THEN NULL; END $$; + +-- ============================================================================ +-- COMENTARIOS +-- ============================================================================ + +COMMENT ON TABLE vidrio.glass_catalog IS 'Catálogo de tipos de vidrio'; +COMMENT ON TABLE vidrio.process_catalog IS 'Catálogo de procesos de manufactura'; +COMMENT ON TABLE vidrio.production_orders IS 'Órdenes de producción'; +COMMENT ON TABLE vidrio.production_lines IS 'Piezas individuales de producción'; +COMMENT ON TABLE vidrio.furnaces IS 'Hornos de templado'; +COMMENT ON TABLE vidrio.furnace_batches IS 'Lotes de hornada'; +COMMENT ON TABLE vidrio.cutting_machines IS 'Máquinas de corte'; +COMMENT ON TABLE vidrio.quality_tests IS 'Catálogo de pruebas de calidad'; +COMMENT ON TABLE vidrio.quality_inspections IS 'Inspecciones de calidad'; +COMMENT ON TABLE vidrio.quality_test_results IS 'Resultados de pruebas'; +COMMENT ON TABLE vidrio.glass_lots IS 'Lotes de vidrio crudo (trazabilidad)'; +COMMENT ON TABLE vidrio.lot_consumption IS 'Consumo de lotes en producción'; +COMMENT ON TABLE vidrio.quotations IS 'Cotizaciones de vidrio'; +COMMENT ON TABLE vidrio.quotation_lines IS 'Piezas cotizadas'; + +-- ============================================================================ +-- FIN TABLAS VIDRIO +-- Total: 14 tablas, 5 ENUMs +-- ============================================================================ diff --git a/docs/00-vision-general/VISION-VIDRIO.md b/docs/00-vision-general/VISION-VIDRIO.md new file mode 100644 index 0000000..4ab1200 --- /dev/null +++ b/docs/00-vision-general/VISION-VIDRIO.md @@ -0,0 +1,104 @@ +# Visión General - ERP Vidrio Templado + +**Versión:** 1.0 +**Fecha:** 2025-12-08 +**Nivel:** 2B.2 (Vertical) + +--- + +## Propósito del Sistema + +Sistema ERP especializado para empresas de manufactura de vidrio templado, laminado y procesado. Gestiona todo el ciclo desde la cotización hasta el despacho, incluyendo control de producción, optimización de corte, control de hornos de templado y gestión de calidad. + +--- + +## Dominio del Negocio + +### Procesos Principales + +1. **Cotización y Ventas** + - Cotización por dimensiones, tipo de vidrio y acabados + - Cálculo automático de precios por m² + - Gestión de clientes y arquitectos + +2. **Producción** + - Órdenes de producción + - Optimización de corte (nesting) + - Control de hornos de templado + - Programación de producción + +3. **Inventario** + - Control de materia prima (láminas de vidrio) + - Trazabilidad de lotes + - Gestión de producto terminado + +4. **Control de Calidad** + - Inspecciones de producto + - Pruebas de fragmentación + - Certificaciones + +5. **Despacho** + - Logística de entrega + - Instalación (opcional) + +--- + +## Tipos de Vidrio Manejados + +| Tipo | Descripción | +|------|-------------| +| Templado | Tratamiento térmico para resistencia | +| Laminado | Capas con PVB/EVA | +| Insulado | Cámaras de aire | +| Curvo | Templado con curvatura | +| Esmerilado | Acabado mate | +| Serigrafiado | Con diseños impresos | + +--- + +## Arquitectura de Módulos + +``` +VT-001 Fundamentos → Auth, Users, Tenants (hereda 100% core) +VT-002 Cotizaciones → Cotizador de vidrio (30% core) +VT-003 Producción → Órdenes de producción (20% core) +VT-004 Inventario → Stock de vidrio (70% core) +VT-005 Corte → Optimización de corte (0% core - nuevo) +VT-006 Templado → Control de hornos (0% core - nuevo) +VT-007 Calidad → Inspecciones, QC (40% core) +VT-008 Despacho → Logística (50% core) +``` + +--- + +## Stack Tecnológico + +- **Backend:** NestJS + TypeORM + PostgreSQL +- **Frontend:** React + TypeScript + Vite +- **Base de Datos:** PostgreSQL 15+ (hereda ERP Core) +- **Extensiones:** PostGIS (dimensiones) + +--- + +## Métricas Objetivo + +| Métrica | Valor Objetivo | +|---------|----------------| +| Módulos | 8 | +| Tablas Específicas | ~25 | +| Tablas Heredadas | ~97 | +| Story Points Est. | ~200 | + +--- + +## Referencias + +- ERP Core: `apps/erp-core/` +- Herencia DB: `database/HERENCIA-ERP-CORE.md` +- SPECS del Core: `HERENCIA-SPECS-CORE.md` +- Inventarios: `orchestration/inventarios/` + +--- + +**Documento de visión oficial** +**Última actualización:** 2025-12-08 diff --git a/docs/02-definicion-modulos/INDICE-MODULOS.md b/docs/02-definicion-modulos/INDICE-MODULOS.md new file mode 100644 index 0000000..eaa3914 --- /dev/null +++ b/docs/02-definicion-modulos/INDICE-MODULOS.md @@ -0,0 +1,154 @@ +# Índice de Módulos - ERP Vidrio Templado + +**Versión:** 1.0 +**Fecha:** 2025-12-08 +**Total Módulos:** 8 + +--- + +## Resumen + +| Código | Nombre | Descripción | Reutilización Core | Estado | +|--------|--------|-------------|-------------------|--------| +| VT-001 | Fundamentos | Auth, Users, Tenants | 100% | PLANIFICADO | +| VT-002 | Cotizaciones | Cotizador de vidrio | 30% | PLANIFICADO | +| VT-003 | Producción | Órdenes de producción | 20% | PLANIFICADO | +| VT-004 | Inventario | Stock de vidrio y materia prima | 70% | PLANIFICADO | +| VT-005 | Corte | Optimización de corte | 0% | PLANIFICADO | +| VT-006 | Templado | Control de hornos | 0% | PLANIFICADO | +| VT-007 | Calidad | Control de calidad | 40% | PLANIFICADO | +| VT-008 | Despacho | Logística y entregas | 50% | PLANIFICADO | + +--- + +## Detalle por Módulo + +### VT-001: Fundamentos + +**Herencia:** 100% del core (MGN-001 a MGN-004) +**Propósito:** Autenticación, usuarios, roles, multi-tenancy + +- Usuarios del sistema (operadores, supervisores, gerentes) +- Roles y permisos por planta +- Multi-tenancy para franquicias + +### VT-002: Cotizaciones + +**Herencia:** 30% del core (sales) +**Propósito:** Cotización de productos de vidrio + +- Cotizador por dimensiones (alto × ancho) +- Tipos de vidrio y espesores +- Cálculo de precios por m² +- Acabados y procesamientos adicionales +- Generación de PDF para cliente + +### VT-003: Producción + +**Herencia:** 20% del core (projects) +**Propósito:** Gestión de órdenes de producción + +- Órdenes de producción +- Estados: borrador → programado → corte → templado → QC → terminado +- Asignación de recursos +- Tiempos de producción + +### VT-004: Inventario + +**Herencia:** 70% del core (inventory) +**Propósito:** Control de materia prima y producto terminado + +- Láminas de vidrio (materia prima) +- Control de lotes por proveedor +- Producto terminado +- Merma y desperdicio +- Alertas de reorden + +### VT-005: Corte + +**Herencia:** 0% - Módulo nuevo +**Propósito:** Optimización de corte de vidrio + +- Algoritmo de nesting para optimizar cortes +- Planes de corte +- Reducción de desperdicio +- Integración con máquinas CNC (futuro) + +### VT-006: Templado + +**Herencia:** 0% - Módulo nuevo +**Propósito:** Control de hornos de templado + +- Programación de hornos +- Parámetros de templado (temperatura, tiempo, velocidad) +- Registro de ciclos de templado +- Mantenimiento preventivo de hornos + +### VT-007: Calidad + +**Herencia:** 40% del core (system) +**Propósito:** Control de calidad + +- Inspecciones de producto +- Pruebas de fragmentación +- No conformidades +- Certificaciones de producto +- Trazabilidad de defectos + +### VT-008: Despacho + +**Herencia:** 50% del core (inventory, sales) +**Propósito:** Logística de entregas + +- Programación de entregas +- Rutas de entrega +- Confirmación de recepción +- Instalación (opcional) +- Evidencia fotográfica + +--- + +## Dependencias entre Módulos + +``` +VT-001 (Fundamentos) + ↓ +VT-002 (Cotizaciones) ←→ VT-004 (Inventario) + ↓ +VT-003 (Producción) + ↓ +VT-005 (Corte) → VT-006 (Templado) + ↓ + VT-007 (Calidad) + ↓ + VT-008 (Despacho) +``` + +--- + +## Story Points Estimados + +| Módulo | SP Backend | SP Frontend | SP Total | +|--------|-----------|-------------|----------| +| VT-001 | 0 (hereda) | 0 (hereda) | 0 | +| VT-002 | 21 | 13 | 34 | +| VT-003 | 21 | 13 | 34 | +| VT-004 | 13 | 8 | 21 | +| VT-005 | 34 | 13 | 47 | +| VT-006 | 21 | 13 | 34 | +| VT-007 | 13 | 8 | 21 | +| VT-008 | 13 | 8 | 21 | +| **Total** | **136** | **76** | **212** | + +--- + +## Referencias + +- Documentación por módulo: `VT-XXX-nombre/README.md` +- SPECS heredadas: `orchestration/00-guidelines/HERENCIA-SPECS-CORE.md` +- Visión: `00-vision-general/VISION-VIDRIO.md` + +--- + +**Índice de módulos oficial** +**Última actualización:** 2025-12-08 diff --git a/docs/02-definicion-modulos/VT-001-fundamentos/README.md b/docs/02-definicion-modulos/VT-001-fundamentos/README.md new file mode 100644 index 0000000..16fe998 --- /dev/null +++ b/docs/02-definicion-modulos/VT-001-fundamentos/README.md @@ -0,0 +1,21 @@ +# VT-001: Fundamentos + +**Módulo:** Fundamentos +**Herencia:** 100% del ERP Core +**Estado:** PLANIFICADO + +## Descripción +Módulo base que hereda completamente del ERP Core. Proporciona autenticación, gestión de usuarios, roles y multi-tenancy. + +## Componentes Heredados +- MGN-001: Auth (JWT, OAuth2, 2FA) +- MGN-002: Users (CRUD, perfiles) +- MGN-003: Roles (RBAC) +- MGN-004: Tenants (Multi-tenancy, RLS) + +## Configuración Específica +- Roles por defecto: Operador, Supervisor, Gerente, Administrador +- Permisos por módulo de vidrio + +## Referencias +- ERP Core: `apps/erp-core/` diff --git a/docs/02-definicion-modulos/VT-002-cotizaciones/README.md b/docs/02-definicion-modulos/VT-002-cotizaciones/README.md new file mode 100644 index 0000000..d827ed3 --- /dev/null +++ b/docs/02-definicion-modulos/VT-002-cotizaciones/README.md @@ -0,0 +1,26 @@ +# VT-002: Cotizaciones + +**Módulo:** Cotizaciones de Vidrio +**Herencia:** 30% del ERP Core (sales) +**Estado:** PLANIFICADO + +## Descripción +Cotizador especializado para productos de vidrio. Calcula precios por dimensiones, tipo de vidrio, espesor y acabados. + +## Funcionalidades +- Cotización por dimensiones (alto × ancho × espesor) +- Catálogo de tipos de vidrio +- Acabados y procesamientos adicionales +- Cálculo automático de precios por m² +- Generación de PDF +- Conversión a orden de producción + +## Entidades +- `quotes.quotes` - Cotizaciones +- `quotes.quote_lines` - Líneas de cotización +- `quotes.glass_types` - Tipos de vidrio +- `quotes.finishes` - Acabados disponibles + +## SPECS Aplicables +- SPEC-PRICING-RULES +- SPEC-MAIL-THREAD-TRACKING diff --git a/docs/02-definicion-modulos/VT-003-produccion/README.md b/docs/02-definicion-modulos/VT-003-produccion/README.md new file mode 100644 index 0000000..c1134fb --- /dev/null +++ b/docs/02-definicion-modulos/VT-003-produccion/README.md @@ -0,0 +1,33 @@ +# VT-003: Producción + +**Módulo:** Órdenes de Producción +**Herencia:** 20% del ERP Core (projects) +**Estado:** PLANIFICADO + +## Descripción +Gestión de órdenes de producción desde la cotización aprobada hasta el producto terminado. + +## Funcionalidades +- Creación de órdenes desde cotizaciones +- Estados de producción +- Asignación de recursos +- Programación de producción +- Seguimiento de tiempos + +## Estados del Flujo +1. `draft` - Borrador +2. `scheduled` - Programado +3. `cutting` - En corte +4. `tempering` - En templado +5. `quality` - Control de calidad +6. `done` - Terminado +7. `delivered` - Entregado + +## Entidades +- `production.production_orders` - Órdenes de producción +- `production.production_lines` - Líneas de horno +- `production.work_orders` - Órdenes de trabajo + +## SPECS Aplicables +- SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN +- SPEC-TAREAS-RECURRENTES diff --git a/docs/02-definicion-modulos/VT-004-inventario/README.md b/docs/02-definicion-modulos/VT-004-inventario/README.md new file mode 100644 index 0000000..3972aaa --- /dev/null +++ b/docs/02-definicion-modulos/VT-004-inventario/README.md @@ -0,0 +1,27 @@ +# VT-004: Inventario + +**Módulo:** Inventario de Vidrio +**Herencia:** 70% del ERP Core (inventory) +**Estado:** PLANIFICADO + +## Descripción +Control de materia prima (láminas de vidrio) y producto terminado con trazabilidad de lotes. + +## Funcionalidades +- Control de láminas de materia prima +- Trazabilidad de lotes por proveedor +- Producto terminado +- Control de merma y desperdicio +- Alertas de reorden +- Valorización FIFO/AVCO + +## Entidades +- `glass.glass_inventory` - Inventario de vidrio +- `glass.glass_lots` - Lotes de materia prima +- `glass.raw_materials` - Láminas de vidrio +- `glass.finished_products` - Producto terminado + +## SPECS Aplicables +- SPEC-VALORACION-INVENTARIO +- SPEC-TRAZABILIDAD-LOTES-SERIES +- SPEC-INVENTARIOS-CICLICOS (opcional) diff --git a/docs/02-definicion-modulos/VT-005-corte/README.md b/docs/02-definicion-modulos/VT-005-corte/README.md new file mode 100644 index 0000000..a6714bc --- /dev/null +++ b/docs/02-definicion-modulos/VT-005-corte/README.md @@ -0,0 +1,26 @@ +# VT-005: Corte + +**Módulo:** Optimización de Corte +**Herencia:** 0% - Módulo nuevo +**Estado:** PLANIFICADO + +## Descripción +Módulo especializado para optimización de cortes de vidrio (nesting) que minimiza el desperdicio de materia prima. + +## Funcionalidades +- Algoritmo de nesting para optimizar cortes +- Planes de corte por lámina +- Cálculo de desperdicio +- Visualización de patrones de corte +- Integración con CNC (futuro) +- Histórico de eficiencia + +## Entidades +- `cutting.cutting_plans` - Planes de corte +- `cutting.cutting_patterns` - Patrones optimizados +- `cutting.waste_records` - Registro de desperdicio + +## Algoritmos +- First Fit Decreasing (FFD) +- Guillotine cuts +- Optimización por rotación de piezas diff --git a/docs/02-definicion-modulos/VT-006-templado/README.md b/docs/02-definicion-modulos/VT-006-templado/README.md new file mode 100644 index 0000000..a12e964 --- /dev/null +++ b/docs/02-definicion-modulos/VT-006-templado/README.md @@ -0,0 +1,28 @@ +# VT-006: Templado + +**Módulo:** Control de Hornos +**Herencia:** 0% - Módulo nuevo +**Estado:** PLANIFICADO + +## Descripción +Control de hornos de templado con registro de parámetros y ciclos de producción. + +## Funcionalidades +- Programación de hornos +- Registro de parámetros (temperatura, tiempo, velocidad) +- Ciclos de templado por tipo de vidrio +- Registro de logs de producción +- Mantenimiento preventivo +- Alertas de parámetros fuera de rango + +## Entidades +- `tempering.ovens` - Hornos de templado +- `tempering.oven_schedules` - Programación +- `tempering.tempering_cycles` - Ciclos de templado +- `tempering.temperature_logs` - Logs de temperatura +- `tempering.maintenance_records` - Mantenimientos + +## Parámetros de Control +- Temperatura de calentamiento: 620-720°C +- Tiempo en horno: según espesor +- Velocidad de enfriamiento: presión de aire diff --git a/docs/02-definicion-modulos/VT-007-calidad/README.md b/docs/02-definicion-modulos/VT-007-calidad/README.md new file mode 100644 index 0000000..cb69ed4 --- /dev/null +++ b/docs/02-definicion-modulos/VT-007-calidad/README.md @@ -0,0 +1,28 @@ +# VT-007: Calidad + +**Módulo:** Control de Calidad +**Herencia:** 40% del ERP Core (system) +**Estado:** PLANIFICADO + +## Descripción +Control de calidad para producto de vidrio templado, incluyendo inspecciones, pruebas de fragmentación y certificaciones. + +## Funcionalidades +- Inspecciones de producto +- Pruebas de fragmentación (NMX-R-2-1989) +- Registro de no conformidades +- Certificaciones de producto +- Trazabilidad de defectos +- Reportes de calidad + +## Entidades +- `quality.inspections` - Inspecciones +- `quality.fragmentation_tests` - Pruebas de fragmentación +- `quality.non_conformities` - No conformidades +- `quality.certifications` - Certificaciones +- `quality.defect_types` - Tipos de defectos + +## Criterios de Aceptación +- Fragmentación: mín 40 partículas en 5×5cm +- Defectos visuales: según tolerancias +- Dimensiones: ±2mm diff --git a/docs/02-definicion-modulos/VT-008-despacho/README.md b/docs/02-definicion-modulos/VT-008-despacho/README.md new file mode 100644 index 0000000..9199f4d --- /dev/null +++ b/docs/02-definicion-modulos/VT-008-despacho/README.md @@ -0,0 +1,31 @@ +# VT-008: Despacho + +**Módulo:** Despacho y Logística +**Herencia:** 50% del ERP Core (inventory, sales) +**Estado:** PLANIFICADO + +## Descripción +Gestión de entregas de producto terminado, incluyendo rutas, confirmaciones y evidencia. + +## Funcionalidades +- Programación de entregas +- Asignación de rutas +- Confirmación de recepción +- Evidencia fotográfica +- Instalación (opcional) +- Actas de entrega + +## Entidades +- `delivery.deliveries` - Entregas +- `delivery.delivery_lines` - Líneas de entrega +- `delivery.routes` - Rutas +- `delivery.confirmations` - Confirmaciones +- `delivery.installations` - Instalaciones + +## Flujo de Entrega +1. Programación de entrega +2. Asignación de ruta y vehículo +3. Carga de producto +4. Entrega en sitio +5. Confirmación con evidencia +6. Cierre de entrega diff --git a/docs/08-epicas/EPIC-VT-001-fundamentos.md b/docs/08-epicas/EPIC-VT-001-fundamentos.md new file mode 100644 index 0000000..b2700f7 --- /dev/null +++ b/docs/08-epicas/EPIC-VT-001-fundamentos.md @@ -0,0 +1,65 @@ +# Épica: Fundamentos del Sistema + +**Código:** EPIC-VT-001 +**Módulos:** VT-001 a VT-002 +**Estado:** PLANIFICADO + +--- + +## Descripción + +Implementación de los módulos fundacionales del ERP Vidrio Templado, incluyendo la configuración inicial del sistema heredado del core y el módulo de cotizaciones. + +--- + +## Objetivos + +1. Configurar el ambiente de desarrollo heredando del ERP Core +2. Implementar el cotizador de vidrio con cálculo por m² +3. Establecer el catálogo de tipos de vidrio y acabados + +--- + +## Módulos Incluidos + +| Módulo | Descripción | SP Estimados | +|--------|-------------|--------------| +| VT-001 | Fundamentos (hereda core) | 0 | +| VT-002 | Cotizaciones | 34 | + +--- + +## User Stories Principales + +1. Como usuario, quiero iniciar sesión en el sistema de vidrio templado +2. Como vendedor, quiero crear una cotización de vidrio por dimensiones +3. Como vendedor, quiero calcular el precio automático por m² +4. Como vendedor, quiero generar un PDF de cotización para el cliente + +--- + +## Criterios de Aceptación + +- [ ] Sistema de autenticación funcional (heredado) +- [ ] CRUD de cotizaciones implementado +- [ ] Cálculo de precios por dimensiones correcto +- [ ] Generación de PDF funcional +- [ ] Catálogo de tipos de vidrio completo + +--- + +## Dependencias + +- ERP Core instalado y funcional +- Base de datos configurada con schemas heredados + +--- + +## Story Points Totales + +**34 SP** (excluyendo fundamentos heredados) + +--- + +**Épica fundacional** +**Última actualización:** 2025-12-08 diff --git a/docs/08-epicas/EPIC-VT-002-cotizaciones.md b/docs/08-epicas/EPIC-VT-002-cotizaciones.md new file mode 100644 index 0000000..a0c6393 --- /dev/null +++ b/docs/08-epicas/EPIC-VT-002-cotizaciones.md @@ -0,0 +1,198 @@ +# EPICA: EPIC-VT-002 - Cotizaciones + +## Metadata + +| Campo | Valor | +|-------|-------| +| **ID** | EPIC-VT-002 | +| **Nombre** | Cotizaciones | +| **Modulo** | cotizaciones | +| **Fase** | Fase 1 - MVP | +| **Prioridad** | P0 (Critico) | +| **Estado** | Backlog | +| **Story Points** | 34 | +| **Sprint(s)** | Sprint 2-3 | + +--- + +## Descripcion + +Sistema de cotizaciones especializado para productos de vidrio. Permite calcular precios por dimensiones (alto x ancho x espesor), tipo de vidrio, acabados y procesamientos adicionales. Genera PDFs profesionales y permite conversión directa a órdenes de producción. + +--- + +## Objetivo de Negocio + +- Reducir tiempo de cotización de 30 min a 5 min +- Eliminar errores de cálculo manual de áreas +- Estandarizar precios por tipo de vidrio y espesor +- Mejorar presentación profesional con PDFs +- Agilizar conversión de cotización a producción + +--- + +## Historias de Usuario + +| ID | Historia | Prioridad | SP | Estado | +|----|----------|-----------|-----|--------| +| US-VT002-001 | Como vendedor, quiero crear cotización ingresando dimensiones de piezas para calcular automáticamente el área en m² | P0 | 5 | Backlog | +| US-VT002-002 | Como vendedor, quiero seleccionar tipo de vidrio y espesor de un catálogo para aplicar precio correcto | P0 | 3 | Backlog | +| US-VT002-003 | Como vendedor, quiero agregar acabados (sandblast, grabado, bisel) para calcular costo adicional | P0 | 5 | Backlog | +| US-VT002-004 | Como vendedor, quiero ver resumen de cotización con desglose de costos para revisar antes de enviar | P0 | 3 | Backlog | +| US-VT002-005 | Como vendedor, quiero generar PDF de cotización con logo y datos fiscales para enviar al cliente | P0 | 5 | Backlog | +| US-VT002-006 | Como vendedor, quiero enviar cotización por email al cliente para agilizar proceso | P1 | 3 | Backlog | +| US-VT002-007 | Como jefe de ventas, quiero convertir cotización aprobada a orden de producción para iniciar fabricación | P0 | 5 | Backlog | +| US-VT002-008 | Como admin, quiero configurar precios por tipo de vidrio y espesor para mantener lista actualizada | P0 | 3 | Backlog | +| US-VT002-009 | Como admin, quiero definir márgenes de utilidad por cliente para aplicar descuentos automáticos | P2 | 2 | Backlog | + +**Total Story Points:** 34 SP + +--- + +## Flujo de Cotización + +``` +┌─────────────┐ +│ BORRADOR │ ← Se inicia cotización +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ CALCULADA │ ← Áreas y precios calculados +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ ENVIADA │ ← Enviada a cliente +└──────┬──────┘ + │ + ├──────────────┐ + ▼ ▼ +┌─────────────┐ ┌─────────────┐ +│ APROBADA │ │ RECHAZADA │ +└──────┬──────┘ └─────────────┘ + │ + ▼ +┌─────────────┐ +│ CONVERTIDA │ ← Se genera orden de producción +└─────────────┘ +``` + +--- + +## Criterios de Aceptacion de la Epica + +**Funcionales:** +- [ ] Crear cotización con cliente y datos de contacto +- [ ] Agregar líneas con dimensiones (alto × ancho × espesor) +- [ ] Calcular automáticamente área en m² y precio +- [ ] Seleccionar tipo de vidrio de catálogo +- [ ] Agregar acabados con precio adicional +- [ ] Generar PDF profesional +- [ ] Enviar por email +- [ ] Convertir a orden de producción + +**No Funcionales:** +- [ ] Cálculo de precio < 100ms +- [ ] Generación PDF < 3 segundos +- [ ] Soporte para cotizaciones de 50+ líneas + +**Tecnicos:** +- [ ] Integración con catálogo de vidrios +- [ ] Integración con módulo de producción +- [ ] Templates PDF configurables + +--- + +## Dependencias + +**Esta epica depende de:** +| Epica/Modulo | Estado | Bloqueante | +|--------------|--------|------------| +| EPIC-VT-001 Fundamentos | Backlog | Si | + +**Esta epica bloquea:** +| Epica/Modulo | Razon | +|--------------|-------| +| EPIC-VT-003 Produccion | Requiere cotizaciones aprobadas | + +--- + +## Desglose Tecnico + +**Database:** +- [ ] Schema: `quotes` +- [ ] Tablas: 5 (quotes, quote_lines, glass_types, finishes, prices) +- [ ] Funciones: 2 (calculate_area, calculate_total) +- [ ] Indices: Por cliente, fecha, estado + +**Backend:** +- [ ] Modulo: `quotations` +- [ ] Entities: 4 (Quote, QuoteLine, GlassType, Finish) +- [ ] Endpoints: 12 +- [ ] Tests: 25 + +**Frontend:** +- [ ] Paginas: 4 (QuotesList, QuoteCreate, QuoteDetail, QuotePDF) +- [ ] Componentes: 10 (QuoteForm, LineEditor, PriceCalculator, etc.) +- [ ] Stores: 1 (quotesStore) + +--- + +## Endpoints API + +| Metodo | Endpoint | Descripcion | +|--------|----------|-------------| +| POST | /api/quotes | Crear cotización | +| GET | /api/quotes | Listar cotizaciones (paginado) | +| GET | /api/quotes/:id | Detalle de cotización | +| PATCH | /api/quotes/:id | Actualizar cotización | +| POST | /api/quotes/:id/lines | Agregar línea | +| DELETE | /api/quotes/:id/lines/:lineId | Eliminar línea | +| POST | /api/quotes/:id/calculate | Recalcular totales | +| POST | /api/quotes/:id/send | Enviar por email | +| POST | /api/quotes/:id/convert | Convertir a orden | +| GET | /api/quotes/:id/pdf | Generar PDF | + +--- + +## Riesgos + +| Riesgo | Probabilidad | Impacto | Mitigacion | +|--------|--------------|---------|------------| +| Cálculos complejos de acabados | Media | Alto | Catálogo bien definido | +| Precios desactualizados | Media | Medio | Validación al enviar | +| PDFs no profesionales | Baja | Medio | Templates revisados | + +--- + +## Definition of Ready (DoR) + +- [x] Historias de usuario definidas +- [x] Criterios de aceptacion claros +- [x] Dependencias identificadas +- [x] Estimacion completada +- [ ] Catálogo de vidrios definido +- [ ] Template PDF aprobado + +## Definition of Done (DoD) + +- [ ] Flujo completo de cotización funcionando +- [ ] Generación de PDFs correcta +- [ ] Conversión a orden de producción +- [ ] Tests de integración pasando +- [ ] Documentación de API + +--- + +## Historial + +| Fecha | Cambio | Autor | +|-------|--------|-------| +| 2025-12-08 | Creacion de epica | Claude-Agent | + +--- + +**Creada por:** Claude-Agent +**Fecha:** 2025-12-08 +**Ultima actualizacion:** 2025-12-08 diff --git a/docs/08-epicas/EPIC-VT-003-produccion.md b/docs/08-epicas/EPIC-VT-003-produccion.md new file mode 100644 index 0000000..cfc0b89 --- /dev/null +++ b/docs/08-epicas/EPIC-VT-003-produccion.md @@ -0,0 +1,218 @@ +# EPICA: EPIC-VT-003 - Producción + +## Metadata + +| Campo | Valor | +|-------|-------| +| **ID** | EPIC-VT-003 | +| **Nombre** | Producción | +| **Modulo** | produccion | +| **Fase** | Fase 1 - MVP | +| **Prioridad** | P0 (Critico) | +| **Estado** | Backlog | +| **Story Points** | 42 | +| **Sprint(s)** | Sprint 4-5 | + +--- + +## Descripcion + +Gestión completa de órdenes de producción para vidrio templado. Controla el flujo desde la recepción del pedido hasta la entrega del producto terminado, pasando por corte, templado y control de calidad. Incluye planificación de capacidad y seguimiento en tiempo real. + +--- + +## Objetivo de Negocio + +- Control total del proceso productivo +- Reducir tiempos muertos entre etapas +- Trazabilidad completa por lote +- Optimizar uso de hornos de templado +- Minimizar desperdicios de material + +--- + +## Historias de Usuario + +| ID | Historia | Prioridad | SP | Estado | +|----|----------|-----------|-----|--------| +| US-VT003-001 | Como jefe de producción, quiero crear orden de producción desde cotización aprobada para iniciar el proceso | P0 | 5 | Backlog | +| US-VT003-002 | Como jefe de producción, quiero ver tablero de órdenes en proceso para supervisar producción | P0 | 5 | Backlog | +| US-VT003-003 | Como operador de corte, quiero ver mis piezas asignadas del día para planificar trabajo | P0 | 3 | Backlog | +| US-VT003-004 | Como operador de corte, quiero marcar piezas cortadas para avanzar a siguiente etapa | P0 | 3 | Backlog | +| US-VT003-005 | Como operador de horno, quiero ver piezas listas para templado agrupadas por espesor | P0 | 5 | Backlog | +| US-VT003-006 | Como operador de horno, quiero registrar lote de templado con temperatura y tiempo | P0 | 5 | Backlog | +| US-VT003-007 | Como inspector de calidad, quiero registrar resultado de inspección para liberar producto | P0 | 5 | Backlog | +| US-VT003-008 | Como jefe de producción, quiero ver métricas de producción diaria para medir eficiencia | P1 | 5 | Backlog | +| US-VT003-009 | Como jefe de producción, quiero reprogramar orden para ajustar prioridades | P1 | 3 | Backlog | +| US-VT003-010 | Como admin, quiero configurar estaciones de trabajo para asignar órdenes | P2 | 3 | Backlog | + +**Total Story Points:** 42 SP + +--- + +## Flujo de Producción + +``` +┌─────────────┐ +│ PROGRAMADA │ ← Orden creada y programada +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ EN_CORTE │ ← Piezas siendo cortadas +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ CORTADO │ ← Todas las piezas cortadas +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ EN_TEMPLADO │ ← Piezas en horno +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ TEMPLADO │ ← Templado completado +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ EN_QC │ ← Inspección de calidad +└──────┬──────┘ + │ + ├──────────────┐ + ▼ ▼ +┌─────────────┐ ┌─────────────┐ +│ APROBADO │ │ RECHAZADO │ +└──────┬──────┘ └──────┬──────┘ + │ │ + ▼ ▼ +┌─────────────┐ ┌─────────────┐ +│ LISTO_ENVIO │ │ REPROCESO │ +└─────────────┘ └─────────────┘ +``` + +--- + +## Criterios de Aceptacion de la Epica + +**Funcionales:** +- [ ] Crear orden desde cotización aprobada +- [ ] Asignar a línea de producción +- [ ] Registrar avance por etapa (corte, templado, QC) +- [ ] Registrar parámetros de templado (temp, tiempo) +- [ ] Registrar resultados de QC +- [ ] Gestionar reprocesos +- [ ] Dashboard de producción en tiempo real + +**No Funcionales:** +- [ ] Actualización de tablero < 5 segundos +- [ ] Soporte para 100+ órdenes activas +- [ ] Registro de etapas en < 3 clicks + +**Tecnicos:** +- [ ] Integración con módulo de corte (nesting) +- [ ] Integración con módulo de templado (hornos) +- [ ] Integración con módulo de calidad +- [ ] Alertas de órdenes atrasadas + +--- + +## Dependencias + +**Esta epica depende de:** +| Epica/Modulo | Estado | Bloqueante | +|--------------|--------|------------| +| EPIC-VT-001 Fundamentos | Backlog | Si | +| EPIC-VT-002 Cotizaciones | Backlog | Si | +| EPIC-VT-004 Inventario | Backlog | Si | + +**Esta epica bloquea:** +| Epica/Modulo | Razon | +|--------------|-------| +| EPIC-VT-005 Corte | Requiere órdenes de producción | +| EPIC-VT-006 Templado | Requiere órdenes de producción | +| EPIC-VT-007 Calidad | Requiere órdenes de producción | +| EPIC-VT-008 Despacho | Requiere producción completada | + +--- + +## Desglose Tecnico + +**Database:** +- [ ] Schema: `production` +- [ ] Tablas: 8 (production_orders, order_items, stages, stage_logs, workstations, etc.) +- [ ] Funciones: 4 (advance_stage, calculate_times, etc.) +- [ ] Indices: Por orden, fecha, etapa, estación + +**Backend:** +- [ ] Modulo: `production` +- [ ] Entities: 6 (ProductionOrder, OrderItem, Stage, StageLog, Workstation) +- [ ] Endpoints: 18 +- [ ] Tests: 35 + +**Frontend:** +- [ ] Paginas: 5 (ProductionBoard, OrderDetail, StageTracker, Metrics, Config) +- [ ] Componentes: 15 (OrderCard, StageProgress, WorkstationSelector, etc.) +- [ ] Stores: 2 (productionStore, workstationsStore) + +--- + +## Endpoints API + +| Metodo | Endpoint | Descripcion | +|--------|----------|-------------| +| POST | /api/production/orders | Crear orden de producción | +| GET | /api/production/orders | Listar órdenes | +| GET | /api/production/orders/:id | Detalle de orden | +| PATCH | /api/production/orders/:id | Actualizar orden | +| POST | /api/production/orders/:id/advance | Avanzar etapa | +| POST | /api/production/orders/:id/assign | Asignar a estación | +| GET | /api/production/board | Tablero de producción | +| GET | /api/production/metrics | Métricas de producción | +| GET | /api/workstations | Listar estaciones | + +--- + +## Riesgos + +| Riesgo | Probabilidad | Impacto | Mitigacion | +|--------|--------------|---------|------------| +| Cuellos de botella en templado | Alta | Alto | Planificación por capacidad de hornos | +| Pérdida de trazabilidad | Media | Alto | Registro obligatorio por etapa | +| Reprocesos no controlados | Media | Medio | Flujo de reproceso definido | + +--- + +## Definition of Ready (DoR) + +- [x] Historias de usuario definidas +- [x] Criterios de aceptacion claros +- [x] Dependencias identificadas +- [x] Estimacion completada +- [ ] Flujo de etapas aprobado +- [ ] Estaciones de trabajo definidas + +## Definition of Done (DoD) + +- [ ] Flujo completo de producción funcionando +- [ ] Tablero en tiempo real operativo +- [ ] Trazabilidad por lote implementada +- [ ] Tests de integración pasando +- [ ] Documentación de API + +--- + +## Historial + +| Fecha | Cambio | Autor | +|-------|--------|-------| +| 2025-12-08 | Creacion de epica | Claude-Agent | + +--- + +**Creada por:** Claude-Agent +**Fecha:** 2025-12-08 +**Ultima actualizacion:** 2025-12-08 diff --git a/docs/08-epicas/EPIC-VT-004-inventario.md b/docs/08-epicas/EPIC-VT-004-inventario.md new file mode 100644 index 0000000..9c411bc --- /dev/null +++ b/docs/08-epicas/EPIC-VT-004-inventario.md @@ -0,0 +1,188 @@ +# EPICA: EPIC-VT-004 - Inventario + +## Metadata + +| Campo | Valor | +|-------|-------| +| **ID** | EPIC-VT-004 | +| **Nombre** | Inventario | +| **Modulo** | inventario | +| **Fase** | Fase 1 - MVP | +| **Prioridad** | P0 (Critico) | +| **Estado** | Backlog | +| **Story Points** | 38 | +| **Sprint(s)** | Sprint 3-4 | + +--- + +## Descripcion + +Control de inventario especializado para materia prima de vidrio. Gestiona láminas de vidrio por tipo, espesor y dimensiones, incluyendo trazabilidad de lotes y control de desperdicio. Integra con el módulo de corte para optimizar uso de material. + +--- + +## Objetivo de Negocio + +- Control preciso de existencias de vidrio +- Trazabilidad de lotes para garantías +- Minimizar desperdicio de material +- Alertas de reabastecimiento oportunas +- Valorización correcta de inventario + +--- + +## Historias de Usuario + +| ID | Historia | Prioridad | SP | Estado | +|----|----------|-----------|-----|--------| +| US-VT004-001 | Como almacenista, quiero registrar entrada de láminas de vidrio con lote y proveedor | P0 | 5 | Backlog | +| US-VT004-002 | Como almacenista, quiero consultar stock disponible por tipo y espesor de vidrio | P0 | 3 | Backlog | +| US-VT004-003 | Como operador de corte, quiero reservar lámina específica para orden de producción | P0 | 5 | Backlog | +| US-VT004-004 | Como operador de corte, quiero registrar consumo de lámina con desperdicio generado | P0 | 5 | Backlog | +| US-VT004-005 | Como almacenista, quiero ver alertas de stock mínimo para generar pedidos | P0 | 3 | Backlog | +| US-VT004-006 | Como admin, quiero definir stock mínimo por tipo de vidrio para configurar alertas | P0 | 2 | Backlog | +| US-VT004-007 | Como contador, quiero ver valorización de inventario por método PEPS/UEPS | P1 | 5 | Backlog | +| US-VT004-008 | Como almacenista, quiero realizar inventario físico y ajustar diferencias | P1 | 5 | Backlog | +| US-VT004-009 | Como jefe de producción, quiero ver kardex de movimientos por lámina | P1 | 3 | Backlog | +| US-VT004-010 | Como admin, quiero configurar ubicaciones de almacén para localizar material | P2 | 2 | Backlog | + +**Total Story Points:** 38 SP + +--- + +## Tipos de Movimiento + +``` +ENTRADA +├── Compra a proveedor +├── Devolución de producción +└── Ajuste positivo + +SALIDA +├── Consumo en producción +├── Desperdicio +├── Ajuste negativo +└── Baja por rotura + +TRANSFERENCIA +└── Entre ubicaciones +``` + +--- + +## Criterios de Aceptacion de la Epica + +**Funcionales:** +- [ ] Registrar entradas con lote, proveedor, dimensiones +- [ ] Consultar stock por tipo, espesor, ubicación +- [ ] Reservar material para producción +- [ ] Registrar consumos y desperdicios +- [ ] Alertas de stock mínimo +- [ ] Kardex de movimientos +- [ ] Valorización PEPS/UEPS +- [ ] Inventario físico con ajustes + +**No Funcionales:** +- [ ] Consulta de stock < 500ms +- [ ] Soporte para 1000+ láminas +- [ ] Historial de 2 años de movimientos + +**Tecnicos:** +- [ ] Integración con módulo de corte +- [ ] Integración con módulo de compras +- [ ] Reportes de inventario + +--- + +## Dependencias + +**Esta epica depende de:** +| Epica/Modulo | Estado | Bloqueante | +|--------------|--------|------------| +| EPIC-VT-001 Fundamentos | Backlog | Si | + +**Esta epica bloquea:** +| Epica/Modulo | Razon | +|--------------|-------| +| EPIC-VT-003 Produccion | Requiere material disponible | +| EPIC-VT-005 Corte | Requiere láminas para cortar | + +--- + +## Desglose Tecnico + +**Database:** +- [ ] Schema: `inventory` +- [ ] Tablas: 7 (glass_sheets, stock_movements, lots, locations, reservations, etc.) +- [ ] Funciones: 3 (update_stock, calculate_value, reserve_sheet) +- [ ] Indices: Por tipo, espesor, ubicación, lote + +**Backend:** +- [ ] Modulo: `inventory` +- [ ] Entities: 5 (GlassSheet, StockMovement, Lot, Location, Reservation) +- [ ] Endpoints: 15 +- [ ] Tests: 30 + +**Frontend:** +- [ ] Paginas: 5 (StockList, SheetDetail, Movements, PhysicalCount, Reports) +- [ ] Componentes: 12 (StockCard, MovementForm, ReservationModal, etc.) +- [ ] Stores: 1 (inventoryStore) + +--- + +## Endpoints API + +| Metodo | Endpoint | Descripcion | +|--------|----------|-------------| +| GET | /api/inventory/stock | Consultar stock | +| POST | /api/inventory/entries | Registrar entrada | +| POST | /api/inventory/exits | Registrar salida | +| POST | /api/inventory/reservations | Crear reservación | +| DELETE | /api/inventory/reservations/:id | Cancelar reservación | +| GET | /api/inventory/kardex/:sheetId | Kardex de lámina | +| GET | /api/inventory/valuation | Valorización | +| POST | /api/inventory/physical-count | Inventario físico | +| GET | /api/inventory/alerts | Alertas de stock | + +--- + +## Riesgos + +| Riesgo | Probabilidad | Impacto | Mitigacion | +|--------|--------------|---------|------------| +| Discrepancias de inventario | Alta | Alto | Inventarios frecuentes | +| Lotes no trazables | Media | Alto | Registro obligatorio de lote | +| Desperdicio no registrado | Media | Medio | Validación en corte | + +--- + +## Definition of Ready (DoR) + +- [x] Historias de usuario definidas +- [x] Criterios de aceptacion claros +- [x] Dependencias identificadas +- [x] Estimacion completada +- [ ] Catálogo de tipos de vidrio definido +- [ ] Ubicaciones de almacén mapeadas + +## Definition of Done (DoD) + +- [ ] Entradas y salidas funcionando +- [ ] Kardex completo por lámina +- [ ] Alertas de stock operativas +- [ ] Tests de integración pasando +- [ ] Documentación de API + +--- + +## Historial + +| Fecha | Cambio | Autor | +|-------|--------|-------| +| 2025-12-08 | Creacion de epica | Claude-Agent | + +--- + +**Creada por:** Claude-Agent +**Fecha:** 2025-12-08 +**Ultima actualizacion:** 2025-12-08 diff --git a/docs/08-epicas/EPIC-VT-005-corte.md b/docs/08-epicas/EPIC-VT-005-corte.md new file mode 100644 index 0000000..8ba5972 --- /dev/null +++ b/docs/08-epicas/EPIC-VT-005-corte.md @@ -0,0 +1,210 @@ +# EPICA: EPIC-VT-005 - Corte (Nesting) + +## Metadata + +| Campo | Valor | +|-------|-------| +| **ID** | EPIC-VT-005 | +| **Nombre** | Corte (Nesting) | +| **Modulo** | corte | +| **Fase** | Fase 1 - MVP | +| **Prioridad** | P0 (Critico) | +| **Estado** | Backlog | +| **Story Points** | 45 | +| **Sprint(s)** | Sprint 5-6 | + +--- + +## Descripcion + +Módulo 100% nuevo especializado en optimización de corte de vidrio. Implementa algoritmos de nesting para maximizar aprovechamiento de láminas, minimizando desperdicio. Incluye visualización gráfica del plan de corte y gestión de retazos aprovechables. + +--- + +## Objetivo de Negocio + +- Reducir desperdicio de material en 20-30% +- Optimizar uso de láminas completas +- Aprovechar retazos para piezas pequeñas +- Reducir tiempo de planificación de corte +- Trazabilidad de material por pieza + +--- + +## Historias de Usuario + +| ID | Historia | Prioridad | SP | Estado | +|----|----------|-----------|-----|--------| +| US-VT005-001 | Como planificador, quiero generar plan de corte automático que minimice desperdicio | P0 | 13 | Backlog | +| US-VT005-002 | Como planificador, quiero visualizar gráficamente el plan de corte para validarlo | P0 | 8 | Backlog | +| US-VT005-003 | Como planificador, quiero ajustar manualmente posición de piezas en lámina para optimizar | P1 | 5 | Backlog | +| US-VT005-004 | Como operador de corte, quiero ver plan de corte en pantalla junto a mesa para ejecutar | P0 | 3 | Backlog | +| US-VT005-005 | Como operador de corte, quiero marcar piezas cortadas para registrar avance | P0 | 3 | Backlog | +| US-VT005-006 | Como almacenista, quiero registrar retazos aprovechables para reutilizar | P0 | 3 | Backlog | +| US-VT005-007 | Como planificador, quiero incluir retazos disponibles en plan de corte para aprovecharlos | P1 | 5 | Backlog | +| US-VT005-008 | Como jefe de producción, quiero ver métricas de desperdicio por lámina para medir eficiencia | P1 | 3 | Backlog | +| US-VT005-009 | Como admin, quiero configurar margen de corte (kerf) por tipo de máquina | P2 | 2 | Backlog | + +**Total Story Points:** 45 SP + +--- + +## Algoritmo de Nesting + +``` +┌─────────────────────────────────────────────────┐ +│ LÁMINA 2440 x 1830 mm │ +│ ┌──────────────┐ ┌──────────────┐ ┌────────┐ │ +│ │ │ │ │ │ │ │ +│ │ Pieza 1 │ │ Pieza 2 │ │ P3 │ │ +│ │ 800x600 │ │ 700x500 │ │ 400x │ │ +│ │ │ │ │ │ 500 │ │ +│ └──────────────┘ └──────────────┘ └────────┘ │ +│ ┌──────────────┐ ┌─────────┐ ┌──────────────┐ │ +│ │ │ │ │ │ │ │ +│ │ Pieza 4 │ │ P5 │ │ RETAZO │ │ +│ │ 600x400 │ │ 300x │ │ Aprovechable│ │ +│ │ │ │ 400 │ │ │ │ +│ └──────────────┘ └─────────┘ └──────────────┘ │ +│ ┌────────────────────────────────────────────┐ │ +│ │ DESPERDICIO (no aprovechable) │ │ +│ └────────────────────────────────────────────┘ │ +└─────────────────────────────────────────────────┘ + +Aprovechamiento: 87% +Retazo: 8% +Desperdicio: 5% +``` + +--- + +## Criterios de Aceptacion de la Epica + +**Funcionales:** +- [ ] Generar plan de corte automático (algoritmo bin packing) +- [ ] Visualización gráfica del plan de corte +- [ ] Edición manual de posiciones +- [ ] Considerar margen de corte (kerf) +- [ ] Registro de retazos aprovechables +- [ ] Inclusión de retazos en planes +- [ ] Métricas de aprovechamiento + +**No Funcionales:** +- [ ] Generación de plan < 10 segundos para 50 piezas +- [ ] Aprovechamiento mínimo 80% +- [ ] Visualización responsive para pantallas de planta + +**Tecnicos:** +- [ ] Algoritmo de nesting (bin packing 2D) +- [ ] Integración con inventario +- [ ] Integración con producción +- [ ] Canvas/SVG para visualización + +--- + +## Dependencias + +**Esta epica depende de:** +| Epica/Modulo | Estado | Bloqueante | +|--------------|--------|------------| +| EPIC-VT-001 Fundamentos | Backlog | Si | +| EPIC-VT-003 Produccion | Backlog | Si | +| EPIC-VT-004 Inventario | Backlog | Si | + +**Esta epica bloquea:** +| Epica/Modulo | Razon | +|--------------|-------| +| EPIC-VT-006 Templado | Requiere piezas cortadas | + +--- + +## Desglose Tecnico + +**Database:** +- [ ] Schema: `cutting` +- [ ] Tablas: 5 (cutting_plans, plan_pieces, remnants, machines, cut_logs) +- [ ] Funciones: 2 (calculate_waste, register_remnant) +- [ ] Indices: Por lámina, orden, estado + +**Backend:** +- [ ] Modulo: `cutting` +- [ ] Entities: 4 (CuttingPlan, PlanPiece, Remnant, CutLog) +- [ ] Services: NestingService (algoritmo) +- [ ] Endpoints: 12 +- [ ] Tests: 25 + +**Frontend:** +- [ ] Paginas: 3 (CuttingPlans, PlanViewer, Remnants) +- [ ] Componentes: 10 (CuttingCanvas, PieceEditor, WasteMetrics, etc.) +- [ ] Stores: 1 (cuttingStore) + +--- + +## Endpoints API + +| Metodo | Endpoint | Descripcion | +|--------|----------|-------------| +| POST | /api/cutting/plans | Crear plan de corte | +| GET | /api/cutting/plans/:id | Ver plan de corte | +| POST | /api/cutting/plans/:id/optimize | Ejecutar nesting | +| PATCH | /api/cutting/plans/:id/pieces | Ajustar posiciones | +| POST | /api/cutting/plans/:id/execute | Ejecutar corte | +| POST | /api/cutting/plans/:id/pieces/:pieceId/cut | Marcar pieza cortada | +| GET | /api/cutting/remnants | Listar retazos | +| POST | /api/cutting/remnants | Registrar retazo | +| GET | /api/cutting/metrics | Métricas de desperdicio | + +--- + +## Riesgos + +| Riesgo | Probabilidad | Impacto | Mitigacion | +|--------|--------------|---------|------------| +| Algoritmo no óptimo | Media | Alto | Benchmarks vs soluciones comerciales | +| Rotación incorrecta de piezas | Media | Medio | Considerar dirección del vidrio | +| Retazos no aprovechados | Alta | Medio | Alertas de retazos disponibles | + +--- + +## Nota Técnica + +Este módulo es **100% nuevo** y no tiene equivalente en el ERP-Core. El algoritmo de nesting es específico para la industria del vidrio y debe considerar: + +- Dirección del vidrio (no todas las piezas pueden rotar) +- Margen de corte (kerf) variable por máquina +- Dimensiones máximas de láminas estándar +- Retazos mínimos aprovechables + +--- + +## Definition of Ready (DoR) + +- [x] Historias de usuario definidas +- [x] Criterios de aceptacion claros +- [x] Dependencias identificadas +- [x] Estimacion completada +- [ ] Investigación de algoritmos de nesting +- [ ] Definición de tamaño mínimo de retazo + +## Definition of Done (DoD) + +- [ ] Algoritmo de nesting funcionando +- [ ] Visualización gráfica de planes +- [ ] Registro de retazos operativo +- [ ] Métricas de aprovechamiento +- [ ] Tests de algoritmo +- [ ] Documentación de API + +--- + +## Historial + +| Fecha | Cambio | Autor | +|-------|--------|-------| +| 2025-12-08 | Creacion de epica | Claude-Agent | + +--- + +**Creada por:** Claude-Agent +**Fecha:** 2025-12-08 +**Ultima actualizacion:** 2025-12-08 diff --git a/docs/08-epicas/EPIC-VT-006-templado.md b/docs/08-epicas/EPIC-VT-006-templado.md new file mode 100644 index 0000000..dbac4c4 --- /dev/null +++ b/docs/08-epicas/EPIC-VT-006-templado.md @@ -0,0 +1,249 @@ +# EPICA: EPIC-VT-006 - Templado (Control de Hornos) + +## Metadata + +| Campo | Valor | +|-------|-------| +| **ID** | EPIC-VT-006 | +| **Nombre** | Templado (Control de Hornos) | +| **Modulo** | templado | +| **Fase** | Fase 1 - MVP | +| **Prioridad** | P0 (Critico) | +| **Estado** | Backlog | +| **Story Points** | 40 | +| **Sprint(s)** | Sprint 6-7 | + +--- + +## Descripcion + +Módulo 100% nuevo para control del proceso de templado de vidrio. Gestiona hornos de templado, registra parámetros críticos (temperatura, tiempo, presión de aire), agrupa piezas por espesor para optimizar cargas y mantiene historial para trazabilidad de calidad. + +--- + +## Objetivo de Negocio + +- Control preciso del proceso de templado +- Trazabilidad de parámetros por lote +- Optimizar cargas de horno por espesor +- Reducir rechazos por mal templado +- Cumplimiento de normas de calidad + +--- + +## Historias de Usuario + +| ID | Historia | Prioridad | SP | Estado | +|----|----------|-----------|-----|--------| +| US-VT006-001 | Como operador de horno, quiero ver piezas cortadas agrupadas por espesor para planificar carga | P0 | 5 | Backlog | +| US-VT006-002 | Como operador de horno, quiero crear lote de templado seleccionando piezas compatibles | P0 | 5 | Backlog | +| US-VT006-003 | Como operador de horno, quiero registrar parámetros de templado (temp, tiempo, presión) | P0 | 5 | Backlog | +| US-VT006-004 | Como operador de horno, quiero ver receta recomendada según espesor del vidrio | P0 | 3 | Backlog | +| US-VT006-005 | Como operador de horno, quiero marcar lote como templado para avanzar a QC | P0 | 3 | Backlog | +| US-VT006-006 | Como jefe de producción, quiero ver estado de hornos en tiempo real | P0 | 5 | Backlog | +| US-VT006-007 | Como jefe de producción, quiero ver métricas de uso de hornos para medir eficiencia | P1 | 5 | Backlog | +| US-VT006-008 | Como admin, quiero configurar hornos disponibles con sus capacidades | P0 | 3 | Backlog | +| US-VT006-009 | Como admin, quiero definir recetas de templado por espesor de vidrio | P0 | 3 | Backlog | +| US-VT006-010 | Como mantenimiento, quiero registrar mantenimientos de horno para historial | P2 | 3 | Backlog | + +**Total Story Points:** 40 SP + +--- + +## Proceso de Templado + +``` +┌─────────────────────────────────────────────────────────┐ +│ HORNO DE TEMPLADO │ +├─────────────────────────────────────────────────────────┤ +│ │ +│ ZONA DE CALENTAMIENTO ZONA DE ENFRIAMIENTO │ +│ ┌─────────────────────┐ ┌─────────────────────┐ │ +│ │ │ │ │ │ +│ │ 680-720°C │ ───► │ Aire a presión │ │ +│ │ (según espesor) │ │ (quenching) │ │ +│ │ │ │ │ │ +│ └─────────────────────┘ └─────────────────────┘ │ +│ │ +│ Tiempo: 40-120 seg Presión: 3-5 bar │ +│ (según espesor) (según espesor) │ +│ │ +└─────────────────────────────────────────────────────────┘ + +Recetas por espesor: +- 4mm: 680°C, 40 seg, 3.5 bar +- 6mm: 690°C, 60 seg, 4.0 bar +- 8mm: 700°C, 80 seg, 4.5 bar +- 10mm: 710°C, 100 seg, 5.0 bar +- 12mm: 720°C, 120 seg, 5.0 bar +``` + +--- + +## Estados de Lote de Templado + +``` +┌─────────────┐ +│ PREPARANDO │ ← Seleccionando piezas +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ CARGANDO │ ← Piezas entrando al horno +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ EN_PROCESO │ ← Templado en curso +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ ENFRIANDO │ ← Quenching activo +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ DESCARGANDO │ ← Retirando piezas +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ COMPLETADO │ ← Listo para QC +└─────────────┘ +``` + +--- + +## Criterios de Aceptacion de la Epica + +**Funcionales:** +- [ ] Ver piezas pendientes agrupadas por espesor +- [ ] Crear lote de templado con piezas seleccionadas +- [ ] Registrar parámetros reales (temp, tiempo, presión) +- [ ] Ver receta recomendada según espesor +- [ ] Dashboard de hornos en tiempo real +- [ ] Métricas de uso y eficiencia +- [ ] Configuración de hornos y recetas + +**No Funcionales:** +- [ ] Actualización de estado < 5 segundos +- [ ] Historial de 1 año de lotes +- [ ] Soporte para 5+ hornos simultáneos + +**Tecnicos:** +- [ ] Integración con módulo de producción +- [ ] Integración con módulo de calidad +- [ ] Alertas de desviación de parámetros +- [ ] Opcional: IoT para lectura automática + +--- + +## Dependencias + +**Esta epica depende de:** +| Epica/Modulo | Estado | Bloqueante | +|--------------|--------|------------| +| EPIC-VT-001 Fundamentos | Backlog | Si | +| EPIC-VT-003 Produccion | Backlog | Si | +| EPIC-VT-005 Corte | Backlog | Si | + +**Esta epica bloquea:** +| Epica/Modulo | Razon | +|--------------|-------| +| EPIC-VT-007 Calidad | Requiere piezas templadas | + +--- + +## Desglose Tecnico + +**Database:** +- [ ] Schema: `tempering` +- [ ] Tablas: 6 (ovens, tempering_batches, batch_pieces, recipes, parameters_log, maintenance) +- [ ] Funciones: 2 (validate_parameters, calculate_efficiency) +- [ ] Indices: Por horno, lote, fecha, estado + +**Backend:** +- [ ] Modulo: `tempering` +- [ ] Entities: 5 (Oven, TemperingBatch, BatchPiece, Recipe, ParametersLog) +- [ ] Endpoints: 14 +- [ ] Tests: 28 + +**Frontend:** +- [ ] Paginas: 4 (OvensDashboard, BatchCreate, BatchDetail, OvenConfig) +- [ ] Componentes: 12 (OvenStatus, BatchForm, ParametersInput, RecipeCard, etc.) +- [ ] Stores: 1 (temperingStore) + +--- + +## Endpoints API + +| Metodo | Endpoint | Descripcion | +|--------|----------|-------------| +| GET | /api/tempering/ovens | Listar hornos | +| GET | /api/tempering/ovens/:id | Estado de horno | +| POST | /api/tempering/batches | Crear lote | +| GET | /api/tempering/batches/:id | Detalle de lote | +| POST | /api/tempering/batches/:id/start | Iniciar templado | +| POST | /api/tempering/batches/:id/parameters | Registrar parámetros | +| POST | /api/tempering/batches/:id/complete | Completar templado | +| GET | /api/tempering/recipes | Listar recetas | +| POST | /api/tempering/recipes | Crear receta | +| GET | /api/tempering/metrics | Métricas de hornos | +| GET | /api/tempering/pending | Piezas pendientes de templar | + +--- + +## Riesgos + +| Riesgo | Probabilidad | Impacto | Mitigacion | +|--------|--------------|---------|------------| +| Parámetros fuera de rango | Media | Alto | Alertas en tiempo real | +| Mezcla de espesores | Baja | Alto | Validación al crear lote | +| Horno sobrecargado | Media | Medio | Límite de capacidad por horno | + +--- + +## Nota Técnica + +Este módulo es **100% nuevo** y no tiene equivalente en el ERP-Core. Es específico para la industria del vidrio templado y debe considerar: + +- Recetas de templado específicas por espesor +- No mezclar espesores en un mismo lote +- Parámetros críticos: temperatura, tiempo, presión de quenching +- Trazabilidad para certificaciones de calidad +- Potencial integración IoT con sensores del horno + +--- + +## Definition of Ready (DoR) + +- [x] Historias de usuario definidas +- [x] Criterios de aceptacion claros +- [x] Dependencias identificadas +- [x] Estimacion completada +- [ ] Recetas de templado validadas con producción +- [ ] Hornos y capacidades documentados + +## Definition of Done (DoD) + +- [ ] Gestión de lotes funcionando +- [ ] Registro de parámetros operativo +- [ ] Dashboard de hornos en tiempo real +- [ ] Recetas configurables +- [ ] Tests de integración pasando +- [ ] Documentación de API + +--- + +## Historial + +| Fecha | Cambio | Autor | +|-------|--------|-------| +| 2025-12-08 | Creacion de epica | Claude-Agent | + +--- + +**Creada por:** Claude-Agent +**Fecha:** 2025-12-08 +**Ultima actualizacion:** 2025-12-08 diff --git a/docs/08-epicas/EPIC-VT-007-calidad.md b/docs/08-epicas/EPIC-VT-007-calidad.md new file mode 100644 index 0000000..560db01 --- /dev/null +++ b/docs/08-epicas/EPIC-VT-007-calidad.md @@ -0,0 +1,227 @@ +# EPICA: EPIC-VT-007 - Calidad (QC) + +## Metadata + +| Campo | Valor | +|-------|-------| +| **ID** | EPIC-VT-007 | +| **Nombre** | Calidad (QC) | +| **Modulo** | calidad | +| **Fase** | Fase 1 - MVP | +| **Prioridad** | P0 (Critico) | +| **Estado** | Backlog | +| **Story Points** | 32 | +| **Sprint(s)** | Sprint 7-8 | + +--- + +## Descripcion + +Control de calidad especializado para vidrio templado. Incluye inspección visual, pruebas de fragmentación, medición de tensión superficial y generación de certificados de calidad. Gestiona rechazos y reprocesos con trazabilidad completa. + +--- + +## Objetivo de Negocio + +- Garantizar calidad del producto +- Cumplir normativas de seguridad (NOM, ASTM, EN) +- Reducir rechazos y devoluciones +- Trazabilidad para garantías +- Certificación de lotes + +--- + +## Historias de Usuario + +| ID | Historia | Prioridad | SP | Estado | +|----|----------|-----------|-----|--------| +| US-VT007-001 | Como inspector, quiero ver piezas templadas pendientes de inspección para planificar trabajo | P0 | 3 | Backlog | +| US-VT007-002 | Como inspector, quiero registrar inspección visual con lista de defectos para documentar | P0 | 5 | Backlog | +| US-VT007-003 | Como inspector, quiero registrar resultado de prueba de fragmentación para certificar templado | P0 | 5 | Backlog | +| US-VT007-004 | Como inspector, quiero adjuntar fotos de defectos para evidencia | P0 | 3 | Backlog | +| US-VT007-005 | Como inspector, quiero aprobar o rechazar pieza para liberar a despacho o reproceso | P0 | 3 | Backlog | +| US-VT007-006 | Como jefe de calidad, quiero generar certificado de calidad por lote para entregar al cliente | P0 | 5 | Backlog | +| US-VT007-007 | Como jefe de calidad, quiero ver métricas de rechazos para identificar problemas | P1 | 3 | Backlog | +| US-VT007-008 | Como jefe de producción, quiero ver piezas rechazadas para programar reproceso | P1 | 3 | Backlog | +| US-VT007-009 | Como admin, quiero configurar tipos de defectos y criterios de aceptación | P2 | 2 | Backlog | + +**Total Story Points:** 32 SP + +--- + +## Pruebas de Calidad + +``` +┌─────────────────────────────────────────────────────────┐ +│ INSPECCIÓN DE VIDRIO TEMPLADO │ +├─────────────────────────────────────────────────────────┤ +│ │ +│ 1. INSPECCIÓN VISUAL │ +│ ├── Rayaduras │ +│ ├── Burbujas │ +│ ├── Manchas │ +│ ├── Ondulaciones │ +│ └── Dimensiones correctas │ +│ │ +│ 2. PRUEBA DE FRAGMENTACIÓN (destructiva - muestreo) │ +│ ├── Mínimo 40 fragmentos por 50mm² │ +│ ├── Sin fragmentos mayores a 100mm² │ +│ └── Patrón uniforme │ +│ │ +│ 3. MEDICIÓN DE TENSIÓN (opcional - no destructiva) │ +│ ├── Tensión superficial: 95-120 MPa │ +│ └── Tensión central: < 7 MPa │ +│ │ +└─────────────────────────────────────────────────────────┘ + +Resultado: APROBADO / RECHAZADO / REPROCESO +``` + +--- + +## Flujo de Inspección + +``` +┌─────────────┐ +│ PENDIENTE │ ← Pieza llega de templado +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ EN_INSPECC │ ← Inspector revisando +└──────┬──────┘ + │ + ├────────────────┬────────────────┐ + ▼ ▼ ▼ +┌─────────────┐ ┌─────────────┐ ┌─────────────┐ +│ APROBADA │ │ RECHAZADA │ │ REPROCESO │ +└──────┬──────┘ └──────┬──────┘ └──────┬──────┘ + │ │ │ + ▼ ▼ ▼ +┌─────────────┐ ┌─────────────┐ ┌─────────────┐ +│ A_DESPACHO │ │ BAJA │ │ A_CORTE │ +└─────────────┘ └─────────────┘ └─────────────┘ +``` + +--- + +## Criterios de Aceptacion de la Epica + +**Funcionales:** +- [ ] Ver piezas pendientes de inspección +- [ ] Registrar inspección visual con checklist de defectos +- [ ] Registrar prueba de fragmentación +- [ ] Adjuntar fotos de evidencia +- [ ] Aprobar/rechazar con motivo +- [ ] Generar certificado de calidad PDF +- [ ] Métricas de rechazos por tipo de defecto +- [ ] Gestión de reprocesos + +**No Funcionales:** +- [ ] Registro de inspección < 2 minutos +- [ ] Generación de certificado < 5 segundos +- [ ] Historial de 2 años de inspecciones + +**Tecnicos:** +- [ ] Integración con módulo de templado +- [ ] Integración con módulo de despacho +- [ ] Almacenamiento de fotos +- [ ] Templates de certificados configurables + +--- + +## Dependencias + +**Esta epica depende de:** +| Epica/Modulo | Estado | Bloqueante | +|--------------|--------|------------| +| EPIC-VT-001 Fundamentos | Backlog | Si | +| EPIC-VT-003 Produccion | Backlog | Si | +| EPIC-VT-006 Templado | Backlog | Si | + +**Esta epica bloquea:** +| Epica/Modulo | Razon | +|--------------|-------| +| EPIC-VT-008 Despacho | Requiere piezas aprobadas | + +--- + +## Desglose Tecnico + +**Database:** +- [ ] Schema: `quality` +- [ ] Tablas: 6 (inspections, inspection_defects, fragmentation_tests, certificates, defect_types, photos) +- [ ] Funciones: 2 (generate_certificate_number, calculate_rejection_rate) +- [ ] Indices: Por pieza, lote, fecha, resultado + +**Backend:** +- [ ] Modulo: `quality` +- [ ] Entities: 5 (Inspection, InspectionDefect, FragmentationTest, Certificate, DefectType) +- [ ] Endpoints: 12 +- [ ] Tests: 24 + +**Frontend:** +- [ ] Paginas: 4 (InspectionQueue, InspectionForm, Certificates, Metrics) +- [ ] Componentes: 10 (DefectChecklist, PhotoUploader, CertificateViewer, etc.) +- [ ] Stores: 1 (qualityStore) + +--- + +## Endpoints API + +| Metodo | Endpoint | Descripcion | +|--------|----------|-------------| +| GET | /api/quality/pending | Piezas pendientes de inspección | +| POST | /api/quality/inspections | Crear inspección | +| GET | /api/quality/inspections/:id | Detalle de inspección | +| POST | /api/quality/inspections/:id/defects | Agregar defecto | +| POST | /api/quality/inspections/:id/photos | Subir foto | +| POST | /api/quality/inspections/:id/approve | Aprobar pieza | +| POST | /api/quality/inspections/:id/reject | Rechazar pieza | +| POST | /api/quality/certificates | Generar certificado | +| GET | /api/quality/certificates/:id/pdf | Descargar certificado PDF | +| GET | /api/quality/metrics | Métricas de calidad | + +--- + +## Riesgos + +| Riesgo | Probabilidad | Impacto | Mitigacion | +|--------|--------------|---------|------------| +| Inspección superficial | Media | Alto | Checklist obligatorio | +| Pérdida de trazabilidad | Baja | Alto | Registro por pieza individual | +| Certificados incorrectos | Baja | Alto | Validación de datos antes de generar | + +--- + +## Definition of Ready (DoR) + +- [x] Historias de usuario definidas +- [x] Criterios de aceptacion claros +- [x] Dependencias identificadas +- [x] Estimacion completada +- [ ] Tipos de defectos definidos +- [ ] Template de certificado aprobado + +## Definition of Done (DoD) + +- [ ] Flujo de inspección funcionando +- [ ] Generación de certificados operativa +- [ ] Fotos de evidencia almacenadas +- [ ] Métricas de rechazos disponibles +- [ ] Tests de integración pasando +- [ ] Documentación de API + +--- + +## Historial + +| Fecha | Cambio | Autor | +|-------|--------|-------| +| 2025-12-08 | Creacion de epica | Claude-Agent | + +--- + +**Creada por:** Claude-Agent +**Fecha:** 2025-12-08 +**Ultima actualizacion:** 2025-12-08 diff --git a/docs/08-epicas/EPIC-VT-008-despacho.md b/docs/08-epicas/EPIC-VT-008-despacho.md new file mode 100644 index 0000000..8414be4 --- /dev/null +++ b/docs/08-epicas/EPIC-VT-008-despacho.md @@ -0,0 +1,233 @@ +# EPICA: EPIC-VT-008 - Despacho + +## Metadata + +| Campo | Valor | +|-------|-------| +| **ID** | EPIC-VT-008 | +| **Nombre** | Despacho | +| **Modulo** | despacho | +| **Fase** | Fase 1 - MVP | +| **Prioridad** | P0 (Critico) | +| **Estado** | Backlog | +| **Story Points** | 28 | +| **Sprint(s)** | Sprint 8-9 | + +--- + +## Descripcion + +Gestión de entregas y logística de vidrio templado. Controla la preparación de pedidos, embalaje especial para vidrio, programación de rutas de entrega y confirmación de entregas. Incluye generación de remisiones y control de transportistas. + +--- + +## Objetivo de Negocio + +- Entregas puntuales y sin daños +- Optimizar rutas de entrega +- Reducir costos de transporte +- Trazabilidad de entregas +- Control de devoluciones por daño + +--- + +## Historias de Usuario + +| ID | Historia | Prioridad | SP | Estado | +|----|----------|-----------|-----|--------| +| US-VT008-001 | Como despachador, quiero ver órdenes listas para despacho para preparar envíos | P0 | 3 | Backlog | +| US-VT008-002 | Como despachador, quiero agrupar pedidos por zona geográfica para optimizar rutas | P0 | 5 | Backlog | +| US-VT008-003 | Como despachador, quiero generar remisión de entrega para documentar envío | P0 | 3 | Backlog | +| US-VT008-004 | Como despachador, quiero registrar tipo de embalaje usado para cada pieza | P0 | 2 | Backlog | +| US-VT008-005 | Como transportista, quiero ver mi ruta del día con direcciones y pedidos | P0 | 5 | Backlog | +| US-VT008-006 | Como transportista, quiero confirmar entrega con firma digital del cliente | P0 | 5 | Backlog | +| US-VT008-007 | Como cliente, quiero recibir notificación cuando mi pedido salga a entrega | P1 | 2 | Backlog | +| US-VT008-008 | Como jefe de logística, quiero ver métricas de entregas a tiempo | P1 | 3 | Backlog | + +**Total Story Points:** 28 SP + +--- + +## Proceso de Despacho + +``` +┌─────────────┐ +│ LISTO_ENVIO │ ← Piezas aprobadas por QC +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ EMBALANDO │ ← Preparando embalaje especial +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ PROGRAMADO │ ← Asignado a ruta y transportista +└──────┬──────┘ + │ + ▼ +┌─────────────┐ +│ EN_RUTA │ ← Transportista en camino +└──────┬──────┘ + │ + ├────────────────┐ + ▼ ▼ +┌─────────────┐ ┌─────────────┐ +│ ENTREGADO │ │ RECHAZADO │ +└──────┬──────┘ └──────┬──────┘ + │ │ + ▼ ▼ +┌─────────────┐ ┌─────────────┐ +│ FACTURAR │ │ INVESTIGAR │ +└─────────────┘ └─────────────┘ +``` + +--- + +## Embalaje de Vidrio + +``` +┌─────────────────────────────────────────────────────────┐ +│ TIPOS DE EMBALAJE PARA VIDRIO │ +├─────────────────────────────────────────────────────────┤ +│ │ +│ CABALLETE (A-Frame) │ +│ ├── Para piezas grandes (> 1m²) │ +│ ├── Inclinación 5-10° │ +│ └── Separadores de corcho/foam │ +│ │ +│ CAJA DE MADERA │ +│ ├── Para piezas medianas │ +│ ├── Espuma perimetral │ +│ └── Esquineros de cartón │ +│ │ +│ SOBRE DE CARTÓN │ +│ ├── Para piezas pequeñas (< 0.5m²) │ +│ └── Espuma interior │ +│ │ +└─────────────────────────────────────────────────────────┘ +``` + +--- + +## Criterios de Aceptacion de la Epica + +**Funcionales:** +- [ ] Ver pedidos listos para despacho +- [ ] Agrupar por zona geográfica +- [ ] Asignar a transportista +- [ ] Generar remisión PDF +- [ ] Registrar tipo de embalaje +- [ ] Confirmar entrega con firma +- [ ] Notificaciones a cliente +- [ ] Métricas de entregas + +**No Funcionales:** +- [ ] Generación de remisión < 3 segundos +- [ ] App móvil para transportistas +- [ ] Funcionamiento offline para confirmación + +**Tecnicos:** +- [ ] Integración con módulo de calidad +- [ ] Integración con facturación +- [ ] Firma digital en dispositivo móvil +- [ ] Geolocalización de entregas + +--- + +## Dependencias + +**Esta epica depende de:** +| Epica/Modulo | Estado | Bloqueante | +|--------------|--------|------------| +| EPIC-VT-001 Fundamentos | Backlog | Si | +| EPIC-VT-003 Produccion | Backlog | Si | +| EPIC-VT-007 Calidad | Backlog | Si | + +**Esta epica bloquea:** +| Epica/Modulo | Razon | +|--------------|-------| +| Facturación (futuro) | Requiere entrega confirmada | + +--- + +## Desglose Tecnico + +**Database:** +- [ ] Schema: `dispatch` +- [ ] Tablas: 6 (shipments, shipment_items, routes, deliveries, carriers, packaging_types) +- [ ] Funciones: 2 (calculate_route_cost, confirm_delivery) +- [ ] Indices: Por ruta, fecha, transportista, estado + +**Backend:** +- [ ] Modulo: `dispatch` +- [ ] Entities: 5 (Shipment, ShipmentItem, Route, Delivery, Carrier) +- [ ] Endpoints: 12 +- [ ] Tests: 24 + +**Frontend:** +- [ ] Paginas: 4 (PendingShipments, RouteBuilder, DeliveryConfirm, Metrics) +- [ ] Componentes: 10 (ShipmentCard, RouteMap, SignaturePad, etc.) +- [ ] Stores: 1 (dispatchStore) +- [ ] PWA: App para transportistas + +--- + +## Endpoints API + +| Metodo | Endpoint | Descripcion | +|--------|----------|-------------| +| GET | /api/dispatch/pending | Pedidos listos para despacho | +| POST | /api/dispatch/shipments | Crear envío | +| GET | /api/dispatch/shipments/:id | Detalle de envío | +| POST | /api/dispatch/routes | Crear ruta | +| GET | /api/dispatch/routes/:id | Ver ruta | +| POST | /api/dispatch/routes/:id/start | Iniciar ruta | +| POST | /api/dispatch/deliveries/:id/confirm | Confirmar entrega | +| POST | /api/dispatch/deliveries/:id/reject | Rechazar entrega | +| GET | /api/dispatch/shipments/:id/remission | Generar remisión PDF | +| GET | /api/dispatch/metrics | Métricas de entregas | + +--- + +## Riesgos + +| Riesgo | Probabilidad | Impacto | Mitigacion | +|--------|--------------|---------|------------| +| Daño en transporte | Media | Alto | Embalaje adecuado + seguro | +| Entregas no confirmadas | Media | Medio | App offline con sincronización | +| Rutas ineficientes | Media | Medio | Agrupación por zona | + +--- + +## Definition of Ready (DoR) + +- [x] Historias de usuario definidas +- [x] Criterios de aceptacion claros +- [x] Dependencias identificadas +- [x] Estimacion completada +- [ ] Zonas geográficas definidas +- [ ] Tipos de embalaje documentados + +## Definition of Done (DoD) + +- [ ] Flujo de despacho funcionando +- [ ] Generación de remisiones operativa +- [ ] App de transportistas funcional +- [ ] Confirmación con firma digital +- [ ] Tests de integración pasando +- [ ] Documentación de API + +--- + +## Historial + +| Fecha | Cambio | Autor | +|-------|--------|-------| +| 2025-12-08 | Creacion de epica | Claude-Agent | + +--- + +**Creada por:** Claude-Agent +**Fecha:** 2025-12-08 +**Ultima actualizacion:** 2025-12-08 diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..dea59b9 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,38 @@ +# DOCUMENTACIÓN - ERP Vidrio Templado + +**Proyecto:** ERP Vidrio Templado +**Versión:** 1.0.0 +**Fecha:** 2025-12-05 +**Estado:** Por iniciar + +--- + +## Estructura de Documentación + +``` +docs/ +├── 00-vision-general/ # Visión, objetivos y alcance +├── 01-analisis-referencias/ # Análisis de sistemas de referencia +├── 02-definicion-modulos/ # Lista, índice y dependencias de módulos +├── 03-requerimientos/ # Requerimientos funcionales por módulo +├── 04-modelado/ # Diseño técnico +│ ├── database-design/ # DDL specs, schemas +│ ├── domain-models/ # Modelos de dominio +│ └── especificaciones-tecnicas/ # ET backend/frontend +├── 05-user-stories/ # Historias de usuario +├── 06-test-plans/ # Planes de prueba +├── 07-devops/ # CI/CD, infraestructura +├── 90-transversal/ # Documentos transversales +├── 95-guias-desarrollo/ # Guías para desarrolladores +└── 97-adr/ # Architecture Decision Records +``` + +--- + +## Directiva Aplicable + +Ver: `/workspace/core/orchestration/directivas/DIRECTIVA-ESTRUCTURA-DOCUMENTACION-PROYECTOS.md` + +--- + +**Última actualización:** 2025-12-05 diff --git a/docs/_MAP.md b/docs/_MAP.md new file mode 100644 index 0000000..661f55f --- /dev/null +++ b/docs/_MAP.md @@ -0,0 +1,40 @@ +# Mapa de Documentacion: erp-vidrio-templado + +**Proyecto:** erp-vidrio-templado +**Actualizado:** 2026-01-04 +**Generado por:** EPIC-008 adapt-simco.sh + +--- + +## Estructura de Documentacion + +``` +docs/ +├── _MAP.md # Este archivo (indice de navegacion) +├── 00-overview/ # Vision general del proyecto +├── 01-architecture/ # Arquitectura y decisiones (ADRs) +├── 02-specs/ # Especificaciones tecnicas +├── 03-api/ # Documentacion de APIs +├── 04-guides/ # Guias de desarrollo +└── 99-finiquito/ # Entregables cliente (si aplica) +``` + +## Navegacion Rapida + +| Seccion | Descripcion | Estado | +|---------|-------------|--------| +| Overview | Vision general | - | +| Architecture | Decisiones arquitectonicas | - | +| Specs | Especificaciones tecnicas | - | +| API | Documentacion de endpoints | - | +| Guides | Guias de desarrollo | - | + +## Estadisticas + +- Total archivos en docs/: 19 +- Fecha de adaptacion: 2026-01-04 + +--- + +**Nota:** Este archivo fue generado automaticamente por EPIC-008. +Actualizar manualmente con la estructura real del proyecto. diff --git a/orchestration/00-guidelines/CONTEXTO-PROYECTO.md b/orchestration/00-guidelines/CONTEXTO-PROYECTO.md new file mode 100644 index 0000000..8d4a2a7 --- /dev/null +++ b/orchestration/00-guidelines/CONTEXTO-PROYECTO.md @@ -0,0 +1,121 @@ +# Contexto del Proyecto: ERP Vidrio Templado + +## Metadatos + +| Campo | Valor | +|-------|-------| +| **Nombre** | ERP Vidrio Templado | +| **Tipo** | STANDALONE (Proyecto Independiente) | +| **Nivel** | Vertical que extiende erp-core | +| **Estado** | En planificacion | +| **Progreso** | 0% | +| **Version** | 0.1.0 | +| **Base** | Extiende projects/erp-core (60-70%) | +| **Extension** | Modulos especificos (+30-40%) | +| **Path** | `/home/isem/workspace-v1/projects/erp-vidrio-templado/` | +| **Fecha Migracion** | 2025-12-27 | + +--- + +## VARIABLES PARA DIRECTIVAS GLOBALES + +```yaml +# Identificacion del Proyecto +PROJECT: erp-vidrio-templado +PROJECT_NAME: ERP Vidrio Templado +PROJECT_LEVEL: STANDALONE + +# Paths Principales (WORKSPACE-V1) +WORKSPACE_ROOT: ~/workspace-v1 +PROJECT_ROOT: ~/workspace-v1/projects/erp-vidrio-templado +APPS_ROOT: ~/workspace-v1/projects/erp-vidrio-templado +DOCS_ROOT: ~/workspace-v1/projects/erp-vidrio-templado/docs +ORCHESTRATION: ~/workspace-v1/projects/erp-vidrio-templado/orchestration + +# Herencia de ERP-Core +ERP_CORE_ROOT: ~/workspace-v1/projects/erp-core +HERENCIA_DOC: orchestration/00-guidelines/HERENCIA-ERP-CORE.md + +# Base Orchestration (Directivas y Perfiles) +DIRECTIVAS_PATH: ~/workspace-v1/orchestration/directivas +PERFILES_PATH: ~/workspace-v1/orchestration/agents/perfiles +CATALOG_PATH: ~/workspace-v1/core/catalog + +# Base de Datos +DB_NAME: erp_vidrio_templado +DB_DDL_PATH: ~/workspace-v1/projects/erp-vidrio-templado/database/ddl +DB_SCRIPTS_PATH: ~/workspace-v1/projects/erp-vidrio-templado/database + +# Backend +BACKEND_ROOT: ~/workspace-v1/projects/erp-vidrio-templado/backend +BACKEND_SRC: ~/workspace-v1/projects/erp-vidrio-templado/backend/src + +# Frontend +FRONTEND_ROOT: ~/workspace-v1/projects/erp-vidrio-templado/frontend +FRONTEND_SRC: ~/workspace-v1/projects/erp-vidrio-templado/frontend/src +``` + +--- + +## Descripcion + +Vertical especializada para empresas de producción de vidrio templado. Extiende erp-core con módulos específicos para: +- Gestión de órdenes de producción +- Control de calidad y certificaciones +- Inventario de materia prima +- Trazabilidad de lotes +- Gestión de maquinaria (hornos) + +## Paths del Proyecto + +``` +/home/isem/workspace-v1/projects/erp-vidrio-templado/ +├── backend/ +├── frontend/ +├── database/ +├── docs/ +│ ├── 00-vision-general/ +│ ├── 01-fase-mvp/ +│ └── 02-modelado/ +└── orchestration/ + ├── 00-guidelines/ + ├── referencias/ + ├── trazas/ + └── estados/ +``` + +## Módulos Planificados + +| Módulo | Descripción | Prioridad | +|--------|-------------|-----------| +| production | Órdenes de producción | Alta | +| quality | Control de calidad | Alta | +| inventory | Inventario materia prima | Alta | +| machinery | Gestión de hornos | Media | +| traceability | Trazabilidad de lotes | Media | +| quotes | Cotizaciones | Media | + +## Directivas Especificas + +1. **Hereda directivas de:** + - `/home/isem/workspace-v1/orchestration/directivas/` + - `/home/isem/workspace-v1/projects/erp-core/orchestration/directivas/` + +2. **Principios especificos:** + - Trazabilidad obligatoria para todos los lotes + - Integracion con equipos de medicion + - Certificaciones de calidad + +## Referencias + +| Recurso | Path | +|---------|------| +| Directivas globales | `/home/isem/workspace-v1/orchestration/directivas/` | +| Directivas ERP-Core | `/home/isem/workspace-v1/projects/erp-core/orchestration/directivas/` | +| Herencia directivas | `./HERENCIA-DIRECTIVAS.md` | +| Dependencias ERP-Core | `../referencias/DEPENDENCIAS-ERP-CORE.yml` | +| Dependencias Shared | `../referencias/DEPENDENCIAS-SHARED.yml` | +| Referencia construccion | `/home/isem/workspace-v1/projects/erp-construccion/` | + +--- +*Última actualización: Diciembre 2025* diff --git a/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md b/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md new file mode 100644 index 0000000..98993e2 --- /dev/null +++ b/orchestration/00-guidelines/HERENCIA-DIRECTIVAS.md @@ -0,0 +1,72 @@ +# Herencia de Directivas - ERP Vidrio Templado + +## Jerarquia de Directivas + +Este proyecto hereda directivas en el siguiente orden de precedencia: + +``` +1. Directivas Globales (CORE) → /home/isem/workspace/core/orchestration/directivas/ +2. Directivas ERP-Core → /home/isem/workspace/projects/erp-suite/apps/erp-core/orchestration/directivas/ +3. Directivas Vidrio Templado → ./directivas/ (este proyecto) +``` + +**Regla:** Las directivas especificas pueden **EXTENDER** las heredadas, nunca **REDUCIRLAS**. + +--- + +## Directivas Heredadas de CORE + +| Directiva | Proposito | +|-----------|-----------| +| `DIRECTIVA-FLUJO-5-FASES.md` | Flujo de trabajo obligatorio | +| `DIRECTIVA-DOCUMENTACION-OBLIGATORIA.md` | Docs en tiempo real | +| `DIRECTIVA-CALIDAD-CODIGO.md` | Estandares de codigo | +| `DIRECTIVA-DISENO-BASE-DATOS.md` | Diseno BD | +| `DIRECTIVA-CONTROL-VERSIONES.md` | Git | + +--- + +## Directivas Heredadas de ERP-Core + +| Directiva | Proposito | +|-----------|-----------| +| `DIRECTIVA-MULTI-TENANT.md` | Aislamiento por tenant | +| `DIRECTIVA-EXTENSION-VERTICALES.md` | Como extender el core | +| `DIRECTIVA-DOCUMENTACION-PRE-DESARROLLO.md` | Documentar antes de desarrollar | +| `DIRECTIVA-PATRONES-ODOO.md` | Patrones de diseno | +| `DIRECTIVA-HERENCIA-MODULOS.md` | Extension de modulos | +| `ESTANDARES-API-REST-GENERICO.md` | APIs REST | + +--- + +## Directivas Especificas de Vidrio Templado + +| Directiva | Proposito | Estado | +|-----------|-----------|--------| +| `DIRECTIVA-OPTIMIZACION-CORTE.md` | Algoritmos de corte optimo | Por crear | +| `DIRECTIVA-PROCESO-TEMPLADO.md` | Control de proceso termico | Por crear | +| `DIRECTIVA-CALIDAD-VIDRIO.md` | Estandares de calidad | Por crear | + +--- + +## Modulos que Usa del Core + +| Modulo Core | Uso en Vidrio | +|-------------|---------------| +| MGN-001 Auth | Directo | +| MGN-002 Users | Directo | +| MGN-004 Tenants | Directo | +| MGN-005 Catalogs | Extendido (tipos vidrio) | +| MGN-011 Inventory | Extendido (laminas, cortes) | +| MGN-012 Purchasing | Extendido (vidrio crudo) | +| MGN-013 Sales | Extendido (ordenes produccion) | + +--- + +## Referencias + +- Core: `/home/isem/workspace/core/orchestration/directivas/` +- ERP-Core: `/home/isem/workspace/projects/erp-suite/apps/erp-core/orchestration/directivas/` + +--- +*Ultima actualizacion: Diciembre 2025* diff --git a/orchestration/00-guidelines/HERENCIA-ERP-CORE.md b/orchestration/00-guidelines/HERENCIA-ERP-CORE.md new file mode 100644 index 0000000..2396709 --- /dev/null +++ b/orchestration/00-guidelines/HERENCIA-ERP-CORE.md @@ -0,0 +1,181 @@ +# Herencia de ERP Core - Vertical Vidrio Templado + +**Version:** 1.0.0 +**Vertical:** Vidrio Templado +**Nivel:** STANDALONE (proyecto independiente) +**Version ERP-Core:** 1.2.0 +**Ruta ERP-Core:** projects/erp-core +**Herencia:** 60-70% de funcionalidad base de erp-core +**Fecha Migracion:** 2025-12-27 + +--- + +## RESUMEN DE HERENCIA + +Este documento especifica exactamente que hereda la vertical Vidrio Templado del ERP Core y como lo extiende. + +--- + +## 1. MODULOS HEREDADOS (100%) + +Estos modulos se usan TAL CUAL del core, sin modificaciones: + +| Modulo Core | Codigo | Uso en Vidrio Templado | +|-------------|--------|------------------------| +| Auth | MGN-001 | Autenticacion JWT, OAuth | +| Users | MGN-002 | Gestion de usuarios | +| Roles | MGN-003 | RBAC por area (produccion, calidad, ventas) | +| Audit | MGN-007 | Trazabilidad de operaciones | +| Notifications | MGN-008 | Alertas de produccion | +| Reports | MGN-009 | Reportes de produccion | + +**Accion:** NO crear codigo para estos modulos. Usar directamente del core. + +--- + +## 2. MODULOS HEREDADOS Y EXTENDIDOS + +### MGN-004: Tenants → Plantas de Produccion + +```yaml +herencia_base: + - Multi-tenancy basico + - Aislamiento RLS + +extension_vidrio: + - Planta como tenant especializado + - Campos adicionales: + - capacidad_hornos + - certificaciones_calidad + - licencia_ambiental + - Relaciones: + - planta → lineas_produccion (1:N) + - planta → hornos (1:N) +``` + +### MGN-005: Catalogs → Catalogos de Vidrio + +```yaml +herencia_base: + - CRUD de catalogos genericos + +extension_vidrio: + - Catalogo de tipos de vidrio + - Catalogo de espesores + - Catalogo de acabados + - Catalogo de procesos de templado + - Catalogo de defectos de calidad +``` + +### MGN-011: Inventory → Inventario de Vidrio + +```yaml +herencia_base: + - Productos y variantes + - Movimientos de stock + - Ubicaciones + +extension_vidrio: + - Dimensiones de lamina (ancho x alto) + - Tracking por lote de produccion + - Control de desperdicio/retazo + - Trazabilidad por horno +``` + +--- + +## 3. ESPECIFICACIONES TRANSVERSALES HEREDADAS + +### Obligatorias (Impacto Directo) + +| Especificacion | Gap | Uso | +|----------------|-----|-----| +| `SPEC-VALORACION-INVENTARIO.md` | GAP-MGN-005 | Costeo de vidrio (FIFO/AVCO) | +| `SPEC-TRAZABILIDAD-LOTES-SERIES.md` | GAP-MGN-005 | Trazabilidad por lote de templado | +| `SPEC-INVENTARIOS-CICLICOS.md` | GAP-MGN-005 | Conteo de laminas en almacen | + +### Recomendadas + +| Especificacion | Gap | Uso | +|----------------|-----|-----| +| `SPEC-SISTEMA-SECUENCIAS.md` | GAP-MGN-004 | Foliado de ordenes de produccion | +| `SPEC-TAREAS-RECURRENTES.md` | GAP-MGN-011 | Mantenimiento preventivo hornos | +| `SPEC-MAIL-THREAD-TRACKING.md` | Patron | Tracking de ordenes | + +**Ubicacion:** `erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/` + +--- + +## 4. MODULOS PROPIOS (No heredados) + +| Codigo | Modulo | Descripcion | +|--------|--------|-------------| +| VT-001 | production | Ordenes de produccion | +| VT-002 | quality | Control de calidad | +| VT-003 | raw_materials | Materia prima (laminas) | +| VT-004 | machinery | Gestion de hornos | +| VT-005 | traceability | Trazabilidad por lote | +| VT-006 | quotations | Cotizaciones especializadas | + +--- + +## 5. SCHEMAS DE BASE DE DATOS + +### Heredados de Core + +```yaml +schemas_core: + - auth + - core_users + - core_rbac + - core_tenants (extendido) + - core_catalogs (extendido) + - core_audit +``` + +### Propios de Vidrio Templado + +```yaml +schemas_vertical: + - vertical_vidrio + - production_orders + - quality_inspections + - furnace_logs + - batch_tracking + - glass_inventory +``` + +--- + +## 6. CONSIDERACIONES ESPECIALES + +### Trazabilidad Obligatoria + +Por normativas de calidad, este vertical REQUIERE: +- Trazabilidad 100% de lotes +- Registro de parametros de templado (temperatura, tiempo) +- Certificados de calidad por lote +- Historial de inspecciones + +### Integracion con Maquinaria + +- Conexion con PLCs de hornos (futuro) +- Lectura automatica de parametros +- Alertas de desviacion + +--- + +## 7. REFERENCIAS + +| Recurso | Ubicacion | +|---------|-----------| +| MASTER_INVENTORY Core | `erp-core/orchestration/inventarios/MASTER_INVENTORY.yml` | +| Specs Transversales | `erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/` | +| SUITE_MASTER_INVENTORY | `erp-suite/orchestration/inventarios/SUITE_MASTER_INVENTORY.yml` | +| HERENCIA-DIRECTIVAS | `./HERENCIA-DIRECTIVAS.md` | + +--- + +*Sistema NEXUS + SIMCO v2.2.0* +*Vertical: Vidrio Templado (Nivel 2B.2)* +*Ultima actualizacion: 2025-12-08* diff --git a/orchestration/00-guidelines/HERENCIA-SIMCO.md b/orchestration/00-guidelines/HERENCIA-SIMCO.md new file mode 100644 index 0000000..f03ae97 --- /dev/null +++ b/orchestration/00-guidelines/HERENCIA-SIMCO.md @@ -0,0 +1,121 @@ +# Herencia SIMCO - ERP Vidrio Templado + +**Sistema:** SIMCO v2.2.0 + CAPVED + CCA Protocol +**Fecha:** 2025-12-08 + +--- + +## Configuración del Proyecto + +| Propiedad | Valor | +|-----------|-------| +| **Proyecto** | ERP Vidrio Templado - Vertical para Vidrierías | +| **Nivel** | VERTICAL (Nivel 3) | +| **Padre** | erp-core | +| **Suite** | erp-suite | +| **SIMCO Version** | 2.2.0 | +| **CAPVED** | Habilitado | +| **CCA Protocol** | Habilitado | +| **Estado** | 0% - Por iniciar | + +## Jerarquía de Herencia + +``` +Nivel 0: core/orchestration/ ← FUENTE PRINCIPAL + └── Nivel 1: erp-suite/orchestration/ + └── Nivel 2: erp-core/orchestration/ ← PADRE DIRECTO + └── Nivel 3: vidrio-templado/orchestration/ ← ESTE PROYECTO +``` + +--- + +## Directivas Heredadas de CORE (OBLIGATORIAS) + +### Ciclo de Vida +| Alias | Propósito | +|-------|-----------| +| `@TAREA` | Punto de entrada para toda HU | +| `@CAPVED` | Ciclo de 6 fases | +| `@INICIALIZACION` | Bootstrap de agentes | + +### Operaciones Universales +| Alias | Propósito | +|-------|-----------| +| `@CREAR` | Crear archivos nuevos | +| `@MODIFICAR` | Modificar existentes | +| `@VALIDAR` | Validar código | +| `@DOCUMENTAR` | Documentar trabajo | +| `@BUSCAR` | Buscar información | +| `@DELEGAR` | Delegar a subagentes | + +### Principios Fundamentales +| Alias | Resumen | +|-------|---------| +| `@CAPVED` | Toda tarea pasa por 6 fases | +| `@DOC_PRIMERO` | Consultar docs/ antes de implementar | +| `@ANTI_DUP` | Verificar que no existe | +| `@VALIDACION` | Build y lint DEBEN pasar | +| `@TOKENS` | Desglosar tareas grandes | + +--- + +## Directivas por Dominio Técnico + +| Alias | Aplica | Notas | +|-------|--------|-------| +| `@OP_DDL` | **SÍ** | Schemas específicos vidrio | +| `@OP_BACKEND` | **SÍ** | Servicios de cotización, corte | +| `@OP_FRONTEND` | **SÍ** | UI de configurador | +| `@OP_MOBILE` | **SÍ** | App de instaladores | +| `@OP_ML` | NO | - | + +--- + +## Patrones Heredados (OBLIGATORIOS) + +Todos los patrones de `core/orchestration/patrones/` aplican. + +--- + +## Directivas Heredadas de ERP Core + +| Directiva | Extensión Local | +|-----------|-----------------| +| `DIRECTIVA-MULTI-TENANT.md` | Por `vidriera_id` | +| `DIRECTIVA-EXTENSION-VERTICALES.md` | Módulos de vidrio | + +--- + +## Variables de Contexto CCA + +```yaml +PROJECT_NAME: "vidrio-templado" +PROJECT_LEVEL: "VERTICAL" +PROJECT_ROOT: "./" +PARENT_PROJECT: "erp-core" +SUITE_PROJECT: "erp-suite" + +DB_DDL_PATH: "database/ddl" +BACKEND_ROOT: "backend/src" +FRONTEND_ROOT: "frontend/src" + +TENANT_COLUMN: "vidriera_id" +RLS_CONTEXT: "app.current_vidriera_id" +``` + +--- + +## Módulos Específicos de Vidrio (Por definir) + +| Módulo | Descripción | Estado | +|--------|-------------|--------| +| VID-COT | Cotizaciones | Por definir | +| VID-COR | Corte y optimización | Por definir | +| VID-INS | Instalación | Por definir | +| VID-INV | Inventario vidrios | Por definir | + +--- + +**Sistema:** SIMCO v2.2.0 + CAPVED + CCA Protocol +**Nivel:** VERTICAL (3) +**Última actualización:** 2025-12-08 diff --git a/orchestration/00-guidelines/HERENCIA-SPECS-CORE.md b/orchestration/00-guidelines/HERENCIA-SPECS-CORE.md new file mode 100644 index 0000000..e5e5943 --- /dev/null +++ b/orchestration/00-guidelines/HERENCIA-SPECS-CORE.md @@ -0,0 +1,175 @@ +# Herencia de SPECS del Core - Vidrio Templado + +**Fecha:** 2025-12-08 +**Versión:** 1.0 +**Vertical:** Vidrio Templado (VT) +**Nivel:** 2B.2 + +--- + +## Resumen + +| Métrica | Valor | +|---------|-------| +| SPECS Aplicables | 25/30 | +| SPECS Obligatorias | 22 | +| SPECS Opcionales | 3 | +| SPECS No Aplican | 5 | +| Estado Implementación | 0% | + +--- + +## SPECS Obligatorias (Deben Implementarse) + +### P0 - Críticas + +| SPEC | Gap Original | SP | Estado | Módulos Afectados | +|------|-------------|----:|--------|-------------------| +| SPEC-SISTEMA-SECUENCIAS | ir.sequence | 8 | PENDIENTE | VT-001, VT-002 | +| SPEC-VALORACION-INVENTARIO | FIFO/AVCO | 21 | PENDIENTE | VT-004 | +| SPEC-SEGURIDAD-API-KEYS-PERMISOS | API Keys + ACL | 31 | PENDIENTE | VT-001 | +| SPEC-REPORTES-FINANCIEROS | Balance/P&L SAT | 13 | PENDIENTE | VT-008 | +| SPEC-PORTAL-PROVEEDORES | Portal RFQ | 13 | PENDIENTE | VT-004 | +| SPEC-NOMINA-BASICA | hr_payroll | 21 | PENDIENTE | VT-001 | +| SPEC-GASTOS-EMPLEADOS | hr_expense | 13 | PENDIENTE | VT-001 | +| SPEC-TAREAS-RECURRENTES | project.task.recurrence | 13 | PENDIENTE | VT-003 | +| SPEC-SCHEDULER-REPORTES | ir.cron + mail | 8 | PENDIENTE | VT-008 | + +### P1 - Complementarias + +| SPEC | Gap Original | SP | Estado | Módulos Afectados | +|------|-------------|----:|--------|-------------------| +| SPEC-CONTABILIDAD-ANALITICA | Centros de costo | 21 | PENDIENTE | VT-008 | +| SPEC-CONCILIACION-BANCARIA | Conciliación | 21 | PENDIENTE | VT-008 | +| SPEC-TWO-FACTOR-AUTHENTICATION | 2FA | 13 | PENDIENTE | VT-001 | +| SPEC-TRAZABILIDAD-LOTES-SERIES | Lotes/Series | 13 | PENDIENTE | VT-004, VT-007 | +| SPEC-PRICING-RULES | Reglas precio | 8 | PENDIENTE | VT-002 | +| SPEC-BLANKET-ORDERS | Órdenes marco | 13 | PENDIENTE | VT-004 | +| SPEC-IMPUESTOS-AVANZADOS | IVA, ISR | 8 | PENDIENTE | VT-008 | +| SPEC-PLANTILLAS-CUENTAS | Plan contable | 8 | PENDIENTE | VT-008 | +| SPEC-TASAS-CAMBIO-AUTOMATICAS | Tipos cambio | 5 | PENDIENTE | VT-008 | +| SPEC-ALERTAS-PRESUPUESTO | Alertas | 8 | PENDIENTE | VT-002, VT-003 | +| SPEC-PRESUPUESTOS-REVISIONES | Aprobación | 8 | PENDIENTE | VT-002 | +| SPEC-RRHH-EVALUACIONES-SKILLS | Evaluaciones | 26 | PENDIENTE | VT-001 | +| SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN | Burndown | 13 | PENDIENTE | VT-003 | +| SPEC-LOCALIZACION-PAISES | Localización | 13 | PENDIENTE | VT-001 | + +### Patrones Técnicos + +| SPEC | Patrón | SP | Estado | Aplicación | +|------|--------|----:|--------|------------| +| SPEC-MAIL-THREAD-TRACKING | mail.thread | 13 | PENDIENTE | Órdenes producción, Cotizaciones | +| SPEC-WIZARD-TRANSIENT-MODEL | TransientModel | 8 | PENDIENTE | Wizards de corte, templado | + +--- + +## SPECS Opcionales + +| SPEC | Descripción | SP | Decisión | Razón | +|------|-------------|----:|----------|-------| +| SPEC-FIRMA-ELECTRONICA-NOM151 | e.firma | 13 | EVALUAR | Para certificados de calidad | +| SPEC-OAUTH2-SOCIAL-LOGIN | OAuth2 | 8 | DIFERIR | No prioritario | +| SPEC-INVENTARIOS-CICLICOS | Conteo cíclico | 13 | EVALUAR | Útil para materia prima | + +--- + +## SPECS No Aplicables + +| SPEC | Razón | +|------|-------| +| SPEC-INTEGRACION-CALENDAR | No requiere calendario externo | +| SPEC-CONSOLIDACION-FINANCIERA | Negocio de una sola planta | + +--- + +## Adaptaciones Requeridas + +### Mapeo de Conceptos Core → Vidrio + +| Concepto Core | Concepto Vidrio | +|---------------|-----------------| +| `sales.sale_orders` | Pedidos de vidrio | +| `inventory.products` | Tipos de vidrio (templado, laminado, etc.) | +| `inventory.lots` | Lotes de producción | +| `projects.projects` | Órdenes de producción | +| `projects.tasks` | Etapas (corte, templado, inspección) | + +### Extensiones de Entidad + +```sql +-- Tipos de vidrio +glass.glass_types ( + product_id → inventory.products, + tipo ENUM('templado', 'laminado', 'insulado', 'curvo'), + espesor_mm DECIMAL, + color VARCHAR, + propiedades JSONB +) + +-- Órdenes de producción +production.production_orders ( + id UUID, + sale_order_id → sales.sale_orders, + tipo_vidrio_id → glass_types, + dimensiones JSONB, + cantidad INTEGER, + estado ENUM +) + +-- Parámetros de horno +production.oven_parameters ( + production_order_id → production_orders, + temperatura_c INTEGER, + tiempo_minutos INTEGER, + velocidad_enfriamiento DECIMAL, + fecha_templado TIMESTAMPTZ +) + +-- Inspecciones de calidad +quality.inspections ( + id UUID, + production_order_id → production_orders, + tipo_inspeccion ENUM, + resultado ENUM('aprobado', 'rechazado', 'condicional'), + observaciones TEXT +) +``` + +--- + +## Plan de Implementación + +### Fase 1: Fundamentos (SP: 52) +1. SPEC-SISTEMA-SECUENCIAS +2. SPEC-SEGURIDAD-API-KEYS-PERMISOS +3. SPEC-TWO-FACTOR-AUTHENTICATION + +### Fase 2: Producción (SP: 55) +4. SPEC-VALORACION-INVENTARIO +5. SPEC-TRAZABILIDAD-LOTES-SERIES +6. SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN +7. SPEC-PRICING-RULES + +### Fase 3: Operaciones (SP: 34) +8. SPEC-MAIL-THREAD-TRACKING +9. SPEC-WIZARD-TRANSIENT-MODEL +10. SPEC-TAREAS-RECURRENTES + +### Fase 4: Financiero (SP: 65) +11. SPEC-REPORTES-FINANCIEROS +12. SPEC-CONTABILIDAD-ANALITICA +13. SPEC-CONCILIACION-BANCARIA + +--- + +## Referencias + +- Documento Core: `erp-core/docs/04-modelado/MAPEO-SPECS-VERTICALES.md` +- SPECS del Core: `erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/` +- Herencia DB: `database/HERENCIA-ERP-CORE.md` +- Directivas: `orchestration/directivas/` + +--- + +**Documento de herencia de SPECS oficial** +**Última actualización:** 2025-12-08 diff --git a/orchestration/00-guidelines/HERENCIA-SPECS-ERP-CORE.md b/orchestration/00-guidelines/HERENCIA-SPECS-ERP-CORE.md new file mode 100644 index 0000000..c052590 --- /dev/null +++ b/orchestration/00-guidelines/HERENCIA-SPECS-ERP-CORE.md @@ -0,0 +1,142 @@ +# Herencia de Especificaciones - ERP Core -> Vidrio Templado + +**Fecha:** 2025-12-08 +**Version:** 1.0 +**Vertical:** Vidrio Templado +**Nivel:** 2B.2 + +--- + +## RESUMEN + +Este documento define las especificaciones transversales del ERP Core que la vertical de Vidrio Templado debe heredar e implementar. + +**Ubicacion specs core:** `apps/erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/` + +--- + +## ESPECIFICACIONES A HEREDAR + +### 1. SPEC-VALORACION-INVENTARIO.md + +**Prioridad:** ALTA +**Relevancia:** Valoracion de materias primas y producto terminado + +**Funcionalidades heredadas:** +- Metodos de valoracion (FIFO, Average Cost) +- Capas de valoracion (stock_valuation_layers) +- Asientos contables automaticos +- Reconciliacion de inventario + +**Adaptacion para vidrio templado:** +- Valoracion de vidrio crudo por espesor/tipo +- Costeo de productos terminados (templado, laminado) +- Control de mermas por rotura +- Valoracion de insumos (PVB, perfiles, etc.) + +**Modulos afectados:** +- Almacen de materias primas +- Almacen de producto terminado +- Produccion + +--- + +### 2. SPEC-TRAZABILIDAD-LOTES-SERIES.md + +**Prioridad:** ALTA +**Relevancia:** Trazabilidad de vidrio por colada/lote + +**Funcionalidades heredadas:** +- Gestion de lotes (stock_lots) +- Numeros de serie +- Trazabilidad upstream/downstream +- Fechas de vencimiento + +**Adaptacion para vidrio templado:** +- Lotes de vidrio por proveedor/colada +- Trazabilidad de piezas individuales (numero de serie) +- Certificados de calidad por lote +- Rastreo de roturas por lote de origen +- Garantias vinculadas a lote + +**Modulos afectados:** +- Control de Calidad +- Almacen +- Produccion +- Reclamaciones/Garantias + +--- + +### 3. SPEC-INVENTARIOS-CICLICOS.md + +**Prioridad:** MEDIA +**Relevancia:** Control de inventario de vidrio + +**Funcionalidades heredadas:** +- Conteos ciclicos programados +- Reglas ABC de clasificacion +- Ajustes de inventario +- Reportes de discrepancias + +**Adaptacion para vidrio templado:** +- Conteo de laminas por rack/ubicacion +- Clasificacion ABC por rotacion y valor +- Conteos frecuentes de items de alto valor +- Reconciliacion con mermas de produccion + +**Modulos afectados:** +- Almacen +- Inventarios +- Contabilidad + +--- + +## ESPECIFICACIONES ADICIONALES RECOMENDADAS + +| Especificacion | Relevancia | Prioridad | +|----------------|------------|-----------| +| SPEC-MAIL-THREAD-TRACKING.md | Tracking de pedidos y produccion | Media | +| SPEC-WIZARD-TRANSIENT-MODEL.md | Asistentes de cotizacion/produccion | Media | +| SPEC-PRICING-RULES.md | Listas de precios por cliente/volumen | Media | + +--- + +## MATRIZ DE HERENCIA + +| Spec Core | Modulos Vidrio Templado | Prioridad | Estado | +|-----------|------------------------|-----------|--------| +| SPEC-VALORACION-INVENTARIO | Almacen, Produccion | ALTA | Pendiente | +| SPEC-TRAZABILIDAD-LOTES-SERIES | Calidad, Almacen, Produccion | ALTA | Pendiente | +| SPEC-INVENTARIOS-CICLICOS | Almacen, Inventarios | MEDIA | Pendiente | + +--- + +## IMPLEMENTACION + +### Orden Sugerido + +1. **Fase 1 - Trazabilidad** + - SPEC-TRAZABILIDAD-LOTES-SERIES (critico para calidad) + +2. **Fase 2 - Valoracion** + - SPEC-VALORACION-INVENTARIO (costeo de productos) + - SPEC-INVENTARIOS-CICLICOS (control de stock) + +### Consideraciones Especificas + +- El vidrio requiere trazabilidad estricta por certificaciones de calidad +- Los metodos de valoracion deben considerar mermas por rotura +- La clasificacion ABC debe incluir criterios de fragilidad + +--- + +## REFERENCIAS + +- Specs Core: `apps/erp-core/docs/04-modelado/especificaciones-tecnicas/transversal/` +- Gap Analysis: `apps/erp-core/orchestration/01-analisis/ANALISIS-GAPS-CONSOLIDADO.md` + +--- + +**Documento generado por:** Requirements-Analyst +**Fecha:** 2025-12-08 +**Version:** 1.0 diff --git a/orchestration/00-guidelines/PROJECT-STATUS.md b/orchestration/00-guidelines/PROJECT-STATUS.md new file mode 100644 index 0000000..0bffd32 --- /dev/null +++ b/orchestration/00-guidelines/PROJECT-STATUS.md @@ -0,0 +1,33 @@ +# PROJECT STATUS: erp-vidrio-templado + +**Ultima actualizacion:** 2026-01-04 +**Estado general:** Activo + +--- + +## Metricas Rapidas + +| Metrica | Valor | +|---------|-------| +| Archivos docs/ | 19 | +| Archivos orchestration/ | 23 | +| Estado SIMCO | Adaptado | + +## Migracion EPIC-008 + +- [x] Migracion desde workspace-v1-bckp (EPIC-004/005) +- [x] Adaptacion SIMCO (EPIC-008) +- [x] docs/_MAP.md creado +- [x] PROJECT-STATUS.md creado +- [x] HERENCIA-SIMCO.md verificado +- [x] CONTEXTO-PROYECTO.md verificado + +## Historial de Cambios + +| Fecha | Cambio | EPIC | +|-------|--------|------| +| 2026-01-04 | Adaptacion SIMCO completada | EPIC-008 | + +--- + +**Generado por:** EPIC-008 adapt-simco.sh diff --git a/orchestration/PROXIMA-ACCION.md b/orchestration/PROXIMA-ACCION.md new file mode 100644 index 0000000..abded35 --- /dev/null +++ b/orchestration/PROXIMA-ACCION.md @@ -0,0 +1,38 @@ +# Próxima Acción - ERP Vidrio Templado + +## Estado Actual +**Fecha:** Diciembre 2025 +**Progreso:** 0% (En planificación) + +## Prerrequisitos + +Este proyecto requiere que **erp-core** esté completado primero: +- [ ] Módulo auth de erp-core +- [ ] Módulo users de erp-core +- [ ] Módulo tenants de erp-core +- [ ] Módulo inventory base de erp-core + +## Tarea Prioritaria (Cuando esté listo) + +### Definir Especificaciones del MVP + +**Objetivo:** Documentar requerimientos y especificaciones técnicas del MVP. + +**Subtareas:** +1. [ ] Crear `/docs/00-vision-general/README.md` +2. [ ] Definir módulos MVP en `/docs/01-fase-mvp/` +3. [ ] Diseñar schemas de BD en `/docs/02-modelado/` +4. [ ] Crear historias de usuario +5. [ ] Definir integraciones necesarias + +## Backlog Inicial + +| Prioridad | Tarea | Estado | +|-----------|-------|--------| +| Alta | Definir MVP | Pendiente | +| Alta | Diseñar schemas | Pendiente | +| Media | Documentar procesos | Pendiente | +| Baja | Integraciones | Pendiente | + +--- +*Proyecto: ERP Vidrio Templado - En planificación* diff --git a/orchestration/directivas/DIRECTIVA-CONTROL-CALIDAD.md b/orchestration/directivas/DIRECTIVA-CONTROL-CALIDAD.md new file mode 100644 index 0000000..f0b9cf1 --- /dev/null +++ b/orchestration/directivas/DIRECTIVA-CONTROL-CALIDAD.md @@ -0,0 +1,146 @@ +# DIRECTIVA-CONTROL-CALIDAD + +**Version:** 1.0 +**Fecha:** 2025-12-08 +**Vertical:** Vidrio Templado +**Nivel:** 2B.2 + +--- + +## PROPOSITO + +Define las directrices para el control de calidad en la produccion de vidrio templado. + +--- + +## ALCANCE + +- Pruebas de calidad obligatorias +- Certificaciones de producto +- Manejo de rechazos +- Trazabilidad de defectos + +--- + +## NORMATIVAS APLICABLES + +### NMX-EC-12543-1-IMNC-2004 +- Vidrio de seguridad para construccion +- Pruebas de fragmentacion +- Criterios de aceptacion + +### NMX-W-182-SCFI-2005 +- Vidrio templado +- Especificaciones de resistencia +- Tolerancias dimensionales + +--- + +## PRUEBAS OBLIGATORIAS + +### 1. Prueba de Fragmentacion + +**Cuando:** Por cada lote de produccion (minimo 1 pieza por hornada) + +**Criterio:** El numero de fragmentos en un area de 50x50mm debe estar entre 40 y 400. + +**Registro:** +- Numero de fragmentos +- Foto de evidencia +- Firma del inspector + +### 2. Inspeccion Visual + +**Cuando:** Cada pieza antes de liberacion + +**Defectos a verificar:** +- Burbujas +- Rayaduras +- Manchas +- Deformaciones + +--- + +## FLUJO DE CALIDAD + +``` +Pieza producida + | +Inspeccion visual + | + +---+---+ + | | + OK Defecto + | | + v v +Prueba fragmentacion Registro de defecto + | | + +---+---+ v + | | Reclasificacion + OK Falla o + | | Desperdicio + v v +Aprobado Rechazo +``` + +--- + +## CERTIFICADOS + +### Contenido del Certificado + +1. Numero de lote +2. Fecha de produccion +3. Tipo de vidrio +4. Espesor +5. Resultados de pruebas +6. Firma digital + +### Generacion Automatica + +Los certificados se generan automaticamente al aprobar el lote en el sistema. + +--- + +## MODELO DE DATOS + +### quality_tests +```yaml +campos: + - test_type: enum(fragmentacion, visual, dimensional) + - result: enum(pass, fail, pending) + - fragments_count: integer (para fragmentacion) + - notes: text + - inspector_id: FK -> auth.users + - attachments: array (fotos) +``` + +### certifications +```yaml +campos: + - lot_id: FK -> inventory.lots + - certificate_number: string + - issue_date: timestamp + - pdf_url: string + - digital_signature: text +``` + +--- + +## INTEGRACION CON CORE + +- Tracking via SPEC-MAIL-THREAD-TRACKING +- Attachments via sistema de archivos del core +- Reportes via SPEC-REPORTES-FINANCIEROS (adaptado) + +--- + +## REFERENCIAS + +- DIRECTIVA-PRODUCCION-VIDRIO.md +- HERENCIA-SPECS-ERP-CORE.md +- Normativas NMX aplicables + +--- + +**Documento de directiva oficial** diff --git a/orchestration/directivas/DIRECTIVA-PRODUCCION-VIDRIO.md b/orchestration/directivas/DIRECTIVA-PRODUCCION-VIDRIO.md new file mode 100644 index 0000000..bc21c8f --- /dev/null +++ b/orchestration/directivas/DIRECTIVA-PRODUCCION-VIDRIO.md @@ -0,0 +1,129 @@ +# DIRECTIVA-PRODUCCION-VIDRIO + +**Version:** 1.0 +**Fecha:** 2025-12-08 +**Vertical:** Vidrio Templado +**Nivel:** 2B.2 + +--- + +## PROPOSITO + +Define las directrices para la implementacion del modulo de produccion de vidrio templado. + +--- + +## ALCANCE + +Esta directiva aplica a: +- Ordenes de produccion +- Procesos de corte y templado +- Gestion de hornos +- Control de calidad en linea + +--- + +## PRINCIPIOS + +### 1. Trazabilidad Completa + +Todo el proceso de produccion debe ser rastreable desde la materia prima hasta el producto terminado: + +``` +Materia Prima (lote) -> Corte -> Templado (hornada) -> Producto Terminado +``` + +### 2. Control de Calidad Integrado + +- Cada pieza debe tener su registro de calidad +- Las pruebas de fragmentacion son obligatorias +- Los certificados se generan automaticamente + +### 3. Optimizacion de Hornadas + +- Maximizar el uso del horno +- Agrupar piezas por espesor y tipo +- Registro de parametros de hornada + +--- + +## FLUJO DE PRODUCCION + +``` +1. Cotizacion aprobada + | +2. Orden de produccion generada + | +3. Corte de vidrio + |-- Registro de lote de materia prima + |-- Medidas y cantidad + | +4. Proceso de templado + |-- Asignacion a hornada + |-- Parametros de temperatura/tiempo + | +5. Control de calidad + |-- Pruebas de fragmentacion + |-- Inspeccion visual + | +6. Producto terminado + |-- Etiquetado + |-- Almacenamiento +``` + +--- + +## MODELO DE DATOS + +### Entidades Principales + +1. **production_orders**: Ordenes de produccion +2. **production_lines**: Piezas a producir +3. **tempering_processes**: Hornadas +4. **quality_tests**: Pruebas de calidad + +### Relaciones con Core + +- `production_orders` -> `inventory.products` (producto) +- `production_lines` -> `inventory.lots` (trazabilidad) +- `quality_tests` -> Core tracking (historial) + +--- + +## ESTADOS DE ORDEN + +``` +draft -> confirmed -> in_production -> quality_check -> done + | | + v v + cancelled rejected +``` + +--- + +## INTEGRACION CON ERP CORE + +### Herencia de Specs + +| Spec Core | Aplicacion | +|-----------|------------| +| SPEC-VALORACION-INVENTARIO | Costeo de produccion | +| SPEC-TRAZABILIDAD-LOTES-SERIES | Lotes de produccion | +| SPEC-MAIL-THREAD-TRACKING | Historial de cambios | + +### APIs a Extender + +- `ProductService` -> `GlassProductService` +- `InventoryService` -> `GlassInventoryService` + +--- + +## REFERENCIAS + +- HERENCIA-SPECS-ERP-CORE.md +- DATABASE_INVENTORY.yml +- MASTER_INVENTORY.yml + +--- + +**Documento de directiva oficial** diff --git a/orchestration/environment/PROJECT-ENV-CONFIG.yml b/orchestration/environment/PROJECT-ENV-CONFIG.yml new file mode 100644 index 0000000..5fd66de --- /dev/null +++ b/orchestration/environment/PROJECT-ENV-CONFIG.yml @@ -0,0 +1,156 @@ +# ============================================================================= +# PROJECT-ENV-CONFIG.yml - ERP VIDRIO TEMPLADO +# ============================================================================= +# Vertical de ERP-Suite especializada en Manufactura de Vidrio +# Actualizado: 2025-12-08 +# Referencia: ~/workspace/core/devtools/environment/DEVENV-PORTS.md +# ============================================================================= + +project: + name: "ERP-VIDRIO-TEMPLADO" + code: "VT" + description: "Sistema para Manufactura de Vidrio Templado y Laminado" + type: "vertical" + level: "2B.2" + status: "planning" + parent: "erp-suite" + + paths: + root: "/home/isem/workspace/projects/erp-suite/apps/verticales/vidrio-templado" + backend: "backend/" + frontend: "frontend/" + database: "database/" + docs: "docs/" + orchestration: "orchestration/" + +# ============================================================================= +# PUERTOS (Según DEVENV-PORTS.md) +# ============================================================================= +ports: + backend: 3200 + frontend: 5175 + database: 5434 + redis: 6381 + +# ============================================================================= +# BASE DE DATOS +# ============================================================================= +database: + type: "postgresql" + host: "localhost" + port: 5434 + name: "vidrio_templado_db" + user: "vidrio_user" + + schemas: + core_inherited: 12 # Schemas heredados de erp-core + vertical_specific: + - glass # Tipos vidrio, espesores, cotizaciones + - production # Órdenes, corte, templado + - quality # Tests, certificaciones, defectos + - logistics # Despachos, rutas + + migration: + tool: "typeorm" + directory: "database/migrations/" + +# ============================================================================= +# STACK TECNOLOGICO +# ============================================================================= +stack: + runtime: "Node.js 20+" + language: "TypeScript 5.3+" + backend: + framework: "Express.js" + orm: "TypeORM 0.3.17" + frontend: + framework: "React 18" + build: "Vite" + ui: "Tailwind CSS + shadcn/ui" + +# ============================================================================= +# HERENCIA DEL CORE +# ============================================================================= +core_inheritance: + version: "0.6.0" + tables_inherited: 97 + modules_inherited: + - auth + - users + - roles + - tenants + + specs_applicable: 4 + specs_implemented: 0 + specs_detail: + - SPEC-VALORACION-INVENTARIO + - SPEC-TRAZABILIDAD-LOTES-SERIES + - SPEC-PRICING-RULES + - SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN + +# ============================================================================= +# MODULOS DE LA VERTICAL +# ============================================================================= +modules: + total: 8 + list: + - code: VT-001 + name: Fundamentos + priority: P0 + status: pending + - code: VT-002 + name: Cotizaciones + priority: P0 + status: pending + - code: VT-003 + name: Producción + priority: P0 + status: pending + - code: VT-004 + name: Inventario + priority: P0 + status: pending + - code: VT-005 + name: Corte + priority: P1 + status: pending + - code: VT-006 + name: Templado + priority: P1 + status: pending + - code: VT-007 + name: Calidad + priority: P0 + status: pending + - code: VT-008 + name: Despacho + priority: P1 + status: pending + +# ============================================================================= +# ARCHIVOS DE ENTORNO +# ============================================================================= +env_files: + template: "orchestration/environment/.env.example" + backend: "backend/.env" + frontend: "frontend/.env" + +env_variables: + required: + - NODE_ENV + - PORT + - DATABASE_URL + - JWT_SECRET + optional: + - LOG_LEVEL + - CORS_ORIGIN + +# ============================================================================= +# NOTAS +# ============================================================================= +notes: | + - Vertical especializada en industria de vidrio templado + - Incluye calculador de vidrio (tipo × espesor × proceso) + - Trazabilidad lámina → pieza terminada + - Control de procesos de corte y templado + - Puertos asignados según DEVENV-PORTS.md (rango 3200) diff --git a/orchestration/inventarios/BACKEND_INVENTORY.yml b/orchestration/inventarios/BACKEND_INVENTORY.yml new file mode 100644 index 0000000..7386bdb --- /dev/null +++ b/orchestration/inventarios/BACKEND_INVENTORY.yml @@ -0,0 +1,104 @@ +# BACKEND INVENTORY - ERP Vidrio Templado (Vertical) +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 + +proyecto: + nombre: ERP Vidrio Templado + codigo: vidrio-templado + nivel: 2B.2 (Vertical) + estado: Planificacion + +herencia_core: + backend: erp-core + servicios_heredados: 45+ + referencia: "apps/erp-core/backend/" + +# ============================================ +# SERVICIOS PLANIFICADOS +# ============================================ +servicios_planificados: + produccion: + - nombre: ProductionOrderService + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + endpoints: + - POST /api/v1/vidrio/production-orders + - GET /api/v1/vidrio/production-orders + - GET /api/v1/vidrio/production-orders/:id + - PATCH /api/v1/vidrio/production-orders/:id + - POST /api/v1/vidrio/production-orders/:id/start + - POST /api/v1/vidrio/production-orders/:id/complete + + - nombre: GlassTypeService + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + endpoints: + - GET /api/v1/vidrio/glass-types + - POST /api/v1/vidrio/glass-types + - GET /api/v1/vidrio/glass-types/:id + + calidad: + - nombre: QualityTestService + modulo: VT-002 + prioridad: P0 + estado: NO_INICIADO + endpoints: + - POST /api/v1/vidrio/quality-tests + - GET /api/v1/vidrio/quality-tests + - POST /api/v1/vidrio/quality-tests/:id/results + + - nombre: CertificationService + modulo: VT-002 + prioridad: P1 + estado: NO_INICIADO + endpoints: + - GET /api/v1/vidrio/certifications + - POST /api/v1/vidrio/certifications + + inventario: + - nombre: GlassStockService + modulo: VT-003 + prioridad: P0 + estado: NO_INICIADO + extiende: InventoryService (core) + endpoints: + - GET /api/v1/vidrio/stock + - GET /api/v1/vidrio/stock/by-type + - POST /api/v1/vidrio/stock/movements + + maquinaria: + - nombre: FurnaceService + modulo: VT-004 + prioridad: P1 + estado: NO_INICIADO + endpoints: + - GET /api/v1/vidrio/furnaces + - POST /api/v1/vidrio/furnaces/:id/batches + - GET /api/v1/vidrio/furnaces/:id/status + + cotizaciones: + - nombre: GlassQuotationService + modulo: VT-006 + prioridad: P1 + estado: NO_INICIADO + extiende: SaleOrderService (core) + endpoints: + - POST /api/v1/vidrio/quotations + - GET /api/v1/vidrio/quotations + - POST /api/v1/vidrio/quotations/:id/calculate + +# ============================================ +# RESUMEN +# ============================================ +resumen: + servicios_heredados: 45+ + servicios_planificados: 7 + endpoints_planificados: 20 + estado_general: PLANIFICACION + ultima_actualizacion: 2025-12-08 + +referencias: + core_backend: "apps/erp-core/backend/" + master_inventory: "./MASTER_INVENTORY.yml" diff --git a/orchestration/inventarios/DATABASE_INVENTORY.yml b/orchestration/inventarios/DATABASE_INVENTORY.yml new file mode 100644 index 0000000..3940cf7 --- /dev/null +++ b/orchestration/inventarios/DATABASE_INVENTORY.yml @@ -0,0 +1,208 @@ +# DATABASE INVENTORY - ERP Vidrio Templado (Vertical) +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 + +proyecto: + nombre: ERP Vidrio Templado + codigo: vidrio-templado + nivel: 2B.2 (Vertical) + estado: Planificacion + +herencia_core: + base_de_datos: erp-core + version_core: "1.2.0" + tablas_heredadas: 144 # Verificado 2025-12-09 según conteo real DDL + schemas_heredados: + - nombre: auth + tablas: 26 # Autenticación, MFA, OAuth, API Keys + - nombre: core + tablas: 12 # Partners (clientes), catálogos, UoM + - nombre: financial + tablas: 15 # Contabilidad, facturas, pagos + - nombre: inventory + tablas: 20 # Vidrios, materiales, stock + - nombre: purchase + tablas: 8 # Compras de materiales + - nombre: sales + tablas: 10 # Cotizaciones, órdenes + - nombre: projects + tablas: 10 # Proyectos de instalación + - nombre: analytics + tablas: 7 # Centros de costo + - nombre: system + tablas: 13 # Mensajes, notificaciones, logs + - nombre: billing + tablas: 11 # SaaS (opcional) + - nombre: crm + tablas: 6 # Clientes potenciales (opcional) + - nombre: hr + tablas: 6 # Operadores, técnicos + referencia_ddl: "apps/erp-core/database/ddl/" + documento_herencia: "../database/HERENCIA-ERP-CORE.md" + variable_rls: "app.current_tenant_id" + +# ============================================ +# SCHEMAS ESPECIFICOS DE LA VERTICAL +# ============================================ +schemas_especificos: + - nombre: vidrio + descripcion: Schema para operaciones de vidrio templado + estado: PLANIFICADO + modulos_relacionados: [VT-001, VT-002, VT-003, VT-004, VT-005, VT-006] + +# ============================================ +# TABLAS PLANIFICADAS (EXTENSIONES) +# ============================================ +tablas_planificadas: + produccion: + - nombre: vidrio.production_orders + descripcion: Ordenes de produccion de vidrio + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + + - nombre: vidrio.production_lines + descripcion: Lineas de produccion (piezas) + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + + - nombre: vidrio.glass_types + descripcion: Catalogo de tipos de vidrio + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + + - nombre: vidrio.tempering_processes + descripcion: Procesos de templado + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + + calidad: + - nombre: vidrio.quality_tests + descripcion: Pruebas de calidad + modulo: VT-002 + prioridad: P0 + estado: NO_INICIADO + + - nombre: vidrio.quality_test_results + descripcion: Resultados de pruebas + modulo: VT-002 + prioridad: P0 + estado: NO_INICIADO + + - nombre: vidrio.certifications + descripcion: Certificaciones de producto + modulo: VT-002 + prioridad: P1 + estado: NO_INICIADO + + inventario_especializado: + - nombre: vidrio.raw_materials + descripcion: Materias primas de vidrio + modulo: VT-003 + prioridad: P0 + estado: NO_INICIADO + hereda_de: inventory.products + + - nombre: vidrio.glass_stock + descripcion: Stock de vidrio por tipo/medida + modulo: VT-003 + prioridad: P0 + estado: NO_INICIADO + + maquinaria: + - nombre: vidrio.furnaces + descripcion: Hornos de templado + modulo: VT-004 + prioridad: P1 + estado: NO_INICIADO + + - nombre: vidrio.furnace_batches + descripcion: Lotes de hornada + modulo: VT-004 + prioridad: P1 + estado: NO_INICIADO + + - nombre: vidrio.cutting_machines + descripcion: Maquinas de corte + modulo: VT-004 + prioridad: P1 + estado: NO_INICIADO + + trazabilidad: + - nombre: vidrio.glass_lots + descripcion: Lotes de vidrio + modulo: VT-005 + prioridad: P1 + estado: NO_INICIADO + hereda_de: inventory.lots + + - nombre: vidrio.lot_traceability + descripcion: Trazabilidad de lotes + modulo: VT-005 + prioridad: P1 + estado: NO_INICIADO + + cotizaciones: + - nombre: vidrio.quotations + descripcion: Cotizaciones de vidrio + modulo: VT-006 + prioridad: P1 + estado: NO_INICIADO + hereda_de: sales.sale_orders + + - nombre: vidrio.quotation_lines + descripcion: Lineas de cotizacion (piezas) + modulo: VT-006 + prioridad: P1 + estado: NO_INICIADO + +# ============================================ +# SPECS DEL CORE A IMPLEMENTAR +# ============================================ +specs_core_requeridas: + - spec: SPEC-VALORACION-INVENTARIO.md + prioridad: ALTA + aplicacion: Valoracion de materia prima y producto terminado + estado: PENDIENTE + + - spec: SPEC-TRAZABILIDAD-LOTES-SERIES.md + prioridad: ALTA + aplicacion: Trazabilidad de lotes de vidrio + estado: PENDIENTE + + - spec: SPEC-INVENTARIOS-CICLICOS.md + prioridad: MEDIA + aplicacion: Conteos de inventario de vidrio + estado: PENDIENTE + +# ============================================ +# POLITICA DE CARGA LIMPIA +# ============================================ +clean_load_policy: + referencia: "core/orchestration/directivas/legacy/DIRECTIVA-POLITICA-CARGA-LIMPIA.md" + principios: + - DDL-First: Los archivos DDL son la fuente de verdad + - Herencia: Extiende los schemas del core, no duplica + - Validacion: Siempre ejecutar carga limpia despues de cambios + prohibiciones: + - Ejecutar ALTER TABLE directo sin actualizar DDL + - Crear migrations para cambios de schema + - Duplicar tablas del core + +# ============================================ +# RESUMEN +# ============================================ +resumen: + tablas_heredadas: 144 + tablas_especificas_planificadas: 16 + schemas_especificos: 1 + estado_general: PLANIFICACION + ultima_actualizacion: 2025-12-08 + +referencias: + core_database: "apps/erp-core/database/" + core_inventory: "apps/erp-core/orchestration/inventarios/DATABASE_INVENTORY.yml" + master_inventory: "./MASTER_INVENTORY.yml" diff --git a/orchestration/inventarios/DEPENDENCY_GRAPH.yml b/orchestration/inventarios/DEPENDENCY_GRAPH.yml new file mode 100644 index 0000000..fe4f7f2 --- /dev/null +++ b/orchestration/inventarios/DEPENDENCY_GRAPH.yml @@ -0,0 +1,176 @@ +# DEPENDENCY GRAPH - ERP Vidrio Templado +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 +# Nivel: 2B.2 (Vertical) + +version: 1.0.0 +ultima_actualizacion: 2025-12-08 +estado: Planificacion + +# ============================================ +# RESUMEN +# ============================================ + +resumen: + total_modulos: 6 + modulos_core_heredados: 6 + dependencias_internas: 8 + dependencias_externas: 6 + +# ============================================ +# DEPENDENCIAS DE MODULOS PROPIOS +# ============================================ + +modulos_verticales: + VT-001_production: + depende_de: + internos: + - VT-003_inventory # Para verificar stock de materia prima + - VT-004_machinery # Para asignar hornos + core: + - MGN-001_auth + - MGN-002_users + - MGN-004_tenants + - MGN-007_audit + + VT-002_quality: + depende_de: + internos: + - VT-001_production # Para inspeccionar ordenes + - VT-005_traceability # Para vincular certificados a lotes + core: + - MGN-001_auth + - MGN-002_users + - MGN-007_audit + + VT-003_inventory: + depende_de: + internos: [] # Modulo base, sin dependencias internas + core: + - MGN-001_auth + - MGN-004_tenants + - MGN-005_catalogs + - MGN-011_inventory # Heredado y extendido + + VT-004_machinery: + depende_de: + internos: [] # Modulo base para equipos + core: + - MGN-001_auth + - MGN-004_tenants + - MGN-007_audit + + VT-005_traceability: + depende_de: + internos: + - VT-001_production # Para rastrear ordenes + - VT-002_quality # Para vincular inspecciones + - VT-004_machinery # Para registrar horno usado + core: + - MGN-001_auth + - MGN-007_audit + + VT-006_quotations: + depende_de: + internos: + - VT-003_inventory # Para verificar disponibilidad + core: + - MGN-001_auth + - MGN-002_users + - MGN-004_tenants + - MGN-005_catalogs + +# ============================================ +# HERENCIA DE ERP-CORE +# ============================================ + +modulos_core_heredados: + MGN-001_auth: + estado: Heredado 100% + uso: Autenticacion JWT + + MGN-002_users: + estado: Heredado 100% + uso: Gestion de usuarios + + MGN-003_roles: + estado: Heredado 100% + uso: RBAC + + MGN-004_tenants: + estado: Extendido + uso: Multi-planta + extension: Campos especificos de planta de produccion + + MGN-005_catalogs: + estado: Extendido + uso: Catalogos de tipos de vidrio + extension: Catalogos especializados + + MGN-007_audit: + estado: Heredado 100% + uso: Auditoria de operaciones + +# ============================================ +# GRAFO VISUAL (ASCII) +# ============================================ + +grafo_visual: | + + ┌─────────────────────────────────────────────────────────┐ + │ ERP-CORE (Heredado) │ + │ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │ + │ │AUTH │ │USERS│ │ROLES│ │TENANT│ │CATAL│ │AUDIT│ │ + │ └──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘ └──┬──┘ │ + └─────┼───────┼───────┼───────┼───────┼───────┼──────────┘ + │ │ │ │ │ │ + ▼ ▼ ▼ ▼ ▼ ▼ + ┌─────────────────────────────────────────────────────────┐ + │ VERTICAL VIDRIO TEMPLADO │ + │ │ + │ ┌────────┐ ┌────────┐ ┌────────┐ │ + │ │VT-003 │ │VT-004 │ │VT-006 │ │ + │ │INVENTORY◄───┤MACHINERY│ │QUOTATION│ │ + │ └────┬───┘ └────┬───┘ └────┬───┘ │ + │ │ │ │ │ + │ ▼ ▼ │ │ + │ ┌────────┐ ┌────────┐ │ │ + │ │VT-001 ├───►│VT-002 │ │ │ + │ │PRODUCTION │QUALITY │ │ │ + │ └────┬───┘ └────┬───┘ │ │ + │ │ │ │ │ + │ ▼ ▼ │ │ + │ ┌─────────────────────┐ │ │ + │ │ VT-005 │◄─────────┘ │ + │ │ TRACEABILITY │ │ + │ └─────────────────────┘ │ + │ │ + └─────────────────────────────────────────────────────────┘ + +# ============================================ +# ORDEN DE IMPLEMENTACION SUGERIDO +# ============================================ + +orden_implementacion: + fase_1_base: + - VT-003_inventory # Sin dependencias internas + - VT-004_machinery # Sin dependencias internas + + fase_2_core: + - VT-001_production # Depende de inventory y machinery + - VT-006_quotations # Depende de inventory + + fase_3_calidad: + - VT-002_quality # Depende de production + + fase_4_trazabilidad: + - VT-005_traceability # Depende de production, quality, machinery + +# ============================================ +# NOTAS +# ============================================ + +notas: + - "Este grafo define dependencias PLANIFICADAS" + - "Implementacion pendiente" + - "Seguir orden de implementacion sugerido" diff --git a/orchestration/inventarios/FRONTEND_INVENTORY.yml b/orchestration/inventarios/FRONTEND_INVENTORY.yml new file mode 100644 index 0000000..591c5b9 --- /dev/null +++ b/orchestration/inventarios/FRONTEND_INVENTORY.yml @@ -0,0 +1,102 @@ +# FRONTEND INVENTORY - ERP Vidrio Templado (Vertical) +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 + +proyecto: + nombre: ERP Vidrio Templado + codigo: vidrio-templado + nivel: 2B.2 (Vertical) + estado: Planificacion + +herencia_core: + frontend: erp-core + componentes_heredados: 80+ + referencia: "apps/erp-core/frontend/" + +# ============================================ +# COMPONENTES PLANIFICADOS +# ============================================ +componentes_planificados: + produccion: + - nombre: ProductionOrderList + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + + - nombre: ProductionOrderForm + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + + - nombre: ProductionOrderDetail + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + + - nombre: GlassTypeSelector + modulo: VT-001 + prioridad: P0 + estado: NO_INICIADO + + calidad: + - nombre: QualityTestForm + modulo: VT-002 + prioridad: P0 + estado: NO_INICIADO + + - nombre: QualityTestResults + modulo: VT-002 + prioridad: P0 + estado: NO_INICIADO + + - nombre: CertificationViewer + modulo: VT-002 + prioridad: P1 + estado: NO_INICIADO + + inventario: + - nombre: GlassStockDashboard + modulo: VT-003 + prioridad: P0 + estado: NO_INICIADO + + - nombre: StockByTypeChart + modulo: VT-003 + prioridad: P1 + estado: NO_INICIADO + + maquinaria: + - nombre: FurnaceMonitor + modulo: VT-004 + prioridad: P1 + estado: NO_INICIADO + + - nombre: FurnaceBatchForm + modulo: VT-004 + prioridad: P1 + estado: NO_INICIADO + + cotizaciones: + - nombre: GlassQuotationForm + modulo: VT-006 + prioridad: P1 + estado: NO_INICIADO + extiende: QuotationForm (core) + + - nombre: GlassPieceCalculator + modulo: VT-006 + prioridad: P1 + estado: NO_INICIADO + +# ============================================ +# RESUMEN +# ============================================ +resumen: + componentes_heredados: 80+ + componentes_planificados: 13 + estado_general: PLANIFICACION + ultima_actualizacion: 2025-12-08 + +referencias: + core_frontend: "apps/erp-core/frontend/" + master_inventory: "./MASTER_INVENTORY.yml" diff --git a/orchestration/inventarios/MASTER_INVENTORY.yml b/orchestration/inventarios/MASTER_INVENTORY.yml new file mode 100644 index 0000000..00c42e2 --- /dev/null +++ b/orchestration/inventarios/MASTER_INVENTORY.yml @@ -0,0 +1,168 @@ +# MASTER INVENTORY - ERP Vidrio Templado (Vertical) +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 + +proyecto: + nombre: ERP Vidrio Templado + codigo: VT + nivel: 2B.2 (Vertical) + estado: EPICAS_COMPLETAS + version: 0.3.0 + path: /home/isem/workspace/projects/erp-suite/apps/verticales/vidrio-templado + herencia: + core_version: "0.6.0" + tablas_heredadas: 144 + schemas_heredados: 12 + specs_aplicables: 25 + specs_implementadas: 0 + +resumen_general: + total_modulos: 8 + total_schemas_planificados: 1 + total_tablas_planificadas: 14 + total_tablas_implementadas: 14 + total_servicios_backend: 0 + total_componentes_frontend: 0 + story_points_estimados: 259 + test_coverage: N/A + ultima_actualizacion: 2025-12-09 + +modulos: + total: 8 + lista: + - codigo: VT-001 + nombre: Fundamentos + descripcion: Auth, Users, Tenants (hereda 100% core) + herencia: 100% + prioridad: P0 + estado: PLANIFICADO + sp: 0 + + - codigo: VT-002 + nombre: Cotizaciones + descripcion: Cotizador de vidrio por dimensiones + herencia: 30% + prioridad: P0 + estado: EPICA_COMPLETA + sp: 34 + epica: docs/08-epicas/EPIC-VT-002-cotizaciones.md + + - codigo: VT-003 + nombre: Produccion + descripcion: Órdenes de producción + herencia: 20% + prioridad: P0 + estado: EPICA_COMPLETA + sp: 42 + epica: docs/08-epicas/EPIC-VT-003-produccion.md + + - codigo: VT-004 + nombre: Inventario + descripcion: Stock de vidrio y materia prima + herencia: 70% + prioridad: P0 + estado: EPICA_COMPLETA + sp: 38 + epica: docs/08-epicas/EPIC-VT-004-inventario.md + + - codigo: VT-005 + nombre: Corte + descripcion: Optimización de corte (nesting) + herencia: 0% + prioridad: P0 + estado: EPICA_COMPLETA + sp: 45 + epica: docs/08-epicas/EPIC-VT-005-corte.md + + - codigo: VT-006 + nombre: Templado + descripcion: Control de hornos + herencia: 0% + prioridad: P0 + estado: EPICA_COMPLETA + sp: 40 + epica: docs/08-epicas/EPIC-VT-006-templado.md + + - codigo: VT-007 + nombre: Calidad + descripcion: Control de calidad + herencia: 40% + prioridad: P0 + estado: EPICA_COMPLETA + sp: 32 + epica: docs/08-epicas/EPIC-VT-007-calidad.md + + - codigo: VT-008 + nombre: Despacho + descripcion: Logística y entregas + herencia: 50% + prioridad: P0 + estado: EPICA_COMPLETA + sp: 28 + epica: docs/08-epicas/EPIC-VT-008-despacho.md + +specs_core: + aplicables: 25 + implementadas: 0 + por_implementar: 25 + documento: orchestration/00-guidelines/HERENCIA-SPECS-CORE.md + detalle: + - spec: SPEC-SISTEMA-SECUENCIAS + estado: PENDIENTE + - spec: SPEC-VALORACION-INVENTARIO + estado: PENDIENTE + - spec: SPEC-SEGURIDAD-API-KEYS-PERMISOS + estado: PENDIENTE + - spec: SPEC-TRAZABILIDAD-LOTES-SERIES + estado: PENDIENTE + - spec: SPEC-PRICING-RULES + estado: PENDIENTE + - spec: SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN + estado: PENDIENTE + - spec: SPEC-MAIL-THREAD-TRACKING + estado: PENDIENTE + - spec: SPEC-WIZARD-TRANSIENT-MODEL + estado: PENDIENTE + +capas: + database: + inventario: DATABASE_INVENTORY.yml + schemas_implementados: [vidrio] + tablas_implementadas: 14 + enums_implementados: 5 + ddl_files: + - init/00-extensions.sql + - init/01-create-schemas.sql + - init/02-rls-functions.sql + - init/03-vidrio-tables.sql + estado: DDL_COMPLETO + + backend: + inventario: BACKEND_INVENTORY.yml + modulos_planificados: 8 + estado: PLANIFICADO + + frontend: + inventario: FRONTEND_INVENTORY.yml + paginas_planificadas: 15 + estado: PLANIFICADO + +dependencias_core: + obligatorias: + - auth (MGN-001) + - users (MGN-002) + - roles (MGN-003) + - tenants (MGN-004) + opcionales: + - catalogs (MGN-005) + - financial (MGN-010) + - inventory (MGN-011) + - sales (MGN-013) + +referencias: + docs: docs/ + vision: docs/00-vision-general/VISION-VIDRIO.md + modulos: docs/02-definicion-modulos/INDICE-MODULOS.md + orchestration: orchestration/ + herencia_specs: orchestration/00-guidelines/HERENCIA-SPECS-CORE.md + herencia_db: database/HERENCIA-ERP-CORE.md diff --git a/orchestration/inventarios/README.md b/orchestration/inventarios/README.md new file mode 100644 index 0000000..e52b12e --- /dev/null +++ b/orchestration/inventarios/README.md @@ -0,0 +1,94 @@ +# Inventarios - ERP Vidrio Templado + +**Version:** 1.0.0 +**Fecha:** 2025-12-08 +**Nivel SIMCO:** 2B.2 + +--- + +## Descripción + +Este directorio contiene los inventarios YAML que sirven como **Single Source of Truth (SSOT)** para el proyecto ERP Vidrio Templado. Estos archivos son la referencia canónica para métricas, trazabilidad y componentes del sistema. + +--- + +## Archivos de Inventario + +| Archivo | Descripción | Estado | +|---------|-------------|--------| +| [MASTER_INVENTORY.yml](./MASTER_INVENTORY.yml) | Inventario maestro con métricas globales | Completo | +| [DATABASE_INVENTORY.yml](./DATABASE_INVENTORY.yml) | Inventario de objetos de base de datos | Planificado | +| [BACKEND_INVENTORY.yml](./BACKEND_INVENTORY.yml) | Inventario de componentes backend | Planificado | +| [FRONTEND_INVENTORY.yml](./FRONTEND_INVENTORY.yml) | Inventario de componentes frontend | Planificado | +| [TRACEABILITY_MATRIX.yml](./TRACEABILITY_MATRIX.yml) | Matriz de trazabilidad RF->ET->US | Completo | +| [DEPENDENCY_GRAPH.yml](./DEPENDENCY_GRAPH.yml) | Grafo de dependencias entre módulos | Completo | + +--- + +## Herencia del Core + +Este proyecto hereda del **ERP Core** (nivel 2B.1): + +| Aspecto | Heredado | Específico | +|---------|----------|------------| +| **Tablas DB** | ~100 | Planificado | +| **Schemas** | 8+ | Planificado | +| **Specs** | 3 | - | + +### Specs Heredadas + +1. SPEC-VALORACION-INVENTARIO.md +2. SPEC-TRAZABILIDAD-LOTES-SERIES.md +3. SPEC-INVENTARIOS-CICLICOS.md + +--- + +## Resumen Ejecutivo + +### Métricas del Proyecto + +| Métrica | Valor | +|---------|-------| +| **Módulos** | 5 (VT-001 a VT-005) | +| **Estado** | PLANIFICACION_COMPLETA | +| **Completitud** | 15% | + +### Dominio del Negocio + +- Producción de vidrio templado +- Control de calidad +- Trazabilidad de lotes +- Gestión de hornos y procesos + +--- + +## Directivas Específicas + +1. [DIRECTIVA-PRODUCCION-VIDRIO.md](../directivas/DIRECTIVA-PRODUCCION-VIDRIO.md) +2. [DIRECTIVA-CONTROL-CALIDAD.md](../directivas/DIRECTIVA-CONTROL-CALIDAD.md) + +--- + +## Configuración de Puertos (Planificado) + +| Servicio | Puerto | +|----------|--------| +| Backend API | 3300 | +| Frontend Web | 5176 | + +--- + +## Alineación con ERP Core + +Estos inventarios siguen la misma estructura que: +- `/erp-core/orchestration/inventarios/` (proyecto padre) + +### Referencias + +- Suite Master: `orchestration/inventarios/SUITE_MASTER_INVENTORY.yml` +- Core: `apps/erp-core/orchestration/inventarios/` +- Status Global: `orchestration/inventarios/STATUS.yml` + +--- + +**Última actualización:** 2025-12-08 diff --git a/orchestration/inventarios/TRACEABILITY_MATRIX.yml b/orchestration/inventarios/TRACEABILITY_MATRIX.yml new file mode 100644 index 0000000..b529152 --- /dev/null +++ b/orchestration/inventarios/TRACEABILITY_MATRIX.yml @@ -0,0 +1,342 @@ +# ============================================================================= +# TRACEABILITY MATRIX - ERP Vidrio Templado (Vertical) +# ============================================================================= +# Generado: 2025-12-08 +# Sistema: NEXUS + SIMCO v2.2.0 +# Propósito: Matriz de trazabilidad Módulos -> SPECS -> Componentes +# ============================================================================= + +metadata: + proyecto: ERP Vidrio Templado + codigo: VT + version: 1.0.0 + fecha_actualizacion: 2025-12-08 + base_core: erp-core v0.6.0 + +# ============================================================================= +# RESUMEN GLOBAL +# ============================================================================= +resumen: + modulos_total: 8 + modulos_documentados: 8 + epicas_completas: 8 + story_points_total: 259 + specs_core_aplicables: 25 + specs_implementadas: 0 + cobertura_specs: 0% + estado: EPICAS_COMPLETAS + +# ============================================================================= +# TRAZABILIDAD POR MÓDULO +# ============================================================================= +trazabilidad: + # --------------------------------------------------------------------------- + # VT-001: Fundamentos (100% herencia core) + # --------------------------------------------------------------------------- + VT-001: + nombre: Fundamentos + herencia: 100% + prioridad: P0 + sp: 0 + extiende: + - MGN-001 (auth) + - MGN-002 (users) + - MGN-003 (roles) + - MGN-004 (tenants) + database: + heredadas: [auth.users, auth.sessions, auth.roles, tenants.tenants] + extensiones: [] + backend: + heredados: [AuthService, UserService, RoleService, TenantService] + extensiones: [] + frontend: + heredados: [LoginForm, UserProfile, RoleSelector] + extensiones: [] + specs_core: + - SPEC-SISTEMA-SECUENCIAS + - SPEC-SEGURIDAD-API-KEYS-PERMISOS + + # --------------------------------------------------------------------------- + # VT-002: Cotizaciones + # --------------------------------------------------------------------------- + VT-002: + nombre: Cotizaciones + herencia: 30% + prioridad: P0 + sp: 34 + epica: docs/08-epicas/EPIC-VT-002-cotizaciones.md + database: + tablas: + - glass.quotations + - glass.quotation_lines + - glass.glass_types + - glass.glass_thicknesses + - glass.processing_options + backend: + servicios: + - GlassQuotationService + - GlassCalculatorService + - GlassTypeService + frontend: + componentes: + - GlassQuotationForm + - GlassPieceCalculator + - DimensionInput + - ProcessingSelector + - QuotationPreview + - QuotationList + specs_core: + - SPEC-PRICING-RULES (reglas de precio por tipo/espesor) + + # --------------------------------------------------------------------------- + # VT-003: Producción + # --------------------------------------------------------------------------- + VT-003: + nombre: Produccion + herencia: 20% + prioridad: P0 + sp: 42 + epica: docs/08-epicas/EPIC-VT-003-produccion.md + database: + tablas: + - production.production_orders + - production.production_lines + - production.production_stages + - production.work_stations + backend: + servicios: + - ProductionOrderService + - ProductionPlanningService + - WorkStationService + frontend: + componentes: + - ProductionOrderList + - ProductionOrderForm + - ProductionKanban + - ProductionScheduler + - WorkStationMonitor + specs_core: + - SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN (seguimiento producción) + + # --------------------------------------------------------------------------- + # VT-004: Inventario + # --------------------------------------------------------------------------- + VT-004: + nombre: Inventario + herencia: 70% + prioridad: P0 + sp: 38 + epica: docs/08-epicas/EPIC-VT-004-inventario.md + database: + tablas: + - glass.raw_materials + - glass.glass_stock + - glass.stock_movements + backend: + servicios: + - GlassStockService + - RawMaterialService + frontend: + componentes: + - GlassStockDashboard + - StockByTypeChart + - RawMaterialList + - StockAlertPanel + specs_core: + - SPEC-VALORACION-INVENTARIO + - SPEC-TRAZABILIDAD-LOTES-SERIES + + # --------------------------------------------------------------------------- + # VT-005: Corte (Nesting) + # --------------------------------------------------------------------------- + VT-005: + nombre: Corte + herencia: 0% + prioridad: P1 + sp: 45 + epica: docs/08-epicas/EPIC-VT-005-corte.md + database: + tablas: + - production.cutting_plans + - production.cutting_patterns + - production.material_sheets + - production.cutting_waste + backend: + servicios: + - CuttingPlanService + - NestingOptimizer + - WasteTrackingService + frontend: + componentes: + - CuttingPlanViewer + - NestingVisualizer + - SheetSelector + - WasteReport + - OptimizationControls + specs_core: [] + nota: "Algoritmo de nesting propietario para optimización de corte" + + # --------------------------------------------------------------------------- + # VT-006: Templado + # --------------------------------------------------------------------------- + VT-006: + nombre: Templado + herencia: 0% + prioridad: P1 + sp: 40 + epica: docs/08-epicas/EPIC-VT-006-templado.md + database: + tablas: + - production.furnaces + - production.furnace_batches + - production.tempering_profiles + - production.batch_items + backend: + servicios: + - FurnaceService + - TemperingProfileService + - BatchSchedulerService + frontend: + componentes: + - FurnaceMonitor + - FurnaceBatchForm + - TemperatureChart + - BatchQueueView + - ProfileEditor + specs_core: [] + nota: "Control de hornos con perfiles de temperatura por tipo de vidrio" + + # --------------------------------------------------------------------------- + # VT-007: Calidad + # --------------------------------------------------------------------------- + VT-007: + nombre: Calidad + herencia: 40% + prioridad: P0 + sp: 32 + epica: docs/08-epicas/EPIC-VT-007-calidad.md + database: + tablas: + - quality.quality_tests + - quality.test_results + - quality.defect_types + - quality.certifications + backend: + servicios: + - QualityTestService + - CertificationService + - DefectTrackingService + frontend: + componentes: + - QualityTestForm + - TestResultsGrid + - DefectCapture + - CertificationViewer + specs_core: + - SPEC-TRAZABILIDAD-LOTES-SERIES + + # --------------------------------------------------------------------------- + # VT-008: Despacho + # --------------------------------------------------------------------------- + VT-008: + nombre: Despacho + herencia: 50% + prioridad: P1 + sp: 28 + epica: docs/08-epicas/EPIC-VT-008-despacho.md + database: + tablas: + - logistics.shipments + - logistics.shipment_items + - logistics.delivery_routes + - logistics.packing_lists + backend: + servicios: + - ShipmentService + - RouteOptimizationService + - PackingService + frontend: + componentes: + - ShipmentList + - DeliveryRouteMap + - PackingListGenerator + - DeliveryConfirmation + specs_core: + - SPEC-MAIL-THREAD-TRACKING (notificaciones entrega) + +# ============================================================================= +# REFERENCIAS CRUZADAS CON ERP-CORE +# ============================================================================= +referencias_core: + specs_implementadas: [] + + specs_pendientes: + - spec: SPEC-SISTEMA-SECUENCIAS + modulos: [VT-001, VT-002, VT-003] + prioridad: P0 + estado: PENDIENTE + + - spec: SPEC-VALORACION-INVENTARIO + modulos: [VT-004] + prioridad: P0 + estado: PENDIENTE + adaptacion: "Valorización de vidrio crudo y procesado" + + - spec: SPEC-TRAZABILIDAD-LOTES-SERIES + modulos: [VT-004, VT-007] + prioridad: P0 + estado: PENDIENTE + adaptacion: "Trazabilidad desde lámina hasta pieza final" + + - spec: SPEC-PRICING-RULES + modulos: [VT-002] + prioridad: P0 + estado: PENDIENTE + adaptacion: "Precios por tipo vidrio × espesor × proceso" + + - spec: SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN + modulos: [VT-003] + prioridad: P1 + estado: PENDIENTE + adaptacion: "Seguimiento de órdenes de producción" + + modulos_extendidos: + - core: MGN-001 (auth) + vertical: VT-001 + tipo: herencia_directa + + - core: MGN-002 (users) + vertical: VT-001 + tipo: herencia_directa + + - core: MGN-011 (inventory) + vertical: VT-004 + tipo: extension + + - core: MGN-013 (sales) + vertical: VT-002 + tipo: extension + +# ============================================================================= +# VALIDACIONES +# ============================================================================= +validaciones: + modulos_huerfanos: 0 + specs_sin_modulo: 0 + + alertas: + - tipo: implementacion_pendiente + mensaje: "0% de código implementado - fase planificación" + + - tipo: spec_critica + spec: SPEC-TRAZABILIDAD-LOTES-SERIES + mensaje: "Crítica para certificación de calidad" + +# ============================================================================= +# METADATA +# ============================================================================= +metadata_documento: + creado_por: Claude-Code + fecha_creacion: 2025-12-08 + ultima_actualizacion: 2025-12-08 + version_documento: 1.0.0 diff --git a/orchestration/prompts/PROMPT-VT-BACKEND-AGENT.md b/orchestration/prompts/PROMPT-VT-BACKEND-AGENT.md new file mode 100644 index 0000000..54eeaa0 --- /dev/null +++ b/orchestration/prompts/PROMPT-VT-BACKEND-AGENT.md @@ -0,0 +1,130 @@ +# Prompt: Vidrio Templado Backend Agent + +## Identidad + +Eres un agente especializado en desarrollo backend para ERP Vidrio Templado. Tu expertise está en Node.js, Express, TypeScript, TypeORM y PostgreSQL, con conocimiento específico del dominio de manufactura de vidrio. + +## Contexto del Proyecto + +```yaml +proyecto: ERP Vidrio Templado +codigo: VT +tipo: Vertical de ERP-Suite +nivel: 2B.2 +stack: + runtime: Node.js 20+ + framework: Express.js + lenguaje: TypeScript 5.3+ + orm: TypeORM 0.3.17 + database: PostgreSQL 15+ + auth: JWT + bcryptjs (heredado de core) + +paths: + vertical: /home/isem/workspace/projects/erp-suite/apps/verticales/vidrio-templado/ + backend: /home/isem/workspace/projects/erp-suite/apps/verticales/vidrio-templado/backend/ + docs: /home/isem/workspace/projects/erp-suite/apps/verticales/vidrio-templado/docs/ + core: /home/isem/workspace/projects/erp-suite/apps/erp-core/ + directivas: orchestration/directivas/ + +puertos: + backend: 3200 + frontend: 5175 + database: 5434 +``` + +## Herencia del Core + +Este proyecto HEREDA del ERP-Core: +- Módulos: auth, users, roles, tenants +- SPECS: Ver `orchestration/00-guidelines/HERENCIA-SPECS-CORE.md` +- Base de datos: 97 tablas heredadas + +**REGLA:** Extender, NUNCA modificar el core. + +## Módulos de la Vertical + +| Módulo | Descripción | Prioridad | +|--------|-------------|-----------| +| VT-001 | Fundamentos (100% core) | P0 | +| VT-002 | Cotizaciones (calculador vidrio) | P0 | +| VT-003 | Producción (órdenes) | P0 | +| VT-004 | Inventario (vidrio/materia prima) | P0 | +| VT-005 | Corte (nesting/optimización) | P1 | +| VT-006 | Templado (control hornos) | P1 | +| VT-007 | Calidad (tests/certificados) | P0 | +| VT-008 | Despacho (logística) | P1 | + +## Directivas Obligatorias + +### 1. Multi-Tenant (Heredada) +``` +OBLIGATORIO: Toda operación debe filtrar por tenant_id. +Ver: core/orchestration/directivas/DIRECTIVA-MULTI-TENANT.md +``` + +### 2. Producción de Vidrio +``` +ESPECÍFICO: Control de procesos de corte y templado. +Ver: directivas/DIRECTIVA-PRODUCCION-VIDRIO.md +``` + +### 3. Control de Calidad +``` +ESPECÍFICO: Trazabilidad de lotes y certificaciones. +Ver: directivas/DIRECTIVA-CONTROL-CALIDAD.md +``` + +## Estructura de Módulo + +``` +backend/src/modules/{nombre}/ +├── {nombre}.module.ts +├── {nombre}.controller.ts +├── {nombre}.service.ts +├── {nombre}.entity.ts +├── dto/ +│ ├── create-{nombre}.dto.ts +│ └── update-{nombre}.dto.ts +└── __tests__/ + └── {nombre}.service.spec.ts +``` + +## Schemas de Base de Datos + +```yaml +schemas_especificos: + - glass: Tipos de vidrio, espesores, cotizaciones + - production: Órdenes, corte, templado + - quality: Tests, certificaciones, defectos + - logistics: Despachos, rutas +``` + +## SPECS del Core Aplicables + +- SPEC-VALORACION-INVENTARIO (vidrio crudo y procesado) +- SPEC-TRAZABILIDAD-LOTES-SERIES (lámina → pieza) +- SPEC-PRICING-RULES (tipo × espesor × proceso) +- SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN (órdenes producción) + +## Flujo de Trabajo + +``` +1. Leer especificación del módulo en docs/02-definicion-modulos/ +2. Verificar SPECS aplicables en HERENCIA-SPECS-CORE.md +3. Revisar DDL existente en database/ +4. Implementar siguiendo estructura de módulo +5. Actualizar TRAZA-TAREAS-BACKEND.md +6. Actualizar BACKEND_INVENTORY.yml +``` + +## Referencias + +- Inventario: `orchestration/inventarios/MASTER_INVENTORY.yml` +- Trazabilidad: `orchestration/inventarios/TRACEABILITY_MATRIX.yml` +- Herencia: `orchestration/00-guidelines/HERENCIA-SPECS-CORE.md` +- Core directivas: `/home/isem/workspace/core/orchestration/directivas/` + +--- + +**Versión:** 1.0.0 +**Sistema:** SIMCO v2.2.0 diff --git a/orchestration/referencias/DEPENDENCIAS-ERP-CORE.yml b/orchestration/referencias/DEPENDENCIAS-ERP-CORE.yml new file mode 100644 index 0000000..8b3ab83 --- /dev/null +++ b/orchestration/referencias/DEPENDENCIAS-ERP-CORE.yml @@ -0,0 +1,107 @@ +# Dependencias de ERP-Core para ERP Vidrio Templado +# ================================================== + +version: "1.0.0" +fecha_actualizacion: "2025-12-27" +proyecto: "erp-vidrio-templado" + +# Base de la que hereda +base: + proyecto: "erp-core" + version_minima: "1.2.0" + ruta: "projects/erp-core" + ruta_absoluta: "/home/isem/workspace-v1/projects/erp-core" + +# Schemas de base de datos heredados +database: + herencia: "completa" + + schemas_usados: + - nombre: "auth_management" + tablas_heredadas: 26 + tablas_extendidas: 0 + uso: "Autenticacion estandar" + + - nombre: "core_management" + tablas_heredadas: 12 + tablas_extendidas: 2 + uso: "Clientes, proveedores de materia prima" + extensiones: + - "Proveedores de vidrio" + - "Certificaciones de calidad" + + - nombre: "core_catalogs" + tablas_heredadas: 8 + tablas_extendidas: 5 + uso: "Catalogos de vidrio" + extensiones: + - "Tipos de vidrio" + - "Espesores" + - "Acabados" + - "Procesos de templado" + - "Defectos de calidad" + + - nombre: "inventory_management" + tablas_heredadas: 20 + tablas_extendidas: 4 + uso: "Inventario de vidrio" + extensiones: + - "Dimensiones de lamina (ancho x alto)" + - "Tracking por lote de produccion" + - "Control de desperdicio/retazo" + - "Trazabilidad por horno" + +# Schemas propios de vidrio templado (no heredados) +schemas_propios: + - nombre: "production_management" + tablas: 12 + descripcion: "Ordenes de produccion, hornos, lotes" + + - nombre: "quality_management" + tablas: 8 + descripcion: "Inspecciones, certificados, defectos" + +# Variable RLS obligatoria +rls: + variable: "app.current_tenant_id" + tipo: "UUID" + nota: "TODAS las queries deben filtrar por esta variable" + +# Modulos backend importados +backend: + modulos_importados: + - nombre: "AuthModule" + desde: "@erp-core/auth" + version: "1.0.0" + + - nombre: "UsersModule" + desde: "@erp-core/users" + version: "1.0.0" + + - nombre: "RolesModule" + desde: "@erp-core/roles" + version: "1.0.0" + + - nombre: "TenantsModule" + desde: "@erp-core/tenants" + version: "1.0.0" + + - nombre: "InventoryModule" + desde: "@erp-core/inventory" + version: "1.0.0" + +# Consideraciones especiales +trazabilidad: + obligatoria: true + requisitos: + - "Trazabilidad 100% de lotes" + - "Registro de parametros de templado (temperatura, tiempo)" + - "Certificados de calidad por lote" + - "Historial de inspecciones" + +# Validaciones requeridas +validaciones: + - "Variable RLS correcta en todo DDL" + - "Trazabilidad de lotes implementada" + - "Imports de erp-core funcionando" + - "Tests pasando" diff --git a/orchestration/referencias/DEPENDENCIAS-SHARED.yml b/orchestration/referencias/DEPENDENCIAS-SHARED.yml new file mode 100644 index 0000000..c0f5d88 --- /dev/null +++ b/orchestration/referencias/DEPENDENCIAS-SHARED.yml @@ -0,0 +1,66 @@ +# Dependencias de Modulos Compartidos para ERP Vidrio Templado +# ============================================================= + +version: "1.0.0" +fecha_actualizacion: "2025-12-27" +proyecto: "erp-vidrio-templado" + +# Modulos del catalogo usados +modulos_catalogo: + - id: "auth" + ruta: "core/catalog/auth" + version_usada: "1.0.0" + fecha_implementacion: "pendiente" + adaptaciones: null + tests_pasando: false + + - id: "multi-tenancy" + ruta: "core/catalog/multi-tenancy" + version_usada: "1.0.0" + fecha_implementacion: "pendiente" + adaptaciones: + - descripcion: "Planta como tenant especializado" + archivo: "Por implementar" + tests_pasando: false + + - id: "notifications" + ruta: "core/catalog/notifications" + version_usada: "1.0.0" + fecha_implementacion: "pendiente" + adaptaciones: + - descripcion: "Alertas de produccion" + archivo: "Por implementar" + - descripcion: "Alertas de desviacion en hornos" + archivo: "Por implementar" + tests_pasando: false + + - id: "rate-limiting" + ruta: "core/catalog/rate-limiting" + version_usada: "1.0.0" + fecha_implementacion: "pendiente" + adaptaciones: null + tests_pasando: false + +# Modulos de core/modules usados +modulos_core: [] + +# Librerias de shared/libs usadas +librerias_shared: [] + +# Modulos pendientes de implementar +pendientes: + - id: "inventory" + prioridad: "alta" + justificacion: "Control de laminas y materia prima" + + - id: "lot-tracking" + prioridad: "alta" + justificacion: "Trazabilidad 100% de lotes (normativa)" + + - id: "quality-control" + prioridad: "alta" + justificacion: "Inspecciones y certificados" + + - id: "plc-integration" + prioridad: "baja" + justificacion: "Conexion con PLCs de hornos (futuro)" diff --git a/orchestration/trazas/TRAZA-TAREAS-BACKEND.md b/orchestration/trazas/TRAZA-TAREAS-BACKEND.md new file mode 100644 index 0000000..8ce421d --- /dev/null +++ b/orchestration/trazas/TRAZA-TAREAS-BACKEND.md @@ -0,0 +1,38 @@ +# TRAZA DE TAREAS - BACKEND LAYER +# Proyecto: ERP VIDRIO TEMPLADO (Vertical) +# Sistema: NEXUS + SIMCO v2.2.0 +# Estado: TEMPLATE - Proyecto en planificación + +--- + +## Formato de Registro + +```yaml +[FECHA] - [ID_TAREA] - [OPERACION] +Descripcion: {descripcion} +Archivos: + - {archivo_1} +Estado: {COMPLETADO | EN_PROGRESO | BLOQUEADO} +Ejecutado_por: {AGENTE | USUARIO} +``` + +--- + +## Historial de Tareas + +*Sin tareas registradas - Proyecto en planificación* + +--- + +## Resumen + +| Métrica | Valor | +|---------|-------| +| Total tareas | 0 | +| Completadas | 0 | +| En progreso | 0 | +| Bloqueadas | 0 | +| Última actualización | 2025-12-08 | + +--- +*Traza de tareas - Sistema NEXUS* diff --git a/orchestration/trazas/TRAZA-TAREAS-DATABASE.md b/orchestration/trazas/TRAZA-TAREAS-DATABASE.md new file mode 100644 index 0000000..783da64 --- /dev/null +++ b/orchestration/trazas/TRAZA-TAREAS-DATABASE.md @@ -0,0 +1,38 @@ +# TRAZA DE TAREAS - DATABASE LAYER +# Proyecto: ERP VIDRIO TEMPLADO (Vertical) +# Sistema: NEXUS + SIMCO v2.2.0 +# Estado: TEMPLATE - Proyecto en planificación + +--- + +## Formato de Registro + +```yaml +[FECHA] - [ID_TAREA] - [OPERACION] +Descripcion: {descripcion} +Archivos: + - {archivo_1} +Estado: {COMPLETADO | EN_PROGRESO | BLOQUEADO} +Ejecutado_por: {AGENTE | USUARIO} +``` + +--- + +## Historial de Tareas + +*Sin tareas registradas - Proyecto en planificación* + +--- + +## Resumen + +| Métrica | Valor | +|---------|-------| +| Total tareas | 0 | +| Completadas | 0 | +| En progreso | 0 | +| Bloqueadas | 0 | +| Última actualización | 2025-12-08 | + +--- +*Traza de tareas - Sistema NEXUS* diff --git a/orchestration/trazas/TRAZA-TAREAS-FRONTEND.md b/orchestration/trazas/TRAZA-TAREAS-FRONTEND.md new file mode 100644 index 0000000..6975e83 --- /dev/null +++ b/orchestration/trazas/TRAZA-TAREAS-FRONTEND.md @@ -0,0 +1,38 @@ +# TRAZA DE TAREAS - FRONTEND LAYER +# Proyecto: ERP VIDRIO TEMPLADO (Vertical) +# Sistema: NEXUS + SIMCO v2.2.0 +# Estado: TEMPLATE - Proyecto en planificación + +--- + +## Formato de Registro + +```yaml +[FECHA] - [ID_TAREA] - [OPERACION] +Descripcion: {descripcion} +Archivos: + - {archivo_1} +Estado: {COMPLETADO | EN_PROGRESO | BLOQUEADO} +Ejecutado_por: {AGENTE | USUARIO} +``` + +--- + +## Historial de Tareas + +*Sin tareas registradas - Proyecto en planificación* + +--- + +## Resumen + +| Métrica | Valor | +|---------|-------| +| Total tareas | 0 | +| Completadas | 0 | +| En progreso | 0 | +| Bloqueadas | 0 | +| Última actualización | 2025-12-08 | + +--- +*Traza de tareas - Sistema NEXUS*