From bb6d3e02f2f2fcc689ee4ccafc27421615baaf43 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sat, 13 Mar 2021 11:15:14 +0100 Subject: [PATCH] #553 - show date of first transaction --- .../statistics/StatisticsService.java | 33 +++++++++++++++---- .../transactions/TransactionRepository.java | 2 ++ .../resources/languages/base_de.properties | 1 + .../resources/languages/base_en.properties | 1 + 4 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/main/java/de/deadlocker8/budgetmaster/statistics/StatisticsService.java b/src/main/java/de/deadlocker8/budgetmaster/statistics/StatisticsService.java index 2fe64dae4..5cea4c873 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/statistics/StatisticsService.java +++ b/src/main/java/de/deadlocker8/budgetmaster/statistics/StatisticsService.java @@ -4,7 +4,9 @@ import de.deadlocker8.budgetmaster.accounts.AccountService; import de.deadlocker8.budgetmaster.categories.CategoryService; import de.deadlocker8.budgetmaster.charts.ChartService; import de.deadlocker8.budgetmaster.charts.ChartType; +import de.deadlocker8.budgetmaster.services.DateService; import de.deadlocker8.budgetmaster.templates.TemplateService; +import de.deadlocker8.budgetmaster.transactions.Transaction; import de.deadlocker8.budgetmaster.transactions.TransactionService; import de.thecodelabs.utils.util.Localization; import org.springframework.beans.factory.annotation.Autowired; @@ -16,30 +18,49 @@ import java.util.List; @Service public class StatisticsService { + private static final String TEXT_WHITE = "text-white"; + private static final String TEXT_BLACK = "text-black"; + private final AccountService accountService; private final CategoryService categoryService; private final TransactionService transactionService; private final TemplateService templateService; private final ChartService chartService; + private final DateService dateService; @Autowired - public StatisticsService(AccountService accountService, CategoryService categoryService, TransactionService transactionService, TemplateService templateService, ChartService chartService) + public StatisticsService(AccountService accountService, CategoryService categoryService, TransactionService transactionService, TemplateService templateService, ChartService chartService, DateService dateService) { this.accountService = accountService; this.categoryService = categoryService; this.transactionService = transactionService; this.templateService = templateService; this.chartService = chartService; + this.dateService = dateService; } public List<StatisticItem> getStatisticItems() { final List<StatisticItem> statisticItems = new ArrayList<>(); - statisticItems.add(new StatisticItem("account_balance", Localization.getString("statistics.number.of.accounts", accountService.getAllAccountsAsc().size()), "background-red", "text-white")); - statisticItems.add(new StatisticItem("list", Localization.getString("statistics.number.of.transactions", transactionService.getRepository().findAll().size()), "background-blue-baby", "text-white")); - statisticItems.add(new StatisticItem("file_copy", Localization.getString("statistics.number.of.templates", templateService.getRepository().findAll().size()), "background-orange-dark", "text-white")); - statisticItems.add(new StatisticItem("show_chart", Localization.getString("statistics.number.of.custom.charts", chartService.getRepository().findAllByType(ChartType.CUSTOM).size()), "background-purple", "text-white")); - statisticItems.add(new StatisticItem("label", Localization.getString("statistics.number.of.categories", categoryService.getAllCategories().size()), "background-orange", "text-black")); + statisticItems.add(new StatisticItem("account_balance", Localization.getString("statistics.number.of.accounts", accountService.getAllAccountsAsc().size()), "background-red", TEXT_WHITE)); + statisticItems.add(new StatisticItem("list", Localization.getString("statistics.number.of.transactions", transactionService.getRepository().findAll().size()), "background-blue-baby", TEXT_BLACK)); + statisticItems.add(new StatisticItem("file_copy", Localization.getString("statistics.number.of.templates", templateService.getRepository().findAll().size()), "background-orange-dark", TEXT_BLACK)); + statisticItems.add(new StatisticItem("show_chart", Localization.getString("statistics.number.of.custom.charts", chartService.getRepository().findAllByType(ChartType.CUSTOM).size()), "background-purple", TEXT_WHITE)); + statisticItems.add(new StatisticItem("label", Localization.getString("statistics.number.of.categories", categoryService.getAllCategories().size()), "background-orange", TEXT_BLACK)); + statisticItems.add(new StatisticItem("event", Localization.getString("statistics.first.transaction", getFirstTransactionDate()), "background-grey", TEXT_BLACK)); return statisticItems; } + + private String getFirstTransactionDate() + { + final Transaction firstTransaction = transactionService.getRepository().findFirstByOrderByDate(); + + String firstTransactionDate = "-"; + if(firstTransaction != null) + { + firstTransactionDate = dateService.getDateStringNormal(firstTransaction.getDate()); + } + + return firstTransactionDate; + } } diff --git a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionRepository.java b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionRepository.java index f418aab76..43f7a7641 100644 --- a/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionRepository.java +++ b/src/main/java/de/deadlocker8/budgetmaster/transactions/TransactionRepository.java @@ -36,4 +36,6 @@ public interface TransactionRepository extends JpaRepository<Transaction, Intege List<Transaction> findAllByTransferAccount(Account account); List<Transaction> findAllByOrderByDateDesc(); + + Transaction findFirstByOrderByDate(); } \ No newline at end of file diff --git a/src/main/resources/languages/base_de.properties b/src/main/resources/languages/base_de.properties index e5e500889..598bc7163 100644 --- a/src/main/resources/languages/base_de.properties +++ b/src/main/resources/languages/base_de.properties @@ -523,3 +523,4 @@ statistics.number.of.transactions={0} Buchungen statistics.number.of.templates={0} Vorlagen statistics.number.of.custom.charts={0} Eigene Diagramme statistics.number.of.categories={0} Kategorien +statistics.first.transaction=Erste Buchung {0} diff --git a/src/main/resources/languages/base_en.properties b/src/main/resources/languages/base_en.properties index e8a3203c3..693f66be1 100644 --- a/src/main/resources/languages/base_en.properties +++ b/src/main/resources/languages/base_en.properties @@ -521,3 +521,4 @@ statistics.number.of.transactions={0} Transactions statistics.number.of.templates={0} Templates statistics.number.of.custom.charts={0} Custom Charts statistics.number.of.categories={0} Categories +statistics.first.transaction=First Transaction {0} -- GitLab