package com.hci.moola.model;
import android.os.Parcel;
import android.os.Parcelable;
import java.util.ArrayList;
import java.util.List;
public class Iou implements Parcelable, Comparable<Iou> {
private List<Transaction> transactionList = new ArrayList<Transaction>();
private int color;
public Iou(Transaction trans, int color) {
transactionList.add(trans);
this.color = color;
}
public void addTransaction(Transaction trans) {
transactionList.add(trans);
}
public void updateTransaction(Transaction txn) {
for (int i = 0; i < transactionList.size(); i++) {
Transaction t = transactionList.get(i);
if (txn.equals(t)) {
transactionList.set(i, txn);
break;
}
}
}
public int getColor() {
return color;
}
public String getPerson() {
if (!transactionList.isEmpty())
return transactionList.get(0).getPerson();
return "";
}
public void removeTransaction(Transaction txn) {
transactionList.remove(txn);
}
public String getTotalAmountText() {
double amount = getTotalAmount();
if (amount != 0)
return CurrencyFormatter.getInstance().format(amount);
for (Transaction txn : transactionList) {
if (txn.getDescription() != null && !txn.getDescription().isEmpty())
return txn.getDescription();
}
return "";
}
private double getTotalAmount() {
double total = 0;
for (Transaction txn : transactionList) {
total += txn.getFormattedAmount();
}
return total;
}
public List<Transaction> getTransactionList() {
return transactionList;
}
@Override
public int compareTo(Iou another) {
if (!another.transactionList.isEmpty() && !transactionList.isEmpty())
return transactionList.get(0).compareTo(another.transactionList.get(0));
return -1;
}
public Iou(Parcel in) {
int count = in.readInt();
for (int i = 0; i < count; i++) {
Transaction t = in.readParcelable(Transaction.class.getClassLoader());
transactionList.add(t);
}
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(transactionList.size());
for (Transaction t : transactionList) {
dest.writeParcelable(t, 0);
}
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public Iou createFromParcel(Parcel in) {
return new Iou(in);
}
public Iou[] newArray(int size) {
return new Iou[size];
}
};
}