Edit delivery
PUT/company/delivery/:service_code
Actualiza los detalles de un envío existente. Los campos editables dependen del estado actual del envío.
Objective
Permitir a las empresas modificar ciertos aspectos de sus envíos según el estado en que se encuentren, manteniendo un control de cambios mediante replannedBy.
Use Cases
- Modificar fechas de carga/descarga en envíos planificados o aceptados
- Actualizar detalles de la carga (peso, altura, palets, temperatura)
- Corregir metros lineales de carga
- Iniciar un proceso de re-planificación que requiere aprobación
Editable Fields by Status
Estado 'planned' o 'replanned': Pueden editar: etl_date, etd_date, pallets_num, fresh_cargo_temp, cargo_weight, cargo_height, linear_meters
Estado 'accepted': Pueden editar: etl_date, etd_date
Cualquier otra edición:
- Cambia status a 'replanned'
- Establece replannedBy a 'cia' (empresa)
Validation Flow
flowchart TD
A[Receive Edit Request] --> B{Delivery Exists?}
B -->|No| C[404 NOT_FOUND]
B -->|Yes| D{Company Owns Delivery?}
D -->|No| E[404 NOT_ALLOWED]
D -->|Yes| F{Is Final Status?}
F -->|Yes| G[401 NOT_ALLOWED]
F -->|No| H[Get Editable Keys]
H --> I{Any Valid Keys?}
I -->|No| J[401 NOT_ALLOWED]
I -->|Yes| K[Update Fields]
K --> L[Set status=replanned]
L --> M[Set replannedBy=cia]
M --> N[Save Changes - 200]
Notes
- No se pueden editar envíos en estado final (delivered, claimed, canceled)
- Cualquier edición cambia automáticamente el estado a 'replanned'
- Si el trucker debe aprobar los cambios, replannedBy='trucker'
- La empresa aprueba los cambios del trucker con PUT /aprove/{service_code}
Request
Responses
- 200
- 400
- 401
- 404
Envío actualizado con éxito
Operación no permitida. Ocurre cuando:
- Los datos proporcionados son inválidos
No autorizado. El token JWT es inválido o ha expirado, o no se pueden editar los campos solicitados para el estado actual.
Envío no encontrado. El service_code proporcionado no existe o no pertenece a la empresa del usuario autenticado.