MRP 1.0.0-beta.2
dotnet add package MRP --version 1.0.0-beta.2
NuGet\Install-Package MRP -Version 1.0.0-beta.2
<PackageReference Include="MRP" Version="1.0.0-beta.2" />
paket add MRP --version 1.0.0-beta.2
#r "nuget: MRP, 1.0.0-beta.2"
// Install MRP as a Cake Addin
#addin nuget:?package=MRP&version=1.0.0-beta.2&prerelease
// Install MRP as a Cake Tool
#tool nuget:?package=MRP&version=1.0.0-beta.2&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 |
---|---|
ADREO0 | |
CENEO0 | |
EXPEO0 | |
EXPEO1 | |
EXPFP0 | |
EXPFP1 | |
EXPFV0 | |
EXPFV1 | |
IMPEO0 |
Jak začít
Tyto instrukce popisují použití knihovny 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 je url serveru včetně portu kam se mají zasílat požadavky
.WithEncryption("xxxXXXxXxXxxXXxXXxxxXXxXXxXXxXXxxXXxXXXxXXX=") // Přepne komunikaci na šifrovaný režim, jako parametr se použije klíč vygenerovaný na serveru
.WithCompression() // Zapne zlib kompresi, lze předat parametr upravující úroveň komprese
.WithTimeout(TimeSpan.FromSeconds(10)); // Jak dlouho je čekáno na odpověď ze serveru než je vyhozena chyba komunikace
// Zašleme příkaz EXPEO0 a použijeme přídavné filtrování výsledků podle oficiální dokumentace
var response = await this.MrpApi.EXPEO0(x => x
.Filter("cisloSkladu", "1")
.Filter("SKKAR.CISLO", "1..1000")
);
// Pokud se něco pokazilo, 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}.");
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.
Spuštění testů
Testy API vyžadují tajné parametry, které se načítají z UserSecrets nebo EnvironmentVariables.
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
Testy momentálně neověřují správnost údajů, 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 |
---|---|
.NET | net5.0 net5.0-windows net6.0 net6.0-android net6.0-ios net6.0-maccatalyst net6.0-macos net6.0-tvos net6.0-windows net7.0 net7.0-android net7.0-ios net7.0-maccatalyst net7.0-macos net7.0-tvos net7.0-windows |
.NET Core | netcoreapp2.0 netcoreapp2.1 netcoreapp2.2 netcoreapp3.0 netcoreapp3.1 |
.NET Standard | netstandard2.0 netstandard2.1 |
.NET Framework | net461 net462 net463 net47 net471 net472 net48 net481 |
MonoAndroid | monoandroid |
MonoMac | monomac |
MonoTouch | monotouch |
Tizen | tizen40 tizen60 |
Xamarin.iOS | xamarinios |
Xamarin.Mac | xamarinmac |
Xamarin.TVOS | xamarintvos |
Xamarin.WatchOS | xamarinwatchos |
-
.NETStandard 2.0
- Portable.BouncyCastle (>= 1.8.6)
- SharpCompress (>= 0.24.0)
-
.NETStandard 2.1
- Portable.BouncyCastle (>= 1.8.6)
- SharpCompress (>= 0.24.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.2 | 275 | 3/18/2020 |
1.0.0-beta.1 | 268 | 11/7/2019 |
1.0.0-alpha.4 | 246 | 5/9/2019 |
1.0.0-alpha.3 | 247 | 3/23/2019 |
1.0.0-alpha.2 | 358 | 11/11/2018 |
1.0.0-alpha.1 | 402 | 11/6/2018 |
Added .NETStandard 2.1, updated dependencies