summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Houghton <houghton@freeside.biz>2014-09-09 16:46:29 -0400
committerDavid Houghton <houghton@freeside.biz>2014-09-09 16:49:53 -0400
commiteff4755bfe03230ee2a368d4e83b1c98df76fae2 (patch)
tree8cf5effe2559df14817d8f00a63198c667edbc5e
parent271785973c230748a2575ba925d03f49668405bc (diff)
ticket: 28287; add undiscounted monthly amount
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.
-rw-r--r--FS/FS/part_pkg/discount_Mixin.pm6
1 files changed, 4 insertions, 2 deletions
diff --git a/FS/FS/part_pkg/discount_Mixin.pm b/FS/FS/part_pkg/discount_Mixin.pm
index 48ca94d49..56c86d520 100644
--- a/FS/FS/part_pkg/discount_Mixin.pm
+++ b/FS/FS/part_pkg/discount_Mixin.pm
@@ -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;
}