summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/part_pkg/discount_Mixin.pm21
1 files changed, 15 insertions, 6 deletions
diff --git a/FS/FS/part_pkg/discount_Mixin.pm b/FS/FS/part_pkg/discount_Mixin.pm
index 1edf258d6..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,11 +166,22 @@ sub calc_discount {
$months = sprintf('%.2f', $months) if $months =~ /\./;
my $d = 'Includes ';
- $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;
+ 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;
}