Passa al contenuto principale

Aggiornare una prenotazione

PUT 

/api/booking/update

Aggiorna una prenotazione esistente sul posto: la prenotazione mantiene il suo id e la sua cronologia, e le modifiche dei campi principali (date, luoghi, auto o categoria, distanza, id di trasporto, agenzia, accordi e prezzo) vengono tracciate come commenti sulla prenotazione. È un'operazione di modifica, non di cancellazione e nuova prenotazione.

Date, orari, luoghi di ritiro/riconsegna, modello o categoria dell'auto, servizi aggiuntivi, id di trasporto (numeri di volo) e campi relativi al prezzo vengono aggiornati direttamente e il prezzo viene ricalcolato (quando viene inviato Price si applica la stessa tolleranza dell'1% della creazione). Con la disponibilità per modello le date richieste vengono riconvalidate, mantenendo il veicolo assegnato finché resta disponibile; con la disponibilità per categoria la quota della categoria viene ricontrollata solo quando la categoria cambia — le modifiche di sole date vengono applicate senza un nuovo controllo di disponibilità.

Stato della prenotazione:

  • Le prenotazioni cancellate vengono riattivate automaticamente. Se la prenotazione ha un veicolo assegnato (o la disponibilità è per modello), la sua disponibilità viene convalidata e la richiesta fallisce con BookingStatusNotAllowUpdate quando nessun veicolo è disponibile; le prenotazioni per categoria senza veicolo assegnato vengono riattivate senza controllo di disponibilità. La riattivazione avviene prima della convalida della versione, quindi una richiesta poi rifiutata per versione può comunque aver riattivato la prenotazione.
  • Le prenotazioni consegnate e chiuse non possono essere aggiornate: la richiesta fallisce con BookingStatusNotAllowUpdate e un commento di avviso viene aggiunto alla prenotazione.

Versionamento: quando sia la versione memorizzata sia la Version in ingresso sono numeriche, un valore in ingresso inferiore o uguale a quello memorizzato fallisce con BookingVersionError e uno superiore viene applicato; quando uno dei due valori manca o non è numerico, non viene eseguito alcun controllo di versione e l'aggiornamento viene applicato.

Dati del cliente: vengono aggiornati solo Customer.Name e Customer.EmailAddress, e solo quando il cliente è stato creato dallo stesso utente API che effettua la richiesta; in caso contrario le modifiche del cliente vengono ignorate. Gli altri campi del cliente (telefono, età, documenti, ecc.) non vengono mai modificati da questo endpoint.

I servizi aggiuntivi vengono sincronizzati con la richiesta: quelli opzionali omessi da Additionals vengono rimossi dalla prenotazione, mentre quelli obbligatori e quelli aggiunti dal sistema (ad es. supplementi fuori orario) vengono riapplicati automaticamente anche se omessi.

Quando FullResponse è true e la prenotazione è stata tariffata per fasce di copertura VDR, le sue righe di noleggio fatturate a giorno possono portare AppliedCoverageBrackets. Ciascuna di queste righe dichiara un solo intervallo con tutto il suo Price. Più righe dello stesso pagatore possono dichiarare lo stesso intervallo, e il totale di quell'intervallo è la loro somma. Il dettaglio viene omesso su tutte le righe quando le righe salvate non possono essere ricondotte ai loro intervalli, ad esempio dopo un'estensione pagata da un altro pagatore. La risposta semplificata non lo porta mai.

Request​

Responses​

Aggiorna una prenotazione esistente or Aggiorna una prenotazione esistente