GET_I17_LIST

Aprašymas

Prekių likučių sąrašas

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 : GET_I17_LIST
  • params :
    • fil : filtravimo sąlyga. T-SQL tipo where sąlygos užklausa iš lentelės I17 nenurodant WHERE dalies. Parametras neprivalomas.
    • group : likučių sumavimas pagal prekės kodą (I17_KODAS_PS), padalinį (I17_KODAS_IS), objektą (I17_KODAS_OS), seriją (I17_SERIJA). Parametras neprivalomas - tuomet grąžinama nesugrupuota informacija surūšiuota pagal lentelės raktą.
    • pagenumber: įrašų puslapio numeris. GET_LIST metodai rezultatus grąžina puslapiais po 100 įrašų, pagenumber parametras nurodo kelintą puslapį grąžinti. Jei parametras nenurodomas, tuomet grąžinamas pirmas puslapis su 100 įrašų.

Jeigu grupavimas nenaudojamas, informacija visada grąžinama surūšiuota pagal atitinkamos lentelės pirminį raktą (Primary Key). Lentelės pirminis raktas nurodytas lentelės aprašyme žemiau, paryškintu tekstu.

Jeigu naudojamas grupavimas, likučiai visuomet visų pirma grupuojami pagal prekės kodą (I17_KODAS_PS), nesvarbu, nurodytas prekės kodas group sąlygoje, ar ne, tuomet pagal prekės vieneto kodą (I17_KODAS_US ir I17_KODAS_US_A), o tuomet pagal likusius group sąlygoje nurodytus laukus. Taip pat, likusių laukų grupavimo tvarka visuomet tokia, kaip nurodyta group parametro aprašyme t.y. I17_KODAS_IS, I17_KODAS_OS, I17_SERIJA. Pavyzdžiui: I17_KODAS_OS,I17_KODAS_IS visuomet užklausoje tampa I17_KODAS_PS,I17_KODAS_US,I17_KODAS_US_A,I17_KODAS_IS,I17_KODAS_OS (paskutinės dvi sąlygos sukeistos vietomis), t.y. grąžins susumuotus likučius pagal prekę, jos vieneto kodą, padalinį ir galiausiai objektą.

Papildomai sugrupuota informacija visuomet rūšiuojama pagal prekės kodą I17_KODAS_PS, o tuomet pagal likusias group parametre nurodytas sąlygas.

Dėl greitaveikos efektyvumo nerekomenduojame group parametro naudoti duomenų bazėje su dideliu eilučių kiekiu!

GET_LIST metodai apribojami 100 įrašų, todėl norint gauti visą sąrašą, turite naudoti filtrus, kurie grąžins rezultatą dalimis per kelis kartus, filtruojant pagal paskutinio gauto įrašo rakto reikšmę.

pvz application/xml:

<body>
    <method>GET_I17_LIST</method>
    <params>
        <fil>i17_kodas_ps='1' and i17_kodas_is='01'</fil>
    </params>
</body>

pvz application/json:

{
    "method": "GET_I17_LIST",
    "params": {
        "fil": "i17_kodas_ps='1' and i17_kodas_is='01'"
    }
}
Response (status 200 OK)

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

Jeigu įrašų nerasta pagal užduotas sąlygas, tuomet gražinama status=200 bei tuščias tag'as

pvz:

<?xml version='1.0' encoding='UTF-8' ?>
<RET_DOK>
    <I17>
        <Row_number>1</Row_number>
        <I17_KODAS_PS>1</I17_KODAS_PS>
        <I17_KODAS_IS>01</I17_KODAS_IS>
        <I17_KODAS_US_A>05_MAISELIS </I17_KODAS_US_A>
        <I17_KODAS_OS></I17_KODAS_OS>
        <I17_SERIJA></I17_SERIJA>
        <I17_KODAS_US>KG</I17_KODAS_US>
        <I17_FRAKCIJA>1000</I17_FRAKCIJA>
        <I17_KIEKIS>5000</I17_KIEKIS>
        <I17_ATIDUOTA>0</I17_ATIDUOTA>
        <I17_REZERVAS>0</I17_REZERVAS>
        <I17_PARD_UZS>0</I17_PARD_UZS>
        <I17_PIRK_UZS>0</I17_PIRK_UZS>
        <I17_SUMA>22.25</I17_SUMA>
        <I17_P_PIR_K>2.0000</I17_P_PIR_K>
        <I17_P_PIR_D>2020-01-09T00:00:00</I17_P_PIR_D>
        <I17_P_PAR_K>5.0000</I17_P_PAR_K>
        <I17_P_PAR_D>2020-01-06T00:00:00</I17_P_PAR_D>
        <I17_VID_UZS>0</I17_VID_UZS>
        <I17_REIKALAVIMAS>0</I17_REIKALAVIMAS>
        <I17_KELYJE>0</I17_KELYJE>
        <I17_KAINA>0.0000</I17_KAINA>
        <I17_USERIS>MASTER</I17_USERIS>
        <I17_ADDUSR>MASTER</I17_ADDUSR>
        <I17_R_DATE>2020-01-23T21:12:42</I17_R_DATE>
        <likutis_us>5.0000</likutis_us>
        <likutis_us_a>10.0000</likutis_us_a>
        <des_likutis_us>5.0000</des_likutis_us>
        <des_likutis_us_a>10.0000</des_likutis_us_a>
        <N37_BAR_KODAS>000000000001</N37_BAR_KODAS>
    </I17>
    <I17>
        <Row_number>2</Row_number>
        <I17_KODAS_PS>1</I17_KODAS_PS>
        <I17_KODAS_IS>01</I17_KODAS_IS>
        <I17_KODAS_US_A>DEZE25</I17_KODAS_US_A>
        <I17_KODAS_OS></I17_KODAS_OS>
        <I17_SERIJA></I17_SERIJA>
        <I17_KODAS_US>VNT</I17_KODAS_US>
        <I17_FRAKCIJA>1</I17_FRAKCIJA>
        <I17_KIEKIS>1046</I17_KIEKIS>
        <I17_ATIDUOTA>0</I17_ATIDUOTA>
        <I17_REZERVAS>0</I17_REZERVAS>
        <I17_PARD_UZS>0</I17_PARD_UZS>
        <I17_PIRK_UZS>0</I17_PIRK_UZS>
        <I17_SUMA>87.75</I17_SUMA>
        ...
        <likutis_us>1046</likutis_us>
        <likutis_us_a>41.21</likutis_us_a>
        <des_likutis_us>1046</des_likutis_us>
        <des_likutis_us_a>41.84</des_likutis_us_a>
        <N37_BAR_KODAS>000000000002</N37_BAR_KODAS>
    </I17>
</RET_DOK>

DES_LIKUTIS_US dešimtainis kiekis pagrindiniu matavimo vientetu, oDES_LIKUTIS_US_A - dešimtainis kiekis alternatyviu matavimo vienetu. Tuo tarpu LIKUTIS_US yra frakcijinis kiekis pagrindiniu matavimo vienetu, o LIKUTIS_US_A - frakcijinis kiekis alternatyviu matavimo vienetu.

Response (status 400)

Klaida paduodant duomenis / SQL sintaksės klaidos / kitos DB klaidos

<?xml version='1.0' encoding='UTF-8'?>
<RET_DOK>
    <id>13271746441.6a246776.1581056600545</id>
    <durationMs>5</durationMs>
    <errorMessage>Invalid column name 'ii17_kodas_ps'.</errorMessage>
</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/>
    <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>/v1</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, '{
    "method": "GET_I17_LIST",
    "params": {
        "fil": "i17_kodas_ps=\'1\' and i17_kodas_is=\'01\'"
    }
}');
$response = curl_exec($ch);
curl_close($ch);

Lentelės

I17

Laukas Tipas Aprašymas Pastabos
I17_KODAS_IS C(12) Padalinio kodas
I17_KODAS_PS C(12) Prekės kodas
I17_KODAS_OS C(12) Objekto kodas
I17_SERIJA C(12) Serija
I17_KODAS_US_A C(12) Alternatyvaus matavimo vieneto kodas
I17_KODAS_US C(12) Pagrindinis matavimo vieneto kodas
I17_FRAKCIJA N(4) Pagrindinio matavimo vieneto frakcija
I17_KIEKIS N(14) FIFO likutis
I17_ATIDUOTA N(14) Atiduota
I17_REZERVAS N(14) Užrezervuota
I17_PARD_UZS N(14) Pirkėjų užsakymai
I17_PIRK_UZS N(14) Užsakyta pas tiekėjus
I17_SUMA N(12,2) FIFO likučių suma
I17_P_PIR_K N(12,4) Paskutinio pirkimo kaina
I17_P_PIR_D T(8) Paskutinio pirkimo data
I17_P_PAR_K N(12,4) Paskutinio pardavimo suma
I17_P_PAR_D T(8) Paskutinio pardavimo data
I17_VID_UZS N(14) Užsakymas iš vidinio padalinio
I17_REIKALAVIMAS N(14) Pareikalavimas iš vidinio padalinio
I17_KELYJE N(14) Prekės kelyje
I17_KAINA N(12,4) Pardavimo kaina objekte
I17_USERIS C(12) Kas koregavo
I17_ADDUSR C(12) Kas sukūrė
I17_R_DATE T(8) Kada koregavo