ticket: 28287; add undiscounted monthly amount
authorDavid Houghton <houghton@freeside.biz>
Tue, 9 Sep 2014 20:46:29 +0000 (16:46 -0400)
committerDavid Houghton <houghton@freeside.biz>
Tue, 9 Sep 2014 20:49:53 +0000 (16:49 -0400)
I figured this need only parallel the discount report. That is, the discount
only is reported and applied if the period of recurrence is some whole number
of months. From my exploration of discounts it appeared that one could specify
discounts for other periods, but they did not appear on invoices.

FS/FS/part_pkg/discount_Mixin.pm

index 48ca94d..56c86d5 100644 (file)
@@ -7,8 +7,6 @@ use List::Util  qw( min );
 use FS::cust_pkg;
 use FS::cust_bill_pkg_discount;
 
-%info = ( 'disabled' => 1 );
-
 =head1 NAME
 
 FS::part_pkg::discount_Mixin - Mixin class for part_pkg:: classes that 
@@ -168,18 +166,22 @@ sub calc_discount {
     $months = sprintf('%.2f', $months) if $months =~ /\./;
 
     my $d = 'Includes ';
+    my $format;
 
     if ( $months eq '1' ) {
       $d .= "discount of $money_char$amount each";
+      $format = 'Undiscounted amount: %s%.2f';
     } else {
       $d .= 'setup ' if defined $param->{'setup_charge'};
       $d .= 'discount of '. $discount->description_short;
       $d .= " for $months month". ( $months!=1 ? 's' : '' )
        unless defined $param->{'setup_charge'};
       $d .= ": $money_char$amount" if $months != 1 || $discount->percent;
+      $format = 'Undiscounted monthly amount: %s%.2f';
     }
 
     push @$details, $d;
+    push @$details, sprintf $format, $money_char, $br;
 
     $tot_discount += $amount;
   }