Approve delivery changes
PUT/company/delivery/aprove/:service_code
Aprueba los cambios realizados por el transportista en un envío replanificado. El estado debe ser 'replanned' con replannedBy === 'trucker'.
Objective
Permitir a las empresas aceptar modificaciones solicitadas por el transportista, finalizando el proceso de negociación de cambios.
Use Cases
- Confirmar cambios de fechas solicitados por el transportista
- Aprobar modificaciones en la carga (peso, palets, temperatura)
- Aceptar cambios en metros lineales o altura de carga
- Finalizar el proceso de negociación de cambios
Approval Flow
flowchart LR
A[Trucker Edits] -->|replannedBy=trucker| B[Status: replanned]
B --> C{Company Reviews}
C -->|Approve| D[PUT /aprove]
D -->|replannedBy=aproved| E[Status: planned]
C -->|Reject| F[Manual Revert]
Validation Logic
flowchart TD
A[Receive Approval] --> 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{Already Approved?}
H -->|replannedBy=aproved| I[400 ALREADY_APROVED]
H -->|No| J{Must Approve Trucker?}
J -->|replannedBy≠trucker| K[401 MUST_APROVE_TRUCKER]
J -->|Yes| L[Set status=planned]
L --> M[Set replannedBy=aproved]
M --> N[Save - 200]
Notes
- El envío debe estar en estado 'replanned'
- replannedBy debe ser 'trucker' (no puede ser 'aproved' ni vacío)
- No puede ser estado final (delivered, claimed, canceled)
- Solo la empresa propietaria puede aprobar
- status cambia a 'planned' (no a 'approved')
- replannedBy cambia a 'aproved'
Request
Responses
- 200
- 400
- 401
- 403
- 404
Cambios aprobados con éxito
No se puede aprobar. Ya fue aprobado anteriormente.
No se puede aprobar. Debe aprobar cambios del transportista.
No permitido. Estado final no permite aprobación.
Envío no encontrado. El service_code proporcionado no existe o no pertenece a la empresa del usuario autenticado.