MW Polcard

This commit is contained in:
Piotr Dudek 2024-07-08 20:07:16 +02:00
parent b1e13cfe3a
commit 10210abe89
5 changed files with 20 additions and 20 deletions

View File

@ -35,14 +35,14 @@ internal class App
} }
else else
{ {
if (!DateTime.TryParseExact(args[0], Constants.DefaultdateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out var startDate)) if (!DateTime.TryParseExact(args[0], Constants.DefaultDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out var startDate))
{ {
Console.WriteLine("Niewłaściwy format DataOd"); Console.WriteLine("Niewłaściwy format DataOd");
await Task.Delay(4000); await Task.Delay(4000);
Environment.Exit(1); Environment.Exit(1);
} }
if (!DateTime.TryParseExact(args[1], Constants.DefaultdateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out var endDate)) if (!DateTime.TryParseExact(args[1], Constants.DefaultDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out var endDate))
{ {
Console.WriteLine("Niewłaściwy format DataOd"); Console.WriteLine("Niewłaściwy format DataOd");
await Task.Delay(4000); await Task.Delay(4000);

View File

@ -4,7 +4,7 @@ namespace FKGees
{ {
internal static class Constants internal static class Constants
{ {
public const string DefaultdateFormat = "yyyy-MM-dd"; public const string DefaultDateFormat = "yyyy-MM-dd";
public static class DbConfig public static class DbConfig
{ {
public const string Host = "DbSettings:Host"; public const string Host = "DbSettings:Host";
@ -19,8 +19,7 @@ namespace FKGees
{ {
{nameof(KwBony), "*BONY*"}, {nameof(KwBony), "*BONY*"},
{nameof(KwOpakowania), "*KAUCJA ZA PRZYJĘTE*"}, {nameof(KwOpakowania), "*KAUCJA ZA PRZYJĘTE*"},
{nameof(KwUtarg), "*UTARG*"}, {nameof(KwUtarg), "*WYPŁATA DO BANKU*"},
{nameof(KwPolcard), "*POLCARD*"},
{nameof(KwInne), "*INNE*"}, {nameof(KwInne), "*INNE*"},
{nameof(KwPomylkaKasjera), "*POMYŁKA*"}, {nameof(KwPomylkaKasjera), "*POMYŁKA*"},
{nameof(KwLotto), "*LOTTO*"}, {nameof(KwLotto), "*LOTTO*"},

View File

@ -18,7 +18,6 @@ public class KpKaucjaZDokUtargu : IDecretsDefinition
.Where(x => x.TypDok == DocType && x.Kwota1 != 0) .Where(x => x.TypDok == DocType && x.Kwota1 != 0)
.GroupBy(x => x.Data); .GroupBy(x => x.Data);
foreach (var dok in toProcess) foreach (var dok in toProcess)
{ {
Definitions.ForEach(d => Definitions.ForEach(d =>

View File

@ -2,7 +2,7 @@
public class KwPolcard : IDecretsDefinition public class KwPolcard : IDecretsDefinition
{ {
public int DocType => 51; public int DocType => 53;
public string Type => nameof(KwPolcard); public string Type => nameof(KwPolcard);
public List<Definition> Definitions { get; } = public List<Definition> Definitions { get; } =
[ [
@ -14,22 +14,24 @@ public class KwPolcard : IDecretsDefinition
{ {
var result = new List<DecretsResult>(); var result = new List<DecretsResult>();
var toProcess = documents.Where(x => x.TypDok == DocType var toProcess = documents
&& x.NrDok.StartsWith("KW") .Where(x => x.TypDok == DocType && x.Kwota8 != 0)
&& x.Tekst1() == Constants.KwTekstyDod[nameof(KwPolcard)]); .GroupBy(x => x.Data);
foreach (var dok in toProcess) foreach (var dok in toProcess)
{ {
Definitions.ForEach(d => Definitions.ForEach(d =>
{ {
var item = dok.DecretKontr(); var item = new DecretsResult
item.Data = dok.DataPom; {
item.DataWplywu = dok.Data; Data = dok.Key,
item.Nr = dok.NrDok; DataWplywu = dok.Key,
item.Opis = dok.TekstZaCo(); Nr = string.Join(", ",dok.Select(z => z.NrDok)),
item.StronaKonta = d.AccountSide; Opis = "POLCARD",
item.KontoFk = d.Account; StronaKonta = d.AccountSide,
item.Kwota = Math.Abs(dok.Zaplacono).AsString(); KontoFk = d.Account,
Kwota = dok.Sum(x => x.Kwota8).AsString()
};
result.Add(item); result.Add(item);
}); });

View File

@ -25,11 +25,11 @@ internal class CsvService
Mode = CsvMode.RFC4180, Mode = CsvMode.RFC4180,
ShouldQuote = quoteArgs => quoteArgs.Field != nameof(DecretsResult.Data) ShouldQuote = quoteArgs => quoteArgs.Field != nameof(DecretsResult.Data)
&& quoteArgs.Field != nameof(DecretsResult.DataWplywu) && quoteArgs.Field != nameof(DecretsResult.DataWplywu)
&& !DateTime.TryParseExact(quoteArgs.Field, Constants.DefaultdateFormat, CultureInfo.InvariantCulture, && !DateTime.TryParseExact(quoteArgs.Field, Constants.DefaultDateFormat, CultureInfo.InvariantCulture,
DateTimeStyles.None, out _) DateTimeStyles.None, out _)
}; };
await using var csv = new CsvWriter(writer, conf); await using var csv = new CsvWriter(writer, conf);
var options = new TypeConverterOptions { Formats = [Constants.DefaultdateFormat], NullValues = { string.Empty }}; var options = new TypeConverterOptions { Formats = [Constants.DefaultDateFormat], NullValues = { string.Empty }};
csv.Context.TypeConverterOptionsCache.AddOptions<DateTime>(options); csv.Context.TypeConverterOptionsCache.AddOptions<DateTime>(options);
csv.Context.TypeConverterOptionsCache.AddOptions<DateTime?>(options); csv.Context.TypeConverterOptionsCache.AddOptions<DateTime?>(options);