- Add database schemas and seeds directories - 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>
6.9 KiB
6.9 KiB
FASE 7: Reporte de Ejecución - ERP Clínicas
Proyecto: erp-clinicas Fecha: 2026-01-04 Estado: Completado Base: FASE-6-PLAN-REFINADO.md
1. Archivos Creados
1.1 DDL Schemas
| # | Archivo | Líneas | Estado |
|---|---|---|---|
| 1 | 04-financial-ext-schema-ddl.sql |
127 | Creado |
| 2 | 05-hr-ext-fase8-schema-ddl.sql |
298 | Creado |
| 3 | 06-inventory-ext-fase8-schema-ddl.sql |
157 | Creado |
| 4 | 07-purchase-ext-fase8-schema-ddl.sql |
117 | Creado |
| 5 | 08-clinica-ext-fase8-schema-ddl.sql |
121 | Creado |
| Total | ~820 |
1.2 Seed Data
| # | Archivo | Registros | Estado |
|---|---|---|---|
| 1 | seeds/fase8/00-removal-strategies.sql |
4 | Creado |
| 2 | seeds/fase8/01-clinica-skills.sql |
~40 | Creado |
| 3 | seeds/fase8/02-clinica-catalogos.sql |
~30 | Creado |
2. Resumen de Objetos Creados
2.1 Por Schema
| Schema | Tablas | ENUMs | Funciones | Índices |
|---|---|---|---|---|
| financial | 4 | 2 | 0 | 6 |
| hr | 11 | 3 | 0 | 18 |
| inventory | 5 | 0 | 0 | 8 |
| purchase | 1 | 0 | 1 | 4 |
| clinica | 2 | 0 | 0 | 8 |
| Total | 23 | 5 | 1 | 44 |
2.2 Tablas Creadas por Módulo
Financial (4 tablas):
financial.payment_term_linesfinancial.payment_methodsfinancial.reconcile_modelsfinancial.reconcile_model_lines
HR (11 tablas):
hr.work_locationshr.skill_typeshr.skillshr.skill_levelshr.employee_skillshr.expense_sheetshr.expenseshr.employee_resume_lineshr.payslip_structureshr.payslipshr.payslip_lines
Inventory (5 tablas):
inventory.package_typesinventory.packagesinventory.storage_categoriesinventory.putaway_rulesinventory.removal_strategies
Purchase (1 tabla):
purchase.product_supplierinfo
Clínica (2 tablas):
clinica.personal_clinicaclinica.ratings
2.3 ENUMs Creados
financial.payment_method_type(inbound, outbound)financial.reconcile_model_type(writeoff_button, writeoff_suggestion, invoice_matching)hr.expense_status(draft, submitted, approved, posted, paid, rejected)hr.resume_line_type(experience, education, certification, internal)hr.payslip_status(draft, verify, done, cancel)
2.4 Funciones Creadas
purchase.action_create_stock_moves(UUID)- Crea movimientos de stock
2.5 Extensiones Clínica
| Tabla | Campos Adicionales |
|---|---|
| payment_methods | aplica_seguro, requiere_factura, porcentaje_seguro |
| storage_categories | requiere_refrigeracion, temperatura_min/max, es_controlado, requiere_receta |
| packages | lote, fecha_fabricacion, fecha_caducidad, laboratorio, registro_sanitario |
| skills | codigo_ssa, requiere_cedula |
| employee_skills | cedula_profesional, fecha_certificacion, fecha_vencimiento |
| expense_sheets | paciente_id, cita_id, centro_costo |
| work_locations | tipo_consultorio, capacidad, equipamiento, horarios |
| payslips | consultorio_id |
| personal_clinica | rol, vigencia, es_titular, horario |
| ratings | puntualidad, atencion, instalaciones, is_anonymous |
3. RLS Policies Creadas
| Tabla | Policy |
|---|---|
| financial.payment_term_lines | tenant_isolation_payment_term_lines |
| financial.payment_methods | tenant_isolation_payment_methods |
| financial.reconcile_models | tenant_isolation_reconcile_models |
| hr.work_locations | tenant_isolation_work_locations |
| hr.skill_types | tenant_isolation_skill_types |
| hr.skills | tenant_isolation_skills |
| hr.skill_levels | tenant_isolation_skill_levels |
| hr.expense_sheets | tenant_isolation_expense_sheets |
| hr.expenses | tenant_isolation_expenses |
| hr.payslip_structures | tenant_isolation_payslip_structures |
| hr.payslips | tenant_isolation_payslips |
| inventory.package_types | tenant_isolation_package_types |
| inventory.packages | tenant_isolation_packages |
| inventory.storage_categories | tenant_isolation_storage_categories |
| inventory.putaway_rules | tenant_isolation_putaway_rules |
| purchase.product_supplierinfo | tenant_isolation_supplierinfo |
| clinica.personal_clinica | tenant_isolation_personal_clinica |
| clinica.ratings | tenant_isolation_ratings |
Total: 18 políticas RLS
4. Orden de Ejecución
4.1 Secuencia Recomendada
# 1. Extensiones Financial
psql -f database/schemas/04-financial-ext-schema-ddl.sql
# 2. Extensiones HR
psql -f database/schemas/05-hr-ext-fase8-schema-ddl.sql
# 3. Extensiones Inventory
psql -f database/schemas/06-inventory-ext-fase8-schema-ddl.sql
# 4. Extensiones Purchase
psql -f database/schemas/07-purchase-ext-fase8-schema-ddl.sql
# 5. Extensiones Clínica
psql -f database/schemas/08-clinica-ext-fase8-schema-ddl.sql
# 6. Seed Data (catálogos globales)
psql -f database/seeds/fase8/00-removal-strategies.sql
# 7. Seed Data (requiere tenant_id)
# SET app.current_tenant_id = 'UUID';
psql -f database/seeds/fase8/01-clinica-skills.sql
psql -f database/seeds/fase8/02-clinica-catalogos.sql
5. Adaptaciones Realizadas
5.1 Cambios vs ERP-Core Original
| Elemento | Original | Clínica |
|---|---|---|
| collaborators | Genérico | personal_clinica con roles médicos |
| work_locations | Genérico | Consultorios con tipo y equipamiento |
| storage_categories | Genérico | Con refrigeración y controlados |
| packages | Genérico | Con lote, caducidad, registro sanitario |
| skills | Genérico | Especialidades con código SSA |
| ratings | Por proyecto | Por consulta y doctor |
5.2 Cumplimiento Normativo
| Normativa | Implementación |
|---|---|
| NOM-024-SSA3-2012 | Trazabilidad, confidencialidad via RLS |
| COFEPRIS | Campos para registro sanitario |
| Medicamentos controlados | Flag es_controlado en storage_categories |
6. Métricas de Ejecución
| Métrica | Valor |
|---|---|
| Archivos DDL creados | 5 |
| Archivos seed creados | 3 |
| Total líneas SQL | ~920 |
| Tablas nuevas | 23 |
| ENUMs nuevos | 5 |
| Funciones nuevas | 1 |
| Índices nuevos | 44 |
| RLS policies | 18 |
7. Notas de Implementación
7.1 Consideraciones
- Todos los archivos usan
IF NOT EXISTSpara idempotencia - Las políticas RLS usan
DROP IF EXISTSantes de crear - Los ENUMs usan bloque de excepción para evitar errores
- Los campos adicionales verifican existencia con DO blocks
- FKs opcionales para independencia de módulos
7.2 Diferencias con erp-construccion
| Aspecto | erp-construccion | erp-clinicas |
|---|---|---|
| Dominio | Fraccionamientos | Consultas/Pacientes |
| Personal | Colaboradores obra | Personal clínica |
| Productos | Materiales construcción | Medicamentos/Insumos |
| Almacén | Área techada/descubierta | Refrigerados/Controlados |
Estado: FASE 7 COMPLETADA Siguiente: FASE 8 - Validación Final Fecha: 2026-01-04