# Reservasjoner

7 av 10 støttet
Kilde: https://plasapi.com/no/funksjoner/patron/reservations/

La lånerne reservere materiale, velge hvor det skal hentes, følge plassen sin i køen og styre reservasjonene sine.

## 2.5.1 Reserver materiale — Støttet

Reserver en utgave som låneren henter når den er klar.

### Dette kan du bygge

Den sentrale handlingen på et verk: låneren reserverer, velger hvor materialet skal hentes, og ser plassen sin i køen med en gang. Gebyrer og grenser kommer fra biblioteksystemet, så klienten kan vise dem før låneren bekrefter.

### Typisk flyt

1. Låneren velger en utgave. Klienten leser `reserveId` fra `GetHoldings`.
2. Klienten leser lånerens gebyr, grenser og hentesteder fra `GetPatronConfiguration`.
3. Låneren velger hvor materialet skal hentes (2.5.8).
4. Klienten oppretter reservasjonen med `CreatePatronReservation`.
5. Svaret er reservasjonen, inkludert lånerens `queueNumber` når den er kjent.

### Dette leverer API-et

- En utgave uten `reserveId` kan ikke reserveres.
- Et reservasjonsgebyr har `chargedAt`: `reservation` (belastes når det reserveres) eller `checkout` (belastes ved henting). `amount` er i minste myntenhet, `currency` i ISO 4217.
- Grenser for reservasjoner kommer som `daily` og `max`.

### Kall i API-et

Forutsetter: 2.2.1

I denne rekkefølgen

1. [GET /holdings](https://plasapi.com/no/provider/v0.6.7/holding/#GetHoldings) — Get holdings
2. [GET /patron/{patronId}/information](https://plasapi.com/no/provider/v0.6.7/patron/#GetPatronInformation) — Get patron information
3. [GET /patron/{patronId}/configuration](https://plasapi.com/no/provider/v0.6.7/patron-configuration/#GetPatronConfiguration) — Get patron configuration
4. [GET /locations](https://plasapi.com/no/provider/v0.6.7/location/#GetLocations) — Get locations
5. [POST /patron/{patronId}/reservation](https://plasapi.com/no/provider/v0.6.7/patron-reservation/#CreatePatronReservation) — Create reservation

## 2.5.2 Se reservasjoner — Støttet

Vis lånerens reservasjoner, og hvor hver av dem står.

### Dette kan du bygge

En oversikt over alt låneren har reservert: hva som er klart til henting, hva som står i kø, og hva som er satt på pause.

### Typisk flyt

1. Klienten henter reservasjonene med `GetPatronReservations`.
2. Hver reservasjon vises med tilstanden sin og, når den er kjent, plassen i køen.

### Dette leverer API-et

- `state` er `ready_for_pickup`, `in_queue` eller `postponed`.
- `queueNumber` 1 betyr først i køen. Mangler feltet, er plassen ukjent.
- `fulfillmentBy` forteller hvordan reservasjonen oppfylles: `local_circulation`, `interlibrary_loan`, `purchase` eller `unknown`.

### Kall i API-et

Forutsetter: 2.2.1

- [GET /patron/{patronId}/reservation](https://plasapi.com/no/provider/v0.6.7/patron-reservation/#GetPatronReservations) — Get patron reservations

## 2.5.3 Kanseller reservasjon — Støttet

La låneren kansellere en reservasjon de ikke lenger trenger.

### Dette kan du bygge

Lånerne kansellerer selv en reservasjon uten å måtte kontakte biblioteket.

### Typisk flyt

1. Låneren velger en reservasjon og bekrefter kanselleringen.
2. Klienten kaller `DeletePatronReservation`.

### Kall i API-et

Forutsetter: 2.2.1

- [DELETE /patron/{patronId}/reservation/{reservationId}](https://plasapi.com/no/provider/v0.6.7/patron-reservation/#DeletePatronReservation) — Delete reservation

## 2.5.4 Bytt hentested — Støttet

Flytt en eksisterende reservasjon til et annet hentested.

### Typisk flyt

1. Klienten viser hentestedene fra `GetLocations`.
2. Låneren velger et nytt.
3. Klienten oppdaterer reservasjonen med `UpdatePatronReservation`.

### Dette leverer API-et

- `UpdatePatronReservation` endrer bare `pickupLocation`.

### Kall i API-et

Forutsetter: 2.2.1

I denne rekkefølgen

1. [GET /locations](https://plasapi.com/no/provider/v0.6.7/location/#GetLocations) — Get locations
2. [PUT /patron/{patronId}/reservation/{reservationId}](https://plasapi.com/no/provider/v0.6.7/patron-reservation/#UpdatePatronReservation) — Update reservation

## 2.5.6 Sett reservasjoner på pause — Støttet

Sett alle lånerens reservasjoner på pause i en periode da de ikke kan hente.

### Dette kan du bygge

Reservasjoner på pause blir stående i lånerens oversikt, merket som satt på pause.

### Typisk flyt

1. Låneren velger en periode.
2. Klienten setter `reservation.postpone` med `UpdatePatronInformation`.
3. Reservasjoner i perioden får tilstanden `postponed`.

### Dette leverer API-et

- Pausen gjelder låneren, ikke den enkelte reservasjonen.
- Perioden kan være åpen i den ene enden, for eksempel fra i dag uten sluttdato.

### Kall i API-et

Forutsetter: 2.2.1

- [PATCH /patron/{patronId}/information](https://plasapi.com/no/provider/v0.6.7/patron/#UpdatePatronInformation) — Update patron information

## 2.5.7 Endre utløpsdato — Ikke ennå

La låneren endre hvor lenge en reservasjon gjelder.

> Ikke i PLAS ennå. Funksjonen er ikke støttet i dag. Beskrivelsen viser hva den gjør, så du kan se sammenhengen med resten.

## 2.5.8 Velg hentested ved reservasjon — Støttet

La låneren velge hvor materialet skal hentes, mens det reserveres.

### Typisk flyt

1. Klienten leser lånerens foretrukne hentested fra `GetPatronInformation` (`pickupLocation`).
2. Låneren kan velge et annet fra listen.
3. Det valgte stedet sendes som `pickupLocation` med `CreatePatronReservation`.

### Dette leverer API-et

- Valgene kommer fra, i prioritert rekkefølge: eksemplarets `pickupLocations` i `GetHoldings`, beholdningens `pickupLocations`, lånerens konfigurasjon (`GetPatronConfiguration`) og `GetLocations`.
- Hvert nivå erstatter nivåene under seg helt. Definerer ingen nivåer hentesteder, kan materialet ikke reserveres.

### Kall i API-et

Forutsetter: 2.2.1

I denne rekkefølgen

1. [GET /holdings](https://plasapi.com/no/provider/v0.6.7/holding/#GetHoldings) — Get holdings
2. [GET /patron/{patronId}/information](https://plasapi.com/no/provider/v0.6.7/patron/#GetPatronInformation) — Get patron information
3. [GET /patron/{patronId}/configuration](https://plasapi.com/no/provider/v0.6.7/patron-configuration/#GetPatronConfiguration) — Get patron configuration
4. [GET /locations](https://plasapi.com/no/provider/v0.6.7/location/#GetLocations) — Get locations
5. [POST /patron/{patronId}/reservation](https://plasapi.com/no/provider/v0.6.7/patron-reservation/#CreatePatronReservation) — Create reservation

## 2.5.9 Bestill fjernlån — Ikke ennå

La låneren bestille materiale fra et annet bibliotek.

> Ikke i PLAS ennå. Funksjonen er ikke støttet i dag. Beskrivelsen viser hva den gjør, så du kan se sammenhengen med resten.

## 2.5.10 Kanseller fjernlån — Ikke ennå

La låneren kansellere en bestilling av materiale fra et annet bibliotek.

> Ikke i PLAS ennå. Funksjonen er ikke støttet i dag. Beskrivelsen viser hva den gjør, så du kan se sammenhengen med resten.

## 2.5.11 Reserver på vegne av en låner — Støttet

La bibliotekets ansatte reservere for en låner.

### Typisk flyt

1. De ansatte identifiserer låneren.
2. Reservasjonen opprettes med `CreatePatronReservation` for den låneren.

### Dette leverer API-et

- Spesifikasjonen har ingen egen operasjon for ansatte og beskriver ingen måte å handle på lånerens vegne.

### Kall i API-et

Forutsetter: 2.2.1

- [POST /patron/{patronId}/reservation](https://plasapi.com/no/provider/v0.6.7/patron-reservation/#CreatePatronReservation) — Create reservation
