ReturnDocument (zlecenie zwrotu towaru)
ReturnDocument to zasób opisujący zlecenie zwrotu towaru wraz z pozycjami. Służy do przekazania danych operacyjnych zwrotu (nagłówek + linie) do systemu magazynowego.
Rozszerza DomainResource.
1. Zakres i zastosowanie
- Zwrot towaru: dokument inicjuje proces zwrotu z jednoznacznym wskazaniem stron i pozycji.
- Powiązania z dokumentem wydania: pozycja zwrotu może wskazywać dokument i pozycję dokumentu wydania, z którego wynika zwrot.
- Powiązanie realizacji zwrotu: dokument może wskazywać dokument rozchodu, którym jednostka centralna zrealizowała zwrot.
- Bez warstwy finansowej: zasób dotyczy logistyki i ilości; rozliczenia są modelowane poza tym zasobem.
2. Zawartość (struktura)
Oprócz elementów DomainResource (id, resourceType, meta, owner, comment, category, status, type, contained, attribute):
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| identifier | 0..* | Identifier | Identyfikatory dokumentu zwrotu (np. id źródła) |
| symbol | 1..1 | CodeableConcept | Symbol dokumentu; tor zapisu czyta symbol.text |
| participant | 0..* | Reference(Party lub Location) | Uczestnicy zwrotu: miejsce składowania (type = Location) i strona (type = Party) |
| issueDocument | 0..1 | Reference(InventoryDocument) | Dokument rozchodu realizujący zwrot (uzupełniany przez jednostkę centralną) |
| position | 1..* | struktura pozycji (§2a) | Pozycje zlecenia zwrotu |
Schemat wymaga symbol i position. owner (z DomainResource) wskazuje firmę; tor zapisu czyta owner[0].identifier.value.
2a. Pozycja (position[], struktura zagnieżdżona)
Pozycja rozszerza DomainResource, ale nie ma własnego endpointu ani identyfikatora.
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| positionNo | 0..1 | integer | Numer pozycji (od 1) |
| productDefinition | 1..1 | Reference(ProductDefinition) | Referencja do definicji produktu (identifier.value = id asortymentu w magazynie) |
| quantity | 1..1 | Quantity | Ilość zwracana (unit lub code = jednostka miary) |
| factor | 0..1 | number | Mnożnik jednostki miary (dla zwrotów w innej jednostce niż lekospisowa) |
| issueDocument | 0..1 | Reference(InventoryDocument) | Dokument wydania źródłowego |
| issuePositionNo | 1..1 | integer | Pozycja dokumentu wydania źródłowego |
Schemat pozycji wymaga productDefinition, quantity, issuePositionNo.
Ograniczenie toru zapisu: system magazynowy przyjmuje dziś wyłącznie pierwszą pozycję dokumentu; kolejne pozycje są pomijane bez błędu. Zwrot wielu pozycji wymaga osobnych wywołań.
3. Operacje
| Metoda | Ścieżka | Opis |
|---|---|---|
| POST | /v1/return-documents |
Przekazanie zlecenia zwrotu (treść: ReturnDocument z identifier[].system) |
Odczyt (GET) nie jest dostępny. Treść może nieść przestrzeń identyfikatora (identifier[].system) — wskazuje ona wtedy magazyn rejestrujący zwrot; bez niej magazyn rozstrzyga profil. value nadaje system prowadzący (rejestracja zasobu). Odpowiedź 200 ma kopertę { "items": [ReturnDocument…], "nextToken": null }; zwracany dokument niesie symbol.text, participant[], issueDocument i position[] tak, jak zapisał je magazyn.