Saltearse al contenido

Driver App

Overview

La Driver App es una aplicacion web optimizada para movil que permite a los conductores:

  • Ver su ruta del dia con todos los envios
  • Marcar envios como entregados o con incidencia
  • Registrar la firma del destinatario
  • Tomar foto del lugar de entrega
  • Consultar el historico de envios entregados

URL de acceso: /logistics/driver


Autenticacion del conductor

Los conductores inician sesion con credenciales del ERP (usuario + password). Se les asigna automaticamente su ruta del dia.

POST /api/auth/login
Content-Type: application/json
{
"email": "conductor@empresa.com",
"password": "password123",
"device_id": "device-unique-id"
}

Respuesta con rol de conductor:

{
"token": "...",
"user": {
"id": "emp_010",
"name": "Carlos Conductor",
"role": "driver",
"vehicle_id": "veh_001"
}
}

Ruta del dia

Obtener ruta asignada

GET /api/logistics/driver/route-today
Authorization: Bearer <token>
{
"route": {
"id": "route_001",
"name": "Ruta Barcelona Norte",
"date": "2026-05-08",
"start_time": "08:00",
"vehicle": { "license_plate": "1234ABC", "type": "furgon" },
"waypoints": [
{
"order": 1,
"shipment_number": "ENV-2026-0001",
"recipient": "Acme S.L.",
"address": "Avenida Industrial 45, Barcelona",
"phone": "+34698765432",
"packages_count": 2,
"status": "pending"
},
{
"order": 2,
"shipment_number": "ENV-2026-0002",
"recipient": "Beta S.A.",
"address": "Calle Mayor 12, Barcelona",
"phone": "+34611223344",
"packages_count": 1,
"status": "pending"
}
]
},
"stats": {
"total": 2,
"delivered": 0,
"remaining": 2
}
}

Marcar entrega

Entrega exitosa

POST /api/logistics/driver/deliver
Authorization: Bearer <token>
Content-Type: application/json
{
"shipment_id": "ship_001",
"recipient_name": "Maria Reception",
"recipient_dni": "12345678B",
"signature_data": "data:image/png;base64,...",
"photo_url": "/storage/delivery/photo_001.jpg",
"gps_lat": 41.3851,
"gps_lng": 2.1734,
"notes": "Entregado en recepcion, firmante es Maria"
}

Entrega fallida (incidencia)

POST /api/logistics/driver/failed-delivery
Authorization: Bearer <token>
Content-Type: application/json
{
"shipment_id": "ship_001",
"failure_reason": "destinatario_ausente",
"failure_notes": "Llamado 3 veces, nadie responde",
"new_delivery_date": "2026-05-09",
"photo_url": "/storage/delivery/fail_001.jpg",
"gps_lat": 41.3851,
"gps_lng": 2.1734
}

Razones de fallo disponibles:

CodigoDescripcion
destinatario_ausenteNadie en la direccion
direccion_incorrectaNo se encontro la direccion
rechazoEl destinatario rechaza la entrega
envio_danadoEl paquete lleg deteriorado
otroOtra causa (especificar en notes)

Historial de entregas

Ver entregas del dia

GET /api/logistics/driver/deliveries-today

Ver entregas de la semana

GET /api/logistics/driver/deliveries?from=2026-05-05&to=2026-05-11

Sincronizacion offline

La driver app funciona parcialmente offline:

  • Descarga la ruta completa en cuanto tiene conexion
  • Almacena las entregas pendientes locally
  • Sincroniza automaticamente cuando recupera conexion
  • Indicador visual de “offline” en la interfaz

Resumen de endpoints

MetodoRutaDescripcion
GET/api/logistics/driver/route-todayRuta asignada hoy
GET/api/logistics/driver/deliveries-todayEntregas del dia
GET/api/logistics/driver/deliveriesHistorial de entregas
POST/api/logistics/driver/deliverRegistrar entrega exitosa
POST/api/logistics/driver/failed-deliveryRegistrar entrega fallida
POST/api/logistics/driver/update-positionActualizar posicion GPS