diff --git a/Blink.Backoffice.Services.PcmDb/Constants.cs b/Blink.Backoffice.Services.PcmDb/Constants.cs new file mode 100644 index 0000000..054ba1b --- /dev/null +++ b/Blink.Backoffice.Services.PcmDb/Constants.cs @@ -0,0 +1,116 @@ +namespace Blink.Backoffice.Services.PcmDb; + +public static class Constants +{ + public static class Tax + { + public const short Vat23 = 2300; + public const short Vat22 = 2200; + public const short Vat8 = 800; + public const short Vat7 = 700; + public const short Vat5 = 500; + public const short Vat3 = 300; + public const short Vat0 = 0; + public const short VatZw = -1; + } + + public static class ZnaczenieTekstDok + { + public const int Komentarz = 17; + public const int Tekst1 = 71; + + public const int KontrahentNazwa = 88; + public const int KontrahentUlica = 89; + public const int KontrahentKodPocztowy = 90; + public const int KontrahentMiejscowosc = 91; + public const int KontrahentNip = 93; + public const int KontrahentSkrot = 94; + + public const int PowodKorekty = 144; + public const int NumerKsef = 311; + } + + public static class ZnaczenieTypDok +{ + public const int ObrotOpakowaniami = 1; + public const int Pz = 2; + public const int Mp = 3; + public const int ZwrotDoDostawcy = 4; + public const int Wz = 5; + public const int Mw = 6; + public const int ZwrotOdOdbiorcy = 7; + public const int ZwrotDoParagonu = 8; + public const int Pw = 9; + public const int Rw = 10; + public const int MmRozchodowa = 11; + public const int MmPrzychodowa = 12; + public const int TymczasowaBlokadaStanow = 13; + public const int BilansOtwarcia = 14; + public const int NaleznoscZobowiazanieOtwarciaMagazynu = 15; + public const int Remanent = 16; + public const int ZamrozenieRemanentu = 17; + public const int Przecena = 18; + public const int ZamrozeniePrzeceny = 19; + public const int ParagonImportZKas = 20; + public const int ParagonDrukfisk = 21; + public const int ImportJednegoParagonu = 22; + public const int DokumentStraty = 23; + public const int DokumentReklamacji = 24; + public const int DokumentReceptury = 25; + public const int RozbieznoscDostawy = 26; + public const int WymianaTowaru = 27; + public const int WzParagonowa = 28; + public const int OryginalneKwotyPzWalutaObca = 29; + public const int BilansWymianyOpakowan = 30; + public const int FakturaDostawcy = 31; + public const int FakturaKorygujacaDostawcy = 32; + public const int SprzedazFakturowana = 33; + public const int FakturaKorygujacaOdbiorcy = 34; + public const int KopiaFakturyKorygujacejOdbiorcy = 35; + public const int FakturaDoParagonu = 36; + public const int FakturaKorygujacaDoParagonu = 37; + public const int KopiaFakturyKorygujacejDoParagonu = 38; + public const int FakturaWewnatrzwspolnotowa = 39; + public const int FakturaProForma = 40; + public const int RozbicieZaliczki = 41; + public const int RozbicieWplat = 42; + public const int TrasaPrzewoznika = 44; + public const int OdbiorCzesciowy = 45; + public const int ZasilenieKasy = 46; + public const int PropozycjaZamowieniaDoDostawcy = 47; + public const int PotwierdzenieZamowieniaDlaOdbiorcy = 48; + public const int RejestracjaZamowieniaOdOdbiorcy = 49; + public const int ZamowienieDoDostawcy = 50; + public const int Platnosc = 51; + public const int UtargZKas = 52; + public const int UtargZDrukarek = 53; + public const int WplataWyplataDrukfisk = 54; + public const int WydaniePrezentuLojalnosciowego = 55; + public const int ZmianaKasjeraPoczatek = 56; + public const int ZmianaKasjeraKoniec = 57; + public const int ZmianaKasjeraObrot = 58; + public const int UsunietyParagon = 59; + public const int StornoPozycjiParagonu = 60; + public const int CentralneZamowienie = 61; + public const int CentralneZamowieniePomocnicze = 62; + public const int CentralneMw = 63; + public const int CentralneMwPomocnicze = 64; + public const int WskaznikDokumentuSklepowego = 65; + public const int ZbitaSprzedazDetaliczna = 66; + public const int KolejkaFifo = 68; + public const int KorektaFifo = 69; + public const int TymczasowyDokumentStanuKasyPcPos7 = 70; + public const int SprzedazWiniet = 75; + public const int ZwrotWiniet = 76; + public const int PrzyjecieZuzytychOpakowan = 77; + public const int PrzesuniecieZTowaruNaTowar = 78; + public const int StanLicznikaKlientow = 79; + public const int RozbieznoscZWydania = 80; + public const int DostawaPrasy = 81; + public const int RozliczeniePrasy = 82; + public const int KontraktZDostawca = 87; + public const int DostawaPaliwa = 91; + public const int StanStacji = 92; +} + +} \ No newline at end of file diff --git a/FKGees/App.cs b/FKGees/App.cs index 72b37a8..099dd6d 100644 --- a/FKGees/App.cs +++ b/FKGees/App.cs @@ -3,7 +3,7 @@ using FKGees.Services; namespace FKGees; -internal class App +public class App { private readonly DecretsService _decretsService; private readonly PcmService _pcmService; @@ -35,14 +35,14 @@ internal class App } else { - if (!DateTime.TryParseExact(args[0], Constants.DefaultDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out var startDate)) + if (!DateTime.TryParseExact(args[0], Consts.DefaultDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out var startDate)) { Console.WriteLine("Niewłaściwy format DataOd"); await Task.Delay(4000); Environment.Exit(1); } - if (!DateTime.TryParseExact(args[1], Constants.DefaultDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out var endDate)) + if (!DateTime.TryParseExact(args[1], Consts.DefaultDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out var endDate)) { Console.WriteLine("Niewłaściwy format DataOd"); await Task.Delay(4000); diff --git a/FKGees/Constants.cs b/FKGees/Consts.cs similarity index 95% rename from FKGees/Constants.cs rename to FKGees/Consts.cs index 4d47012..1d87bc2 100644 --- a/FKGees/Constants.cs +++ b/FKGees/Consts.cs @@ -2,7 +2,7 @@ namespace FKGees { - internal static class Constants + public static class Consts { public const string DefaultDateFormat = "yyyy-MM-dd"; diff --git a/FKGees/DocsDefinitions/Decrets/DostawaPrasy.cs b/FKGees/DocsDefinitions/Decrets/DostawaPrasy.cs index dccdddc..86db86f 100644 --- a/FKGees/DocsDefinitions/Decrets/DostawaPrasy.cs +++ b/FKGees/DocsDefinitions/Decrets/DostawaPrasy.cs @@ -2,7 +2,7 @@ public class DostawaPrasy : IDecretsDefinition { - public int DocType => 81; + public int DocType => Constants.ZnaczenieTypDok.DostawaPrasy; public string Type => "Dprs"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/FaktSprz.cs b/FKGees/DocsDefinitions/Decrets/FaktSprz.cs index b96d960..62705c1 100644 --- a/FKGees/DocsDefinitions/Decrets/FaktSprz.cs +++ b/FKGees/DocsDefinitions/Decrets/FaktSprz.cs @@ -4,7 +4,7 @@ namespace FKGees.DocsDefinitions.Decrets; public class FaktSprz : IDecretsDefinition { - public int DocType => 33; + public int DocType => Constants.ZnaczenieTypDok.SprzedazFakturowana; public string Type => "FaktSprz"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/KorCenZak.cs b/FKGees/DocsDefinitions/Decrets/KorCenZak.cs index 9a00b97..7377b0e 100644 --- a/FKGees/DocsDefinitions/Decrets/KorCenZak.cs +++ b/FKGees/DocsDefinitions/Decrets/KorCenZak.cs @@ -4,7 +4,7 @@ namespace FKGees.DocsDefinitions.Decrets; public class KorCenZak : IDecretsDefinition { - public int DocType => 26; + public int DocType => Constants.ZnaczenieTypDok.RozbieznoscDostawy; public string Type => "KorCenZak"; public List Definitions { get; } = [ @@ -30,7 +30,7 @@ public class KorCenZak : IDecretsDefinition var toProcess = documents .Where(x => x.TypDok == DocType - && x.PowodKorekty().Contains(Constants.TekstPowodKorekty[nameof(KorCenZak)])); + && x.PowodKorekty().Contains(Consts.TekstPowodKorekty[nameof(KorCenZak)])); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KorDetal.cs b/FKGees/DocsDefinitions/Decrets/KorDetal.cs index 12aded6..89510ea 100644 --- a/FKGees/DocsDefinitions/Decrets/KorDetal.cs +++ b/FKGees/DocsDefinitions/Decrets/KorDetal.cs @@ -2,7 +2,7 @@ public class KorDetal : IDecretsDefinition { - public int DocType => 8; + public int DocType => Constants.ZnaczenieTypDok.ZwrotDoParagonu; public string Type => "KorDetal"; public List Definitions { get; } = [ new Definition("300", "MA", "[snr]"), diff --git a/FKGees/DocsDefinitions/Decrets/KpInne.cs b/FKGees/DocsDefinitions/Decrets/KpInne.cs index 9a494cc..74aca11 100644 --- a/FKGees/DocsDefinitions/Decrets/KpInne.cs +++ b/FKGees/DocsDefinitions/Decrets/KpInne.cs @@ -2,7 +2,7 @@ public class KpInne : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KpInne); public List Definitions { get; } = [ @@ -17,7 +17,7 @@ public class KpInne : IDecretsDefinition var toProcess = documents .Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KP") - && x.Tekst1() == Constants.KpTekstyDod[nameof(KpInne)]); + && x.Tekst1() == Consts.KpTekstyDod[nameof(KpInne)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KpKaucjaDrsZDokUtargu.cs b/FKGees/DocsDefinitions/Decrets/KpKaucjaDrsZDokUtargu.cs index ec1ad36..cb416b0 100644 --- a/FKGees/DocsDefinitions/Decrets/KpKaucjaDrsZDokUtargu.cs +++ b/FKGees/DocsDefinitions/Decrets/KpKaucjaDrsZDokUtargu.cs @@ -2,7 +2,7 @@ public class KpKaucjaDrsZDokUtargu : IDecretsDefinition { - public int DocType => 53; + public int DocType => Constants.ZnaczenieTypDok.UtargZDrukarek; public string Type => nameof(KpKaucjaDrsZDokUtargu); public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/KpKaucjaZDokUtargu.cs b/FKGees/DocsDefinitions/Decrets/KpKaucjaZDokUtargu.cs index 54ce8c5..f945ce9 100644 --- a/FKGees/DocsDefinitions/Decrets/KpKaucjaZDokUtargu.cs +++ b/FKGees/DocsDefinitions/Decrets/KpKaucjaZDokUtargu.cs @@ -2,7 +2,7 @@ public class KpKaucjaZDokUtargu : IDecretsDefinition { - public int DocType => 53; + public int DocType => Constants.ZnaczenieTypDok.UtargZDrukarek; public string Type => nameof(KpKaucjaZDokUtargu); public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/KpKaucjaZaOpakowania.cs b/FKGees/DocsDefinitions/Decrets/KpKaucjaZaOpakowania.cs index e633739..03a06f8 100644 --- a/FKGees/DocsDefinitions/Decrets/KpKaucjaZaOpakowania.cs +++ b/FKGees/DocsDefinitions/Decrets/KpKaucjaZaOpakowania.cs @@ -2,7 +2,7 @@ public class KpKaucjaZaOpakowania : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KpKaucjaZaOpakowania); public List Definitions { get; } = [ new Definition("100-1-24", "WN", "[sbr]"), @@ -16,7 +16,7 @@ public class KpKaucjaZaOpakowania : IDecretsDefinition var toProcess = documents .Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KP") - && x.Tekst1() == Constants.KpTekstyDod[nameof(KpKaucjaZaOpakowania)]); + && x.Tekst1() == Consts.KpTekstyDod[nameof(KpKaucjaZaOpakowania)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KpLotto.cs b/FKGees/DocsDefinitions/Decrets/KpLotto.cs index a9fe0e3..bebf92f 100644 --- a/FKGees/DocsDefinitions/Decrets/KpLotto.cs +++ b/FKGees/DocsDefinitions/Decrets/KpLotto.cs @@ -2,7 +2,7 @@ public class KpLotto : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KpLotto); public List Definitions { get; } = [ @@ -17,7 +17,7 @@ public class KpLotto : IDecretsDefinition var toProcess = documents .Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KP") - && x.Tekst1() == Constants.KpTekstyDod[nameof(KpLotto)]); + && x.Tekst1() == Consts.KpTekstyDod[nameof(KpLotto)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KpPaysafe.cs b/FKGees/DocsDefinitions/Decrets/KpPaysafe.cs index 1ed7b57..ba61c93 100644 --- a/FKGees/DocsDefinitions/Decrets/KpPaysafe.cs +++ b/FKGees/DocsDefinitions/Decrets/KpPaysafe.cs @@ -2,7 +2,7 @@ public class KpPaysafe : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KpPaysafe); public List Definitions { get; } = [ @@ -17,7 +17,7 @@ public class KpPaysafe : IDecretsDefinition var toProcess = documents .Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KP") - && x.Tekst1() == Constants.KpTekstyDod[nameof(KpPaysafe)]); + && x.Tekst1() == Consts.KpTekstyDod[nameof(KpPaysafe)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KpRachunki.cs b/FKGees/DocsDefinitions/Decrets/KpRachunki.cs index 0669abc..322cb95 100644 --- a/FKGees/DocsDefinitions/Decrets/KpRachunki.cs +++ b/FKGees/DocsDefinitions/Decrets/KpRachunki.cs @@ -2,7 +2,7 @@ public class KpRachunki : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KpRachunki); public List Definitions { get; } = [ @@ -17,7 +17,7 @@ public class KpRachunki : IDecretsDefinition var toProcess = documents .Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KP") - && x.Tekst1() == Constants.KpTekstyDod[nameof(KpRachunki)]); + && x.Tekst1() == Consts.KpTekstyDod[nameof(KpRachunki)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KwBony.cs b/FKGees/DocsDefinitions/Decrets/KwBony.cs index 0bd213e..eac8d54 100644 --- a/FKGees/DocsDefinitions/Decrets/KwBony.cs +++ b/FKGees/DocsDefinitions/Decrets/KwBony.cs @@ -2,7 +2,7 @@ public class KwBony : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KwBony); public List Definitions { get; } = [ @@ -16,7 +16,7 @@ public class KwBony : IDecretsDefinition var toProcess = documents.Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KW") - && x.Tekst1() == Constants.KwTekstyDod[nameof(KwBony)]); + && x.Tekst1() == Consts.KwTekstyDod[nameof(KwBony)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KwCashback.cs b/FKGees/DocsDefinitions/Decrets/KwCashback.cs index 8a217c1..ed2122f 100644 --- a/FKGees/DocsDefinitions/Decrets/KwCashback.cs +++ b/FKGees/DocsDefinitions/Decrets/KwCashback.cs @@ -2,7 +2,7 @@ public class KwCashback : IDecretsDefinition { - public int DocType => 53; + public int DocType => Constants.ZnaczenieTypDok.UtargZDrukarek; public string Type => nameof(KwCashback); public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/KwInne.cs b/FKGees/DocsDefinitions/Decrets/KwInne.cs index 921fb07..5f52fe3 100644 --- a/FKGees/DocsDefinitions/Decrets/KwInne.cs +++ b/FKGees/DocsDefinitions/Decrets/KwInne.cs @@ -2,7 +2,7 @@ public class KwInne : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KwInne); public List Definitions { get; } = [ @@ -16,7 +16,7 @@ public class KwInne : IDecretsDefinition var toProcess = documents.Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KW") - && x.Tekst1() == Constants.KwTekstyDod[nameof(KwInne)]); + && x.Tekst1() == Consts.KwTekstyDod[nameof(KwInne)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KwKaucjaDrsZDokUtargu.cs b/FKGees/DocsDefinitions/Decrets/KwKaucjaDrsZDokUtargu.cs index 280886f..1157b45 100644 --- a/FKGees/DocsDefinitions/Decrets/KwKaucjaDrsZDokUtargu.cs +++ b/FKGees/DocsDefinitions/Decrets/KwKaucjaDrsZDokUtargu.cs @@ -2,7 +2,7 @@ public class KwKaucjaDrsZDokUtargu : IDecretsDefinition { - public int DocType => 53; + public int DocType => Constants.ZnaczenieTypDok.UtargZDrukarek; public string Type => nameof(KwKaucjaDrsZDokUtargu); public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/KwKaucjaZDokUtargu.cs b/FKGees/DocsDefinitions/Decrets/KwKaucjaZDokUtargu.cs index 1ba7d5c..984ae4b 100644 --- a/FKGees/DocsDefinitions/Decrets/KwKaucjaZDokUtargu.cs +++ b/FKGees/DocsDefinitions/Decrets/KwKaucjaZDokUtargu.cs @@ -2,7 +2,7 @@ public class KwKaucjaZDokUtargu : IDecretsDefinition { - public int DocType => 53; + public int DocType => Constants.ZnaczenieTypDok.UtargZDrukarek; public string Type => nameof(KwKaucjaZDokUtargu); public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/KwLotto.cs b/FKGees/DocsDefinitions/Decrets/KwLotto.cs index 6115d13..accb074 100644 --- a/FKGees/DocsDefinitions/Decrets/KwLotto.cs +++ b/FKGees/DocsDefinitions/Decrets/KwLotto.cs @@ -2,7 +2,7 @@ public class KwLotto : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KwLotto); public List Definitions { get; } = [ @@ -16,7 +16,7 @@ public class KwLotto : IDecretsDefinition var toProcess = documents.Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KW") - && x.Tekst1() == Constants.KwTekstyDod[nameof(KwLotto)]); + && x.Tekst1() == Consts.KwTekstyDod[nameof(KwLotto)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KwOpakowania.cs b/FKGees/DocsDefinitions/Decrets/KwOpakowania.cs index d05ab6e..22fcf09 100644 --- a/FKGees/DocsDefinitions/Decrets/KwOpakowania.cs +++ b/FKGees/DocsDefinitions/Decrets/KwOpakowania.cs @@ -2,7 +2,7 @@ public class KwOpakowania : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KwOpakowania); public List Definitions { get; } = [ new Definition("139-1-24", "WN", "[sbr]"), @@ -15,7 +15,7 @@ public class KwOpakowania : IDecretsDefinition var toProcess = documents.Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KW") - && x.Tekst1() == Constants.KwTekstyDod[nameof(KwOpakowania)]); + && x.Tekst1() == Consts.KwTekstyDod[nameof(KwOpakowania)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KwPolcard.cs b/FKGees/DocsDefinitions/Decrets/KwPolcard.cs index 2a2ecbb..11ba4c0 100644 --- a/FKGees/DocsDefinitions/Decrets/KwPolcard.cs +++ b/FKGees/DocsDefinitions/Decrets/KwPolcard.cs @@ -2,7 +2,7 @@ public class KwPolcard : IDecretsDefinition { - public int DocType => 53; + public int DocType => Constants.ZnaczenieTypDok.UtargZDrukarek; public string Type => nameof(KwPolcard); public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/KwPomylkaKasjera.cs b/FKGees/DocsDefinitions/Decrets/KwPomylkaKasjera.cs index c8395d9..6dbeddb 100644 --- a/FKGees/DocsDefinitions/Decrets/KwPomylkaKasjera.cs +++ b/FKGees/DocsDefinitions/Decrets/KwPomylkaKasjera.cs @@ -2,7 +2,7 @@ public class KwPomylkaKasjera : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KwPomylkaKasjera); public List Definitions { get; } = [ @@ -16,7 +16,7 @@ public class KwPomylkaKasjera : IDecretsDefinition var toProcess = documents.Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KW") - && x.Tekst1() == Constants.KwTekstyDod[nameof(KwPomylkaKasjera)]); + && x.Tekst1() == Consts.KwTekstyDod[nameof(KwPomylkaKasjera)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/KwUtarg.cs b/FKGees/DocsDefinitions/Decrets/KwUtarg.cs index 9b06168..2b6fb08 100644 --- a/FKGees/DocsDefinitions/Decrets/KwUtarg.cs +++ b/FKGees/DocsDefinitions/Decrets/KwUtarg.cs @@ -2,7 +2,7 @@ public class KwUtarg : IDecretsDefinition { - public int DocType => 51; + public int DocType => Constants.ZnaczenieTypDok.Platnosc; public string Type => nameof(KwUtarg); public List Definitions { get; } = [ @@ -16,7 +16,7 @@ public class KwUtarg : IDecretsDefinition var toProcess = documents.Where(x => x.TypDok == DocType && x.NrDok.StartsWith("KW") - && x.Tekst1() == Constants.KwTekstyDod[nameof(KwUtarg)]); + && x.Tekst1() == Consts.KwTekstyDod[nameof(KwUtarg)]); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/MmMinus.cs b/FKGees/DocsDefinitions/Decrets/MmMinus.cs index 6928e86..383d8f3 100644 --- a/FKGees/DocsDefinitions/Decrets/MmMinus.cs +++ b/FKGees/DocsDefinitions/Decrets/MmMinus.cs @@ -2,7 +2,7 @@ public class MmMinus : IDecretsDefinition { - public int DocType => 6; + public int DocType => Constants.ZnaczenieTypDok.Mw; public string Type => "Mm-"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/MmPlus.cs b/FKGees/DocsDefinitions/Decrets/MmPlus.cs index a729b40..5c14e45 100644 --- a/FKGees/DocsDefinitions/Decrets/MmPlus.cs +++ b/FKGees/DocsDefinitions/Decrets/MmPlus.cs @@ -2,7 +2,7 @@ public class MmPlus : IDecretsDefinition { - public int DocType => 3; + public int DocType => Constants.ZnaczenieTypDok.Mp; public string Type => "Mm+"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/ObrotOpakowaniami.cs b/FKGees/DocsDefinitions/Decrets/ObrotOpakowaniami.cs index bff6bb9..285593d 100644 --- a/FKGees/DocsDefinitions/Decrets/ObrotOpakowaniami.cs +++ b/FKGees/DocsDefinitions/Decrets/ObrotOpakowaniami.cs @@ -2,7 +2,7 @@ public class ObrotOpakowaniami : IDecretsDefinition { - public int DocType => 1; + public int DocType => Constants.ZnaczenieTypDok.ObrotOpakowaniami; public string Type => "Opak"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/Przecena.cs b/FKGees/DocsDefinitions/Decrets/Przecena.cs index 45d977c..cbcaaad 100644 --- a/FKGees/DocsDefinitions/Decrets/Przecena.cs +++ b/FKGees/DocsDefinitions/Decrets/Przecena.cs @@ -2,7 +2,7 @@ public class Przecena : IDecretsDefinition { - public int DocType => 18; + public int DocType => Constants.ZnaczenieTypDok.Przecena; public string Type => "Pc"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/Pz.cs b/FKGees/DocsDefinitions/Decrets/Pz.cs index b6caabf..867ee73 100644 --- a/FKGees/DocsDefinitions/Decrets/Pz.cs +++ b/FKGees/DocsDefinitions/Decrets/Pz.cs @@ -2,7 +2,7 @@ public class Pz : IDecretsDefinition { - public int DocType => 2; + public int DocType => Constants.ZnaczenieTypDok.Pz; public string Type => "Pz"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/PzFaktura.cs b/FKGees/DocsDefinitions/Decrets/PzFaktura.cs index 39cbd5e..a1d10ae 100644 --- a/FKGees/DocsDefinitions/Decrets/PzFaktura.cs +++ b/FKGees/DocsDefinitions/Decrets/PzFaktura.cs @@ -2,7 +2,7 @@ public class PzFaktura : IDecretsDefinition { - public int DocType => 2; + public int DocType => Constants.ZnaczenieTypDok.Pz; public string Type => "PzFaktura"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/RapFisk.cs b/FKGees/DocsDefinitions/Decrets/RapFisk.cs index 124bf0f..f9253bd 100644 --- a/FKGees/DocsDefinitions/Decrets/RapFisk.cs +++ b/FKGees/DocsDefinitions/Decrets/RapFisk.cs @@ -2,7 +2,7 @@ public class RapFisk : IDecretsDefinition { - public int DocType => 53; + public int DocType => Constants.ZnaczenieTypDok.UtargZDrukarek; public string Type => "Rapfisk"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/Rozb.cs b/FKGees/DocsDefinitions/Decrets/Rozb.cs index 0430171..d21e33c 100644 --- a/FKGees/DocsDefinitions/Decrets/Rozb.cs +++ b/FKGees/DocsDefinitions/Decrets/Rozb.cs @@ -4,7 +4,7 @@ namespace FKGees.DocsDefinitions.Decrets; public class Rozb : IDecretsDefinition { - public int DocType => 26; + public int DocType => Constants.ZnaczenieTypDok.RozbieznoscDostawy; public string Type => "Rozb"; public List Definitions { get; } = [ @@ -30,7 +30,7 @@ public class Rozb : IDecretsDefinition var toProcess = documents .Where(x => x.TypDok == DocType - && x.PowodKorekty().Contains(Constants.TekstPowodKorekty[nameof(Rozb)])); + && x.PowodKorekty().Contains(Consts.TekstPowodKorekty[nameof(Rozb)])); foreach (var dok in toProcess) { diff --git a/FKGees/DocsDefinitions/Decrets/Utarg.cs b/FKGees/DocsDefinitions/Decrets/Utarg.cs index f02da28..9599300 100644 --- a/FKGees/DocsDefinitions/Decrets/Utarg.cs +++ b/FKGees/DocsDefinitions/Decrets/Utarg.cs @@ -2,7 +2,7 @@ public class Utarg : IDecretsDefinition { - public int DocType => 53; + public int DocType => Constants.ZnaczenieTypDok.UtargZDrukarek; public string Type => nameof(Utarg); public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/Wz.cs b/FKGees/DocsDefinitions/Decrets/Wz.cs index 3ef5377..7d9964f 100644 --- a/FKGees/DocsDefinitions/Decrets/Wz.cs +++ b/FKGees/DocsDefinitions/Decrets/Wz.cs @@ -2,7 +2,7 @@ public class Wz : IDecretsDefinition { - public int DocType => 5; + public int DocType => Constants.ZnaczenieTypDok.Wz; public string Type => "Wz"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Decrets/Zwroty.cs b/FKGees/DocsDefinitions/Decrets/Zwroty.cs index 63c3f72..793a820 100644 --- a/FKGees/DocsDefinitions/Decrets/Zwroty.cs +++ b/FKGees/DocsDefinitions/Decrets/Zwroty.cs @@ -4,7 +4,7 @@ namespace FKGees.DocsDefinitions.Decrets; public class Zwroty : IDecretsDefinition { - public int DocType => 4; + public int DocType => Constants.ZnaczenieTypDok.ZwrotDoDostawcy; public string Type => "Zwroty"; public List Definitions { get; } = [ diff --git a/FKGees/DocsDefinitions/Registers/Fa.cs b/FKGees/DocsDefinitions/Registers/Fa.cs index 94a3ebe..1419257 100644 --- a/FKGees/DocsDefinitions/Registers/Fa.cs +++ b/FKGees/DocsDefinitions/Registers/Fa.cs @@ -1,93 +1,21 @@ namespace FKGees.DocsDefinitions.Registers; -public class Fa : IRegistersDefinition +public class Fa : RegistersDefinitionBase { - public string Type => nameof(Fa).ToUpper(); - public int[] DocTypes => [33]; - - private readonly Context _context; + public override string Type => nameof(Fa).ToUpper(); + public override int[] DocTypes => [Constants.ZnaczenieTypDok.SprzedazFakturowana]; - public Fa(Context context) + public Fa(Context context) : base(context) { - _context = context; } - public Task> Process(IReadOnlyList documents) + protected override void FillAmounts(RegistersResult item, Dok dok) { - var result = new List(); - - var docs = documents.Where(x => DocTypes.Contains(x.TypDok)); - - foreach (var dok in docs) - { - var item = dok.RegisterKontr(); - item.symbolmag = _context.SymbolMag; - item.rodzaj = Type; - item.nr = dok.NrDok; - item.dwystawienia = dok.DataDod; - item.dsprzedazy = dok.DataPom; - item.dwplywu = dok.Data; - item.OpisDok = dok.NrDok; - item.platnosc = _context.PaymentForms.FirstOrDefault(x => x.FormaPlat == dok.FormaPlat)?.Tekst ?? string.Empty; - item.kredyt = (-(dok.DoZaplaty - dok.Zaplacono)).AsString(); - item.termin = dok.DataDod.AddDays(dok.TerminPlat); - - item.sn23 = (dok.Rozbicie(2300)?.Netto ?? 0).AsString(); - item.sn22 = (dok.Rozbicie(2200)?.Netto ?? 0).AsString(); - item.sn8 = (dok.Rozbicie(800)?.Netto ?? 0).AsString(); - item.sn7 = (dok.Rozbicie(700)?.Netto ?? 0).AsString(); - item.sn5 = (dok.Rozbicie(500)?.Netto ?? 0).AsString(); - item.sn3 = (dok.Rozbicie(300)?.Netto ?? 0).AsString(); - item.sn0 = (dok.Rozbicie(0)?.Netto ?? 0).AsString(); - item.snzw = (dok.Rozbicie(-1)?.Netto ?? 0).AsString(); - item.snr = dok.RozbicieDok.Sum(x => x.Netto).AsString(); - - item.sv23 = (dok.Rozbicie(2300)?.Podatek ?? 0).AsString(); - item.sv22 = (dok.Rozbicie(2200)?.Podatek ?? 0).AsString(); - item.sv8 = (dok.Rozbicie(800)?.Podatek ?? 0).AsString(); - item.sv7 = (dok.Rozbicie(700)?.Podatek ?? 0).AsString(); - item.sv5 = (dok.Rozbicie(500)?.Podatek ?? 0).AsString(); - item.sv3 = (dok.Rozbicie(300)?.Podatek ?? 0).AsString(); - item.svr = dok.RozbicieDok.Sum(x => x.Podatek).AsString(); - - item.sb23 = ((dok.Rozbicie(2300)?.Netto ?? 0) + (dok.Rozbicie(2300)?.Podatek ?? 0)).AsString(); - item.sb22 = ((dok.Rozbicie(2200)?.Netto ?? 0) + (dok.Rozbicie(2200)?.Podatek ?? 0)).AsString(); - item.sb8 = ((dok.Rozbicie(800)?.Netto ?? 0) + (dok.Rozbicie(800)?.Podatek ?? 0)).AsString(); - item.sb7 = ((dok.Rozbicie(700)?.Netto ?? 0) + (dok.Rozbicie(700)?.Podatek ?? 0)).AsString(); - item.sb5 = ((dok.Rozbicie(500)?.Netto ?? 0) + (dok.Rozbicie(500)?.Podatek ?? 0)).AsString(); - item.sb3 = ((dok.Rozbicie(300)?.Netto ?? 0) + (dok.Rozbicie(300)?.Podatek ?? 0)).AsString(); - item.sbr = dok.RozbicieDok.Sum(x => x.Podatek + x.Netto).AsString(); - - item.zn23 = (dok.Rozbicie(2300)?.NettoMag ?? 0).AsString(); - item.zn22 = (dok.Rozbicie(2200)?.NettoMag ?? 0).AsString(); - item.zn8 = (dok.Rozbicie(800)?.NettoMag ?? 0).AsString(); - item.zn7 = (dok.Rozbicie(700)?.NettoMag ?? 0).AsString(); - item.zn5 = (dok.Rozbicie(500)?.NettoMag ?? 0).AsString(); - item.zn3 = (dok.Rozbicie(300)?.NettoMag ?? 0).AsString(); - item.zn0 = (dok.Rozbicie(0)?.NettoMag ?? 0).AsString(); - item.znzw = (dok.Rozbicie(-1)?.NettoMag ?? 0).AsString(); - item.znr = dok.RozbicieDok.Sum(x => x.NettoMag ?? 0).AsString(); - - item.zv23 = (dok.Rozbicie(2300)?.PodatekMag ?? 0).AsString(); - item.zv22 = (dok.Rozbicie(2200)?.PodatekMag ?? 0).AsString(); - item.zv8 = (dok.Rozbicie(800)?.PodatekMag ?? 0).AsString(); - item.zv7 = (dok.Rozbicie(700)?.PodatekMag ?? 0).AsString(); - item.zv5 = (dok.Rozbicie(500)?.PodatekMag ?? 0).AsString(); - item.zv3 = (dok.Rozbicie(300)?.PodatekMag ?? 0).AsString(); - item.znr = dok.RozbicieDok.Sum(x => x.PodatekMag ?? 0).AsString(); - - item.zb23 = ((dok.Rozbicie(2300)?.NettoMag ?? 0) + (dok.Rozbicie(2300)?.PodatekMag ?? 0)).AsString(); - item.zb22 = ((dok.Rozbicie(2200)?.NettoMag ?? 0) + (dok.Rozbicie(2200)?.PodatekMag ?? 0)).AsString(); - item.zb8 = ((dok.Rozbicie(800)?.NettoMag ?? 0) + (dok.Rozbicie(800)?.PodatekMag ?? 0)).AsString(); - item.zb7 = ((dok.Rozbicie(700)?.NettoMag ?? 0) + (dok.Rozbicie(700)?.PodatekMag ?? 0)).AsString(); - item.zb5 = ((dok.Rozbicie(500)?.NettoMag ?? 0) + (dok.Rozbicie(500)?.PodatekMag ?? 0)).AsString(); - item.zb3 = ((dok.Rozbicie(300)?.NettoMag ?? 0) + (dok.Rozbicie(300)?.PodatekMag ?? 0)).AsString(); - item.zbr = dok.RozbicieDok.Sum(x => x.PodatekMag ?? 0 + x.NettoMag ?? 0).AsString(); - item.NrKsef = item.NrKsef = dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 311) - ?.Tekst ?? string.Empty; - result.Add(item); - } - - return Task.FromResult(result); + item.FillRegisterAmounts( + dok, + x => x.Netto, + x => x.Podatek, + x => x.NettoMag ?? 0, + x => x.PodatekMag ?? 0); } } \ No newline at end of file diff --git a/FKGees/DocsDefinitions/Registers/Fz.cs b/FKGees/DocsDefinitions/Registers/Fz.cs index f420745..8633729 100644 --- a/FKGees/DocsDefinitions/Registers/Fz.cs +++ b/FKGees/DocsDefinitions/Registers/Fz.cs @@ -1,92 +1,25 @@ namespace FKGees.DocsDefinitions.Registers; -public class Fz : IRegistersDefinition +public class Fz : RegistersDefinitionBase { - private readonly Context _context; - public string Type => nameof(Fz).ToUpper(); - public int[] DocTypes => [31, 32]; + public override string Type => nameof(Fz).ToUpper(); + public override int[] DocTypes => + [ + Constants.ZnaczenieTypDok.FakturaDostawcy, + Constants.ZnaczenieTypDok.FakturaKorygujacaDostawcy + ]; - public Fz(Context context) + public Fz(Context context) : base(context) { - _context = context; } - - public Task> Process(IReadOnlyList documents) + + protected override void FillAmounts(RegistersResult item, Dok dok) { - var result = new List(); - - var docs = documents.Where(x => DocTypes.Contains(x.TypDok)); - - foreach (var dok in docs) - { - var item = dok.RegisterKontr(); - item.symbolmag = _context.SymbolMag; - item.rodzaj = Type; - item.nr = dok.NrDok; - item.dwystawienia = dok.DataDod; - item.dsprzedazy = dok.DataPom; - item.dwplywu = dok.Data; - item.OpisDok = dok.NrDok; - item.platnosc = _context.PaymentForms.FirstOrDefault(x => x.FormaPlat == dok.FormaPlat)?.Tekst ?? string.Empty; - item.kredyt = (-(dok.DoZaplaty - dok.Zaplacono)).AsString(); - item.termin = dok.DataDod.AddDays(dok.TerminPlat); - item.sn23 = (dok.Rozbicie(2300)?.NettoDet ?? 0).AsString(); - item.sn22 = (dok.Rozbicie(2200)?.NettoDet ?? 0).AsString(); - item.sn8 = (dok.Rozbicie(800)?.NettoDet ?? 0).AsString(); - item.sn7 = (dok.Rozbicie(700)?.NettoDet ?? 0).AsString(); - item.sn5 = (dok.Rozbicie(500)?.NettoDet ?? 0).AsString(); - item.sn3 = (dok.Rozbicie(300)?.NettoDet ?? 0).AsString(); - item.sn0 = (dok.Rozbicie(0)?.NettoDet ?? 0).AsString(); - item.snzw = (dok.Rozbicie(-1)?.NettoDet ?? 0).AsString(); - item.snr = dok.RozbicieDok.Sum(x => x.NettoDet).AsString(); - - item.sv23 = (dok.Rozbicie(2300)?.PodatekDet ?? 0).AsString(); - item.sv22 = (dok.Rozbicie(2200)?.PodatekDet ?? 0).AsString(); - item.sv8 = (dok.Rozbicie(800)?.PodatekDet ?? 0).AsString(); - item.sv7 = (dok.Rozbicie(700)?.PodatekDet ?? 0).AsString(); - item.sv5 = (dok.Rozbicie(500)?.PodatekDet ?? 0).AsString(); - item.sv3 = (dok.Rozbicie(300)?.PodatekDet ?? 0).AsString(); - item.svr = dok.RozbicieDok.Sum(x => x.PodatekDet).AsString(); - - item.sb23 = ((dok.Rozbicie(2300)?.NettoDet ?? 0) + (dok.Rozbicie(2300)?.PodatekDet ?? 0)).AsString(); - item.sb22 = ((dok.Rozbicie(2200)?.NettoDet ?? 0) + (dok.Rozbicie(2200)?.PodatekDet ?? 0)).AsString(); - item.sb8 = ((dok.Rozbicie(800)?.NettoDet ?? 0) + (dok.Rozbicie(800)?.PodatekDet ?? 0)).AsString(); - item.sb7 = ((dok.Rozbicie(700)?.NettoDet ?? 0) + (dok.Rozbicie(700)?.PodatekDet ?? 0)).AsString(); - item.sb5 = ((dok.Rozbicie(500)?.NettoDet ?? 0) + (dok.Rozbicie(500)?.PodatekDet ?? 0)).AsString(); - item.sb3 = ((dok.Rozbicie(300)?.NettoDet ?? 0) + (dok.Rozbicie(300)?.PodatekDet ?? 0)).AsString(); - item.sbr = dok.RozbicieDok.Sum(x => x.PodatekDet + x.NettoDet).AsString(); - - item.zn23 = (dok.Rozbicie(2300)?.Netto ?? 0).AsString(); - item.zn22 = (dok.Rozbicie(2200)?.Netto ?? 0).AsString(); - item.zn8 = (dok.Rozbicie(800)?.Netto ?? 0).AsString(); - item.zn7 = (dok.Rozbicie(700)?.Netto ?? 0).AsString(); - item.zn5 = (dok.Rozbicie(500)?.Netto ?? 0).AsString(); - item.zn3 = (dok.Rozbicie(300)?.Netto ?? 0).AsString(); - item.zn0 = (dok.Rozbicie(0)?.Netto ?? 0).AsString(); - item.znzw = (dok.Rozbicie(-1)?.Netto ?? 0).AsString(); - item.znr = dok.RozbicieDok.Sum(x => x.Netto).AsString(); - - item.zv23 = (dok.Rozbicie(2300)?.Podatek ?? 0).AsString(); - item.zv22 = (dok.Rozbicie(2200)?.Podatek ?? 0).AsString(); - item.zv8 = (dok.Rozbicie(800)?.Podatek ?? 0).AsString(); - item.zv7 = (dok.Rozbicie(700)?.Podatek ?? 0).AsString(); - item.zv5 = (dok.Rozbicie(500)?.Podatek ?? 0).AsString(); - item.zv3 = (dok.Rozbicie(300)?.Podatek ?? 0).AsString(); - item.znr = dok.RozbicieDok.Sum(x => x.Podatek).AsString(); - - item.zb23 = ((dok.Rozbicie(2300)?.Netto ?? 0) + (dok.Rozbicie(2300)?.Podatek ?? 0)).AsString(); - item.zb22 = ((dok.Rozbicie(2200)?.Netto ?? 0) + (dok.Rozbicie(2200)?.Podatek ?? 0)).AsString(); - item.zb8 = ((dok.Rozbicie(800)?.Netto ?? 0) + (dok.Rozbicie(800)?.Podatek ?? 0)).AsString(); - item.zb7 = ((dok.Rozbicie(700)?.Netto ?? 0) + (dok.Rozbicie(700)?.Podatek ?? 0)).AsString(); - item.zb5 = ((dok.Rozbicie(500)?.Netto ?? 0) + (dok.Rozbicie(500)?.Podatek ?? 0)).AsString(); - item.zb3 = ((dok.Rozbicie(300)?.Netto ?? 0) + (dok.Rozbicie(300)?.Podatek ?? 0)).AsString(); - item.zbr = dok.RozbicieDok.Sum(x => x.Podatek + x.Netto).AsString(); - item.NrKsef = item.NrKsef = dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 311) - ?.Tekst ?? string.Empty; - - result.Add(item); - } - - return Task.FromResult(result); + item.FillRegisterAmounts( + dok, + x => x.NettoDet, + x => x.PodatekDet, + x => x.Netto, + x => x.Podatek); } } \ No newline at end of file diff --git a/FKGees/DocsDefinitions/Registers/RegistersDefinitionBase.cs b/FKGees/DocsDefinitions/Registers/RegistersDefinitionBase.cs new file mode 100644 index 0000000..4d60446 --- /dev/null +++ b/FKGees/DocsDefinitions/Registers/RegistersDefinitionBase.cs @@ -0,0 +1,51 @@ +namespace FKGees.DocsDefinitions.Registers; + +public abstract class RegistersDefinitionBase : IRegistersDefinition +{ + private readonly Context _context; + + public abstract string Type { get; } + public abstract int[] DocTypes { get; } + + protected RegistersDefinitionBase(Context context) + { + _context = context; + } + + public Task> Process(IReadOnlyList documents) + { + var result = documents + .Where(x => DocTypes.Contains(x.TypDok)) + .Select(CreateResult) + .ToList(); + + return Task.FromResult(result); + } + + private RegistersResult CreateResult(Dok dok) + { + var item = dok.RegisterKontr(); + + FillCommon(item, dok); + FillAmounts(item, dok); + + return item; + } + + private void FillCommon(RegistersResult item, Dok dok) + { + item.symbolmag = _context.SymbolMag; + item.rodzaj = Type; + item.nr = dok.NrDok; + item.dwystawienia = dok.DataDod; + item.dsprzedazy = dok.DataPom; + item.dwplywu = dok.Data; + item.OpisDok = dok.NrDok; + item.platnosc = _context.PaymentForms.FirstOrDefault(x => x.FormaPlat == dok.FormaPlat)?.Tekst ?? string.Empty; + item.kredyt = (-(dok.DoZaplaty - dok.Zaplacono)).AsString(); + item.termin = dok.DataDod.AddDays(dok.TerminPlat); + item.NrKsef = dok.NrKsef(); + } + + protected abstract void FillAmounts(RegistersResult item, Dok dok); +} \ No newline at end of file diff --git a/FKGees/Extensions/DecimalExtension.cs b/FKGees/Extensions/DecimalExtension.cs index 2973e99..8ab0c25 100644 --- a/FKGees/Extensions/DecimalExtension.cs +++ b/FKGees/Extensions/DecimalExtension.cs @@ -1,8 +1,8 @@ namespace FKGees.Extensions; -internal static class DecimalExtension +public static class DecimalExtension { - internal static string AsString(this decimal value) + public static string AsString(this decimal value) { return value.ToString("0.00"); } diff --git a/FKGees/Extensions/DokExtensions.cs b/FKGees/Extensions/DokExtensions.cs index d3f7cb0..bd1d272 100644 --- a/FKGees/Extensions/DokExtensions.cs +++ b/FKGees/Extensions/DokExtensions.cs @@ -1,56 +1,99 @@ namespace FKGees.Extensions; -internal static class DokExtensions +public static class DokExtensions { - internal static DecretsResult DecretKontr(this Dok doc) - { - var result = new DecretsResult - { - k_Nazwa = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 88)?.Tekst ?? string.Empty, - k_Skrot = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 94)?.Tekst ?? string.Empty, - k_Miejscowosc = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 91)?.Tekst ?? string.Empty, - k_Ulica = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 89)?.Tekst ?? string.Empty, - k_KodPocztowy = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 90)?.Tekst ?? string.Empty, - k_Numer = doc.DokKontr?.Kontr.NrDomu ?? string.Empty, - k_NIP = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 93)?.Tekst ?? string.Empty - }; - return result; - } - internal static RegistersResult RegisterKontr(this Dok doc) + public static DecretsResult DecretKontr(this Dok dok) { - var result = new RegistersResult + var kontrahent = dok.GetKontrahentData(); + + return new DecretsResult { - k_Nazwa = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 88)?.Tekst ?? string.Empty, - k_Skrot = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 94)?.Tekst ?? string.Empty, - k_Miejscowosc = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 91)?.Tekst ?? string.Empty, - k_Ulica = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 89)?.Tekst ?? string.Empty, - k_KodPocztowy = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 90)?.Tekst ?? string.Empty, - k_Numer = doc.DokKontr?.Kontr.NrDomu ?? string.Empty, - k_NIP = doc.TekstDok.FirstOrDefault(x => x.Znaczenie == 93)?.Tekst ?? string.Empty + k_Nazwa = kontrahent.Nazwa, + k_Skrot = kontrahent.Skrot, + k_Miejscowosc = kontrahent.Miejscowosc, + k_Ulica = kontrahent.Ulica, + k_KodPocztowy = kontrahent.KodPocztowy, + k_Numer = kontrahent.Numer, + k_NIP = kontrahent.Nip }; - return result; } - internal static RozbicieDok? Rozbicie(this Dok dok, short stawka) + public static RegistersResult RegisterKontr(this Dok dok) { - var roz = dok.RozbicieDok.FirstOrDefault(x => x.Stawka == stawka); - return roz; + var kontrahent = dok.GetKontrahentData(); + + return new RegistersResult + { + k_Nazwa = kontrahent.Nazwa, + k_Skrot = kontrahent.Skrot, + k_Miejscowosc = kontrahent.Miejscowosc, + k_Ulica = kontrahent.Ulica, + k_KodPocztowy = kontrahent.KodPocztowy, + k_Numer = kontrahent.Numer, + k_NIP = kontrahent.Nip + }; } - internal static string TekstZaCo(this Dok dok) + public static RozbicieDok? Rozbicie(this Dok dok, short stawka) => + dok.RozbicieDok.FirstOrDefault(x => x.Stawka == stawka); + + public static string TekstZaCo(this Dok dok) => + dok.Tekst(Constants.ZnaczenieTekstDok.Komentarz); + + public static string Tekst1(this Dok dok) => + dok.Tekst(Constants.ZnaczenieTekstDok.Tekst1); + + public static string PowodKorekty(this Dok dok) => + dok.Tekst(Constants.ZnaczenieTekstDok.PowodKorekty); + + + public static decimal Value(this Dok dok, short stawka, Func selector) { - return dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 17)?.Tekst ?? string.Empty; + var rozbicie = dok.Rozbicie(stawka); + return rozbicie is null ? 0 : selector(rozbicie); } - - internal static string Tekst1(this Dok dok) + + public static decimal Gross(this Dok dok, short stawka, Func netto, Func podatek) { - return dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 71)?.Tekst ?? string.Empty; + var rozbicie = dok.Rozbicie(stawka); + return rozbicie is null ? 0 : netto(rozbicie) + podatek(rozbicie); } - - internal static string PowodKorekty(this Dok dok) + + public static decimal Sum(this Dok dok, Func selector) { - return dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 144)?.Tekst ?? string.Empty; + return dok.RozbicieDok.Sum(selector); + } + + private static string Tekst(this Dok dok, int znaczenie) => + dok.TekstDok.FirstOrDefault(x => x.Znaczenie == znaczenie)?.Tekst ?? string.Empty; + + private static KontrahentDokData GetKontrahentData(this Dok dok) => + new( + Nazwa: dok.Tekst(Constants.ZnaczenieTekstDok.KontrahentNazwa), + Skrot: dok.Tekst(Constants.ZnaczenieTekstDok.KontrahentSkrot), + Miejscowosc: dok.Tekst(Constants.ZnaczenieTekstDok.KontrahentMiejscowosc), + Ulica: dok.Tekst(Constants.ZnaczenieTekstDok.KontrahentUlica), + KodPocztowy: dok.Tekst(Constants.ZnaczenieTekstDok.KontrahentKodPocztowy), + Numer: dok.DokKontr?.Kontr?.NrDomu ?? string.Empty, + Nip: dok.Tekst(Constants.ZnaczenieTekstDok.KontrahentNip) + ); + + public static string NrKsef(this Dok dok) + { + if (dok.TekstDok.Count == 0) + return string.Empty; + + return dok.TekstDok.FirstOrDefault(x => x.Znaczenie == Constants.ZnaczenieTekstDok.NumerKsef) + ?.Tekst ?? string.Empty; } + private sealed record KontrahentDokData( + string Nazwa, + string Skrot, + string Miejscowosc, + string Ulica, + string KodPocztowy, + string Numer, + string Nip); } \ No newline at end of file diff --git a/FKGees/Extensions/RegistersResultExtensions.cs b/FKGees/Extensions/RegistersResultExtensions.cs new file mode 100644 index 0000000..222552f --- /dev/null +++ b/FKGees/Extensions/RegistersResultExtensions.cs @@ -0,0 +1,65 @@ +namespace FKGees.Extensions; + +public static class RegistersResultExtensions +{ + public static void FillRegisterAmounts( + this RegistersResult item, + Dok dok, + Func sprzedazNetto, + Func sprzedazPodatek, + Func zakupNetto, + Func zakupPodatek) + { + item.sn23 = dok.Value(Constants.Tax.Vat23, sprzedazNetto).AsString(); + item.sn22 = dok.Value(Constants.Tax.Vat22, sprzedazNetto).AsString(); + item.sn8 = dok.Value(Constants.Tax.Vat8, sprzedazNetto).AsString(); + item.sn7 = dok.Value(Constants.Tax.Vat7, sprzedazNetto).AsString(); + item.sn5 = dok.Value(Constants.Tax.Vat5, sprzedazNetto).AsString(); + item.sn3 = dok.Value(Constants.Tax.Vat3, sprzedazNetto).AsString(); + item.sn0 = dok.Value(Constants.Tax.Vat0, sprzedazNetto).AsString(); + item.snzw = dok.Value(Constants.Tax.VatZw, sprzedazNetto).AsString(); + item.snr = dok.Sum(sprzedazNetto).AsString(); + + item.sv23 = dok.Value(Constants.Tax.Vat23, sprzedazPodatek).AsString(); + item.sv22 = dok.Value(Constants.Tax.Vat22, sprzedazPodatek).AsString(); + item.sv8 = dok.Value(Constants.Tax.Vat8, sprzedazPodatek).AsString(); + item.sv7 = dok.Value(Constants.Tax.Vat7, sprzedazPodatek).AsString(); + item.sv5 = dok.Value(Constants.Tax.Vat5, sprzedazPodatek).AsString(); + item.sv3 = dok.Value(Constants.Tax.Vat3, sprzedazPodatek).AsString(); + item.svr = dok.Sum(sprzedazPodatek).AsString(); + + item.sb23 = dok.Gross(Constants.Tax.Vat23, sprzedazNetto, sprzedazPodatek).AsString(); + item.sb22 = dok.Gross(Constants.Tax.Vat22, sprzedazNetto, sprzedazPodatek).AsString(); + item.sb8 = dok.Gross(Constants.Tax.Vat8, sprzedazNetto, sprzedazPodatek).AsString(); + item.sb7 = dok.Gross(Constants.Tax.Vat7, sprzedazNetto, sprzedazPodatek).AsString(); + item.sb5 = dok.Gross(Constants.Tax.Vat5, sprzedazNetto, sprzedazPodatek).AsString(); + item.sb3 = dok.Gross(Constants.Tax.Vat3, sprzedazNetto, sprzedazPodatek).AsString(); + item.sbr = dok.Sum(x => sprzedazNetto(x) + sprzedazPodatek(x)).AsString(); + + item.zn23 = dok.Value(Constants.Tax.Vat23, zakupNetto).AsString(); + item.zn22 = dok.Value(Constants.Tax.Vat22, zakupNetto).AsString(); + item.zn8 = dok.Value(Constants.Tax.Vat8, zakupNetto).AsString(); + item.zn7 = dok.Value(Constants.Tax.Vat7, zakupNetto).AsString(); + item.zn5 = dok.Value(Constants.Tax.Vat5, zakupNetto).AsString(); + item.zn3 = dok.Value(Constants.Tax.Vat3, zakupNetto).AsString(); + item.zn0 = dok.Value(Constants.Tax.Vat0, zakupNetto).AsString(); + item.znzw = dok.Value(Constants.Tax.VatZw, zakupNetto).AsString(); + item.znr = dok.Sum(zakupNetto).AsString(); + + item.zv23 = dok.Value(Constants.Tax.Vat23, zakupPodatek).AsString(); + item.zv22 = dok.Value(Constants.Tax.Vat22, zakupPodatek).AsString(); + item.zv8 = dok.Value(Constants.Tax.Vat8, zakupPodatek).AsString(); + item.zv7 = dok.Value(Constants.Tax.Vat7, zakupPodatek).AsString(); + item.zv5 = dok.Value(Constants.Tax.Vat5, zakupPodatek).AsString(); + item.zv3 = dok.Value(Constants.Tax.Vat3, zakupPodatek).AsString(); + item.zvr = dok.Sum(zakupPodatek).AsString(); + + item.zb23 = dok.Gross(Constants.Tax.Vat23, zakupNetto, zakupPodatek).AsString(); + item.zb22 = dok.Gross(Constants.Tax.Vat22, zakupNetto, zakupPodatek).AsString(); + item.zb8 = dok.Gross(Constants.Tax.Vat8, zakupNetto, zakupPodatek).AsString(); + item.zb7 = dok.Gross(Constants.Tax.Vat7, zakupNetto, zakupPodatek).AsString(); + item.zb5 = dok.Gross(Constants.Tax.Vat5, zakupNetto, zakupPodatek).AsString(); + item.zb3 = dok.Gross(Constants.Tax.Vat3, zakupNetto, zakupPodatek).AsString(); + item.zbr = dok.Sum(x => zakupNetto(x) + zakupPodatek(x)).AsString(); + } +} \ No newline at end of file diff --git a/FKGees/Extensions/ServiceCollectionExtensions.cs b/FKGees/Extensions/ServiceCollectionExtensions.cs index c972247..a298dba 100644 --- a/FKGees/Extensions/ServiceCollectionExtensions.cs +++ b/FKGees/Extensions/ServiceCollectionExtensions.cs @@ -3,9 +3,9 @@ using Microsoft.Extensions.DependencyInjection; namespace FKGees.Extensions; -internal static class ServiceCollectionExtensions +public static class ServiceCollectionExtensions { - internal static IServiceCollection AddDecretsDefinitions(this IServiceCollection services) + public static IServiceCollection AddDecretsDefinitions(this IServiceCollection services) { services.AddSingleton(); services.AddSingleton(); @@ -42,7 +42,7 @@ internal static class ServiceCollectionExtensions return services; } - internal static IServiceCollection AddRegistersDefinitions(this IServiceCollection services) + public static IServiceCollection AddRegistersDefinitions(this IServiceCollection services) { services.AddScoped(); services.AddScoped(); diff --git a/FKGees/Models/Definition.cs b/FKGees/Models/Definition.cs index 3013c22..b24ccda 100644 --- a/FKGees/Models/Definition.cs +++ b/FKGees/Models/Definition.cs @@ -1,3 +1,3 @@ namespace FKGees.Models; -public record Definition( string Account, string AccountSide, string Expression); \ No newline at end of file +public record Definition(string Account, string AccountSide, string Expression); \ No newline at end of file diff --git a/FKGees/Models/RegistersResult.cs b/FKGees/Models/RegistersResult.cs index 4cc6ea9..c340ebb 100644 --- a/FKGees/Models/RegistersResult.cs +++ b/FKGees/Models/RegistersResult.cs @@ -74,5 +74,4 @@ public class RegistersResult public string zb3 { get; set; } = string.Empty; public string zbr { get; set; } = string.Empty; public string NrKsef { get; set; } = string.Empty; - } \ No newline at end of file diff --git a/FKGees/Program.cs b/FKGees/Program.cs index 7eb7f9c..e5f895d 100644 --- a/FKGees/Program.cs +++ b/FKGees/Program.cs @@ -6,7 +6,7 @@ using Microsoft.Extensions.DependencyInjection; using NLog; using NLog.Extensions.Logging; -var logger = LogManager.GetCurrentClassLogger(); +var classLogger = LogManager.GetCurrentClassLogger(); AppDomain.CurrentDomain.UnhandledException += (sender, e) => { @@ -38,19 +38,18 @@ try using (servicesProvider) { - logger.Info("Run application"); + classLogger.Info("Run application"); if (!Directory.Exists("Export")) Directory.CreateDirectory("Export"); var app = servicesProvider.GetRequiredService(); - app.Run(args) - .Wait(); + app.Run(args).Wait(); } } catch (Exception ex) { - logger.Error(ex, "Stopped program because of exception"); + classLogger.Error(ex, "Stopped program because of exception"); throw; } finally @@ -58,12 +57,14 @@ finally LogManager.Shutdown(); } +return; + static IServiceCollection AddServices(IConfiguration config) { var connectionString = - $"Server={config[Constants.DbConfig.Host]},{config[Constants.DbConfig.Port]};Database={config[Constants.DbConfig.Database]};User Id={config[Constants.DbConfig.Login]}; Password={config[Constants.DbConfig.Password]};TrustServerCertificate=True"; + $"Server={config[Consts.DbConfig.Host]},{config[Consts.DbConfig.Port]};Database={config[Consts.DbConfig.Database]};User Id={config[Consts.DbConfig.Login]}; Password={config[Consts.DbConfig.Password]};TrustServerCertificate=True"; - if (!int.TryParse(config[Constants.DbConfig.Timeout], out var dbTimeout) || dbTimeout < 30) + if (!int.TryParse(config[Consts.DbConfig.Timeout], out var dbTimeout) || dbTimeout < 30) { dbTimeout = 30; } diff --git a/FKGees/Services/CsvService.cs b/FKGees/Services/CsvService.cs index ad34672..fc29f6d 100644 --- a/FKGees/Services/CsvService.cs +++ b/FKGees/Services/CsvService.cs @@ -6,9 +6,9 @@ using CsvHelper.TypeConversion; namespace FKGees.Services; -internal class CsvService(ILogger logger) +public class CsvService(ILogger logger) { - internal async Task CsvExport(string filePath, IEnumerable records) + public async Task CsvExport(string filePath, IEnumerable records) { try { @@ -19,15 +19,15 @@ internal class CsvService(ILogger logger) Mode = CsvMode.RFC4180, ShouldQuote = quoteArgs => quoteArgs.Field != nameof(DecretsResult.Data) && quoteArgs.Field != nameof(DecretsResult.DataWplywu) - && !DateTime.TryParseExact(quoteArgs.Field, Constants.DefaultDateFormat, CultureInfo.InvariantCulture, + && !DateTime.TryParseExact(quoteArgs.Field, Consts.DefaultDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out _), Encoding = Encoding.GetEncoding("Windows-1250") }; await using var csv = new CsvWriter(writer, conf); - var options = new TypeConverterOptions { Formats = [Constants.DefaultDateFormat], NullValues = { string.Empty }}; + var options = new TypeConverterOptions {Formats = [Consts.DefaultDateFormat], NullValues = {string.Empty}}; csv.Context.TypeConverterOptionsCache.AddOptions(options); csv.Context.TypeConverterOptionsCache.AddOptions(options); - + await csv.WriteRecordsAsync(records); } catch (Exception e) diff --git a/FKGees/Services/DecretsService.cs b/FKGees/Services/DecretsService.cs index 9e1c873..8f77927 100644 --- a/FKGees/Services/DecretsService.cs +++ b/FKGees/Services/DecretsService.cs @@ -1,6 +1,6 @@ namespace FKGees.Services; -internal class DecretsService +public class DecretsService { private readonly PcmService _pcmService; private readonly CsvService _csvService; @@ -8,7 +8,8 @@ internal class DecretsService private readonly ILogger _logger; private readonly Context _context; - public DecretsService(PcmService pcmService, CsvService csvService, IEnumerable definitions, ILogger logger, Context context) + public DecretsService(PcmService pcmService, CsvService csvService, IEnumerable definitions, ILogger logger, + Context context) { _pcmService = pcmService; _csvService = csvService; @@ -17,11 +18,12 @@ internal class DecretsService _context = context; } - internal async Task Process() + public async Task Process() { try { - _logger.LogInformation("DecretsService - Start exports decrets, StartDate: {StartDate}, EndDate: {EndDate}", _context.StatDate , _context.EndDate); + _logger.LogInformation("DecretsService - Start exports decrets, StartDate: {StartDate}, EndDate: {EndDate}", _context.StatDate, + _context.EndDate); Console.WriteLine(); Console.WriteLine("Export dekretów"); var doctypes = _definitions.Select(x => x.DocType) @@ -41,7 +43,8 @@ internal class DecretsService _logger.LogInformation("DecretsService - Export success"); Console.WriteLine("Eksport do pliku dekretów"); Console.WriteLine(); - await _csvService.CsvExport($"Export/{_context.DecretsFileName}", result.OrderBy(x => x.Data).ThenBy(x => x.Nr)); + await _csvService.CsvExport($"Export/{_context.DecretsFileName}", result.OrderBy(x => x.Data) + .ThenBy(x => x.Nr)); Console.WriteLine("Eksport do pliku dekretów zakończony powodzeniem"); } catch (Exception e) diff --git a/FKGees/Services/RegistersService.cs b/FKGees/Services/RegistersService.cs index c520c1e..9d27d84 100644 --- a/FKGees/Services/RegistersService.cs +++ b/FKGees/Services/RegistersService.cs @@ -1,6 +1,6 @@ namespace FKGees.Services; -internal class RegistersService +public class RegistersService { private readonly PcmService _pcmService; private readonly CsvService _csvService; @@ -22,7 +22,8 @@ internal class RegistersService { try { - _logger.LogInformation("RegistersService - Start exports registers, StartDate: {StartDate}, EndDate: {EndDate}", _context.StatDate , _context.EndDate); + _logger.LogInformation("RegistersService - Start exports registers, StartDate: {StartDate}, EndDate: {EndDate}", _context.StatDate, + _context.EndDate); Console.WriteLine(); Console.WriteLine("Export rejestrów");