diff --git a/Blink.Backoffice.Services.PcmDb/Blink.Backoffice.Services.PcmDb.csproj b/Blink.Backoffice.Services.PcmDb/Blink.Backoffice.Services.PcmDb.csproj
index 7f1307a..44df25a 100644
--- a/Blink.Backoffice.Services.PcmDb/Blink.Backoffice.Services.PcmDb.csproj
+++ b/Blink.Backoffice.Services.PcmDb/Blink.Backoffice.Services.PcmDb.csproj
@@ -8,11 +8,11 @@
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/FKGees/DocsDefinitions/Decrets/Rozb.cs b/FKGees/DocsDefinitions/Decrets/Rozb.cs
new file mode 100644
index 0000000..73d6c0f
--- /dev/null
+++ b/FKGees/DocsDefinitions/Decrets/Rozb.cs
@@ -0,0 +1,71 @@
+using FKGees.Services;
+
+namespace FKGees.DocsDefinitions.Decrets;
+
+public class Rozb : IDecretsDefinition
+{
+ public int DocType => 26;
+ public string Type => "Rozb";
+ public List Definitions { get; } =
+ [
+ new Definition("301-0-24", "WN", "[znr]"), new Definition("221-0-24", "WN", "[zvr]"), new Definition("210-1", "MA", "[zbr]"),
+ new Definition("301-0-24", "MA", "[zbr]"), new Definition("332-0-24", "WN", "[sbr]"), new Definition("343-0-24", "MA", "[svr]"),
+ new Definition("342-0-24", "MA", "[sbr]-[znr]"),
+ ];
+
+ private readonly PcmService _pcmService;
+
+ public Rozb(PcmService pcmService)
+ {
+ _pcmService = pcmService;
+ }
+
+ public Task> Process(IReadOnlyList documents)
+ {
+ var result = new List();
+
+ var toProcess = documents
+ .Where(x => x.TypDok == DocType);
+
+ foreach (var dok in toProcess)
+ {
+ Definitions.ForEach(d =>
+ {
+ var item = dok.DecretKontr();
+ item.Data = dok.DataPom;
+ item.DataWplywu = dok.Data;
+ item.Nr = dok.NrDok;
+ //item.Opis = _pcmService.WzNrFaktury(dok.DokId);
+ item.StronaKonta = d.AccountSide;
+ item.KontoFk = d.Account;
+ item.Kwota = Processvalue(dok, d.Expression)
+ .AsString();
+
+ result.Add(item);
+ });
+ }
+
+ return Task.FromResult(result);
+ }
+
+ private decimal Processvalue(Dok doc, string expression)
+ {
+ switch (expression)
+ {
+ case "[znr]":
+ return Math.Abs(doc.Netto);
+ case "[zvr]":
+ return Math.Abs(doc.Podatek);
+ case "[zbr]":
+ return Math.Abs(doc.Netto + doc.Podatek);
+ case "[sbr]":
+ return Math.Abs(doc.Razem);
+ case "[svr]":
+ return Math.Abs(doc.Netto - doc.NettoDet);
+ case "[sbr]-[snr]":
+ return Math.Abs(doc.Razem - doc.Netto);
+ }
+
+ return 0;
+ }
+}
\ No newline at end of file
diff --git a/FKGees/DocsDefinitions/Decrets/Zwroty.cs b/FKGees/DocsDefinitions/Decrets/Zwroty.cs
new file mode 100644
index 0000000..30ef61b
--- /dev/null
+++ b/FKGees/DocsDefinitions/Decrets/Zwroty.cs
@@ -0,0 +1,75 @@
+using FKGees.Services;
+
+namespace FKGees.DocsDefinitions.Decrets;
+
+public class Zwroty : IDecretsDefinition
+{
+ public int DocType => 4;
+ public string Type => "Zwroty";
+ public List Definitions { get; } =
+ [
+ new Definition("301-0-24", "WN", "[znr]"),
+ new Definition("221-0-24", "WN", "[zvr]"),
+ new Definition("210-1", "MA", "[zbr]"),
+ new Definition("301-0-24", "MA", "[zbr]"),
+ new Definition("332-0-24", "WN", "[sbr]"),
+ new Definition("343-0-24", "MA", "[svr]"),
+ new Definition("342-0-24", "MA", "[sbr]-[znr]")
+ ];
+
+ private readonly PcmService _pcmService;
+
+ public Zwroty(PcmService pcmService)
+ {
+ _pcmService = pcmService;
+ }
+
+ public Task> Process(IReadOnlyList documents)
+ {
+ var result = new List();
+
+ var toProcess = documents
+ .Where(x => x.TypDok == DocType);
+
+ foreach (var dok in toProcess)
+ {
+ Definitions.ForEach(d =>
+ {
+ var item = dok.DecretKontr();
+ item.Data = dok.DataPom;
+ item.DataWplywu = dok.Data;
+ item.Nr = dok.NrDok;
+ //item.Opis = _pcmService.WzNrFaktury(dok.DokId);
+ item.StronaKonta = d.AccountSide;
+ item.KontoFk = d.Account;
+ item.Kwota = Processvalue(dok, d.Expression)
+ .AsString();
+
+ result.Add(item);
+ });
+ }
+
+ return Task.FromResult(result);
+ }
+
+ private decimal Processvalue(Dok doc, string expression)
+ {
+ switch (expression)
+ {
+ case "[znr]":
+ return Math.Abs(doc.Netto);
+ case "[zvr]":
+ return Math.Abs(doc.Podatek);
+ case "[zbr]":
+ return Math.Abs(doc.Netto + doc.Podatek);
+ case "[sbr]":
+ return Math.Abs(doc.Razem);
+ case "[svr]":
+ return Math.Abs(doc.Netto - doc.NettoDet);
+ case "[sbr]-[snr]":
+ return Math.Abs(doc.Razem - doc.Netto);
+ }
+
+ return 0;
+ }
+}
\ No newline at end of file
diff --git a/FKGees/Extensions/ServiceCollectionExtensions.cs b/FKGees/Extensions/ServiceCollectionExtensions.cs
index 0fabd3d..c54b0e4 100644
--- a/FKGees/Extensions/ServiceCollectionExtensions.cs
+++ b/FKGees/Extensions/ServiceCollectionExtensions.cs
@@ -31,6 +31,8 @@ internal static class ServiceCollectionExtensions
services.AddSingleton();
services.AddSingleton();
services.AddSingleton();
+ services.AddSingleton();
+ services.AddSingleton();
return services;
}
diff --git a/FKGees/FKGees.csproj b/FKGees/FKGees.csproj
index 9dd554f..accdc8e 100644
--- a/FKGees/FKGees.csproj
+++ b/FKGees/FKGees.csproj
@@ -8,12 +8,12 @@
-
-
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+