IOBERONService |
The IOBERONServiceCashRegisterGen2 type exposes the following members.
| Name | Description | |
|---|---|---|
| BusinessPartner_Add | Vytvorí nového obchodného partnera v evidencii 'Obchodní partneri'. Nový záznam je možné vytvoriť aj s prevádzkami, aktualizovať hlavičku obchodného partnera je možné volaním BusinessPartner_Update(BusinessPartnerHeader), pričom na úpravu prevádzok je možné volať BusinessPartner_Branches_BatchUpdate(BusinessPartnerBranchesBatchUpdateArg). | |
| BusinessPartner_Branches_BatchUpdate | Aktualizuje prevádzky obchodného partnera (ak už v evidencii existuje). Po aktualizácii sa prevádzky nahradia týmito zasielanými. Nové prevádzky sa pridajú, existujúce aktualizujú, prípadné chýbajúce sa odstránia. | |
| BusinessPartner_CreditLimitInfo | Vráti informáciu o aktuálnom stave čerpania kredit limitu. Posudzujú sa pohľadávky po lehote splatnosti a skladové výdajky. | |
| BusinessPartner_Delete | Vymaže údaje o obchodnom partnerovi z evidencie 'Obchodní partneri'. Údaje o obchodnom partnerovi v dokladoch zostanú bez zmeny. | |
| BusinessPartner_Find | Umožňuje vyhľadať v evidencii 'Obchodní partneri' obchodného partnera. Výsledkom hľadania môže byť jeden, prípadne viac obchodných partnerov, ktorý vyhovujú zadanej podmienke. Podporuje aj fulltextové vyhľadávanie, ktoré ignoruje diakritiku. Umožňuje vrátiť aj prevádzky, pripojené dokumenty, t.j. rozsah vrátených údajov je možné z dôvodu výkonu obmedziť. | |
| BusinessPartner_Get | Vráti (načíta) konkrétneho obchodného partnera z evidencie 'Obchodní partneri'. | |
| BusinessPartner_List | Vráti zoznam obchodných partneroch (podľa daného filtra). | |
| BusinessPartner_ListSettings | Načítanie zoznamu dostupných filtrov, podľa ktorých je možné načítať príslušný zoznam záznamov. | |
| BusinessPartner_Update | Aktualizuje už existujúci záznam obchodného partnera v evidencii 'Obchodní partneri' (len hlavičkové údaje). Na úpravu prevádzok je možné volať BusinessPartner_Branches_BatchUpdate(BusinessPartnerBranchesBatchUpdateArg). | |
| BusinessPartnerGroups_List | Vráti zoznam skupín obchodných partnerov. | |
| CashRegister_BillClose | Uzatvorenie dokladu bez vytvorenia daňového dokladu vo fiškálnom zariadení. | |
| CashRegister_BillJournal_Add | Vytvorí novú záznam v evidencii pokladničných dokladov t.j. bločkov. Záznamy v tejto evidencii sa vytvárajú automaticky pri zaevidovaní dokladu v Pokladnici OBERON. Tu je možné vytvoriť nový záznam napr. v pobočkovom režime, kedy bol doklad zaevidovaný na prevádzke a exposruje sa na centrálu. | |
| CashRegister_BillJournal_Get | Vráti (načíta) konkrétný pokladničný doklad (bloček) z evidencie Pokladničné doklady, t.j. doklady vytvorené na Pokladnici OBERON. | |
| CashRegister_BillJournal_List | Vráti zoznam pokladničných dokladv (bločkov) predaných na Pokladnici OBERON, tzv. história predaja. Pre výber záznamov je potrebné použiť filtre, ktoré je možné načítať metódou CashRegister_BillJournal_ListSettings(BillJournalListSettingsArg). | |
| CashRegister_BillJournal_ListSettings | Načítanie zoznamu dostupných filtrov, podľa ktorých je možné načítať príslušný zoznam záznamov. | |
| CashRegister_BillJournal_Summary_Items | Vráti súhrn predaja - zosumarizované položky vytvorené na Pokladnici OBERON. | |
| CashRegister_BillOpen_Add | Vytvorí nový otvorený účet na Pokladnici OBERON. Otvorený účet môže byť priradený k stolu (košíku), prípadne môže byť typu Donáška (tento nie je priradený k žiadnemu stolu). | |
| CashRegister_BillOpen_Delete | Odstrániť (vymaže) jeden otvorený účet. Môže sa vymazať len otvorený účet bez položiek. | |
| CashRegister_BillOpen_Discount | Uplatní na otvorený účet zľavu, t.j. na každú položku dokladu zapíše danú zľavu. Ak už zľava bola zadaná, bude táto zľava upravená (zmenená) - bude sa opätovne počítať z pôvodných súm. Na položky (skladové karty), na ktoré je uplatnenie zľavy nastavené na 'Pýtať sa', bude zľava uplatnená. | |
| CashRegister_BillOpen_Get | Vráti (načíta) konkrétný otvorený účet na danej Pokladnici OBERON. | |
| CashRegister_BillOpen_Items_Add | Pridá jednu novú (alebo aj viac) položku do existujúceho otvoreného účtu. | |
| CashRegister_BillOpen_Items_Delete | Odstrániť (vymaže) jednu alebo viac položiek z otvoreného účtu. Ak už bola položka vytlačená na bonovacej tlačiarni (objednávka v prípravni jedál či nápojov), bude automaticky vytlačené STORNO objednávky. | |
| CashRegister_BillOpen_Items_Discount | Uplatní na položku otvoreného účtu zľavu. Ak už zľava bola zadaná, bude táto zľava upravená (zmenená) - bude sa opätovne počítať z pôvodných súm. Na položky (skladové karty), na ktoré je uplatnenie zľavy nastavené na 'Pýtať sa', bude zľava uplatnená. | |
| CashRegister_BillOpen_Items_Merge | Umožňuje zlúčiť rovnaké položky na otvorenom účte. | |
| CashRegister_BillOpen_Items_Move | Presun jednej položky otvoreného účtu na iný otvorený účet, prípadne rozdelenie položky medzi dva otvorené účty. Používa sa napr. pri rozdelení jedného účtu tak, že platia obidve osoby samostatne. Všetky činnosti sú zaznamenávané do tzv. Sledovania činností. | |
| CashRegister_BillOpen_Items_Update | Aktualizuje existujúcu položku na otvorenom účte. Položku zapísanú do bonovacej knihy (vytlačenú na bonovacej tlačiarni) už nie je možné upraviť - je ju možné len odstrániť (s tlačením storna). | |
| CashRegister_BillOpen_List | Vracia zoznam aktuálne otvorených účtov. Načítajú sa len otvorené účty danej registračnej pokladnice, ktorú táto webová služba zastupuje (jedna webová služba zastupuje jednu konkrétnu registračnú pokladnicu). | |
| CashRegister_BillOpen_Order_Add | Umožňuje dodatočne zapísať položky otvoreného účtu do bonovacej knihy, a ich prípadnú tlač na bonovacej tlačiarni, alebo zobrazení na bonovacom monitore. | |
| CashRegister_BillOpen_Payment_Update | Zápis informácie o úhrade otvoreného účtu platobnou kartou, alebo inou elektronickou formou. Použitím tejto metódy sa nevykonáva banková transakcia volaním bankového terminála, ale sa len zapisuje info o úhrade. Zápis úhrady môže vykonať obsluha pokladnice (napr. na mobilnej aplikácii LUKUL v režime Čašník), prípadne priamo aj zákazník, napr. ako hosť v reštaurácii pri úhrade účtu, prípadne pri donáške. Zoznam otvorených účtov je možné načítať metódou CashRegister_BillOpen_List(BillOpenListArg). | |
| CashRegister_BillOpenDefinition_List | Vráti zoznam definicií otvorených účtov (zoznam definovaných stolov, košíkov pri košíkovom predaji) danej registračnej pokladnice. Otvorený účet je spravidla priradený k nejakému stolu (košíku), avšak niekedy nie, napr. pri otvorenom účte typu Donáška. | |
| CashRegister_BillOrder_List | Vracia zoznam položiek zapísaných v bonovacej knihe - spravidla vytlačených na jednej alebo viacerých bonovacích tlačiarňach. Položky sú určené na prípravu, najčastejšie jedlá a nápoje. Spravidla vracia ešte nepripravené, alebo nevynesené, tzv. otvorené položky. Môže však vracať aj všetky položky od daného dátumu a času (záleží od parametra funkcie). Používa sa pre zobrazovanie položiek na displeji v kuchyni alebo predajnom mieste. | |
| CashRegister_BillRegister | Uzatvorenie dokladu so zaevidovaním tržby a vytvorením daňového dokladu vo fiškálnom zariadení (v systéme eKasa). Daňový doklad môže byť vytlačený, prípadne vyhotovený elektronicky - zaslaný zákazníkovi e-mailom. Uzatvorením účtu sa presunie otvorený účet z pokladnice do evidencie pokladničných dokladov (bločkov) danej pokladnice (tzv. žurnál). Zoznam otvorených účtov pokladnice je možné načítať metódou CashRegister_BillOpen_List(BillOpenListArg). | |
| CashRegister_CustomerDisplay_Get | Vráti (načíta) z webovej služby údaje pre zbrazenie na zákazníckom displeji. Dáta sa uchovávajú len v pamäti webovej služby, pričom daný údaj je vždy len posledný (aktuálny, t.j. bez nejakej fronty správ). | |
| CashRegister_CustomerDisplay_Update | Zašle (zapíše) do webovej služby údaje pre zobrazenie na zákazníckom displeji. Dáta sa uchovávajú len v pamäti webovej služby, pričom daný údaj je vždy len posledný (aktuálny, t.j. bez nejakej fronty správ). | |
| CashRegister_PaymentType_List | Vracia zoznam typov platieb (spôsobov zaevidovania dokladu). Používa sa pri vytlačení (uzatvorení) dokladu na Pokladnici OBERON (metóda CashRegister_BillRegister(BillRegisterArg) alebo CashRegister_BillClose(BillCloseArg)). | |
| CashRegister_Settings | Načítanie nastavení Pokladnice OBERON. | |
| Common_BankAccount_List | Vráti zoznam vlastných bankových účtov účtovnej jednotky. | |
| Common_Currency_List | Vráti zoznam cudzích mien používaných (nadefinovaných) v systéme OBERON. | |
| Common_Device_List | Vráti zoznam zariadení definovaných v systéme OBERON (ponuka Servis, položka Zariadenia). V parametri je možné určiť typ (druh) zariadenia, napr. fiškálne eKasa zariadenia (Pokladnica OBERON), zákaznícke displeje a podobne. | |
| Common_Unit_List | Vráti zoznam merných jednotiek. | |
| Company_Branch_List | Vráti zoznam prevádzok účtovnej jednotky (firmy). Účtovná jednotka môže byť členená na prevádzky - tie sa spravidla používajú na členenie dokladov (t.j. aj na číslovanie dokladov). | |
| Company_Info | Načítanie údajov o firme (účtovnej jednotke), s ktorou webová služba pracuje, napr. názov, adresa, IČO, DIČ atď ... | |
| Company_Settings | Načítanie základných nastavení firmy (účtovnej jednotky), s ktorou webová služba pracuje, napr. sadzba DPH, zaokrúhlenia pri výpočtoch ... | |
| FileRepository_Add | Vytvorí (pridá) novú prílohu k ľubovolnému dokumentu. | |
| FileRepository_Delete | Odstráni pripojený dokumentz evidencie. | |
| FileRepository_Get | Vráti (načíta) konkrétnu prílohu (pripojený dokument) k nejakému záznamu ľubovolnej evidencie. | |
| FileRepository_List | Vráti zoznam príloh (alebo pripojených dokumentov) k ľubovolnému dokumentu (napr. príloha faktúry), prípadne obrázky a iné dokumenty ku skladovým kartám. | |
| FileRepository_ListSettings | Načítanie zoznamu dostupných filtrov, podľa ktorých je možné načítať príslušný zoznam záznamov. | |
| FileRepository_Update | Aktualizuje už existujúcu prílohu ku konkrétnemu dokumentu. | |
| GetWebFile | Vráti súbor pre web stránku, tzv. statické mapovanie súborov pre web stránku. | |
| Hotel_HotelAccounts_List | Vracia zoznam hotelových účetov. Bližší výber je možné určiť pomocou filtrov. | |
| InvoiceIssued_Add | Vytvorí novú faktúru v evidencii 'Kniha pohľadávok'. Nový doklad je možné vytvoriť aj s položkami, aktualizovať hlavičku dokladu je možné volaním InvoiceIssued_Update(InvoiceIssuedHeader), pričom na úpravu položiek je možné volať InvoiceIssued_Items_BatchUpdate(InvoiceIssuedItemsBatchUpdateArg). | |
| InvoiceIssued_Delete | Vymaže faktúru z evidencie 'Kniha pohľadávok'. Po vymazaní faktúry sa stavy zásob skladových položiek (ktoré boli v doklade) vrátia na pôvodné množstvá. | |
| InvoiceIssued_Get | Vráti (načíta) konkrétnu vystavenú faktúru z evidencie 'Kniha pohľadávok'. | |
| InvoiceIssued_Items_BatchUpdate | Aktualizuje položky na existujúcom doklade. Po aktualizácii sa položky v danom doklade nahradia týmito zasielanými. Nové položky sa pridajú, existujúce aktualizujú, prípadné chýbajúce sa odstránia. | |
| InvoiceIssued_Update | Aktualizuje už existujúcu faktúru v evidencii 'Kniha pohľadávok' (len hlavičkové údaje, sumy sú ignorované). Na úpravu položiek je možné volať InvoiceIssued_Items_BatchUpdate(InvoiceIssuedItemsBatchUpdateArg). | |
| InvoicesIssued_List | Vráti zoznam faktúr z evidencie 'Kniha pohľadávok' (vydané/vystavené faktúry). Pre výber záznamov je potrebné použiť filtre, ktoré je možné načítať metódou InvoicesIssued_ListSettings(InvoicesIssuedListSettingsArg). | |
| InvoicesIssued_ListSettings | Načítanie zoznamu dostupných filtrov, podľa ktorých je možné načítať príslušný zoznam záznamov. | |
| Stock_Common_CashRegisterGroups_List | Vracia zoznam skupín v Pokladnici OBERON (číselník). Skupina v pokladnici sa používa pre členenie skladových kariet v režime fastfood a je vhodný pre obsluhu obsluhu pokladnice. Pre zákazníka je lepšie použiť členenie podľa TreeCategory. | |
| Stock_Common_FoodMenu_List | Vracia zoznam jedálnych lístkov (číselník). SKladovú kartu je možné priradiť do jedného, alebo viacerých jedálnych (nápojových) lístkov, pričom môže obsahovať aj šablónu, podľa ktorej sa nastavia údaje na novej skladovej karte. | |
| Stock_Common_StockCardGroups_List | Vracia zoznam skladových skupín (číselník). Skladová skupina sa používa pre členenie skladových kariet, je na nej závislé číslovanie skladových kariet, pričom môže obsahovať aj šablónu, podľa ktorej sa nastavia údaje na novej skladovej karte. | |
| Stock_Common_TreeCategories_List | Vracia zoznam kategórií skladových kariet (číselník). Kategórie (stromová štruktúra) sa používajú pre členenie skladových kariet, skladová karta môže byť v jednej, alebo viacerých kategóriách. | |
| Stock_List | Načítanie zoznamu skladov podľa práv používateľa pod ktorým je služba spustená. | |
| Stock_MovementDocumentTypes_List | Vracia zoznam druhov (typov) skladových pohybov. Používa sa vo výdajkých, príjemkách a reportoch zo skladových pohyboch. | |
| Stock_ReleaseNote_Add | Vytvorí novú výdajku v evidencii 'Výdajky'. Nový doklad je možné vytvoriť aj s položkami, aktualizovať hlavičku dokladu je možné volaním Stock_ReleaseNote_Update(ReleaseNoteHeader), pričom na úpravu položiek je možné volať Stock_ReleaseNote_Items_BatchUpdate(ReleaseNoteItemsBatchUpdateArg). | |
| Stock_ReleaseNote_Delete | Vymaže výdajku z evidencie 'Výdajky'. Po vymazaní výdajky sa stavy zásob skladových položiek (ktoré boli v doklade) vrátia na pôvodné množstvá. | |
| Stock_ReleaseNote_Get | Vráti (načíta) konkrétnu skladovú výdajku z evidencie 'Výdajky'. | |
| Stock_ReleaseNote_Items_BatchUpdate | Aktualizuje položky na existujúcom doklade. Po aktualizácii sa položky v danom doklade nahradia týmito zasielanými. Nové položky sa pridajú, existujúce aktualizujú, prípadné chýbajúce sa odstránia. | |
| Stock_ReleaseNote_Update | Aktualizuje už existujúcu výdajku v evidencii 'Výdajky' (len hlavičkové údaje, sumy sú ignorované). Na úpravu položiek je možné volať Stock_ReleaseNote_Items_BatchUpdate(ReleaseNoteItemsBatchUpdateArg). | |
| Stock_ReleaseNotes_List | Vráti zoznam skladových výdajok. Pre výber záznamov je potrebné použiť filtre, ktoré je možné načítať metódou Stock_ReleaseNotes_ListSettings(ReleaseNotesListSettingsArg). | |
| Stock_ReleaseNotes_ListSettings | Načítanie zoznamu dostupných filtrov, podľa ktorých je možné načítať príslušný zoznam záznamov. | |
| Stock_StockCard_Add | Vytvorí novú skladovú kartu (hlavičku). Po vytvorení novej skladovej karty vráti jednoznačný identifikátor IDNum nového záznamu. | |
| Stock_StockCard_Get | Vráti (načíta) konkrétnu skladovú kartu z evidencie 'Skladové karty'. | |
| Stock_StockCard_Update | Aktualizuje údaje na existujúcej skladovej karte. | |
| Stock_StockCards_Delete | Vymaže jednu alebo viac skladových kariet. V prípade reálnych (nie externých) skladov platia obmedzenia pre vymazanie skladových kariet rovnako ako pri práci s modulom Sklad v systéme OBERON napr. nie je možné vymazať skladovú kartu, ku ktorej existujú skladové pohyby. V externých skladoch, kde sa ku kartám nevytvárajú pohyby je možné karty mazať jednoducho. | |
| Stock_StockCards_FileRepository_Add | Vytvorí (pridá) novú prílohu (obrázok alebo iný dokument) ku skladovej karte. | |
| Stock_StockCards_FileRepository_Delete | Odstráni obrázok alebo iný dokument ako prílohu ku skladovej karte. | |
| Stock_StockCards_FileRepository_Update | Aktualizuje už existujúcu (obrázok alebo iný dokument) ku skladovej karte. | |
| Stock_StockCards_Find | Umožňuje vyhľadať v sklade (alebo zoskupení skladov, prípadne všetkých skladoch) danú skladovú kartu. Výsledkom hľadania môže byť jedna, prípadne viaceré skladové karty, ktoré vyhovujú zadanej podmienke. Podporuje aj fulltextové vyhľadávanie, ktoré ignoruje diakritiku. Umožňuje vrátiť aj varianty, obrázok ku skladovej karte, t.j. rozsah vrátených údajov je možné z dôvodu výkonu obmedziť. | |
| Stock_StockCards_List | Vracia zoznam skladových kariet. Bližší výber je možné určiť pomocou filtrov. | |
| Stock_StockCards_ListSettings | Načítanie zoznamu dostupných filtrov, podľa ktorých je možné načítať príslušný zoznam záznamov. | |
| Stock_StockCards_Mark | Slúži na označovanie (odznačovanie) skladových kariet v zozname. Tieto skladové karty si môže používateľ vyfiltrovať a tak s nimi neskôr pracovať. Používa sa napr. pri kontrole cien, kedy skladové karty s nesprávnom cenou je možné označiť napr. aplikáciou ASTON a potom upraviť predajnú cenu, prípadne vytlačiť novú etiketu s cenou. | |
| System_Guid | Vráti vygenerovaný GUID (jednoznačný identifikátor), ktorý je možné použiť pri vytvorení nového záznamu v danej evidencii. GUID je používaný priamo v danej štruktúre dokladu, napr. vo výdajke RecordGUID, vydanej faktúre RecordGUID a podobne. | |
| System_Ping | Overenie dostupnosti služby, zároveň vráti adresu IP. | |
| System_Poll |
Polling - zaslanie požiadavky na určtú činnosť webovej služby - odpoveď spravidla nepríde ihneď,
ale až keď nastane vo webovej služby zmena (spravidla v dátach). Ak nedôjde k určitej zmene v uvedenom čase, vráti OK
- zoznam zmien (PollResult) bude prázdny.
Príklad použitia - zákaznícky displej. Klient zavolá toto volanie a čaká na odpoveď. Ak dôjde k zmene na displeji,
webová služba vráti info, že nastala zmena. Klient vzápätí volá metódu na vrátenie aktuálnych dát z webovej služby.
Timeout je možné nastaviť v požiadavke (hodnota PollFilter.PollTimeout) - ak je hodnota 0, použije sa default timeout webovej služby (momentálne 30 sekúnd). Klient musí byť do webovej služby prihlásený a mať nastavený GUID (v hlavičke v polu USERDATA). | |
| System_RefreshCache | Používa sa na vyvolanie aktualizácie údajov na serveri webových služieb, ktoré sú cache-ované, napr. aktualizovať ihneď skladové karty, číselníky a podobne. | |
| System_Version | Vráti údaje o verzii webovej služby a OBERONu. | |
| User_IsLogin | Overenie aktuálne prihláseného používateľa (prípadne používateľa podľa parametra), či je prihlásený do webovej služby (záleží však na nastavení spôsobu autentifikácie služby). | |
| User_Login | Prihlási používateľa do webovej služby (záleží však na nastavení spôsobu autentifikácie služby). Je potrebné volať na začiatku komunikácie s webovou službou, nakoľko sa generuje tzv. GUID pre ďalšiu komunikáciu (ten musí byť súčasťou hlavičky danej požiadavky). | |
| User_LoginSalt | Vráti tzv. SALT, ktorý je používaný pri hashovaní hesla pri prihlásení používateľa. Volá sa tesne pred metódou LoginUser. | |
| User_Logout | Odhlásenie používateľa z webovej služby. | |
| User_PrivilegesInfo | Vráti práva systému OBERON pre daného používateľa - používateľ však musí byť prihlásený k webovej službe. Používa sa len pri autentifikácii 'Používatelia systému OBERON' alebo 'Len systémový používateľ služby'. | |
| Users_LoggedOnOBERON | Vráti zoznam používateľov prihlásených do systému OBERON - či už z desktopovej aplikácie OBERON - Agenda firmy, alebo aj z aplikácie OBERON Web. | |
| Users_LoggedOnWebService | Vráti zoznam používateľov prihlásených do tejto webovej služby. Ak sa používateľ korektne neodhlási, webová služba ho v stanovenom časovom intervale (momentálne nastavené na 30 minút) automaticky odhlási. |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <title>Test webovej služby</title> <style>*,::after,::before{box-sizing:border-box}html,body{width:100%;font-family:"Segoe UI",Roboto,Arial,Helvetica,sans-serif}input,button{margin:0}.right{text-align:right}.tb td,.tb th{padding:4px}.tb{border:solid 1px gray;border-spacing:0}.tb thead tr{background-color:#e6e6e6;background-image:linear-gradient(top,#eeeeee,#dadada)}.resr,.resrh{margin-bottom:.3em}.resrh{font-size:1.3em}.reserr{color:firebrick}.resok{color:blue}.m3{margin-bottom:1rem!important}.frm,#resDSata{width:33.33%;background-color:#efefef;display:block;padding:1.5rem}#resData{background-color:#fefefe}.flbl{margin-bottom:.5rem;display:inline-block}.fctl{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.375rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.fctl:focus{color:#212529;background-color:#fff;border-color:#81d4fa;outline:0;box-shadow:0 0 0 .25rem #0d6efd40}.btn{padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#fff;background-color:#0d6efd;border:1px solid #0d6efd;border-radius:.375rem;box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);display:inline-block;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}</style> </head> <body> <div class="frm"> <div class="m3"> <label for="txtAddress" class="flbl">Adresa url:</label> <input type="text" id="tAdd" class="fctl" placeholder="adresa" value="http://localhost:21001/" /> </div> <div class="m3"> <label for="txtUserName" class="flbl">Meno používateľa:</label> <input type="text" id="tUsrN" class="fctl" placeholder="meno" value="" /> </div> <div class="m3"> <label for="settPassword" class="flbl">Heslo používateľa:</label> <input type="text" id="tUsrP" class="fctl" placeholder="heslo" value="" /> </div> <div class="bPnl"> <button id="bSbt" class="btn" >Test</button> </div> </div> <div id="resData"></div> <script src="https://my.exalogic.sk/cdn/zepto.min.js" type="text/javascript"></script> <script src="https://my.exalogic.sk/cdn/zepto.sha1.min.js" type="text/javascript"></script> <script type="text/javascript"> (function ($) { var _this = null; var Application = function () { return new Application.init(); }; _this = Application; Application.controls = { selAddress: '#tAdd', selUserName: '#tUsrN', selUserPass: '#tUsrP', selBtnSubmit: '#bSbt', selResultData: '#resData', ctlResultData: null }; Application.userData = null; Application.userSalt = ''; Application.token = ''; // overovací token Application.init = function () { // panel výsledkov _this.controls.ctlResultData = $(this.controls.selResultData); _this.controls.ctlResultData.empty(); // tlačítko $(_this.controls.selBtnSubmit).on('click', function(){ Application.evhButtonClick(); }); }; Application.evhButtonClick = function() { var exc = myException(''), baseUrl = getUrl(); exc = Application.testPing(baseUrl); if(!exc.result) return; exc = Application.login(baseUrl); if(!exc.result) return; exc = Application.stockCards(baseUrl); if(!exc.result) return; exc = Application.logout(baseUrl); if(!exc.result) return; }; /* -- Ping -- */ Application.testPing = function(baseUrl) { var exc = myException(''), datah = {html:''}; // musí byť lebo js nie je ref parameter loadUrl = baseUrl + 'ping'; exc = ajaxHtml(loadUrl, datah); if (exc.result == false) { //--- nejaká chyba addLogRow('Ping', 1, exc.description); } else { addLogRow('Ping', 0, datah.html); } return exc; }; /* -- Login -- */ Application.login = function(baseUrl) { var exc = myException(''), datah, ajaxUrl; //načítanie salt pre posilnenie hesla data = dataResult(); post = { userName: $(Application.controls.selUserName).val() }; ajaxUrl = baseUrl + 'v1/user/login/salt'; exc = ajaxPost(ajaxUrl, data, post); if (exc.result == false) { //--- nejaká chyba addLogRow('Salt', 1, exc.description); return exc; } else { Application.userSalt = data.data; addLogRow('Salt', 0, data.data); } //prihlásenie so šifrovaním sha1 a posilnením hesla pomocou salt post = { userLoginArg:{ UserName: $(Application.controls.selUserName).val(), Password: Zepto.fn.sha1(Application.userSalt + $(Application.controls.selUserPass).val()) }}; data = dataResult(); ajaxUrl = baseUrl + 'v1/user/login'; exc = ajaxPost(ajaxUrl, data, post); if (exc.result == false) { //--- nejaká chyba addLogRow('Token', 1, exc.description); return exc; } else { addLogRow('Token', 0, Application.token); } //test prihlásenia data = dataResult(); ajaxUrl = baseUrl + 'v1/user/login/verify/' + Application.token; exc = ajaxGet(ajaxUrl, data); if (exc.result == false) { //--- nejaká chyba addLogRow('Login verify', 1, exc.description); } else { addLogRow('Login verify', 0); } return exc; }; /* -- Logout -- */ Application.logout = function(baseUrl) { var exc = myException(''),data; if(Application.token == null || Application.token.length == 0) { addLogRow('Logout', 1, 'No token'); return exc; } data = dataResult(); exc = ajaxGet(baseUrl + 'v1/user/logout/', data); if (exc.result == false) { //--- nejaká chyba addLogRow('Logout', 1, exc.description); } else { addLogRow('Logout', 0); } return exc; }; /* -- Skladové karty -- */ Application.stockCards = function(baseUrl) { _this.controls.ctlResultData.append('<div class="resrh">Skladové karty</div>'); var exc = myException(''),data; if(Application.token == null || Application.token.length == 0) { exc.description = "No token." return exc; } //načítanie zoznamu skladov var stock = ''; res = dataResult(); ajaxUrl = baseUrl + 'v1/stock/list'; post = {}; exc = ajaxPost(ajaxUrl, res, post); if (exc.result == false) { //--- nejaká chyba addLogRow('Sklad', 1, exc.description); return exc; } else { if(res.data==null || res.data.length==0) { addLogRow('Sklad', 1, 'Zoznam skladov je prázdny.'); return exc; } addLogRow('Sklad', 0, stock); var html = '<div class="resr">'; html += '<table border="0" class="tb"><thead><tr><th>Názov</th></tr></thead><tbody>'; res.data.forEach(function (item, index) { html += '<td>' + item.Name + '</td></tr>'; }); html += '</tbody></table></div>'; _this.controls.ctlResultData.append(html); //použijeme prvý sklad stock = res.data[0].Name; } //načítanie dostupných filtrov použiteľných pre načítanie kariet res = dataResult(); ajaxUrl = baseUrl + 'v1/stock/stock-card/list-settings'; post = { stockCardsListSettingsArg: { StockName: stock } }; exc = ajaxPost(ajaxUrl, res, post); if (exc.result == false) { //--- nejaká chyba addLogRow('Filter', 1, exc.description); return exc; } else { addLogRow('Filter', 0); } //načítanie zoznamu skladových kariet res = dataResult(); ajaxUrl = baseUrl + 'v1/stock/stock-card/list'; post = { stockCardsListArg: { LoadSettings: { PageSize: 10, //počet záznamov na stránku PageIndex: 0, //index stránky (tzv. zero based) Filters: {}, // prípadné filtre Sort: {} // prípadné triedenie }, StockOrStockGroupName: stock, } }; exc = ajaxPost(ajaxUrl, res, post); if (exc.result == false) { //--- nejaká chyba addLogRow('Karty', 1, exc.description); return exc; } else { if(res.data==null || res.data.Items==null || res.data.Items.length==0){ addLogRow('Karty', 1, 'Zoznam kariet je prázdny.'); return exc; } addLogRow('Karty', 0); var html = '<div class="resr">'; html += '<table border="0" class="tb"><thead><tr><th>IDNum</th><th>Číslo</th><th>Názov</th><th class="right">Cena 1 s DPH</th></tr></thead><tbody>'; res.data.Items.forEach(function (item, index) { html += '<tr><td>' + item.IDNum + '</td>'; html += '<td>' + item.Number + '</td>'; html += '<td>' + item.Name + '</td>'; html += '<td class="right">' + item.PricesInfo.PriceWithVAT1 + '</td></tr>'; }); html += '</tbody></table></div>'; _this.controls.ctlResultData.append(html); } return exc; }; function addLogRow(header, type, message) { var h = header,m = message, c; if (type != 0) { c = 'reserr'; } else { c = 'resok'; m = m==null || m.length==0 ? 'OK' : m; } _this.controls.ctlResultData.append('<div class="resr">'+h+': <span class="'+c+'">'+m+'</span></div>'); } function getUrl() { var urlBase = $(Application.controls.selAddress).val(); if ( urlBase == '' || ( !urlBase.startsWith('http:') && ! urlBase.startsWith('https:') ) ) { urlBase = 'http://' + urlBase; } if ( ! urlBase.endsWith('/') ) { urlBase = urlBase + '/'; } return urlBase; } function ajaxGet(ajaxurl, rfResult, jdata, processdata) { var exc = myException(''); if (!processdata) { processdata = false; } if (!jdata) { jdata = null; } else { jdata = JSON.stringify(jdata); } try { $.ajax({ type: 'GET', cache: false, async: false, dataType: 'json', contentType: 'application/json; charset=utf-8', url: ajaxurl, processData: processdata, data: jdata, headers: {'userData': Application.token}, success: function (data, textStatus, xhr) { dataResultGet(data, rfResult); if (rfResult.result == false && rfResult.errNumber === 2) { // chyba užívateľ nie je prihlásený } Application.token = xhr.getResponseHeader('userData'); exc.result = true;//--- default je true if (rfResult.result == false) { exc.result = false; exc.errNumber = rfResult.errNumber; exc.description = rfResult.description; } }, error: function (xhr, exception, errorThrown) { exc = z_GetAjaxException(xhr, exception, errorThrown); } }); } catch (error) { } return exc; } function ajaxPost(ajaxurl, rfResult, jdata, processdata) { var exc = myException(''); if (!processdata) { processdata = false; } if (!jdata) { jdata = null; } try { $.ajax({ type: 'POST', cache: false, async: false, dataType: 'json', contentType: 'application/json; charset=utf-8', url: ajaxurl, processData: processdata, data: JSON.stringify(jdata), headers: {'userData': Application.token}, success: function (data, textStatus, xhr) { dataResultGet(data, rfResult); if (rfResult.result == false && rfResult.errNumber === 2) { // chyba užívateľ nie je prihlásený } Application.token = xhr.getResponseHeader('userData'); exc.result = true;//--- default je true if (rfResult.result == false) { exc.result = false; exc.errNumber = rfResult.errNumber; exc.description = rfResult.description; } }, error: function (xhr, exception, errorThrown) { exc = z_GetAjaxException(xhr, exception, errorThrown); } }); } catch (error) { } return exc; } function ajaxHtml(ajaxurl, rfResult, callType, jdata) { var exc = myException(''); if (!callType) { callType = 'GET'; } try { $.ajax({ type: callType, url: ajaxurl, cache: false, async: false, dataType: 'html', contentType: 'text/html; charset=utf-8', processData: false, data: JSON.stringify(jdata), headers: {'userData': Application.token}, success: function (data, textStatus, xhr) { rfResult.html = data; Application.token = xhr.getResponseHeader('userData'); exc.result = true; }, error: function (xhr, exception, errorThrown) { exc = z_GetAjaxException(xhr, exception, errorThrown); } }); } catch (error) { } return exc; } /* --- Support methods --- */ function myException(descr, msg, errNum, res) { //exception object return { result: !res ? false : res, errNumber: !errNum ? 0 : errNum, message: !msg ? '' : msg, description: !descr ? '' : descr }; }; function dataResult() { //data result object return { result: false, errNumber: 0, description: '', data: null }; }; function dataResultGet(data, rfResult) {//rfResult musí byť inicializovaný pomocou 'dataResult' rfResult.result = data.result; rfResult.errNumber = data.errNumber; rfResult.description = data.description; rfResult.data = data.data; } function z_GetAjaxException(jqXHR, exception, errorThrown) { var exc = myException(); if (jqXHR.status === 0) { exc = myException('Server webovej služby je v tejto chvíli nedostupný.', '', 111); } else if (jqXHR.status == 404) { exc = myException('Metóda pre spracovanie požiadavky nebola nájdená.', '', 404); } else if (jqXHR.status == 500) { exc = myException('Interná chyba servera webovej služby.', '', 500); } else if (exception === 'parsererror') { exc = myException('Chyba pre spracovaní JSON dát zo servera.', '', 900); } else if (exception === 'timeout') { exc = myException('Čas pre spracovanie požiadavky vypršal.', '', 901); } else if (exception === 'abort') { exc = myException('Asynchrónne volanie bolo prerušené.', '', 902); } else { exc = myException('Neznáma chyba.<br/>' + jqXHR.statusText, '', 99); } return exc; } window.Application = Application; window.Application.init(); })(Zepto); </script> </body> </html>
Príklad: Prihlásenie používateľa do webovej služby
Url: http://address:port/v1/user/login
Požiadavka:
{
"userLoginArg": {
"UserName":"system",
"Password":"8750320f04a57f4c97edd992d67b8a2d65426abc"
}
}
Odpoveď:
{
"data": {
"BranchName": null,
"DocumentName": "Systémový používateľ",
"GUID": "RAUQE3WAEFBR5Z6J7N2ONCXWVCYCJGZZJNL7KPQL",
"PasswordType": 0,
"ShortName": null,
"UserIDNum": 1,
"UserName": "system"
},
"description": "",
"errNumber": 0,
"result": true
}{
"stockCardsListArg": {
"LoadSettings": {
"PageSize": 20,
"Filters": [
{
"BookColumnID": 27,
"Values": [
"\\eMenu\\"
],
"ConditionType": 10
}
],
"Sort": []
},
"GetFileRepository": true
}
}{"orderReceivedAddArg":{{
"OrderReceived": {
"RecordGUID": "e6ddf4f4-adc8-4193-92e1-967dbebec8c1",
"BranchName": "",
"BusinessPartner": {
"Address": {
"City": "Bratislava",
"Postal_Code": null,
"Region": null,
"Street": "Poštová 1",
},
"BranchName": null,
"Email": null,
"IdentificationNumber": null,
"IdentificationNumberTax": null,
"IdentificationNumberVat": null,
"Name": "Ján novák, spol. s.r.o",
"Person": null,
"PhoneNumber": "0905/123456"
},
"DateDelivery": null,
"DateReservation": null,
"DateTimeEvidence": null,
"DocumentTotal": {
"ExchangeRate": 0,
"FCCode": null,
"PriceTotal": 1580,
"Rounding": 0,
"VatRates": {
"R1": 10,
"R2": 5,
"R3": 0,
"Standard": 20
},
"VatTotals": {
"BaseR1": 1000,
"BaseR2": 0,
"BaseR3": 0,
"BaseStandard": 400,
"BaseZero": 0,
"VatR1": 100,
"VatR2": 0,
"VatR3": 0,
"VatStandard": 80
}
},
"DocumentType": "Objednávka",
"Notice": null,
"Number": "PP-240003",
"NumberExternal": null,
"OrderState": "Nová objednávka",
"PersonOrdered": null,
"PersonRegistered": null,
"ShippingInfo": null,
"UserAdd": null,
"UserLastUpdate": null,
"Items": [
{
"Amount": 200,
"AmountUnitOther": 0,
"BarCode": null,
"CashRegisterCode": null,
"DateTime": null,
"DiscountPercent": 0,
"IDNum_Stock": 2,
"IDNum_StockCard": 298,
"IDNum_StockCardVariant": 0,
"Name": "Tyčinky",
"Notice": null,
"Number": "2310",
"PriceWithVAT": 0,
"PriceWithVATUnit": 2.4,
"PriceWithVATWithoutDiscount": 0,
"PriceWithVATWithoutDiscount_Unit": 0,
"PriceWithoutVAT": 0,
"PriceWithoutVATUnit": 0,
"Unit": "ks",
"UnitOther": null,
"VariantName": "",
"VatRate": 10,
"AmountReserved": null,
},
{
"Amount": 1000,
"AmountUnitOther": 0,
"BarCode": null,
"CashRegisterCode": null,
"DateTime": null,
"DiscountPercent": 0,
"IDNum": 0,
"IDNum_Stock": 2,
"IDNum_StockCard": 320,
"IDNum_StockCardVariant": 0,
"Name": "Žuvačky",
"Notice": null,
"Number": "2330",
"PriceWithVAT": 0,
"PriceWithVATUnit": 1.1,
"PriceWithVATWithoutDiscount": 0,
"PriceWithVATWithoutDiscount_Unit": 0,
"PriceWithoutVAT": 0,
"PriceWithoutVATUnit": 0,
"Unit": "ks",
"UnitOther": null,
"VariantName": null,
"VatRate": 10,
"AmountReserved": null,
}
]
}
}}{
"receiveNoteAddArg": {
"ReceiveNote": {
"BranchName": null,
"BusinessPartner": {
"Address": {
"City": "Bešeňová",
"Country": null,
"CountryISOCode": null,
"Street": null
},
"IdentificationNumber": null,
"IdentificationNumberTax": null,
"IdentificationNumberVat": null,
"Name": "EXALOGIC, s.r.o"
},
"DateDocument": null,
"HasAmountStockIn": 0,
"IDNum": 0,
"MovementDocumentType": "P-Tuzemsko",
"Notice": null,
"Number": "P-2200003",
"NumberDeliveryNote": null,
"NumberExternal": "as1",
"NumberOrder": null,
"PersonRecipient": null,
"PersonRegistered": null,
"RecordGUID": "9962c0eb-a4cd-46af-ad76-55f539d823d2",
"Settled": false,
"StockIDNum": 0,
"StockName": "Hlavný sklad",
"UserAdd": null,
"UserLastUpdate": null,
"DocumentTotal": {
"ExchangeRate": 0,
"FCCode": null,
"PriceTotal": 30,
"Rounding": 0,
"VatRates": {
"R1": 10,
"R2": 5,
"R3": 0,
"Standard": 23
},
"VatTotals": {
"BaseR1": 0,
"BaseR2": 0,
"BaseR3": 0,
"BaseStandard": 24.39,
"BaseZero": 0,
"VatR1": 0,
"VatR2": 0,
"VatR3": 0,
"VatStandard": 5.61
}
},
"Items": [
{
"Amount": 5,
"AmountUnitOther": 0,
"BarCode": null,
"CashRegisterCode": null,
"DateTime": null,
"DiscountPercent": 0,
"ForeignCurrency": false,
"IDNum": 0,
"IDNum_Stock": 2,
"IDNum_StockCard": 252,
"IDNum_StockCardVariant": 0,
"Name": "7 Up sklo 0,25 l",
"Notice": null,
"Number": "2003",
"PriceWithVAT": 20,
"PriceWithVATUnit": 4,
"PriceWithVATWithoutDiscount": 0,
"PriceWithVATWithoutDiscount_Unit": 0,
"PriceWithoutVAT": 0,
"PriceWithoutVATUnit": 0,
"Unit": "ks",
"UnitOther": null,
"VariantName": null,
"VatRate": 23,
"AmountStockIn": 0,
"SerialNumbers": null
},
{
"Amount": 10,
"AmountUnitOther": 0,
"BarCode": null,
"CashRegisterCode": null,
"DateTime": null,
"DiscountPercent": 0,
"ForeignCurrency": false,
"IDNum": 0,
"IDNum_Stock": 2,
"IDNum_StockCard": 291,
"IDNum_StockCardVariant": 0,
"Name": "Arašidy 100 gr",
"Notice": null,
"Number": "2301",
"PriceWithVAT": 10,
"PriceWithVATUnit": 1,
"PriceWithVATWithoutDiscount": 0,
"PriceWithVATWithoutDiscount_Unit": 0,
"PriceWithoutVAT": 0,
"PriceWithoutVATUnit": 0,
"Unit": "ks",
"UnitOther": null,
"VariantName": null,
"VatRate": 23,
"AmountStockIn": 0,
"SerialNumbers": null
}
]
}
}
}