Autonomní režim účetního systému MRP-K/S

V autonomním režimu funguje klientská část účetního systému MRP-K/S jako webový server (je tudíž nutné, abyste vyhradili jednu klientskou licenci účetního systému MRP-K/S trvale pro tuto komunikaci), který zpracovává příchozí požadavky odeslané metodou HTTP POST a reaguje na ně odpovědí. Požadavek i odpověď jsou soubory ve formátu xml s předepsanou strukturou. Komunikace může být volitelně kódovaná, s možností komprese, autentizace a šifrování.

Využívá se pro napojení na internetové obchody i od jiných poskytovatelů, případně pro generování dat z databáze a import některých dokladů.


1. Spuštění MRP-K/S v autonomním režimu
2. Obecná struktura xml dotazu a odpovědi
3. Kódovaná komunikace
Funkce Hmac_Sha256
Odvození klíčů
Autentizace
Šifrování
Komprese
Struktura obálky
Postup kódování na straně odesílatele
Postup dekódování na straně příjemce
Příklad struktury kódovaného dotazu a odpovědi
Příklad výpočtu šifrování a autentizace
4. Stránkování
5. Podporované příkazy
EXPEO0 Export skladových karet
EXPEO1 Export skladových karet
IMPEO0 Import objednávek přijatých
CENEO0 Export ceníku
ADREO0 Export adres
EXPFV0 Export seznamu faktur vydaných s adresou odběratele
EXPFV1 Export seznamu faktur vydaných s adresou odběratele, položkami a úhradami
EXPFV2 Export seznamu faktur vydaných s uloženým PDF opisem
EXPFVPDF Export faktury vydané s online vygenerovanou PDF fakturou
EXPFP0 Export seznamu faktur přijatých s adresou dodavatele
EXPFP1 Export seznamu faktur přijatých s adresou dodavatele, položkami a úhradami
EXPOP0 Export seznamu stavu objednávek přijatých

1. Spuštění MRP-K/S v autonomním režimu

Spuštění MRP-K/S v autonomním režimu se provádí zadáním parametrů příkazového řádku. Komunikace se odehrává v jedné, předem zvolené firmě.

 

-A Spouští autonomní režim
-Fx Určuje číslo firmy (x), se kterou bude autonomní režim pracovat
-Y Uživatelské jméno a heslo, oddělené čárkou bez mezer

 

Příklad spuštění autonomního režimu ve firmě č.1:
  MRPKS.EXE -A -F1 -Ymrpdba,mrpdba

Při prvním spuštění autonomního režimu je potřeba v Nastavení vybrat číslo TCP portu, na kterém bude program očekávat požadavky. Pokud je vyžadována šifrovaná komunikace, lze zadat též šifrovací klíč. Na záložce profily je také třeba nakonfigurovat, které příkazy budou pro komunikaci povoleny a nastavit jejich další parametry.

2. Obecná struktura xml dotazu a odpovědi

Databáze MRP-K/S pracuje v kódové stránce Windows-1250. Přestože je tedy xml zpravidla kódováno v UTF-8, dokument by neměl obsahovat znaky, které v se v kódování Windows-1250 nevyskytují.

Kořenovým elementem dotazu i odpovědi je obálka <mrpEnvelope>. V té je v případě nekódované komunikace obsažen element <body>, který zahrnuje vlastní dotaz nebo odpověď. V případě kódované komunikace se je obsah vložen do elementu <encodedBody> , jak je popsáno dále v části kódovaná komunikace. Dotazy, které mění obsah databáze, obsahují povinný atribut requestId. Jeho obsah určuje dotazující se aplikace a slouží k jednoznačné identifikaci daného dotazu. V případě opakovaného příkazu se shodným requestId jej program znovu nevykonává, místo toho jen vrátí kopii dříve odeslané odpovědi. Záznamy provedených příkazů jsou v databázi evidovány po omezenou dobu (momentálně cca půl dne), poté jsou smazány a jejich requestId je uvolněno pro nové použití.
Dotaz může taktéž obsahovat element <data>, ve kterém mohou být např. výběrové podmínky (v případě příkazu, požadujícího údaje z databáze), nebo samotná data příkazu, nad kterými má program vykonat požadovanou operaci.

Odpověď obsahuje v části <status> identifikaci příkazu, na který reaguje. V případě, že provádění příkazu skončí libovolnou chybou, je tato skutečnost signalizována přítomností elementu <error> s jejím podrobnějším popisem.

Příklad nekódovaného dotazu:

  <mrpEnvelope>
    <body>
      <mrpRequest command="IMPEO0" requestId="1234">
        ....
        <data>
          <!-- Výběrové podmínky -->
          <!-- ... nebo ... -->
          <!-- data příkazu -->
        </data>
      </mrpRequest>
    </body> 
  </mrpEnvelope>

Příklad nekódované odpovědi:

  <mrpEnvelope>
    <body>
      <mrpResponse>
        <status>
          <!-- Blok s parametry prevzatymi z mrpRequest -->
          <request command="IMPEO0" requestId="1234"/>

          <!-- V pripade chyby blok s popisem chyboveho hlaseni -->
          <error errorCode="" errorClass="">
            <!-- errorCode - Ciselny chybovy kod -->
            <!-- errorClass - Trida vyjimky -->
            <errorMessage>
              <!-- Text chyboveho hlaseni -->
            </errorMessage>
          </error>
        </status>

        <data>
          .....
        </data>
      </mrpResponse>
    </body>
  </mrpEnvelope>

 

3. Kódovaná komunikace

Kódovaná komunikace umožňuje kompresi a/nebo autentizaci a šifrování xml dotazů a odpovědí. Základním elementem xml v těchto případech zůstává obálka <mrpEnvelope> , samotný obsah je ovšem místo elementu <body> vložen v elementu <encodedBody>, spolu s dalšími parametry, které určují použitou kompresi a šifrování. V případě, že je v nastavení autonomního režimu na straně MRP-K/S zaškrtnuta volba Vyžadovat šifrování, aplikace odmítne veškeré neautentizované požadavky. Pro šifrování a autentizaci je použit symetrický tajný klíč o délce 32 B, který se v nastavení autonomního režimu MRP-K/S zadává jako base64 sekvence. Klíč by měl být řadou spolehlivě náhodných čísel, program jej na požádání umí vytvořit tlačítkem Generovat.

Funkce Hmac_Sha256

Autentizační funkce Hmac se v dalších pokynech používá spolu s hash funkcí Sha256 standardním postupem: https://en.wikipedia.org/wiki/Hash-based_message_authentication_code

Funkce je definována jako

  Autentizační sekvence = Hmac_Sha256(Klíč, Podepisovaná sekvence)

Odvození klíčů

Vstupem je tajný klíč (32 B).

Z tajného klíče aplikace odvodí nezávislé klíče pro autentizaci a šifrování následujícím postupem, s využitím funkce Hmac_Sha256:

  Klíč1 = Hmac_Sha256(Tajný klíč, 0x01)
  Klíč2 = Hmac_Sha256(Tajný klíč, Klíč1 || 0x02)

0x01 a 0x02 jsou 1B konstanty (s pevnou hodnotou 1 a 2), || znamená zřetězení

Nadále se takto získaný Klíč1 používá jako tajný šifrovací klíč (32 B) a Klíč2 jako tajný autentizační klíč (32 B).

Autentizace

Autentizace se provádí algoritmem Hmac_Sha256.

Do algoritmu vstupuje tajný autentizační klíč (32 B) a podepisovaná sekvence bez dalších úprav.

 

  Autentizační kód = Hmac_Sha256(Autentizační klíč, Podepisovaná sekvence)

Podepsána je až finální odeslaná sekvence, po případné kompresi a šifrování. Přijímající strana tedy může provést autentizaci dat jako první krok, a pokud kódy nesouhlasí, vrátí jen chybové hlášení o neplatném autentizačním kódu a požadavkem se dále nezabývá.

Šifrování

Šifrování se provádí algoritmem AES s délkou klíče 256 bitů. Vstupem je tajný šifrovací klíč (32 B) a sekvence, která se má zašifrovat.

Postup šifrování je na odesílající straně následující:

  • Vygenerování náhodné sekvence 32 B, která se nesmí (s velkou pravděpodobností) u dalších požadavků opakovat, a to ani mezi různými stanicemi používajícími stejný šifrovací klíč. Algoritmus získání této sekvence je libovolný, doporučeným postupem je využít spolehlivý generátor náhodných čísel, jeho výstup spojit s jedinečnými identifikátory daného počítače a časem výpočtu a následně provést hash celé sekvence např. funkcí Sha 256. Tato sekvence se dále označuje jako variantní klíč.
  • Pomocí funkce Hmac_Sha256, kde klíčem Hmac je tajný šifrovací klíč (32 B) a podepisovanou sekvencí je variantní klíč (32 B), se získá finální šifrovací klíč (32 B).
  • Pomocí funkce Sha256 aplikované na variantní klíč (32 B) se získá jiná 32 B sekvence, jejíž prvních 16 B se použije jako inicializační vektor (16 B).
  • Na sekvenci určenou k zašifrování se aplikuje šifra AES v proudovém režimu CTR, přičemž šifrovacím klíčem je finální šifrovací klíč (32 B) a inicializačním vektorem prvního bloku dat (16 B) je inicializační vektor získaný v předchozím kroku (16 B). Pro další 16 B bloky se v režimu CTR inicializační vektor vždy zvyšuje o 1 (počínaje posledním bajtem, při přetečení se zvyšuje vždy předchozí bajt, s výjimkou prvního).

Postup dešifrování na přijímající straně je shodný, jako variantní klíč se použije sekvence obsažená v přijatém požadavku.

Režim CTR funguje jako proudová šifra a nevyžaduje tak zarovnání zprávy do 16 B bloků. Když není režim CTR k dospozici, lze jej realizovat pomocí základního režimu ECB.

Komprese

Volitelná komprese a dekomprese se provádí funkcemi zlib deflate a inflate.

Struktura obálky

Kódovaná obálka řeší možnosti komprese, šifrování a autentizace. V části <encodingParams> je uloženo pomocné xml s parametry, v elementu <encodedData> pak xml se samotným obsahem (obsah elementu <body> z nekódované obálky, kořenovým elementem je tedy <mrpRequest> nebo <mrpResponse>), obojí je zakódováno v base64. Když je požadována autentizace, je v dalším elementu <authCode> uveden kontrolní Hmac_Sha256 hash celkového obsahu, příčemž podepisovanou sekvencí je sekvence složená z obsahu elementu <encodingParams>, za který se připojí obsah elementu <encodedData>. Obsah elementů <encodingParams> a <encodedData> je vhodné zapouzdřit do xml sekce CDATA, aby v případě rozsáhlých xml dokumentů nedocházelo k potížím při jejich zpracování.

Kompletní struktura kódované obálky vypadá takto:

  <mrpEnvelope>
    <encodedBody authentication="hmac_sha256">
      <encodingParams>
         ... base64 - vložené xml s parametry šifrování a komprese ...
      </encodingParams>
      <encodedData>
         ... base64 - vložené xml s obsahem obálky ...
      </encodedData>
      <authCode>
         ... base64 - hmac sha256 hash hodnota obsahu encodingParams+encodedData ...
      </authCode>
    </encodedBody>
  </mrpEnvelope>

Xml s parametry šifrování a komprese, které se (převedené do base64) ukládá do <encodingParams> je následující:

  <mrpEncodingParams compression="zlib" encryption="aes">
    <varKey>
      ... jen při šifrování - base64 variantní klíč 32 B ...
    </varkey>
  </mrpEncodingParams>

Postup kódování na straně odesílatele

  • Případné parametry šifry a komprese se uloží do pomocného xml s kořenovým elementem <mrpEncodingParams>, které se následně uloží do sekce <encodingParams> zakódované v base64.
  • Odesílané xml (s kořenovým elementem <mrpRequest> nebo <mrpResponse>) se převede na sekvenci bajtů.
  • Ta se volitelně zkomprimuje.
  • Pokud je požadováno šifrování, sekvence se zašifruje.
  • Výsledná sekvence se uloží do sekce <encodedData> zakódovaná v base64.
  • Pokud je požadována autentizace (při šifrování povinně), vypočítá se autentizační kód sekvence složené ze zřetězeného obsahu <encodingParams> a <encodedData> (v binárním tvaru ještě před převedením na base64), a ten se následně uloží do elementu <authCode>, opět zakódovaný v base64.

Postup dekódování na straně příjemce

  • Příjemce si přečte způsob autentizace. Když vyžaduje autentizaci a ta v atributu authentication uvedena není, zpracování končí chybou.
  • Je-li vyžadována autentizace, ověří se autentizační kód. Když nesouhlasí, zpracování končí chybou.
  • Načte se xml s parametry šifry a komprese uložený v <encodingParams>, způsob šifrování se porovná s nastavením programu (když je vyžadováno šifrování a v parametrech není, požadavek se odmítne).
  • Načte se datová sekvence obsažená v sekci <encodedData>.
  • Je-li komunikace šifrovaná, sekvence se dešifruje podle parametrů zvolené šifry.
  • Je-li komunikace komprimovaná, sekvence se rozbalí podle zvolené metody komprese.

Příklad struktury kódovaného dotazu a odpovědi

Obsah některých části kódované obálky je nepovinný, podle způsobu komprese, šifrování a autentizace:

S autentizaci, šifrováním a volitelnou kompresí:

  <mrpEnvelope>
    <encodedBody authentication="hmac_sha256">
      <encodingParams>
         ... base64 - vložené xml s parametry šifrování a komprese ...
      </encodingParams>
      <encodedData>
         ... base64 - vložené xml s obsahem obálky ...
      </encodedData>
      <authCode>
         ... base64 - hmac sha256 hash hodnota obsahu encodingParams+encodedData ...
      </authCode>
    </encodedBody>
  </mrpEnvelope>

Xml s parametry šifrování a komprese, které se ukládá do <encodingParams> je následující (compression="zlib" znamená kompresi):

   <mrpEncodingParams compression="zlib" encryption="aes">
     <varKey>
      ... base64 variantní klíč 32 B ...
     </varkey>
   </mrpEncodingParams>

Komprese bez autentizace a šifrování:

  <mrpEnvelope>
    <encodedBody>
      <encodingParams>
         ... base64 - vložené xml s parametry komprese ...
      </encodingParams>
      <encodedData>
         ... base64 - vložené xml s obsahem obálky ...
      </encodedData>
    </encodedBody>
  </mrpEnvelope>

Vložené xml s parametry komprese:

  <mrpEncodingParams compression="zlib">
  </mrpEncodingParams>

Příklad výpočtu šifrování a autentizace

Na následující krátké sekvenci bajtů je možno otestovat, zda se výsledky šifrování a autentizace shodují s výsledky algoritmu, který je používán. S daným tajným a variantním klíčem by měly být výstupy šifrování a autentizace shodné. Pokud bude vše souhlasit, je možno následně tento algoritmus použít pro sestavení elementu <encodedBody> podle výše uvedeného návodu.

Tajný klíč (zvolený uživatelem, base64):
bRtFEufmEgrJyhai6ltDSV9svtpN3Jb/5oWBBYhDJ30=

Tajný klíč (hex):
6D 1B 45 12 E7 E6 12 0A C9 CA 16 A2 EA 5B 43 49
5F 6C BE DA 4D DC 96 FF E6 85 81 05 88 43 27 7D

Variantní klíč (náhodně generovaný): 
1F 5A C7 7E D3 0C C0 A5 F7 5B B0 35 FF 05 66 A5
0D B2 12 7A AB 32 D8 62 4E 0D A4 D4 18 6E 7F 2F

Tajný šifrovací klíč (Hmac_Sha256(Tajný klíč, 0x01)):
DE B5 81 AB EC C4 A5 A5 5D C7 6C 08 A9 75 49 62
BD A0 54 10 E1 A3 0D 5E 99 05 AD FA 65 6C F2 C9

Tajný autentizační klíč (Hmac_Sha256(Tajný klíč, Tajný šifrovací klíč || 0x02)):
5B DF 74 9A 16 63 DF 20 6A 1E 9E 36 03 96 33 75
92 FD D8 2F 66 05 CF 3A F8 D4 D4 54 6B 64 05 06

Finální šifrovací klíč (Hmac_Sha256(Tajný Šifrovací klíč, Variantní klíč)):
00 06 29 E3 9E 79 F3 F5 2B 05 D8 58 72 40 C3 81
CA 14 A0 EC 17 27 A9 5A FA D4 80 EB D5 6E 1C 40

AES inicializační vektor (prvních 16 B z Sha256(Variantní klíč)):
09 18 29 E9 98 18 6D 9F B0 78 72 2E 0B 91 44 06

Příklad proudového AES šifrování v CTR módu:
Otevřený text:
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
11 12 13 14
Šifrovaný text:
01 EC 4D BE B1 04 CD 38 E9 0A 4E CC C5 C5 35 9C
D0 AA D8 AF

Příklad autentizace:
Podepisovaná sekvence:
01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10
11 12 13 14
Autentizační kód (Hmac_Sha256(Autentizační klíč, Podepisovaná sekvence)):
B5 75 94 6C 75 DC A6 5C E0 DA 8A C2 AC F4 73 72
34 09 68 99 53 6E 88 05 51 CA D1 AE 99 DE F3 6A


4. Stránkování

Některé příkazy pro export podporují tzv. stránkování, kdy umožňují omezit počet záznamů v odpovědi, případně označit výřez z množiny dat. Stránkování se řeší v části <paging>. Použité elementy jsou <RowFrom> a <RowTo>. Elementy jsou nepovinné. Výchozí hodnoty jsou pro <RowFrom> 1 a pro <RowTo> 999999. Aktuálně stránkování podporují příkazy EXPFV0EXPFV1EXPFV2EXPFP0EXPFP1.

Příklad požadavku:
 <mrpEnvelope>
  <body>
    <mrpRequest>
      <request command="EXPFV0" requestId=""> 
      </request>
      <data>
        <paging>
          <!-- Stránkování - omezení počtu záznamů -->
          <RowFrom>1</RowFrom>
          <RowTo>200</RowTo>
        </paging>
        <filter>
          <!-- Doklady s datem vystavení  -->
          <fltvalue name="IssueDate">01.01.2018..31.12.2018</fltvalue>
        </filter>
      </data>
    </mrpRequest>
  </body>
</mrpEnvelope>

5. Podporované příkazy

Příklady jsou v nekódovaném tvaru. Pokud se v některých příkazech zadávají filtrovací podmínky, pak se používá uživatelská syntaxe programu MRP K/S. Vyjímkou jsou pouze filtry, které nabízí uživateli výběrové podmínky. V těchto případech bude v poznámce uveden jejich možný rozsah.

Odpovědi vracející datovou část mají následující strukturu.

      <data>
        <datasets>
          <jmeno_tabulky>
            <rows> 1..n
              <row>
                <fields> 1..n
                  <jmeno_fieldu>hodnota</jmeno_fieldu>
                </fields>
              </row>
            </rows>
          </jmeno_tabulky>
        </datasets>
      </data>
 

 

EXPEO0

Export skladových karet do e-obchodu. Datový element obsahuje filtrovací podmínky <fltvalue name="jmeno_filtru">podminka</fltvalue>.

Požadavek

 

Atributy elementu <fltvalue> nepovinný
name O/M Typ Délka DM Význam Od verze
stavy O L 1 0 Jsou požadovány pouze stavy karet. [T|F]
cisloSkladu O N 3 0 Číslo jednoho skladu, ze kterého se bude brát stav karty. [1..999]
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
cisloCeny O N 1 0 Číslo jedné prodejní ceny. [0,1..5]
malObraz O L 1 0 Malý obrázek. [T|F]
velObraz O L 1 0 Velký obrázek. [T|F]
polePoznamka1 O L 1 0 Doplňková poznámka. [T|F]
poleDetail2 O L 1 0 Popisy z druhého detailu karty. [T|F]
mena O T X 0 Požadavek na ceny v cizích měnách. Uvádí se výčet požadovaných měn. [EUR|USD|...] 6.43.001
sql O T X X Výběrové podmínky pomocí SQL syntaxe databazového serveru. Název pole musí být uveden včetně názvu tabulky skladových karet. 6.40.011
 
 
Seznam volitelných filtrovacích polí, které se přibližují filtrovacím podmínkám skladových karet. Jméno filtru se skládá ze jména tabulky, oddělovače a jména datového pole.
Výraz se zapisuje a vyhodnocuje stejným způsobem, jaku u filtru v programu MRP K/S, tedy při použití číselných a datumových výrazů musí tyto výrazy respektovat nastavení desetinných oddělovačů a tvaru data nastavených na klientské stanici.
Jsou uváděny pouze typy jednotlivých polí kvůli konstrukci dotazu.
name O/M Typ Délka DM Význam Od verze
SKKAR.CISLO O N X X Číslo skladové karty.
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
SKKAR.NAZOV O T X X Název skladové karty.
SKKAR.KOD O T X X EAN skladové karty.
SKKAR.KOD1 O T X X Uživatelský kód skladové karty.
SKKAR.KOD2 O T X X Uživatelský kód skladové karty.
SKKAR.KOD3 O T X X Uživatelský kód skladové karty.
SKKAR.SKUPINA O T X X Kód skupiny skladových karet.
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
SKKAR.CISKAT O N X X Kód katalogu skladových karet.
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
SKKAR.TYP_POL O T X X Kód typu položky skladové karty.
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
SKKAR.SADZBADPH O N X X Sazba DPH skladové karty.
SKKAR.BEZDPH O L X X Rozlišení mezi mimo DPH a nulovou sazbou [T|F].
SKKAR.POZNAMKA O T X X Poznámka skladové karty.
SKKAR.ZAKAZSLEVY O L X X Zákaz slevy skladové karty [T|F].
SKKAR.DODAVATEL O T X X IČ obchodníka (není to záložka dodavatelů).
SKKAR.POZNAMKA1 O T X X Rozšířená poznámka skladové karty.
SKKAR.DAT_ZAR O D X X Datum zařazení skladové karty.
SKKAR.UPD_DATE O DT X X Datum a čas změny některých polí skladové karty.
Typ karty, Číslo, Název, EAN, Skupina, Katalog, Sazba DPH, Typ položky, Měrná jednotka, Je-li používaná, Datum zařazení, Hmotnost, Uživatelské pole 1..5, Počáteční skl.cena, Aktuální skl.cena, Aktuální počet MJ, Počet rezervovaných MJ
6.42.001
SKKAR.POUZIVANA O L X X Příznak používání skladové karty [T|F].
SKKAR.TLAC O L X X Příznak zařazení karty do "tisku" [T|F].
SKKAR.USRFLD1 O T X X Uživatelské pole skladové karty.
SKKAR.USRFLD2 O T X X Uživatelské pole skladové karty.
SKKAR.USRFLD3 O T X X Uživatelské pole skladové karty.
SKKAR.USRFLD4 O T X X Uživatelské pole skladové karty.
SKKAR.USRFLD5 O T X X Uživatelské pole skladové karty.
SKKARSTA.POCETMJ O N X X Počet MJ na zvoleném skladu.
SKKARSTA.POCREZMJ O N X X Počet rezervovaných MJ na zvoleném skladu.
SKKARSTA.POCOBJMJ O N X X Počet objednaných MJ u dodavatelů na zvoleném skladu.
SKKARSTA.POZICE O T X X Umístění ve zvoleném skladu.
SKKARSTA.MINIMUM O N X X Nastavené minimum MJ na zvoleném skladu.
SKKARSTA.NORMA O N X X Nastavená norma MJ na zvoleném skladu.
SKKARSTA.MAXIMUM O N X X Nastavené maximum MJ na zvoleném skladu.

 

 <mrpEnvelope>
  <body>
    <mrpRequest>
      <request command="EXPEO1" requestId=""> 
      </request>
      <data>
        <filter>
          <fltvalue name="cisloSkladu">1</fltvalue>
          <fltvalue name="cisloCeny">2</fltvalue>
          <fltvalue name="malObraz">T</fltvalue>
          <fltvalue name="velObraz">T</fltvalue>
          <fltvalue name="stavy">F</fltvalue>
          <fltvalue name="meny">EUR|USD|HUF</fltvalue>
          <!-- Nepovinny blok s pripadnymi daty, zalezi na prikazu, zdali je potrebuje -->
          <!-- Číslo karty v rozsahu 1 až 10 -->
          <fltvalue name="SKKAR.CISLO">1..10</fltvalue>
          <!-- Kód skupiny skladových karet A nebo B -->
          <fltvalue name="SKKAR.SKUPINA">A|B</fltvalue>
          <!-- Typ položky Z -->
          <fltvalue name="SKKAR.TYP_POL">Z</fltvalue>
          <!-- Změna ve skladových kartách od 1.1.2022 12:34 nebo nové skladové karty -->
          <fltvalue name="SKKAR.UPD_DATE">&gt;1.1.2022 12:34|null</fltvalue>
          <!-- ^ Není vhodné přímo použít znak > (větší), protože je to řídící znak formátu xml. Pro zápis takových znaků může být potřeba použít tzv entitu. -->
        </filter>
      </data>
    </mrpRequest>
  </body>
</mrpEnvelope>

Odpověď

 

Element <karty> Vždy
fields stavy Typ Délka DM Význam
cislo X N 10 2 Číslo karty
nazev F T 64 0 Název karty
jednotka F T 3 0 Měrná jednotka
cena F N 17 6 Cena určená podmínkou cisloCeny
cenasdph F N 17 6 Tato cena s DPH
sazbadph F N 5 2 Sazba DPH
ciskat F N 8 0 Číslo v katalogu
ciskatlist F T X 0 Seznam čísel katalogu oddělených znakem "svislítko"(pipe, "|")
kod F T 14 0 EAN kód
kod1 F T 30 0 Uživatelský kód 1
skupina F T 10 0 Kód skupiny skl. karet
hmotnost F N 13 6 Hmotnost v kg
delka F N 12 3 Délka v metrech
sirka F N 12 3 Šířka v metrech
vyska F N 12 3 Výška v metrech
baleni F N 12 3 Množství MJ v balení
usrfld1 F T 40 0 Uživatelské pole 1
usrfld2 F T 40 0 Uživatelské pole 2
usrfld3 F T 40 0 Uživatelské pole 3
usrfld4 F T 40 0 Uživatelské pole 4
usrfld5 F T 40 0 Uživatelské pole 5
poznamka F T 50 0 Poznámka
poznamka1 F M X 0 Doplňující poznámka (musí být nastaveno polePoznamka1)
nazev2 F T 64 0 Název 2 karty
maxslevap F N 6 2 Maximální sleva karty
variantgrp F N 10 0 Číslo skupiny variant
pocetmj X N 15 6 Počet MJ na požadovaném skladu
pocrezmj X N 15 6 Počet rezervovaných MJ na požadovaném skladu
pocobjmj X N 15 6 Počet objednaných MJ u dodavatelů na zvoleném skladu.
cena1 F N 17 6 Prodejní cena 1
cena1sdph F N 17 6 Prodejní cena 1 s DPH
cena2 F N 17 6 Prodejní cena 2
cena2sdph F N 17 6 Prodejní cena 2 s DPH
cena3 F N 17 6 Prodejní cena 3
cena3sdph F N 17 6 Prodejní cena 2 s DPH
cena4 F N 17 6 Prodejní cena 4
cena4sdph F N 17 6 Prodejní cena 4 s DPH
cena5 F N 17 6 Prodejní cena 5
cena5sdph F N 17 6 Prodejní cena 5 s DPH
pozice F T 10 0 Pozice na požadovaném skladu
malpopis F T 80 0 Malý popis
velpopis F M X 0 Velký popis
malpopis2 F T 80 0 Malý popis 2 (musí být nastaveno poleDetail2)
velpopis2 F M X 0 Velký popis 2 (musí být nastaveno poleDetail2)
malobr F T 40 0 Název malého obrázku
velobr F T 40 0 Název velkého obrázku
malobraz F B X 0 Malý obrázek (musí být nastaveno malObraz)
velobraz F B X 0 Velký obrázek (musí být nastaveno velObraz)
skupnazev F T 50 0 Název katalogové skupiny
mena F T 3 0 Měna
phe_kod F T 15 0 Kód recyklačního poplatku
phe_popis F T 30 0 Název recyklačního poplatku
phe_castka F N 9 2 Recyklační poplatek z číselníku
phe_zakg F T 1 0 Je-li recyklační poplatek za kilogram (T|F)
minprodmj F N 15 6 Minimální prodávaný počet MJ. Pouze informace.
datdostup X D 10 0 Datum, od kdy bude zboží dostupné.
 
 
Element <katalog> (pouze stavy=F)
fields stavy Typ Délka DM Význam
idr F N 9 0  
ciskat F N 8 0 Číslo katalogové skupiny
uciskat F N 8 0 Číslo nadřazené katalogové skupiny
popis F T 45 0 Popis katalogové skupiny
poradi F N 8 0 Pořadí ve stromové struktuře
 
 
Element <nahrady> (pouze stavy=F)
fields stavy Typ Délka DM Význam
cislo F N 10 2 Číslo skladové karty
kod F T 14 0 EAN skladové karty
kod1 F T 30 0 Uživatelský kód 1 skladové karty
cislo_z F N 10 2 Číslo zaměnitelné skladové karty
kod_z F T 14 0 EAN zaměnitelné skladové karty
kod1_z F T 30 0 Uživatelský kód 1 zaměnitelné skladové karty
 
 
Element <doplnky> (pouze stavy=F)
fields stavy Typ Délka DM Význam
cislo F N 10 2 Číslo skladové karty
kod F T 14 0 EAN skladové karty
kod1 F T 30 0 Uživatelský kód 1 skladové karty
cislo_r F N 10 2 Číslo doplňkové skladové karty
kod_r F T 14 0 EAN doplňkové skladové karty
kod1_r F T 30 0 Uživatelský kód 1 doplňkové skladové karty
 
 
Element <navazujici> (pouze stavy=F)
fields stavy Typ Délka DM Význam
cislo F N 10 2 Číslo hlavní skladové karty
pocetmj F N 15 3 Počet MJ hlavní karty. Výchozí hodnota 1.
cislo_s F N 10 2 Číslo navazující skladové karty
pocetmj_s F N 15 3 Počet MJ navazující karty k zadanému počtu MJ hlavní karty
 
 
Element <zahrceny> (pouze stavy=F)
fields stavy Typ Délka DM Význam
cislo F N 10 2 Číslo skladové karty
cisloskl F N 3 0 Číslo skladu
mena F T 3 0 Kód měny
cena1 F N 15 3 Prodejní cena 1 v zahraniční měně
cena2 F N 15 3 Prodejní cena 2 v zahraniční měně
cena3 F N 15 3 Prodejní cena 3 v zahraniční měně
cena4 F N 15 3 Prodejní cena 4 v zahraniční měně
cena5 F N 15 3 Prodejní cena 5 v zahraniční měně

 

<mrpEnvelope>
  <body>
    <mrpResponse>
      <status>
        <request command="EXPEO0"/>
      </status>
      <data>
        <datasets>
          <karty>
            <rows>
              <row>
                <fields>
                  <cislo>1</cislo>
                  <nazev>Kladivo</nazev>
                  <jednotka>ks</jednotka>
                  <cena>223.97</cena>
                  <cenasdph>271</cenasdph>
                  <sazbadph>21</sazbadph>
                  <ciskat>2</ciskat>
                  <ciskatlist>2|21|22</ciskatlist>
                  <kod>8595008803359</kod>
                  <kod1></kod1>
                  <skupina>6</skupina>
                  <hmotnost>0</hmotnost>
                  <delka>0</delka>
                  <sirka>0</sirka>
                  <vyska>0</vyska>
                  <baleni>12</baleni>
                  <usrfld1></usrfld1>
                  <usrfld2></usrfld2>
                  <usrfld3></usrfld3>
                  <usrfld4></usrfld4>
                  <usrfld5></usrfld5>
                  <poznamka></poznamka>
                  <nazev2></nazev2>
                  <pocetmj>10</pocetmj>
                  <pocrezmj>2</pocrezmj>
                  <cena1>223.97</cena1>
                  <cena1sdph>271</cena1sdph>
                  <cena2>0</cena2>
                  <cena2sdph>0</cena2sdph>
                  <cena3>0</cena3>
                  <cena3sdph>0</cena3sdph>
                  <cena4>0</cena4>
                  <cena4sdph>0</cena4sdph>
                  <cena5>0</cena5>
                  <cena5sdph>0</cena5sdph>
                  <pozice></pozice>
                  <skupnazev>Skupina 6</skupnazev>
                  <mena>CZK</mena>
                  <phe_kod>AA-213-x-56</phe_kod>
                  <phe_popis>Test RP</phe_popis>
                  <phe_castka>1234.56</phe_castka>
                  <phe_zakg>F</phe_zakg>
                  <minprodmj>10</minprodmj>
                  <datdostup>2022-07-28</datdostup>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </karty>

          <katalog>
            <rows>
              <row>
                <fields>
                  <idr>321232</idr>
                  <ciskat>1</ciskat>
                  <popis>Nářadí</popis>
                  <poradi>0</poradi>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </katalog>

          <nahrady>
            <rows>
              <row>
                <fields>
                  <cislo>1</cislo>
                  <kod>8595008803359</kod>
                  <kod1></kod1>
                  <cislo_z>1.1</cislo_z>
                  <kod_z>8594007132571</kod_z>
                  <kod1_z></kod1_z>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </nahrady>

          <doplnky>
            <rows>
              <row>
                <fields>
                  <cislo>1</cislo>
                  <kod>8595008803359</kod>
                  <kod1></kod1>
                  <cislo_r>1.1</cislo_z>
                  <kod_r>8594007132571</kod_z>
                  <kod1_r></kod1_z>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </doplnky>

          <zahrceny>
            <rows>
              <row>
                <fields>
                  <cislo>1</cislo>
                  <cisloskl>1</cisloskl>
                  <mena>EUR</mena>
                  <cena1>1.23</cena1>
                  <cena2>0</cena2>
                  <cena3>0</cena3>
                  <cena4>0</cena4>
                  <cena5>0</cena5>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </zahrceny>

        </datasets>
      </data>
    </mrpResponse>
  </body>
</mrpEnvelope>

EXPEO1

Export skladových karet do e-obchodu. Datový element obsahuje filtrovací podmínky <fltvalue name="jmeno_filtru">podminka</fltvalue>.

Požadavek

Filtrovací podmínky jsou stejné jak u příkazu EXPEO0. Jediným rozdílem je filtr pro číslo skladu, kde může být zadán rozsah v rámci platných filtrovacích podmínek.

 <mrpEnvelope>
  <body>
    <mrpRequest>
      <request command="EXPEO1" requestId=""> 
      </request>
      <data>
        <filter>
          <fltvalue name="cisloSkladu">1..3</fltvalue>
          <fltvalue name="cisloCeny">2</fltvalue>
          <fltvalue name="malObraz">T</fltvalue>
          <fltvalue name="velObraz">T</fltvalue>
          <fltvalue name="stavy">F</fltvalue>
          <fltvalue name="meny">EUR|USD|HUF</fltvalue>
          <fltvalue name="SKKAR.CISLO">1..10</fltvalue>
        </filter>
      </data>
    </mrpRequest>
  </body>
</mrpEnvelope>

Odpověď

 

Element <sklady> Vždy
fields stavy Typ Délka DM Význam
cisloskl X N 3 0 Číslo skladu
nazevskl X T 30 0 Název skladu
 
 
Element <stavy> Vždy
fields stavy Typ Délka DM Význam
cisloskl X N 3 0 Číslo skladu
cislokar X N 10 2 Číslo karty
datdostup X D 10 0 Datum, od kdy bude zboží dostupné.
pocetmj X N 15 6 Počet MJ ve skladu
pocrezmj X N 15 6 Počet rezervovaných MJ na požadovaném skladu
pocobjmj X N 15 6 Počet objednaných MJ u dodavatelů na zvoleném skladu.
cena F N 17 6 Cena určená podmínkou cisloCeny
cenasdph F N 17 6 Tato cena s DPH
cena1 F N 17 6 Prodejní cena 1
cena1sdph F N 17 6 Prodejní cena 1 s DPH
cena2 F N 17 6 Prodejní cena 2
cena2sdph F N 17 6 Prodejní cena 2 s DPH
cena3 F N 17 6 Prodejní cena 3
cena3sdph F N 17 6 Prodejní cena 2 s DPH
cena4 F N 17 6 Prodejní cena 4
cena4sdph F N 17 6 Prodejní cena 4 s DPH
cena5 F N 17 6 Prodejní cena 5
cena5sdph F N 17 6 Prodejní cena 5 s DPH
pozice F T 10 0 Pozice na požadovaném skladu
mena F T 3 0 Měna
 
 
Element <karty> (pouze stavy=F)
fields stavy Typ Délka DM Význam
cislo F N 10 2 Číslo karty
nazev F T 64 0 Název karty
jednotka F T 3 0 Měrná jednotka
sazbadph F N 5 2 Sazba DPH
ciskat F N 8 0 Číslo v katalogu
ciskatlist F T X 0 Seznam čísel katalogu oddělených znakem "svislítko"(pipe, "|")
kod F T 14 0 EAN kód
kod1 F T 30 0 Uživatelský kód 1
skupina F T 10 0 Kód skupiny skl. karet
hmotnost F N 13 6 Hmotnost v kg
delka F N 12 3 Délka v metrech
sirka F N 12 3 Šířka v metrech
vyska F N 12 3 Výška v metrech
baleni F N 12 3 Množství MJ v balení
usrfld1 F T 40 0 Uživatelské pole 1
usrfld2 F T 40 0 Uživatelské pole 2
usrfld3 F T 40 0 Uživatelské pole 3
usrfld4 F T 40 0 Uživatelské pole 4
usrfld5 F T 40 0 Uživatelské pole 5
poznamka F T 50 0 Poznámka
poznamka1 F M X 0 Doplňující poznámka (musí být nastaveno polePoznamka1)
nazev2 F T 64 0 Název 2 karty
maxslevap F N 6 2 Maximální sleva karty
variantgrp F N 10 0 Číslo skupiny variant
malpopis F T 80 0 Malý popis
velpopis F M X 0 Velký popis
malpopis2 F T 80 0 Malý popis 2 (musí být nastaveno poleDetail2)
velpopis2 F M X 0 Velký popis 2 (musí být nastaveno poleDetail2)
malobr F T 40 0 Název malého obrázku
velobr F T 40 0 Název velkého obrázku
malobraz F B X 0 Malý obrázek (musí být nastaveno malObraz)
velobraz F B X 0 Velký obrázek (musí být nastaveno velObraz)
skupnazev F T 50 0 Název katalogové skupiny
phe_kod F T 15 0 Kód recyklačního poplatku
phe_popis F T 30 0 Název recyklačního poplatku
phe_castka F N 9 2 Recyklační poplatek z číselníku
phe_zakg F T 1 0 Je-li recyklační poplatek za kilogram (T|F)
minprodmj F N 15 6 Minimální prodávaný počet MJ. Pouze informace.
 
 
Element <katalog> (pouze stavy=F)
fields stavy Typ Délka DM Význam
idr F N 9 0  
ciskat F N 8 0 Číslo katalogové skupiny
uciskat F N 8 0 Číslo nadřazené katalogové skupiny
popis F T 45 0 Popis katalogové skupiny
poradi F N 8 0 Pořadí ve stromové struktuře
 
 
Element <nahrady> (pouze stavy=F)
fields stavy Typ Délka DM Význam
cislo F N 10 2 Číslo skladové karty
kod F T 14 0 EAN skladové karty
kod1 F T 30 0 Uživatelský kód 1 skladové karty
cislo_z F N 10 2 Číslo zaměnitelné skladové karty
kod_z F T 14 0 EAN zaměnitelné skladové karty
kod1_z F T 30 0 Uživatelský kód 1 zaměnitelné skladové karty
 
 
Element <doplnky> (pouze stavy=F)
fields stavy Typ Délka DM Význam
cislo F N 10 2 Číslo skladové karty
kod F T 14 0 EAN skladové karty
kod1 F T 30 0 Uživatelský kód 1 skladové karty
cislo_r F N 10 2 Číslo doplňkové skladové karty
kod_r F T 14 0 EAN doplňkové skladové karty
kod1_r F T 30 0 Uživatelský kód 1 doplňkové skladové karty
 
 
Element <navazujici> (pouze stavy=F)
fields stavy Typ Délka DM Význam
cislo F N 10 2 Číslo hlavní skladové karty
pocetmj F N 15 3 Počet MJ hlavní karty. Výchozí hodnota 1.
cislo_s F N 10 2 Číslo navazující skladové karty
pocetmj_s F N 15 3 Počet MJ navazující karty k zadanému počtu MJ hlavní karty
 
 
Element <zahrceny> (pouze stavy=F)
fields stavy Typ Délka DM Význam
cislo F N 10 2 Číslo skladové karty
cisloskl F N 3 0 Číslo skladu
mena F T 3 0 Kód měny
cena1 F N 15 3 Prodejní cena 1 v zahraniční měně
cena2 F N 15 3 Prodejní cena 2 v zahraniční měně
cena3 F N 15 3 Prodejní cena 3 v zahraniční měně
cena4 F N 15 3 Prodejní cena 4 v zahraniční měně
cena5 F N 15 3 Prodejní cena 5 v zahraniční měně

 

<mrpEnvelope>
  <body>
    <mrpResponse>
      <status>
        <request command="EXPEO1"/>
      </status>
      <data>
        <datasets>
          <sklady>
            <rows>
              <row>
                <fields>
                  <cisloskl>1</cisloskl>
                  <nazevskl>Sklad 1</nazevskl>
                </fields>
              </row>
            </rows>
          </sklady>

          <stavy>
            <rows>
              <row>
                <fields>
                  <cisloskl>1</cisloskl>
                  <cislo>1</cislo>
                  <datdostup>2022-07-28</datdostup>
                  <pocetmj>10</pocetmj>
                  <pocrezmj>2</pocrezmj>
                  <cena>223.97</cena>
                  <cenasdph>271</cenasdph>
                  <cena1>223.97</cena1>
                  <cena1sdph>271</cena1sdph>
                  <cena2>0</cena2>
                  <cena2sdph>0</cena2sdph>
                  <cena3>0</cena3>
                  <cena3sdph>0</cena3sdph>
                  <cena4>0</cena4>
                  <cena4sdph>0</cena4sdph>
                  <cena5>0</cena5>
                  <cena5sdph>0</cena5sdph>
                  <pozice></pozice>
                  <mena>CZK</mena>
                </fields>
              </row>
            </rows>
          </stavy>

          <karty>
            <rows>
              <row>
                <fields>
                  <cislo>1</cislo>
                  <nazev>Kladivo</nazev>
                  <jednotka>ks</jednotka>
                  <sazbadph>21</sazbadph>
                  <ciskat>2</ciskat>
                  <ciskatlist>2|21|22</ciskatlist>
                  <kod>8595008803359</kod>
                  <kod1></kod1>
                  <skupina>6</skupina>
                  <hmotnost>0</hmotnost>
                  <delka>0</delka>
                  <sirka>0</sirka>
                  <vyska>0</vyska>
                  <baleni>12</baleni>
                  <usrfld1>Text, UsrFld25_yyyyy</usrfld1>
                  <usrfld2></usrfld2>
                  <usrfld3></usrfld3>
                  <usrfld4></usrfld4>
                  <usrfld5></usrfld5>
                  <poznamka></poznamka>
                  <nazev2></nazev2>
                  <skupnazev>Skupina 6</skupnazev>
                  <minprodmj>10</minprodmj>
                </fields>
              </row>
            </rows>
          </karty>

          <katalog>
            <rows>
              <row>
                <fields>
                  <idr>321232</idr>
                  <ciskat>1</ciskat>
                  <popis>Nářadí</popis>
                  <poradi>0</poradi>
                </fields>
              </row>
            </rows>
          </katalog>

          <nahrady>
            <rows>
              <row>
                <fields>
                  <cislo>1</cislo>
                  <kod>8595008803359</kod>
                  <kod1></kod1>
                  <cislo_z>1.1</cislo_z>
                  <kod_z>8594007132571</kod_z>
                  <kod1_z></kod1_z>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </nahrady>

          <doplnky>
            <rows>
              <row>
                <fields>
                  <cislo>1</cislo>
                  <kod>8595008803359</kod>
                  <kod1></kod1>
                  <cislo_r>1.1</cislo_z>
                  <kod_r>8594007132571</kod_z>
                  <kod1_r></kod1_z>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </doplnky>

          <zahrceny>
            <rows>
              <row>
                <fields>
                  <cislo>1</cislo>
                  <cisloskl>1</cisloskl>
                  <mena>EUR</mena>
                  <cena1>1.23</cena1>
                  <cena2>0</cena2>
                  <cena3>0</cena3>
                  <cena4>0</cena4>
                  <cena5>0</cena5>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </zahrceny>

        </datasets>
      </data>
    </mrpResponse>
  </body>
</mrpEnvelope>

IMPEO0

Import objednávek z e-obchodu. Datový element obsahuje jednak globální parametry <paramvalue name="jmeno_parametru">hodnota_parametru</paramvalue>, které jsou nepovinné, tak vlastní objednávky.

Požadavek

 

  <params>
    <paramvalue name="cisloSkladu">1</paramvalue>
    ...
  </params>
  <objednavka ...>
    <parametryDokladu .../>
    <mena .../>
    <rezimDPH .../>
    <adresa ...> 
      <firma .../>
      <osoba .../>
      <!-- Email se sklada az do delky pole v databazi -->
      <email>ja_1@xyz.cz</email>
      ...
      <email>ja_n@xyz.cz</email>
      <!-- Telefon muze obsahovat tri polozky -->
      <tel>123456781</tel>
      <tel>123 456 789</tel>
      <uzivatelskaPole>
        <!-- Celkem muze byt pet uzivatelkych poli s cislem pole v nazvu tagu -->
        <uzivatelskePole1>hodnota uzivatelskeho pole</uzivatelskePole1>
        ...
      </uzivatelskaPole>
    </adresa>
    <adresa_dod ...> 
      <firma .../>
      <osoba .../>
      <!-- Email se sklada az do delky pole v databazi -->
      <email>ja1@xyz.cz</email>
      ...
      <email>ja3@xyz.cz</email>
      <!-- Telefon muze obsahovat tri polozky -->
      <uzivatelskaPole>
        <!-- Celkem muze byt pet uzivatelkych poli s cislem pole v nazvu tagu -->
        <uzivatelskePole1>hodnota uzivatelskeho pole</uzivatelskePole1>
        ...
      </uzivatelskaPole>
    </adresa_dod>
    <polozky>
      <polozka .../>
    </polozky>
    <poznamka>
      ...
    </poznamka>
    <uzivatelskaPole>
      <!-- Celkem muze byt pet uzivatelkych poli s cislem pole v nazvu tagu -->
      <uzivatelskePole1>hodnota uzivatelskeho pole</uzivatelskePole1>
      ...
    </uzivatelskaPole>
  </objednavka>

 

 

Atributy elementu <paramvalue> nepovinný
name O/M Typ Délka DM Význam Od verze
cisloSkladu O N 3 0 Číslo skladu pro objednávky. Pokud nebude uvedeno, bere se z konfigurace programu.  
stredisko O T 6 0 Číslo střediska pro objednávky. Pokud nebude uvedeno, bere se z konfigurace programu.  
cisloZakazky O T 15 0 Číslo zakázky pro objednávky. Pokud nebude uvedeno, bere se z konfigurace programu.  
prefixRadyObj O T 10 0 Prefix číselné řady pro objednávky. Pokud nebude uvedeno, bere se z konfigurace programu.  
 
 
Atributy elementu <objednavka> povinný
name O/M Typ Délka DM Význam Od verze
stredisko O T 6 0 Číslo střediska pro objednávku. Pokud nebude uvedeno, bere se z <paramvalue> nebo z konfigurace programu. 5.55.005
cisloZakazky O T 15 0 Číslo zakázky pro objednávku. Pokud nebude uvedeno, bere se z <paramvalue> nebo z konfigurace programu. 5.55.005
formaUhrady O T 10 0 Forma úhrady  
zpusobDopravy O T 10 0 Způsob dopravy  
variabilniSymbol O N 10 0 Variabilní symbol  
puvodniCislo O T 50 0 Původní číslo objednávky  
datum O D 10 0 Datum objednávky RRRR-MM-DD  
datumDodani O D 10 0 Dodací lhůta objednávky RRRR-MM-DD 5.55.005
cenySDPH O L 1 0 Ceny v objednávce jsou/nejsou s DPH  
fixniCena O T 1 0 Ceny v objednávce jsou neměnné[T|F|X]  
typDPH O N 2 0 Typ DPH dle číselníku typů DPH pro uskutečněná plnění 6.30.001
Pořadí ve vyhodnocování zadání střediska:
  1. Středisko uvedené v objednávce
  2. Pokud je to v konfiguraci povoleno, středisko uvedené v adrese
  3. Středisko uvedené v <paramvalue>
  4. Středisko uvedené v konfiguraci importu
 
 
Atributy elementu <adresa> povinný
name O/M Typ Délka DM Význam Od verze
id O T 10 0 Identifikace zákazníka v e-obchodu  
ulice O T 30 0 Ulice a číslo popisné  
mesto O T 30 0 Město  
psc O T 15 0 PSČ  
kodStatu O T 2 0 ISO kód státu 5.35.005
fyzickaOsoba O L 1 0 Příznak, zda adresa je fyzickou osobou.[T|F] 5.72.001
 
 
Atributy elementu <firma> nepovinný
name O/M Typ Délka DM Význam Od verze
nazev O T 100 0 Název firmy  
ico O T 12 0  
dic O T 17 0 DIČ  
ic_dph O T 14 0 IČ DPH (pouze ve slovenské verzi) 5.60.003
 
 
Atributy elementu <osoba> nepovinný
name O/M Typ Délka DM Význam Od verze
jmeno O T 30 0 Jméno  
prijmeni O T 30 0 Příjmení  
Součet délek obou atributů musí být menší jak 30 znaků
 
 
Element <email> nepovinný
name O/M Typ Délka DM Význam Od verze
email O T 256 0 Email  
E-mail adresy se skládají až do délky pole v databázi
 
 
Element <tel> nepovinný
name O/M Typ Délka DM Význam Od verze
tel O T 30 0 Telefon  
Mohou být uvedeny maximálně tři elementy
 
 
Element <uzivatelskaPole> nepovinný
element O/M Typ Délka DM Význam Od verze
uzivatelskePole1 O T 40 0 Hodnota uživatelského pole 1 6.29.002
uzivatelskePole2 O T 40 0 Hodnota uživatelského pole 2 6.29.002
uzivatelskePole3 O T 40 0 Hodnota uživatelského pole 3 6.29.002
uzivatelskePole4 O T 40 0 Hodnota uživatelského pole 4 6.29.002
uzivatelskePole5 O T 40 0 Hodnota uživatelského pole 5 6.29.002
 
 
Atributy elementu <parametryDokladu> nepovinný
name O/M Typ Délka DM Význam Od verze
UPDP O N 1 0 UnitPriceDecimalPlaces
Počet desetinných míst Ceny za měrnou jednotku (rozsah 1..4, pro SK verzi 1..6)
6.50.001
VATRU O N 6 2 VATRoundingUnit
Zaokrouhlování DPH - jednotky (např. 1.00, 0.10, 0.01).
Pouze pro CZ verzi.
6.50.001
TRU O N 6 2 TotalRoundingUnit
Zaokrouhlování celkové částky dokladu - jednotky (např. 1.00, 0.10, 0.01)
6.50.001
TRM O N 1 0 TotalRoundingMethod
Zaokrouhlování celkové částky - způsob (0 - přirozeně, 1 - dolů, 2 - nahoru, 3 - bankéřské zaokrouhlení)
6.50.001
VATCA O N 1 0 VATCoefficientApplication
Pro výpočet celkové DPH použít Koeficient DPH (0 - nepoužít, 1 - použít).
Pouze pro CZ verzi.
6.50.001
VATCUPA O N 1 0 VATCoefficientUnitPriceApplication
Pro výpočet jednotkové DPH použít Koeficient DPH (0 - nepoužít, 1 - použít).
Pouze pro CZ verzi.
6.50.001
TRD O N 1 0 TotalRoundingDissolving
Rozpuštění celkového zaokrouhlení (0 - rozpustit do částky MIMODPH, 1 - rozpustit do ZAKLAD+DPH)
6.50.001
TRDCA O N 1 0 TotalRoundingDissolvingCoefficientApplication
Pro rozpuštění zaokrouhlení použít Koeficient DPH (0 - podle způsobu výpočtu dokladu, 1 - vždy použít koeficient).
Pouze pro CZ verzi a TRD=1.
6.50.001
VATFRB O N 1 0 VATFromRoundedBase
Celkovou DPH počítat ze zaokrouhleného základu (0 - z nezaokrouhleného, 1 - ze zaokrouhleného).
Pouze SK verze.
6.50.001
Parametry výpočtu dokladu.
 
 
Atributy elementu <mena> nepovinný
name O/M Typ Délka DM Význam Od verze
kod O T 3 0 ISO kód měny  
kurz O N 13 6 Kurz  
mnozstvi O N 13 6 k množství účetní měny  
 
 
Atributy elementu <rezimDPH> nepovinný
name O/M Typ Délka DM Význam Od verze
kod O N 1 0 Kód režimu DPH
0 - Běžný tuzemský režim
1 - Režim registrace EU
2 - Režim OSS (MOSS)
6.30.001
statDPH O T 2 0 Stát DPH 6.30.001
vatDPH O T 17 0 VAT reg.č. (DIČ) 6.30.001
 
 
Element <poznamka> nepovinný
name O/M Typ Délka DM Význam Od verze
poznamka O T X 0 Poznámka jako dlouhý text  
 
 
Element <uzivatelskaPole> nepovinný
element O/M Typ Délka DM Význam Od verze
uzivatelskePole1 O T 40 0 Hodnota uživatelského pole 1  
uzivatelskePole2 O T 40 0 Hodnota uživatelského pole 2  
uzivatelskePole3 O T 40 0 Hodnota uživatelského pole 3  
uzivatelskePole4 O T 40 0 Hodnota uživatelského pole 4  
uzivatelskePole5 O T 40 0 Hodnota uživatelského pole 5  
 
 
Atributy elementu <polozka> povinný
name O/M Typ Delka DM Význam Od verze
cisloKarty O N 10 2 Číslo skladové karty  
eanKarty O T 13 0 EAN skladové karty (pro identifikaci)  
kodKarty O T 30 0 Uživatelský kód skladové karty (pro identifikaci)  
text O T 50 0 Text objednávky  
pocetMJ M N 15 6 Počet MJ  
cenaMJ M N 17 6 Cena za MJ  
slevaMJ O N 17 6 Sleva v měně dokladu za MJ. Částka slevy je uváděna buď s DPH nebo bez DPH v závislosti na nastavení tohoto atributu v hlavičce objednávky. Pokud je uvedena, má přednost před slevou uvedenou v procentech. 5.55.005
sleva O N 6 2 Sleva v procentech za MJ 5.55.005
sazbaDPH O N 5 2 Sazba DPH  
typPolozky O T 2 0 Typ položky dle číselníku Typy položek  
fixniCena O L 1 0 Ceny v řádku objednávky jsou neměnné.
Záleží na nastavení v hlavičce dokladu.[T|F]
 
poznamkaPolozky O T 20 0 Poznámka položky  
Pokud je uveden pouze text, nemusí být atributy pocetMJ a cenaMJ uvedeny.
Podle atributů eanKarty a kodKarty se vyhledává pouze v případě, že má program nastavno hlídání jedinečnosti těchto polí. Vyhledávání skladové položky probíhá v pořadí cisloKartyeanKarty a nakonec kodKarty.

 

Přidávání adres

Z e-shopu chodí dva identifikátory:

  • id
  • ico
Pro určení adresy je v tomto případě primární id, které se ukládá do databáze informačního systému (IS). Samotné adresy pro jeden doklad jsou v datasetu (DS) a ukládají se před dokladem.
id generuje e-shop při založení nového uživatele. Nemá nic společného s primárním klíčem tabulky v účetnictví. Je jasné, že pokud je k IS připojeno více e-shopů, musí mít organizačně zajištěno zamezení duplicity id mezi obchody u různých adres.
Hledací funkce přes id a ico vrací vždy ten druhý identifikátor z databáze (plus něco navíc). V tomto textu jsou jako isID a isIČO.
Dokladem se v textu myslí samotná objednávka, ...

Hlavní (fakturační) adresa
V IS se hledá adresa podle id.
Pokud je nalezena, aktualizuje se ico podle isIČO a toto ico je použito do dokladu. Adresa se neukládá.
Pokud nebyla nalezena adresa podle id, hledá se podle ico. Pokud adresu je nalezena, pak se testuje, zda je isID prázdné.
Pokud je prázdné a id je vyplněno, pak je provedena aktualizace isID v databázi. Pokud není isID prázdné a id je vyplněno (z předchozího vyplývá, že je různé), pak je založena nová adresa pro toto ico, ale s lomítkem. Toto ico se použije pro doklad.
Pokud není isID prázdné a id není vyplněno, pak se nic nedělá.
Pokud nebyla nalezena adresa ani podle id, ani podle ico, pak je založena nová adresa.

Vedlejší (doručovací) adresa
V IS se hledá adresa podle id.
Pokud je nalezena, aktualizuje se ico podle isIČO a toto ico se použije do dokladu. Adresa se neukládá.
Pokud nebyla nalezena v IS, hledá se adresa podle id v DS. Pokud je nalezena, aktualizuje se ico podle dsIČO a toto ico je použito do dokladu. Adresa se neukládá.
Pokud nebyla nalezena adresa podle id, hledá se v IS podle ico. Pokud je adresa nalezena, tak se pak testuje, zda je vrácené isID prázdné. Pokud je isID prázdné a id je vyplněno, pak je provedena aktualizace isID v databázi.
Pokud není isID prázdné a id je vyplněno (z předchozího vyplývá, že je různé), pak je založena nová adresa pro toto ico, ale s lomítkem. Toto ico se použije pro doklad.
Pokud není isID prázdné a id není vyplněno, pak se nic nedělá. Pokud nebyla nalezena adresa v IS, hledáme se podle ico v DS. Pokud je adresa nalezena, tak se pak testuje, zda je dsID prázdné. Pokud je prázdné a id je vyplněno, pak je provedena aktualizace dsID v datasetu. Pokud není dsID prázdné a id je vyplněno (z předchozího vyplývá, že je různé), pak je založena nová adresa pro toto ico, ale s lomítkem. Toto ico se použije pro doklad. Pokud není dsID prázdné a id není vyplněno, pak nic neděláme. Pokud nebyla nalezena adresa ani podle id, ani podle ico, pak je založena nová adresa. Použije se pro to ico fakturační adresy a přidá se lomítko.

 

 

 <mrpEnvelope>
  <body>
    <mrpRequest>
      <!-- Povinny blok pro definici prikazu -->
      <request command="IMPEO0" requestId="20121203140300033"> 
        <!-- requestId je ID spojeni (treba TIMESTAMP 20121120093530125) -->
      </request>
      <data>
        <params>
          <paramvalue name="cisloSkladu">1</paramvalue>
          <paramvalue name="stredisko">0</paramvalue>
          <paramvalue name="cisloZakazky">0</paramvalue>
          <!-- paramvalue name="prefixRadyObj">EO001</paramvalue> -->
        </params>
        <objednavka formaUhrady="Hotovost" puvodniCislo="22" datum="2014-01-01" cenySDPH="T">
          <!-- Parametry výpočtu dokladu. Zaokrouhlování hlavičky dokladu na koruny. -->
          <parametryDokladu TRU="1.00"/>
          <mena kod="CZK" kurz="1" mnozstvi="1"/>
          <rezimDPH kod="1" statDPH="AT" vatDPH="AT12345678"/>
          <adresa id="22" ulice="Vonaskova 123" mesto="Zlín" psc="76001"> 
            <firma nazev="" ico="" dic=""/>
            <osoba jmeno="Jan" prijmeni="Vonásek"/>
            <!-- Email se sklada az do delky pole v databazi -->
            <email>ja1@xyz.cz</email>
            <email>ja2@xyz.cz</email>
            <email>ja3@xyz.cz</email>
            <email>ja4@xyz.cz</email>
            <!-- Telefon muze obsahovat tri polozky -->
            <tel>123456781</tel>
            <tel>123 456 789</tel>
          </adresa>
          <adresa_dod id="" ulice="Vonaskova 123" mesto="Zlín" psc="760  01"> 
            <firma nazev="" ico="" dic=""/>
            <osoba jmeno="Jan" prijmeni="Vonásek"/>
            <!-- Email se sklada az do delky pole v databazi -->
            <email>ja1@mrp.cz</email>
            <email>ja2@mrp.cz</email>
            <email>ja3@mrp.cz</email>
            <!-- Telefon muze obsahovat tri polozky -->
          </adresa_dod>
          <polozky>
            <polozka cisloKarty="9" text="" cenaMJ="10" pocetMJ="1" sazbaDPH="21"/>
          </polozky>
          <poznamka>
            <!-- Je to jako element, protoze to je memo -->
            Toto je poznamka
            na vice radek.
            Alespon na tri.
          </poznamka>
          <uzivatelskaPole>
            <uzivatelskePole1>uzivatelskePole1</uzivatelskePole1>
            <uzivatelskePole2>uzivatelskePole2</uzivatelskePole2>
            <uzivatelskePole3>uzivatelskePole3</uzivatelskePole3>
            <uzivatelskePole4>uzivatelskePole4</uzivatelskePole4>
            <uzivatelskePole5>uzivatelskePole5</uzivatelskePole5>
          </uzivatelskaPole>
        </objednavka>
        <objednavka puvodniCislo="23" datum="2012-12-03" cenySDPH="T">
          <!-- Parametry výpočtu dokladu. Zaokrouhlování hlavičky dokladu na koruny. -->
          <parametryDokladu TRU="1.00"/>
          <mena kod="CZK" mnozstvi="1" kurz="1"/>
          <adresa id="22" ulice="Vonaskova 123" mesto="Zlín" psc="760  01"> 
            <firma nazev="" ico="" dic=""/>
            <osoba jmeno="Jan" prijmeni="Vonásek"/>
            <email></email>
            <tel></tel>
          </adresa>
          <polozky>
            <polozka cisloKarty="" text="Sluzby" cenaMJ="10" pocetMJ="1" sazbaDPH="14"/>
            <polozka cisloKarty="1" text="" cenaMJ="10" pocetMJ="1" sazbaDPH="14"/>
          </polozky>
          <poznamka>
            Toto je poznamka
            na vice radek.
            Alespon na dve.
          </poznamka>
        </objednavka>
      </data>
    </mrpRequest>
  </body>  
</mrpEnvelope>

Odpověď

Kladná odpověď obsahuje v datové části seznam originálních čísel objednávek a programem nově přiřazených čísel. Datová část se generuje pouze tehdy, pokud je posíláno původní číslo objednávky.

 

Atributy elementu <objednavka> nepovinný
name Typ Délka DM Význam
puvodnicislo T 50 0 Původní číslo objednávky
cislo T 10 0 Číslo objednávky přiřazené programem

 

<mrpEnvelope>
  <body>
    <mrpResponse>
      <status>
        <request command="IMPEO0" requestId="20140101140300033"/>
      </status>
      <data>
        <datasets>
          <objednavka>
            <rows>
              <row>
                <fields>
                  <puvodnicislo>1</puvodnicislo>
                  <cislo>OP20140001</cislo>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </objednavka>
        </datasets>
      </data>
    </mrpResponse>
  </body>
</mrpEnvelope>

CENEO0

Příkaz slouží pro zjištění cen pro konkrétní cenovou skupinu.

Požadavek

 

Atributy elementu <fltvalue> nepovinný
name O/M Typ Délka DM Význam Od verze
cisloSkladu O N 3 0 Číslo jednoho skladu, ze kterého se bude brát případná cena. [1..999]
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
cisloCeny O N 1 0 Číslo výchozí prodejní ceny. [0,1..5]
cenovaSkupina O N 4 0 Číslo cenové skupiny. [1..9999].
cenovaSkupina O T X X Čísla cenových skupin (1..9999) zadaných pomocí svislítka (|) nebo rozsahu (..).
Např. 1|2|4..6
6.40.011
datum O D 10 0 Datum platnosti cenové skupiny (XML formát)
cenySDPH O L 1 0 Zda budou ceny s/bez DPH [T|F]
sql O T X X Výběrové podmínky pomocí SQL syntaxe databazového serveru. Název pole musí být uveden včetně názvu tabulky skladových karet. 6.40.011
 
 
Seznam volitelných filtrovacích polí, které se přibližují filtrovacím podmínkám skladových karet. Jméno filtru se skládá ze jména tabulky, oddělovače a jména datového pole.
Výraz se zapisuje a vyhodnocuje stejným způsobem, jaku u filtru v programu MRP K/S, tedy při použití číselných a datumových výrazů musí tyto výrazy respektovat nastavení desetinných oddělovačů a tvaru data nastavených na klientské stanici.
Jsou uváděny pouze typy jednotlivých polí kvůli konstrukci dotazu.
name O/M Typ Délka DM Význam
SKKAR.CISLO O N X X Číslo skladové karty.
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
SKKAR.NAZOV O T X X Název skladové karty.
SKKAR.KOD O T X X EAN skladové karty.
SKKAR.KOD1 O T X X Uživatelský kód skladové karty.
SKKAR.KOD2 O T X X Uživatelský kód skladové karty.
SKKAR.KOD3 O T X X Uživatelský kód skladové karty.
SKKAR.SKUPINA O T X X Kód skupiny skladových karet.
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
SKKAR.CISKAT O N X X Kód katalogu skladových karet.
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
SKKAR.TYP_POL O T X X Kód typu položky skladové karty.
Tuto podmínku lze omezit nastavením "Vždy přidat omezující podmínky"
SKKAR.SADZBADPH O N X X Sazba DPH skladové karty.
SKKAR.BEZDPH O L X X Rozlišení mezi mimo DPH a nulovou sazbou [T|F].
SKKAR.POZNAMKA O T X X Poznámka skladové karty.
SKKAR.ZAKAZSLEVY O L X X Zákaz slevy skladové karty [T|F].
SKKAR.DODAVATEL O T X X IČ obchodníka (není to záložka dodavatelů).
SKKAR.POZNAMKA1 O T X X Rozšířená poznámka skladové karty.
SKKAR.DAT_ZAR O D X X Datum zařazení skladové karty.
SKKAR.POUZIVANA O L X X Příznak používání skladové karty [T|F].
SKKAR.TLAC O L X X Příznak zařazení karty do "tisku" [T|F].
SKKAR.USRFLD1 O T X X Uživatelské pole skladové karty.
SKKAR.USRFLD2 O T X X Uživatelské pole skladové karty.
SKKAR.USRFLD3 O T X X Uživatelské pole skladové karty.
SKKAR.USRFLD4 O T X X Uživatelské pole skladové karty.
SKKAR.USRFLD5 O T X X Uživatelské pole skladové karty.
SKKARSTA.POCETMJ O N X X Počet MJ na zvoleném skladu.
SKKARSTA.POCREZMJ O N X X Počet rezervovaných MJ na zvoleném skladu.
SKKARSTA.POCOBJMJ O N X X Počet objednaných MJ u dodavatelů na zvoleném skladu.
SKKARSTA.POZICE O T X X Umístění ve zvoleném skladu.
SKKARSTA.MINIMUM O N X X Nastavené minimum MJ na zvoleném skladu.
SKKARSTA.NORMA O N X X Nastavená norma MJ na zvoleném skladu.
SKKARSTA.MAXIMUM O N X X Nastavené maximum MJ na zvoleném skladu.

 

 <mrpEnvelope>
  <body>
    <mrpRequest>
      <request command="CENEO0" requestId=""> 
      </request>
      <data>
        <filter>
          <fltvalue name="cisloSkladu">1</fltvalue>
          <fltvalue name="cisloCeny">2</fltvalue>
          <fltvalue name="cenovaSkupina">1|2|4..6</fltvalue>
          <fltvalue name="datum">2014-01-01</fltvalue>
          <fltvalue name="cenySDPH">F</fltvalue>
          <!-- Nepovinny blok s pripadnymi daty, zalezi na prikazu, zdali je potrebuje -->
          <!-- Číslo karty v rozsahu 1 až 10 -->
          <fltvalue name="SKKAR.CISLO">1..10</fltvalue>
          <!-- Kód skupiny skladových karet A nebo B -->
          <fltvalue name="SKKAR.SKUPINA">A|B</fltvalue>
          <!-- Typ položky Z -->
          <fltvalue name="SKKAR.TYP_POL">Z</fltvalue>
        </filter>
      </data>
    </mrpRequest>
  </body>
</mrpEnvelope>

Odpověď

 

Element <ceny> povinný
name Typ Délka DM Význam
cislo N 10 2 Číslo karty
censkup N 4 0 Číslo cenové skupiny
cisloceny N 1 0 Číslo použité ceny
mena T 3 0 Měna
cenamj N 17 6 Cena určená podmínkou číslo ceny
sleva_p N 5 2 Jednotková sleva procentem
slevamj N 17 6 Jednotková sleva částkou

 

<mrpEnvelope>
  <body>
    <mrpResponse>
      <status>
        <request command="CENEO0"/>
      </status>
      <data>
        <datasets>
          <ceny>
            <rows>
              <row>
                <fields>
                  <cislo>1</cislo>
                  <censkup>1</censkup>
                  <cisloceny>1</cisloskl>
                  <mena>CZK</mena>
                  <cenamj>1000</cenamj>
                  <sleva_p>10</sleva_p>
                  <slevamj>100</slevamj>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </ceny>
        </datasets>
      </data>
    </mrpResponse>
  </body>
</mrpEnvelope>

ADREO0

Požadavek

 

Atributy elementu <fltvalue> nepovinný
Seznam volitelných filtrovacích polí, které se přibližují filtrovacím podmínkám adres. Jméno filtru se skládá ze jména tabulky, oddělovače a jména datového pole.
Výraz se zapisuje a vyhodnocuje stejným způsobem, jaku u filtru v programu MRP K/S, tedy při použití číselných a datumových výrazů musí tyto výrazy respektovat nastavení desetinných oddělovačů a tvaru data nastavených na klientské stanici.
Jsou uváděny pouze typy jednotlivých polí kvůli konstrukci dotazu.
name Typ Význam
ADRES.FIRMA T Firma
ADRES.MENO T Jméno
ADRES.ULICA T Ulice
ADRES.MESTO T Město
ADRES.PSC T PSČ
ADRES.KODSTAT T Kód státu
ADRES.ICO T
ADRES.DIC T DIČ
ADRES.TELEFON T Telefon
ADRES.FAX T Fax
ADRES.EMAIL T E-mail
ADRES.DAT_ZAR D Datum zařazení
ADRES.POZNAMKA T Poznámka
ADRES.CENSKUP N Cenová skupina
ADRES.EANKOD T EAN adresy
ADRES.FYZOSOB L Fyzická osoba [T|F]
ADRES.TLAC T Označeno do tisku [T|F]
ADRES.UCET T Výchozí bankovní účet
ADRES.USRFLD1 T Uživatelské pole 1 adresy
ADRES.USRFLD2 T Uživatelské pole 2 adresy
ADRES.USRFLD3 T Uživatelské pole 3 adresy
ADRES.USRFLD4 T Uživatelské pole 4 adresy
ADRES.USRFLD5 T Uživatelské pole 5 adresy
ADRES.SPLATNOST N Jiná splatnost faktury
ADRES.KREDIT N Částka kreditu
ADRES.CRPSTATUS T CRP-status
ADRES.FAKSTRED T Kód fakturačního střediska
KONTAKTY.IDENTIF T Obchodní zástupce

 

 <mrpEnvelope>
  <body>
    <mrpRequest>
      <request command="ADREO0" requestId=""> 
      </request>
      <data>
        <filter>
          <!-- Adresy s PSČ začínající na 100 -->
          <fltvalue name="ADRES.PSC">100*</fltvalue>
          <!-- Cenová skupina nastavena -->
          <fltvalue name="ADRES.CENSKUP">not null</fltvalue>
        </filter>
      </data>
    </mrpRequest>
  </body>
</mrpEnvelope>

Odpověď

 

Element <adres> Vždy
fields Typ Délka DM Význam
ico T 12 0
dic T 17 0 DIČ
ic_dph T 14 0 IČ DPH
id T 10 0 Identifikátor adresy v e-obchodu
firma T 50 0 Název firmy
meno T 30 0 Jméno
ulica T 30 0 Ulice a číslo popisné
mesto T 30 0 Město
psc T 15 0 PSČ
kodstat T 2 0 Kód státu
telefon T 30 0 Telefon
telefon1 T 30 0 Telefon
telefon2 T 30 0 Telefon
fax T 30 0 Fax
email T 256 0 E-mailová adresa
censkup N 4 0 Číslo cenové skupiny
stat T 30 0 Název státu

 

<mrpEnvelope>
  <body>
    <mrpResponse>
      <status>
        <request command="ADREO0"/>
      </status>
      <data>
        <datasets>
          <adres>
            <rows>
              <row>
                <fields>
                  <ico>A00001</ico>
                  <dic></dic>
                  <ic_dph></ic_dph>
                  <id>122</id>
                  <firma>Ferda Mravenec;</firma>
                  <meno>Pytlík</meno>
                  <ulica>K mraveništi 1</ulica>
                  <mesto>Borový les</mesto>
                  <psc>00000</psc>
                  <kodstat>CZ</kodstat>
                  <telefon>123 456 789</telefon>
                  <telefon1></telefon1>
                  <telefon2></telefon2>
                  <fax></fax>
                  <email></email>
                  <censkup>1</censkup>
                  <stat>Česká republika</stat>
                </fields>
              </row>
              <row>
                ....
              </row>
            </rows>
          </ceny>
        </datasets>
      </data>
    </mrpResponse>
  </body>
</mrpEnvelope>

EXPFV0 Export seznamu faktur vydaných s adresou odběratele

Požadavek

Příkaz umožňuje vyexportovat doklady s použitím filtrovacích podmínek (nepovinných) uvedených v části <filter>. Příkaz podporuje stránkování. Podporované filtrovací atributy elementu <fltvalue>:

  • DocumentNumber - číslo dokladu
  • CompanyId - IČO odběratele
  • PaymentState - stav zaplacení : 0-Všechny, 1-Všechny s úhradami ke dni (PaymentsToDate), 2-Zaplacené (úhrady=celkem), 3-Nezaplacené, nevyrovnané(úhrady<>celkem), 4-Přeplacené (úhrady>celkem), 5-Nedoplacené (úhrady<celkem), 6-Zaplacené + přeplacené
  • PaymentsToDate - Datum úhrad Do. Pro zjištění Stavu zaplacení se přihlíží jen k úhradám s datem menším nebo rovným PaymentsToDate. Nelze zadat intervalem či výrazem jako u jiných filtrovacích tagů. Hodnotou může být pouze konkrétní datum např. "31.12.2018"
  • IssueDate - Datum vystavení. Např. "01.01.2018..31.12.2018"
  • TaxPointDate - Datum plnění
  • PaymentDueDate - Datum splatnosti
  • CostCentre - Středisko. Např. "10|20"
  • ContractNumber - Číslo zakázky
  • OrderNumber - Číslo objednávky
  • OriginalOrderNumber - Původní číslo objednávky (filtrovací podmínku nelze použít pro exporty faktur přijatých)

 

 <mrpEnvelope>
  <body>
    <mrpRequest>
      <request command="EXPFV0" requestId=""> 
      </request>
      <data>
        <paging>
          <!-- Stránkování - omezení počtu záznamů -->
          <RowFrom>1</RowFrom>
          <RowTo>200</RowTo>
        </paging>
        <filter>
          <!-- Doklady s datem vystavení  -->
          <fltvalue name="IssueDate">01.01.2018..31.12.2018</fltvalue>
        </filter>
      </data>
    </mrpRequest>
  </body>
</mrpEnvelope>

Odpověď

V elementu <data> je vráceno XML formátu XML MRP-K/S verze 2.0.
Seznam a popis polí XML MRP-K/S verze 2.0 pro faktury vydané
Ukázkový soubor XML MRP-K/S verze 2.0 pro faktury vydané
Příkaz vrací zjednodušené XML obsahující údaje z hlaviček dokladů a dále pak adresu obchodního partnera v části Company. Neobsahuje části ItemsPayments , SumValues a PaymentSchedule.

Příklad vrácené odpovědi:
<mrpEnvelope>
  <body>
    <mrpResponse>
      <status>
        <request command="EXPFV0"/>
      </status>
      <data>
        <MRPKSData version="2.0" countryCode="CZ" currencyCode="CZK">
        <!--Source AppVendor="MRP" AppName="MRP-K/S" AppVersion="5.67(001)" AppSerial="UC010001"-->
          <IssuedInvoices>
            <Invoice>
              <DocumentNumber>55002</DocumentNumber>
              <IssueDate>2018-03-29</IssueDate>
              <CurrencyCode>CZK</CurrencyCode>
              <ValuesWithTax>F</ValuesWithTax>
              <TaxCode>19</TaxCode>
              <ZeroTaxRateAmount>0.00</ZeroTaxRateAmount>
              <Company>
                <CompanyId>99999999</CompanyId>
                <AddressId>X000001</AddressId>
                <Name>Nábytek a.s.</Name>
                <Street>K městu 10</Street>
                <City>Vrchlabí 1</City>
                <Country>Česká republika</Country>
                <CountryCode>CZ</CountryCode>
                <ZipCode>54301</ZipCode>
                <VatNumber>CZ99999999</VatNumber>
              </Company>
              ..
            </Invoice>
            ..
            <Invoice>
            </Invoice>
          </IssuedInvoices>
        </MRPKSData>
      </data>
    </mrpResponse>
  </body>
</mrpEnvelope>

EXPFV1 Export seznamu faktur vydaných s adresou odběratele, položkami a úhradami

Příkaz se chová podobně jako příkaz EXPFV0. Rozdíl je ve vrácené odpovědi, kdy XML navíc obsahuje i část Items s položkami faktur a část Payments s úhradami.

EXPFV2 Export seznamu faktur vydaných s uloženým opisem faktury ve formátu PDF

Příkaz se chová podobně jako příkaz EXPFV0. Rozdíl je ve vrácené odpovědi, kdy XML navíc obsahuje i část Attachments s PDF opisem faktury. Příkaz jako PDF opis exportuje soubor/dokument, který je u faktury uložen na záložce Přílohy. Pro správné fungování příkazu je třeba nastavit ukládání PDF jako přílohy.
Ukázkový XML soubor faktury s vloženou přílohou PDF


EXPFVPDF Export faktury vydané s online vygenerovanou PDF fakturou

Požadavek

Příkaz umožňuje vygenerovat PDF podobu faktury. Program pro vygenerování použije předlohy, které jsou specifikované v profilu pro export. Pokud v profilu nebude předloha uvedena, použije se výchozí předloha "01 - Faktura". Vygenerované PDF bude v XML uloženo ve větvi Attachments. XML nebude ve větvi Attachments obsahovat další přílohy(soubory JPG, DOC, PDF, ...) u dokladu uložené (uložené na záložce Přílohy). Pro vykonání příkazu je povinné v rámci filtrovacích podmínek uvést číslo dokladu/faktury ve filtrovacím tagu DocumentNumber. Filtr musí obsahovat pouze číslo jedné faktury, není povolen rozsah dokladů či výčet dokladů. Tisková předloha (předlohy) je povolena pouze pro tiskový modul FastReport. Předloha musí být pro generování PDF odladěna - nesmí zobrazovat žádné uživatelské dialogy či hlášení. Tyto by "zablokovaly" Autonomní režim.

 <mrpEnvelope>
  <body>
    <mrpRequest>
      <request command="EXPFVPDF" requestId=""> 
      </request>
      <data>
        <filter>
          <!-- Doklad s číslem  -->
          <fltvalue name="DocumentNumber">240153</fltvalue>
        </filter>
      </data>
    </mrpRequest>
  </body>
</mrpEnvelope>

Odpověď

V elementu <data> je vráceno XML formátu XML MRP-K/S verze 2.0.
Seznam a popis polí XML MRP-K/S verze 2.0 pro faktury vydané
Ukázkový soubor XML MRP-K/S verze 2.0 pro fakturu vydanou s pdf přílohou


EXPFP0 Export seznamu faktur přijatých s adresou dodavatele

Příkaz je ekvivalentem příkazu EXPFP0 pro agendu faktur přijatých
Seznam a popis polí XML MRP-K/S verze 2.0 pro faktury přijaté
Ukázkový soubor XML MRP-K/S verze 2.0 pro faktury přijaté

EXPFP1 Export seznamu faktur přijatých s adresou dodavatele, položkami a úhradami

Příkaz se chová podobně jako příkaz EXPFP0. Rozdíl je ve vrácené odpovědi, kdy XML navíc obsahuje i část Items s položkami faktur a část Payments s úhradami.

EXPOP0

Požadavek

 

Atributy elementu <fltvalue> nepovinný
Seznam volitelných filtrovacích polí, které se přibližují filtrovacím podmínkám objednávek. Jméno filtru se skládá ze jména tabulky, oddělovače a jména datového pole.
Výraz se zapisuje a vyhodnocuje stejným způsobem, jaku u filtru v programu MRP K/S, tedy při použití číselných a datumových výrazů musí tyto výrazy respektovat nastavení desetinných oddělovačů a tvaru data nastavených na klientské stanici.
Jsou uváděny pouze typy jednotlivých polí kvůli konstrukci dotazu.
name Typ Význam
OBJPR.CISLO T Číslo objednávky
OBJPR.DATUM D Datum objednávky
OBJPR.ORIGCISLO T Původní číslo objednávky
OBJPR.ICO T
polozky T Vrátit i stavy jednotlivých položek [T|F]
typDokladu T Vrátit požadovaný typ dokladu [O|N|X Objednávka|Nabídka|Cokoliv]
Pokud tato filtrovací podmínka není uvedena, příkaz vrací jen objednávky!

 

 <mrpEnvelope>
  <body>
    <mrpRequest>
      <request command="EXPOP0" requestId=""> 
      </request>
      <data>
        <filter>
          <!-- Objednávky s číslem začínajícím EO21 -->
          <fltvalue name="OBJPR.CISLO">EO21*</fltvalue>
          <!-- Objednávky s datem v rozmezí... -->
          <fltvalue name="OBJPR.DATUM">1.12.2021..31.12.2021</fltvalue>
          <!-- Vrátit i stavy jednotlivých položek -->
          <fltvalue name="polozky">T</fltvalue>
          <fltvalue name="typDokladu">X</fltvalue>
        </filter>
      </data>
    </mrpRequest>
  </body>
</mrpEnvelope>

Odpověď

 

Atributy elementu <objednavka>
name Typ Délka DM Význam Od verze
cisloObj T 10 0 Číslo objednávky 6.30.001
puvodniCislo T 50 0 Původní číslo objednávky 6.30.001
datum D 10 0 Datum objednávky RRRR-MM-DD 6.30.001
stav N 1 0 Stav objednávky
<0 - blokované
0 - vybavené
1 - částečně vybavené
2 - nevybavené
6.30.001
usrLock T 1 0 Příznak uzamčené objednávky
T - uzamčena některým uživatelem
F - neuzamčena
6.39.006
ico T 14 0 IČ zákazníka 6.30.001
nabidka T 1 0 T - nabídka, F - objednávka 6.42.003
Atributy elementu <polozka>
fields Typ Délka DM Význam Od verze
stav N 1 0 Stav objednávky
<0 - blokované
0 - vybavené
1 - částečně vybavené
2 - nevybavené
6.30.001
vybavitMJ N 15 3 Kolik MJ ještě zbývá vybavit 6.30.001
text T 100 0 Text řádku objednávky 6.30.001
cisloKarty N 10 2 Číslo skladové karty 6.30.001
eanKarty T 14 0 EAN skladové karty 6.30.001
kodKarty T 30 0 Uživatelský kód skladové karty 6.30.001

 

<mrpEnvelope>
  <body>
    <mrpResponse>
      <status>
        <request command="EXPOP0"/>
      </status>
      <data>
        <objednavka cisloObj="0000000029" puvodniCislo="22" datum="2015-01-01" stav="2" usrLock="F" ico="A00001">
          <polozky>
            <polozka stav="2" vybavitMJ="2" text="Zboží" cisloKarty="1" eanKarty="8595229909767" kodKarty="16060.01"/>
          </polozky>
        </objednavka>
      </data>
    </mrpResponse>
  </body>
</mrpEnvelope>