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. Ak firma nie je platiteľom DPH (t.j. firma.setdph je false), parameter firma.dph nie je povinný.
  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...",
}