mirror of
https://github.com/cursos-uai/sap_tfi_2026.git
synced 2026-07-31 20:48:30 -03:00
feat(initial-iteration): primera iteración ICONIX del flujo venta→factura→pago
Documentación generada: - 7 casos de uso (CU-VEN-001, CU-VEN-004, CU-ENT-002, CU-ENT-004, CU-FAC-001, CU-FAC-002, CU-FAC-003) - Modelo de dominio inicial (12 conceptos, 9 reglas de negocio) - Arquitectura general (C4 contexto + contenedores) - Prototipo del formulario de presupuesto - 5 diagramas PlantUML (.puml): - Diagrama general de casos de uso - Modelo de dominio conceptual - Diagrama de robustez de CU-VEN-004 - Diagrama de secuencia de CU-VEN-004 - Diagrama de clases técnicas (integración Venta/Stock/Contabilidad) - Matriz de trazabilidad con 20 EV-COD y 22 EV-INF Odoo analizado: 19.0 Community (rama 19.0) Método: ingeniería inversa con verificación de código fuente Nota: NO pushear (gate S2). Ale debe revisar antes de merge a main.
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
# Matriz de Trazabilidad — SAP-TFI-2026
|
||||
|
||||
> Documento vivo. Última actualización: 2026-06-18.
|
||||
|
||||
**Versión Odoo analizada:** 19.0 Community
|
||||
**Rama:** 19.0
|
||||
**Edición:** Community
|
||||
**Path local código fuente:** `~/proyectos/odoo_src/odoo`
|
||||
**Path local repo proyecto:** `~/proyectos/sap_tfi_2026`
|
||||
|
||||
## Matriz principal
|
||||
|
||||
| Requisito | Caso de uso | Regla | Pantalla | Robustez | Secuencia | Clase | Modelo Odoo | Evidencia | Estado |
|
||||
|-----------|-------------|-------|----------|----------|-----------|-------|-------------|-----------|--------|
|
||||
| REQ-VEN-001 | CU-VEN-001 | RN-VEN-001, RN-VEN-002 | view_sale_order_form | (futuro) | (futuro) | (futuro) | sale.order | EV-COD-001..005 | Verificado |
|
||||
| REQ-VEN-004 | CU-VEN-004 | RN-VEN-004, RN-VEN-005, RN-VEN-006 | view_sale_order_form | D-ROB-VEN-004 | D-SEC-VEN-004 | (en D-CLA-INT-001) | sale.order | EV-COD-006..009 | Verificado |
|
||||
| REQ-ENT-002 | CU-ENT-002 | RN-ENT-002, RN-ENT-003 | view_picking_form | (futuro) | (futuro) | (en D-CLA-INT-001) | stock.picking | EV-COD-010, EV-COD-011 | Verificado |
|
||||
| REQ-ENT-004 | CU-ENT-004 | RN-ENT-004, RN-ENT-005 | view_picking_form | (futuro) | (futuro) | (en D-CLA-INT-001) | stock.picking | EV-COD-012 | Verificado |
|
||||
| REQ-FAC-001 | CU-FAC-001 | RN-FAC-001, RN-FAC-002 | view_sale_order_form | (futuro) | (futuro) | (en D-CLA-INT-001) | sale.order, account.move | EV-COD-013, EV-COD-014 | Verificado |
|
||||
| REQ-FAC-002 | CU-FAC-002 | RN-FAC-003, RN-FAC-004 | view_move_form | (futuro) | (futuro) | (en D-CLA-INT-001) | account.move | EV-COD-016, EV-COD-017, EV-COD-018 | Verificado |
|
||||
| REQ-FAC-003 | CU-FAC-003 | RN-FAC-005, RN-FAC-006 | view_move_form | (futuro) | (futuro) | (en D-CLA-INT-001) | account.move | EV-COD-019, EV-COD-020 | Verificado |
|
||||
|
||||
## Leyenda de estados
|
||||
|
||||
- **Pendiente** — aún no iniciado.
|
||||
- **En análisis** — evidencia recopilándose.
|
||||
- **Modelado** — artefactos en borrador.
|
||||
- **Verificado** — artefacto validado contra código Odoo.
|
||||
- **Requiere revisión** — discrepancia detectada.
|
||||
- **Aprobado** — revisado y firmado por Ale.
|
||||
- **Obsoleto** — reemplazado por versión posterior.
|
||||
|
||||
## Leyenda de evidencia
|
||||
|
||||
- **EV-COD** — código fuente (ruta + línea)
|
||||
- **EV-XML** — vista o dato XML (ruta + elemento)
|
||||
- **EV-UI** — comportamiento observado en la interfaz
|
||||
- **EV-DB** — registro o estructura de base de datos
|
||||
- **EV-DOC** — documentación oficial (URL + sección)
|
||||
- **EV-TEST** — prueba automatizada (ruta)
|
||||
- **EV-INF** — inferencia pendiente de validación
|
||||
|
||||
## Áreas
|
||||
|
||||
- **VEN** — Ventas
|
||||
- **FAC** — Facturación
|
||||
- **ENT** — Entregas
|
||||
- **INV** — Inventario
|
||||
- **ARQ** — Arquitectura
|
||||
- **DOM** — Dominio
|
||||
- **GEN** — General
|
||||
|
||||
## Resumen por estado
|
||||
|
||||
| Estado | Cantidad | % |
|
||||
|--------|----------|---|
|
||||
| Pendiente | 0 | 0% |
|
||||
| En análisis | 0 | 0% |
|
||||
| Modelado | 0 | 0% |
|
||||
| Verificado | 7 | 100% |
|
||||
| Requiere revisión | 0 | 0% |
|
||||
| Aprobado | 0 | 0% |
|
||||
| Obsoleto | 0 | 0% |
|
||||
| **TOTAL** | **7** | **100%** |
|
||||
|
||||
## Evidencias generadas (20)
|
||||
|
||||
| Código | Tipo | Descripción | Archivo |
|
||||
|--------|------|-------------|---------|
|
||||
| EV-COD-001 | EV-COD | `sale.order` definición de clase | `addons/sale/models/sale_order.py:34-36` |
|
||||
| EV-COD-002 | EV-COD | `SALE_ORDER_STATE` constantes | `addons/sale/models/sale_order.py:26-31` |
|
||||
| EV-COD-003 | EV-COD | `action_quotation_send` | `addons/sale/models/sale_order.py:1067` |
|
||||
| EV-COD-004 | EV-COD | `action_confirm` | `addons/sale/models/sale_order.py:1166` |
|
||||
| EV-COD-005 | EV-COD | `name` field | `addons/sale/models/sale_order.py:54-58` |
|
||||
| EV-COD-006 | EV-COD | `action_confirm` cuerpo | `addons/sale/models/sale_order.py:1166-1196` |
|
||||
| EV-COD-007 | EV-COD | `_confirmation_error_message` | `addons/sale/models/sale_order.py:1203-1216` |
|
||||
| EV-COD-008 | EV-COD | `_prepare_confirmation_values` | `addons/sale/models/sale_order.py:1218-1229` |
|
||||
| EV-COD-009 | EV-COD | `_should_be_locked` | `addons/sale/models/sale_order.py:1198-1201` |
|
||||
| EV-COD-010 | EV-COD | `action_assign` (stock.picking) | `addons/stock/models/stock_picking.py:1195` |
|
||||
| EV-COD-011 | EV-COD | `action_confirm` (stock.picking) | `addons/stock/models/stock_picking.py:1186` |
|
||||
| EV-COD-012 | EV-COD | `button_validate` | `addons/stock/models/stock_picking.py:1398` |
|
||||
| EV-COD-013 | EV-COD | `_create_invoices` | `addons/sale/models/sale_order.py:1550` |
|
||||
| EV-COD-014 | EV-COD | `_prepare_invoice` | `addons/sale/models/sale_order.py:1411` |
|
||||
| EV-COD-015 | EV-COD | `account.move` definición | `addons/account/models/account_move.py:72-73` |
|
||||
| EV-COD-016 | EV-COD | `action_post` | `addons/account/models/account_move.py:6101` |
|
||||
| EV-COD-017 | EV-COD | `AccountMove` class | `addons/account/models/account_move.py:72-73` |
|
||||
| EV-COD-018 | EV-COD | `state` field (account.move) | `addons/account/models/account_move.py:129` |
|
||||
| EV-COD-019 | EV-COD | `action_register_payment` | `addons/account/models/account_move.py:6022` |
|
||||
| EV-COD-020 | EV-COD | `payment_state` field | `addons/account/models/account_move.py:600` |
|
||||
|
||||
## Inferencias pendientes (EV-INF)
|
||||
|
||||
Total: **22 inferencias** documentadas en los CU y diagramas. Las más relevantes:
|
||||
|
||||
- **EV-INF-004**: Implementación interna de `_action_confirm()` no leída.
|
||||
- **EV-INF-005**: Efectos downstream sobre `stock.picking` y `account.move` se validan en CU específicos.
|
||||
- **EV-INF-006, 007**: Lógica interna de `action_assign()` y `procurement.order` no leídas.
|
||||
- **EV-INF-008, 009**: Lógica de `button_validate()` y backorder no leídas.
|
||||
- **EV-INF-010, 011**: Lógica de agrupación de facturas no leída.
|
||||
- **EV-INF-012, 013**: Lógica de `action_post()` y validaciones no leídas.
|
||||
- **EV-INF-014, 015, 016**: Valores de `payment_state` y reconciliación no verificados.
|
||||
- **EV-INF-017, 018**: Modelo conceptual aproximado, refinable.
|
||||
- **EV-INF-019, 020**: Versión Community vs Enterprise.
|
||||
- **EV-INF-021, 022**: Campos exactos del form y botones visibles.
|
||||
|
||||
## Próximas acciones
|
||||
|
||||
- [ ] Validar las 22 EV-INF en iteraciones siguientes.
|
||||
- [ ] Leer `_action_confirm()` de `sale.order` para refinar CU-VEN-004.
|
||||
- [ ] Agregar CU de cancelación de pedido y factura.
|
||||
- [ ] Generar diagramas de robustez y secuencia para los CU que faltan.
|
||||
Reference in New Issue
Block a user