[freeside-commits] branch master updated. 6bf2679041d30f4b135276fdcb24d719b044d388

Ivan Kohler ivan at freeside.biz
Tue Sep 29 14:27:42 PDT 2020


The branch, master has been updated
       via  6bf2679041d30f4b135276fdcb24d719b044d388 (commit)
      from  7c11a4fc80ec0478838d26645e30fe3b2b751edd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 6bf2679041d30f4b135276fdcb24d719b044d388
Author: Ivan Kohler <ivan at freeside.biz>
Date:   Tue Sep 29 14:27:41 2020 -0700

    fix rare FP rounding errors on void, RT#84904

diff --git a/FS/FS/cust_bill_pkg.pm b/FS/FS/cust_bill_pkg.pm
index 6f9c74a64..f0d710534 100644
--- a/FS/FS/cust_bill_pkg.pm
+++ b/FS/FS/cust_bill_pkg.pm
@@ -392,7 +392,7 @@ sub void {
 
   }
 
-  $error = $self->delete;
+  $error = $self->delete( skip_update_cust_bill_charged=>1 );
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error;
@@ -448,6 +448,7 @@ Not recommended.
 
 sub delete {
   my $self = shift;
+  my %opt = @_;
 
   local $SIG{HUP} = 'IGNORE';
   local $SIG{INT} = 'IGNORE';
@@ -493,16 +494,27 @@ sub delete {
     }
   }
 
-  #fix the invoice amount
+  unless ( $opt{skip_update_cust_bill_charged} ) {
+
+    #fix the invoice amount
+
+    my $cust_bill = $self->cust_bill;
+    my $charged = $cust_bill->charged - $self->setup - $self->recur;
+    $charged = sprintf('%.2f', $charged + 0.00000001 );
+    $cust_bill->charged( $charged );
 
-  my $cust_bill = $self->cust_bill;
-  $cust_bill->charged( $cust_bill->charged - $self->setup - $self->recur );
+    #not adding a cc surcharge, but this override lets us modify charged
+    $cust_bill->{'Hash'}{'cc_surcharge_replace_hack'} = 1;
 
-  #not adding a cc surcharge, but this override lets us modify charged
-  $cust_bill->{'Hash'}{'cc_surcharge_replace_hack'} = 1;
+    my $error = $cust_bill->replace;
+    if ( $error ) {
+      $dbh->rollback if $oldAutoCommit;
+      return $error;
+    }
+
+  }
 
-  my $error =  $cust_bill->replace
-            || $self->SUPER::delete(@_);
+  my $error = $self->SUPER::delete(@_);
   if ( $error ) {
     $dbh->rollback if $oldAutoCommit;
     return $error;

-----------------------------------------------------------------------

Summary of changes:
 FS/FS/cust_bill_pkg.pm | 28 ++++++++++++++++++++--------
 1 file changed, 20 insertions(+), 8 deletions(-)




More information about the freeside-commits mailing list