Initial commit - erp-vidrio-templado

This commit is contained in:
rckrdmrd 2026-01-04 06:12:11 -06:00
commit 1d39436fed
54 changed files with 6489 additions and 0 deletions

118
.env.example Normal file
View File

@ -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

31
INVENTARIO.yml Normal file
View File

@ -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

144
PROJECT-STATUS.md Normal file
View File

@ -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

62
README.md Normal file
View File

@ -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*

View File

@ -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

90
database/README.md Normal file
View File

@ -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)

View File

@ -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
-- ============================================================================

View File

@ -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
-- ============================================================================

View File

@ -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
-- ============================================================================

View File

@ -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
-- ============================================================================

View File

@ -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

View File

@ -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

View File

@ -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/`

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

38
docs/README.md Normal file
View File

@ -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

40
docs/_MAP.md Normal file
View File

@ -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.

View File

@ -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*

View File

@ -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*

View File

@ -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*

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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*

View File

@ -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**

View File

@ -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**

View File

@ -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)

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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)"

View File

@ -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*

View File

@ -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*

View File

@ -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*