MRP 1.0.0-beta.1
dotnet add package MRP --version 1.0.0-beta.1
NuGet\Install-Package MRP -Version 1.0.0-beta.1
<PackageReference Include="MRP" Version="1.0.0-beta.1" />
paket add MRP --version 1.0.0-beta.1
#r "nuget: MRP, 1.0.0-beta.1"
// Install MRP as a Cake Addin
#addin nuget:?package=MRP&version=1.0.0-beta.1&prerelease
// Install MRP as a Cake Tool
#tool nuget:?package=MRP&version=1.0.0-beta.1&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.
dotnet user-secrets set SecretKey xxxXXXxXxXxxXXxXXxxxXXxXXxXXxXXxxXXxXXXxXXX= --project MRP.Tests
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 Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. 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 was computed. 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 was computed. 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 was computed. |
.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.8.5.2)
- 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 |
---|
Refactoring, cleanup, fluent design