diff --git a/scripts/rt-bulk-prep-pay.plx b/scripts/rt-bulk-prep-pay.plx index dc78c94..ae7d23d 100755 --- a/scripts/rt-bulk-prep-pay.plx +++ b/scripts/rt-bulk-prep-pay.plx @@ -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; } }