EDIT_I06_FULL

Aprašymas

Naujo pirkimo, pardavimo dokumento sukūrimas (kartu su detaliomis eilutėmis).

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_I06_FULL
  • params:
    • errorAction - klaidos parametras nurodantis koks veiksmas bus atliekas įvykus klaidai pardavimo metu, kai yra sukuriamas dokumentas (I06) ir gaunama klaida vykdant veiksmus su I07, I08, I13 operacijomis. Parametras gali turėti tris EXIT, CONTINUE, ROLLBACK (default reikšmė). Reikšmė turi būti paduodama dydžiosiomis raidėmis!
  • data: perduodami duomenys:
    • I06 - Pardavimo/pirkimo antraštė (i06)
      • I07 - Detali eilutė, parduodamos prekės, paslaugos informacija (neprivalomas) (i07)
      • I08 - Mokėjimo terminai (neprivalomas) (i08)
      • I13 - Dokumento apmokėjimo informacija (neprivalomas) (i13)

errorAction reikšmė turi būti paduodama didžiosiomis raidėmis!

errorAction reikšmių aprašymai:

Reikšmė Aprašymas
ROLLBACK (default reikšmė) Įvykus klaidai tolimesnės procedūros nebus vykdamos, bus ištrinamas dokumentas (I06) ir grąžinama klaida. Klaidos statusas 400
EXIT Įvykus klaidai tolimesnės procedūros nebus vykdamos, bus grąžinamas sukurtas dokumentas (I06) ir klaidų sąrašas. Klaidos statusas 207
CONTINUE Įvykus klaidai procedūros bus vykdamos iki pabaigos, o klaidos dedamos į sąrašą. Grąžinamas sukurtas dokumentas (I06) ir klaidų sąrašas pabaigoje. Klaidos statusas 207

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.

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>

Jeigu bus klaida bet kuriame įraše (status 400) - bus nesukuriamas dokumentas iš viso, gražinama klaida ties įrašu, kuriame buvo klaida kartu su klaidos kodais!

Tag'as NUORODA skirtas perduoti nuordą į katalogą arba failą.

Jeigu metodui perduodamos detalios eilutės, 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.

pvz application/xml:

<body>
    <method>EDIT_I06_FULL</method>
    <data>
        <I06>
            <I06_OP_TIP>51</I06_OP_TIP>
            <I06_DOK_NR>DOK-002</I06_DOK_NR>
            <I06_OP_DATA>2020-01-30</I06_OP_DATA>
            <I06_DOK_DATA>2020-01-30</I06_DOK_DATA>
            <I06_MOK_SUMA>2</I06_MOK_SUMA>
            <I06_MOK_DOK>xxx</I06_MOK_DOK>
            <NUORODA>https://www....lt/nuoroda</NUORODA>
            <I49_DIM01>MEN1</I49_DIM01> <!--Jeigu naudojamos dimensijos -->
            <I07>
                <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><!--Pardavimo alternatyvus matavimo vieneto kodas-->
                <I07_KODAS_US_A>VNT</I07_KODAS_US_A><!--Pajamavimo 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>
            <I07>
                <I07_TIPAS>1</I07_TIPAS>
                <I07_KODAS_IS>01</I07_KODAS_IS>
                <I07_KODAS>005</I07_KODAS>
                <I07_KAINA_BE>250.0000</I07_KAINA_BE>
                <I07_PVM>105.00</I07_PVM>
                <I07_SUMA>500.00</I07_SUMA>
                <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>
            <I08>
                <I08_EIL_NR>1</I08_EIL_NR>
                <I08_MOK_P>100.00000</I08_MOK_P>
                ...
            </I08>
            <I13>
                <I13_KODAS_SS>2551</I13_KODAS_SS>
                <I13_SUMA>1815.00</I13_SUMA>
                ...
            </I13>
        </I06>
    </data>
</body>

pvz application/json:

{
    "method": "EDIT_I06_FULL",
    "params": {
        "errorAction": "CONTINUE"
    },
    "data": {
        "I06": {
            "I06_KODAS_KS": "121411842",
            "I06_KODAS_XS": "PVM",
            "I06_OP_TIP": 51,
            "I06_DOK_NR": "DOK-007",
            "I06_OP_DATA": "2020.04.22",
            "I06_DOK_DATA": "2020.04.22",
            "I06_MOK_SUMA": 2,
            "I06_MOK_DOK": "DOK-007",
            "NUORODA": "https://www....lt/nuoroda",
            "I49_DIM01": "MEN1",
            "I07":[
                {
                    "I07_TIPAS": 1,
                    "I07_KODAS_IS": "01",
                    "I07_KODAS": "004",
                    "I07_KAINA_BE": 1000.0000,
                    "I07_KAINA_SU": 1210.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"
                },
                {
                    "I07_TIPAS": 1,
                    "I07_KODAS_IS": "01",
                    "I07_KODAS": "005",
                    "I07_KAINA_BE": 250.0000,
                    "I07_KAINA_SU": 302.5000,
                    "I07_PVM": 52.50,
                    "I07_SUMA": 250.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
                }
            ],
            "I08":[
                {
                    "I08_EIL_NR": 1,
                    "I08_MOK_P": 100.00000,
                    "I08_MOK_D": 10
                }
            ],
            "I13":[
                {
                    "I13_KODAS_SS": "2721",
                    "I13_SUMA": 1512.50
                }
            ]
        }
    }
}
Response (status 200 OK)

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

pvz response:

<?xml version='1.0'?>
<RET_DOK>
    <I06>
        <I06_KODAS_PO>010R00001042</I06_KODAS_PO>
        <Row_number>1</Row_number>
        <I06_OP_TIP>51</I06_OP_TIP>
        <I06_DOK_NR>DOK-001</I06_DOK_NR>
        <I06_OP_DATA>2020-01-30 00:00:00.000</I06_OP_DATA>
        <DOKUMENTAS>1</DOKUMENTAS>
        <DOKUMENTAI>0</DOKUMENTAI>
        <NUORODA>https://www....lt/nuoroda</NUORODA>
        <I49_DIM01>MEN1</I49_DIM01>
        ...
        <I07>
        ...
        </I07>
        ...
        <I08>
        ...
        </I08>
        <I13>
        ...
        </I13>
    </I06>
</RET_DOK>
Response (status 207)

207 statusas gaunamas, kai procedūros yra vykdamos perduodant parametrą errorAction su reikšme EXIT arba CONTINUE ir gaunama klaida kažkurioje iš procedūrų, pvz.:

<RET_DOK>
    <I06>
        <I06_KODAS_PO>010R00000050</I06_KODAS_PO>
        <Row_number>1</Row_number>
        <I06_OP_TIP>51</I06_OP_TIP>
        <I06_VAL_POZ>0</I06_VAL_POZ>
        <I06_PVM_TIP>0</I06_PVM_TIP>
        <I06_DOK_NR>DOK-005</I06_DOK_NR>
        <I06_OP_STORNO>0</I06_OP_STORNO>
        <I06_OP_DATA>2020-04-21T00:00:00</I06_OP_DATA>
        <I06_DOK_DATA>2020-04-21T00:00:00</I06_DOK_DATA>
        <I06_KODAS_MS></I06_KODAS_MS>
        <I06_KODAS_KS>121411842   </I06_KODAS_KS>
        <I06_KODAS_SS></I06_KODAS_SS>
        <I06_PAV>UAB "Rivilė"</I06_PAV>
        ...
    </I06>
    <errors>
        <error>
            <data>&lt;I07>&lt;I07_KODAS_US>VNT&lt;/I07_KODAS_US>&lt;I07_KIEKIS>1&lt;/I07_KIEKIS>&lt;I07_TIPAS>1&lt;/I07_TIPAS>&lt;I07_KODAS_US_P>VNT&lt;/I07_KODAS_US_P>&lt;I07_FRAKCIJA>1&lt;/I07_FRAKCIJA>&lt;I07_ALT_KIEKIS>1&lt;/I07_ALT_KIEKIS>&lt;I07_KAINA_BE>1000.0000&lt;/I07_KAINA_BE>&lt;I07_ALT_FRAK>1&lt;/I07_ALT_FRAK>&lt;I07_KODAS>004sss&lt;/I07_KODAS>&lt;I07_SUMA>1000.00&lt;/I07_SUMA>&lt;I07_KODAS_US_A>VNT&lt;/I07_KODAS_US_A>&lt;I07_KODAS_IS>01&lt;/I07_KODAS_IS>&lt;I07_PVM>210.00&lt;/I07_PVM>&lt;/I07></data>
            <dataErrors>
                <dataError>
                    <tag>I07_KODAS</tag>
                    <code>19014</code>
                    <message>Nerastas prekės/paslaugos kodas</message>
                </dataError>
                <dataError>
                    <tag>I07_KODAS</tag>
                    <code>31005</code>
                    <message>Prekės kodas nerastas</message>
                </dataError>
                <dataError>
                    <tag>I07_KODAS_US_A</tag>
                    <code>19035</code>
                    <message>Prekei neaprašytas matavimo vienetas</message>
                </dataError>
                <dataError>
                    <tag>I07_KODAS_US_P</tag>
                    <code>19035</code>
                    <message>Prekei neaprašytas matavimo vienetas</message>
                </dataError>
                <dataError>
                    <tag>I07_KODAS_US</tag>
                    <code>19035</code>
                    <message>Prekei neaprašytas matavimo vienetas</message>
                </dataError>
            </dataErrors>
        </error>
    </errors>
</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>14433105830.a1ccba43.1584200453880</id>
    <durationMs>221</durationMs>
    <errorMessage>nepavyko įvykdyti metodo</errorMessage>
    <errors>
        <error>
            <data>&lt;I07>&lt;I07_KODAS_US>VNT&lt;/I07_KODAS_US>&lt;I07_KODAS>99999999x9991&lt;/I07_KODAS>&lt;I07_KODAS_US_A>kodas_US_A2&lt;/I07_KODAS_US_A>&lt;I07_KODAS_IS>999999999999&lt;/I07_KODAS_IS>&lt;I07_KIEKIS>1&lt;/I07_KIEKIS>&lt;I07_PVM_SKOL>1&lt;/I07_PVM_SKOL>&lt;I07_TIPAS>2&lt;/I07_TIPAS>&lt;/I07></data>
            <dataErrors>
                <dataError>
                    <tag>I07_KODAS</tag>
                    <code>19014</code>
                    <message>Nerastas prekės/paslaugos kodas</message>
                </dataError>
                <dataError>
                    <tag>I07_KODAS_US_A</tag>
                    <code>19035</code>
                    <message>Prekei neaprašytas matavimo vienetas</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);

Lentelės

I06

Nuoroda į lentelės aprašymą: (i06)

I07

Nuoroda į lentelės aprašymą: (i07)

I08

Nuoroda į lentelės aprašymą: (i08)

I13

Nuoroda į lentelės aprašymą: (i13)