Przejdź do treści

PurchaseOrder

PurchaseOrder (zamówienie zakupu) to zasób reprezentujący zamówienie do dostawcy na dostarczenie towarów lub usług. Zawiera identyfikatory, datę wystawienia, pozycje zamówienia, wartość oraz status. Jest dokumentem źródłowym dla przyjęcia magazynowego (InventoryDocument, movementType = receipt) i Invoice (faktura od dostawcy). Identyfikacja przez Identifier, strony przez PartyRole, pozycje przez specjalizowaną strukturę. Wzorowany na SAP (Purchase Order, PO), Oracle (Requisition + PO), UBL 2.3 (Order).

Rozszerza DomainResource. Zasób w standardzie Kamsoft.FAIR (Fast Adaptive Interoperable Resources).


1. Zakres i zastosowanie

PurchaseOrder = jeden dokument handlowy reprezentujący zamówienie u dostawcy. Przyjęcie towaru (GR) to w tym kanonie wyłącznie InventoryDocument z movementType = receipt, powiązany z PO przez relatedDocument / identifier[] — nie ma osobnego zasobu przyjęcia.

Zasób jest tylko do odczytu: API udostępnia zamówienia prowadzone w systemie magazynowym; status i stopień realizacji nadaje system źródłowy.

Jeden PurchaseOrder może prowadzić do wielu przyjęć magazynowych — wielokrotne dostawy. Każde przyjęcie referuje źródłowe zamówienie.


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 zamówienia — §2a
issueDate 0..1 date Data wystawienia zamówienia
party 0..* Reference(PartyRole) Strony: dostawca, inni uczestnicy
position 0..* PurchaseOrderPosition Pozycje zamówienia (towar, ilość, cena)
amount 0..1 Money Kwota zamówienia (w odczycie wartość brutto, PLN)
expectedDeliveryDate 0..1 date Oczekiwana data dostawy
dueDate 0..1 date Termin płatności
paymentTerms 0..1 CodeableConcept Warunki płatności — kody nadaje wdrożenie
sourceDocument 0..1 Reference(PurchaseRequisition) Dokument źródłowy — zapotrzebowanie
relatedDocument 0..* Reference(InventoryDocument) Powiązane dokumenty (przyjęcie magazynowe)

Pola dziedziczone istotne dla zamówienia:

Nazwa Kard. Typ Opis
type 0..1 CodeableConcept Rodzaj dokumentu; słownik warehouse/document-type
status 0..1 CodeableConcept Status zamówienia w systemie magazynowym; słownik warehouse/purchase-order-status (kody liczbowe, np. 1 nieprzekazane, 2 przekazane, 3 zrealizowane, 7 w trakcie realizacji, 8 w transporcie, 9 odrzucone)
attribute 0..* Attribute code + value[]; system warehouse/purchase-order-attribute-type: order-fulfillment-step (stopień realizacji, tekst), warehouse (valueReferenceLocation)
meta 0..1 Meta added (utworzenie), lastModified (modyfikacja)

2a. Identyfikatory

Przestrzeń (klucz) Znaczenie Klucz referencyjny Skąd system
PurchaseOrder.Id Id zamówienia zakupu tak NamingSystem; urn:oid:1.2.616.1.113769.4.<instalacja>.67
PurchaseOrder.Number Numer zamówienia nie NamingSystem; urn:oid:1.2.616.1.113769.4.<instalacja>.67.1

3. PurchaseOrderPosition

Pozycja w zamówieniu zakupu (referencja na produkt, ilość, cena).

Nazwa Kard. Typ Opis
positionNo 0..1 integer Numer pozycji
product 0..1 Reference(ProductDefinition) Produkt/usługa (identifier w przestrzeni ProductDefinition.Id); brak, gdy pozycja nie wskazuje asortymentu
description 0..1 string Opis pozycji
quantity 0..1 Quantity Ilość zamówiona (unit = nazwa jednostki)
unitPrice 0..1 Money Cena jednostkowa netto
amount 0..1 Money Wartość pozycji (w odczycie brutto, a gdy brak — netto × ilość)
status 0..1 CodeableConcept Status pozycji; słownik warehouse/purchase-order-position-status (kody 15)
supplierProductId 0..1 string Identyfikator produktu u dostawcy
deliverySchedule 0..* DeliveryScheduleLine (date, quantity) Harmonogram dostaw
name 0..1 string Nazwa pozycji
vatRate 0..1 CodeableConcept Stawka podatku VAT
meta 0..1 Meta Metadane pozycji (added, lastModified)

4. Operacje

Metoda Ścieżka Opis
GET /v1/purchase-orders Wyszukiwanie zamówień zakupu (tylko odczyt)

Odpowiedź: { "items": [...], "nextToken": null }; paginacja count (domyślnie 20) i offset (domyślnie 0).

Parametr Wymagany Format Opis
identifier nie system\|value Id zamówienia w przestrzeni PurchaseOrder.Id
status nie system\|value https://api-erp.kamsoft.pl/vs/warehouse/purchase-order-status\|<kod>
owner nie system\|value Firma w przestrzeni Party.Id
period nie integer Numer okresu rozliczeniowego systemu magazynowego (liczba, nie data)
issueDateFrom, issueDateTo nie date Zakres dat wystawienia
attribute nie code\|value Filtry dodatkowe (kody nadaje wdrożenie)

Błędny format parametru → 400 Problem Details (type = https://httpstatuses.com/400).


5. Relacje do pozostałych zasobów


6. Zgodność z systemami wzorcowymi

System Odpowiednik Uwagi
SAP Purchase Order (PO), tbl. EKKO (header) + EKPO (position) PurchaseOrder = EKKO/EKPO struktura
Oracle Purchase Order (PO), tbl. PO_HEADERS_ALL + PO_LINES_ALL Dokument źródłowy dla receipt
UBL 2.3 Order Wspólna struktura buyer, seller, lines
D365 Purchase Order, tbl. PurchaseOrderEntity Header + lines

7. Przykład (odczyt)

{
  "resourceType": "PurchaseOrder",
  "meta": { "added": "2026-02-20T09:12:00", "lastModified": "2026-02-28T14:05:00" },
  "identifier": [
    {
      "system": "urn:oid:1.2.616.1.113769.4.<instalacja>.67.1",
      "value": "ZAM/2026/001"
    },
    {
      "system": "urn:oid:1.2.616.1.113769.4.<instalacja>.67",
      "value": "1587"
    }
  ],
  "status": {
    "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/purchase-order-status", "code": "3", "display": "zrealizowane" }]
  },
  "issueDate": "2026-02-20",
  "position": [
    {
      "positionNo": 1,
      "product": {
        "type": "ProductDefinition",
        "identifier": { "system": "urn:oid:1.2.616.1.113769.4.<instalacja>.80", "value": "40213" }
      },
      "name": "Rękawice nitrylowe M",
      "quantity": { "value": 100, "unit": "op." },
      "unitPrice": { "value": 25.00, "currency": "PLN" },
      "amount": { "value": 3075.00, "currency": "PLN" },
      "status": {
        "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/purchase-order-position-status", "code": "2" }]
      }
    }
  ],
  "amount": { "value": 3075.00, "currency": "PLN" },
  "attribute": [
    {
      "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/purchase-order-attribute-type", "code": "order-fulfillment-step" }] },
      "value": [{ "valueString": "Zrealizowane" }]
    },
    {
      "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/purchase-order-attribute-type", "code": "warehouse" }] },
      "value": [{ "valueReference": { "type": "Location", "identifier": { "system": "urn:oid:1.2.616.1.113769.4.<instalacja>.75", "value": "12" } } }]
    }
  ]
}

Przestrzenie OID w przykładach niosą placeholder <instalacja> — gotową przestrzeń przekazuje KAMSOFT w parametrach wdrożenia.


8. Odniesienia