Przejdź do treści

CostCarrier

CostCarrier (nośnik kosztów) to zasób reprezentujący obiekt zbierający koszty – projekt, zlecenie wewnętrzne, produkt, usługa lub centrum kosztów. Służy jako cel alokacji kosztów w rachunkowości zarządczej i controllingu. Koszty są przypisywane do nośnika przez CostAssignment. Hierarchia nośników przez partOf (np. projekt → faza → zadanie). Właściciel/odpowiedzialny przez owner (PartyRole lub OrganizationUnit). Wzorowany na SAP (Cost Center, Internal Order), Oracle (Cost Center segment), Workday (Cost Center).

Rozszerza DomainResource.


1. Zakres i zastosowanie

CostCarrier = obiekt do którego przypisuje się koszty w celu analizy rentowności, budżetowania i raportowania zarządczego. Typy nośników (pole type z DomainResource):

  • project – projekt (np. wdrożenie systemu, inwestycja, kampania marketingowa)
  • internal-order – zlecenie wewnętrzne (np. zlecenie serwisowe, działanie jednorazowe)
  • cost-center – centrum kosztów/MPK (miejsce powstawania kosztów organizacyjnych)
  • product – produkt (kalkulacja kosztów wytworzenia)
  • service – usługa (kalkulacja kosztów świadczenia)

Koszty przypisywane są przez CostAssignment, który referuje do CostCarrier i zawiera position[] z referencjami do źródeł kosztów (Document, LedgerEntry, Product, Party). CostCarrier nie zawiera referencji do CostAssignment – relacja jednokierunkowa (CostAssignment → CostCarrier).

Hierarchia: partOf (Reference do nadrzędnego CostCarrier) – np. projekt zawiera fazy, faza zawiera zadania; centrum kosztów ma podcentra. Pozwala na agregację kosztów na wyższych poziomach.

Właściciel: owner (Reference do PartyRole lub OrganizationUnit) – osoba/jednostka odpowiedzialna za nośnik kosztów (np. kierownik projektu, manager działu).

Okres: period (Period) – okres funkcjonowania nośnika (start/end) – dla projektów, zleceń czasowych, budżetów okresowych.


2. Zawartość (struktura)

Oprócz elementów DomainResource (id, meta, text, comment, category, status, type, contained, attribute):

Nazwa Kard. Typ Opis
identifier 0..* Identifier Identyfikatory nośnika (kod projektu, numer zlecenia, symbol MPK – rodzaj w type)
name 0..1 string Nazwa nośnika (np. „Wdrożenie ERP 2026", „Kampania Q1", „Dział IT")
type 0..1 CodeableConcept Typ nośnika: project, internal-order, cost-center, product, service (system https://api-erp.kamsoft.pl/ns/cost-carrier-type) – pole dziedziczone z DomainResource
status 0..1 CodeableConcept Status nośnika: active, inactive, closed, completed (system https://api-erp.kamsoft.pl/ns/status)
owner 0..1 Reference(PartyRole | OrganizationUnit) Właściciel/odpowiedzialny za nośnik – osoba w roli (kierownik projektu) lub jednostka organizacyjna
partOf 0..1 Reference(CostCarrier) Nośnik nadrzędny – hierarchia (projekt → faza, centrum → podcentrum); puste dla nośnika najwyższego poziomu
period 0..1 Period Okres funkcjonowania nośnika (start/end) – dla projektów, zleceń czasowych, budżetów okresowych
attribute 0..* Attribute Cechy nośnika (budżet, kategoria, priorytet, kod MPK, faza, typ projektu itd.) – code + value* (wzorzec Attribute)

Uwaga: type (z DomainResource) – rodzaj nośnika (project, internal-order, cost-center, product, service); category (z DomainResource) – dodatkowe klasyfikacje (branża, region, departament). partOf – hierarchia: projekt zawiera fazy (CostCarrier z type=project → CostCarrier z type=project-phase), centrum kosztów zawiera podcentra. owner – PartyRole (osoba w roli kierownika) lub OrganizationUnit (jednostka odpowiedzialna). period – opcjonalne dla nośników czasowych (projekty, zlecenia); puste dla trwałych (centra kosztów, produkty). attribute – rozszerzenia: budżet (valueQuantity/valueMoney), kod MPK (valueString), priorytet (valueCodeableConcept).


3. Relacje

  • CostAssignment – przypisanie kosztów referuje do CostCarrier (pole costCarrier); CostCarrier nie zawiera listy przydziałów.
  • PartyRole – właściciel nośnika (osoba w roli, np. kierownik projektu): CostCarrier.owner → PartyRole.
  • OrganizationUnit – jednostka odpowiedzialna za nośnik (dział, oddział): CostCarrier.owner → OrganizationUnit; powiązanie z centrum kosztów/MPK (OrganizationUnit.attribute z code=cost-center).
  • Hierarchia: CostCarrier.partOf → CostCarrier (nadrzędny) – drzewo nośników (projekt → faza → zadanie; centrum → podcentrum).
  • Document, Product – źródła kosztów nie mają bezpośredniej referencji do CostCarrier; połączenie poprzez CostAssignment.position[].resource.

4. Zgodność z systemami wzorcowymi

System Odpowiednik Uwagi
SAP Cost Center (CSKS/CSKT), Internal Order (AUFK/AUFT), WBS Element (PRPS) CostCarrier z type=cost-center/internal-order/project; hierarchia przez partOf; owner odpowiada Responsible Person
Oracle Cost Center (segment), Project (PA_PROJECTS), Task CostCarrier z type; Oracle używa segmentu konta dla MPK, projekt jako osobna encja; mapowanie przez identifier + type
Dynamics 365 Cost Center (Financial Dimension), Project (Project Accounting) CostCarrier z type=cost-center/project; Financial Dimensions jako analytical attributes
Workday Cost Center (Organization type), Spend Category CostCarrier z type=cost-center; owner → Supervisory Organization

5. Odniesienia