From: Jonathan Prykop <jonathan@freeside.biz>
Date: Fri, 31 Jul 2015 23:21:14 +0000 (-0500)
Subject: RT#37465: RBC PAD error when calculating totals
X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=501fc8a7d7a77bb5dde26db85aeff99f7a5cf98c

RT#37465: RBC PAD error when calculating totals
---

diff --git a/FS/FS/pay_batch/RBC.pm b/FS/FS/pay_batch/RBC.pm
index 47fc8d49d..53f810852 100644
--- a/FS/FS/pay_batch/RBC.pm
+++ b/FS/FS/pay_batch/RBC.pm
@@ -90,7 +90,6 @@ $name = 'RBC';
       my( $hash, $total, $line ) = @_;
       return "Can't process Credit Detail Record, aborting import"
         if ($hash->{'recordtype'} eq '2');
-      $totaloffset = sprintf("%.2f", $totaloffset / 100 );
       $total += $totaloffset;
       $total = sprintf("%.2f", $total);
       # We assume here that this is an 'All Records' or 'Input Records' report.
@@ -109,10 +108,16 @@ $name = 'RBC';
       #we already declined it this run, no takebacks
       if ($declined->{$hash->{'paybatchnum'}}) {
         #file counts this as part of total, but we skip
-        $totaloffset += $hash->{'paid'}
+        $totaloffset += sprintf("%.2f", $hash->{'paid'} / 100 )
           if $hash->{'status'} eq ' '; #false laziness with 'approved' above
         return 1;
       }
+      #skipping W for now (maybe it should be declined?)
+      if ($hash->{'status'} eq 'W') {
+        #file counts this as part of total, but we skip
+        $totaloffset += sprintf("%.2f", $hash->{'paid'} / 100 );
+        return 1;
+      }
       return 
         ($hash->{'recordtype'} eq '3') || #Account Trailer Record, concludes returned items
         ($hash->{'subtype'} ne '0'); #error messages, etc, too late to apply to previous entry