🚛 Servicio de Detalle de Viajes
Este documento describe el servicio nuevo que reemplaza la consulta legacy del detalle de viajes, junto con el mapeo a las tablas de la base de datos del dominio de Recolección de Leche.
🧩 1) Servicio a utilizar
Servicio: Trip Query Service (v1)
Base URL: https://api.alpura.mx/trip-query/v1
Endpoint: GET /trips/{idViaje}
Descripción: Recupera el detalle completo de los socios, volantes y cantidades asociadas a un viaje específico.
Alternativo: GET /trips/{controlInterno}/stops (si el flujo parte del control interno).
🧾 2) Ejemplo de Request (nuevo formato)
{
"idViaje": 508463,
"idSocio": ""
}
El parámetro
idSocioes opcional. Si se omite, devuelve todos los socios del viaje.
📦 3) Ejemplo de Response (equivalente al legacy)
{
"AlpDetRecoleccionViajesCollection": {
"AlpDetRecoleccionViajes": [
{
"rowId": 857430,
"idViaje": 508463,
"idSocio": 419,
"socio": "MANUEL MARTINEZ BELTRAN DEL RIO",
"ubicacion": "",
"producto": "DIINEZ0001",
"litrosProgramados": 11500,
"latitud": 0,
"longitud": 0,
"descProducto": "LECHE CRUDA",
"fechaLlegadaReal": "1900-01-01T00:00:00.000-06:36",
"fechaSalidaReal": "1900-01-01T00:00:00.000-06:36",
"litrosRemisionados": 0,
"volante": 2211638,
"ruta": 471,
"direccion": "CALLE 9A. SUR, 902CENTRO, CHIHUAHUA",
"lat_long_rancho": "28.25185,-105.41837",
"nombre_responsable": ""
}
]
}
}
🧱 4) Tablas consultadas en la base de datos
| Campo de respuesta | Tabla.Columna | Descripción |
|---|---|---|
rowId | ALP_DET_RECOLECCION_VIAJES.ROW_ID | Identificador interno del detalle |
idViaje | ALP_DET_RECOLECCION_VIAJES.ID_VIAJE | Relación con viaje maestro |
idSocio | ALP_DET_RECOLECCION_VIAJES.ID_SOCIO | Identificador del socio proveedor |
socio | ALP_DET_RECOLECCION_VIAJES.SOCIO | Nombre del socio productor |
ubicacion | — | (Campo enriquecido desde catálogo de zonas o ranchos) |
producto | ALP_DET_RECOLECCION_VIAJES.PRODUCTO | Código del producto recolectado |
descProducto | ALP_RECOLECCION_VIAJES.DESCRIPCION_PRODUCTO | Descripción legible del producto |
litrosProgramados | ALP_DET_RECOLECCION_VIAJES.LITROS_PROGRAMADOS | Cantidad esperada |
litrosRemisionados | ALP_DET_RECOLECCION_VIAJES.LITROS_REMISIONADOS | Cantidad real recolectada |
latitud / longitud | ALP_DET_RECOLECCION_VIAJES.LATITUD / LONGITUD | Coordenadas de la ubicación (si disponibles) |
fechaLlegadaReal | ALP_DET_RECOLECCION_VIAJES.FECHA_LLEGADA_REAL | Fecha de llegada a rancho |
fechaSalidaReal | ALP_DET_RECOLECCION_VIAJES.FECHA_SALIDA_REAL | Fecha de salida del rancho |
volante | ALP_DET_RECOLECCION_VIAJES.VOLANTE | Folio del volante |
ruta | ALP_RECOLECCION_VIAJES.RUTA | Ruta del viaje maestro |
direccion | — | Dirección concatenada de catálogo de socio/rancho |
lat_long_rancho | — | Coordenadas del rancho (catalogadas) |
nombre_responsable | — | Responsable del rancho (catalogado) |
🧮 5) Relaciones entre tablas
⚙️ 6) SQL de referencia
SELECT
d.ROW_ID AS rowId,
d.ID_VIAJE AS idViaje,
d.ID_SOCIO AS idSocio,
d.SOCIO AS socio,
d.PRODUCTO AS producto,
d.LITROS_PROGRAMADOS AS litrosProgramados,
d.LITROS_REMISIONADOS AS litrosRemisionados,
d.VOLANTE AS volante,
v.RUTA AS ruta,
v.DESCRIPCION_PRODUCTO AS descProducto,
v.FECHA_RECOLECCION,
d.FECHA_LLEGADA_REAL AS fechaLlegadaReal,
d.FECHA_SALIDA_REAL AS fechaSalidaReal
FROM ALP_DET_RECOLECCION_VIAJES d
LEFT JOIN ALP_RECOLECCION_VIAJES v
ON v.ID_VIAJE = d.ID_VIAJE
WHERE
d.ID_VIAJE = :idViaje
AND (:idSocio IS NULL OR d.ID_SOCIO = :idSocio);
📚 Fuentes:
trip-query-queries-v1.yaml- Diccionario de datos de Recolección de Leche