[freeside-commits] branch master updated. d05c6d1891149292d1cd87d0bf6ec843f54b4ff0

Mark Wells mark at 420.am
Sat Mar 17 16:29:38 PDT 2012


The branch, master has been updated
       via  d05c6d1891149292d1cd87d0bf6ec843f54b4ff0 (commit)
      from  68cd93a81814d8725118a66b54f20e2c2c1c20f0 (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 d05c6d1891149292d1cd87d0bf6ec843f54b4ff0
Author: Mark Wells <mark at freeside.biz>
Date:   Sat Mar 17 16:29:29 2012 -0700

    fix term discount display, #16965

diff --git a/FS/FS/cust_bill.pm b/FS/FS/cust_bill.pm
index bb44c05..3aa75ec 100644
--- a/FS/FS/cust_bill.pm
+++ b/FS/FS/cust_bill.pm
@@ -5261,6 +5261,9 @@ sub _items_discounts_avail {
                  join(', ', map { "#$_" } $plan->pkgnums)
       if $list_pkgnums;
 
+    # discounts for non-integer months don't work anyway
+    $months = sprintf("%d", $months);
+
     +{
       description => $self->mt('Save [_1]% by paying for [_2] months',
                                 $percent, $months),
diff --git a/FS/FS/discount_plan.pm b/FS/FS/discount_plan.pm
index 3ae44c8..6a45676 100644
--- a/FS/FS/discount_plan.pm
+++ b/FS/FS/discount_plan.pm
@@ -80,19 +80,24 @@ sub new {
           $self->{discounted} += $setup;
         }
 
-        if ( $discount->percent ) {
+        if ( $discount->percent > 0 ) {
           $discountable += $months * $permonth;
           $discountable -= ($discountable * $discount->percent / 100);
           $discountable -= ($permonth - $recur); # correct for prorate
           $self->{discounted} += $discountable;
         }
-        else {
+        elsif ( $discount->amount > 0 ) {
           $discountable += $recur;
           $discountable -= $discount->amount * $recur/$permonth;
           $discountable += ($months - 1) * max($permonth - $discount->amount,0);
+          $self->{discounted} += $discountable;
+        }
+        else {
+          warn "discountnum ".$discount->discountnum.
+            " has no amount or percentage, ignored\n";
+          $self->{discounted} = $self->{base};
         }
 
-        $self->{discounted} += $discountable;
         push @{ $self->{pkgnums} }, $cust_pkg->pkgnum;
       }
       else { #no discount

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

Summary of changes:
 FS/FS/cust_bill.pm     |    3 +++
 FS/FS/discount_plan.pm |   11 ++++++++---
 2 files changed, 11 insertions(+), 3 deletions(-)




More information about the freeside-commits mailing list