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

#268 - added account name to pdf

parent aa4c53ee
No related branches found
No related tags found
No related merge requests found
Pipeline #442 passed
......@@ -3,6 +3,7 @@ package de.deadlocker8.budgetmaster.controller;
import com.itextpdf.text.DocumentException;
import de.deadlocker8.budgetmaster.entities.Transaction;
import de.deadlocker8.budgetmaster.entities.account.Account;
import de.deadlocker8.budgetmaster.entities.account.AccountType;
import de.deadlocker8.budgetmaster.entities.report.ReportColumn;
import de.deadlocker8.budgetmaster.entities.report.ReportSettings;
import de.deadlocker8.budgetmaster.reports.Budget;
......@@ -66,6 +67,7 @@ public class ReportController extends BaseController
public String post(HttpServletResponse response,
@ModelAttribute("NewReportSettings") ReportSettings reportSettings)
{
//save new report settings
reportSettingsService.getRepository().delete(0);
for(ReportColumn reportColumn : reportSettings.getColumns())
{
......@@ -74,10 +76,14 @@ public class ReportController extends BaseController
reportSettingsService.getRepository().save(reportSettings);
LOGGER.debug("Exporting month report...");
//TODO handle all accounts
//prepare generation
Account account = helpers.getCurrentAccount();
String accountName = account.getName();
if(account.getType().equals(AccountType.ALL))
{
accountName = Localization.getString("account.all");
}
List<Transaction> transactions = transactionService.getTransactionsForMonthAndYear(account, reportSettings.getDate().getMonthOfYear(), reportSettings.getDate().getYear(), settingsService.getSettings().isRestActivated());
Budget budget = new Budget(helpers.getIncomeSumForTransactionList(transactions), helpers.getExpenditureSumForTransactionList(transactions));
......@@ -85,13 +91,20 @@ public class ReportController extends BaseController
.setBudget(budget)
.setReportSettings(reportSettings)
.setTransactions(transactions)
.setAccountName(accountName)
.setCategoryBudgets(new ArrayList<>())
.createReportConfiguration();
String month = reportSettings.getDate().toString("MM");
String year = reportSettings.getDate().toString("YYYY");
LOGGER.debug("Exporting month report (month: {0}_{1}, account: {2})...", year, month, accountName);
//generate PDF
try
{
byte[] dataBytes = reportGeneratorService.generate(reportConfiguration);
String fileName = Localization.getString("report.initial.filename", reportSettings.getDate().toString("YYYY"), reportSettings.getDate().toString("MM"), account.getName());
String fileName = Localization.getString("report.initial.filename", year, month, account.getName());
response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
response.setContentType("application/pdf; charset=UTF-8");
......
......@@ -8,13 +8,15 @@ import java.util.List;
public class ReportConfiguration
{
private List<Transaction> transactions;
private String accountName;
private List<CategoryBudget> categoryBudgets;
private ReportSettings reportSettings;
private Budget budget;
public ReportConfiguration(List<Transaction> transactions, List<CategoryBudget> categoryBudgets, ReportSettings reportSettings, Budget budget)
public ReportConfiguration(List<Transaction> transactions, String accountName, List<CategoryBudget> categoryBudgets, ReportSettings reportSettings, Budget budget)
{
this.transactions = transactions;
this.accountName = accountName;
this.categoryBudgets = categoryBudgets;
this.reportSettings = reportSettings;
this.budget = budget;
......@@ -30,6 +32,11 @@ public class ReportConfiguration
return categoryBudgets;
}
public String getAccountName()
{
return accountName;
}
public ReportSettings getReportSettings()
{
return reportSettings;
......@@ -45,6 +52,7 @@ public class ReportConfiguration
{
return "ReportConfiguration{" +
"transactions=" + transactions +
", accountName='" + accountName + '\'' +
", categoryBudgets=" + categoryBudgets +
", reportSettings=" + reportSettings +
", budget=" + budget +
......
......@@ -3,12 +3,12 @@ package de.deadlocker8.budgetmaster.reports;
import de.deadlocker8.budgetmaster.entities.Transaction;
import de.deadlocker8.budgetmaster.entities.report.ReportSettings;
import java.util.ArrayList;
import java.util.List;
public class ReportConfigurationBuilder
{
private List<Transaction> transactions;
private String accountName;
private List<CategoryBudget> categoryBudgets;
private ReportSettings reportSettings;
private Budget budget;
......@@ -19,6 +19,12 @@ public class ReportConfigurationBuilder
return this;
}
public ReportConfigurationBuilder setAccountName(String accountName)
{
this.accountName = accountName;
return this;
}
public ReportConfigurationBuilder setCategoryBudgets(List<CategoryBudget> categoryBudgets)
{
this.categoryBudgets = categoryBudgets;
......@@ -39,6 +45,6 @@ public class ReportConfigurationBuilder
public ReportConfiguration createReportConfiguration()
{
return new ReportConfiguration(transactions, categoryBudgets, reportSettings, budget);
return new ReportConfiguration(transactions, accountName, categoryBudgets, reportSettings, budget);
}
}
\ No newline at end of file
......@@ -37,6 +37,10 @@ public class ReportGeneratorService
Chunk chunk = new Chunk(Localization.getString(Strings.REPORT_HEADLINE, reportConfiguration.getReportSettings().getDate().toString("MMMM yyyy")), font);
Chapter chapter = new Chapter(new Paragraph(chunk), 1);
chapter.setNumberDepth(0);
Font fontAccount = FontFactory.getFont(FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 14, Font.BOLD, BaseColor.BLACK);
Chunk chunkAccount = new Chunk(Localization.getString(Strings.REPORT_HEADLINE_ACCOUNT, reportConfiguration.getAccountName()), fontAccount);
chapter.add(chunkAccount);
chapter.add(Chunk.NEWLINE);
return chapter;
}
......
......@@ -62,12 +62,12 @@ public class Strings
public static final String REPORT_RATING = "report.rating";
public static final String REPORT_AMOUNT = "report.amount";
public static final String REPORT_HEADLINE = "report.headline";
public static final String REPORT_HEADLINE_ACCOUNT = "report.headline.account";
public static final String REPORT_HEADLINE_TRANSACTIONS_OVERVIEW = "report.headline.transactions.overview";
public static final String REPORT_SUM_TOTAL = "report.sum.total";
public static final String REPORT_SUM = "report.sum";
public static final String REPORT_REPEATING_YES ="report.repeating.yes";
public static final String REPORT_REPEATING_NO ="report.repeating.no";
public static final String REPORT_INITIAL_FILENAME ="report.initial.filename";
public static final String REPORT_BUDGET = "report.budget";
public static final String REPORT_INCOMES = "report.incomes";
public static final String REPORT_PAYMENTS = "report.expenditures";
......
......@@ -222,6 +222,7 @@ report.account=Konto
report.rating=+/-
report.amount=Betrag
report.headline=Monatsbericht - {0}
report.headline.account=Konto: {0}
report.headline.transactions.overview=Buchungsbersicht
report.sum.total=Einnahmen: {0} / Ausgaben: {1}
report.sum=Summe: {0}
......
......@@ -221,6 +221,7 @@ report.account=Account
report.rating=+/-
report.amount=Amount
report.headline=Month Report - {0}
report.headline.account=Account: {0}
report.headline.transactions.overview=Transactions Overview
report.sum.total=Incomes: {0} / Expenditures: {1}
report.sum=Total: {0}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment