Přeskočit obsah

Majetek — Articles

Správa hmotného majetku (artikly). Obsahuje CRUD operace, vyhledávání podle různých kritérií a správu lokací majetku.

Base path: /api/articles


Endpointy

POST /api/articles — Vytvoření majetku

POST /api/articles
Content-Type: application/json
Authorization: Bearer <token>

Request body — objekt Article:

{
  "code": "NTB-001",
  "name": "Notebook Dell XPS 15",
  "categoryId": 1,
  "typeId": 2,
  "stateId": 1,
  "price": 35000.00,
  "serialNumber": "SN123456",
  "rfId": null,
  "userId": 5,
  "responsibleUserId": 3,
  "isDisposal": false
}

Response 201 Created — vytvořený Article s přiděleným OID.


PUT /api/articles/{id} — Aktualizace majetku

PUT /api/articles/42
Content-Type: application/json

Request body — stejná struktura jako POST, OID musí odpovídat {id}.

Response: 200 OK | 400 Bad Request (neshodná ID) | 404 Not Found


GET /api/articles — Seznam všech majetků

GET /api/articles
Authorization: Bearer <token>

Response 200 OK — pole objektů Article.

Výkon

Endpoint vrací kompletní seznam. Pro velké databáze zvažte filtrované endpointy níže.


GET /api/articles/{id} — Detail majetku

GET /api/articles/42

Response 200 OK:

{
  "oid": 42,
  "code": "NTB-001",
  "name": "Notebook Dell XPS 15",
  "category": { "oid": 1, "name": "Výpočetní technika" },
  "type": { "oid": 2, "name": "Notebook" },
  "state": { "oid": 1, "name": "V provozu" },
  "price": 35000.00,
  "serialNumber": "SN123456",
  "rfId": null,
  "userId": 5,
  "responsibleUserId": 3,
  "isDisposal": false,
  "disposalDT": null
}

Response 404 pokud majetek neexistuje.


GET /api/articles/getbycode — Vyhledání dle kódu

GET /api/articles/getbycode?code=NTB-001

Vrátí majetek s přesně odpovídajícím kódem.


GET /api/articles/{id}/locations — Lokace majetku

GET /api/articles/42/locations

Response 200 OK — seznam ArticleLocation objektů:

[
  {
    "oid": 10,
    "articleId": 42,
    "locationId": 5,
    "location": { "oid": 5, "name": "Kancelář 201", "code": "K201" },
    "quantity": 1
  }
]

Filtrované vyhledávání

Všechny find* endpointy přijímají parametr filterOp (viz Filtrační operátory).

GET /api/articles/findById

GET /api/articles/findById?id=42&filterOp=Equals

GET /api/articles/findByCode

GET /api/articles/findByCode?code=NTB&filterOp=StartsWith

GET /api/articles/findBySerialNo

GET /api/articles/findBySerialNo?SerialNo=SN123&filterOp=Contains

GET /api/articles/findByRFID

GET /api/articles/findByRFID?RfId=E200123456789&filterOp=Equals

GET /api/articles/findByName

GET /api/articles/findByName?name=notebook&filterOp=Contains

Datový model Article

Pole Typ Popis
OID long Primární klíč
Code string Inventární číslo / kód
Name string Název majetku
CategoryId long FK → ArticleCategory
TypeId long FK → ArticleType
StateId long FK → ArticleState
Price decimal Pořizovací cena
SerialNumber string? Výrobní číslo
RfId string? RFID tag
UserId long? FK → User (přiřazený uživatel)
ResponsibleUserId long? FK → User (odpovědná osoba)
IsDisposal bool Příznak navržení k vyřazení
DisposalDT DateTime? Datum vyřazení
DisposalMethodId long? FK → ArticleDisposalMethod
DisposalReasonId long? FK → ArticleDisposalReason
Deleted bool Soft delete
CreatedDT / ModifiedDT DateTime Audit timestamps
CreatedBy / ModifiedBy string Audit uživatel