From 616953dd7180bdaf932f4008a355bfef56b6b4eb Mon Sep 17 00:00:00 2001 From: xom9kxom9k Date: Tue, 3 Dec 2024 17:35:12 +0400 Subject: [PATCH] =?UTF-8?q?=D0=93=D0=BE=D1=82=D0=BE=D0=B2=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BB=D0=B0=D0=B1=D0=BE=D1=80=D0=B0=D1=82=D0=BE=D1=80=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ProjectFamilyBudget/Reports/ChartReport.cs | 6 +++++- ProjectFamilyBudget/Reports/TableReport.cs | 4 ++-- .../Repositories/Implementations/PeopleExpenseRepository.cs | 5 +++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ProjectFamilyBudget/Reports/ChartReport.cs b/ProjectFamilyBudget/Reports/ChartReport.cs index 57d5526..ca82f34 100644 --- a/ProjectFamilyBudget/Reports/ChartReport.cs +++ b/ProjectFamilyBudget/Reports/ChartReport.cs @@ -40,7 +40,11 @@ public class ChartReport return _peopleExpense .ReadPeopleExpense() .Where(x => x.DataReciept.Date == dateTime.Date) - .GroupBy(x => x.PeopleId, (key, group) => new { Id = key, Count = group.Sum(x => x.ExpensePeopleExpenses.FirstOrDefault(y => y.ExpenseId == expenseId)?.Sum )}) + .GroupBy(x => x.PeopleId, (key, group) => new + { + Id = key, + Count = group.Sum(x => x.ExpensePeopleExpenses.FirstOrDefault(y => y.ExpenseId == expenseId)?.Sum ?? 0) + }) .Select(x => (x.Id.ToString(), (double)x.Count)) .ToList(); } diff --git a/ProjectFamilyBudget/Reports/TableReport.cs b/ProjectFamilyBudget/Reports/TableReport.cs index 562cc2b..6f36aaf 100644 --- a/ProjectFamilyBudget/Reports/TableReport.cs +++ b/ProjectFamilyBudget/Reports/TableReport.cs @@ -13,7 +13,7 @@ public class TableReport private readonly IPeopleIncome _peopleIncomeRepository; private readonly IPeopleExpense _peopleExpenseRepository; private readonly ILogger _logger; - internal static readonly string[] item = ["Название операции", "Дата", "Заработано", "Потрачено"]; + internal static readonly string[] item = ["Человек", "Дата", "Заработано", "Потрачено"]; public TableReport(IPeopleIncome peopleIncomeRepository, IPeopleExpense peopleExpenseRepository, ILogger logger) { _peopleIncomeRepository = peopleIncomeRepository ?? throw new ArgumentNullException(nameof(peopleIncomeRepository)); @@ -25,7 +25,7 @@ public class TableReport try { new ExcelBuilder(filePath) - .AddHeader("Сводка по движению денег", 0, 3) + .AddHeader("Сводка по движению денег", 0, 4) .AddParagraph("за период", 0) .AddTable([15, 10, 15, 15], GetData(incomeId, expenseId, startDate, endDate)) .Build(); diff --git a/ProjectFamilyBudget/Repositories/Implementations/PeopleExpenseRepository.cs b/ProjectFamilyBudget/Repositories/Implementations/PeopleExpenseRepository.cs index 0c687e4..05f0812 100644 --- a/ProjectFamilyBudget/Repositories/Implementations/PeopleExpenseRepository.cs +++ b/ProjectFamilyBudget/Repositories/Implementations/PeopleExpenseRepository.cs @@ -93,10 +93,11 @@ public class PeopleExpenseRepository : IPeopleExpense using var connection = new NpgsqlConnection(_connectionString.ConnectionString); var querySelect = @"SELECT pe.*, epe.ExpenseId, epe.Sum FROM PeopleExpense pe INNER JOIN ExpensePeopleExpense epe on epe.PeopleExpenseId = pe.Id"; - var peopleExpenses = connection.Query(querySelect); + var peopleExpenses = connection.Query(querySelect); _logger.LogDebug("Полученные объекты: {json}", JsonConvert.SerializeObject(peopleExpenses)); - return peopleExpenses; + return peopleExpenses.GroupBy(x => x.Id, y => y, (key, value) => PeopleExpense.CreateOperation(value.First(), + value.Select(z => ExpensePeopleExpense.CreateElement(0, z.ExpenseId, z.Sum)))).ToList(); } catch (Exception ex) {