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