Saltar al contenido principal

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

Cambios aprobados con éxito