Zariadenia

Zariadenia

Funkcie na prácu so zariadeniami. Vytvorenie prenájmu pre zariadenie a k nemu všetky požadované záznamy v databáze.

GET /interface/{db}/eshop/v1/equipment/typ/zoznam

Rozhranie dodáva zoznam typov zariadeni.

  • Status: implementované
  • Bearer: áno

Príklad odpovede:

{
  "items": [
    {
      "id_typ": 1,
      "typ": "Typ 1",
      "Row#": "1"
    },
    {
      "id_typ": 2,
      "typ": "Typ 2",
      "Row#": "2"
    }
  ],
  "paging": {
    "offset": 0,
    "limit": 100,
    "maximum": 61
  }
}

GET /interface/{db}/eshop/v1/equipment/stav/zoznam

Rozhranie dodáva zoznam stavov zariadeni.

  • Status: implementované
  • Bearer: áno

Príklad odpovede:

{
  "items": [
    {
      "id_stav": 1,
      "stav": "Na sklade",
      "Row#": "1"
    },
    {
      "id_stav": 2,
      "stav": "V servise",
      "Row#": "2"
    }
  ],
  "paging": {
    "offset": 0,
    "limit": 100,
    "maximum": 61
  }
}

GET /interface/{db}/eshop/v1/equipment/zoznam

Rozhranie dodáva zoznam zariadeni.

  • Status: implementované
  • Bearer: áno

Príklad odpovede:

{
  "items": [
    {
      "id_equipment": 1,
      "cislo": "Z001",
      "nazov": "Zariadenie 1",
      "Row#": "1"
    },
    {
      "id_equipment": 2,
      "cislo": "Z002",
      "nazov": "Zariadenie 2",
      "Row#": "2"
    }
  ],
  "paging": {
    "offset": 0,
    "limit": 100,
    "maximum": 61
  }
}

POST /interface/{db}/eshop/v1/equipment/vytvor

Rozhranie vytvorí nové zariadenie.

  • Status: implementované
  • Bearer: áno

Príklad odoslanej požiadavky:

{
  "cislo": "Z001",
  "nazov": "Zariadenie 1"
}

Rozhranie potvrdí vytvorenie zariadenia, alebo vypíše chybu, že zariadenie s daným číslom už existuje.

POST /interface/{db}/eshop/v1/equipment/zoznam/update

Rozhranie aktualizuje zoznam zariadeni.

  • Status: implementované
  • Bearer: áno

Príklad odoslanej požiadavky:

[
  {
    "cislo": "Z001",
    "nazov": "Zariadenie 1"
  },
  {
    "cislo": "Z002",
    "nazov": "Zariadenie 2"
  }
]

Rozhranie potvrdí vytvorenie zariadení tak, že vráti počet vytvorených zariadení.

Príklad odpovede:

{
  "count": 2
}

POST /interface/{db}/eshop/v1/equipment/rent

Rozhranie vytvorí prenájom pre zariadenie a k nemu všetky požadované záznamy v databáze. Pod pojmom zariadenie sa v tomto prípade myslí napríklad konkrétny box, ktorý sa prenajíma. Môže to byť aj iný druh zariadenia, napríklad vozík, atď.

  • Status: implementované
  • Bearer: áno

Popis logiky:

  1. Podľa fieldu zariadenie.cislo sa vyhľadá zariadenie. Ak neexistuje, vytvorí sa. V odpovedi sa vráti id_equipment. Ak nie je tento field v požiadavke, tak sa nevytvorí ani prenájom a vráti sa chyba.
  2. Nasleduje kontrola na firmu alebo osobu. Ak nie je v požiadavke ani firma ani osoba, tak sa nevytvorí ani prenájom a vráti sa chyba. Ak sú vyplnené obidve, tak sa uprednostní firma.
  3. Podľa fieldu firma.ico sa vyhľadá firma. Ak neexistuje, vytvorí sa. V odpovedi sa vráti id_firma. Keďže je súčasťou procesu aj fakturácia, tak sa skontroluje aj firma.dic, firma.dph, firma.oreg, firma.psc, firma.mesto, firma.ulica, firma.stat.
  4. Podľa fieldu osoba.priezvisko a osoba.meno sa vyhľadá osoba. Ak neexistuje, vytvorí sa. V odpovedi sa vráti id_osoba. Keďže je súčasťou procesu aj fakturácia, tak sa skontroluje aj osoba.psc, osoba.mesto, osoba.ulica, osoba.stat.
  5. Vytvorí sa spis pre daný prenájom. V odpovedi sa vráti id_spis. Názov spisu identický s názvom prenájmu. Toto je len informatívny údaj, v Optivuse slúži na vytvorenie kontajnera, ktorý celý tento prenájom zastrešuje.
  6. Vytvorí sa objednávka pre daný prenájom. V odpovedi sa vráti id_objednavka. Objednávky sa vytvárajú ako jednoriadkové, pričom riadkom objednávky je daný prenájom.
  7. Vytvorí sa faktúra pre daný prenájom. V odpovedi sa vráti id_faktura. Ak je v prenájme uhradene true, tak sa faktúra označí ako uhradená. Ak prichádza požiadavka z prostredia, ktoré vyberá platby, treba toto nastaviť na true, aby aj v Optivuse bola faktúra označená ako uhradená a bola k nej priradená platba.
  8. Vytvorí sa prenájom. V odpovedi sa vráti id_prenajom. Toto je len informatívny údaj, v Optivuse slúži na vytvorenie prenájmu a jeho sledovanie vo vzťahu k zariadeniu.

Dôležité poznámky:

  • Ak nie je v požiadavke ani firma ani osoba, tak sa nevytvorí ani prenájom a vráti sa chyba.
  • Ak sú vyplnené obidve, tak sa uprednostní firma. Osoba sa v takom prípade berie len ako doplnkový údaj kontaktnej osoby na faktúre.
  • Ak nie je v požiadavke zariadenie.cislo, tak sa nevytvorí ani prenájom a vráti sa chyba.
  • Ak nie je v požiadavke prenajom.datum_od alebo prenajom.datum_do, tak sa nevytvorí ani prenájom a vráti sa chyba.
  • Ak nie je v požiadavke prenajom.datum_vystavenia alebo prenajom.datum_splatnosti alebo prenajom.datum_dodania, tak sa nevytvorí ani prenájom a vráti sa chyba. Pri týchto troch dátumoch si treba uvedomiť, že sa jedná o dátumy fakturácie a dodania tovaru/služby. Tieto dátumy sú povinné pre vytvorenie faktúry. Dôležité je správne stanovenie dátumu dodania.
  • Ak nie je v požiadavke prenajom.cena alebo prenajom.dph alebo prenajom.mnozstvo alebo prenajom.mj, tak sa nevytvorí ani prenájom a vráti sa chyba. Hodnota DPH sa kontroluje na platnosť voči číselníku DPH v Optivuse. Ak nie je v požiadavke platná hodnota DPH, tak sa nevytvorí ani prenájom.
  • Ak sa jedná o prenájom, ktorý bol aj rovno uhradený, je nutné nastaviť prenajom.uhradene na true. To v programe vytvorí faktúru v stave uhradená a priradí k nej platbu.
  • Ak nie je v požiadavke prenajom.popis, tak sa nevytvorí ani prenájom a vráti sa chyba.
  • Dátumové položky odstraňujú časovú zložku. Teda zadaný dátum bude upravený na 00:00:00.

Príklad odoslanej požiadavky:

{
  "zariadenie": {
    "cislo": "Z001",
    "nazov": "Zariadenie 1"
  },
  "firma": {
    "ico": "12345678",
    "nazov": "Firma 1",
    "psc": "12345",
    "mesto": "Mesto",
    "ulica": "Ulica",
    "stat": "Slovensko",
    "dic": "DIČ",
    "dph": "IČ DPH",
    "oreg": "Údaje z obchodného registra",
    "email": "[EMAIL_ADDRESS]",
    "tel": "123456789"
  },
  "osoba": {
    "priezvisko": "Priezvisko",
    "meno": "Meno",
    "email": "[EMAIL_ADDRESS]",
    "tel": "123456789",
    "mobil": "123456789",
    "psc": "12345",
    "mesto": "Mesto",
    "ulica": "Ulica",
    "stat": "Slovensko"
  },
  "prenajom": {
    "datum_od": "2026-04-02",
    "datum_do": "2026-04-03",
    "popis": "Popis prenájmu. Z tohto popisu sa vytvorí riadok na faktúre.",
    "cena": 100,
    "dph": 23,
    "mnozstvo": 1,
    "mj": "ks",
    "datum_vystavenia": "2026-04-01",
    "datum_splatnosti": "2026-04-01",
    "datum_dodania": "2026-04-01",
    "uhradene": true
  }
}

Rozhranie potvrdí vytvorenie prenájmu a vráti ID vytvoreného prenájmu.

Príklad odpovede:

{
  "id_equipment": 1,
  "id_firma": 1,
  "id_osoba": 1,
  "id_prenajom": 1,
  "id_spis": 1,
  "id_objednavka": 1,
  "id_faktura": 1
}

POST /interface/{db}/eshop/v1/equipment/rent/invoice

Rozhranie vytvorí PDF faktúru k prenájmu zariadenia. Predchádzajúce rozhranie /interface/{db}/eshop/v1/equipment/rent vytvorí prenájom a faktúru interne v databáze, ale nevytvorí PDF faktúru. Toto rozhranie je volané z prostredia, ktoré potrebuje PDF faktúru a pomocou neho ju vygeneruje. Presný vzhľad faktúry je daný šablónou v Optivuse.

  • Status: implementované
  • Bearer: áno

Upozornenie:

Momentálne je táto funkcia v testovacej fáze. Vykoná len všetky validačné testy. Odpovedá iba fiktívnou faktúrou. V budúcnosti bude odpovedať reálnou faktúrou.

Popis logiky:

Musíte zadať ID prenájmu alebo faktúry, ktoré ste získali z predošlej požiadavky. id_faktura má prednosť. Ak zadáte len id_prenajom, tak rozhranie vyhľadá faktúru podľa prenájmu. Ak nenájde ani jedno, tak vráti chybu.

Formátovanie:

  • Ak nie je zadaný parameter format, tak sa vráti PDF faktúra. Konvertovaná cez Gotenberg v binárnej podobe.
  • Ak je zadaný parameter format, tak sa vráti faktúra v danom formáte.
    • pdf - PDF faktúra, konvertovaná cez Gotenberg v binárnej podobe.
    • json - JSON faktúra, konvertovaná cez Gotenberg v textovej podobe.
    • html - HTML faktúra. Iba vygenerované HTML bez konverzie cez Gotenberg.

Šablóna:

Šablóna sa navrhuje priamo v programe Optivus v databáze. Túto šablónu si požiadavka na vytvorenie reportu faktúry môže použiť. Ak nie uvedené, akú šablónu cez API potrebujete, tak sa použije prednastavená šablóna faktura_optivus. Môžete si vynútiť inú šablónu pomocou parametra template. To sa hodí napríklad pri testovaní novej šablóny, aby nebol existujúci proces ohrozený.

Príklad odoslanej požiadavky

{
  "id_prenajom": 25,
  "id_faktura": 26,
  "format": "pdf|json|html",
  "template": "nazov_sablony (nepovinné)"
}

Príklad chybovej odpovede:

{
  "error": "Nie je možné identifikovať faktúru podľa prenájmu(25)."
}

Príklad odpovede vo formáte JSON:

{
  "pdf": "base64 encoded pdf...",
}