package ru.orangesoftware.financisto2.utils;
import ru.orangesoftware.financisto2.model.Transaction;
import java.util.List;
/**
* Created by IntelliJ IDEA.
* User: Denis Solonenko
* Date: 7/23/11 2:02 AM
*/
public class SplitAdjuster {
public static void adjustEvenly(List<Transaction> splits, long unsplitAmount) {
if (noSplits(splits)) {
return;
}
int count = splits.size();
long amount = unsplitAmount/count;
for (Transaction split : splits) {
split.fromAmount += amount;
}
long extra = unsplitAmount - amount*count;
if (extra != 0) {
int sign = extra > 0 ? 1 : -1;
for (int i=count-1; i >= count-sign*extra; i--) {
splits.get(i).fromAmount += sign;
}
}
}
public static void adjustLast(List<Transaction> splits, long unsplitAmount) {
if (noSplits(splits)) {
return;
}
adjustSplit(splits.get(splits.size()-1), unsplitAmount);
}
public static void adjustSplit(Transaction split, long unsplitAmount) {
split.fromAmount += unsplitAmount;
}
private static boolean noSplits(List<Transaction> splits) {
return splits == null || splits.isEmpty();
}
}