diff --git a/Blink.Backoffice.Services.PcmDb/Blink.Backoffice.Services.PcmDb.csproj b/Blink.Backoffice.Services.PcmDb/Blink.Backoffice.Services.PcmDb.csproj index 44df25a..ece5101 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/DostawaPrasy.cs b/FKGees/DocsDefinitions/Decrets/DostawaPrasy.cs new file mode 100644 index 0000000..49240ab --- /dev/null +++ b/FKGees/DocsDefinitions/Decrets/DostawaPrasy.cs @@ -0,0 +1,53 @@ +namespace FKGees.DocsDefinitions.Decrets; + +public class DostawaPrasy : IDecretsDefinition +{ + public int DocType => 81; + public string Type => "Dprs"; + public List Definitions { get; } = + [ + new Definition("305-60-24", "MA", "[znr]"), + new Definition("342-0-24", "MA", "[snr]-[znr]"), + new Definition("343-0-24", "MA", "[sbr]-[snr]"), + new Definition("332-0-24", "WN", "[sbr]") + ]; + + public Task> Process(IReadOnlyList documents) + { + var result = new List(); + + var toProcess = documents + .Where(x => x.TypDok == DocType && x.RozliczaRozliczanyDok.Count == 0); + + 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 = d.Account == "305-60-24" ? item.k_NIP : dok.NrDok; + item.StronaKonta = d.AccountSide; + item.KontoFk = d.Account; + item.Kwota = ProcessValue(dok, d.Expression).AsString(); + + result.Add(item); + }); + } + + return Task.FromResult(result); + } + + private static decimal ProcessValue(Dok doc, string expression) + { + return expression switch + { + "[znr]" => doc.Netto, + "[snr]-[znr]" => doc.NettoDet - doc.Netto, + "[sbr]-[snr]" => doc.Podatek, + "[sbr]" => doc.NettoDet + doc.PodatekDet, + _ => 0 + }; + } +} \ No newline at end of file diff --git a/FKGees/DocsDefinitions/Decrets/KpInne.cs b/FKGees/DocsDefinitions/Decrets/KpInne.cs index d017a78..bca08ac 100644 --- a/FKGees/DocsDefinitions/Decrets/KpInne.cs +++ b/FKGees/DocsDefinitions/Decrets/KpInne.cs @@ -7,7 +7,7 @@ public class KpInne : IDecretsDefinition public List Definitions { get; } = [ new Definition("139-1-24", "WN", "[sbr]"), - new Definition("100-1-24", "MA", "[sbr]") + new Definition("100-1-24", "WN", "[sbr]") ]; public Task> Process(IReadOnlyList documents) diff --git a/FKGees/DocsDefinitions/Decrets/KpLotto.cs b/FKGees/DocsDefinitions/Decrets/KpLotto.cs index 43ed429..d9bd5c8 100644 --- a/FKGees/DocsDefinitions/Decrets/KpLotto.cs +++ b/FKGees/DocsDefinitions/Decrets/KpLotto.cs @@ -7,7 +7,7 @@ public class KpLotto : IDecretsDefinition public List Definitions { get; } = [ new Definition("100-1-24", "WN", "[sbr]"), - new Definition("249-1-22", "MA", "[sbr]") + new Definition("249-0-22", "MA", "[sbr]") ]; public Task> Process(IReadOnlyList documents) diff --git a/FKGees/DocsDefinitions/Decrets/KwCashback.cs b/FKGees/DocsDefinitions/Decrets/KwCashback.cs new file mode 100644 index 0000000..8aa2797 --- /dev/null +++ b/FKGees/DocsDefinitions/Decrets/KwCashback.cs @@ -0,0 +1,41 @@ +namespace FKGees.DocsDefinitions.Decrets; + +public class KwCashback : IDecretsDefinition +{ + public int DocType => 53; + public string Type => nameof(KwCashback); + public List Definitions { get; } = + [ + new Definition("249-0-19", "WN", "[sbr]") + ]; + + public Task> Process(IReadOnlyList documents) + { + var result = new List(); + + var toProcess = documents + .Where(x => x.TypDok == DocType && x.Kwota5 != 0) + .GroupBy(x => x.Data); + + foreach (var dok in toProcess) + { + Definitions.ForEach(d => + { + var item = new DecretsResult + { + Data = dok.Key, + DataWplywu = dok.Key, + Nr = string.Join(", ",dok.Select(z => z.NrDok)), + Opis = "CashBack", + StronaKonta = d.AccountSide, + KontoFk = d.Account, + Kwota = dok.Sum(x => x.Kwota5).AsString() + }; + + result.Add(item); + }); + } + + return Task.FromResult(result); + } +} \ No newline at end of file diff --git a/FKGees/DocsDefinitions/Decrets/KwPolcard.cs b/FKGees/DocsDefinitions/Decrets/KwPolcard.cs index 1441c88..888215e 100644 --- a/FKGees/DocsDefinitions/Decrets/KwPolcard.cs +++ b/FKGees/DocsDefinitions/Decrets/KwPolcard.cs @@ -6,7 +6,7 @@ public class KwPolcard : IDecretsDefinition public string Type => nameof(KwPolcard); public List Definitions { get; } = [ - new Definition("249-0-29", "WN", "[sbr]"), + new Definition("249-0-19", "WN", "[sbr]"), new Definition("100-1-24", "MA", "[sbr]") ]; diff --git a/FKGees/DocsDefinitions/Decrets/MmMinus.cs b/FKGees/DocsDefinitions/Decrets/MmMinus.cs index 17049cc..e0d3e2a 100644 --- a/FKGees/DocsDefinitions/Decrets/MmMinus.cs +++ b/FKGees/DocsDefinitions/Decrets/MmMinus.cs @@ -26,7 +26,7 @@ public class MmMinus : IDecretsDefinition item.Data = dok.DataPom; item.DataWplywu = dok.Data; item.Nr = dok.NrDok; - item.Opis = dok.TekstZaCo(); + item.Opis = $"{dok.NrDok} / PRZERZUT NA {item.k_Skrot}"; item.StronaKonta = d.AccountSide; item.KontoFk = d.Account; item.Kwota = ProcessValue(dok, d.Expression).AsString(); diff --git a/FKGees/DocsDefinitions/Decrets/MmPlus.cs b/FKGees/DocsDefinitions/Decrets/MmPlus.cs index ee656ec..e6a8d0a 100644 --- a/FKGees/DocsDefinitions/Decrets/MmPlus.cs +++ b/FKGees/DocsDefinitions/Decrets/MmPlus.cs @@ -26,7 +26,7 @@ public class MmPlus : IDecretsDefinition item.Data = dok.DataPom; item.DataWplywu = dok.Data; item.Nr = dok.NrDok; - item.Opis = dok.TekstZaCo(); + item.Opis = $"{dok.NrDok} / PRZERZUT Z {item.k_Skrot}"; item.StronaKonta = d.AccountSide; item.KontoFk = d.Account; item.Kwota = ProcessValue(dok, d.Expression).AsString(); diff --git a/FKGees/DocsDefinitions/Decrets/RapFisk.cs b/FKGees/DocsDefinitions/Decrets/RapFisk.cs index 56e0d6c..38e6a17 100644 --- a/FKGees/DocsDefinitions/Decrets/RapFisk.cs +++ b/FKGees/DocsDefinitions/Decrets/RapFisk.cs @@ -8,12 +8,13 @@ public class RapFisk : IDecretsDefinition [ new Definition("737-0-24", "WN", "[sbr]"), new Definition("332-0-24", "MA", "[sbr]"), - new Definition("139-1-24", "WN", "[sbr]"), + new Definition("139-1-24", "WN", "[sb]"), new Definition("732-0-24", "MA", "[sbr]"), new Definition("343-0-24", "WN", "[svr]"), new Definition("737-0-24", "MA", "[svr]"), new Definition("732-0-24", "WN", "[svr]"), - new Definition("222-0-24", "MA", "[svr]") + new Definition("222-0-24", "MA", "[svr]"), + new Definition("100-1-24", "MA", "[sb]") ]; public Task> Process(IReadOnlyList documents) @@ -53,6 +54,7 @@ public class RapFisk : IDecretsDefinition { "[sbr]" => doc.Razem - doc.Kwota1 + doc.Kwota2, "[svr]" => doc.Podatek, + "[sb]" => doc.Razem, _ => 0 }; } diff --git a/FKGees/Extensions/ServiceCollectionExtensions.cs b/FKGees/Extensions/ServiceCollectionExtensions.cs index 22b3f11..64032f0 100644 --- a/FKGees/Extensions/ServiceCollectionExtensions.cs +++ b/FKGees/Extensions/ServiceCollectionExtensions.cs @@ -34,6 +34,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 accdc8e..39a4764 100644 --- a/FKGees/FKGees.csproj +++ b/FKGees/FKGees.csproj @@ -9,15 +9,15 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - - + +