Przejdź do treści

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