Skip to content
Snippets Groups Projects
Commit bb30da12 authored by Harry Linrui Xu's avatar Harry Linrui Xu
Browse files

Merge branch 'FileHandlingAndreas' into 'master'

Added exception to BudgetItem constructor and Overview now takes in a Budget

See merge request !33
parents 8dc645d6 99a1b93d
No related branches found
No related tags found
2 merge requests!35Budget,!33Added exception to BudgetItem constructor and Overview now takes in a Budget
Pipeline #215590 passed
......@@ -18,15 +18,19 @@ public class BudgetItem {
/**
* The constructor of a new Budgetitem.
*
* @throws IllegalArgumentException if the budgetAmount is less than zero.
* @param budgetAmount The amount of budget as a double
* @param description A description of the budget as a String
* @param category A category from ExpenseCategory
*
*/
public BudgetItem(double budgetAmount, String description, ExpenseCategory category){
if(budgetAmount < 0) {
throw new IllegalArgumentException("The amount of the budget item must be more than zero");
}
this.budgetAmount = new SimpleDoubleProperty(budgetAmount);
this.budgetDescription = new SimpleStringProperty(description);
this.budgetCategory = new SimpleObjectProperty<ExpenseCategory>(category);
this.budgetCategory = new SimpleObjectProperty<>(category);
}
/**
......
......@@ -13,28 +13,59 @@ public class Overview {
private final IncomeRegister incomeRegister;
private final ExpenseRegister expenseRegister;
private double balance;
private GeneralBudget budget;
private final GeneralBudget budget;
/**
* Class constructor that creates an empty incomeRegister, expenseRegister
* Class constructor that take in a GeneralBudget and
* creates an empty incomeRegister, expenseRegister
* and set totalRevenue to zero.
*
* @param budget the GeneralBudget you want to overview.
*/
public Overview(){
public Overview(GeneralBudget budget){
this.incomeRegister = new IncomeRegister();
this.expenseRegister = new ExpenseRegister();
this.balance = 0;
this.budget = budget;
}
/**
* Class constructor that takes in an incomeRegister and
* expenseRegister and calculates total balance
* based on them.
*
* @param incomeRegister the incomeRegister you want to overview.
* @param expenseRegister the expenseRegister you want to overview.
* @param budget the GeneralBudget you want to overview.
*/
public Overview(IncomeRegister incomeRegister, ExpenseRegister expenseRegister){
public Overview(IncomeRegister incomeRegister, ExpenseRegister expenseRegister, GeneralBudget budget){
this.incomeRegister = incomeRegister;
this.expenseRegister = expenseRegister;
updateBalance();
this.budget = budget;
}
/**
* Get the IncomeRegister of the Overview.
* @return IncomeRegister
*/
public IncomeRegister getIncomeRegister() {
return incomeRegister;
}
/**
* Get the ExpenseRegister of the Overview.
* @return ExpenseRegister
*/
public ExpenseRegister getExpenseRegister() {
return expenseRegister;
}
/**
* Get the GeneralBudget of the Overview.
* @return GeneralBudget
*/
public GeneralBudget getBudget() {
return budget;
}
/**
......@@ -69,9 +100,10 @@ public class Overview {
* a BudgetItem for a specific ExpenseCategory.
*
* @param category the ExpenseCategory you want to use.
* @throws IllegalArgumentException if there is no Budget for budget category.
* @return Expense subtracted from BudgetItem for category.
*/
public double getBudgetItemMinusExpense(ExpenseCategory category){
public double getBudgetItemMinusExpense(ExpenseCategory category) throws IllegalArgumentException{
if(budget.hasBudgetCategory(category)){
return budget.getBudgetItem(category).getBudgetAmount() - expenseRegister.getExpenseByCategory(category).getTotalSum();
} else{
......@@ -89,6 +121,4 @@ public class Overview {
public boolean hasUsedUpBudgetItem(ExpenseCategory category){
return (getBudgetItemMinusExpense(category)<=0);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment