Compare commits

..

No commits in common. "master" and "1.0.12" have entirely different histories.

29 changed files with 84 additions and 478 deletions

View File

@ -8,11 +8,11 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.8"> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.6">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.8" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.6" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -5,7 +5,6 @@ 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";
@ -23,22 +22,18 @@ namespace FKGees
{nameof(KwUtarg), "*WYPŁATA DO BANKU*"}, {nameof(KwUtarg), "*WYPŁATA DO BANKU*"},
{nameof(KwInne), "*INNE*"}, {nameof(KwInne), "*INNE*"},
{nameof(KwPomylkaKasjera), "*POMYŁKA*"}, {nameof(KwPomylkaKasjera), "*POMYŁKA*"},
{nameof(KwLotto), "*LOTTO*"} {nameof(KwLotto), "*LOTTO*"},
}; };
public static readonly Dictionary<string, string> KpTekstyDod = new() public static readonly Dictionary<string, string> KpTekstyDod = new()
{ {
{nameof(KpKaucjaZaOpakowania), "*KAUCJA ZA OPAKOWANIA*"}, {nameof(KpKaucjaZaOpakowania), "*KAUCJA ZA OPAKOWANIA*"},
{nameof(KpKasy), "*SPRZEDAŻ Z KAS*"},
{nameof(KpRachunki), "*MOJE RACH.*"}, {nameof(KpRachunki), "*MOJE RACH.*"},
{nameof(KpInne), "*INNE*"}, {nameof(KpInne), "*INNE*"},
{nameof(KpPaysafe), "*PAYSAFE*"}, {nameof(KpPaysafe), "*PAYSAFE*"},
{nameof(KpLotto), "*LOTTO*"}, {nameof(KpLotto), "*LOTTO*"},
};
public static readonly Dictionary<string, string> TekstPowodKorekty = new()
{
{nameof(Rozb), "korekta ilości"},
{nameof(KorCenZak), "korekta ceny"},
}; };
} }
} }

View File

@ -1,53 +0,0 @@
namespace FKGees.DocsDefinitions.Decrets;
public class DostawaPrasy : IDecretsDefinition
{
public int DocType => 81;
public string Type => "Dprs";
public List<Definition> 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<List<DecretsResult>> Process(IReadOnlyList<Dok> documents)
{
var result = new List<DecretsResult>();
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.PodatekDet,
"[sbr]" => doc.NettoDet + doc.PodatekDet,
_ => 0
};
}
}

View File

@ -1,70 +0,0 @@
using FKGees.Services;
namespace FKGees.DocsDefinitions.Decrets;
public class KorCenZak : IDecretsDefinition
{
public int DocType => 26;
public string Type => "KorCenZak";
public List<Definition> Definitions { get; } =
[
new Definition("361-0-24", "WN", "[znr]"),
new Definition("221-0-24", "WN", "[zvr]"),
new Definition("210-1", "MA", "[zbr]"),
new Definition("301-0-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]")
];
private readonly PcmService _pcmService;
public KorCenZak(PcmService pcmService)
{
_pcmService = pcmService;
}
public Task<List<DecretsResult>> Process(IReadOnlyList<Dok> documents)
{
var result = new List<DecretsResult>();
var toProcess = documents
.Where(x => x.TypDok == DocType
&& x.PowodKorekty().Contains(Constants.TekstPowodKorekty[nameof(KorCenZak)]));
foreach (var dok in toProcess)
{
var opis = _pcmService.RozbNrFakturyKor(dok.DokId);
Definitions.ForEach(d =>
{
var item = dok.DecretKontr();
item.Data = dok.DataPom;
item.DataWplywu = dok.Data;
item.Nr = dok.NrDok;
item.Opis = opis;
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,
"[zvr]" => doc.Podatek,
"[zbr]" => doc.Netto + doc.Podatek,
"[sbr]" => doc.NettoDet + doc.PodatekDet,
"[snr]-[znr]" => doc.NettoDet - doc.Netto,
"[sbr]-[snr]" => doc.NettoDet + doc.PodatekDet - doc.Netto,
_ => 0
};
}
}

View File

@ -7,7 +7,7 @@ public class KpInne : IDecretsDefinition
public List<Definition> Definitions { get; } = public List<Definition> Definitions { get; } =
[ [
new Definition("139-1-24", "WN", "[sbr]"), new Definition("139-1-24", "WN", "[sbr]"),
new Definition("100-1-24", "WN", "[sbr]") new Definition("100-1-24", "MA", "[sbr]")
]; ];
public Task<List<DecretsResult>> Process(IReadOnlyList<Dok> documents) public Task<List<DecretsResult>> Process(IReadOnlyList<Dok> documents)
@ -28,7 +28,7 @@ public class KpInne : IDecretsDefinition
Data = dok.DataPom, Data = dok.DataPom,
DataWplywu = dok.Data, DataWplywu = dok.Data,
Nr = dok.NrDok, Nr = dok.NrDok,
Opis = dok.NrDok, Opis = dok.TekstZaCo(),
StronaKonta = d.AccountSide, StronaKonta = d.AccountSide,
KontoFk = d.Account, KontoFk = d.Account,
Kwota = Math.Abs(dok.Zaplacono).AsString() Kwota = Math.Abs(dok.Zaplacono).AsString()

View File

@ -1,9 +1,9 @@
namespace FKGees.DocsDefinitions.Decrets; namespace FKGees.DocsDefinitions.Decrets;
public class Utarg : IDecretsDefinition public class KpKasy : IDecretsDefinition
{ {
public int DocType => 53; public int DocType => 51;
public string Type => nameof(Utarg); public string Type => nameof(KpKasy);
public List<Definition> Definitions { get; } = public List<Definition> Definitions { get; } =
[ [
new Definition("100-1-24", "WN", "[sbr]"), new Definition("100-1-24", "WN", "[sbr]"),
@ -15,8 +15,9 @@ public class Utarg : IDecretsDefinition
var result = new List<DecretsResult>(); var result = new List<DecretsResult>();
var toProcess = documents var toProcess = documents
.Where(x => x.TypDok == DocType && x.Kwota1 != 0) .Where(x => x.TypDok == DocType
.GroupBy(x => x.Data); && x.NrDok.StartsWith("KP")
&& x.Tekst1() == Constants.KpTekstyDod[nameof(KpKasy)]);
foreach (var dok in toProcess) foreach (var dok in toProcess)
{ {
@ -24,13 +25,13 @@ public class Utarg : IDecretsDefinition
{ {
var item = new DecretsResult var item = new DecretsResult
{ {
Data = dok.Key, Data = dok.DataPom,
DataWplywu = dok.Key, DataWplywu = dok.Data,
Nr = string.Join(", ",dok.Select(z => z.NrDok)), Nr = dok.NrDok,
Opis = "UTARG Z KAS", Opis = dok.TekstZaCo(),
StronaKonta = d.AccountSide, StronaKonta = d.AccountSide,
KontoFk = d.Account, KontoFk = d.Account,
Kwota = dok.Sum(x => x.Razem - x.Kwota1 + x.Kwota2).AsString() Kwota = Math.Abs(dok.Zaplacono).AsString()
}; };
result.Add(item); result.Add(item);

View File

@ -26,7 +26,7 @@ public class KpKaucjaZaOpakowania : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = dok.NrDok; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = Math.Abs(dok.Zaplacono).AsString(); item.Kwota = Math.Abs(dok.Zaplacono).AsString();

View File

@ -7,7 +7,7 @@ public class KpLotto : IDecretsDefinition
public List<Definition> Definitions { get; } = public List<Definition> Definitions { get; } =
[ [
new Definition("100-1-24", "WN", "[sbr]"), new Definition("100-1-24", "WN", "[sbr]"),
new Definition("249-0-22", "MA", "[sbr]") new Definition("249-1-22", "MA", "[sbr]")
]; ];
public Task<List<DecretsResult>> Process(IReadOnlyList<Dok> documents) public Task<List<DecretsResult>> Process(IReadOnlyList<Dok> documents)
@ -28,7 +28,7 @@ public class KpLotto : IDecretsDefinition
Data = dok.DataPom, Data = dok.DataPom,
DataWplywu = dok.Data, DataWplywu = dok.Data,
Nr = dok.NrDok, Nr = dok.NrDok,
Opis = dok.NrDok, Opis = dok.TekstZaCo(),
StronaKonta = d.AccountSide, StronaKonta = d.AccountSide,
KontoFk = d.Account, KontoFk = d.Account,
Kwota = Math.Abs(dok.Zaplacono).AsString() Kwota = Math.Abs(dok.Zaplacono).AsString()

View File

@ -28,7 +28,7 @@ public class KpPaysafe : IDecretsDefinition
Data = dok.DataPom, Data = dok.DataPom,
DataWplywu = dok.Data, DataWplywu = dok.Data,
Nr = dok.NrDok, Nr = dok.NrDok,
Opis = dok.NrDok, Opis = dok.TekstZaCo(),
StronaKonta = d.AccountSide, StronaKonta = d.AccountSide,
KontoFk = d.Account, KontoFk = d.Account,
Kwota = Math.Abs(dok.Zaplacono).AsString() Kwota = Math.Abs(dok.Zaplacono).AsString()

View File

@ -28,7 +28,7 @@ public class KpRachunki : IDecretsDefinition
Data = dok.DataPom, Data = dok.DataPom,
DataWplywu = dok.Data, DataWplywu = dok.Data,
Nr = dok.NrDok, Nr = dok.NrDok,
Opis = dok.NrDok, Opis = dok.TekstZaCo(),
StronaKonta = d.AccountSide, StronaKonta = d.AccountSide,
KontoFk = d.Account, KontoFk = d.Account,
Kwota = Math.Abs(dok.Zaplacono).AsString() Kwota = Math.Abs(dok.Zaplacono).AsString()

View File

@ -26,7 +26,7 @@ public class KwBony : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = dok.NrDok; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = Math.Abs(dok.Zaplacono).AsString(); item.Kwota = Math.Abs(dok.Zaplacono).AsString();

View File

@ -1,42 +0,0 @@
namespace FKGees.DocsDefinitions.Decrets;
public class KwCashback : IDecretsDefinition
{
public int DocType => 53;
public string Type => nameof(KwCashback);
public List<Definition> Definitions { get; } =
[
new Definition("249-0-19", "WN", "[sbr]"),
new Definition("100-1-24", "MA", "[sbr]")
];
public Task<List<DecretsResult>> Process(IReadOnlyList<Dok> documents)
{
var result = new List<DecretsResult>();
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);
}
}

View File

@ -26,7 +26,7 @@ public class KwInne : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = dok.NrDok; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = Math.Abs(dok.Zaplacono).AsString(); item.Kwota = Math.Abs(dok.Zaplacono).AsString();

View File

@ -26,7 +26,7 @@ public class KwLotto : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = dok.NrDok; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = Math.Abs(dok.Zaplacono).AsString(); item.Kwota = Math.Abs(dok.Zaplacono).AsString();

View File

@ -25,7 +25,7 @@ public class KwOpakowania : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = dok.NrDok; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = Math.Abs(dok.Zaplacono).AsString(); item.Kwota = Math.Abs(dok.Zaplacono).AsString();

View File

@ -6,7 +6,7 @@ public class KwPolcard : IDecretsDefinition
public string Type => nameof(KwPolcard); public string Type => nameof(KwPolcard);
public List<Definition> Definitions { get; } = public List<Definition> Definitions { get; } =
[ [
new Definition("249-0-19", "WN", "[sbr]"), new Definition("249-0-29", "WN", "[sbr]"),
new Definition("100-1-24", "MA", "[sbr]") new Definition("100-1-24", "MA", "[sbr]")
]; ];

View File

@ -26,7 +26,7 @@ public class KwPomylkaKasjera : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = dok.NrDok; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = Math.Abs(dok.Zaplacono).AsString(); item.Kwota = Math.Abs(dok.Zaplacono).AsString();

View File

@ -26,7 +26,7 @@ public class KwUtarg : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = dok.NrDok; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = Math.Abs(dok.Zaplacono).AsString(); item.Kwota = Math.Abs(dok.Zaplacono).AsString();

View File

@ -26,7 +26,7 @@ public class MmMinus : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = $"{dok.NrDok} / PRZERZUT NA {item.k_Skrot}"; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = ProcessValue(dok, d.Expression).AsString(); item.Kwota = ProcessValue(dok, d.Expression).AsString();

View File

@ -26,7 +26,7 @@ public class MmPlus : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = $"{dok.NrDok} / PRZERZUT Z {item.k_Skrot}"; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = ProcessValue(dok, d.Expression).AsString(); item.Kwota = ProcessValue(dok, d.Expression).AsString();

View File

@ -1,38 +0,0 @@
namespace FKGees.DocsDefinitions.Decrets;
public class ObrotOpakowaniami : IDecretsDefinition
{
public int DocType => 1;
public string Type => "Opak";
public List<Definition> Definitions { get; } =
[
new Definition("307-0-24", "MA", "[sbr]"),
new Definition("332-0-24", "WN", "[sbr]")
];
public Task<List<DecretsResult>> Process(IReadOnlyList<Dok> documents)
{
var result = new List<DecretsResult>();
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.StronaKonta = d.AccountSide;
item.KontoFk = d.Account;
item.Kwota = dok.NettoDet.AsString();
result.Add(item);
});
}
return Task.FromResult(result);
}
}

View File

@ -26,7 +26,7 @@ public class Przecena : IDecretsDefinition
item.Data = dok.DataPom; item.Data = dok.DataPom;
item.DataWplywu = dok.Data; item.DataWplywu = dok.Data;
item.Nr = dok.NrDok; item.Nr = dok.NrDok;
item.Opis = dok.NrDok; item.Opis = dok.TekstZaCo();
item.StronaKonta = d.AccountSide; item.StronaKonta = d.AccountSide;
item.KontoFk = d.Account; item.KontoFk = d.Account;
item.Kwota = Processvalue(dok, d.Expression).AsString(); item.Kwota = Processvalue(dok, d.Expression).AsString();
@ -40,12 +40,17 @@ public class Przecena : IDecretsDefinition
private decimal Processvalue(Dok doc, string expression) private decimal Processvalue(Dok doc, string expression)
{ {
return expression switch switch(expression)
{ {
"[snr]-[znr]" => doc.Netto - doc.NettoDet, case "[snr]-[znr]":
"[sbr]-[snr]" => doc.Podatek - doc.PodatekDet, return doc.Netto - doc.NettoDet;
"[sbr]" => doc.Razem, case "[sbr]-[snr]":
_ => 0 return doc.Podatek - doc.PodatekDet;
}; case "[sbr]":
return doc.Razem;
}
return 0;
} }
} }

View File

@ -13,8 +13,7 @@ public class RapFisk : IDecretsDefinition
new Definition("343-0-24", "WN", "[svr]"), new Definition("343-0-24", "WN", "[svr]"),
new Definition("737-0-24", "MA", "[svr]"), new Definition("737-0-24", "MA", "[svr]"),
new Definition("732-0-24", "WN", "[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", "[sbr]")
]; ];
public Task<List<DecretsResult>> Process(IReadOnlyList<Dok> documents) public Task<List<DecretsResult>> Process(IReadOnlyList<Dok> documents)

View File

@ -1,70 +0,0 @@
using FKGees.Services;
namespace FKGees.DocsDefinitions.Decrets;
public class Rozb : IDecretsDefinition
{
public int DocType => 26;
public string Type => "Rozb";
public List<Definition> 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", "[znr]"),
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<List<DecretsResult>> Process(IReadOnlyList<Dok> documents)
{
var result = new List<DecretsResult>();
var toProcess = documents
.Where(x => x.TypDok == DocType
&& x.PowodKorekty().Contains(Constants.TekstPowodKorekty[nameof(Rozb)]));
foreach (var dok in toProcess)
{
var opis = _pcmService.RozbNrFakturyKor(dok.DokId);
Definitions.ForEach(d =>
{
var item = dok.DecretKontr();
item.Data = dok.DataPom;
item.DataWplywu = dok.Data;
item.Nr = dok.NrDok;
item.Opis = opis;
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,
"[zvr]" => doc.Podatek,
"[zbr]" => (doc.Netto + doc.Podatek),
"[sbr]" => doc.NettoDet + doc.PodatekDet,
"[svr]" => doc.PodatekDet,
"[sbr]-[znr]" => doc.NettoDet - doc.Netto,
_ => 0
};
}
}

View File

@ -1,69 +0,0 @@
using FKGees.Services;
namespace FKGees.DocsDefinitions.Decrets;
public class Zwroty : IDecretsDefinition
{
public int DocType => 4;
public string Type => "Zwroty";
public List<Definition> 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", "[znr]"),
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<List<DecretsResult>> Process(IReadOnlyList<Dok> documents)
{
var result = new List<DecretsResult>();
var toProcess = documents
.Where(x => x.TypDok == DocType);
foreach (var dok in toProcess)
{
var opis = _pcmService.RozbNrFakturyKor(dok.DokId);
Definitions.ForEach(d =>
{
var item = dok.DecretKontr();
item.Data = dok.DataPom;
item.DataWplywu = dok.Data;
item.Nr = dok.NrDok;
item.Opis = opis;
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,
"[zvr]" => -doc.Podatek,
"[zbr]" => -(doc.Netto + doc.Podatek),
"[sbr]" => -(doc.NettoDet + doc.PodatekDet),
"[svr]" => -(doc.PodatekDet),
"[sbr]-[znr]" => -(doc.NettoDet + doc.PodatekDet - doc.Netto),
_ => 0
};
}
}

View File

@ -48,9 +48,4 @@ internal static class DokExtensions
return dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 71)?.Tekst ?? string.Empty; return dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 71)?.Tekst ?? string.Empty;
} }
internal static string PowodKorekty(this Dok dok)
{
return dok.TekstDok.FirstOrDefault(x => x.Znaczenie == 144)?.Tekst ?? string.Empty;
}
} }

View File

@ -7,14 +7,13 @@ internal static class ServiceCollectionExtensions
{ {
internal static IServiceCollection AddDecretsDefinitions(this IServiceCollection services) internal static IServiceCollection AddDecretsDefinitions(this IServiceCollection services)
{ {
services.AddSingleton<IDecretsDefinition, RapFisk>();
services.AddSingleton<IDecretsDefinition, ObrotOpakowaniami>();
services.AddSingleton<IDecretsDefinition, Przecena>(); services.AddSingleton<IDecretsDefinition, Przecena>();
services.AddSingleton<IDecretsDefinition, MmPlus>(); services.AddSingleton<IDecretsDefinition, MmPlus>();
services.AddSingleton<IDecretsDefinition, MmMinus>(); services.AddSingleton<IDecretsDefinition, MmMinus>();
services.AddSingleton<IDecretsDefinition, Pz>(); services.AddSingleton<IDecretsDefinition, Pz>();
services.AddSingleton<IDecretsDefinition, Wz>(); services.AddSingleton<IDecretsDefinition, Wz>();
services.AddSingleton<IDecretsDefinition, PzFaktura>(); services.AddSingleton<IDecretsDefinition, PzFaktura>();
services.AddSingleton<IDecretsDefinition, RapFisk>();
services.AddSingleton<IDecretsDefinition, KorDetal>(); services.AddSingleton<IDecretsDefinition, KorDetal>();
services.AddSingleton<IDecretsDefinition, FaktSprz>(); services.AddSingleton<IDecretsDefinition, FaktSprz>();
services.AddSingleton<IDecretsDefinition, KwBony>(); services.AddSingleton<IDecretsDefinition, KwBony>();
@ -25,18 +24,13 @@ internal static class ServiceCollectionExtensions
services.AddSingleton<IDecretsDefinition, KwPomylkaKasjera>(); services.AddSingleton<IDecretsDefinition, KwPomylkaKasjera>();
services.AddSingleton<IDecretsDefinition, KwUtarg>(); services.AddSingleton<IDecretsDefinition, KwUtarg>();
services.AddSingleton<IDecretsDefinition, KpInne>(); services.AddSingleton<IDecretsDefinition, KpInne>();
services.AddSingleton<IDecretsDefinition, Utarg>(); services.AddSingleton<IDecretsDefinition, KpKasy>();
services.AddSingleton<IDecretsDefinition, KpKaucjaZaOpakowania>(); services.AddSingleton<IDecretsDefinition, KpKaucjaZaOpakowania>();
services.AddSingleton<IDecretsDefinition, KpKaucjaZDokUtargu>(); services.AddSingleton<IDecretsDefinition, KpKaucjaZDokUtargu>();
services.AddSingleton<IDecretsDefinition, KwKaucjaZDokUtargu>(); services.AddSingleton<IDecretsDefinition, KwKaucjaZDokUtargu>();
services.AddSingleton<IDecretsDefinition, KpLotto>(); services.AddSingleton<IDecretsDefinition, KpLotto>();
services.AddSingleton<IDecretsDefinition, KpPaysafe>(); services.AddSingleton<IDecretsDefinition, KpPaysafe>();
services.AddSingleton<IDecretsDefinition, KpRachunki>(); services.AddSingleton<IDecretsDefinition, KpRachunki>();
services.AddSingleton<IDecretsDefinition, Zwroty>();
services.AddSingleton<IDecretsDefinition, Rozb>();
services.AddSingleton<IDecretsDefinition, KorCenZak>();
services.AddSingleton<IDecretsDefinition, KwCashback>();
services.AddSingleton<IDecretsDefinition, DostawaPrasy>();
return services; return services;
} }

View File

@ -8,16 +8,16 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="CsvHelper" Version="33.0.1" /> <PackageReference Include="CsvHelper" Version="32.0.3" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.8"> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.6">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.8" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="8.0.6" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0"/> <PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="8.0.0"/>
<PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0"/> <PackageReference Include="Microsoft.Extensions.Hosting" Version="8.0.0"/>
<PackageReference Include="NLog" Version="5.3.4" /> <PackageReference Include="NLog" Version="5.3.2"/>
<PackageReference Include="NLog.Extensions.Logging" Version="5.3.13" /> <PackageReference Include="NLog.Extensions.Logging" Version="5.3.11"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -26,9 +26,7 @@ public class PcmService
.ThenInclude(x => x.Dok) .ThenInclude(x => x.Dok)
.Include(x => x.DokKasa) .Include(x => x.DokKasa)
.ThenInclude(x => x.Kasa) .ThenInclude(x => x.Kasa)
.Where(x => typdok.Contains(x.TypDok) .Where(x => typdok.Contains(x.TypDok) && x.Data >= dataOd && x.Data <= dataDo)
&& x.Data >= dataOd && x.Data <= dataDo
&& x.Aktywny == 1)
.ToListAsync(); .ToListAsync();
return documents; return documents;
} }
@ -43,9 +41,7 @@ public class PcmService
.ThenInclude(x => x.Kontr) .ThenInclude(x => x.Kontr)
.Include(x => x.TekstDok) .Include(x => x.TekstDok)
.Include(x => x.RozbicieDok) .Include(x => x.RozbicieDok)
.Where(x => typdok.Contains(x.TypDok) .Where(x => typdok.Contains(x.TypDok) && x.Data >= dataOd && x.Data <= dataDo)
&& x.Data >= dataOd && x.Data <= dataDo
&& x.Aktywny == 1)
.ToListAsync(); .ToListAsync();
return documents; return documents;
} }
@ -62,53 +58,16 @@ public class PcmService
return dok?.RozliczanyDok.NrDok ?? string.Empty; return dok?.RozliczanyDok.NrDok ?? string.Empty;
} }
public string RozbNrFakturyKor(decimal dokId)
{
using var context = _dbContextFactory.CreateDbContext();
context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
var dok = context.Rozlicza
.Where(x => x.RozliczanyDokId == dokId)
.Include(x => x.Dok)
.FirstOrDefault();
return dok?.Dok.NrDok ?? string.Empty;
}
public string RozbNrFakturyDost(decimal dokId)
{
using var context = _dbContextFactory.CreateDbContext();
context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
var dok = context.Rozlicza
.Where(x => x.RozliczanyDokId == dokId)
.Include(x => x.Dok)
.FirstOrDefault();
if (dok == null)
return string.Empty;
var dok2 = context.Rozlicza
.Where(x => x.DokId == dok.DokId)
.Include(x => x.RozliczanyDok)
.Include(rozlicza => rozlicza.Dok)
.ToList();
return dok2.FirstOrDefault(x => x.RozliczanyDok is {TypDok: 31, Aktywny: 1})
?.RozliczanyDok.NrDok ?? string.Empty;
}
public async Task<List<FormaPlatnosci>> FormyPlatnosci() public async Task<List<FormaPlatnosci>> FormyPlatnosci()
{ {
await using var context = await _dbContextFactory.CreateDbContextAsync(); await using var context = await _dbContextFactory.CreateDbContextAsync();
context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
var fplat = await context.FormaPlatnosci.Where(x => x.FormaPlat > 4) var fplat = await context.FormaPlatnosci.Where(x => x.FormaPlat > 4).ToListAsync();
.ToListAsync(); fplat.Add(new FormaPlatnosci{ FormaPlat = 0, Tekst = "Gotówka"});
fplat.Add(new FormaPlatnosci {FormaPlat = 0, Tekst = "Gotówka"}); fplat.Add(new FormaPlatnosci{ FormaPlat = 1, Tekst = "Przelew"});
fplat.Add(new FormaPlatnosci {FormaPlat = 1, Tekst = "Przelew"}); fplat.Add(new FormaPlatnosci{ FormaPlat = 2, Tekst = "Czek potwierdzony"});
fplat.Add(new FormaPlatnosci {FormaPlat = 2, Tekst = "Czek potwierdzony"}); fplat.Add(new FormaPlatnosci{ FormaPlat = 3, Tekst = "Karta płatnicza"});
fplat.Add(new FormaPlatnosci {FormaPlat = 3, Tekst = "Karta płatnicza"}); fplat.Add(new FormaPlatnosci{ FormaPlat = 4, Tekst = "Inna"});
fplat.Add(new FormaPlatnosci {FormaPlat = 4, Tekst = "Inna"});
return fplat; return fplat;
} }
} }