148 lines
3.3 KiB
Java
148 lines
3.3 KiB
Java
package de.arminwolf.financeanalyzer.dao.model;
|
|
|
|
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
import de.arminwolf.financeanalyzer.dao.TransactionDAO;
|
|
import de.arminwolf.financeanalyzer.util.DateUtil;
|
|
import de.arminwolf.financeanalyzer.util.NumberUtil;
|
|
|
|
import java.time.LocalDate;
|
|
import java.util.Date;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
|
|
public class OutputData implements Comparable<OutputData> {
|
|
|
|
@JsonProperty("id")
|
|
public String id;
|
|
@JsonProperty("amount")
|
|
public String amount;
|
|
@JsonProperty("amountAsFloat")
|
|
public Float amountAsFloat;
|
|
@JsonProperty("contractTurnaround")
|
|
public String contractTurnaround;
|
|
|
|
@JsonProperty("contractTurnaround")
|
|
public String date;
|
|
@JsonProperty("recipient")
|
|
public String recipient;
|
|
@JsonProperty("purpose")
|
|
public String purpose;
|
|
|
|
|
|
|
|
public OutputData(final Map.Entry<String, TransactionDAO> order) {
|
|
this(order.getKey(), order.getValue());
|
|
}
|
|
|
|
|
|
public OutputData(final String id, final TransactionDAO transaction) {
|
|
this.id = id;
|
|
this.amount = transaction.getBetrag().concat(" ").concat(transaction.getWaehrung());
|
|
this.contractTurnaround = transaction.getAnalyseVertragsturnus().isBlank() ? "monatlich" : transaction.getAnalyseVertragsturnus();
|
|
this.amountAsFloat = Float.parseFloat(transaction.getBetrag());
|
|
this.date = DateUtil.prettyPrint(DateUtil.parse(transaction.getBuchungstag()));
|
|
this.purpose = transaction.getVerwendungszweck().trim().isEmpty() ?
|
|
"Überweisung an " + transaction.getBeguenstigterAuftraggeber() :
|
|
transaction.getVerwendungszweck();
|
|
this.recipient = transaction.getBeguenstigterAuftraggeber();
|
|
}
|
|
|
|
|
|
public OutputData(final TransactionDAO t) {
|
|
this(LocalDate.now().toString(), t);
|
|
}
|
|
|
|
|
|
public String getDate() {
|
|
return date;
|
|
}
|
|
|
|
|
|
public void setDate(final String date) {
|
|
this.date = date;
|
|
}
|
|
|
|
|
|
@Override
|
|
public int compareTo(final OutputData o) {
|
|
return getAmountAsFloat().compareTo(o.getAmountAsFloat());
|
|
}
|
|
|
|
|
|
public Float getAmountAsFloat() {
|
|
return NumberUtil.round(amountAsFloat);
|
|
}
|
|
|
|
|
|
public void setAmountAsFloat(final Float amountAsFloat) {
|
|
this.amountAsFloat = amountAsFloat;
|
|
}
|
|
|
|
|
|
public String getId() {
|
|
return id;
|
|
}
|
|
|
|
|
|
public void setId(final String id) {
|
|
this.id = id;
|
|
}
|
|
|
|
|
|
public String getAmount() {
|
|
return amount;
|
|
}
|
|
|
|
|
|
public void setAmount(final String amount) {
|
|
this.amount = amount;
|
|
}
|
|
|
|
|
|
|
|
public String getContractTurnaround() {
|
|
return contractTurnaround;
|
|
}
|
|
|
|
|
|
public void setContractTurnaround(final String contractTurnaround) {
|
|
this.contractTurnaround = contractTurnaround;
|
|
}
|
|
|
|
|
|
public String getPurpose() {
|
|
return purpose;
|
|
}
|
|
|
|
|
|
public void setPurpose(final String purpose) {
|
|
this.purpose = purpose;
|
|
}
|
|
|
|
|
|
public String getRecipient() {
|
|
return recipient;
|
|
}
|
|
|
|
|
|
public void setRecipient(final String recipient) {
|
|
this.recipient = recipient;
|
|
}
|
|
|
|
|
|
@Override
|
|
public boolean equals(final Object o) {
|
|
if (this == o) return true;
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
final OutputData outputData = (OutputData) o;
|
|
return Objects.equals(amount, outputData.amount) && Objects.equals(contractTurnaround, outputData.contractTurnaround) && Objects.equals(date, outputData.date) && Objects.equals(recipient, outputData.recipient) && Objects.equals(purpose, outputData.purpose);
|
|
}
|
|
|
|
|
|
@Override
|
|
public int hashCode() {
|
|
return Objects.hash(amount, contractTurnaround, date, recipient, purpose);
|
|
}
|
|
}
|