Expense report favors Conferences first,

then takes Travel as if it were an Other category only after categories
have been handled.
This commit is contained in:
Bradley M. Kuhn 2012-11-25 12:19:44 -05:00
parent 3e634b6d45
commit 4318c11fd9

View file

@ -291,20 +291,21 @@ foreach my $line (<FILE>) {
die "Weird account found, $account, with amount of $amount in expenses command\n"
unless $account =~ /^\s*Expenses:/;
if ($account =~ /Travel/) {
$expenseGroups{'TRAVEL'}{total} += $amount;
$expenseGroups{'TRAVEL'}{output} .= " $line";
} else {
my $taken = 0;
foreach my $type (keys %expenseGroups) {
last if $taken;
next if $type eq 'TRAVEL' or $type eq 'OTHER';
next unless $line =~ /$expenseGroups{$type}{regex}/;
$taken = 1;
$expenseGroups{$type}{total} += $amount;
$expenseGroups{$type}{output} .= " $line";
}
if (not $taken) {
my $taken = 0;
# Note: Prioritize to put things under conference expenses if they were for a conference.
foreach my $type ('CONFERENCES', keys %expenseGroups) {
last if $taken;
next if $type eq 'TRAVEL' or $type eq 'OTHER';
next unless $line =~ /$expenseGroups{$type}{regex}/;
$taken = 1;
$expenseGroups{$type}{total} += $amount;
$expenseGroups{$type}{output} .= " $line";
}
if (not $taken) {
if ($account =~ /Travel/) {
$expenseGroups{'TRAVEL'}{total} += $amount;
$expenseGroups{'TRAVEL'}{output} .= " $line";
} else {
$expenseGroups{'OTHER'}{total} += $amount;
$expenseGroups{'OTHER'}{output} .= " $line";
}