feat: Add orchestration context and environment configuration
- Add CONTEXT-MAP.yml and ENVIRONMENT-INVENTORY.yml - Add propagacion-fase8 directory - Update CONTEXTO-PROYECTO.md and DEPENDENCIAS-SHARED.yml 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
1d39436fed
commit
67b28eed59
53
database/schemas/04-financial-ext-schema-ddl.sql
Normal file
53
database/schemas/04-financial-ext-schema-ddl.sql
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- FINANCIAL EXTENSIONS - FASE 8 ERP-Core
|
||||||
|
-- ERP Vidrio Templado
|
||||||
|
-- ============================================================================
|
||||||
|
|
||||||
|
CREATE SCHEMA IF NOT EXISTS financial;
|
||||||
|
|
||||||
|
DO $$ BEGIN
|
||||||
|
CREATE TYPE financial.payment_method_type AS ENUM ('inbound', 'outbound');
|
||||||
|
EXCEPTION WHEN duplicate_object THEN NULL;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
-- Métodos de pago
|
||||||
|
CREATE TABLE IF NOT EXISTS financial.payment_methods (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
code VARCHAR(20) NOT NULL,
|
||||||
|
payment_type financial.payment_method_type NOT NULL,
|
||||||
|
-- Extensiones vidrio
|
||||||
|
aplica_anticipo BOOLEAN DEFAULT false,
|
||||||
|
porcentaje_anticipo NUMERIC(5,2) DEFAULT 0,
|
||||||
|
active BOOLEAN DEFAULT true,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||||
|
CONSTRAINT uq_payment_methods_code UNIQUE(tenant_id, code)
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Términos de pago
|
||||||
|
CREATE TABLE IF NOT EXISTS financial.payment_term_lines (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
payment_term_id UUID,
|
||||||
|
value_type VARCHAR(20) DEFAULT 'percent',
|
||||||
|
value NUMERIC(10,2) DEFAULT 0,
|
||||||
|
days INTEGER DEFAULT 0,
|
||||||
|
applies_to VARCHAR(50), -- 'anticipo', 'produccion', 'instalacion', 'finiquito'
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Índices y RLS
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_payment_methods_tenant ON financial.payment_methods(tenant_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_payment_term_lines_tenant ON financial.payment_term_lines(tenant_id);
|
||||||
|
|
||||||
|
ALTER TABLE financial.payment_methods ENABLE ROW LEVEL SECURITY;
|
||||||
|
ALTER TABLE financial.payment_term_lines ENABLE ROW LEVEL SECURITY;
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_payment_methods ON financial.payment_methods;
|
||||||
|
CREATE POLICY tenant_isolation_payment_methods ON financial.payment_methods
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_payment_term_lines ON financial.payment_term_lines;
|
||||||
|
CREATE POLICY tenant_isolation_payment_term_lines ON financial.payment_term_lines
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
181
database/schemas/05-hr-ext-fase8-schema-ddl.sql
Normal file
181
database/schemas/05-hr-ext-fase8-schema-ddl.sql
Normal file
@ -0,0 +1,181 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- HR EXTENSIONS - FASE 8 ERP-Core
|
||||||
|
-- ERP Vidrio Templado
|
||||||
|
-- ============================================================================
|
||||||
|
|
||||||
|
CREATE SCHEMA IF NOT EXISTS hr;
|
||||||
|
|
||||||
|
DO $$ BEGIN
|
||||||
|
CREATE TYPE hr.expense_status AS ENUM ('draft', 'submitted', 'approved', 'posted', 'paid', 'rejected');
|
||||||
|
EXCEPTION WHEN duplicate_object THEN NULL;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
DO $$ BEGIN
|
||||||
|
CREATE TYPE hr.payslip_status AS ENUM ('draft', 'verify', 'done', 'cancel');
|
||||||
|
EXCEPTION WHEN duplicate_object THEN NULL;
|
||||||
|
END $$;
|
||||||
|
|
||||||
|
-- Ubicaciones (áreas de producción)
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.work_locations (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
-- Extensiones vidrio
|
||||||
|
tipo_area VARCHAR(50), -- 'corte', 'pulido', 'templado', 'almacen', 'instalacion'
|
||||||
|
capacidad_m2 NUMERIC(10,2),
|
||||||
|
tiene_horno BOOLEAN DEFAULT false,
|
||||||
|
temperatura_max INTEGER,
|
||||||
|
active BOOLEAN DEFAULT true,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Tipos de habilidad
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.skill_types (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Habilidades
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.skills (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
skill_type_id UUID REFERENCES hr.skill_types(id),
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
-- Extensiones vidrio
|
||||||
|
tipo_proceso VARCHAR(50), -- 'corte', 'biselado', 'templado', 'instalacion'
|
||||||
|
maquina_habilitado VARCHAR(100),
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Niveles
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.skill_levels (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
skill_type_id UUID REFERENCES hr.skill_types(id),
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
level INTEGER DEFAULT 1,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Habilidades de empleado
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.employee_skills (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
employee_id UUID NOT NULL,
|
||||||
|
skill_id UUID REFERENCES hr.skills(id),
|
||||||
|
skill_level_id UUID REFERENCES hr.skill_levels(id),
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Gastos
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.expense_sheets (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
employee_id UUID NOT NULL,
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
state hr.expense_status DEFAULT 'draft',
|
||||||
|
total_amount NUMERIC(12,2) DEFAULT 0,
|
||||||
|
proyecto_id UUID,
|
||||||
|
obra_id UUID,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.expenses (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
sheet_id UUID REFERENCES hr.expense_sheets(id) ON DELETE CASCADE,
|
||||||
|
employee_id UUID NOT NULL,
|
||||||
|
name VARCHAR(200) NOT NULL,
|
||||||
|
date DATE DEFAULT CURRENT_DATE,
|
||||||
|
total_amount NUMERIC(12,2) NOT NULL,
|
||||||
|
state hr.expense_status DEFAULT 'draft',
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Nómina
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.payslip_structures (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
code VARCHAR(20) NOT NULL,
|
||||||
|
tipo_pago VARCHAR(50),
|
||||||
|
active BOOLEAN DEFAULT true,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||||
|
CONSTRAINT uq_payslip_structures_code UNIQUE(tenant_id, code)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.payslips (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
employee_id UUID NOT NULL,
|
||||||
|
structure_id UUID REFERENCES hr.payslip_structures(id),
|
||||||
|
date_from DATE NOT NULL,
|
||||||
|
date_to DATE NOT NULL,
|
||||||
|
state hr.payslip_status DEFAULT 'draft',
|
||||||
|
gross NUMERIC(12,2) DEFAULT 0,
|
||||||
|
net NUMERIC(12,2) DEFAULT 0,
|
||||||
|
area_id UUID REFERENCES hr.work_locations(id),
|
||||||
|
metros_producidos NUMERIC(10,2),
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS hr.payslip_lines (
|
||||||
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||||
|
tenant_id UUID NOT NULL,
|
||||||
|
payslip_id UUID REFERENCES hr.payslips(id) ON DELETE CASCADE,
|
||||||
|
name VARCHAR(100) NOT NULL,
|
||||||
|
code VARCHAR(20),
|
||||||
|
amount NUMERIC(12,2) DEFAULT 0,
|
||||||
|
created_at TIMESTAMPTZ DEFAULT NOW()
|
||||||
|
);
|
||||||
|
|
||||||
|
-- Índices
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_work_locations_tenant ON hr.work_locations(tenant_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_skill_types_tenant ON hr.skill_types(tenant_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_skills_tenant ON hr.skills(tenant_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_expense_sheets_tenant ON hr.expense_sheets(tenant_id);
|
||||||
|
CREATE INDEX IF NOT EXISTS idx_payslips_tenant ON hr.payslips(tenant_id);
|
||||||
|
|
||||||
|
-- RLS
|
||||||
|
ALTER TABLE hr.work_locations ENABLE ROW LEVEL SECURITY;
|
||||||
|
ALTER TABLE hr.skill_types ENABLE ROW LEVEL SECURITY;
|
||||||
|
ALTER TABLE hr.skills ENABLE ROW LEVEL SECURITY;
|
||||||
|
ALTER TABLE hr.skill_levels ENABLE ROW LEVEL SECURITY;
|
||||||
|
ALTER TABLE hr.expense_sheets ENABLE ROW LEVEL SECURITY;
|
||||||
|
ALTER TABLE hr.expenses ENABLE ROW LEVEL SECURITY;
|
||||||
|
ALTER TABLE hr.payslip_structures ENABLE ROW LEVEL SECURITY;
|
||||||
|
ALTER TABLE hr.payslips ENABLE ROW LEVEL SECURITY;
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_work_locations ON hr.work_locations;
|
||||||
|
CREATE POLICY tenant_isolation_work_locations ON hr.work_locations
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_skill_types ON hr.skill_types;
|
||||||
|
CREATE POLICY tenant_isolation_skill_types ON hr.skill_types
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_skills ON hr.skills;
|
||||||
|
CREATE POLICY tenant_isolation_skills ON hr.skills
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_skill_levels ON hr.skill_levels;
|
||||||
|
CREATE POLICY tenant_isolation_skill_levels ON hr.skill_levels
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_expense_sheets ON hr.expense_sheets;
|
||||||
|
CREATE POLICY tenant_isolation_expense_sheets ON hr.expense_sheets
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_expenses ON hr.expenses;
|
||||||
|
CREATE POLICY tenant_isolation_expenses ON hr.expenses
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_payslip_structures ON hr.payslip_structures;
|
||||||
|
CREATE POLICY tenant_isolation_payslip_structures ON hr.payslip_structures
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
|
|
||||||
|
DROP POLICY IF EXISTS tenant_isolation_payslips ON hr.payslips;
|
||||||
|
CREATE POLICY tenant_isolation_payslips ON hr.payslips
|
||||||
|
USING (tenant_id = current_setting('app.current_tenant_id', true)::UUID);
|
||||||
50
database/seeds/fase8/01-vidrio-catalogos.sql
Normal file
50
database/seeds/fase8/01-vidrio-catalogos.sql
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
-- ============================================================================
|
||||||
|
-- SEED DATA: Catálogos Vidrio Templado
|
||||||
|
-- FASE-8 ERP-Core - ERP Vidrio Templado
|
||||||
|
-- ============================================================================
|
||||||
|
|
||||||
|
-- Métodos de pago
|
||||||
|
INSERT INTO financial.payment_methods (tenant_id, name, code, payment_type, aplica_anticipo, porcentaje_anticipo)
|
||||||
|
SELECT current_setting('app.current_tenant_id', true)::UUID, name, code, payment_type::financial.payment_method_type, anticipo, porc
|
||||||
|
FROM (VALUES
|
||||||
|
('Anticipo 50%', 'anticipo', 'inbound', true, 50),
|
||||||
|
('Pago Producción', 'produccion', 'inbound', false, 0),
|
||||||
|
('Finiquito Instalación', 'finiquito', 'inbound', false, 0),
|
||||||
|
('Transferencia', 'transfer', 'inbound', false, 0),
|
||||||
|
('Efectivo', 'efectivo', 'inbound', false, 0)
|
||||||
|
) AS t(name, code, payment_type, anticipo, porc)
|
||||||
|
WHERE current_setting('app.current_tenant_id', true) IS NOT NULL
|
||||||
|
ON CONFLICT (tenant_id, code) DO NOTHING;
|
||||||
|
|
||||||
|
-- Skills vidrio
|
||||||
|
INSERT INTO hr.skill_types (tenant_id, name)
|
||||||
|
SELECT current_setting('app.current_tenant_id', true)::UUID, name
|
||||||
|
FROM (VALUES ('Proceso de Producción'), ('Instalación'), ('Maquinaria'), ('Calidad')) AS t(name)
|
||||||
|
WHERE current_setting('app.current_tenant_id', true) IS NOT NULL
|
||||||
|
ON CONFLICT DO NOTHING;
|
||||||
|
|
||||||
|
-- Ubicaciones de trabajo
|
||||||
|
INSERT INTO hr.work_locations (tenant_id, name, tipo_area, capacidad_m2, tiene_horno, temperatura_max)
|
||||||
|
SELECT current_setting('app.current_tenant_id', true)::UUID, name, tipo, cap, horno, temp
|
||||||
|
FROM (VALUES
|
||||||
|
('Área de Corte', 'corte', 200.0, false, NULL),
|
||||||
|
('Área de Pulido y Biselado', 'pulido', 100.0, false, NULL),
|
||||||
|
('Horno de Templado', 'templado', 150.0, true, 700),
|
||||||
|
('Almacén Materia Prima', 'almacen', 300.0, false, NULL),
|
||||||
|
('Almacén Producto Terminado', 'almacen', 200.0, false, NULL),
|
||||||
|
('Cuadrilla Instalación 1', 'instalacion', NULL, false, NULL),
|
||||||
|
('Cuadrilla Instalación 2', 'instalacion', NULL, false, NULL)
|
||||||
|
) AS t(name, tipo, cap, horno, temp)
|
||||||
|
WHERE current_setting('app.current_tenant_id', true) IS NOT NULL
|
||||||
|
ON CONFLICT DO NOTHING;
|
||||||
|
|
||||||
|
-- Estructuras de nómina
|
||||||
|
INSERT INTO hr.payslip_structures (tenant_id, name, code, tipo_pago)
|
||||||
|
SELECT current_setting('app.current_tenant_id', true)::UUID, name, code, tipo
|
||||||
|
FROM (VALUES
|
||||||
|
('Nómina Semanal', 'NOM-SEM', 'semanal'),
|
||||||
|
('Destajo Producción', 'DEST-PROD', 'destajo'),
|
||||||
|
('Destajo Instalación', 'DEST-INST', 'destajo')
|
||||||
|
) AS t(name, code, tipo)
|
||||||
|
WHERE current_setting('app.current_tenant_id', true) IS NOT NULL
|
||||||
|
ON CONFLICT (tenant_id, code) DO NOTHING;
|
||||||
@ -39,7 +39,7 @@ HERENCIA_DOC: orchestration/00-guidelines/HERENCIA-ERP-CORE.md
|
|||||||
# Base Orchestration (Directivas y Perfiles)
|
# Base Orchestration (Directivas y Perfiles)
|
||||||
DIRECTIVAS_PATH: ~/workspace-v1/orchestration/directivas
|
DIRECTIVAS_PATH: ~/workspace-v1/orchestration/directivas
|
||||||
PERFILES_PATH: ~/workspace-v1/orchestration/agents/perfiles
|
PERFILES_PATH: ~/workspace-v1/orchestration/agents/perfiles
|
||||||
CATALOG_PATH: ~/workspace-v1/core/catalog
|
CATALOG_PATH: ~/workspace-v1/shared/catalog
|
||||||
|
|
||||||
# Base de Datos
|
# Base de Datos
|
||||||
DB_NAME: erp_vidrio_templado
|
DB_NAME: erp_vidrio_templado
|
||||||
|
|||||||
103
orchestration/CONTEXT-MAP.yml
Normal file
103
orchestration/CONTEXT-MAP.yml
Normal file
@ -0,0 +1,103 @@
|
|||||||
|
# CONTEXT-MAP: ERP-VIDRIO-TEMPLADO
|
||||||
|
# Sistema: SIMCO - NEXUS v4.0
|
||||||
|
# Propósito: Mapear contexto automático por nivel y tarea
|
||||||
|
# Versión: 1.0.0
|
||||||
|
# Fecha: 2026-01-04
|
||||||
|
|
||||||
|
metadata:
|
||||||
|
proyecto: "erp-vidrio-templado"
|
||||||
|
nivel: "VERTICAL"
|
||||||
|
version: "1.0.0"
|
||||||
|
ultima_actualizacion: "2026-01-04"
|
||||||
|
workspace_root: "/home/isem/workspace-v1"
|
||||||
|
project_root: "/home/isem/workspace-v1/projects/erp-vidrio-templado"
|
||||||
|
suite_parent: "/home/isem/workspace-v1/projects/erp-suite"
|
||||||
|
core_parent: "/home/isem/workspace-v1/projects/erp-core"
|
||||||
|
|
||||||
|
variables:
|
||||||
|
PROJECT: "erp-vidrio-templado"
|
||||||
|
PROJECT_NAME: "ERP-VIDRIO-TEMPLADO"
|
||||||
|
PROJECT_LEVEL: "VERTICAL"
|
||||||
|
SUITE_NAME: "ERP-SUITE"
|
||||||
|
|
||||||
|
DB_NAME: "erp_vidrio_templado"
|
||||||
|
DB_DDL_PATH: "/home/isem/workspace-v1/projects/erp-vidrio-templado/database/ddl"
|
||||||
|
BACKEND_ROOT: "/home/isem/workspace-v1/projects/erp-vidrio-templado/backend"
|
||||||
|
FRONTEND_ROOT: "/home/isem/workspace-v1/projects/erp-vidrio-templado/frontend"
|
||||||
|
DOCS_PATH: "/home/isem/workspace-v1/projects/erp-vidrio-templado/docs"
|
||||||
|
ORCHESTRATION_PATH: "/home/isem/workspace-v1/projects/erp-vidrio-templado/orchestration"
|
||||||
|
|
||||||
|
aliases:
|
||||||
|
"@SIMCO": "/home/isem/workspace-v1/orchestration/directivas/simco"
|
||||||
|
"@PRINCIPIOS": "/home/isem/workspace-v1/orchestration/directivas/principios"
|
||||||
|
"@PERFILES": "/home/isem/workspace-v1/orchestration/agents/perfiles"
|
||||||
|
"@CATALOG": "/home/isem/workspace-v1/shared/catalog"
|
||||||
|
"@SUITE": "/home/isem/workspace-v1/projects/erp-suite"
|
||||||
|
"@CORE": "/home/isem/workspace-v1/projects/erp-core"
|
||||||
|
"@DOCS": "/home/isem/workspace-v1/projects/erp-vidrio-templado/docs"
|
||||||
|
"@INVENTORY": "/home/isem/workspace-v1/projects/erp-vidrio-templado/orchestration/inventarios"
|
||||||
|
|
||||||
|
contexto_por_nivel:
|
||||||
|
L0_sistema:
|
||||||
|
descripcion: "Principios fundamentales"
|
||||||
|
tokens_estimados: 4500
|
||||||
|
obligatorio: true
|
||||||
|
archivos:
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-CAPVED.md"
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-DOC-PRIMERO.md"
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-ANTI-DUPLICACION.md"
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-VALIDACION-OBLIGATORIA.md"
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-ECONOMIA-TOKENS.md"
|
||||||
|
- path: "/home/isem/workspace-v1/orchestration/directivas/principios/PRINCIPIO-NO-ASUMIR.md"
|
||||||
|
|
||||||
|
L1_proyecto:
|
||||||
|
descripcion: "Contexto específico de ERP-VIDRIO-TEMPLADO"
|
||||||
|
tokens_estimados: 3000
|
||||||
|
obligatorio: true
|
||||||
|
archivos:
|
||||||
|
- path: "/home/isem/workspace-v1/projects/erp-vidrio-templado/orchestration/00-guidelines/CONTEXTO-PROYECTO.md"
|
||||||
|
- path: "/home/isem/workspace-v1/projects/erp-vidrio-templado/orchestration/PROXIMA-ACCION.md"
|
||||||
|
|
||||||
|
L2_operacion:
|
||||||
|
descripcion: "SIMCO según operación y dominio"
|
||||||
|
tokens_estimados: 2500
|
||||||
|
|
||||||
|
L3_tarea:
|
||||||
|
descripcion: "Contexto de tarea"
|
||||||
|
tokens_max: 8000
|
||||||
|
dinamico: true
|
||||||
|
|
||||||
|
info_proyecto:
|
||||||
|
tipo: "ERP Vertical - Producción de Vidrio Templado"
|
||||||
|
estado: "0% - En planificación"
|
||||||
|
version: "0.1"
|
||||||
|
modulos_especificos:
|
||||||
|
- produccion
|
||||||
|
- control_calidad
|
||||||
|
- trazabilidad_lotes
|
||||||
|
- ordenes_produccion
|
||||||
|
- especificaciones_tecnicas
|
||||||
|
|
||||||
|
validacion_tokens:
|
||||||
|
limite_absoluto: 25000
|
||||||
|
limite_seguro: 18000
|
||||||
|
limite_alerta: 20000
|
||||||
|
presupuesto:
|
||||||
|
L0_sistema: 4500
|
||||||
|
L1_proyecto: 3000
|
||||||
|
L2_operacion: 2500
|
||||||
|
L3_tarea_max: 8000
|
||||||
|
|
||||||
|
herencia:
|
||||||
|
tipo: "VERTICAL"
|
||||||
|
hereda_de:
|
||||||
|
- "/home/isem/workspace-v1/projects/erp-core/orchestration/"
|
||||||
|
- "/home/isem/workspace-v1/projects/erp-suite/orchestration/"
|
||||||
|
- "/home/isem/workspace-v1/orchestration/"
|
||||||
|
|
||||||
|
busqueda_historico:
|
||||||
|
habilitado: true
|
||||||
|
ubicaciones:
|
||||||
|
- "/home/isem/workspace-v1/projects/erp-vidrio-templado/orchestration/trazas/"
|
||||||
|
- "/home/isem/workspace-v1/projects/erp-core/orchestration/trazas/"
|
||||||
|
- "/home/isem/workspace-v1/orchestration/errores/REGISTRO-ERRORES.yml"
|
||||||
98
orchestration/environment/ENVIRONMENT-INVENTORY.yml
Normal file
98
orchestration/environment/ENVIRONMENT-INVENTORY.yml
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
# =============================================================================
|
||||||
|
# ENVIRONMENT-INVENTORY.yml - ERP-VIDRIO-TEMPLADO
|
||||||
|
# =============================================================================
|
||||||
|
# Inventario de Entorno de Desarrollo
|
||||||
|
# Generado por: @PERFIL_DEVENV
|
||||||
|
# Nota: Vertical de ERP-Suite para sector Vidrio Templado
|
||||||
|
# =============================================================================
|
||||||
|
|
||||||
|
version: "1.0.0"
|
||||||
|
fecha_creacion: "2026-01-04"
|
||||||
|
fecha_actualizacion: "2026-01-04"
|
||||||
|
responsable: "@PERFIL_DEVENV"
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# IDENTIFICACION DEL PROYECTO
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
proyecto:
|
||||||
|
nombre: "ERP Vidrio Templado"
|
||||||
|
alias: "erp-vidrio"
|
||||||
|
nivel: "NIVEL_2B.2"
|
||||||
|
tipo: "vertical"
|
||||||
|
estado: "desarrollo"
|
||||||
|
descripcion: "Vertical ERP para sector vidrio templado"
|
||||||
|
parent_suite: "erp-suite"
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# SERVICIOS Y PUERTOS
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
servicios:
|
||||||
|
frontend:
|
||||||
|
nombre: "erp-vidrio-frontend"
|
||||||
|
framework: "React"
|
||||||
|
version: "18.x"
|
||||||
|
puerto: 3030
|
||||||
|
ubicacion: "apps/frontend/"
|
||||||
|
url_local: "http://localhost:3030"
|
||||||
|
|
||||||
|
backend:
|
||||||
|
nombre: "erp-vidrio-backend"
|
||||||
|
framework: "NestJS"
|
||||||
|
version: "10.x"
|
||||||
|
puerto: 3031
|
||||||
|
ubicacion: "apps/backend/"
|
||||||
|
url_local: "http://localhost:3031"
|
||||||
|
api_prefix: "/api/v1"
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# BASE DE DATOS
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
base_de_datos:
|
||||||
|
principal:
|
||||||
|
engine: "PostgreSQL"
|
||||||
|
version: "15"
|
||||||
|
host: "localhost"
|
||||||
|
puerto: 5434
|
||||||
|
|
||||||
|
ambientes:
|
||||||
|
development:
|
||||||
|
nombre: "erp_vidrio"
|
||||||
|
usuario: "erp_admin"
|
||||||
|
password_ref: "DB_PASSWORD en .env"
|
||||||
|
|
||||||
|
conexion_ejemplo: "postgresql://erp_admin:{password}@localhost:5434/erp_vidrio"
|
||||||
|
|
||||||
|
redis:
|
||||||
|
host: "localhost"
|
||||||
|
puerto: 6381
|
||||||
|
uso: "cache"
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# VARIABLES DE ENTORNO
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
variables_entorno:
|
||||||
|
archivo_ejemplo: ".env.example"
|
||||||
|
|
||||||
|
variables:
|
||||||
|
- nombre: "PORT"
|
||||||
|
ejemplo: "3031"
|
||||||
|
- nombre: "DATABASE_URL"
|
||||||
|
ejemplo: "postgresql://erp_admin:password@localhost:5434/erp_vidrio"
|
||||||
|
- nombre: "REDIS_URL"
|
||||||
|
ejemplo: "redis://localhost:6381"
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# REFERENCIAS
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
referencias:
|
||||||
|
suite_inventory: "../erp-suite/orchestration/environment/ENVIRONMENT-INVENTORY.yml"
|
||||||
|
inventario_puertos: "orchestration/inventarios/DEVENV-PORTS-INVENTORY.yml"
|
||||||
|
|
||||||
|
# =============================================================================
|
||||||
|
# FIN DE INVENTARIO
|
||||||
|
# =============================================================================
|
||||||
81
orchestration/propagacion-fase8/FASE-8-VALIDACION-FINAL.md
Normal file
81
orchestration/propagacion-fase8/FASE-8-VALIDACION-FINAL.md
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
# FASE 8: Validación Final - ERP Vidrio Templado
|
||||||
|
|
||||||
|
**Proyecto:** erp-vidrio-templado
|
||||||
|
**Fecha:** 2026-01-04
|
||||||
|
**Estado:** Completado
|
||||||
|
**Tipo:** ERP para fabricación de vidrio templado
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Información del Proyecto
|
||||||
|
|
||||||
|
### 1.1 Descripción
|
||||||
|
ERP para empresas de fabricación y procesamiento de vidrio templado (corte, templado, instalación).
|
||||||
|
|
||||||
|
### 1.2 Arquitectura
|
||||||
|
|
||||||
|
| Aspecto | Valor |
|
||||||
|
|---------|-------|
|
||||||
|
| Schemas principales | produccion, inventario, proyectos |
|
||||||
|
| Enfoque | Fabricación, órdenes de trabajo, instalación |
|
||||||
|
| Versión FASE-8 | 1.0 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 2. Correcciones FASE-8 Aplicables
|
||||||
|
|
||||||
|
| ID | Elemento | Aplica | Razón |
|
||||||
|
|----|----------|--------|-------|
|
||||||
|
| COR-035-038 | Financial | ✅ | Pagos y términos |
|
||||||
|
| COR-040-044 | Inventory | ✅ | Materia prima, producto terminado |
|
||||||
|
| COR-045-047 | Purchase | ✅ | Compras de vidrio crudo |
|
||||||
|
| COR-048-050 | Sales | ✅ | Cotizaciones y órdenes |
|
||||||
|
| COR-056-060 | Projects | ✅ | Proyectos de instalación |
|
||||||
|
| COR-061-066 | HR | ✅ | Personal (cortadores, instaladores) |
|
||||||
|
|
||||||
|
**Cobertura:** 100%
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 3. Archivos FASE-8 Creados
|
||||||
|
|
||||||
|
| Archivo | Contenido | Estado |
|
||||||
|
|---------|-----------|--------|
|
||||||
|
| 04-financial-ext.sql | Pagos, términos | ✅ |
|
||||||
|
| 05-hr-ext.sql | Personal producción | ✅ |
|
||||||
|
| 06-inventory-ext.sql | Almacén vidrio | ✅ |
|
||||||
|
| 07-purchase-ext.sql | Compras materia prima | ✅ |
|
||||||
|
| 08-produccion-ext.sql | Órdenes de producción | ✅ |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 4. Adaptaciones al Giro
|
||||||
|
|
||||||
|
| Concepto | Adaptación Vidrio |
|
||||||
|
|----------|-------------------|
|
||||||
|
| work_locations | Áreas de corte, templado, almacén |
|
||||||
|
| storage_categories | Vidrio crudo, procesado, templado |
|
||||||
|
| skills | Corte, biselado, templado, instalación |
|
||||||
|
| expenses | Por proyecto/obra |
|
||||||
|
| projects | Obras de instalación |
|
||||||
|
|
||||||
|
### 4.1 Campos Específicos
|
||||||
|
|
||||||
|
| Tabla | Campos |
|
||||||
|
|-------|--------|
|
||||||
|
| storage_categories | tipo_vidrio, espesor_mm |
|
||||||
|
| packages | largo_cm, ancho_cm, espesor_mm |
|
||||||
|
| skills | tipo_proceso, maquina_habilitado |
|
||||||
|
| work_locations | tipo_area, capacidad_m2 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
```
|
||||||
|
╔══════════════════════════════════════════════════════════╗
|
||||||
|
║ FASE-8 ERP-VIDRIO-TEMPLADO: COMPLETADA ║
|
||||||
|
║ Cobertura: 100% ║
|
||||||
|
╚══════════════════════════════════════════════════════════╝
|
||||||
|
```
|
||||||
|
|
||||||
|
**Estado:** FASE 8 COMPLETADA
|
||||||
|
**Fecha:** 2026-01-04
|
||||||
@ -8,14 +8,14 @@ proyecto: "erp-vidrio-templado"
|
|||||||
# Modulos del catalogo usados
|
# Modulos del catalogo usados
|
||||||
modulos_catalogo:
|
modulos_catalogo:
|
||||||
- id: "auth"
|
- id: "auth"
|
||||||
ruta: "core/catalog/auth"
|
ruta: "shared/catalog/auth"
|
||||||
version_usada: "1.0.0"
|
version_usada: "1.0.0"
|
||||||
fecha_implementacion: "pendiente"
|
fecha_implementacion: "pendiente"
|
||||||
adaptaciones: null
|
adaptaciones: null
|
||||||
tests_pasando: false
|
tests_pasando: false
|
||||||
|
|
||||||
- id: "multi-tenancy"
|
- id: "multi-tenancy"
|
||||||
ruta: "core/catalog/multi-tenancy"
|
ruta: "shared/catalog/multi-tenancy"
|
||||||
version_usada: "1.0.0"
|
version_usada: "1.0.0"
|
||||||
fecha_implementacion: "pendiente"
|
fecha_implementacion: "pendiente"
|
||||||
adaptaciones:
|
adaptaciones:
|
||||||
@ -24,7 +24,7 @@ modulos_catalogo:
|
|||||||
tests_pasando: false
|
tests_pasando: false
|
||||||
|
|
||||||
- id: "notifications"
|
- id: "notifications"
|
||||||
ruta: "core/catalog/notifications"
|
ruta: "shared/catalog/notifications"
|
||||||
version_usada: "1.0.0"
|
version_usada: "1.0.0"
|
||||||
fecha_implementacion: "pendiente"
|
fecha_implementacion: "pendiente"
|
||||||
adaptaciones:
|
adaptaciones:
|
||||||
@ -35,16 +35,16 @@ modulos_catalogo:
|
|||||||
tests_pasando: false
|
tests_pasando: false
|
||||||
|
|
||||||
- id: "rate-limiting"
|
- id: "rate-limiting"
|
||||||
ruta: "core/catalog/rate-limiting"
|
ruta: "shared/catalog/rate-limiting"
|
||||||
version_usada: "1.0.0"
|
version_usada: "1.0.0"
|
||||||
fecha_implementacion: "pendiente"
|
fecha_implementacion: "pendiente"
|
||||||
adaptaciones: null
|
adaptaciones: null
|
||||||
tests_pasando: false
|
tests_pasando: false
|
||||||
|
|
||||||
# Modulos de core/modules usados
|
# Modulos de shared/modules usados
|
||||||
modulos_core: []
|
modulos_core: []
|
||||||
|
|
||||||
# Librerias de shared/libs usadas
|
# Librerias de shared/catalog usadas
|
||||||
librerias_shared: []
|
librerias_shared: []
|
||||||
|
|
||||||
# Modulos pendientes de implementar
|
# Modulos pendientes de implementar
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user