Do not assume all tickets returned by query are 'ready-for-payment'
Since this script allows the user to provide a query, that query may or may not include tickets in it that are not in the 'ready-for-payment' state. As such, add a check for that, and output the status of any ticket in the detail list that is not actually 'ready-for-payment'.
This commit is contained in:
parent
7d24d42788
commit
131966162a
1 changed files with 20 additions and 2 deletions
|
@ -69,6 +69,22 @@ sub FindMostRecentPaymentMethodForTicket ($) {
|
|||
return $value;
|
||||
}
|
||||
###############################################################################
|
||||
sub GetStatusOfTicket ($) {
|
||||
my($ticketSpec) = @_;
|
||||
my $paymentMethod;
|
||||
$ticketSpec =~ s%^\s*ticket\s*/\s*%%;
|
||||
open(my $rtShowFH, "-|", "$RT_CMD", "show", '-t', 'ticket', '-f', 'status', $ticketSpec);
|
||||
my($ticketDataAgain, $value) = <$rtShowFH>;
|
||||
close $rtShowFH;
|
||||
chomp $value; $value =~ s/^\s*Status\s*:\s+(.*)$/$1/i
|
||||
or warn "$ticketSpec: Unknown value for Status of \"$value\"";
|
||||
|
||||
if (not defined $value or $value =~ /^\s*$/) {
|
||||
$value = "MISSING-TICKET-STATUS";
|
||||
}
|
||||
return $value;
|
||||
}
|
||||
###############################################################################
|
||||
|
||||
GetOptions("verbose=i" => \$VERBOSE, "interactive" => \$INTERACTIVE, 'showAmounts' => \$SHOW_AMOUNTS,
|
||||
'subTotals' => \$SUB_TOTALS,
|
||||
|
@ -112,7 +128,8 @@ foreach my $paymentMethod (sort { $a cmp $b } keys %payments) {
|
|||
$tix =~ s%^\s*ticket\s*/\s*%%;
|
||||
my($currency, $val) = ($AMOUNTS{$tix}{currency}, $AMOUNTS{$tix}{amount});
|
||||
$subTotals{$currency} = 0.00 unless defined $subTotals{$currency};
|
||||
print sprintf(" %5d: %.2f %3.3s\n", $tix, $val, $currency);
|
||||
my $status = GetStatusOfTicket($tix);
|
||||
print sprintf(" %5d: %8.2f %3.3s", $tix, $val, $currency), ( ($status eq 'ready-for-payment') ? "\n" : " ($status)\n");
|
||||
if (defined $val and $val =~ /^[\d\.]+$/) { $subTotals{$currency} += $val; } else { $subTotalOk = 0; }
|
||||
}
|
||||
if ($subTotalOk) {
|
||||
|
@ -132,7 +149,8 @@ if ($SHOW_AMOUNTS and not $SUB_TOTALS) {
|
|||
foreach my $tix (sort { $a <=> $b} (keys %AMOUNTS)) {
|
||||
foreach my $currency (keys %overallTotals) {
|
||||
my $val = $AMOUNTS{$tix}{$currency};
|
||||
print sprintf("%5d: %.2f %3.3d\n", $tix, $val, $currency);
|
||||
my $status = GetStatusOfTicket($tix);
|
||||
print sprintf(" %5d: %8.2f %3.3s", $tix, $val, $currency), ( ($status eq 'ready-for-payment') ? "\n" : " ($status)\n");
|
||||
$overallTotals{$currency} = 0.00 unless defined $overallTotals{$currency};
|
||||
if ($val =~ /^[\d\.]+$/) { $overallTotals{$currency} += $val; } else { $overallTotalOk = 0; }
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue