Fix transret format change
[Business-OnlinePayment-WesternACH.git] / lib / Business / OnlinePayment / WesternACH.pm
index e81f0a3..4a73897 100644 (file)
@@ -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];