ignore discount duration when applying to setup fee, #38489
authorMark Wells <mark@freeside.biz>
Fri, 6 Nov 2015 03:55:26 +0000 (19:55 -0800)
committerMark Wells <mark@freeside.biz>
Fri, 6 Nov 2015 03:56:05 +0000 (19:56 -0800)
FS/FS/part_pkg/discount_Mixin.pm
httemplate/edit/cust_pkg_discount.html
httemplate/elements/tr-select-discount.html

index 194479e..e411c84 100644 (file)
@@ -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 {
       
index 0bb84b8..e814c96 100755 (executable)
@@ -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;
 
 </%init>
index ee86251..faa65e1 100644 (file)
             )
   %>
 
+% 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'   => '<B>Discount duration (months)</B>',
                 'field'   => $name. '_months',
@@ -73,6 +80,7 @@
                 'colspan'    => $opt{'colspan'},
             )
   %>
+% }
 
 %#  <% include( '/elements/tr-checkbox.html',
 %#                'label'     => '<B>Apply discount to add-on packages</B>',