Modules documented: - MAI-003 (OT): README, REQUERIMIENTOS, RESUMEN-EPICA, 10 US - MAI-006 (Tracking): README, REQUERIMIENTOS, RESUMEN-EPICA - MAI-008 (Incidencias): 3 US (18 SP) - MAI-011 (Flota): README, REQUERIMIENTOS, RESUMEN-EPICA - MAI-012 (Combustible): 3 US (18 SP) - MAI-013 (Mantenimiento): 3 US (18 SP) - MAI-014 (Carriers): 3 US (18 SP) - MAI-015 (Portal): 3 US (18 SP) - MAE-016 (Carta Porte): 10 US - MAE-017 (HOS): 3 US (16 SP) - MAE-018 (Reportes): 3 US (18 SP) Phase 2+3 complete: 13 modules, 50+ User Stories Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
8.4 KiB
8.4 KiB
REQUERIMIENTOS.md - MAI-003 Ordenes de Transporte
Modulo: MAI-003 | Version: 1.0.0 | Actualizado: 2026-01-27
Resumen
| Metrica | Valor |
|---|---|
| Total Requerimientos | 25 |
| Prioridad Alta | 12 |
| Prioridad Media | 9 |
| Prioridad Baja | 4 |
| Fuente DDL | 01-transport-schema-ddl.sql |
| Fuente Funcional | REQ-GIRO-TRANSPORTISTA.md (secciones 4.2, 4.3) |
Requerimientos Funcionales
Creacion y Datos de la OT
| ID | Descripcion | Prioridad | Modulo Relacionado |
|---|---|---|---|
| RF-MAI003-001 | El sistema debe permitir crear una Orden de Transporte con los datos obligatorios: codigo unico por tenant, shipper (cliente), consignee (destinatario), direccion de origen, direccion de destino y usuario creador. | Alta | MAI-002 (Clientes) |
| RF-MAI003-002 | El sistema debe registrar la referencia del cliente (referencia_cliente) como dato opcional para vincular la OT con el sistema del shipper (PO, ASN). | Alta | MAI-002 (Clientes) |
| RF-MAI003-003 | El sistema debe capturar datos completos de origen y destino: direccion, codigo postal, ciudad, estado, pais (default MEX), latitud, longitud, contacto y telefono. | Alta | - |
| RF-MAI003-004 | El sistema debe registrar las fechas y ventanas de tiempo programadas: fecha_recoleccion_programada, fecha_entrega_programada, ventana_recoleccion_inicio/fin y ventana_entrega_inicio/fin. | Alta | - |
| RF-MAI003-005 | El sistema debe capturar los datos de carga: tipo_carga (GENERAL, PELIGROSA, REFRIGERADA, SOBREDIMENSIONADA, GRANEL, LIQUIDOS, CONTENEDOR, AUTOMOVILES), descripcion_carga, peso_kg, volumen_m3, piezas, pallets, valor_declarado y moneda. | Alta | - |
| RF-MAI003-006 | El sistema debe generar automaticamente un codigo unico de OT por tenant, cumpliendo con la constraint uq_ot_tenant_codigo definida en DDL. | Alta | - |
Restricciones Logisticas
| ID | Descripcion | Prioridad | Modulo Relacionado |
|---|---|---|---|
| RF-MAI003-007 | El sistema debe permitir definir requisitos de temperatura para carga refrigerada: requiere_temperatura (boolean), temperatura_min y temperatura_max en grados Celsius. | Media | MAI-011 (Flota) |
| RF-MAI003-008 | El sistema debe permitir marcar requisitos de seguridad: requiere_gps (boolean), requiere_escolta (boolean) y requiere_cita (boolean). | Media | MAI-006 (Tracking) |
| RF-MAI003-009 | El sistema debe permitir registrar instrucciones especiales como texto libre para comunicar al operador y al equipo de despacho. | Media | MAI-005 (Despacho) |
| RF-MAI003-010 | El sistema debe registrar la modalidad de servicio (FTL o LTL) para determinar si el viaje es dedicado o consolidado. | Alta | MAI-004 (Planeacion) |
Tarifas y Costos
| ID | Descripcion | Prioridad | Modulo Relacionado |
|---|---|---|---|
| RF-MAI003-011 | El sistema debe permitir asociar una tarifa a la OT (tarifa_id) y registrar tarifa_base, recargos, descuentos, subtotal, IVA y total. | Alta | MAI-002 (Tarifas), MAI-009 (Facturacion) |
| RF-MAI003-012 | El sistema debe calcular automaticamente subtotal, IVA y total al confirmar la OT, basandose en la tarifa asignada y los recargos/descuentos aplicados. | Alta | MAI-009 (Facturacion) |
Workflow y Estados
| ID | Descripcion | Prioridad | Modulo Relacionado |
|---|---|---|---|
| RF-MAI003-013 | El sistema debe implementar el workflow de estados: BORRADOR -> CONFIRMADA -> ASIGNADA -> EN_PROCESO -> COMPLETADA -> FACTURADA, con CANCELADA accesible desde BORRADOR, CONFIRMADA y ASIGNADA. | Alta | - |
| RF-MAI003-014 | El sistema debe permitir modificar los datos de una OT unicamente cuando se encuentra en estado BORRADOR. En estados posteriores, la OT es de solo lectura. | Alta | - |
| RF-MAI003-015 | El sistema debe registrar la transicion de estado con el usuario responsable (updated_by_id) y la fecha de actualizacion (updated_at). | Media | MAI-001 (Auth) |
| RF-MAI003-016 | El sistema debe permitir cancelar una OT registrando el motivo de cancelacion y marcando deleted_at como fecha de cancelacion logica. | Media | - |
Embarques (Agrupacion de OTs)
| ID | Descripcion | Prioridad | Modulo Relacionado |
|---|---|---|---|
| RF-MAI003-017 | El sistema debe permitir crear embarques con codigo unico por tenant, descripcion y cliente principal, cumpliendo la constraint uq_embarque_tenant_codigo. | Alta | - |
| RF-MAI003-018 | El sistema debe permitir agrupar multiples OTs de un mismo cliente en un embarque, actualizando los totales consolidados: total_ots, peso_total_kg, volumen_total_m3. | Alta | MAI-004 (Planeacion) |
| RF-MAI003-019 | El sistema debe actualizar el campo embarque_id en cada OT al agregarla a un embarque, y recalcular los totales del embarque al agregar o quitar OTs. | Media | - |
| RF-MAI003-020 | El sistema debe permitir asignar un embarque a un viaje (viaje_id) y actualizar el estado del embarque en consecuencia. | Media | MAI-004 (Planeacion) |
Consulta y Busqueda
| ID | Descripcion | Prioridad | Modulo Relacionado |
|---|---|---|---|
| RF-MAI003-021 | El sistema debe proporcionar un listado paginado de OTs con filtros por: estado, shipper_id, rango de fecha_recoleccion_programada, tipo_carga, codigo y referencia_cliente. Los indices idx_ot_estado, idx_ot_shipper e idx_ot_fechas deben soportar estas consultas. | Alta | - |
| RF-MAI003-022 | El sistema debe mostrar el detalle completo de una OT incluyendo datos de carga, ubicaciones, restricciones, tarifa, estado actual y embarque/viaje asociados. | Media | - |
| RF-MAI003-023 | El sistema debe proporcionar un dashboard con contadores de OTs agrupadas por estado para el tenant actual. | Baja | - |
Exportacion
| ID | Descripcion | Prioridad | Modulo Relacionado |
|---|---|---|---|
| RF-MAI003-024 | El sistema debe permitir exportar el listado de OTs filtrado en formato CSV, incluyendo: codigo, referencia_cliente, shipper_nombre, consignee_nombre, origen_ciudad, destino_ciudad, fecha_recoleccion_programada, fecha_entrega_programada, estado y total. | Baja | - |
| RF-MAI003-025 | El sistema debe permitir exportar el listado de OTs filtrado en formato Excel (XLSX) con las mismas columnas que el formato CSV, ademas de formato de celdas y encabezados estilizados. | Baja | - |
Requerimientos No Funcionales
| ID | Descripcion | Categoria |
|---|---|---|
| RNF-MAI003-001 | Todas las tablas del modulo deben tener RLS habilitado con politica de aislamiento por tenant_id. | Seguridad |
| RNF-MAI003-002 | El listado de OTs con filtros debe responder en menos de 500ms para tenants con hasta 100,000 OTs. | Performance |
| RNF-MAI003-003 | Las transiciones de estado deben ser atomicas y registrar auditoria completa (usuario, timestamp). | Integridad |
| RNF-MAI003-004 | Los endpoints de listado deben soportar paginacion con cursor o offset, limitada a 100 registros por pagina. | Escalabilidad |
| RNF-MAI003-005 | La exportacion de datos debe soportar hasta 50,000 registros sin timeout del servidor (procesamiento asincrono si excede 10,000). | Escalabilidad |
Trazabilidad DDL -> Requerimiento
| Tabla DDL | Requerimientos Asociados |
|---|---|
| transport.ordenes_transporte | RF-MAI003-001 a RF-MAI003-016, RF-MAI003-021, RF-MAI003-022 |
| transport.embarques | RF-MAI003-017 a RF-MAI003-020 |
| ENUM transport.estado_orden | RF-MAI003-013 |
| ENUM transport.tipo_carga | RF-MAI003-005 |
| INDEX idx_ot_estado | RF-MAI003-021 |
| INDEX idx_ot_shipper | RF-MAI003-021 |
| INDEX idx_ot_fechas | RF-MAI003-021 |
| CONSTRAINT uq_ot_tenant_codigo | RF-MAI003-006 |
| CONSTRAINT uq_embarque_tenant_codigo | RF-MAI003-017 |
Trazabilidad Funcional -> Requerimiento
| Seccion REQ-GIRO-TRANSPORTISTA | Requerimientos Asociados |
|---|---|
| RF-4.2.1 Datos obligatorios OT | RF-MAI003-001, RF-MAI003-003, RF-MAI003-004, RF-MAI003-005 |
| RF-4.2.2 Restricciones | RF-MAI003-007, RF-MAI003-008, RF-MAI003-009 |
| RF-4.2.3 Multi-paradas | RF-MAI003-003 (origen/destino base), ver MAI-004 para paradas_viaje |
| RF-4.2.4 LTL vs FTL | RF-MAI003-010 |
| RF-4.2.5 Documentacion adjunta | RF-MAI003-009 (instrucciones_especiales) |
| RF-4.3.1 Tablero de planeacion | RF-MAI003-023 |
| RF-4.3.2 Consolidacion | RF-MAI003-017, RF-MAI003-018 |
REQUERIMIENTOS MAI-003 Ordenes de Transporte - ERP Transportistas v1.0.0