discount action UI improvements: don't show 'Custom discount' which we can't add...
authorIvan Kohler <ivan@freeside.biz>
Thu, 27 Apr 2017 22:31:10 +0000 (15:31 -0700)
committerIvan Kohler <ivan@freeside.biz>
Thu, 27 Apr 2017 22:31:10 +0000 (15:31 -0700)
FS/FS/part_event/Action/pkg_discount.pm
httemplate/elements/select-discount.html

index bae3c34..a10822e 100644 (file)
@@ -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,
                      },
   );
 }
index b7f1fa5..3a267ed 100644 (file)
@@ -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>