Correct regular expression.

This commit is contained in:
Bradley M. Kuhn 2025-01-27 09:43:45 -08:00
parent 68b4875a2b
commit b163e59f98

View file

@ -59,9 +59,17 @@ sub FindMostRecentPaymentMethodForTicket ($) {
chomp $curAndAmount; $curAndAmount =~ s/^\s*cf.\{payment-amount\}\s*:\s+(.*)$/$1/i;
$ticketSpec =~ s%^\s*ticket\s*/\s*%%;
$curAndAmount = "USD -32767.69" if not defined $curAndAmount;
$curAndAmount =~ /^\s*([A-Z]{3,3})\s+([\-\d\,\.]+)(\s+\(\s*\$\s*[\-\d\,\.]+\s*\))?\s*$/
or die "Ticket, $ticketSpec, has amount of $curAndAmount";
($AMOUNTS{$ticketSpec}{currency}, $AMOUNTS{$ticketSpec}{amount}) = ($1, $2);
if ($curAndAmount
=~ /^\s*([A-Z]{3,3})\s+([\-\d\,\.]+)(\s+\(\s*\$\s*[\-\d\,\.]+\s*\))?\s*$/) {
($AMOUNTS{$ticketSpec}{currency}, $AMOUNTS{$ticketSpec}{amount}) = ($1, $2);
$AMOUNTS{$ticketSpec}{amount} = $3 unless defined $AMOUNTS{$ticketSpec}{amount};
} elsif ($curAndAmount
=~ /^\s*([\-\d\,\.]+)(\s+\(\s*\$\s*[\-\d\,\.]+\s*\))?\s+([A-Z]{3,3})\s*$/) {
($AMOUNTS{$ticketSpec}{amount}, $AMOUNTS{$ticketSpec}{currency}) = ($1, $3);
$AMOUNTS{$ticketSpec}{amount} = $2 unless defined $AMOUNTS{$ticketSpec}{amount};
} else {
die "Ticket, $ticketSpec, has amount of $curAndAmount";
}
$AMOUNTS{$ticketSpec}{amount} =~ s/\$//g; $AMOUNTS{$ticketSpec}{amount} =~ s/,//g;
$AMOUNTS{$ticketSpec}{currency} =~ s/\s//g;
}