Pular para o conteúdo principal

Edit delivery

PUT 

/company/delivery/:service_code

Atualiza os detalhes de um envio existente. Os campos editáveis dependem do estado atual do envio.

Objetivo

Permitir que as empresas modifiquem certos aspectos de seus envios de acordo com o estado em que se encontram, mantendo um controle de alterações por meio de replannedBy.

Casos de Uso

  • Modificar datas de carga/descarga em envios planejados ou aceitos
  • Atualizar detalhes da carga (peso, altura, paletes, temperatura)
  • Corrigir metros lineares de carga
  • Iniciar um processo de replanejamento que requer aprovação

Campos Editáveis por Estado

Estado 'planned' ou 'replanned': Podem editar: etl_date, etd_date, pallets_num, fresh_cargo_temp, cargo_weight, cargo_height, linear_meters

Estado 'accepted': Podem editar: etl_date, etd_date

Qualquer outra edição:

  • Altera o status para 'replanned'
  • Define replannedBy como 'cia' (empresa)

Fluxo de Validação

flowchart TD
A[Receber Solicitação de Edição] --> B{Envio Existe?}
B -->|Não| C[404 NOT_FOUND]
B -->|Sim| D{Empresa é Dono do Envio?}
D -->|Não| E[404 NOT_ALLOWED]
D -->|Sim| F{É Estado Final?}
F -->|Sim| G[401 NOT_ALLOWED]
F -->|Não| H[Obter Chaves Editáveis]
H --> I{Alguma Chave Válida?}
I -->|Não| J[401 NOT_ALLOWED]
I -->|Sim| K[Atualizar Campos]
K --> L[Definir status=replanned]
L --> M[Definir replannedBy=cia]
M --> N[Salvar Alterações - 200]

Notas

  • Não é possível editar envios em estado final (delivered, claimed, canceled)
  • Qualquer edição altera automaticamente o estado para 'replanned'
  • Se o motorista deve aprovar as alter

Request

Responses

Envio atualizado com sucesso