Some checks failed
ERP Core CI / Backend Lint (push) Has been cancelled
ERP Core CI / Backend Unit Tests (push) Has been cancelled
ERP Core CI / Backend Integration Tests (push) Has been cancelled
ERP Core CI / Frontend Lint (push) Has been cancelled
ERP Core CI / Frontend Unit Tests (push) Has been cancelled
ERP Core CI / Frontend E2E Tests (push) Has been cancelled
ERP Core CI / Database DDL Validation (push) Has been cancelled
ERP Core CI / Backend Build (push) Has been cancelled
ERP Core CI / Frontend Build (push) Has been cancelled
ERP Core CI / CI Success (push) Has been cancelled
Performance Tests / Lighthouse CI (push) Has been cancelled
Performance Tests / Bundle Size Analysis (push) Has been cancelled
Performance Tests / k6 Load Tests (push) Has been cancelled
Performance Tests / Performance Summary (push) Has been cancelled
- HERENCIA-SIMCO.md actualizado con directivas v3.7 y v3.8 - Actualizaciones en modulos CRM y OpenAPI Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1112 lines
36 KiB
YAML
1112 lines
36 KiB
YAML
# Master Inventory - ERP Core
|
|
# Ultima actualizacion: 2026-01-10
|
|
# SSOT: Single Source of Truth para metricas del proyecto
|
|
# NOTA: Los Story Points en este archivo son los valores CANONICOS
|
|
# Cualquier discrepancia con otros documentos debe corregirse aqui
|
|
|
|
proyecto:
|
|
nombre: ERP Core
|
|
tipo: Modulo Base / Foundation
|
|
version: 1.0.0
|
|
progreso: 100% # 219 SP completados (184 SP Sprints 1-6 + 35 SP Sprint 7)
|
|
fase_actual: fase_02_core_business
|
|
proxima_accion: Sprint 8 - Reports Module
|
|
|
|
# =============================================================================
|
|
# IMPLEMENTACION SPRINTS 1-3 (2026-01-06)
|
|
# =============================================================================
|
|
|
|
implementacion_sprints:
|
|
fecha_inicio: "2026-01-06"
|
|
metodologia: CAPVED
|
|
orquestador: Claude Code Opus 4.5
|
|
|
|
resumen:
|
|
story_points_completados: 240 # 219 + 21 (GAPS resolution)
|
|
story_points_totales: 240
|
|
progreso: 100%
|
|
sprints_completados: 7
|
|
gaps_resueltos: 5
|
|
sprints_pendientes: 0
|
|
|
|
sprint_1:
|
|
nombre: "Database Validation + Tests Setup + Catalogs"
|
|
story_points: 36
|
|
status: COMPLETADO
|
|
tareas:
|
|
- {id: DB-001, nombre: "HR Schema", sp: 0, status: "ya existia"}
|
|
- {id: DB-002, nombre: "RLS Validation Tests", sp: 5, status: completado}
|
|
- {id: DB-003, nombre: "track_field_changes()", sp: 0, status: "ya existia"}
|
|
- {id: DB-004, nombre: "Seed Data Catalogs", sp: 0, status: "ya existia"}
|
|
- {id: BE-001, nombre: "Jest + Supertest Setup", sp: 5, status: completado, tests: 13}
|
|
- {id: BE-002, nombre: "Auth Tests", sp: 8, status: completado, tests: 59}
|
|
- {id: FE-001, nombre: "Catalogs Structure", sp: 5, status: completado}
|
|
- {id: FE-002, nombre: "Countries Pages", sp: 5, status: completado, pages: 6}
|
|
|
|
sprint_2:
|
|
nombre: "Tests Foundation + Catalogs Frontend"
|
|
story_points: 37
|
|
status: COMPLETADO
|
|
tareas:
|
|
- {id: BE-003, nombre: "Tests Users Module", sp: 5, status: completado, tests: 74}
|
|
- {id: BE-004, nombre: "Tests Roles Module", sp: 5, status: completado, tests: 48}
|
|
- {id: BE-005, nombre: "Tests Tenants Module", sp: 5, status: completado, tests: 77}
|
|
- {id: BE-006, nombre: "Permission Cache Service", sp: 4, status: completado, tests: 37}
|
|
- {id: FE-003, nombre: "Currencies Pages", sp: 5, status: completado, pages: 4}
|
|
- {id: FE-004, nombre: "Units of Measure Pages", sp: 5, status: completado, pages: 5}
|
|
- {id: FE-005, nombre: "Product Categories Pages", sp: 8, status: completado, pages: 5}
|
|
- {id: FE-006, nombre: "Routes Catalogs", sp: 0, status: completado, routes: 20}
|
|
|
|
sprint_3:
|
|
nombre: "OAuth + Settings Frontend"
|
|
story_points: 36
|
|
status: COMPLETADO
|
|
tareas:
|
|
- {id: BE-007, nombre: "Tests Financial Module", sp: 8, status: completado, tests: 93}
|
|
- {id: BE-008, nombre: "Tests Inventory Module", sp: 6, status: completado, tests: 69}
|
|
- {id: BE-009, nombre: "OAuth2 Google/Microsoft", sp: 8, status: completado, tests: 32}
|
|
- {id: FE-007, nombre: "Stores Catalogs Zustand", sp: 3, status: completado, stores: 4}
|
|
- {id: FE-008, nombre: "Feature Settings Structure", sp: 3, status: completado}
|
|
- {id: FE-009, nombre: "System Settings Page", sp: 5, status: completado}
|
|
- {id: FE-010, nombre: "Tenant Settings Page", sp: 3, status: completado}
|
|
|
|
sprint_4:
|
|
nombre: "2FA + Settings Completion"
|
|
story_points: 33
|
|
status: COMPLETADO
|
|
fecha_completado: "2026-01-07"
|
|
tareas:
|
|
- {id: BE-010, nombre: "2FA/MFA Implementation", sp: 8, status: completado}
|
|
- {id: BE-011, nombre: "Email Verification Flow", sp: 4, status: completado}
|
|
- {id: FE-011, nombre: "User Preferences Page", sp: 5, status: completado}
|
|
- {id: FE-012, nombre: "Feature Flags Management", sp: 5, status: completado}
|
|
- {id: FE-013, nombre: "Settings Stores Zustand", sp: 3, status: completado}
|
|
- {id: FE-014, nombre: "Theme Selector Component", sp: 3, status: completado}
|
|
- {id: FE-015, nombre: "Tests Frontend Vitest", sp: 3, status: completado}
|
|
- {id: FE-016, nombre: "Tenant Settings completar", sp: 2, status: completado}
|
|
archivos_creados:
|
|
backend:
|
|
- src/modules/auth/mfa.service.ts
|
|
- src/modules/auth/mfa.controller.ts
|
|
- src/modules/auth/mfa.routes.ts
|
|
- src/modules/auth/entities/user-mfa.entity.ts
|
|
- src/modules/auth/services/email-verification.service.ts
|
|
- src/modules/auth/email-verification.controller.ts
|
|
- src/modules/auth/email-verification.routes.ts
|
|
- src/modules/auth/entities/email-verification-token.entity.ts
|
|
- src/shared/services/email.service.ts
|
|
frontend:
|
|
- src/pages/settings/UserPreferencesPage.tsx
|
|
- src/pages/settings/FeatureFlagsPage.tsx
|
|
- src/pages/settings/components/NotificationSettingsForm.tsx
|
|
- src/pages/settings/components/DashboardSettingsForm.tsx
|
|
- src/test/mocks/handlers.ts
|
|
- src/test/mocks/server.ts
|
|
- src/shared/components/atoms/Button/__tests__/Button.test.tsx
|
|
- src/features/settings/__tests__/userPreferences.store.test.ts
|
|
database:
|
|
- database/ddl/01-auth-mfa-email-verification.sql
|
|
|
|
sprint_5:
|
|
nombre: "Estabilizacion + DDL Migrations"
|
|
story_points: 12
|
|
status: COMPLETADO
|
|
fecha_inicio: "2026-01-07"
|
|
fecha_completado: "2026-01-07"
|
|
tareas:
|
|
- {id: FIX-001, nombre: "Corregir TypeScript UserPreferencesPage", sp: 1, status: completado}
|
|
- {id: FIX-002, nombre: "Corregir TypeScript FeatureFlagsPage", sp: 2, status: completado}
|
|
- {id: FIX-003, nombre: "Corregir DashboardSettingsForm Select", sp: 1, status: completado}
|
|
- {id: FIX-004, nombre: "Corregir useTheme null safety", sp: 1, status: completado}
|
|
- {id: FIX-005, nombre: "Corregir tsconfig.json backend tests", sp: 1, status: completado}
|
|
- {id: FIX-006, nombre: "Corregir oauth.service.ts TypeORM types", sp: 1, status: completado}
|
|
- {id: DDL-001, nombre: "Crear DDL MFA + Email Verification", sp: 3, status: completado}
|
|
- {id: DOC-001, nombre: "Actualizar MASTER_INVENTORY", sp: 2, status: completado}
|
|
|
|
sprint_6:
|
|
nombre: "Fase 2 - Catalogs & Settings Foundation"
|
|
story_points: 30
|
|
status: COMPLETADO
|
|
fecha_inicio: "2026-01-07"
|
|
fecha_completado: "2026-01-07"
|
|
tareas:
|
|
- {id: BE-012, nombre: "Countries/States API + Entity", sp: 5, status: completado}
|
|
- {id: BE-013, nombre: "Currency Exchange Rates Service", sp: 5, status: completado}
|
|
- {id: BE-014, nombre: "UoM Conversions Enhancement", sp: 4, status: completado}
|
|
- {id: BE-015, nombre: "Partners CRUD (verificado completo)", sp: 0, status: ya_existia}
|
|
- {id: BE-016, nombre: "Settings Service 3-Level", sp: 6, status: completado}
|
|
- {id: DDL-002, nombre: "DDL currency_rates + settings", sp: 2, status: completado}
|
|
- {id: TEST-001, nombre: "Tests Core Services", sp: 5, status: completado, tests: 145}
|
|
- {id: FE-017, nombre: "Catalogs Frontend APIs (ya conectado)", sp: 0, status: ya_existia}
|
|
- {id: DOC-002, nombre: "Actualizar MASTER_INVENTORY", sp: 3, status: completado}
|
|
archivos_creados:
|
|
backend:
|
|
- src/modules/core/entities/state.entity.ts
|
|
- src/modules/core/states.service.ts
|
|
- src/modules/core/entities/currency-rate.entity.ts
|
|
- src/modules/core/currency-rates.service.ts
|
|
- src/modules/system/entities/system-setting.entity.ts
|
|
- src/modules/system/entities/tenant-setting.entity.ts
|
|
- src/modules/system/entities/user-preference.entity.ts
|
|
- src/modules/system/settings.service.ts
|
|
- src/modules/system/settings.controller.ts
|
|
- src/modules/system/settings.routes.ts
|
|
tests:
|
|
- src/modules/core/__tests__/countries.service.spec.ts
|
|
- src/modules/core/__tests__/states.service.spec.ts
|
|
- src/modules/core/__tests__/currencies.service.spec.ts
|
|
- src/modules/core/__tests__/currency-rates.service.spec.ts
|
|
- src/modules/core/__tests__/uom.service.spec.ts
|
|
- src/modules/system/__tests__/settings.service.spec.ts
|
|
database:
|
|
- database/ddl/02-core-extensions.sql
|
|
- database/ddl/09-system-extensions.sql
|
|
|
|
sprint_7:
|
|
nombre: "Fase 2 - Audit & Notifications"
|
|
story_points: 35
|
|
status: COMPLETADO
|
|
fecha_inicio: "2026-01-07"
|
|
fecha_completado: "2026-01-07"
|
|
tareas:
|
|
- {id: BE-017, nombre: "Audit Trail System (TypeORM Subscriber)", sp: 8, status: completado}
|
|
- {id: BE-018, nombre: "Access Logs Service", sp: 6, status: completado}
|
|
- {id: BE-019, nombre: "Security Events Service", sp: 6, status: completado}
|
|
- {id: BE-020, nombre: "WebSocket Gateway Real-time Notifications", sp: 5, status: completado}
|
|
- {id: DDL-003, nombre: "DDL audit tables", sp: 2, status: completado}
|
|
- {id: FE-018, nombre: "Notification Center UI", sp: 4, status: completado}
|
|
- {id: FE-019, nombre: "Audit Logs Pages (3)", sp: 4, status: completado}
|
|
archivos_creados:
|
|
backend:
|
|
- src/modules/audit/entities/audit-log.entity.ts
|
|
- src/modules/audit/entities/access-log.entity.ts
|
|
- src/modules/audit/entities/security-event.entity.ts
|
|
- src/modules/audit/audit.service.ts
|
|
- src/modules/audit/audit.controller.ts
|
|
- src/modules/audit/audit.subscriber.ts
|
|
- src/modules/audit/audit-context.ts
|
|
- src/modules/audit/access-logs.service.ts
|
|
- src/modules/audit/access-logs.controller.ts
|
|
- src/modules/audit/security-events.service.ts
|
|
- src/modules/audit/security-events.controller.ts
|
|
- src/modules/audit/utils/brute-force-detector.ts
|
|
- src/modules/audit/utils/anomaly-detector.ts
|
|
- src/modules/notifications/websocket/notification.gateway.ts
|
|
- src/shared/middleware/access-logger.middleware.ts
|
|
frontend:
|
|
- src/features/notifications/components/NotificationBell.tsx
|
|
- src/features/notifications/components/NotificationDropdown.tsx
|
|
- src/features/notifications/stores/notifications.store.ts
|
|
- src/features/notifications/hooks/useNotificationSocket.ts
|
|
- src/features/audit/components/AuditLogTable.tsx
|
|
- src/features/audit/components/SecurityDashboard.tsx
|
|
- src/pages/notifications/NotificationsPage.tsx
|
|
- src/pages/audit/AuditLogsPage.tsx
|
|
- src/pages/audit/AccessLogsPage.tsx
|
|
- src/pages/audit/SecurityEventsPage.tsx
|
|
database:
|
|
- database/ddl/13-audit.sql
|
|
|
|
# =============================================================================
|
|
# RESOLUCION DE GAPS (2026-01-10)
|
|
# =============================================================================
|
|
gaps_resolution:
|
|
fecha: "2026-01-10"
|
|
story_points: 21
|
|
status: COMPLETADO
|
|
metodologia: CAPVED
|
|
plan: orchestration/02-planeacion/PLAN-RESOLUCION-GAPS-2026-01-10.md
|
|
reporte: orchestration/03-validacion/REPORTE-GAPS-RESUELTOS-2026-01-10.md
|
|
|
|
gaps_resueltos:
|
|
- id: GAP-001
|
|
nombre: "Tests MFA Service"
|
|
sp: 5
|
|
status: completado
|
|
tests: 45
|
|
archivo: src/modules/auth/__tests__/mfa.service.spec.ts
|
|
- id: GAP-002
|
|
nombre: "Trusted Devices Service + Tests"
|
|
sp: 3
|
|
status: completado
|
|
tests: 41
|
|
archivos:
|
|
- src/modules/auth/services/trusted-devices.service.ts
|
|
- src/modules/auth/__tests__/trusted-devices.service.spec.ts
|
|
- id: GAP-003
|
|
nombre: "Tests Permissions Service"
|
|
sp: 5
|
|
status: completado
|
|
tests: 42
|
|
archivo: src/modules/roles/__tests__/permissions.service.spec.ts
|
|
- id: GAP-004
|
|
nombre: "Tests Payment Reconciliation"
|
|
sp: 3
|
|
status: completado
|
|
tests: 36
|
|
archivo: src/modules/financial/__tests__/payments.service.spec.ts
|
|
- id: GAP-005
|
|
nombre: "Tests Valuation FIFO/LIFO/Average"
|
|
sp: 5
|
|
status: completado
|
|
tests: 37
|
|
archivo: src/modules/inventory/__tests__/valuation.service.spec.ts
|
|
|
|
validacion_db:
|
|
recreacion_ejecutada: true
|
|
ddl_ejecutados: "20/20"
|
|
resultado: "DATABASE RECREATED SUCCESSFULLY"
|
|
tablas_auth: 29
|
|
tabla_trusted_devices: "verificada - 21 columnas, 4 indices"
|
|
|
|
metricas_implementacion:
|
|
backend:
|
|
tests_totales: 848 # 647 + 201 (GAPS resolution)
|
|
cobertura: "~82%" # Actualizado post-GAPS
|
|
modulos_testeados: [auth, users, roles, tenants, financial, inventory, oauth, core, system, audit, permissions, mfa, trusted-devices, payments, valuation]
|
|
frontend:
|
|
pages_creadas: 29 # +4 (Notifications, AuditLogs, AccessLogs, SecurityEvents)
|
|
stores_creados: 6 # +2 (notifications, audit)
|
|
routes_agregadas: 27 # +4
|
|
build_time: "5.02s"
|
|
database:
|
|
ddl_validados: 17 # +2 (13-audit.sql, updates)
|
|
seeds_cargados: 7
|
|
rls_tests: 10+
|
|
|
|
# Metricas consolidadas
|
|
metricas:
|
|
documentacion:
|
|
directivas_creadas: 6
|
|
templates_creados: 4
|
|
total_archivos_docs: 630
|
|
archivos_migrados_gamilit: 119
|
|
|
|
modulos:
|
|
total: 15
|
|
p0_criticos: 4
|
|
p1_core: 6
|
|
p2_extended: 5
|
|
documentados: 10
|
|
migrados_gamilit: 10
|
|
|
|
modulos:
|
|
total: 15
|
|
implementados: 0
|
|
en_desarrollo: 0
|
|
documentacion_completa: 5
|
|
rf_documentados: 10
|
|
documentacion_pendiente: 5
|
|
migrados_estructura_gamilit: 10
|
|
|
|
lista:
|
|
- codigo: MGN-001
|
|
nombre: auth
|
|
estado: migrado_gamilit
|
|
descripcion: Autenticacion JWT, OAuth, sessions
|
|
ubicacion_gamilit: docs/01-fase-foundation/MGN-001-auth/
|
|
documentos:
|
|
- requerimientos/RF-AUTH-*.md (5 archivos)
|
|
- especificaciones/ET-*.md (3 archivos)
|
|
- historias-usuario/US-MGN001-*.md (4 archivos)
|
|
- implementacion/TRACEABILITY.yml
|
|
story_points: 40
|
|
tablas_bd: 6
|
|
endpoints: 7
|
|
test_cases: 8
|
|
|
|
- codigo: MGN-002
|
|
nombre: users
|
|
estado: migrado_gamilit
|
|
descripcion: Gestion de usuarios CRUD, perfil, preferencias
|
|
ubicacion_gamilit: docs/01-fase-foundation/MGN-002-users/
|
|
documentos:
|
|
- requerimientos/RF-USER-*.md (5 archivos)
|
|
- especificaciones/ET-*.md (2 archivos)
|
|
- historias-usuario/US-MGN002-*.md (4 archivos)
|
|
- implementacion/TRACEABILITY.yml
|
|
story_points: 35
|
|
tablas_bd: 6
|
|
endpoints: 14
|
|
test_cases: 18
|
|
|
|
- codigo: MGN-003
|
|
nombre: roles
|
|
estado: migrado_gamilit
|
|
descripcion: Roles y permisos (RBAC), guards, decoradores
|
|
ubicacion_gamilit: docs/01-fase-foundation/MGN-003-roles/
|
|
documentos:
|
|
- requerimientos/RF-ROLE-*.md (4 archivos)
|
|
- especificaciones/ET-*.md (2 archivos)
|
|
- historias-usuario/US-MGN003-*.md (4 archivos)
|
|
- implementacion/TRACEABILITY.yml
|
|
story_points: 40
|
|
tablas_bd: 4
|
|
endpoints: 10
|
|
test_cases: 14
|
|
|
|
- codigo: MGN-004
|
|
nombre: tenants
|
|
estado: migrado_gamilit
|
|
descripcion: Multi-tenancy, aislamiento RLS, subscripciones
|
|
ubicacion_gamilit: docs/01-fase-foundation/MGN-004-tenants/
|
|
documentos:
|
|
- requerimientos/RF-TENANT-*.md (4 archivos)
|
|
- especificaciones/ET-*.md (2 archivos)
|
|
- historias-usuario/US-MGN004-*.md (4 archivos)
|
|
- implementacion/TRACEABILITY.yml
|
|
story_points: 35
|
|
tablas_bd: 8
|
|
endpoints: 25
|
|
test_cases: 18
|
|
|
|
- codigo: MGN-005
|
|
nombre: catalogs
|
|
estado: rf_documentado
|
|
descripcion: Catalogos maestros genericos
|
|
ubicacion_gamilit: docs/02-fase-core-business/MGN-005-catalogs/
|
|
documentos:
|
|
- requerimientos/RF-CATALOG-*.md (5 archivos)
|
|
- requerimientos/INDICE-RF-CATALOGS.md
|
|
- especificaciones/ (pendiente)
|
|
- historias-usuario/ (pendiente)
|
|
- implementacion/TRACEABILITY.yml
|
|
story_points: 30
|
|
rf_count: 5
|
|
tablas_bd: 3
|
|
endpoints: 12
|
|
|
|
- codigo: MGN-006
|
|
nombre: settings
|
|
estado: rf_documentado
|
|
descripcion: Configuraciones del sistema, tenant y usuario
|
|
ubicacion_gamilit: docs/02-fase-core-business/MGN-006-settings/
|
|
documentos:
|
|
- requerimientos/RF-SETTINGS-001.md (Configuracion Sistema)
|
|
- requerimientos/RF-SETTINGS-002.md (Configuracion Tenant)
|
|
- requerimientos/RF-SETTINGS-003.md (Preferencias Usuario)
|
|
- requerimientos/RF-SETTINGS-004.md (Feature Flags)
|
|
- requerimientos/INDICE-RF-SETTINGS.md
|
|
- especificaciones/ (pendiente)
|
|
- historias-usuario/ (pendiente)
|
|
- implementacion/TRACEABILITY.yml (actualizado)
|
|
story_points: 25
|
|
rf_count: 4
|
|
tablas_bd: 5
|
|
endpoints: 15
|
|
|
|
- codigo: MGN-007
|
|
nombre: audit
|
|
estado: rf_documentado
|
|
descripcion: Auditoria, access logs y eventos de seguridad
|
|
ubicacion_gamilit: docs/02-fase-core-business/MGN-007-audit/
|
|
documentos:
|
|
- requerimientos/RF-AUDIT-001.md (Audit Trail)
|
|
- requerimientos/RF-AUDIT-002.md (Access Logs)
|
|
- requerimientos/RF-AUDIT-003.md (Security Events)
|
|
- requerimientos/RF-AUDIT-004.md (Consultas y Reportes)
|
|
- requerimientos/INDICE-RF-AUDIT.md
|
|
- especificaciones/ (pendiente)
|
|
- historias-usuario/ (pendiente)
|
|
- implementacion/TRACEABILITY.yml (actualizado)
|
|
story_points: 30
|
|
rf_count: 4
|
|
tablas_bd: 4
|
|
endpoints: 12
|
|
|
|
- codigo: MGN-008
|
|
nombre: notifications
|
|
estado: rf_documentado
|
|
descripcion: Notificaciones in-app, email y push
|
|
ubicacion_gamilit: docs/02-fase-core-business/MGN-008-notifications/
|
|
documentos:
|
|
- requerimientos/RF-NOTIF-001.md (In-App)
|
|
- requerimientos/RF-NOTIF-002.md (Email)
|
|
- requerimientos/RF-NOTIF-003.md (Push)
|
|
- requerimientos/RF-NOTIF-004.md (Preferencias)
|
|
- requerimientos/INDICE-RF-NOTIF.md
|
|
- especificaciones/ (pendiente)
|
|
- historias-usuario/ (pendiente)
|
|
- implementacion/TRACEABILITY.yml (actualizado)
|
|
story_points: 25
|
|
rf_count: 4
|
|
tablas_bd: 6
|
|
endpoints: 15
|
|
|
|
- codigo: MGN-009
|
|
nombre: reports
|
|
estado: rf_documentado
|
|
descripcion: Reportes predefinidos, dashboards y report builder
|
|
ubicacion_gamilit: docs/02-fase-core-business/MGN-009-reports/
|
|
documentos:
|
|
- requerimientos/RF-REPORT-001.md (Predefinidos)
|
|
- requerimientos/RF-REPORT-002.md (Dashboards)
|
|
- requerimientos/RF-REPORT-003.md (Report Builder)
|
|
- requerimientos/RF-REPORT-004.md (Programados)
|
|
- requerimientos/INDICE-RF-REPORT.md
|
|
- especificaciones/ (pendiente)
|
|
- historias-usuario/ (pendiente)
|
|
- implementacion/TRACEABILITY.yml (actualizado)
|
|
story_points: 35
|
|
rf_count: 4
|
|
tablas_bd: 7
|
|
endpoints: 18
|
|
|
|
- codigo: MGN-010
|
|
nombre: financial
|
|
estado: rf_documentado
|
|
descripcion: Base financiera (cuentas, monedas, periodos, asientos)
|
|
ubicacion_gamilit: docs/02-fase-core-business/MGN-010-financial/
|
|
documentos:
|
|
- requerimientos/RF-FIN-001.md (Plan de Cuentas)
|
|
- requerimientos/RF-FIN-002.md (Monedas y TC)
|
|
- requerimientos/RF-FIN-003.md (Periodos Contables)
|
|
- requerimientos/RF-FIN-004.md (Asientos Contables)
|
|
- requerimientos/INDICE-RF-FINANCIAL.md
|
|
- especificaciones/ (pendiente)
|
|
- historias-usuario/ (pendiente)
|
|
- implementacion/TRACEABILITY.yml (actualizado)
|
|
story_points: 45
|
|
rf_count: 4
|
|
tablas_bd: 10
|
|
endpoints: 25
|
|
|
|
- codigo: MGN-011
|
|
nombre: inventory
|
|
estado: planificado
|
|
descripcion: Inventario basico
|
|
|
|
- codigo: MGN-012
|
|
nombre: purchasing
|
|
estado: planificado
|
|
descripcion: Compras basicas
|
|
|
|
- codigo: MGN-013
|
|
nombre: crm
|
|
estado: planificado
|
|
descripcion: CRM basico
|
|
|
|
- codigo: MGN-014
|
|
nombre: integration
|
|
estado: planificado
|
|
descripcion: APIs de integracion
|
|
|
|
verticales_dependientes:
|
|
- nombre: construccion
|
|
codigo: MAI/MAE
|
|
estado: 40%
|
|
fase: EN_DESARROLLO
|
|
path: ../verticales/construccion/
|
|
modulos: 18
|
|
specs_aplicables: 26
|
|
specs_implementadas: 0
|
|
tablas_heredadas: 124
|
|
tablas_especificas: 33
|
|
|
|
- nombre: mecanicas-diesel
|
|
codigo: MMD
|
|
estado: 20%
|
|
fase: DDL_IMPLEMENTADO
|
|
path: ../verticales/mecanicas-diesel/
|
|
modulos: 6
|
|
specs_aplicables: 25
|
|
specs_implementadas: 0
|
|
tablas_heredadas: 97
|
|
tablas_especificas: 30
|
|
|
|
- nombre: vidrio-templado
|
|
codigo: VT
|
|
estado: 15%
|
|
fase: PLANIFICACION_COMPLETA
|
|
path: ../verticales/vidrio-templado/
|
|
modulos: 8
|
|
specs_aplicables: 25
|
|
specs_implementadas: 0
|
|
tablas_heredadas: 97
|
|
tablas_especificas: 25
|
|
|
|
- nombre: retail
|
|
codigo: RT
|
|
estado: 15%
|
|
fase: PLANIFICACION_COMPLETA
|
|
path: ../verticales/retail/
|
|
modulos: 10
|
|
specs_aplicables: 24
|
|
specs_implementadas: 0
|
|
tablas_heredadas: 102
|
|
tablas_especificas: 30
|
|
|
|
- nombre: clinicas
|
|
codigo: CL
|
|
estado: 15%
|
|
fase: PLANIFICACION_COMPLETA
|
|
path: ../verticales/clinicas/
|
|
modulos: 12
|
|
specs_aplicables: 24
|
|
specs_implementadas: 0
|
|
tablas_heredadas: 100
|
|
tablas_especificas: 35
|
|
|
|
# ============================================================================
|
|
# MAPEO DE SPECS A VERTICALES (Referencia)
|
|
# ============================================================================
|
|
mapeo_specs_verticales:
|
|
documento_completo: docs/04-modelado/MAPEO-SPECS-VERTICALES.md
|
|
fecha_actualizacion: 2025-12-08
|
|
resumen:
|
|
total_specs: 30
|
|
por_vertical:
|
|
construccion: {aplicables: 26, obligatorias: 22, opcionales: 4}
|
|
mecanicas_diesel: {aplicables: 25, obligatorias: 23, opcionales: 2}
|
|
vidrio_templado: {aplicables: 25, obligatorias: 22, opcionales: 3}
|
|
retail: {aplicables: 24, obligatorias: 21, opcionales: 3}
|
|
clinicas: {aplicables: 24, obligatorias: 20, opcionales: 4}
|
|
|
|
documentacion:
|
|
total_archivos: 630
|
|
archivos_md: 615+
|
|
archivos_sql: 0
|
|
path: /docs/
|
|
|
|
# Fase 01 - Foundation (completa)
|
|
modulo_auth:
|
|
requerimientos: 6
|
|
especificaciones_tecnicas: 3
|
|
user_stories: 5
|
|
test_plans: 1
|
|
|
|
modulo_users:
|
|
requerimientos: 5
|
|
especificaciones_tecnicas: 2
|
|
user_stories: 4
|
|
test_plans: 1
|
|
|
|
modulo_rbac:
|
|
requerimientos: 5
|
|
especificaciones_tecnicas: 2
|
|
user_stories: 4
|
|
test_plans: 1
|
|
|
|
modulo_tenants:
|
|
requerimientos: 5
|
|
especificaciones_tecnicas: 2
|
|
user_stories: 4
|
|
test_plans: 1
|
|
|
|
# Fase 02 - Core Business (RF documentados)
|
|
modulo_catalogs:
|
|
requerimientos: 5
|
|
especificaciones_tecnicas: 0
|
|
user_stories: 0
|
|
|
|
modulo_settings:
|
|
requerimientos: 4
|
|
especificaciones_tecnicas: 0
|
|
user_stories: 0
|
|
|
|
modulo_audit:
|
|
requerimientos: 4
|
|
especificaciones_tecnicas: 0
|
|
user_stories: 0
|
|
|
|
modulo_notifications:
|
|
requerimientos: 4
|
|
especificaciones_tecnicas: 0
|
|
user_stories: 0
|
|
|
|
modulo_reports:
|
|
requerimientos: 4
|
|
especificaciones_tecnicas: 0
|
|
user_stories: 0
|
|
|
|
modulo_financial:
|
|
requerimientos: 4
|
|
especificaciones_tecnicas: 0
|
|
user_stories: 0
|
|
|
|
schemas_bd:
|
|
- nombre: core_auth
|
|
tablas_documentadas: 6
|
|
estado: documentado
|
|
|
|
- nombre: core_users
|
|
tablas_documentadas: 6
|
|
estado: documentado
|
|
|
|
- nombre: core_rbac
|
|
tablas_documentadas: 4
|
|
estado: documentado
|
|
|
|
- nombre: core_tenants
|
|
tablas_documentadas: 8
|
|
estado: documentado
|
|
|
|
- nombre: core_catalogs
|
|
tablas_estimadas: 3
|
|
estado: rf_documentado
|
|
|
|
- nombre: core_settings
|
|
tablas_estimadas: 5
|
|
estado: rf_documentado
|
|
|
|
- nombre: core_audit
|
|
tablas_estimadas: 4
|
|
estado: rf_documentado
|
|
|
|
- nombre: core_notifications
|
|
tablas_estimadas: 6
|
|
estado: rf_documentado
|
|
|
|
- nombre: core_reports
|
|
tablas_estimadas: 7
|
|
estado: rf_documentado
|
|
|
|
- nombre: core_financial
|
|
tablas_estimadas: 10
|
|
estado: rf_documentado
|
|
|
|
# Resumen de documentacion completada
|
|
documentacion_completada:
|
|
# Fase 01
|
|
auth_module:
|
|
fecha_completado: 2025-12-05
|
|
documentos_creados: 14
|
|
story_points_totales: 29
|
|
sprints_estimados: 2
|
|
tablas_bd: 6
|
|
endpoints: 7
|
|
casos_prueba: 8
|
|
|
|
users_module:
|
|
fecha_completado: 2025-12-05
|
|
documentos_creados: 14
|
|
story_points_totales: 21
|
|
sprints_estimados: 2
|
|
tablas_bd: 6
|
|
endpoints: 14
|
|
casos_prueba: 18
|
|
|
|
rbac_module:
|
|
fecha_completado: 2025-12-05
|
|
documentos_creados: 13
|
|
story_points_totales: 29
|
|
sprints_estimados: 2
|
|
tablas_bd: 4
|
|
endpoints: 10
|
|
casos_prueba: 14
|
|
|
|
tenants_module:
|
|
fecha_completado: 2025-12-05
|
|
documentos_creados: 13
|
|
story_points_totales: 47
|
|
sprints_estimados: 3
|
|
tablas_bd: 8
|
|
endpoints: 25
|
|
casos_prueba: 18
|
|
|
|
# Fase 02 - RF Documentados
|
|
fase_02_rf:
|
|
fecha_completado: 2025-12-05
|
|
modulos_documentados: 6
|
|
total_rf: 25
|
|
story_points: 190
|
|
descripcion: "RF documentados para MGN-005 a MGN-010"
|
|
|
|
# Totales acumulados
|
|
totales:
|
|
modulos_documentados: 10
|
|
modulos_con_estructura: 10
|
|
documentos_totales: 109
|
|
rf_total: 46
|
|
et_total: 9
|
|
us_total: 17
|
|
story_points_fase_1: 150
|
|
story_points_fase_2: 190
|
|
story_points_total: 340
|
|
tablas_bd: 59
|
|
endpoints: 148
|
|
test_cases: 58
|
|
|
|
# Conteos RF por Fase
|
|
rf_por_fase:
|
|
fase_01_foundation:
|
|
total: 21
|
|
por_modulo:
|
|
- {modulo: MGN-001, rf: 6}
|
|
- {modulo: MGN-002, rf: 5}
|
|
- {modulo: MGN-003, rf: 5}
|
|
- {modulo: MGN-004, rf: 5}
|
|
|
|
fase_02_core_business:
|
|
total: 25
|
|
por_modulo:
|
|
- {modulo: MGN-005, rf: 5}
|
|
- {modulo: MGN-006, rf: 4}
|
|
- {modulo: MGN-007, rf: 4}
|
|
- {modulo: MGN-008, rf: 4}
|
|
- {modulo: MGN-009, rf: 4}
|
|
- {modulo: MGN-010, rf: 4}
|
|
|
|
# Hitos
|
|
hitos:
|
|
fase_1_foundation_core:
|
|
estado: COMPLETADO
|
|
fecha: 2025-12-05
|
|
modulos:
|
|
- MGN-001 Auth
|
|
- MGN-002 Users
|
|
- MGN-003 RBAC
|
|
- MGN-004 Tenants
|
|
descripcion: "Todos los modulos P0 criticos documentados y migrados GAMILIT"
|
|
|
|
fase_2_core_business_structure:
|
|
estado: COMPLETADO
|
|
fecha: 2025-12-05
|
|
modulos:
|
|
- MGN-005 Catalogs (estructura)
|
|
- MGN-006 Settings (estructura)
|
|
- MGN-007 Audit (estructura)
|
|
- MGN-008 Notifications (estructura)
|
|
- MGN-009 Reports (estructura)
|
|
- MGN-010 Financial (estructura)
|
|
descripcion: "Estructura GAMILIT creada para todos los modulos de Fase 02"
|
|
|
|
fase_2_rf_documented:
|
|
estado: COMPLETADO
|
|
fecha: 2025-12-05
|
|
modulos:
|
|
- MGN-005 Catalogs (5 RF)
|
|
- MGN-006 Settings (4 RF)
|
|
- MGN-007 Audit (4 RF)
|
|
- MGN-008 Notifications (4 RF)
|
|
- MGN-009 Reports (4 RF)
|
|
- MGN-010 Financial (4 RF)
|
|
descripcion: "RF documentados para todos los modulos de Fase 02 (25 RF total)"
|
|
|
|
proximo_hito:
|
|
nombre: fase_2_et_documented
|
|
descripcion: "Especificaciones Tecnicas para Fase 02"
|
|
modulos_pendientes: 6
|
|
|
|
fase_3_gap_analysis:
|
|
estado: COMPLETADO
|
|
fecha: 2025-12-08
|
|
descripcion: "Analisis de gaps vs Odoo 18 - 100% documentados"
|
|
metricas:
|
|
gaps_p0_documentados: 18
|
|
gaps_p1_documentados: 22
|
|
patrones_tecnicos_documentados: 2
|
|
especificaciones_transversales: 30
|
|
workflows_documentados: 3
|
|
|
|
# ============================================================================
|
|
# ESPECIFICACIONES TRANSVERSALES (Gap Analysis vs Odoo 18)
|
|
# ============================================================================
|
|
especificaciones_transversales:
|
|
total: 30
|
|
fecha_creacion: 2025-12-08
|
|
ubicacion: docs/04-modelado/especificaciones-tecnicas/transversal/
|
|
|
|
# Gaps P0 - Funcionales (16 documentos)
|
|
p0_funcionales:
|
|
- archivo: SPEC-SISTEMA-SECUENCIAS.md
|
|
gap: "GAP-MGN-004-002 (ir.sequence)"
|
|
sp: 8
|
|
- archivo: SPEC-VALORACION-INVENTARIO.md
|
|
gap: "GAP-MGN-005-001 (FIFO/AVCO)"
|
|
sp: 21
|
|
- archivo: SPEC-SEGURIDAD-API-KEYS-PERMISOS.md
|
|
gap: "GAP-MGN-001-001,002,003 (API Keys + ACL + RLS)"
|
|
sp: 31
|
|
- archivo: SPEC-REPORTES-FINANCIEROS.md
|
|
gap: "GAP-MGN-004-001 (Balance/P&L)"
|
|
sp: 13
|
|
- archivo: SPEC-PORTAL-PROVEEDORES.md
|
|
gap: "GAP-MGN-013-001 (Portal RFQ)"
|
|
sp: 13
|
|
- archivo: SPEC-NOMINA-BASICA.md
|
|
gap: "GAP-MGN-010-001 (hr_payroll)"
|
|
sp: 21
|
|
- archivo: SPEC-GASTOS-EMPLEADOS.md
|
|
gap: "GAP-MGN-010-002 (hr_expense)"
|
|
sp: 13
|
|
- archivo: SPEC-TAREAS-RECURRENTES.md
|
|
gap: "GAP-MGN-011-001 (project.task.recurrence)"
|
|
sp: 13
|
|
- archivo: SPEC-SCHEDULER-REPORTES.md
|
|
gap: "GAP-MGN-012-001 (ir.cron + mail)"
|
|
sp: 8
|
|
- archivo: SPEC-INTEGRACION-CALENDAR.md
|
|
gap: "GAP-MGN-014-001 (calendar + google_calendar)"
|
|
sp: 8
|
|
|
|
# Gaps P1 (14 documentos)
|
|
p1:
|
|
- archivo: SPEC-CONTABILIDAD-ANALITICA-MULTIDIMENSIONAL.md
|
|
gap: "GAP-MGN-008-001"
|
|
sp: 21
|
|
- archivo: SPEC-CONCILIACION-BANCARIA.md
|
|
gap: "GAP-MGN-004-004"
|
|
sp: 21
|
|
- archivo: SPEC-FIRMA-ELECTRONICA-NOM151.md
|
|
gap: "GAP-MGN-013-002"
|
|
sp: 13
|
|
- archivo: SPEC-TWO-FACTOR-AUTHENTICATION.md
|
|
gap: "GAP-MGN-001-004"
|
|
sp: 13
|
|
- archivo: SPEC-TRAZABILIDAD-LOTES-SERIES.md
|
|
gap: "GAP-MGN-005-002"
|
|
sp: 13
|
|
- archivo: SPEC-PRICING-RULES.md
|
|
gap: "GAP-MGN-007-002"
|
|
sp: 8
|
|
- archivo: SPEC-BLANKET-ORDERS.md
|
|
gap: "GAP-MGN-006-002"
|
|
sp: 13
|
|
- archivo: SPEC-OAUTH2-SOCIAL-LOGIN.md
|
|
gap: "GAP-MGN-001-005"
|
|
sp: 8
|
|
- archivo: SPEC-INVENTARIOS-CICLICOS.md
|
|
gap: "GAP-MGN-005-003"
|
|
sp: 13
|
|
- archivo: SPEC-IMPUESTOS-AVANZADOS.md
|
|
gap: "GAP-MGN-004-005"
|
|
sp: 8
|
|
- archivo: SPEC-PLANTILLAS-CUENTAS.md
|
|
gap: "GAP-MGN-004-006"
|
|
sp: 8
|
|
- archivo: SPEC-CONSOLIDACION-FINANCIERA.md
|
|
gap: "GAP-MGN-002-001"
|
|
sp: 13
|
|
- archivo: SPEC-TASAS-CAMBIO-AUTOMATICAS.md
|
|
gap: "GAP-MGN-003-001"
|
|
sp: 5
|
|
- archivo: SPEC-ALERTAS-PRESUPUESTO.md
|
|
gap: "GAP-MGN-008-001"
|
|
sp: 8
|
|
- archivo: SPEC-PRESUPUESTOS-REVISIONES.md
|
|
gap: "GAP-MGN-008-002"
|
|
sp: 8
|
|
- archivo: SPEC-RRHH-EVALUACIONES-SKILLS.md
|
|
gap: "GAP-MGN-010-001,002,003"
|
|
sp: 26
|
|
- archivo: SPEC-PROYECTOS-DEPENDENCIAS-BURNDOWN.md
|
|
gap: "GAP-MGN-011-001,002"
|
|
sp: 13
|
|
- archivo: SPEC-LOCALIZACION-PAISES.md
|
|
gap: "GAP-MGN-002-002"
|
|
sp: 13
|
|
|
|
# Patrones Tecnicos P0 (2 documentos)
|
|
patrones_tecnicos:
|
|
- archivo: SPEC-MAIL-THREAD-TRACKING.md
|
|
patron: "mail.thread mixin (tracking/mensajeria)"
|
|
sp: 13
|
|
- archivo: SPEC-WIZARD-TRANSIENT-MODEL.md
|
|
patron: "TransientModel (wizards)"
|
|
sp: 8
|
|
|
|
# Total SP cubiertos
|
|
total_sp: 394
|
|
|
|
# ============================================================================
|
|
# WORKFLOWS DOCUMENTADOS
|
|
# ============================================================================
|
|
workflows:
|
|
total: 3
|
|
ubicacion: docs/04-modelado/workflows/
|
|
documentos:
|
|
- archivo: WORKFLOW-CIERRE-PERIODO-CONTABLE.md
|
|
gap: "GAP-MGN-004-003 (lock dates)"
|
|
- archivo: WORKFLOW-3-WAY-MATCH.md
|
|
gap: "GAP-MGN-006-001 (3-way match)"
|
|
- archivo: WORKFLOW-PAGOS-ANTICIPADOS.md
|
|
gap: "GAP-MGN-007-001 (down payments)"
|
|
|
|
# ============================================================================
|
|
# ANALISIS DE GAPS
|
|
# ============================================================================
|
|
analisis_gaps:
|
|
archivo_principal: orchestration/01-analisis/ANALISIS-GAPS-CONSOLIDADO.md
|
|
version: "10.0"
|
|
fecha: 2025-12-08
|
|
estado: "100% P0 + 100% P1 + Patrones Tecnicos COMPLETOS"
|
|
metricas:
|
|
gaps_p0_total: 18
|
|
gaps_p0_documentados: 18
|
|
gaps_p1_total: 22
|
|
gaps_p1_documentados: 22
|
|
patrones_tecnicos_total: 2
|
|
patrones_tecnicos_documentados: 2
|
|
cobertura: "100%"
|
|
|
|
# ============================================================================
|
|
# IMPLEMENTACION DATABASE (DDL)
|
|
# ============================================================================
|
|
implementacion_database:
|
|
estado: "EN_PROGRESO"
|
|
fecha_inicio: 2025-12-08
|
|
ubicacion: database/ddl/
|
|
|
|
archivos_ddl:
|
|
# DDL Base (existentes)
|
|
- archivo: 00-prerequisites.sql
|
|
estado: existente
|
|
descripcion: "Extensiones y configuracion inicial"
|
|
|
|
- archivo: 01-auth.sql
|
|
estado: existente
|
|
descripcion: "Schema auth base: tenants, companies, users, roles, permissions, sessions"
|
|
tablas: 10
|
|
|
|
- archivo: 01-auth-extensions.sql
|
|
estado: NUEVO
|
|
fecha: 2025-12-08
|
|
descripcion: "Extensiones de seguridad: Groups, ACL, Record Rules, Field Permissions, API Keys, 2FA, OAuth2"
|
|
specs_relacionadas:
|
|
- SPEC-TWO-FACTOR-AUTHENTICATION.md
|
|
- SPEC-SEGURIDAD-API-KEYS-PERMISOS.md
|
|
- SPEC-OAUTH2-SOCIAL-LOGIN.md
|
|
tablas_nuevas:
|
|
- auth.groups
|
|
- auth.group_implied
|
|
- auth.user_groups
|
|
- auth.models
|
|
- auth.model_access
|
|
- auth.record_rules
|
|
- auth.rule_groups
|
|
- auth.model_fields
|
|
- auth.field_permissions
|
|
- auth.api_keys
|
|
- auth.trusted_devices
|
|
- auth.verification_codes
|
|
- auth.mfa_audit_log
|
|
- auth.oauth_providers
|
|
- auth.oauth_user_links
|
|
- auth.oauth_states
|
|
total_tablas: 16
|
|
funciones_nuevas:
|
|
- auth.get_user_effective_groups()
|
|
- auth.check_model_access()
|
|
- auth.cleanup_expired_oauth_states()
|
|
- auth.cleanup_expired_verification_codes()
|
|
- auth.cleanup_expired_trusted_devices()
|
|
- auth.cleanup_expired_api_keys()
|
|
vistas_nuevas:
|
|
- auth.users_oauth_summary
|
|
- auth.user_model_access_view
|
|
columnas_extendidas_users:
|
|
- mfa_enabled
|
|
- mfa_method
|
|
- mfa_secret
|
|
- backup_codes
|
|
- backup_codes_count
|
|
- mfa_setup_at
|
|
- last_2fa_verification
|
|
- oauth_only
|
|
- primary_oauth_provider_id
|
|
|
|
- archivo: 02-core.sql
|
|
estado: existente
|
|
descripcion: "Schema core: partners, addresses, tags"
|
|
|
|
- archivo: 03-analytics.sql
|
|
estado: existente
|
|
descripcion: "Schema analytics"
|
|
|
|
- archivo: 04-financial.sql
|
|
estado: existente
|
|
descripcion: "Schema financial: accounts, journals, moves"
|
|
|
|
- archivo: 05-inventory.sql
|
|
estado: existente
|
|
descripcion: "Schema inventory: products, warehouses, stock_moves"
|
|
|
|
- archivo: 06-purchase.sql
|
|
estado: existente
|
|
descripcion: "Schema purchase: purchase_orders"
|
|
|
|
- archivo: 07-sales.sql
|
|
estado: existente
|
|
descripcion: "Schema sales: sale_orders"
|
|
|
|
- archivo: 08-projects.sql
|
|
estado: existente
|
|
descripcion: "Schema projects"
|
|
|
|
- archivo: 09-system.sql
|
|
estado: existente
|
|
descripcion: "Schema system"
|
|
|
|
- archivo: 10-billing.sql
|
|
estado: existente
|
|
descripcion: "Schema billing"
|
|
|
|
- archivo: 11-crm.sql
|
|
estado: existente
|
|
descripcion: "Schema CRM"
|
|
|
|
- archivo: 12-hr.sql
|
|
estado: existente
|
|
descripcion: "Schema HR"
|
|
|
|
metricas_ddl:
|
|
archivos_existentes: 13
|
|
archivos_nuevos: 2
|
|
tablas_nuevas: 26
|
|
funciones_nuevas: 13
|
|
vistas_nuevas: 5
|
|
columnas_extendidas: 39
|
|
|
|
archivos_ddl_extensiones:
|
|
- archivo: 05-inventory-extensions.sql
|
|
estado: NUEVO
|
|
fecha: 2025-12-08
|
|
descripcion: "Extensiones de inventario: SVL, Lotes/Series, Conteos Ciclicos"
|
|
specs_relacionadas:
|
|
- SPEC-VALORACION-INVENTARIO.md
|
|
- SPEC-TRAZABILIDAD-LOTES-SERIES.md
|
|
- SPEC-INVENTARIOS-CICLICOS.md
|
|
tablas_nuevas:
|
|
- inventory.stock_valuation_layers
|
|
- inventory.category_stock_accounts
|
|
- inventory.valuation_settings
|
|
- inventory.lots
|
|
- inventory.move_line_consume_rel
|
|
- inventory.removal_strategies
|
|
- inventory.inventory_count_sessions
|
|
- inventory.inventory_count_lines
|
|
- inventory.abc_classification_rules
|
|
- inventory.product_abc_classification
|
|
total_tablas: 10
|
|
funciones_nuevas:
|
|
- inventory.run_fifo()
|
|
- inventory.calculate_abc_classification()
|
|
- inventory.get_pending_counts()
|
|
- inventory.mark_quants_outdated()
|
|
- inventory.compute_lot_expiration_dates()
|
|
- inventory.refresh_product_valuation_summary()
|
|
- inventory.update_session_stats()
|
|
total_funciones: 7
|
|
vistas_nuevas:
|
|
- inventory.product_valuation_summary (materialized)
|
|
- inventory.expiring_lots_view
|
|
- inventory.location_count_summary_view
|
|
total_vistas: 3
|
|
columnas_extendidas:
|
|
products: "10 columnas (tracking, expiration, lot_properties)"
|
|
product_categories: "3 columnas (cost_method, valuation_method, removal_strategy)"
|
|
quants: "8 columnas (lot, inventory_quantity, in_date, etc)"
|
|
locations: "4 columnas (cyclic_inventory, abc_classification)"
|
|
stock_move_lines: "3 columnas (lot_id, lot_name, tracking)"
|
|
stock_moves: "2 columnas (is_inventory, inventory_session_id)"
|
|
|
|
# Metricas consolidadas (redundante, se puede eliminar)
|
|
metricas_ddl_consolidadas:
|
|
archivos_existentes: 13
|
|
archivos_nuevos: 2
|
|
tablas_nuevas_total: 26
|
|
funciones_nuevas_total: 13
|
|
vistas_nuevas_total: 5
|
|
columnas_extendidas_total: 39
|