Cancel delivery service
DELETE/company/delivery/:service_code
Annulla una spedizione esistente cambiando il suo stato in 'canceled' e rejectedBy in 'cia'. Solo le spedizioni negli stati 'planned' o 'replanned' possono essere annullate.
Obiettivo
Consentire alle aziende di annullare le spedizioni pianificate quando non verranno più effettuate, elaborando automaticamente le azioni necessarie su Stripe e aste.
Casi d'Uso
- Annullare una spedizione pianificata che non verrà più effettuata
- Fermare una spedizione ripianificata a causa di problemi logistici o aziendali
- Annullare una spedizione pianificata in modo errato prima che inizi
- Annullare per cambiamenti nel carico o nella destinazione
Effetti Collaterali
- Cambia lo stato in 'canceled'
- Imposta rejectedBy='cia'
- Annulla il payment_intent su Stripe (elabora il rimborso se applicabile)
- Annulla l'asta associata se esiste
Flusso di Validazione
flowchart TD
A[Ricevi Richiesta di Annullamento] --> B{La Spedizione Esiste?}
B -->|No| C[404 NOT_FOUND]
B -->|Sì| D{L'Azienda Possiede la Spedizione?}
D -->|No| E[403 NOT_ALLOWED]
D -->|Sì| F{È uno Stato Finale?}
F -->|Sì| G[401 NOT_ALLOWED]
F -->|No| H{Lo Stato è Annullabile?}
H -->|No| I[401 NOT_ALLOWED]
H -->|Sì| J[Imposta status=canceled]
J --> K[Imposta rejectedBy=cia]
K --> L{Annulla Pagamento Stripe}
L -->|Errore| M[403 CANT_CANCEL_PAYMENT]
L -->|Successo| N{Annulla Asta}
N -->|Successo| O[Salva - 200]
Note
- Solo le spedizioni negli stati 'planned' o 'replanned' possono essere annullate
- Non è
Request
Responses
- 200
- 401
- 403
- 404
- 503
Invio annullato con successo
Non autorizzato. Lo stato della spedizione non consente la cancellazione.
Non è possibile annullare il pagamento su Stripe.
Spedizione non trovata. Il service_code fornito non esiste o non appartiene all'azienda dell'utente autenticato.
Errore durante il salvataggio delle modifiche.