From e2d16c850d8857567023f10b8c57daf0570c6a8e Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Thu, 5 Nov 2015 19:55:26 -0800 Subject: [PATCH] ignore discount duration when applying to setup fee, #38489 --- FS/FS/part_pkg/discount_Mixin.pm | 8 ++------ httemplate/edit/cust_pkg_discount.html | 2 ++ httemplate/elements/tr-select-discount.html | 8 ++++++++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/FS/FS/part_pkg/discount_Mixin.pm b/FS/FS/part_pkg/discount_Mixin.pm index 194479e56..e411c84e8 100644 --- a/FS/FS/part_pkg/discount_Mixin.pm +++ b/FS/FS/part_pkg/discount_Mixin.pm @@ -123,17 +123,13 @@ sub calc_discount { if ( $discount->percent > 0 ) { $amount = $discount->percent * $param->{'setup_charge'} / 100; - } elsif ( $discount->amount > 0 && ($discount->months || 0) == 1) { + } elsif ( $discount->amount > 0 ) { # apply the discount amount, up to a maximum of the setup charge $amount = min($discount->amount, $param->{'setup_charge'}); $discount_left = sprintf('%.2f', $discount->amount - $amount); # transfer remainder of discount, if any, to recur $param->{'discount_left_recur'}{$discount->discountnum} = $discount_left; - } else { - # I guess we don't allow multiple-month flat amount discounts to - # apply to setup? - next; - } + } } else { diff --git a/httemplate/edit/cust_pkg_discount.html b/httemplate/edit/cust_pkg_discount.html index 0bb84b8f2..e814c96c5 100755 --- a/httemplate/edit/cust_pkg_discount.html +++ b/httemplate/edit/cust_pkg_discount.html @@ -30,6 +30,7 @@ 'empty_label' => ( $pkgdiscountnum ? '' : 'Select discount' ), 'onchange' => 'enable_discount_pkg()', 'cgi' => $cgi, + 'setup_only' => $setup_only, ) %> @@ -72,5 +73,6 @@ my $cust_pkg = # " ( pkgnum ". cust_pkg->pkgnum. ")"; my $part_pkg = $cust_pkg->part_pkg; +my $setup_only = ($part_pkg->freq eq '0') ? 1 : 0; diff --git a/httemplate/elements/tr-select-discount.html b/httemplate/elements/tr-select-discount.html index ee862519f..faa65e1f7 100644 --- a/httemplate/elements/tr-select-discount.html +++ b/httemplate/elements/tr-select-discount.html @@ -53,6 +53,13 @@ ) %> +% if ( $opt{'setup_only'} ) { + <& /elements/hidden.html, + 'field' => $name.'_setup', + 'id' => $name.'_setup', + 'value' => 'Y' + &> +% } else { # normal case, allow the user to choose <% include( '/elements/tr-input-text.html', 'label' => 'Discount duration (months)', 'field' => $name. '_months', @@ -73,6 +80,7 @@ 'colspan' => $opt{'colspan'}, ) %> +% } %# <% include( '/elements/tr-checkbox.html', %# 'label' => 'Apply discount to add-on packages', -- 2.11.0