InventoryDocument
InventoryDocument (dokument ruchu magazynowego) to zasób reprezentujący zmianę stanu magazynowego: zmianę ilości, własności i/lub lokalizacji. Jeden dokument = jeden ruch (GR — goods receipt, GI — goods issue, przesunięcie, korekta) z nagłówkiem (movementType, effectiveDate, opcjonalnie fromLocation/toLocation na nagłówku) i pozycjami InventoryDocumentPosition (product, quantity jako delta, fromLocation, toLocation). W jednym zasobie movementType = receipt | issue | transfer | adjustment; kierunek zmiany wynika z pól from/to i znaku quantity. Wzorowany na SAP (Material Document), Oracle (inventory transactions), D365 (InventMovement).
Rozszerza DomainResource. Zasób w standardzie Kamsoft.FAIR (Fast Adaptive Interoperable Resources).
1. Zakres i zastosowanie
InventoryDocument = jeden dokument ruchu: movementType (CodeableConcept – receipt, issue, transfer, adjustment), effectiveDate (data obowiązywania), position[] (pozycje z product, quantity jako delta, fromLocation, toLocation). Opcjonalnie na nagłówku: fromLocation, toLocation (gdy wspólne dla wszystkich pozycji), participant (magazyn jako Location, dostawca/odbiorca jako Party/PartyRole), relatedDocument (zamówienie, zlecenie, korekta).
- GR (goods receipt) —
movementType= receipt; pozycje z toLocation. Ilość na pozycji dodatnia. Dostawca w participant. - GI (goods issue) —
movementType= issue; pozycje z fromLocation. Ilość na pozycji ujemna lub wartość bezwzględna z konwencji. Odbiorca w participant. - Przesunięcie = movementType=transfer; pozycje z fromLocation i toLocation.
- Korekta = movementType=adjustment; pozycje z from/to lub jedną lokacją i quantity (delta).
Relacja do Document: Ruch magazynowy (GR/GI itd.) jest wyłącznie InventoryDocument. Document nie modeluje przyjęć ani wydań; może natomiast występować w relatedDocument (np. zamówienie, zapotrzebowanie) lub przez powiązanie identyfikatorów.
2. Zawartość (struktura)
Oprócz elementów DomainResource (id, meta, comment, category, status, type, contained, attribute):
| Nazwa | Kard. | Typ | Opis |
|---|---|---|---|
| identifier | 0..* | Identifier | Identyfikatory dokumentu ruchu (np. numer GR / GI / MM — semantyka w Identifier.system) |
| movementType | 1..1 | CodeableConcept | receipt (GR), issue (GI), transfer, adjustment — system inventory-movement-type |
| effectiveDate | 1..1 | date | Data obowiązywania ruchu (dzień przyjęcia/wydania/przesunięcia) |
| fromLocation | 0..1 | Reference(Location) | Lokalizacja źródłowa (gdy wspólna dla wszystkich pozycji; np. jeden magazyn przy wydaniu) |
| toLocation | 0..1 | Reference(Location) | Lokalizacja docelowa (gdy wspólna dla wszystkich pozycji) |
| participant | 0..* | Reference(Location / Party / PartyRole) | Uczestnicy: magazyn (Reference do Location), dostawca, odbiorca (Reference do Party/PartyRole) |
| relatedDocument | 0..* | Reference(Document / InventoryDocument / PurchaseRequisition / PurchaseOrder) lub Identifier | Powiązane dokumenty (np. zapotrzebowanie PR, zamówienie PO, zlecenie, dokument korygowany) |
| position | 0..* | InventoryDocumentPosition | Pozycje ruchu (produkt, delta ilości, fromLocation, toLocation) |
| attribute | 0..* | Attribute | Atrybuty dokumentu (np. podsumowanie); code + value[x] — patrz Attribute |
Uwaga: status (z DomainResource) — np. draft, completed, cancelled. type / category — opcjonalna dalsza klasyfikacja biznesowa (np. zwrot od dostawcy).
3. Zgodność z systemami ERP
| System | Odpowiednik | Uwagi |
|---|---|---|
| SAP | Material Document (MIGO), Movement Type (101, 201, 301) | Dokument = ruch; movement type definiuje efekt (+/- qty, z/do lokacji). |
| Oracle | MTL_MATERIAL_TRANSACTIONS, transaction_type_id | Transakcja = zmiana stanu; typ = receipt, issue, transfer. |
| D365 | InventMovement, WHS – movement type | Ruch z typem; from/to location, quantity. |
| Workday | Inventory adjustment / transfer | Operacja na stanie z kierunkiem zmiany. |
Model kanoniczny: InventoryDocument z movementType i position[] (fromLocation, toLocation, quantity jako delta) pokrywa dokument ruchu w SAP, Oracle, D365.
4. Odniesienia
- DomainResource, InventoryDocumentPosition (position), Location (fromLocation, toLocation), Party (participant).
- Document (relatedDocument), Inventory (stan aktualizowany na podstawie ruchu).
- Identifier, CodeableConcept, Reference, Attribute.