Tartalomjegyzék

szamla_api_felulet

szamla_api_felulet gépi interface:

r17109 (commitolt)

a kliens egy JSON formátumú adatot küld a szervernek.

A rendszer elvileg elfogadja

példa egy tartalmilag hiányos, de egyébként helyes json hívásra GET metódus esetén

http://....../cgi-bin/index.cgi?json={"token":".....","dok":"szamla_api_felvesz","muvelet":"0"}

Charset encoding: UTF-8

a JSON adat egy hash, melynek kulcsai az alábbi jelentésekkel bírnak

mező tipus/érték jelentés
API hívás paraméterei
token string a klienst azonosító evir felhasználó tokenje (evir felhasználó jelszavának módosításakor kiíródik)
dok „szamla_api_felvesz” kötelező elem.
button „b_felvesz” kötelező elem.
számlázás paraméterei
szamla_tipus „előleg” vagy „gépi” Normál végszámla esetén a „gépi” tipust kell választani
muvelet: „0”, „M1”, „P1”, „M1P2”, „P1M2”, „P1M0” hogyan jöjjön létre a számla (lásd lentebb)
email_cim string(100) email cím „valami@example.com” formátumban
vevő partner adatai
partner_id szám partner_id
Ha a partner_id ismert, akkor elegendő csak azt megadni. Ha új partnerről van szó, akkor a következő mezők adhatóak meg a partner létrehozásához
partner_tipus: „cég” vagy „személy”
partner_nev: string(90) partner neve
partner_cim_orszag: string(2) ország kétbetűs kódja, (pontosan 2 karakter)
partner_cim_orszag_nev string ország megnevezése. Megegyezik az evir törzsadatai szerinti névvel (maximum 50 karakter)
partner_cim_varos string(40)
partner_cim_cim string(60) közterület neve. nem bontott cím esetén házszám stb. egyben
partner_cim_irszam string(10) irányítószám
partner_adoszam string(30) adószám
számla adatai következnek
arkat string árkategória (ha nincs megadva, akkor a partnerhez rendelt, vagy alapértelmezett árkategória lesz) ebből következik a számla pénzneme is
fizmod string fizetési mód, (beállítás szerinti hatással a teljdat, fizhat mezőkre) ha nincs megadva, alapértelmezett lesz)
teljdat dátum teljesítési dátum (ha nincs megadva, fizetési mód szerint lesz)
fizhat dátum fizetési határidő (ha nincs megadva, fizetési mód szerint lesz)
megjegyzes string Opcionális megjegyzés a számlára
nyelv string a bizonylat nyelve (ha nincs megadva, HU)
tetel_mezok tomb
A következő mezők a tetel_mezok tömbön belül többször is megadható hash adatszerkezete
tetel_tipusa „termék” vagy „szolgáltatás” vagy „előlegszámla” (kötelező)
tetel_bizonylatszam string A felhasználandó előlegszámla száma
előlegszámla esetén a további mezőket nem kell megadni.
tetel_forrasraktar string annak a raktárnak a kódja, ahonnan a terméket eladja. szolgáltatás (és előlegszámla) esetén nem kell megadni
tetel_cikkszam string a termék vagy szolgáltatás cikkszáma
tetel_menny szám az eladott mennyiség (pozitív szám)
tetel_netto szám nettó eladási egységár
tetel_megj string tételhez kapcsolódó megjegyzés szöveg (opcionális)
A következő adatokat akkor kell megadni, ha a szolgáltatás cikkszám még nem szerepel a cikktörzsben. termék esetén nem használható
tetel_cikk_rogzites „” vagy „szolg_fix” vagy „szolg_gen” Hogyan kell a cikkszámot rögzíteni
tetel_cikk_megnevezes string a cikk megnevezése
tetel_cikk_afa string az áfakulcsot azonosító szám vagy szöveg
tetel_cikk_megys string Mennyiségi egység
tetel_cikk_unit szám legkisebb mennyiség

muvelet: lehetséges értékei

Ezen értékek NEM MINDEN ESETBEN adhatóak meg. A megadható értékek a beállítások függvényében változnak, az alábbi táblázat szerint. Rosszul megadott esetben vagy hibaüzenet, vagy a beállítások szerinti működés történik.

muvelet email_ertesito modul installálva van Első példány emailben PDF csatolmány
0 mindegy mindegy mindegy
P1 mindegy mindegy mindegy
M1,M1P2 igen igen igen
P1M2 igen nem igen
P1M0 igen mindegy nem

nyelv: opcionális. A bizonylat ezen a nyelven fog létrejönni (ha ez engedélyezve van a konfigurációban)

arkat: opcionális. A „Törzsadatok/Cikkszámok/Árkategóriák/Árkategória-lista” menüből elérhető lista „Kategória” oszlopából választható érték, de csak ha a „Tipus”=„értékesítési”. Így lehet konkrétan a számla pénznemét is meghatározni. Az árkategóriának pénznemen felüli jelentősége akkor van, ha a tételeknél nem ad meg „tetel_netto” egységárat, hanem az árkézpzés szabályai szerint (pl. árkategóriához tartozó) áron fog számlázni.

fizmod: opcionális. A „Törzsadatok/Pénzügyi/Fizetési módok” menüben elérhető fizetési módok közül, a „Fizetési mód neve” oszlop értékei közül választhat azon feltételekkel, hogy: „Számlázáskor használható”. Az esetleges „Készpénzes” jelölésű fizetési módhoz ha kapcsolódik pénztárbizonylat készítés, az ezen az interface-en keresztül nem érhető el, ezért ilyen fizetési módok használata a rendszer jelen változatában kerülendő.

fizhat, teljdat: dátum mező formátuma „YYYY-MM-DD” (aka ÉÉÉV-HÓ-NP) értéküket befolyásolhatja a fizetési módnál lévő beállítások, de használható vagy létrehozható olyan fizetési mód ami nem befolyásolja.


pelda JSON adat

{
        "token":"gnfdkjgjnkjnfdshjfdk",
        "dok":"szamla_api_felvesz",
        "button":"b_felvesz",
        "szamla_tipus":"gépi",
        "nyelv":"HU",
        "muvelet":"0",

        "tetel_mezok":[
                {
                        "tetel_netto":2430,
                        "tetel_megj":"XXL kék",
                        "tetel_tipusa":"termék",
                        "tetel_cikkszam":"c2",
                        "tetel_menny":3,
                        "tetel_forrasraktar":"r1"
                }
        ],
        "partner_id":4,
        "megjegyzes":"Példa számla",
        "arkat":"ar1",
        "fizmod":"átutalás",
        
}

Visszatérési értékek:

Bizonyos esetekben egy JSON válaszüzenet készül. Sikeres számla rögzítés esetén, nyomtatás nélkül a lentihez hasonló.

Amire számítani lehet, hogy a lenti struktúrában a „message” listában ha az uzenethez tartozó „level” értéke „SysInfo” akkor ott a „message” üzenet „szamlaszam=SZ2015000110” formában az egyelőség jel után a létrehozott bizonylat (számla) számát fogja tartalmazni. Ha ilyen üzenet nincs, akkor feltételezhető, hogy nem jött létre a bizonylat.

[
   {
      "choice":{
        // nem dokumentált feature adatai
      },
      "framename":"main",
      "message":[
         {
            "level":"Info",
            "time":"2015.10.30 21:59:38.67",
            "message":"Számla rögzítve"
         },
         {
            "level":"SysInfo",
            "time":"2015.10.30 21:59:38.67",
            "message":"szamlaszam=SZ2015000110"
         },
      ],
      "szamlaszam":"2015000110",
      "status":"OK",
      "result":null
   }
]

Egy példa hibaüzenet formátuma:

A „message” struktúrája megegyezik a sikeres esettel. Azonban a „level” kulcs értékei sokfélék lehetnek.

Hibás esetekben:

[
   {
      "choice":{
        // nem dokumentált
      },
      "framename":"main",
      "message":[
         {
            "level":"Fatal",
            "time":"2020.02.30 22:11:52.31",
            "message":"Rendszerhiba: myexception (user): váratlan hibaüzenet  at ../include/dok/szamla/szamla_api_felulet.pm line 1 captured by kernel"
         }
      ],
      "result":[
         {
            "info":{
               "errormessage":null
            },
            "name":"error"
         }
      ]
   }
]

Egyéb eredmények lehetnek ezenkívül még:

Még nem létező szolgáltatás rögzítése az API-n keresztül

r14791 (commited; WIP)

Lehetőség van arra, hogy olyan szolgáltatás kerüljön az API-n keresztül kiszámlázásra, amelynek az adatai még nem szerepelnek a cikktörzsben. Ekkor a számlázandó tétel adatai között meg kell adni azokat a kötelező adatokat is, amelyek egyébként a cikktörzsből érkeznének. Az adatokat a tétel adatai között kell megadni.

  tetel_cikk_rogzites: "szolg_fix" vagy "szolg_gen" a rögzítés módja szerint
  tetel_cikk_megnevezes: A szolgáltatás megnevezése
  tetel_cikk_afa: A szolgáltatáshoz tartozó áfa
  tetel_cikk_megys: A szolgáltatás mennyiségi egysége (pl. darab, óra)
  tetel_cikk_unit: A legkisebb egység, aminek a többszöröse a mennyiség lehet. (általában pl 1)

A szolgáltatás rögzítéséhez ezenkívül felhasználja a tetel_cikkszam mezőt is, ami egyébként is kötelezően megadandó a számla készítéséhez.

A mezők értelmezése

Példa adat a tetel_mezok értékére.

        ...
        "tetel_mezok":[
                {
                        "tetel_netto":10000,
                        "tetel_megj":"Kiszállással együtt",
                        "tetel_tipusa":"szolgáltatás",
                        "tetel_cikkszam":"c5",
                        "tetel_menny":2,
                        "tetel_cikk_rogzites":"szolg_fix",
                        "tetel_cikk_megnevezes","Karbantartás
                        "tetel_cikk_afa":"27.00",
                        "tetel_cikk_megys":"óra",
                        "tetel_cikk_unit":1,
                }
        ],
        ...

PLANS: