Telefon: +420 224 256 373 | E-mail: jadu@jadu.cz
EET2.DLL
EET2.DLL je COM knihovna pro komunikaci se serverem elektronické evidence tržeb dle specifikace z června 2026.
- Funkční napojení: Plná podpora EET dle specifikace 4.1 (produkční i testovací prostředí).
- Univerzální použití: Lze volat z libovolného vývojového prostředí, které pracuje s COM objekty, např. z Visual FoxPro, Delphi, PowerBuilder, Excelu nebo přímo z .Net.
- Snadná migrace: Rozhraní knihovny přímo navazuje na osvědčenou předchozí verzi EET.dll.
- Zabezpečení: Moderní TLS komunikace 1.2 (Windows 7, 8, 10 a 11) a 1.3 (Windows 11), striktní kontrola důvěryhodnosti odpovědi z EET serveru.
- Špičková kryptografie: Podpora RSA a šifry eliptických křivek (ECDH) s AES klíčem 128/256 bit v módu GCM.
- Flexibilní předávání dat: Možnost předávat numerické parametry jako řetězce (řeší problémy s desetinnou čárkou/tečkou v různých OS).
- Automatizace: Automatický převod DateTime na DateTimeOffset.
- Pokročilé síťové funkce: Nastavení pro netransparentní proxy, nastavitelný TimeOut pro odpověď.
- Architektura: Verze 32-bit i 64-bit, generováno se silným jménem (Assembly signed with a strong name).
- Práce s certifikáty: Volba úložiště (UserStore / MachineStore) a volba přístupu (FriendlyName / ByteArray / Soubor PFX).
- Komfort při vývoji: Publikované rozhraní pro IntelliSense, vlastní integrovaný generátor UUID.
- Systémová nezávislost: Využití nativních kryptografických poskytovatelů přímo z operačního systému, není zapotřebí žádná další externí knihovna.
- Licencování softwaru: Licence je vázána na vývojáře a umožňuje libovolný počet instalací u koncových klientů.
- Distribuce komponenty: Oddělená instalace od samotné registrace (pomocí MSI balíčku a BAT souboru), což je ideální pro starší operační systémy nebo prostředí s přísnou politikou UAC. SetUp lze nahradit vlastním instalátorem
Demo verze komunikující pouze s PlayGround EET 4.1: Setup-demo.zip
Instalace: instalace.txt
Popis vlastností a metod: Popis-EET2.zip
Certifikáty: https://eet.gov.cz/pro-vyvojare/
|
|
Vlastnosti a metody:
| CertByte | CertExpiration | CertFrName | CertHeslo | CertSb |
| DateToOffset | EIC | EICPover | EETIn | EETInOff |
| EETOut | EETOutOff | EETVer | Exception | GetUUID |
| Chyba_Text | IDJednotky | IDPokl | IsTest | IsTestSpecified |
| Odpoved | oHlav (objekt) | oChyba (objekt) | oPolo (objekt) | Overeni |
| POK | PovereniVicePopl | PubKey | ResponseTrusted | SetProxy |
| SetT_ | SetTLS | SetURL | StoreLocation | T_cerp_Zuct |
| T_Urc_Cerp | TimeOut | TLSVer | ToOffset | Trzba |
| Trzba_String | UUID | VarovaniKod(i) | VarovaniLen | VarovaniText(i) |
| Ver | VynulCerpani | Vysl | Zprava | ZpravaPodepsana |
Příklady použití:
Visual Foxpro
* Inicializace objektu pro komunikaci s EET v4 a nastavení parametrů prostředí.
Local pg As Boolean, eet As Object, luuid As String, odpov As String
pg = .T. && Příznak pro testovací prostředí (Playground)
* Vytvoření instance COM objektu knihovny pro EET (specifikace v4)
eet = Createobject("jadu.eet2")
? "Verze knihovny: " + eet.Ver
* Nastavení komunikačních koncových bodů a certifikátů dle zvoleného prostředí
If pg
eet.SetURL = 'https://pg.trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4'
eet.CertSb = 'c:\vfp\eet2\CA_EET-Playground-CZ00000019.p12'
eet.CertHeslo = 'aaaa1111'
Else
eet.SetURL = 'https://trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4'
eet.CertSb = 'c:\vfp\eet2\Certifikat-Produkcni.p12'
eet.CertHeslo = 'HesloKProdukcnimuCertifikatu'
Endif
* Identifikační údaje jednotky a pokladního zařízení
eet.IDJednotky = 273 && Číslo provozovny
eet.IDPokl = '273/o' && Označení pokladního zařízení
eet.EIC = 'CZ00000019' && EIČ poplatníka
* Generování unikátního identifikátoru UUID zprávy
luuid = eet.GetUUID()
? "Generované UUID: " + luuid
* Odeslání tržby s explicitně definovaným datem a časem. Pokud se vynechá, knihovna doplní datum a čas v okamžiku volání
* Parametry: UUID, PrvníZaslání(.T. / .F.), ČísloDokladu, DatumTržby, DatumOdeslání, CelkováČástka
odpov = eet.Trzba(luuid, .T., '123/26', "2026-07-02T13:59:25+02:00", "2026-07-02T13:59:25+02:00", 153.20, 65.12, 3.0)
? "Odpověď (POK/chyba): " + odpov
* Ukázka zpracování varovných hlášení ze serveru EET při úspěšném vrácení POK.
* Server tržbu zaeviduje, ale vrátí upozornění (např. off-line prodej odeslaný s velkým zpožděním).
Local lwarncount As Integer, i As Integer
* Simulace odeslání tržby s datem výrazně v minulosti
odpov = eet.Trzba(eet.GetUUID(), .T., '124/26', "2026-01-01T10:00:00+02:00", "2026-07-02T13:59:25+02:00", 100.00, 0, 0)
? "Odpověď: " + odpov
* Kontrola, zda server vrátil nějaká varování
lwarncount = eet.VarovaniLen
If lwarncount > 0
For i = 0 To lwarncount - 1
? "Varování kód: " + Transform(eet.VarovaniKod(i))
? "Varování text: " + eet.VarovaniText(i)
Next
Endif
Delphi
Procedure TForm1.Button1Click(Sender: TObject);
var
EET: Variant;
DatDokl, DatPosl: String;
Result: String;
begin
CoInitialize(nil);
EET := CreateOleObject('JADU.EET2');
EET.CertHeslo := 'aaaa1111'; //heslo k certifikátu
EET.CertSb := 'c:\vfp\eet2\CA_EET-Playground-CZ00000019.p12'; //cesta k souboru s certifikátem
Memo1.Lines.Add(EET.Ver);
Memo1.Lines.Add(Format('Platnost certifikatu do: %s',[EET.CertExpiration]));
EET.IDJednotky := 273;
EET.IDPokl := '273/o';
EET.EIC := 'CZ00000019';
// EET.Overeni : =True; // pouze test, nevrací POK
EET.Overeni := False;
DatDokl := GetDSTTime(Now);
DatPosl := GetDSTTime(Now);
Result := EET.Trzba('', 0, 'DOKLADTEST1', DatDokl, DatPosl ,34113, 0, 0);
// Result := EET.Trzba('', 1, 'DOKLADTEST1', DatDokl, DatPosl ,34113, 0, 0); // opakované poslání
Memo1.Lines.Add(Format('Vrací metoda EET.Trzba: %s',[Result]));
Memo1.Lines.Add(Format('Vlastnost EET.POK: %s',[EET.POK]));
Memo1.Lines.Add(Format('Vlastnost EET.Chyba_Text: %s',[EET.Chyba_Text]));
end;
Excel
Sub OdeslatEET()
' Účel: Inicializace objektu pro komunikaci s EET v4 a odeslání tržby z prostředí Excel VBA.
' Vytváří instanci COM knihovny jadu.eet2, nastavuje parametry a zpracovává odpověď včetně varování.
Dim pg As Boolean
Dim eet As Object
Dim lUUID As String
Dim odpov As String
Dim lwarncount As Long
Dim i As Long
pg = True ' Příznak pro testovací prostředí (Playground)
' Vytvoření instance COM objektu knihovny pro EET (specifikace v4)
On Error Resume Next
Set eet = CreateObject("jadu.eet2")
On Error GoTo 0
If eet Is Nothing Then
MsgBox "Knihovnu 'jadu.eet2' se nepodařilo inicializovat. Zkontrolujte její registraci (regasm / regsvr32).", vbCritical
Exit Sub
End If
Debug.Print "Verze knihovny: " & eet.Ver
' Nastavení komunikačních koncových bodů a certifikátů dle zvoleného prostředí
If pg Then
eet.SetURL = "https://pg.trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4"
eet.CertSb = "c:\vfp\eet2\CA_EET-Playground-CZ00000019.p12"
eet.CertHeslo = "aaaa1111"
Else
eet.SetURL = "https://trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4"
eet.CertSb = "c:\vfp\eet2\Certifikat-Produkcni.p12"
eet.CertHeslo = "HesloKProdukcnimuCertifikatu"
End If
' Identifikační údaje jednotky a pokladního zařízení
eet.IDJednotky = 273 ' Číslo jednotky
eet.IDPokl = "273/o" ' Označení pokladního zařízení
eet.EIC = "CZ00000019" ' EIČ poplatníka
' Generování unikátního identifikátoru UUID zprávy
lUUID = eet.GetUUID()
Debug.Print "Generované UUID: " & lUUID
' Odeslání tržby s explicitně definovaným datem a časem.
' Parametry: UUID, PrvníZaslání(True/False), ČísloDokladu, DatumTržby, DatumOdeslání, CelkováČástka, ZákladDaně, Daň
odpov = eet.Trzba(lUUID, True, "123/26", "2026-07-02T13:59:25+02:00", "2026-07-02T13:59:25+02:00", 153.2, 65.12, 3#)
Debug.Print "Odpověď (POK/chyba): " & odpov
' --- Ukázka zpracování varovných hlášení ze serveru EET při úspěšném vrácení POK ---
' Server tržbu zaeviduje, ale vrátí upozornění (např. off-line prodej odeslaný s velkým zpožděním).
' Simulace odeslání tržby s datem výrazně v minulosti
odpov = eet.Trzba(eet.GetUUID(), True, "124/26", "2026-01-01T10:00:00+02:00", "2026-07-02T13:59:25+02:00", 100#, 0, 0)
Debug.Print "Odpověď: " & odpov
' Kontrola, zda server vrátil nějaká varování
lwarncount = eet.VarovaniLen
If lwarncount > 0 Then
For i = 0 To lwarncount - 1
Debug.Print "Varování kód: " & CStr(eet.VarovaniKod(i))
Debug.Print "Varování text: " & eet.VarovaniText(i)
Next i
End If
' Vyčištění objektu z paměti
Set eet = Nothing
End Sub
VB.net
' Povolení pozdní vazby (Late Binding) pro dynamické COM objekty
Option Strict Off
Imports System
Module EETExample
Sub Main()
' Účel: Inicializace objektu pro komunikaci s EET v4 a odeslání tržby z prostředí VB.NET.
' Vytváří instanci COM objektu jadu.eet2, nastavuje parametry a zpracovává odpovědi a varování.
Dim pg As Boolean = True ' Příznak pro testovací prostředí (Playground)
Dim eet As Object
Dim lUUID As String
Dim odpov As String
' Vytvoření instance COM objektu knihovny pro EET (specifikace v4)
Try
eet = CreateObject("jadu.eet2")
Catch ex As Exception
Console.WriteLine("Knihovnu 'jadu.eet2' se nepodařilo inicializovat. Zkontrolujte registraci přes regasm.")
Exit Sub
End Try
Console.WriteLine("Verze knihovny: " & eet.Ver)
' Nastavení komunikačních koncových bodů a certifikátů dle zvoleného prostředí
If pg Then
eet.SetURL = "https://pg.trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4"
eet.CertSb = "c:\vfp\eet2\CA_EET-Playground-CZ00000019.p12"
eet.CertHeslo = "aaaa1111"
Else
eet.SetURL = "https://trzbyeet.gov.cz/eet/services/EETServiceSOAP/v4"
eet.CertSb = "c:\vfp\eet2\Certifikat-Produkcni.p12"
eet.CertHeslo = "HesloKProdukcnimuCertifikatu"
End If
' Identifikační údaje jednotky a pokladního zařízení
eet.IDJednotky = 273 ' Číslo provozovny
eet.IDPokl = "273/o" ' Označení pokladního zařízení
eet.EIC = "CZ00000019" ' EIČ poplatníka
' Generování unikátního identifikátoru UUID zprávy
lUUID = eet.GetUUID()
Console.WriteLine("Generované UUID: " & lUUID)
' Odeslání tržby s explicitně definovaným datem a časem
' Parametry: UUID, PrvníZaslání, ČísloDokladu, DatumTržby, DatumOdeslání, CelkováČástka, ZákladDaně, Daň
odpov = eet.Trzba(lUUID, True, "123/26", "2026-07-02T13:59:25+02:00", "2026-07-02T13:59:25+02:00", 153.20, 65.12, 3.0)
Console.WriteLine("Odpověď (POK/chyba): " & odpov
' --- Ukázka zpracování varovných hlášení ze serveru EET při úspěšném vrácení POK ---
' Server tržbu zaeviduje, ale vrátí upozornění (např. off-line prodej odeslaný s velkým zpožděním).
' Simulace odeslání tržby s datem výrazně v minulosti
Dim lUUID_old As String = eet.GetUUID()
odpov = eet.Trzba(lUUID_old, True, "124/26", "2026-01-01T10:00:00+02:00", "2026-07-02T13:59:25+02:00", 100.00, 0, 0)
Console.WriteLine("Odpověď: " & odpov
' Kontrola, zda server vrátil nějaká varování
Dim lwarncount As Integer = eet.VarovaniLen
If lwarncount > 0 Then
For i As Integer = 0 To lwarncount - 1
Console.ForegroundColor = ConsoleColor.Yellow
Console.WriteLine("Varování kód: " & eet.VarovaniKod(i).ToString())
Console.WriteLine("Varování text: " & eet.VarovaniText(i))
Console.ResetColor()
Next
End If
' Uvolnění COM objektu z paměti
If eet IsNot Nothing Then
System.Runtime.InteropServices.Marshal.ReleaseComObject(eet)
eet = Nothing
End If
End Sub
End Module
Minimální specifikace:
- Windows s nainstalovaným RunTime .Net 4.8
Cena:
| pro vlastní potřebu (1 počítač) | 1 500 Kč |
| pro vnitrofiremní použití (1 místo, více počítačů) | 4 000 Kč |
| pro vnitrofiremní použití (1 IČO, více míst) | 8 000 Kč |
| 1 vývojář OSVČ | 5 000 Kč |
| IT firma | 12 500 Kč |
| Dodavatelé rozsáhlých ekonomických systémů, výrobci/dovozci pokladních systémů a zařízení pro stravování, platební brány a velké e-shopy | 25 000 Kč |