EDIT_I61_PERK

Aprašymas

POS operacijų perkėlimas.

Specifikacija

Address

POST https://api.manorivile.lt/client/v2

Header
  • 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)
Body
  • method : EDIT_I61_PERK
  • data: perduodami duomenys:
    • I61_KODAS_WW - POS operacijos numeris;
    • I61_KODAS_KK - POS kodas;
    • I61_DOK_NR - Kvito numeris;
    • OBJ_SER_ORDER - likučių pagal objektus ir serijas nurašymo eiliškumas;
    • APJUNGTI - požymis pardavimo operacijų apjungimui.

Vienu metu veiksmai atliekami tik su vienu dokumentu.

Pirmi 7 ApiKey simboliai (pvz USERABC.JQKPG1d7Pkjxj37ObsgdfEkvfEfvF1oL7h7UMOLo -> USERABC) yra vartotojo vardas Rivile GAMA programoje, kuriuo bus kuriami ar koreguojami įrašai.

Būtina perduoti arba POS operacijos numerį I61_KODAS_WW arba POS kodą I61_KODAS_KK ir kvito numerį I61_DOK_NR.

Jeigu POS aprašyme leidžiamas likučių nurašymas iš alternatyvių objektų ir serijų, naudojant tag'ą <obj_ser_order> galima nurodyti objektų ir serijų parinkimo eiliškumą, pvz.: 'i17_serija asc, i17_kodas_os desc'.

Pagal nutylėjimą kiekvienai perkeltai POS pardavimo operacijai kuriama nauja operacija pardavimų modulyje. Jei tag'o APJUNGTI reikšmė yra 1, prieš kuriant naują operaciją ieškoma jau esamos neperkeltos operacijos su identiškomis laukų reikšmėmis (I06_OP_TIP, I06_OP_DATA, I06_KODAS_KS, I06_KODAS_MS, I06_KODAS_SM, I06_KODAS_SS_M, I06_KODAS_ZN) ir tokią suradus pildoma esama operacija.

pvz application/xml:

<body>
    <method>EDIT_I61_PERK</method>
    <data>
        <I61>
            <I61_KODAS_WW>010R00000001</I61_KODAS_WW>
            <OBJ_SER_ORDER>i17_serija asc, i17_kodas_os desc</OBJ_SER_ORDER>
            <APJUNGTI>1</APJUNGTI>
        </I61>
    </data>
</body>

pvz application/json:

{
    "method": "EDIT_I61_PERK",
    "data": {
        "I61": {
            "I61_KODAS_WW": "010R00000001",
            "OBJ_SER_ORDER": "i17_serija asc, i17_kodas_os desc",
            "APJUNGTI": 1
        }
    }
}
Response (status 200 OK)

Grąžinama informacija XML formate tarp tag'ų <RET_DOK>..</RET_DOK>.

pvz response:

<RET_DOK>
    <I61>
        <I61_KODAS_WW>010R00000001</I61_KODAS_WW>
        <I61_KODAS_KK>1</I61_KODAS_KK>
        <I61_TIPAS>1</I61_TIPAS>
        <I61_DOK_NR>A00000000001</I61_DOK_NR>
        <I61_OP_DATA>2024-06-01T00:00:00</I61_OP_DATA>
        <I61_PERKELTA>2</I61_PERKELTA>
        ...
        <I62>
            <I62_KODAS_WW>010R00000001</I62_KODAS_WW>
            <I62_EIL_NR>1</I62_EIL_NR>
            <I62_EIL_NR_VD>1</I62_EIL_NR_VD>
            <I62_KODAS_PO>010R00000001</I62_KODAS_PO>
            <I62_EIL_NR_PO>1</I62_EIL_NR_PO>
            <I62_TIPAS>1</I62_TIPAS>
            ...
            <Anuliuota>0</Anuliuota>
        </I62>
    </I61>
</RET_DOK>
Response (status 400)

Klaida paduodant duomenis / SQL sintaksės klaidos / kitos DB klaidos, pvz:

<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
    <id/>
    <durationMs>345</durationMs>
    <errorMessage>Nepavyko įvykdyti metodo</errorMessage>
    <document/>
    <errors>
        <error>
            <data>&lt;I61>&lt;num_row>1&lt;/num_row>&lt;I61_KODAS_WW>010R00000002&lt;/I61_KODAS_WW>&lt;/I61></data>
            <dataErrors>
                <dataError>
                    <tag>I61_KODAS_WW</tag>
                    <code>19001</code>
                    <message>Toks operacijos kodas nerastas</message>
                </dataError>
            </dataErrors>
        </error>
    </errors>
</RET_DOK>
Response (status 401)

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>0</id>
    <durationMs>0</durationMs>
    <errorMessage>Api key is not valid</errorMessage>
</RET_DOK>
Response (status 502)

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>
Response (status 504)

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>
Response (status 500)

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>

PHP pvz

<?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, $payload);
$response = curl_exec($ch);
curl_close($ch);