Skip to content
Snippets Groups Projects
Commit 4f177089 authored by Robert Goldmann's avatar Robert Goldmann
Browse files

#725 - budgets on transaction page should not include rest

parent 542afa01
No related branches found
No related tags found
No related merge requests found
......@@ -98,7 +98,7 @@ public class ReportController extends BaseController
}
FilterConfiguration filterConfiguration = filterHelpers.getFilterConfiguration(request);
List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(account, reportSettings.getDate().getMonthValue(), reportSettings.getDate().getYear(), settingsService.getSettings().isRestActivated(), filterConfiguration);
List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(account, reportSettings.getDate().getMonthValue(), reportSettings.getDate().getYear(), filterConfiguration);
Budget budget = helpers.getBudget(transactions, account);
ReportConfiguration reportConfiguration = new ReportConfigurationBuilder()
......
......@@ -110,14 +110,23 @@ public class TransactionController extends BaseController
private void prepareModelTransactions(FilterConfiguration filterConfiguration, Model model, LocalDate date)
{
Account currentAccount = helpers.getCurrentAccount();
List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(currentAccount, date.getMonthValue(), date.getYear(), settingsService.getSettings().isRestActivated(), filterConfiguration);
final Account currentAccount = helpers.getCurrentAccount();
final List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(currentAccount, date.getMonthValue(), date.getYear(), filterConfiguration);
model.addAttribute(TransactionModelAttributes.ALL_ENTITIES, transactions);
model.addAttribute(TransactionModelAttributes.ACCOUNT, currentAccount);
model.addAttribute(TransactionModelAttributes.BUDGET, helpers.getBudget(transactions, currentAccount));
model.addAttribute(TransactionModelAttributes.CURRENT_DATE, date);
model.addAttribute(TransactionModelAttributes.FILTER_CONFIGURATION, filterConfiguration);
if(settingsService.getSettings().isRestActivated())
{
final Transaction transactionBalanceCurrentMonth = transactionService.getTransactionForBalanceCurrentMonth(currentAccount, date.getMonthValue(), date.getYear());
transactions.add(0, transactionBalanceCurrentMonth);
final Transaction transactionBalanceLastMonth = transactionService.getTransactionForBalanceLastMonth(currentAccount, date.getMonthValue(), date.getYear());
transactions.add(transactionBalanceLastMonth);
}
model.addAttribute(TransactionModelAttributes.ALL_ENTITIES, transactions);
}
@GetMapping("/{ID}/delete")
......
......@@ -59,21 +59,6 @@ public class TransactionService implements Resettable
return transactionRepository;
}
public List<Transaction> getTransactionsForMonthAndYear(Account account, int month, int year, boolean isRestActivated, FilterConfiguration filterConfiguration)
{
List<Transaction> transactions;
if(isRestActivated)
{
transactions = getTransactionsForMonthAndYearWithRest(account, month, year, filterConfiguration);
}
else
{
transactions = getTransactionsForMonthAndYearWithoutRest(account, month, year, filterConfiguration);
}
return transactions;
}
public Transaction getTransactionForBalanceLastMonth(Account account, int month, int year)
{
final LocalDate endDateLastMonth = LocalDate.of(year, month, 1).minusMonths(1).with(lastDayOfMonth());
......@@ -102,17 +87,7 @@ public class TransactionService implements Resettable
return transactionBalanceCurrentMonth;
}
private List<Transaction> getTransactionsForMonthAndYearWithRest(Account account, int month, int year, FilterConfiguration filterConfiguration)
{
final List<Transaction> transactions = getTransactionsForMonthAndYearWithoutRest(account, month, year, filterConfiguration);
transactions.add(getTransactionForBalanceLastMonth(account, month, year));
transactions.add(0, getTransactionForBalanceCurrentMonth(account, month, year));
return transactions;
}
private List<Transaction> getTransactionsForMonthAndYearWithoutRest(Account account, int month, int year, FilterConfiguration filterConfiguration)
public List<Transaction> getTransactionsForMonthAndYear(Account account, int month, int year, FilterConfiguration filterConfiguration)
{
final LocalDate startDate = LocalDate.of(year, month, 1);
final LocalDate endDate = LocalDate.of(year, month, 1).with(lastDayOfMonth());
......
......@@ -185,7 +185,7 @@ class TransactionServiceDatabaseTest
{
FilterConfiguration filterConfiguration = new FilterConfiguration(true, true, true, true, true, null, null, "");
List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(accountRepository.findByName("Default Account"), 6, 2021, false, filterConfiguration);
List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(accountRepository.findByName("Default Account"), 6, 2021, filterConfiguration);
assertThat(transactions)
.hasSize(1)
.containsExactly(transactionLastDayOfJune);
......@@ -202,7 +202,7 @@ class TransactionServiceDatabaseTest
FilterConfiguration filterConfiguration = new FilterConfiguration(true, true, true, true, true, null, null, "");
List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(accountRepository.findByName("Default Account"), 6, 2021, false, filterConfiguration);
List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(accountRepository.findByName("Default Account"), 6, 2021, filterConfiguration);
assertThat(transactions)
.hasSize(1)
.containsExactly(transactionLastDayOfJune);
......@@ -212,28 +212,32 @@ class TransactionServiceDatabaseTest
}
@Test
void test_getTransactionsForMonthAndYear_includeAccountBalances()
void test_getTransactionForBalanceLastMonth()
{
FilterConfiguration filterConfiguration = new FilterConfiguration(true, true, true, true, true, null, null, "");
final Transaction transaction = transactionService.getTransactionForBalanceLastMonth(accountRepository.findByName("Default Account"), 6, 2021);
final Transaction expected = new Transaction();
expected.setName("Last month balance");
expected.setAmount(998300);
expected.setDate(LocalDate.of(2021, 6, 1));
expected.setCategory(categoryService.findByType(CategoryType.REST));
expected.setTags(List.of());
List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(accountRepository.findByName("Default Account"), 6, 2021, true, filterConfiguration);
assertThat(transaction).isEqualTo(expected);
}
Transaction transactionBalanceLastMonth = new Transaction();
transactionBalanceLastMonth.setName("Last month balance");
transactionBalanceLastMonth.setAmount(998300);
transactionBalanceLastMonth.setDate(LocalDate.of(2021, 6, 1));
transactionBalanceLastMonth.setCategory(categoryService.findByType(CategoryType.REST));
transactionBalanceLastMonth.setTags(List.of());
@Test
void test_getTransactionForBalanceCurrentMonth()
{
final Transaction transaction = transactionService.getTransactionForBalanceCurrentMonth(accountRepository.findByName("Default Account"), 6, 2021);
Transaction transactionBalanceCurrentMonth = new Transaction();
transactionBalanceCurrentMonth.setName("Balance at end of month");
transactionBalanceCurrentMonth.setAmount(998200);
transactionBalanceCurrentMonth.setDate(LocalDate.of(2021, 6, 30));
transactionBalanceCurrentMonth.setCategory(categoryService.findByType(CategoryType.REST));
transactionBalanceCurrentMonth.setTags(List.of());
final Transaction expected = new Transaction();
expected.setName("Balance at end of month");
expected.setAmount(998200);
expected.setDate(LocalDate.of(2021, 6, 30));
expected.setCategory(categoryService.findByType(CategoryType.REST));
expected.setTags(List.of());
assertThat(transactions)
.hasSize(3)
.containsExactly(transactionBalanceCurrentMonth, transactionLastDayOfJune, transactionBalanceLastMonth);
assertThat(transaction).isEqualTo(expected);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment