X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=lib%2FBusiness%2FOnlinePayment%2FWesternACH.pm;h=4a7389701bd753c55728df96662a95124e4e7b52;hb=aa02cc5759a4ecf515a7ea0275330e36e107d92d;hp=e81f0a37e95ac9d2fb9b295058a9a6d71c31a0ad;hpb=0536726f420e8bbfd874abab32e15436807ac3d0;p=Business-OnlinePayment-WesternACH.git diff --git a/lib/Business/OnlinePayment/WesternACH.pm b/lib/Business/OnlinePayment/WesternACH.pm index e81f0a3..4a73897 100644 --- a/lib/Business/OnlinePayment/WesternACH.pm +++ b/lib/Business/OnlinePayment/WesternACH.pm @@ -11,7 +11,7 @@ use Date::Parse 'str2time'; use vars qw($VERSION @ISA $me $DEBUG); @ISA = qw(Business::OnlinePayment::HTTPS); -$VERSION = '0.06'; +$VERSION = '0.07'; $me = 'Business::OnlinePayment::WesternACH'; $DEBUG = 0; @@ -229,6 +229,7 @@ sub get_returns { $self->is_success(0); return; } + my $index_date_ret = 2; # Usual position of 'Date Returned' foreach my $trans (split("\cJ", $page)) { my @fields = split(',', $trans); # fields: @@ -237,8 +238,13 @@ sub get_returns { # we only care about id and date. next if scalar(@fields) < 10; + if($fields[0] eq 'id') { + # Use this header row to find the 'Date Returned' field. + ($index_date_ret) = grep { lc($fields[$_]) eq 'date returned' } ( 0..scalar(@fields)-1 ); + $index_date_ret ||= 2; + } next if not($fields[0] =~ /^\d+$/); - my $rettime = str2time($fields[1]); + my $rettime = str2time($fields[$index_date_ret]); next if (!$rettime or $rettime < $starttime or $rettime > $endtime); carp $trans if $DEBUG > 1; push @tids, $fields[0];