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

#724 - add new column for description

parent 207b29fe
No related branches found
No related tags found
No related merge requests found
......@@ -161,6 +161,7 @@ public class TransactionImportController extends BaseController
{
final String date = csvRow.getColumns().get(csvColumnSettings.columnDate() - 1);
final String name = csvRow.getColumns().get(csvColumnSettings.columnName() - 1);
final String description = csvRow.getColumns().get(csvColumnSettings.columnDescription() - 1);
final String amount = csvRow.getColumns().get(csvColumnSettings.columnAmount() - 1);
final Optional<Integer> parsedAmountOptional = AmountParser.parse(amount);
......@@ -170,7 +171,7 @@ public class TransactionImportController extends BaseController
continue;
}
csvTransactions.add(new CsvTransaction(date, name, parsedAmountOptional.get(), CsvTransactionStatus.PENDING));
csvTransactions.add(new CsvTransaction(date, name, parsedAmountOptional.get(), description, CsvTransactionStatus.PENDING));
}
catch(IndexOutOfBoundsException e)
{
......@@ -248,6 +249,7 @@ public class TransactionImportController extends BaseController
// update original CsvTransaction attributes with values from user (from newCsvTransaction)
csvTransaction.setName(newCsvTransaction.getName());
csvTransaction.setDescription(newCsvTransaction.getDescription());
final Transaction newTransaction = createTransactionFromCsvTransaction(csvTransaction);
transactionService.getRepository().save(newTransaction);
......@@ -261,6 +263,7 @@ public class TransactionImportController extends BaseController
// TODO parse first
// newTransaction.setDate(csvTransaction.getDate());
newTransaction.setName(csvTransaction.getName());
newTransaction.setDescription(csvTransaction.getDescription());
newTransaction.setAmount(csvTransaction.getAmount());
newTransaction.setIsExpenditure(true);
newTransaction.setAccount(helpers.getCurrentAccountOrDefault());
......
package de.deadlocker8.budgetmaster.transactions.csvimport;
public record CsvColumnSettings(int columnDate, int columnName, int columnAmount)
public record CsvColumnSettings(int columnDate, int columnName, int columnAmount, int columnDescription)
{
}
......@@ -7,13 +7,15 @@ public final class CsvTransaction
private final String date;
private String name;
private final Integer amount;
private String description;
private CsvTransactionStatus status;
public CsvTransaction(String date, String name, Integer amount, CsvTransactionStatus status)
public CsvTransaction(String date, String name, Integer amount, String description, CsvTransactionStatus status)
{
this.date = date;
this.name = name;
this.amount = amount;
this.description = description;
this.status = status;
}
......@@ -37,6 +39,16 @@ public final class CsvTransaction
return amount;
}
public String getDescription()
{
return description;
}
public void setDescription(String description)
{
this.description = description;
}
public CsvTransactionStatus getStatus()
{
return status;
......@@ -53,13 +65,13 @@ public final class CsvTransaction
if(this == o) return true;
if(o == null || getClass() != o.getClass()) return false;
CsvTransaction that = (CsvTransaction) o;
return Objects.equals(date, that.date) && Objects.equals(name, that.name) && Objects.equals(amount, that.amount) && status == that.status;
return Objects.equals(date, that.date) && Objects.equals(name, that.name) && Objects.equals(amount, that.amount) && Objects.equals(description, that.description) && status == that.status;
}
@Override
public int hashCode()
{
return Objects.hash(date, name, amount, status);
return Objects.hash(date, name, amount, description, status);
}
@Override
......@@ -68,7 +80,8 @@ public final class CsvTransaction
return "CsvTransaction{" +
"date='" + date + '\'' +
", name='" + name + '\'' +
", amount='" + amount + '\'' +
", amount=" + amount +
", description='" + description + '\'' +
", status=" + status +
'}';
}
......
......@@ -153,6 +153,18 @@
<label class="input-label" for="columnAmount">${locale.getString("transactions.import.column")}</label>
</div>
</div>
<div class="row">
<div class="col s6 m4 offset-m2 l3 offset-l3">
<div class="transaction-import-text-with-icon">
<i class="material-icons">article</i>
${locale.getString("transaction.new.label.description")}
</div>
</div>
<div class="input-field col s6 m4 l3 no-margin-top no-margin-bottom">
<input id="columnDescription" type="number" min="1" max="${csvRows?size}" name="columnDescription" <@validation.validation "columnDescription"/> value="<#if csvColumnSettings??>${csvColumnSettings.columnDescription()}</#if>">
<label class="input-label" for="columnDescription">${locale.getString("transactions.import.column")}</label>
</div>
</div>
<br>
......@@ -195,6 +207,7 @@
<td class="bold">${locale.getString("transactions.import.status")}</td>
<td class="bold">${locale.getString("transaction.new.label.date")}</td>
<td class="bold">${locale.getString("transaction.new.label.name")}</td>
<td class="bold">${locale.getString("transaction.new.label.description")}</td>
<td class="bold">${locale.getString("transaction.new.label.amount")}</td>
<td class="bold">${locale.getString("transactions.import.actions")}</td>
</tr>
......@@ -217,6 +230,11 @@
<input class="no-margin-bottom" type="text" name="name" required value="${csvTransaction.getName()}">
</div>
</td>
<td>
<div class="input-field no-margin-top no-margin-bottom">
<input class="no-margin-bottom" type="text" name="description" value="${csvTransaction.getDescription()}">
</div>
</td>
<td>${currencyService.getCurrencyString(csvTransaction.getAmount())}</td>
<td>
<@header.buttonSubmit name='action' icon='save' localizationKey='' classes='text-white'/>&nbsp;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment