4D Komunikator

Datum kreiranja: 01.03.2018.

Datum zadnje izmjene: 16.03.2022. - Dodan novi API endpoint za informacija o fiskaliziranom računu

Općenito o 4D Komunikatoru

4D Komunikator je aplikacija namijenjena za ispostavljanje dijelova funkcionalnosti 4D Wand sustava na Internet-u, bez potrebe za stalnom IP adresom servera na kojem se 4D Wand sustav nalazi.
Komunikacija se ostvaruje korištenjem WebSocket tehnologije (više informacija), tako što se aplikacija spaja i trajno održava vezu s prethodno definiranim WebSocket serverom koji služi kao relay za komunikaciju između 4D Komunikatora i vanjskih sustava kojima je potrebna funkcionalnost 4D Wand sustava.

Primjena 4D Komunikatora

Za sada 4D Komunikator omogućava sljedeće funkcionalnosti:

import novih dokumenata s Web shop-a u realnom vremenu

dohvat informacija o zalihama pojedinih artikala u realnom vremenu

dohvat IOS-a

dohvat IOS-a partnera

import roba

import partnera

import osoba

dohvat informacija o fiskaliziranom računu

Postavke 4D Komunikatora

Postavke Komunikatora nalaze se u 4D Wand sustavu: Modul 4D Wand IMC --> Setiranje parametara 4D Wand IMC-a --> Kartica Dodatne postavke IMC-a --> Postavke 4D Wand IMC komunikatora.

1.Web socket kanal: Naziv kanala za komunikaciju (npr. 4D_Komunikator_MojePoduzece)

2.Web socket adresa: Adresa servera na kojem se nalazi WebSocket relay (npr. moj.relay.hr)

3.Web socket port: Port za komunikaciju

4.Web socket sigurnost: Korištenje sigurne (wss://) ili nesigurne (ws://) komunikacije

5.Zabrana rada 4D Wand Komunikatora u svim poduzećima: Uključivanjem ove opcije će se ugasiti svi aktivni komunikatori na serveru gdje se nalazi 4D Wand

Nakon što su postavljene postavke komunikatora potrebno je pozvati opciju Kreiraj i pošalji 4D Wand IMC kako bi se u tablici Parameters pronašli upisani parametri potrebni za 4D Komunikator (slika ispod).

Od trenutno aktivnog 4D_Wand.ini napraviti kopiju 4D_Wand_Komunikator.ini u kojeg treba postaviti adekvatnog AutoUsera.
Nakon prethodno odrađenih radnji potrebno je pokrenuti 4D Komunikator iz putanje C:\4D\Wand\sys\wkom.exe sa triggerom INI=4D_Wand_Komunikator.ini

U Task scheduler treba postaviti novi task koji će pokrenuti prethodno navedeni program kako bi se pokretanjem schedulera npr. svakih 5 minuta provjeravalo da li je Komunikator upaljen, jer se u slučaju izrade Backup-a putem Backup4D aplikacije i osvježavanjem nove verzije komunikatori zaustavljaju automatski.

Opis funkcionalnosti dostupnih putem 4D komunikatora

1.Provjeri zalihu
Poziva se komunikator s porukom u kojoj se nalazi lista ID-a artikala koji se nalaze u košari (u JSON formatu) kako bi se povratno vratila poruka s informacijom o trenutnoj zalihi, također u Json formatu.

2.Import narudžbe u 4D Wand nakon uspješno poslane narudžbe
Nakon što se narudžba zapiše u tablice Narudbas i Kosaras i pošalje se e-mail s potvrdom narudžbe poziva se komunikator s porukom da se odradi import narudžbe na identičan način kao i što se poziv vrši kroz Task scheduler, ali se na ovaj način Task scheduler za import narudžbi više nije potreban.

API za 4D Komunikator

4D Wand IMC web shop sadrži API-je za direktnu komunikaciju sa 4D Wand-om preko 4D Komunikatora. Radi se o pripremljenim upitima koji se šalju POST zahtjevom.
Sadržaj zahtjeva (eng. request body) sadrži definirani JSON objekt. Sukladno tome, u zaglavlju treba definirati odgovarajući tip zahtjeva (Content-Type:application/json).

Autentifikacija preko tokena (JWT)

Za korištenje određenih API-ja, potrebno se autentificirati te dohvatiti Token (JWT) koji će služiti kao sredstvo autorizacije. Dohvaćeni token će se postavljati u Headers zahtjeva (request) pod ključem Authorization s vrijednosti Bearer *token_value*. Dohvaćeni token vrijedi 6 dana od trenutka njegovog generiranja.

Na URL adresu, na kojoj se nalazi 4D Wand IMC web aplikacija, treba poslati zahtjev (POST) za dohvat tokena:

https://adresa/Wkom/GetToken

U body requesta potrebno je poslati Json objekt s podacima za autentifikaciju:

1.Username: korisničko ime iz 4D Wanda

2.Password: lozinku korisnika iz 4D Wanda

3.Hash: SHA256 hash polja „WandSifra“ koja se nalazi u web.config 4D Wand IMC web aplikacije

Primjer Json objekta:
 

{
  "username":"Luka Pejaković",
  "password":"luka",
  "hash":"BC86B829A94FD2CD2ED25F3D691F35720BC654RI4F8FIUMEC88D044E75FDFB5F"
}
 

Očekivani odgovor (response) je Json objekt s generiranim Tokenom.
 Primjer uspješnog odgovora:
 

{
  "Token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6Ikx1a2EgUGVqYWtvdmnEhyIsIlBXRCI6InV1dSIsImh0dHA6Ly"
}
 

U slučaju nekakve poteškoće ili greške, kao odgovor će doći Json objekt sa svojstvima tipom greške (Status) i opisom (StatusText).
 Primjer odgovora greške:
 

{
  "Status": "ERROR",
  "StatusText": "Invalid data. Check your JSON data."
}
 

API za automatsko učitavanje narudžbe u 4D Wand - NOVO

Nakon što se narudžba zapiše u bazu (tablice: Narudzbas i Kosaras) tada možemo pozvati API koji će automatski učitati jednu ili više narudžbi koje nisu učitane u 4D Wand.

Za učitavanje narudžbe u 4D Wand, potrebno je poslati GET zahtjev na API:

https://adresa/Wkom/UcitajNarudzbu

U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi prethodno poglavlje) i jednostavno poslati zahtjev.

U slučaju uspješnog zahtjeva doći će odogovor:

{ "Status":"SUCCESS" }

U slučaju neuspješnog zahtjeva doći će odogovor s opisom greške:

{
  "Status":"ERROR",
  "StatusText":"OPIS_GREŠKE"
}
 

API za dohvat zalihe artikla - NOVO

Zalihu jednog ili više artikla možemo dobiti direktno iz 4D Wand-a. Odrađuje se preko predefiniranog API-ja koji vrši komunikaciju preko 4D Komunikatora.

Za dohvat zaliha, potrebno je poslati POST zahtjev na API:

https://adresa/Wkom/ProvjeraZalihe

U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi prethodno poglavlje) i jednostavno poslati zahtjev.

U sadržaj zahtjeva protebno je kreirati JSON objekt koji sadrži listu Robe s željenim RobaID identifikatorima.

Ako je sve ispravno kreirano, kao odgovor dobijemo listu JSON objekta gdje svaki sadrži RobaID, Raspolozivo, Rezervirano i Stanja. Suma(Σ) Raspolozivo i Rezervirano daje ukupnu Zalihu.

Napomena: Pozivom ovog API zahtjeva, automatski se ažuriraju podaci u bazi podataka, što podrazumijeva zaliha artikla u tablici [Robas] i stanje po skladištima u tablici [Stanjas].

UPOZORENJE:
 API za dohvat zalihe artikla preko 4D Komunikatora služi za dohvat zalihe željenog artikla ili seta artikala u realnom vremenu i nije predviđen dohvat zaliha svih artikala koji se eksportiraju na web.
Budući da je dohvat u realnom vremenu te se informacije se dohvaćaju direktno iz 4D Wanda, sam dohvat informacija svih artikala bio bi poprilično zahtjevan za sustav pogotovo ako se poziva u kratkim vremenskim intervalima.
Primarna svrha API-a za dohvat zaliha artikla je zamišljena da se izvršava na korisnički zahtjev (npr. prilikom zaključivanja narudžbe, provjera u košari ili na detalju artikla) za željene artikle, a ne automatikom za sve artikle.

Primjer:

Želimo saznati zalihu za artikle s ID 6338 i 1987.

{
    "robe":
    [
        {"robaid":6338},
        {"robaid":1987}
    ]
}
 

Kao odgovor (eng. response) dobijemo Raspoloživu i Rezerviranu količinu za dotične artikle sa Stanjima.

[
  {
    "RobaId": 6338,
    "Raspolozivo": 99,
    "Rezervirano": 11,
    "Stanja": [
    {
        "StanjeID": 79,
        "RobaID": 6338,
        "SkladisteID": 4604,
        "Skladiste": "0000101",
        "Zaliha": 33,
        "Rezervirano": 4,
        "Raspolozivo": 29,
        "SkladisnoMjesto": "X12",
        "KolicinaMin": 1,
        "KolicinaMax": 5,
        "KolicinaOpt": 3
    },
    {
        "StanjeID": 80,
        "RobaID": 6338,
        "SkladisteID": 5215,
        "Skladiste": "0000110",
        "Zaliha": 77,
        "Rezervirano": 7,
        "Raspolozivo": 70,
        "SkladisnoMjesto": null,
        "KolicinaMin": 0,
        "KolicinaMax": 0,
        "KolicinaOpt": 0
    }
    ]
  },
  {
    "RobaId": 1987,
    "Raspolozivo": 223,
    "Rezervirano": 10,
    "Stanja": [
    {
        "StanjeID": 2,
        "RobaID": 1987,
        "SkladisteID": 4604,
        "Skladiste": "0000101",
        "Zaliha": 200,
        "Rezervirano": 4,
        "Raspolozivo": 196,
        "SkladisnoMjesto": "bup",
        "KolicinaMin": 0,
        "KolicinaMax": 0,
        "KolicinaOpt": 0
    },
    {
        "StanjeID": 21,
        "RobaID": 1987,
        "SkladisteID": 5215,
        "Skladiste": "0000110",
        "Zaliha": 33,
        "Rezervirano": 6,
        "Raspolozivo": 27,
        "SkladisnoMjesto": "Bip",
        "KolicinaMin": 0,
        "KolicinaMax": 0,
        "KolicinaOpt": 0
    }
    ]
  }
]
 

API za dohvat IOS-a

Za dohvat IOS-a potraživanja, potrebno je poslati POST zahtjev na API:

https://adresa/Wkom/IOS

U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi prethodno poglavlje) i jednostavno poslati zahtjev.

Potrebno pravo 4D Wand korisnika: 306 - Statistike: IOS po periodima

 Ako je token ispravan te ako su upisani validni podaci 4D Wand korisnika kod dohvata tokena, kao odgovor očekujemo Json objekte „IOS“ i „Info“. Json objekt „IOS“ sadrži objekte „NasloviKolona“ i „Statistika“. Nadalje, objekt „NasloviKolona“ sadrži naslove koje je korisnik definirao u 4D Wandu, a objekt „Statistika“ je lista objekata koji sadrže naziv, šifru te iznose komitenata. Objekt „Info“ sadrži datim, vrijeme kad je generirana statistika te aktivnu godinu iz koje su podaci statistike.

 Primjer odgovora:
 

{
    "IOS": {
        "NasloviKolona": {
        "Sifra": "Šifra komitenta",
        "Naziv": "Naziv komitenta",
        "Iznos01": "Nedospjelo 16.02.2021",
        "Iznos02": "do 5 dana 11.02.2021",
        "Iznos03": "do 15 dana 01.02.2021",
        "Iznos04": "do 25 dana 22.01.2021",
        "Iznos05": "do 30 dana 17.01.2021",
        "Iznos06": "do 45 dana 02.01.2021",
        "Iznos07": "do 60 dana 18.12.2020",
        "Iznos08": "do 90 dana 18.11.2020",
        "Iznos09": "do 120 dana 19.10.2020",
        "Iznos10": "> 120 dana 19.10.2020",
        "Iznos11": "U kašnjenju",
        "Iznos12": "Ukupan dug"
        },
        "Statistika": [
        {
            "Sifra": "1312",
            "Naziv": "Primjer d.o.o.",
            "Iznos01": 0,
            "Iznos02": 0,
            "Iznos03": 454.9,
            "Iznos04": 0,
            "Iznos05": 0,
            "Iznos06": 0,
            "Iznos07": 0,
            "Iznos08": 0,
            "Iznos09": 0,
            "Iznos10": 0,
            "Iznos11": 454.9,
            "Iznos12": 454.9
        },
        ...
        ]
    },
    "Info": {
        "DateCached": "16.02.2021",
        "TimeCached": "11:25:19",
        "ActiveYear": "2021"
    }
}
 

Podaci statistike se generiraju samo prvi put po pozivu API. U slučaju da ih je potrebno osvježiti potrebno je generirati nove podatke. Za isto je potrebno definirati dodatni parametar akcija.
 Primjer URL s parametrom:

https://adresa/Wkom/IOS?akcija=X

Umjesto X potrebno je postaviti broj akcije koju želimo izvršiti. Moguće vrijednosti akcije su:
 

1.Dohvaćanje samo Info objekta već generirane statistike

2.Generiranje*** i dohvat nove statistike

3.Dohvat već generirane statistike

*** - Generiranje nove statistike može trajati do nekoliko minuta (ovisno o količini podataka)

API za dohvat IOS-a partnera

Za dohvat IOS-a partnera na određenom kontu, potrebno je poslati zahtjev (POST) na API:

https://adresa/Wkom/IOSPartnera?konto=XXX&partnerid=YYY

Parametri:

XXX - željeni broj konta (obavezan)

YYY - željeni id partnera

Upozorenje: Ako se ne pošalje id partnera, dohvatiti će se IOS-i svih partnera.

U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi prethodno poglavlje) i poslati zahtjev.

 Potrebno pravo 4D Wand korisnika: 306 - Statistike: IOS po periodima

 Ako je token ispravan te ako su upisani ispravni podaci 4D Wand korisnika kod dohvata tokena, kao odgovor očekujemo Json objekt koji sadrži IOS-e partnera i Info. Json objekt „IOSPartnera“ sadrži listu objekata „PartnerId“ i „Dokumenti“. Objekt „Info“ sadrži datum, vrijeme kad je generirana statistika te aktivnu godinu iz koje su podaci statistike.

 Napomena: Za dohvat podataka prethodno je potrebno generirati statistike 4D Wanda.

 Primjer odgovora:
 

{
    "IOSPartnera": [
        {
            "PartnerId": 711,
            "Dokumenti": [
                {
                    "Datum": "2021-05-20",
                    "Vez_dok": "441113511-710",
                    "Loc_dok": "3178",
                    "Klasa_dok": "IFAN",
                    "Opis_knjizenja": "Izl.rn. 3178-5C-91",
                    "Valuta": "2021-06-08",
                    "Iznos": 209.98,
                    "Otvoreno": 209.98,
                    "Iznos_dev": 209.98,
                    "Otvoreno_dev": 209.98,
                    "Tecaj": 1,
                    "Deviza": "001"
                },
                {
                    "Datum": "2021-05-20",
                    "Vez_dok": "441113550-710",
                    "Loc_dok": "3442",
                    "Klasa_dok": "IFAN",
                    "Opis_knjizenja": "Izl.rn. 3442-5C-91",
                    "Valuta": "2021-06-08",
                    "Iznos": 261.59,
                    "Otvoreno": 261.59,
                    "Iznos_dev": 261.59,
                    "Otvoreno_dev": 261.59,
                    "Tecaj": 1,
                    "Deviza": "001"
                },
                {
                    "Datum": "2021-05-20",
                    "Vez_dok": "441113551-710",
                    "Loc_dok": "3443",
                    "Klasa_dok": "IFAN",
                    "Opis_knjizenja": "Izl.rn. 3443-5C-91",
                    "Valuta": "2021-06-08",
                    "Iznos": 211.96,
                    "Otvoreno": 211.96,
                    "Iznos_dev": 211.96,
                    "Otvoreno_dev": 211.96,
                    "Tecaj": 1,
                    "Deviza": "001"
                }
            ]
        }
    ],
    "Info": {
        "DateCached": "02.06.2021",
        "TimeCached": "14:27:06",
        "ActiveYear": "2021"
    }
}
 

API za import roba

Za import (insert/update) roba, potrebno je poslati zahtjev (POST) na API:

https://adresa/Wkom/ImportRobe

U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi poglavlje) i poslati zahtjev.

U sadržaju zahtjeva potrebno je staviti JSON objekt sa sljedećim svojstvima:

akcija - akcija izvršavanja zahtjeva (INSERT ili UPDATE)

tablica - tablica za import (robe)

robe - lista roba za import

U tablici niže su navedena sva svojstva koja se mogu ili trebaju definirati na robi za uspješan import:

Br.

Naziv polja

Tip polja

Opis polja

1.

robaId**

NUMERIC(6)

ID robe

2.

naziv*

STRING(<=80)

Naziv robe

3.

tip

STRING(1)

Tip robe:
0 – roba
1 – proizvod
2 – usluga
3 – vozilo
4 – objekt

4.

grupa*

STRING(<=20)

Šifra grupe kojoj roba pripada – broj u grupi će se dodijeliti sam

5.

katbroj

STRING(<=30)

Kataloški broj robe

6.

barkod

NUMERIC(13)

Barkod robe

7.

a1

STRING(<=5)

Šifra atributa 1 definiranog u 4D Wandu

8.

a2

STRING(<=5)

Šifra atributa 2 definiranog u 4D Wandu

9.

a3

STRING(<=5)

Šifra atributa 3 definiranog u 4D Wandu

10.

a4

STRING(<=5)

Šifra atributa 4 definiranog u 4D Wandu

11.

jm*

STRING(<=3)

Kratica jedinice mjere robe definirane u 4D Wandu, npr. kom, kg,…

12.

tarifa*

DECIMAL

Porezna tarifa, npr. upisuje se samo 25 ako se PDV na tu robu obračunava po poreznoj stopi od 25%.

13.

vpcijena

DECIMAL

Planska veleprodajna cijena

14.

mpcijena

DECIMAL

Planska maloprodajna cijena

15.

proizvodjacId

NUMERIC(6)

ID proizvođača robe

16.

neaktivan

NUMERIC(1)

Roba van upotrebe.
1 – van upotrebe
0 – nije van upotrebe

17.

cjenik1

NUMERIC(1)

0/1 - isključena/uključena kolona

18.

cjenik2

NUMERIC(1)

0/1 - isključena/uključena kolona

19.

cjenik3

NUMERIC(1)

0/1 - isključena/uključena kolona

20.

cjenik4

NUMERIC(1)

0/1 - isključena/uključena kolona

21.

cjenik5

NUMERIC(1)

0/1 - isključena/uključena kolona

22.

cjenik6

NUMERIC(1)

0/1 - isključena/uključena kolona

23.

cjenik7

NUMERIC(1)

0/1 - isključena/uključena kolona

24.

cjenik8

NUMERIC(1)

0/1 - isključena/uključena kolona

25.

opis

STRING

Napomena artikla u 4D Wandu

* Polja obavezna za INSERT
 ** Polja obavezna za UPDATE
 Napomena: Vrijednosti polja koja se ne žele mijenjati potrebno je izostaviti iz JSON-a ili postaviti NULL

Ako je token ispravan te ako su ispravno popunjeni podaci za import, kao odgovor očekujemo Json objekt koji sadrži status i listu objekata sa svojstvima IDX (redosljedni broj robe), RobaId (jedinstveni identifikator robe) i Status (tekst uspješnosti importa).

Primjer odgovora:

{
    "Status": "OK",
    "Robe": [
        {
            "Idx": 1,
            "RobaId": 55,
            "Status": "OK"
        },
        {
            "Idx": 2,
            "RobaId": 56,
            "Status": "OK"
        },
        {
            "Idx": 3,
            "RobaId": 57,
            "Status": "OK"
        }
    ]
}
 

API za import partnera

Za import (insert/update) partnera, potrebno je poslati zahtjev (POST) na API:

https://adresa/Wkom/ImportPartneri

U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi poglavlje) i poslati zahtjev.

U sadržaju zahtjeva potrebno je staviti JSON objekt sa sljedećim svojstvima:

akcija - akcija izvršavanja zahtjeva (INSERT ili UPDATE)

tablica - tablica za import (partneri)

partneri - lista partnera za import

U tablici niže su navedena sva svojstva koja se mogu ili trebaju definirati na partneru za uspješan import:

Br.

Naziv polja

Tip polja

Opis polja

1.

partnerId**

NUMERIC(6)

ID partnera

2.

centralaId

NUMERIC(6)

ID centrale

3.

OIB

STRING(<=20)

OIB partnera

4.

naziv*

STRING(<=80)

Naziv partnera

5.

email

STRING(<=500)

Email partnera. Može se unijeti više email adresa odvojenih zarezom unutar liste u json-u

6.

telefon

STRING(<=30)

Broj telefona partnera

7.

grupapartnera

STRING(<=6)

Šifra grupe partnera koja je definirana u 4D Wand-u

8.

grad*

STRING(<=80)

Potrebno je upisati naziv grada, poštanski broj ili šifru grada koja je definirana u 4D Wand-u

9.

neaktivan

NUMERIC(1)

Partner van upotrebe.
1 – van upotrebe
0 – nije van upotrebe

10.

fizickaosoba

NUMERIC(1)

Upisuje se ako je partner fizička osoba:
0 – Nije fizička osoba
1 – Je fizička osoba

11.

poslovnica

NUMERIC(1)

Upisuje se ako je partner poslovnica:
0 – Nije poslovnica
1 – Je poslovnica

12.

kupac

NUMERIC(1)

Upisuje se ako je partner kupac:
0 – Nije kupac
1 – Je kupac

13.

dobavljac

NUMERIC(1)

Upisuje se ako je partner dobavljač:
0 – Nije dobavljač
1 – Je dobavljač

14.

proizvodjac

NUMERIC(1)

Upisuje se ako je partner proizvođač:
0 – Nije proizvođač
1 – Je proizvođač

15.

webkupac

NUMERIC(1)

Upisuje se ako je partner web kupac:
0 – Nije web kupac
1 – Je web kupac

16.

opis

STRING(<=80)

Prvi red opisa

17.

opis2

STRING(<=80)

Drugi red opisa

18.

adresa

STRING(<=120)

Prvi red adrese

19.

adresa2

STRING(<=120)

Drugi red adrese

20.

trgovackipredstavnik

STRING(<=6)

Šifra trgovačkog predstavnika definiranog u 4D Wand-u

21.

rabatdobavljac

DECIMAL

Rabat dobavljača ako je navedeni komitent označen kao dobavljač

22.

rabatkupac

DECIMAL

Rabat kupca ako je navedeni komitent označen kao kupac

23.

rokplacanjadobavljac

NUMERIC

Broj dana za rok plaćanja ako je komitent dobavljač

24.

rokplacanjakupac

NUMERIC

Broj dana za rok plaćanja ako je komitent kupac

25.

nacinplacanja

STRING(<=30)

Šifra načina plaćanja koja je definirana u 4D Wand-u

26.

nacinotpreme

STRING(<=6)

Šifra načina otpreme u 4D Wand-u

27.

mjestotroska

STRING(<=6)

Šifra mjesta troška u 4D Wand-u

28.

d1

STRING(<=6)

Šifra prve dimenzije u 4D Wand-u

29.

d2

STRING(<=6)

Šifra druge dimenzije u 4D Wand-u

30.

d3

STRING(<=6)

Šifra treće dimenzije u 4D Wand-u

* Polja obavezna za INSERT
 ** Polja obavezna za UPDATE
 Napomena: Vrijednosti polja koja se ne žele mijenjati potrebno je izostaviti iz JSON-a ili postaviti NULL

Ako je token ispravan te ako su ispravno popunjeni podaci za import, kao odgovor očekujemo Json objekt koji sadrži status i listu objekata sa svojstvima IDX (redosljedni broj partnera), PartnerId (jedinstveni identifikator partnera) i Status (tekst uspješnosti importa).

Primjer odgovora:

{
    "Status": "OK",
    "Partneri": [
        {
            "Idx": 1,
            "PartnerId": 11,
            "Status": "OK"
        },
        {
            "Idx": 2,
            "PartnerId": 12,
            "Status": "OK"
        },
        {
            "Idx": 3,
            "PartnerId": 13,
            "Status": "OK"
        }
    ]
}
 

API za import osoba

Za import (insert/update) osoba, potrebno je poslati zahtjev (POST) na API:

https://adresa/Wkom/ImportOsobe

U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi poglavlje) i poslati zahtjev.

U sadržaju zahtjeva potrebno je staviti JSON objekt sa sljedećim svojstvima:

akcija - akcija izvršavanja zahtjeva (INSERT ili UPDATE)

tablica - tablica za import (osobe)

osobe - lista osoba za import

U tablici niže su navedena sva svojstva koja se mogu ili trebaju definirati na osobi za uspješan import:

Br.

Naziv polja

Tip polja

Opis polja

1.

osobaId**

NUMERIC(6)

ID osobe

2.

partnerId*

NUMERIC(6)

ID partnera

3.

ime

STRING(<=30)

Ime osobe

4.

prezime*

STRING(<=30)

Prezime osobe

5.

email

STRING(<=500)

Email osobe. Može se unijeti više email adresa odvojenih zarezom unutar liste u json-u

6.

telefon

STRING(<=12)

Broj telefona osobe

7.

grad*

STRING(<=20)

Potrebno je upisati naziv grada, poštanski broj ili šifru grada koja je definirana u 4D Wand-u

8.

neaktivan

NUMERIC(1)

Osoba van upotrebe.
1 – van upotrebe
0 – nije van upotrebe

* Polja obavezna za INSERT
 ** Polja obavezna za UPDATE
 Napomena: Vrijednosti polja koja se ne žele mijenjati potrebno je izostaviti iz JSON-a ili postaviti NULL

Ako je token ispravan te ako su ispravno popunjeni podaci za import, kao odgovor očekujemo Json objekt koji sadrži status i listu objekata sa svojstvima IDX (redosljedni broj osobe), OsobaId (jedinstveni identifikator osobe) i Status (tekst uspješnosti importa).

Primjer odgovora:

{
    "Status": "OK",
    "Osobe": [
        {
            "Idx": 1,
            "OsobaId": 123,
            "Status": "OK"
        },
        {
            "Idx": 2,
            "OsobaId": 124,
            "Status": "OK"
        },
        {
            "Idx": 3,
            "OsobaId": 125,
            "Status": "OK"
        }
    ]
}
 


API endpoint za dohvat fiskaliziranog računa - NOVO

Za dohvat detalja o fiskaliziranom računu, potrebno je poslati zahtjev (GET) na API endpoint:

https://adresa/Wkom/RacunInfo?jir=XXX&zki=YYY

Parametri:

XXX - jedinstveni identifikator računa

YYY - zaštitni kod izdavatelja

U zaglavlje zahtjeva potrebno je samo postaviti autorizacijski token (vidi poglavlje) i poslati zahtjev.

Ako je token ispravan te ako su ispravno upisani svi podaci, kao odgovor očekujemo JSON objekt koji sadrži informacije o fiskaliziranom računu.

Primjer odgovora:

{
    "poslovnica": {
        "sifra": "0000107",
        "naziv": "Maloprodaja Zagreb",
        "ulica": "Dane Duića",
        "kucnibroj": "5"
    },
    "datumizdavanja": "2024-08-12T06:06:28",
    "brojracuna": "123456-7-890",
    "jir": "befdbae9-63b1-4e2c-bcb5-33ff997c5a55",
    "zki": "65cfb68c4ca646458455eaa6049cacc8",
    "ukupaniznos": {
        "osnovica": 5.26,
        "porez": 0,
        "ukupno": 6.58,
        "stopeporeza": [
            {
                "stopa": 25.0,
                "osnovica": 5.26,
                "iznos": 1.32
            }
        ]
    },
    "stavke": [
        {
            "sifra": "0101001",
            "naziv": "Artikl za prodaju",
            "kataloskibroj": "AP-147",
            "barkod": "9876543210369",
            "kolicina": 1.0,
            "povratnanaknada": 0,
            "cijena": 12.25,
            "iznos": {
                "osnovica": 19.60,
                "porez": 4.90,
                "ukupno": 24.50,
                "stopaporeza": 25.0
            }
        }
    ]
}
 


*** Napomena - upute se mogu razlikovati u slikama i tekstu od sadržaja koji se nalazi na vašem računalu, ovisno o inačici 4D Wanda koju trenutno koristite. Posljedica je to stalnog razvoja i nadogradnje 4D Wanda, a koji iz objektivnih razloga dinamikom ne prati i nadogradnja modula Upute. Posebno se to odnosi na zamjenu službene valute RH kuna (kn) u euro (€) i njen prikaz u uputama.