Saltar al contenido principal

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

Envío actualizado con éxito