JADU.dll pro EET/EETXP dle specifikace ver 3.1 **************************************** EET - pro Windows 7 a výše EETXP - pro Windows XP a výše **************************************** Způsob použití (ukázka ve Visual Foxpro): Public Leet Leet=Createobject("JADU.EET") &&verze pro Windows 7+ Leet=Createobject("JADU.EETXP") &&verze pro Windows XP+ Leet.TimeOut=2000 &&Defaultová hodnota=5000ms, nelze zadat hodnotu pod 2000ms Leet.DIC="CZ00000019" *Leet.DICZast='' &&DIČ pověřujícího poplatníka Leet.CertHeslo='eet' Leet.CertSb='c:\vfp\eet\Certifikát\EET_CA1_Playground-CZ00000019.p12' Leet.Rezim=0 &&Běžný - 0, zjednodušený - 1 Leet.Overeni=.t. &&Slouží k ověření komunikace. Není vrácen FIK, ale pouze chybová hlavička. 0 = funkční komunikace Leet.idprovoz=273 Leet.idpokl='/5546/RO24' **************************************** Zkrácená forma Leet.Trzba_kr("9edeb22b-4234-4047-869c-3a76f86c20d3",.t.,"0/6460/ZQ42","2016-01-05T00:30:12+01:00","2016-09-19T19:06:37+01:00",34113.00) UUID (je-li prázdné, bude přiděleno a hodnota je v Leet.UUID), první zaslání, id dokladu, datum dokladu (je-li prázdné, bude přiděleno), datum zaslání(je-li prázdné, bude přiděleno a hodnota je v Leet.EETin a Leet.EETinOff), celková částka Nepovinná pole lze nastavit, jsou prefixována T_. Např. Leet.T_Pou_DPH1 je DPH u použitého zboží. Nepovinné pole se pošle (nastaví se na true jeho vlastnost Specified), pokud je hodnota nenulová. Tedy Leet.T_Pou_DPH1=10 se pošle, Leet.T_Pou_DPH1=0 se nepošle. Trzba_kr posílá (případně) i nepovinná pole, jsou-li nenulová. Zasláním se hodnota nemění, takže Leet.T_Pou_DPH1=10 se bude odesílat tak dlouho v dokladech, dokud se nevynuluje. **************************************** Dlouhá forma Leet.Trzba("9edeb22b-4234-4047-869c-3a76f86c20d3",.t.,"0/6460/ZQ42","2016-01-05T00:30:12+01:00","2016-09-19T19:06:37+01:00",34113.00,3036.00,-820.92,-172.39,-3538.20,-530.73,9756.46,975.65,784.00,967.00,189.00,5460.00,324.00,679.00) UUID (je-li prázdné, bude přiděleno a hodnota je v Leet.UUID), první zaslání, id dokladu, datum dokladu (je-li prázdné, bude přiděleno), datum zaslání(je-li prázdné, bude přiděleno a hodnota je v Leet.EETin a Leet.EETinOff), celková částka Základ DPH0, Základ DPH1, DPH1, Základ DPH2, DPH2, Základ DPH3, DPH3, Použité zboží DPH1, Použité zboží DPH2, Použité zboží DPH3 Cestovní ruch DPH, Určeno k čerpání, Čerpaní zúčtování **************************************** Některé programovací jazyky (např. starší verze Delphi) mají problém předat do DLL parametr, který je definován jako Deciaml. Z toho důvodu existují následující metody, které umožňují zadat číselné hodnoty jako řetězec. Leet.Trzba_kr_string je shodná s Leet.Trzba_kr, jen poslední parametr Celkem se zadává jako řetězec Leet.SetT_("Vlastnost","Hodnota") umožňuje nastavit hodnoty T_... vlastností jako řetězec, např. Leet.SetT_("T_DPH1","15.2") **************************************** Po odeslání jsou k dispozici napočtené hodnoty a odkazy na vrácené objekty Leet.PubKey Veřejný klíč certifikátu Leet.FIK Vrácený FIK Leet.BKP Vypočtený BKP Leet.PKP Vypočtený PKP Leet.PKPPlain Řetězec pro zakódování Leet.Odpoved kompletní SOAP odpověď z EET Leet.Zprava SOAP zpráva před podpepsáním Leet.ZpravaPodepsana SOAP zpráva po podpepsání Leet.Chyba_Text Chybová hláška, v případě chyby Leet.CertificateCacheTimeout (pouze XP verze) Definuje dobu ve dnech, kdy je zvalidovaný certifikát EET strany akceptován bez další validace Leet.CertByte Certifikát je načten jako pole bytů. Ne každí vývojové prostředí umí poslat pole byto do dll korektně. (Pořadí je - CertFrName - CertByte - CertSb/CertHeslo) Leet.CertExpiration Datum a čas exspirace cerifikátu jako řetězec. Leet.CertFrName FriendlyName certifikátu. Certifikát je načten z úložiště certifikátů. (Pořadí je - CertFrName - CertByte - CertSb/CertHeslo) Leet.CertHeslo Heslo certifikátu Leet.CertSb Umístění certifikátu Leet.StoreLocation Výběr úložiště certifikátů: UserStore, MachineStore, Both (default) Leet.ToOffSet Vrátí vstupní řetězec formátu datum/čas převedený na offsetový formát Leet.DateToOffSet Při nastavení na true bude dll vstupní řetězce datum/čas uvažovat jako bezoffsetové a převede je na offsetový tvar Leet.EETin Datum zaslání Leet.EETinOff Datum zaslání s offsetem Leet.EETout Datum odpovědi Leet.EEToutOff Datum odpovědi s offsetem Leet.Exception Kompletní výpis chyby Leet.GetUUID Vrátí nově vygenerovaný UUID Leet.SetProxy Je možné zadat nastavení pro netransparentní proxy. Leet.VarovaniLen Délka pole s objekty s varováním. 0 = žádná varování Leet.VarovaniKod(I) Kód I-tého varování. Prvý prvek pole má hodnotu 0. Zadá-li se index mimo rozsah, vrátí DLL -1 Leet.VarovaniText(I) Text I-tého varování. Prvý prvek pole má hodnotu 0. Zadá-li se index mimo rozsah, vrátí DLL vlastní chybovou hlášku DLL: Pole mimo rozsah Leet.VynulDane vynuluje veškeré T_... properties Leet.Vysl Vrací chybu z EET (>0), vše OK (=0) nebo -1, -2, -3 (timeout, komunikační chyba, chyba s certifikátem). Leet.oChyba Objekt chybové hlášky Leet.oHlav Objekt hlavičky Leet.oPolo Objekt položky odpovědi Objekty dávají k dispozici své vlastnosti dle specifikace EET, např. Leet.oChyba.kod Leet.TimeOut Timeout komunikace. Defaultová hodnota=5000ms, nelze zadat hodnotu pod 2000ms Leet.EETVer Verze EET rozhraní Leet.Ver Verze DLL Leet.T_... Nepovinná pole (daně, použité zboží, cestovní ruch, zúčtování), která jsou pro plátce DPH povinná Leet.Crypto Spuštění výpočtu PKP/BKP bez komunikace s EET. Vhodné pro offline režim (pouze v plné verzi DLL). "0" = úspěch, jinak je vrácen text chybové hlášky. Parametr je PKPPlain řetězec, dle kterého se spočte BKP a PKP. PKPPlain je dic_popl | id_provoz | id_pokl | porad_cis | dat_trzby | celk_trzba Příklad: Leet.Crypto("CZ00000019|273|/5546/RO24|0/6460/ZQ42|2016-09-19T19:06:37+01:00|34113.00") Leet.SetURL Nastavení/zjištění adresy webové služby (pouze v plné verzi DLL) Leet.ResponseTrusted Zda je odpověď z EET důvěryhodná (logical). Leet.QRFile Uloží QR kód do souboru. Prvý parametr definuje velikost obrázku (např. 300x300), druhý plnou cestu s názvem souboru pro uložení. Dle extenze vznikne odpovídající soubor (jpg, png, ...) Leet.QRString Řetězec pro zakódování pomocí QR kódu. Vhodné při použití vlastního generátoru QR. **************************************** Vazba mezi definicí EET a knihovnou EET DLL _______________________________________________________________________________ uuid_zpravy parametr v Trzba String Leet.UUID vrací UUID, vhodné při generování UUID v DLL dat_odesl parametr v Trzba String např.2016-09-19T19:19:19+01:00 prvni_zaslani parametr v Trzba Hodnota .t./.f. overeni Overeni Hodnota .t./.f., default .f. dic_popl DIC String dic_poverujiciho DICZast String id_provoz IDProvoz Numeric(5) id_pokl IDpokl/parametr Trzba String porad_cis parametr v Trzba String dat_trzby parametr v Trzba String celk_trzba parametr v Trzba Decimal String v Trzba_kr_string zakl_nepodl_dph T_Zakl_DPH0 Hodnota ve formátu "#.00" zakl_dan1 T_Zakl_DPH1 Hodnota ve formátu "#.00" dan1 T_DPH1 Hodnota ve formátu "#.00" zakl_dan2 T_Zakl_DPH2 Hodnota ve formátu "#.00" dan2 T_DPH2 tnost Hodnota ve formátu "#.00" zakl_dan3 T_Zakl_DPH3 Hodnota ve formátu "#.00" dan3 T_DPH3 Hodnota ve formátu "#.00" cest_sluz T_Cest_DPH Hodnota ve formátu "#.00" pouzit_zboz1 T_Pou_DPH1 Hodnota ve formátu "#.00" pouzit_zboz2 T_Pou_DPH2 Hodnota ve formátu "#.00" pouzit_zboz3 T_Pou_DPH3 Hodnota ve formátu "#.00" urceno_cerp_zuct T_Urc_Cerp Hodnota ve formátu "#.00" cerp_zuct T_Cerp_Zuct Hodnota ve formátu "#.00" rezim Rezim Hodnota 0/1 **************************************** Objekty oHlav,oPolo a oChyba mají vlastnosti definované webovou službou. Při úspěšné komunikaci se oHlav vrací vždy, dle výsledku pak buď oPolo nebo oChyba: oHlav ________________________________________________________________ bkp totožný s Leet.BKP dat_odmit totožný s Leet.EETOutOff dat_odmitSpecified boolean, zda je zpráva odmítnuta dat_prij totožný s Leet.EETOutOff dat_prijSpecified boolean, zda je zpráva přijata uuid_zpravy totožný s Leet.UUID oPolo ________________________________________________________________ fik totožný s Leet.FIK test totožný s Leet.Overeni testSpecidied boolean, zda je test specifikován oChyba ________________________________________________________________ kod totožný s Leet.Vysl pro hodnoty > 0 test totožný s Leet.Overeni testSpecidied boolean, zda je test specifikován text totožný s Leet.Chyba_text