- 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>
230 lines
6.9 KiB
Markdown
230 lines
6.9 KiB
Markdown
# 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):**
|
|
1. `financial.payment_term_lines`
|
|
2. `financial.payment_methods`
|
|
3. `financial.reconcile_models`
|
|
4. `financial.reconcile_model_lines`
|
|
|
|
**HR (11 tablas):**
|
|
1. `hr.work_locations`
|
|
2. `hr.skill_types`
|
|
3. `hr.skills`
|
|
4. `hr.skill_levels`
|
|
5. `hr.employee_skills`
|
|
6. `hr.expense_sheets`
|
|
7. `hr.expenses`
|
|
8. `hr.employee_resume_lines`
|
|
9. `hr.payslip_structures`
|
|
10. `hr.payslips`
|
|
11. `hr.payslip_lines`
|
|
|
|
**Inventory (5 tablas):**
|
|
1. `inventory.package_types`
|
|
2. `inventory.packages`
|
|
3. `inventory.storage_categories`
|
|
4. `inventory.putaway_rules`
|
|
5. `inventory.removal_strategies`
|
|
|
|
**Purchase (1 tabla):**
|
|
1. `purchase.product_supplierinfo`
|
|
|
|
**Clínica (2 tablas):**
|
|
1. `clinica.personal_clinica`
|
|
2. `clinica.ratings`
|
|
|
|
### 2.3 ENUMs Creados
|
|
|
|
1. `financial.payment_method_type` (inbound, outbound)
|
|
2. `financial.reconcile_model_type` (writeoff_button, writeoff_suggestion, invoice_matching)
|
|
3. `hr.expense_status` (draft, submitted, approved, posted, paid, rejected)
|
|
4. `hr.resume_line_type` (experience, education, certification, internal)
|
|
5. `hr.payslip_status` (draft, verify, done, cancel)
|
|
|
|
### 2.4 Funciones Creadas
|
|
|
|
1. `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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
1. Todos los archivos usan `IF NOT EXISTS` para idempotencia
|
|
2. Las políticas RLS usan `DROP IF EXISTS` antes de crear
|
|
3. Los ENUMs usan bloque de excepción para evitar errores
|
|
4. Los campos adicionales verifican existencia con DO blocks
|
|
5. 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
|