Pirkimų, pardavimų dokumento detalios informacijos sukūrimas, koregavimas, trynimas
POST https://api.manorivile.lt/client/v2
ApiKey
: Privalomas. Unikalus API raktas išduodamas užsakant paslaugąContent-Type
: Privalomas. Kokiu formatu paduodami parametrai ir duomenys (request):
application/xml
application/json
Accept
: Neprivalomas. Gražinamo rezultato (response) formatas
application/xml
(default)application/json
(veikia nuo Manorivile-Gateway-1.1.0 versijos)method
: EDIT_I07
params
:
oper
:
I
- naujo dokumento sukūrimasU
- dokumento koregavimasD
- dokumento ištrynimasdata
: perduodami duomenys:
I07
- Detali eilutė, parduodamos prekės, paslaugos informacija (i07) Vienu metu veiksmai atliekami tik su vienu įrašu.
Pirmi 7 ApiKey simboliai (pvz USERABC.JQKPG1d7Pkjxj37ObsgdfEkvfEfvF1oL7h7UMOLo
-> USERABC
) yra vartotojo vardas Rivile GAMA programoje, kuriuo bus kuriami ar koreguojami įrašai.
Koreguoti galima tik to paties API vartotojo sukurtas operacijas. Teisės valdomos parametru RGI_ALL_EDIT
Jei naudojate du tagus <KIEKIS_U>
ir <BAR_KODAS>
, tuomet nereikia naudoti šių tagų: <I07_KODAS_US>
, <I07_KIEKIS>
, <I07_FRAKCIJA>
, <I07_KODAS_US_P>
, <I07_KODAS_US_A>
, <I07_ALT_KIEKIS>
, <I07_ALT_FRAK>
Naudojant tag'ą <obj_ser_order>
yra galimybė prekių likučius nurašyti kitu objektu ir serija, nei buvo paduota. Detaliau čia
Yra galimybė dirbti su papildomomis dimensijomis, jeigu tokios naudojamos Rivile GAMA sistemoje. Tam naudojami tag'ai <I49_DIM01> ... <I49_DIM15>
Jegu dirbama su rinkinias, tuomet <I07_KODAS_OS>
atitinka rinkinio kodą. Taip pat yra galimybė rinkinio kodą paduoti dalimis - tam naudojami tag'ai <K45_RIN01> ... <K45_RIN15>
. Jeigu bus paduotI ir <I07_KODAS_OS>
ir <K45_RIN01> ... <K45_RIN15>
tag'ai, aukštesnį prioritetą turi <I07_KODAS_OS>
. Rinkinio kodo iš anksto kurti nereikia, jis bus sukurtas automatiškai.
Norint atnaujinti rinkinio kodą, naujas kodas pateikiamas naudojant tag'ą <I07_KODAS_OS>
. Jeigu norima naują rinkinio kodą paduoti dalimis - būtina paduoti tuščią tagą <I07_KODAS_OS>
ir tada atskiras dalis naudojant tag'us <K45_RIN01> ... <K45_RIN15>
.
pvz application/xml
:
<body>
<method>EDIT_I07</method>
<params>
<oper>I</oper>
</params>
<data>
<I07>
<I07_KODAS_PO>010R00000008</I07_KODAS_PO>
<I07_TIPAS>1</I07_TIPAS>
<I07_KODAS_IS>01</I07_KODAS_IS>
<I07_KODAS>004</I07_KODAS>
<I07_KAINA_BE>1000.0000</I07_KAINA_BE>
<I07_PVM>210.00</I07_PVM>
<I07_SUMA>1000.00</I07_SUMA>
<I07_KODAS_US>VNT</I07_KODAS_US><!--Pagrindinio matavimo vieneto kodas-->
<I07_KIEKIS>1</I07_KIEKIS><!--Kiekis pagrindiniu matavimo vienetu-->
<I07_FRAKCIJA>1</I07_FRAKCIJA><!--Pagrindinio matavimo vnt. frakcija-->
<I07_KODAS_US_P>VNT</I07_KODAS_US_P><!--Pajamavimo alternatyvus matavimo vieneto kodas-->
<I07_KODAS_US_A>VNT</I07_KODAS_US_A><!--Pardavimo alternatyvus matavimo vieneto kodas-->
<I07_ALT_KIEKIS>1</I07_ALT_KIEKIS><!--Alternatyvaus matavimo kiekis-->
<I07_ALT_FRAK>1</I07_ALT_FRAK><!--Alternatyvaus kiekio frakcija-->
<I49_DIM01>MEN1</I49_DIM01> <!--Jeigu naudojamos dimensijos -->
<K45_RIN01>RINKINYS</K45_RIN01> <!--Jeigu naudojami rinkiniai -->
</I07>
</data>
</body>
pvz application/json
:
{
"method": "EDIT_I07",
"params": {
"oper": "I"
},
"data": {
"I07": {
"I07_KODAS_PO": "010R00000008",
"I07_TIPAS": "1",
"I07_KODAS_IS": "01",
"I07_KODAS": "004",
"I07_KAINA_BE": "1000.0000",
"I07_PVM": "210.00",
"I07_SUMA": "1000.00",
"I07_KODAS_US": "VNT",
"I07_KIEKIS": "1",
"I07_FRAKCIJA": "1",
"I07_KODAS_US_P": "VNT",
"I07_KODAS_US_A": "VNT",
"I07_ALT_KIEKIS": "1",
"I07_ALT_FRAK": "1",
"I49_DIM01": "MEN1",
"K45_RIN01": "RINKINYS"
}
}
}
Grąžinama informacija XML formate tarp tag'ų <RET_DOK>..</RET_DOK>
.
pvz:
<?xml version='1.0' encoding='UTF-8' ?>
<RET_DOK>
<I07>
<I07_KODAS_PO>010R00000008</I07_KODAS_PO>
<I07_EIL_NR>1</I07_EIL_NR>
<I07_TIPAS>1</I07_TIPAS>
<I07_KODAS>004</I07_KODAS>
<I07_PAV>Kompiuteris</I07_PAV>
<I07_KODAS_TR></I07_KODAS_TR>
<I07_KODAS_IS>01</I07_KODAS_IS>
<I07_KODAS_OS></I07_KODAS_OS>
<I07_KODAS_OS_C></I07_KODAS_OS_C>
<I07_SERIJA></I07_SERIJA>
<I07_KODAS_US>VNT</I07_KODAS_US>
<I07_KIEKIS>1</I07_KIEKIS>
<I07_FRAKCIJA>1</I07_FRAKCIJA>
<I07_KODAS_US_P>VNT</I07_KODAS_US_P>
<I07_KODAS_US_A>VNT</I07_KODAS_US_A>
<I07_ALT_KIEKIS>1</I07_ALT_KIEKIS>
<I07_ALT_FRAK>1</I07_ALT_FRAK>
<I07_VAL_KAINA>0.0000</I07_VAL_KAINA>
<I07_SUMA_VAL>0.00</I07_SUMA_VAL>
<I07_KAINA_BE>1000.0000</I07_KAINA_BE>
<I07_KAINA_SU>0.0000</I07_KAINA_SU>
<I07_NUOLAIDA>0.00</I07_NUOLAIDA>
<I07_ISLAIDU_M>1</I07_ISLAIDU_M>
<I07_ISLAIDOS>0.00</I07_ISLAIDOS>
<I07_ISLAIDOS_PVM>0.00</I07_ISLAIDOS_PVM>
<I07_MUITAS_M>1</I07_MUITAS_M>
<I07_MUITAS>0.00</I07_MUITAS>
<I07_MUITAS_PVM>0.00</I07_MUITAS_PVM>
<I07_AKCIZAS_M>1</I07_AKCIZAS_M>
<I07_AKCIZAS>0.00</I07_AKCIZAS>
<I07_AKCIZAS_PVM>0.00</I07_AKCIZAS_PVM>
<I07_MOKESTIS>1</I07_MOKESTIS>
<I07_MOKESTIS_P>21.00</I07_MOKESTIS_P>
<I07_PVM>210.00</I07_PVM>
<I07_SUMA>1000.00</I07_SUMA>
<I07_PAR_KAINA>0.0000</I07_PAR_KAINA>
<I07_PAR_KAINA_N>0.0000</I07_PAR_KAINA_N>
<I07_MOK_SUMA>1.00</I07_MOK_SUMA>
<I07_SAVIKAINA>0.00</I07_SAVIKAINA>
<I07_GALIOJA_IKI>3999-01-01T00:00:00</I07_GALIOJA_IKI>
<I07_PERKELTA>1</I07_PERKELTA>
<I07_ADDUSR>B1NOONQ</I07_ADDUSR>
<I07_USERIS>B1NOONQ</I07_USERIS>
<I07_R_DATE>2020-02-29T21:53:09</I07_R_DATE>
<I07_SERTIFIKATAS></I07_SERTIFIKATAS>
<I07_KODAS_KT></I07_KODAS_KT>
<I07_KODAS_K0></I07_KODAS_K0>
<I07_KODAS_KV></I07_KODAS_KV>
<I07_KODAS_VZ></I07_KODAS_VZ>
<I07_ADD_DATE>2020-02-29T21:53:09</I07_ADD_DATE>
<I07_APSKRITIS></I07_APSKRITIS>
<I07_SANDORIS></I07_SANDORIS>
<I07_SALYGOS></I07_SALYGOS>
<I07_RUSIS></I07_RUSIS>
<I07_SALIS></I07_SALIS>
<I07_MATAS></I07_MATAS>
<I07_SALIS_K></I07_SALIS_K>
<I07_MASE>0.000</I07_MASE>
<I07_INT_KIEKIS>0.000</I07_INT_KIEKIS>
<I07_PVM_VAL>0.00</I07_PVM_VAL>
<I07_KODAS_KS></I07_KODAS_KS>
<I07_PVM_SKOL>1</I07_PVM_SKOL>
<I49_DIM01>MEN1</I49_DIM01>
<K45_RIN01>RINKINYS</K45_RIN01>
</I07>
</RET_DOK>
Klaida paduodant duomenis / SQL sintaksės klaidos / kitos DB klaidos
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id>14433105830.985e6bc0.1584207405894</id>
<durationMs>115</durationMs>
<errorMessage>nepavyko įvykdyti metodo</errorMessage>
<errors>
<error>
<data><I07><I07_KODAS_PO>010R00000026</I07_KODAS_PO><I07_KODAS_US>VNT</I07_KODAS_US><I07_KIEKIS>1</I07_KIEKIS><I07_TIPAS>1</I07_TIPAS><I07_KODAS_US_P>VNT</I07_KODAS_US_P><I07_FRAKCIJA>1</I07_FRAKCIJA><I07_ALT_KIEKIS>1</I07_ALT_KIEKIS><I07_KAINA_BE>1000.0000</I07_KAINA_BE><I07_ALT_FRAK>1</I07_ALT_FRAK><I07_KODAS>004</I07_KODAS><I07_SUMA>1000.00</I07_SUMA><I07_KODAS_US_A>VNT</I07_KODAS_US_A><I07_KODAS_IS>01</I07_KODAS_IS><I07_PVM>210.00</I07_PVM></I07></data>
<dataErrors>
<dataError>
<tag>I07_KODAS_PO</tag>
<code>16064</code>
<message>Galima koreguoti tik savo operacijas</message>
</dataError>
</dataErrors>
</error>
</errors>
</RET_DOK>
Blogai nurodytas adresas / neteisingai nurodytas API raktas / nenurodytas API raktas / pasibaigęs API rakto galiojimas, pvz
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>Api key is not valid</errorMessage>
</RET_DOK>
Nepaleistas MANO Rivile Gateway arba kitaip sutrikusi jo veikla
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>Rivile GAMA database is unavailable. Please check if the gateway is running and is set up correctly.</errorMessage>
</RET_DOK>
Laiku nebuvo gautas Rivile API užklausos atsakymas, pavyzdžiui, apkrauta GAMA duomenų bazė
<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
<id/>
<durationMs>0</durationMs>
<errorMessage>No response received from client gateway</errorMessage>
</RET_DOK>
Bendrinė sistemos klaida, pvz
<?xml version='1.0' encoding='UTF-8'?>
<Map>
<timestamp>2020-02-05T12:34:26.890+0000</timestamp>
<status>500</status>
<error>Internal Server Error</error>
<message>No message available</message>
<path>/v2</path>
</Map>
Koregavimas, trynimas vyksta pagal lentelės raktą (Primary Key)
Koreguojant informaciją bus koreguojami tik perduodami laukai.
pvz koregavimas:
<body>
<method>EDIT_I07</method>
<params>
<oper>U</oper>
</params>
<data>
<I07>
<I07_KODAS_PO>010R00000008</I07_KODAS_PO>
<I07_EIL_NR>1</I07_EIL_NR>
<I07_KAINA_BE>800.0000</I07_KAINA_BE>
</I07>
</data>
</body>
pvz trynimas:
<body>
<method>EDIT_I07</method>
<params>
<oper>D</oper>
</params>
<data>
<I07>
<I07_KODAS_PO>010R00000008</I07_KODAS_PO>
<I07_EIL_NR>1</I07_EIL_NR>
</I07>
</data>
</body>
<body>
<method>EDIT_I07</method>
<params>
<oper>U</oper>
</params>
<data>
<I07>
<I07_KODAS_PO>010R00000008</I07_KODAS_PO>
<I07_EIL_NR>1</I07_EIL_NR>
<I07_KODAS_OS></I07_KODAS_OS>
<K45_RIN01>RINKINYS</K45_RIN01>
<K45_RIN02>RINKINYS2</K45_RIN02>
</I07>
</data>
</body>
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'ApiKey: uUCz6UD.sKVrjaWRDJAH1c7l4qL2nOoN2K0jARkvuHDdYsss',
'Content-Type: application/json',
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
"method": "EDIT_I07",
"params": {
"oper": "I"
},
"data": {
"I07": {
"I07_KODAS_PO": "010R00000008",
"I07_TIPAS": "1",
"I07_KODAS_IS": "01",
"I07_KODAS": "004",
"I07_KAINA_BE": "1000.0000",
"I07_PVM": "210.00",
"I07_SUMA": "1000.00",
"I07_KODAS_US": "VNT",
"I07_KIEKIS": "1",
"I07_FRAKCIJA": "1",
"I07_KODAS_US_P": "VNT",
"I07_KODAS_US_A": "VNT",
"I07_ALT_KIEKIS": "1",
"I07_ALT_FRAK": "1"
}
}
}');
$response = curl_exec($ch);
curl_close($ch);
Pirkimo/Pardavimo dokumentų detalios eilutės
Laukas | Tipas | Aprašymas | Pastabos naudojant EDIT metodus |
---|---|---|---|
I07_KODAS_PO | C(12) | Operacijos numeris | Privalomas (metode EDIT_I06_FULL neaktualus) |
I07_EIL_NR | N(6) | Eilutės numeris operacijoje | Privalomas tik EDIT_I07 metode, kai oper=U,D |
I07_TIPAS | N(1) | Tipas:1-prekė,2-paslauga,3-kodas,4-pranesimas,5-aprašym | |
I07_KODAS | C(12) | Prekės,paslaugos,... kodas | Privalomas** |
I07_PAV | C(40) | Prekės,paslaugos,... pavadinimas | |
I07_KODAS_TR | C(12) | Transporto dokumento numeris | |
I07_KODAS_IS | C(12) | Padalinio kodas | Privalomas |
I07_KODAS_OS | C(12) | Objekto kodas | Arba rinkinio kodas, jei programoje dirbama su rinkiniais |
I07_KODAS_OS_C | C(12) | Pardavimo centro kodas | |
I07_SERIJA | C(12) | Serija | |
I07_KODAS_US | C(12) | Pagrindinio matavimo vieneto kodas | |
I07_KIEKIS | N(14) | Kiekis pagrindiniu matavimo vienetu | |
I07_FRAKCIJA | N(4) | Pagrindinio matavimo vnt. frakcija. Mūsų sistemoje matavimo vienetas turi frakciją, t.y. į kiek dalių galima smulkinti kiekį. PVZ: KG i07_kiekis=1000, i07_frakcija=1000 dešimtainėje išraiškoje, tai yra 1,000Kg(vienas kilogramas), t.y. frakciinis kiekis dalinamas iš frakcijos. | |
I07_KODAS_US_P | C(12) | Pardavimo alternatyvus matavimo vieneto kodas | |
I07_KODAS_US_A | C(12) | Pajamavimo alternatyvus matavimo vieneto kodas | |
I07_ALT_KIEKIS | N(14) | Alternatyvaus matavimo kiekis | |
I07_ALT_FRAK | N(4) | Alternatyvaus kiekio frakcija | |
I07_VAL_KAINA | N(18,4) | Kaina valiuta | Tik valiutinio dokumento atveju |
I07_SUMA_VAL | N(18,2) | Valiutos suma | Tik valiutinio dokumento atveju |
I07_KAINA_BE | N(12,4) | Kaina be PVM | |
I07_KAINA_SU | N(12,4) | Kaina su PVM | |
I07_NUOLAIDA | N(6,2) | Nuolaidos procentas | |
I07_ISLAIDU_M | N(1) | Ar skaičiuoti nuo išlaidų PVM:0-ne,1-taip | Nurodoma kai norima, kad automatiškai perduodant išlaidų sumą būtų paskaičiuotas ir PVM |
I07_ISLAIDOS | N(12,2) | Išlaidos | |
I07_ISLAIDOS_PVM | N(12,2) | PVM nuo išlaidų | |
I07_MUITAS_M | N(1) | Ar skaičiuoti nuo muitų PVM:0-ne,1-taip | Nurodoma kai norima, kad automatiškai perduodant muito sumą būtų paskaičiuotas ir PVM |
I07_MUITAS | N(12,2) | Muito suma | |
I07_MUITAS_PVM | N(12,2) | PVM nuo muito | |
I07_AKCIZAS_M | N(1) | Ar skaičiuoti nuo akcizo PVM:0-ne,1-taip | Nurodoma kai norima, kad automatiškai perduodant akcizo sumą būtų paskaičiuotas ir PVM |
I07_AKCIZAS | N(12,2) | Akcizas | |
I07_AKCIZAS_PVM | N(12,2) | PVM nuo akcizas | |
I07_MOKESTIS | N(1) | Ar skaičiuoti PVM:0-ne,1-taip | |
I07_MOKESTIS_P | N(6,2) | PVM procentas | |
I07_PVM | N(12,2) | PVM suma | |
I07_SUMA | N(12,2) | Suma be PVM | |
I07_PAR_KAINA | N(12,4) | Pardavimo kaina sistemoje | |
I07_PAR_KAINA_N | N(12,4) | Nauja pardavimo kaina | |
I07_MOK_SUMA | N(12,2) | Eilė | |
I07_SAVIKAINA | N(12,2) | Savikainos suma | |
I07_GALIOJA_IKI | T(8) | Prekės galiojimo terminas | |
I07_PERKELTA | N(1) | Perkėlimo požymis:1-neperkelta,2-perkelta | |
I07_ADDUSR | C(12) | Kas sukūrė | |
I07_USERIS | C(12) | Kas koregavo | |
I07_R_DATE | T(8) | Koregavimo laikas | |
I07_SERTIFIKATAS | C(12) | Sertifikato kodas | |
I07_KODAS_KT | C(12) | Sutarties numeris | |
I07_KODAS_K0 | C(12) | Sutarties priedas | |
I07_KODAS_KV | C(12) | Krovinio kodas | |
I07_KODAS_VZ | C(12) | Vežimo kodas | |
I07_ADD_DATE | T(8) | Eilutės sukūrimo laikas | |
I07_APSKRITIS | C(3) | Apskritis | |
I07_SANDORIS | C(3) | Sandoris | |
I07_SALYGOS | C(3) | Pristatymo sąlygos | |
I07_RUSIS | C(3) | Rūšis | |
I07_SALIS | C(3) | Šalis gavėja | |
I07_MATAS | C(3) | Mato vnt. | |
I07_SALIS_K | C(3) | Kilmės šalis | |
I07_MASE | N(14,3) | Intrastate masė | |
I07_INT_KIEKIS | N(14,3) | Intrastate kiekis | |
I07_PVM_VAL | N(18,2) | PVM valiuta | Tik valiutinio dokumento atveju |
I07_KODAS_KS | C(12) | Tiekėjo kodas | |
I07_APRASYMAS1 | C(150) | Aprašymas 1 | |
I07_APRASYMAS2 | C(150) | Aprašymas 2 | |
I07_APRASYMAS3 | C(150) | Aprašymas 3 | |
I07_KODAS_KL | C(12) | PVM klasifikatoriaus kodas | nuo v109.0100 |
I07_PVM_SKOL | N(1) | PVM traukti į skolą | nuo v113.0000 |
I07_GALIOJA_IKI2 | T(8) | Galioja 2 | nuo v122.0000 |
kiekis_u | N(12,3) | Alternatyvus kiekis dešimtainėje išraiškoje | |
bar_kodas | C(12) | Barkodas | |
suma_val_su | N(12,2) | Valiutinė suma su PVM | Jei įvedant naują įrašą perduodama ši reikšmė, tai viskas perskaičiuojama atsiremiant į šią reikšmę: Kainos, PVM, suma be PVM, valiutinė informacija. |
obj_ser_order | Likučių nurašymo tvarka. Sąlygą galima formuoti nurodant tik dvi kolonėles i17_kodas_os ir / arba i17_serija, pavyzdžiui, "i17_kodas_os, i17_serija", "i17_kodas_os desc, i17_serija asc", "i17_serija desc, i17_kodas_os asc" | *** | |
I49_DIM01, ... , I49_DIM15 | C(12) | Dimensijos | |
K45_RIN01, ... , K45_RIN15 | C(12) | Rinkiniai |
** jeigu naudojami laukai bar_kodas ir kiekis_u, tuomet eilutės kodas yra automatiškai užpildomas pagal barkodą ir kiekis išverčiamas iš dešimtainio kiekio į kiekius ir frakcijas. Jeigu naudojamas bar_kodas*, tuomet laukai I07_KODAS, I07_PAV, I07_KODAS_US nebūtina nurodyti - jie randami pagal barkodo informaciją.
Koreguojant įrašą (oper=U
) yra paduodamas kiekis (I07_ALT_KIEKIS arba kiekis_u) ir nepaduodama nei kainos, nei sumos, nei pvm (I07_KAINA_BE,I07_KAINA_SU,I07_SUMA,I07_SUMA_VAL,I07_PVM ,I07_PVM_VAL), tuomet sumos yra perskaičiuojamos pagal pakoreguotą kiekį ir esamas kainas.
*** Jeigu parametro reikšmė neperduodama, prekių likučiai nurašomi tiksliai su tokiu objektu ir serija, koks buvo perduotas. Perdavus reikšmę pirmiausiai tikrinamas prekės kiekis su perduotu objektu ir/ar serija. Jeigu toks kiekis nepakankamas, nurašomi likučiai su kitais objektais ir serijomis išlaikant parametre nurodyta rūšiavimo tvarką.