Skip to main content

🚛 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 idSocio es 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 respuestaTabla.ColumnaDescripción
rowIdALP_DET_RECOLECCION_VIAJES.ROW_IDIdentificador interno del detalle
idViajeALP_DET_RECOLECCION_VIAJES.ID_VIAJERelación con viaje maestro
idSocioALP_DET_RECOLECCION_VIAJES.ID_SOCIOIdentificador del socio proveedor
socioALP_DET_RECOLECCION_VIAJES.SOCIONombre del socio productor
ubicacion(Campo enriquecido desde catálogo de zonas o ranchos)
productoALP_DET_RECOLECCION_VIAJES.PRODUCTOCódigo del producto recolectado
descProductoALP_RECOLECCION_VIAJES.DESCRIPCION_PRODUCTODescripción legible del producto
litrosProgramadosALP_DET_RECOLECCION_VIAJES.LITROS_PROGRAMADOSCantidad esperada
litrosRemisionadosALP_DET_RECOLECCION_VIAJES.LITROS_REMISIONADOSCantidad real recolectada
latitud / longitudALP_DET_RECOLECCION_VIAJES.LATITUD / LONGITUDCoordenadas de la ubicación (si disponibles)
fechaLlegadaRealALP_DET_RECOLECCION_VIAJES.FECHA_LLEGADA_REALFecha de llegada a rancho
fechaSalidaRealALP_DET_RECOLECCION_VIAJES.FECHA_SALIDA_REALFecha de salida del rancho
volanteALP_DET_RECOLECCION_VIAJES.VOLANTEFolio del volante
rutaALP_RECOLECCION_VIAJES.RUTARuta del viaje maestro
direccionDirección concatenada de catálogo de socio/rancho
lat_long_ranchoCoordenadas del rancho (catalogadas)
nombre_responsableResponsable 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