summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-04-27 15:31:07 -0700
committerIvan Kohler <ivan@freeside.biz>2017-04-27 15:31:07 -0700
commitfe32569659388d3edbd08fe2b1327ec0005da4f8 (patch)
tree96a25fbfe497f37438e47dca3c2830a2a0cfaae9
parent5a1e08844db8e4278105f0aad7aa3a48a433789c (diff)
discount action UI improvements: don't show 'Custom discount' which we can't add on the fly, RT#75536
-rw-r--r--FS/FS/part_event/Action/pkg_discount.pm9
-rw-r--r--httemplate/elements/select-discount.html12
2 files changed, 13 insertions, 8 deletions
diff --git a/FS/FS/part_event/Action/pkg_discount.pm b/FS/FS/part_event/Action/pkg_discount.pm
index bae3c342a..a10822ef3 100644
--- a/FS/FS/part_event/Action/pkg_discount.pm
+++ b/FS/FS/part_event/Action/pkg_discount.pm
@@ -26,12 +26,15 @@ sub option_fields {
'discountnum' => { 'label' => 'Discount',
'type' => 'select-table', #we don't handle the select-discount create a discount case
'table' => 'discount',
- 'name_col' => 'description', #well, method
- 'order_by' => 'ORDER BY discountnum', #requied because name_col is a method
+ #(well, since 2013 it winds up calling select-discount
+ # anyway (but not tr-select-discount)
+ #'name_col' => 'description', #well, method
+ #'order_by' => 'ORDER BY discountnum', #requied because name_col is a method
+ 'disable_empty' => 1,
'hashref' => { 'disabled' => '',
'months' => { op=>'!=', value=>'0' },
},
- 'disable_empty' => 1,
+ 'disable_custom_discount' => 1,
},
);
}
diff --git a/httemplate/elements/select-discount.html b/httemplate/elements/select-discount.html
index b7f1fa5be..3a267ed08 100644
--- a/httemplate/elements/select-discount.html
+++ b/httemplate/elements/select-discount.html
@@ -4,7 +4,7 @@
'order_by' => 'ORDER BY discountnum', #XXX weight
'value' => $discountnum,
'empty_label' => '(none)',
- 'hashref' => { 'disabled' => '' },
+ 'hashref' => $hashref,
'post_options' => $post_options,
%opt,
)
@@ -19,10 +19,12 @@ $opt{'records'} = delete $opt{'discount'}
my $curuser = $FS::CurrentUser::CurrentUser;
-#make an opt if we need to turn this off
-my $post_options = $curuser->access_right('Custom discount customer package')
- ? [ -1 => 'Custom discount' ]
- : [];
+my $hashref = $opt{hashref} || { 'disabled' => '' };
+
+my $post_options = [];
+push @$post_options, -1 => 'Custom discount'
+ if $curuser->access_right('Custom discount customer package')
+ && ! $opt{disable_custom_discount};
</%init>