Poprawki - utarg i opakowania

This commit is contained in:
Piotr Dudek 2024-05-31 13:12:46 +02:00
parent 44b37587d9
commit 24afd2b0f0
11 changed files with 94 additions and 35 deletions

View File

@ -12,6 +12,7 @@ namespace FKGees
public const string Login = "DbSettings:Login"; public const string Login = "DbSettings:Login";
public const string Password = "DbSettings:Password"; public const string Password = "DbSettings:Password";
public const string Database = "DbSettings:Database"; public const string Database = "DbSettings:Database";
public const string Timeout = "DbSettings:Timeout";
} }
public static readonly Dictionary<string, string> KwTekstyDod = new() public static readonly Dictionary<string, string> KwTekstyDod = new()

View File

@ -1,6 +1,4 @@
 namespace FKGees;
namespace FKGees;
public class Context public class Context
{ {
@ -8,4 +6,6 @@ public class Context
public DateTime StatDate { get; set; } = DateTime.Today - TimeSpan.FromDays(1); public DateTime StatDate { get; set; } = DateTime.Today - TimeSpan.FromDays(1);
public DateTime EndDate { get; set; } = DateTime.Today - TimeSpan.FromSeconds(1); public DateTime EndDate { get; set; } = DateTime.Today - TimeSpan.FromSeconds(1);
public List<FormaPlatnosci> PaymentForms { get; set; } = new(); public List<FormaPlatnosci> PaymentForms { get; set; } = new();
public string RegistersFileName { get; set; }
public string DecretsFileName { get; set; }
} }

View File

@ -15,7 +15,9 @@ public class KpKaucjaZDokUtargu : 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 && x.Kwota1 != 0)
.GroupBy(x => x.Data);
foreach (var dok in toProcess) foreach (var dok in toProcess)
{ {
@ -23,13 +25,13 @@ public class KpKaucjaZDokUtargu : IDecretsDefinition
{ {
var item = new DecretsResult var item = new DecretsResult
{ {
Data = dok.DataPom, Data = dok.Key,
DataWplywu = dok.Data, DataWplywu = dok.Key,
Nr = dok.NrDok, Nr = string.Join(", ",dok.Select(z => z.NrDok)),
Opis = $"KAUCJA ZA OPAKOWANIA {dok.DokKasa?.Kasa.Nazwa ?? string.Empty}", Opis = "KAUCJA ZA OPAKOWANIA-SPRZEDAŻ",
StronaKonta = d.AccountSide, StronaKonta = d.AccountSide,
KontoFk = d.Account, KontoFk = d.Account,
Kwota = dok.Kwota1.AsString() Kwota = dok.Sum(x => x.Kwota1).AsString()
}; };
result.Add(item); result.Add(item);

View File

@ -0,0 +1,43 @@
namespace FKGees.DocsDefinitions.Decrets;
public class KwKaucjaZDokUtargu : IDecretsDefinition
{
public int DocType => 53;
public string Type => nameof(KwKaucjaZDokUtargu);
public List<Definition> Definitions { get; } =
[
new Definition("100-1-24", "MA", "[sbr]"),
new Definition("139-1-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.Kwota2 != 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 = "KAUCJA ZA OPAKOWANIA-ZWROT",
StronaKonta = d.AccountSide,
KontoFk = d.Account,
Kwota = dok.Sum(x => x.Kwota2).AsString()
};
result.Add(item);
});
}
return Task.FromResult(result);
}
}

View File

@ -51,8 +51,8 @@ public class RapFisk : IDecretsDefinition
{ {
return expression switch return expression switch
{ {
"[sbr]" => doc.Netto+ doc.Podatek + doc.NettoUslugi + doc.PodatekUslugi, "[sbr]" => doc.Razem - doc.Kwota1 + doc.Kwota2,
"[svr]" => doc.Podatek + doc.PodatekUslugi, "[svr]" => doc.Podatek,
_ => 0 _ => 0
}; };
} }

View File

@ -2,7 +2,7 @@
public class Wz : IDecretsDefinition public class Wz : IDecretsDefinition
{ {
public int DocType => 2; public int DocType => 5;
public string Type => "Wz"; public string Type => "Wz";
public List<Definition> Definitions { get; } = public List<Definition> Definitions { get; } =
[ [

View File

@ -27,6 +27,7 @@ internal static class ServiceCollectionExtensions
services.AddSingleton<IDecretsDefinition, KpKasy>(); 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, KpLotto>(); services.AddSingleton<IDecretsDefinition, KpLotto>();
services.AddSingleton<IDecretsDefinition, KpPaysafe>(); services.AddSingleton<IDecretsDefinition, KpPaysafe>();
services.AddSingleton<IDecretsDefinition, KpRachunki>(); services.AddSingleton<IDecretsDefinition, KpRachunki>();

View File

@ -62,10 +62,21 @@ static IServiceCollection AddServices(IConfiguration config)
{ {
var connectionString = 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[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";
var symbolMag = config["SymbolMag"] ?? string.Empty;
var context = new Context();
context.SymbolMag = symbolMag;
if (!int.TryParse(config[Constants.DbConfig.Timeout], out var dbTimeout) || dbTimeout < 30)
{
dbTimeout = 30;
}
var symbolMag = config["SymbolMag"] ?? string.Empty;
var nazwaPlikuRejestry = config["NazwaPlikuRejestry"] ?? "rejestry.txt";
var nazwaPlikuDekrety = config["NazwaPlikuDekrety"] ?? "dekrety.txt";
var context = new Context
{
SymbolMag = symbolMag,
RegistersFileName = nazwaPlikuRejestry,
DecretsFileName = nazwaPlikuDekrety
};
var services = new ServiceCollection() var services = new ServiceCollection()
.AddLogging(loggingBuilder => .AddLogging(loggingBuilder =>
@ -84,7 +95,10 @@ static IServiceCollection AddServices(IConfiguration config)
.AddTransient<PcmService>() .AddTransient<PcmService>()
.AddDbContextFactory<PcmDbContext>(options => .AddDbContextFactory<PcmDbContext>(options =>
{ {
options.UseSqlServer(connectionString); options.UseSqlServer(connectionString, o =>
{
o.CommandTimeout(dbTimeout);
});
options.UseModel(Blink.Backoffice.Services.PcmDb.CompiledEntities.PcmDbContextModel.Instance); options.UseModel(Blink.Backoffice.Services.PcmDb.CompiledEntities.PcmDbContextModel.Instance);
options.EnableSensitiveDataLogging(false); options.EnableSensitiveDataLogging(false);
}); });

View File

@ -22,6 +22,8 @@ internal class DecretsService
try 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) var doctypes = _definitions.Select(x => x.DocType)
.ToArray(); .ToArray();
@ -39,7 +41,7 @@ internal class DecretsService
_logger.LogInformation("DecretsService - Export success"); _logger.LogInformation("DecretsService - Export success");
Console.WriteLine("Eksport do pliku dekretów"); Console.WriteLine("Eksport do pliku dekretów");
Console.WriteLine(); Console.WriteLine();
await _csvService.CsvExport("Export/dekrety.csv", 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"); Console.WriteLine("Eksport do pliku dekretów zakończony powodzeniem");
} }
catch (Exception e) catch (Exception e)

View File

@ -22,10 +22,16 @@ internal class RegistersService
{ {
try try
{ {
_logger.LogInformation("RegistersService - Start exports registers, StartDate: {StartDate}, EndDate: {EndDate}", _context.StatDate , _context.EndDate);
Console.WriteLine();
Console.WriteLine("Export rejestrów");
var result = new List<RegistersResult>(); var result = new List<RegistersResult>();
foreach (var definition in _definitions) foreach (var definition in _definitions)
{ {
_logger.LogInformation("RegistersService - Export type: {Type}", definition.Type);
Console.WriteLine($"Export: {definition.Type}");
var docs = await _pcmService.FetchRegistersDocuments(definition.DocTypes, _context.StatDate, _context.EndDate); var docs = await _pcmService.FetchRegistersDocuments(definition.DocTypes, _context.StatDate, _context.EndDate);
result.AddRange(await definition.Process(docs)); result.AddRange(await definition.Process(docs));
} }
@ -33,7 +39,7 @@ internal class RegistersService
_logger.LogInformation("RegistersService - Export success"); _logger.LogInformation("RegistersService - Export success");
Console.WriteLine("Eksport do pliku rejestrów"); Console.WriteLine("Eksport do pliku rejestrów");
Console.WriteLine(); Console.WriteLine();
await _csvService.CsvExport("Export/rejestry.csv", result.OrderBy(x => x.dwystawienia)); await _csvService.CsvExport($"Export/{_context.RegistersFileName}", result.OrderBy(x => x.dwystawienia));
Console.WriteLine("Eksport do pliku rejestrów zakończony powodzeniem"); Console.WriteLine("Eksport do pliku rejestrów zakończony powodzeniem");
} }
catch (Exception e) catch (Exception e)
@ -44,17 +50,4 @@ internal class RegistersService
throw; throw;
} }
} }
private async Task<List<FormaPlatnosci>> GetPaymentForms()
{
var paymentForms = await _pcmService.FormyPlatnosci();
paymentForms.Add(new FormaPlatnosci {FormaPlat = 0, Tekst = "Gotówka"});
paymentForms.Add(new FormaPlatnosci {FormaPlat = 1, Tekst = "Przelew"});
paymentForms.Add(new FormaPlatnosci {FormaPlat = 2, Tekst = "Czek potwierdzony"});
paymentForms.Add(new FormaPlatnosci {FormaPlat = 3, Tekst = "Karta płatnicza"});
paymentForms.Add(new FormaPlatnosci {FormaPlat = 4, Tekst = "Inna"});
return paymentForms.OrderBy(x => x.FormaPlat)
.ToList();
}
} }

View File

@ -11,7 +11,10 @@
"Port": "1433", "Port": "1433",
"Login": "sa", "Login": "sa",
"Password": "10Coma123", "Password": "10Coma123",
"Database": "HECZNAROWICE" "Database": "HECZNAROWICE",
"Timeout": 666
}, },
"SymbolMag": "FajnySklep" "SymbolMag": "FajnySklep",
"NazwaPlikuDekrety": "dekrety.txt",
"NazwaPlikuRejestry": "rejestry.txt"
} }