JadeX.MRP
1.0.0-beta.6
dotnet add package JadeX.MRP --version 1.0.0-beta.6
NuGet\Install-Package JadeX.MRP -Version 1.0.0-beta.6
<PackageReference Include="JadeX.MRP" Version="1.0.0-beta.6" />
paket add JadeX.MRP --version 1.0.0-beta.6
#r "nuget: JadeX.MRP, 1.0.0-beta.6"
// Install JadeX.MRP as a Cake Addin #addin nuget:?package=JadeX.MRP&version=1.0.0-beta.6&prerelease // Install JadeX.MRP as a Cake Tool #tool nuget:?package=JadeX.MRP&version=1.0.0-beta.6&prerelease
MRP-K/S API pro autonomní režim
Neoficiální implementace API pro komunikaci s účetním systémem MRP-K/S pomocí autonomního režimu s podporou šifrování a komprese. https://www.mrp.cz/software/ucetnictvi/ks/autonomni-rezim.asp
Aktuální stav: BETA
Knihovna není dostatečně otestována v reálném nasazení a chybí serializace pro některé příkazy viz tabulka:
Příkaz | Stav |
---|---|
EXPEO0 | |
EXPEO1 | |
IMPEO0 | |
CENEO0 | |
ADREO0 | |
EXPFV0 | |
EXPFV1 | |
EXPFV2 | |
EXPFVPDF | |
EXPFP0 | |
EXPFP1 | |
EXPOP0 |
Začínáme
Tyto instrukce popisují použití knihovny pouze pro klientské aplikace. Pro nastavení autonomního režimu na serveru navštivte prosím oficiální dokumentaci.
Instalace pomocí NuGet
Install-Package MRP –IncludePrerelease
Použití
Doporučené základní nastavení s kompresí a šifrováním:
var mrpApi = new MrpApi("http://xxx.xxx.xxx.xxx:ppppp") // Jediný povinný parametr, url serveru včetně portu kam se mají zasílat požadavky
.WithEncryption("xxxXXXxXxXxxXXxXXxxxXXxXXxXXxXXxxXXxXXXxXXX=") // Přepne komunikaci na šifrovaný režim, klíč nutno vygenerovat na serveru
.WithCompression() // Zapne zlib kompresi
.WithTimeout(TimeSpan.FromSeconds(10)); // Jak dlouho počkat na odpověď požadavku
// Zašleme příkaz EXPEO0 a použijeme přídavné filtrování výsledků (viz oficiální dokumentace)
var response = await this.MrpApi.EXPEO0(x => x
.Filter("cisloSkladu", "1")
.Filter("SKKAR.CISLO", "1..1000")
);
// Něco se nezdařilo, můžeme to vyhodit jako aplikační chybu
if (result.HasError)
{
throw new Exception(result.ErrorMessage);
}
// Vypíšeme výsledky do konzole
Console.WriteLine($"Zvoleným filtrům odpovídá {result.Products.Count} produktů a {result.Categories.Count} kategorií.");
var produktySkladem = result.Products.Where(x => x.PocetMJ > 0);
Console.WriteLine($"Z toho je {produktySkladem.Count()} produktů skladem.");
Console.WriteLine($"V celkové hodnotě {produktySkladem.Sum(x => x.CenaSDPH)} {produktySkladem.First().Mena} s DPH.");
Příklad úspěšného výstupu:
Zvoleným filtrům odpovídá 183 produktů a 29 kategorií.
Z toho je 125 produktů skladem.
V celkové hodnotě 44793 CZK s DPH.
Spuštění testů
Testy API vyžadují tajné parametry, které se načítají z UserSecrets nebo EnvironmentVariables.
User Secrets
PM> dotnet user-secrets set SecretKey xxxXXXxXxXxxXXxXXxxxXXxXXxXXxXXxxXXxXXXxXXX= --project MRP.Tests
PM> dotnet user-secrets set ApiUrl http://xxx.xxx.xxx.xxx:ppppp --project MRP.Tests
.devcontainer/devcontainer.env
SecretKey = xxxXXXxXxXxxXXxXXxxxXXxXXxXXxXXxxXXxXXXxXXX=
ApiUrl = http://xxx.xxx.xxx.xxx:ppppp
*Testy ověřují pouze zda byla úspěšná komunikace se serverem a zda byl vrácen alespoň nějaký výsledek. **Testy jsou dynamicky označeny jako přeskočené pokud server vrátí chybu, že daný příkaz nemá povoleno obsloužení.
Použité balíky
- Portable.BouncyCastle - Šifrování
- SharpCompress - Komprese
- xUnit.net - Testování
- Shouldly - Assertion framework pro testování
Verze
Tato knihovna používá SemVer 2.0.0 pro číslování verzí.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Portable.BouncyCastle (>= 1.9.0)
- SharpCompress (>= 0.35.0)
-
.NETStandard 2.1
- Portable.BouncyCastle (>= 1.9.0)
- SharpCompress (>= 0.35.0)
-
net6.0
- Portable.BouncyCastle (>= 1.9.0)
- SharpCompress (>= 0.35.0)
-
net7.0
- Portable.BouncyCastle (>= 1.9.0)
- SharpCompress (>= 0.35.0)
-
net8.0
- Portable.BouncyCastle (>= 1.9.0)
- SharpCompress (>= 0.35.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0-beta.6 | 139 | 12/22/2023 |
1.0.0-beta.5 | 73 | 12/16/2023 |
1.0.0-beta.4 | 80 | 12/12/2023 |