diff options
| author | ivan <ivan> | 2011-10-24 01:15:59 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2011-10-24 01:15:59 +0000 | 
| commit | b79a8cb932946c849328a3c117c35821d9d21e66 (patch) | |
| tree | 85c936889c30923261129e564bf7742e1a61361e | |
| parent | 4cff911c9c44159b07125841be948a21ed48b160 (diff) | |
fix discounts not appearing for one-time charge packages, RT#13654
| -rw-r--r-- | FS/FS/cust_pkg_discount.pm | 3 | ||||
| -rw-r--r-- | FS/FS/part_pkg/flat.pm | 6 | ||||
| -rw-r--r-- | httemplate/elements/order_pkg.js | 3 | ||||
| -rw-r--r-- | httemplate/elements/tr-select-discount.html | 30 | ||||
| -rw-r--r-- | httemplate/view/cust_main/order_pkg_link.html | 4 | 
5 files changed, 19 insertions, 27 deletions
| diff --git a/FS/FS/cust_pkg_discount.pm b/FS/FS/cust_pkg_discount.pm index d41f497a6..72a1e9c92 100644 --- a/FS/FS/cust_pkg_discount.pm +++ b/FS/FS/cust_pkg_discount.pm @@ -171,6 +171,9 @@ sub check {    ;    return $error if $error; +  return "Discount does not apply to setup fees, and package has no recurring" +    if ! $self->discount->setup && ! $self->cust_pkg->freq; +    $self->usernum($FS::CurrentUser::CurrentUser->usernum) unless $self->usernum;    $self->SUPER::check; diff --git a/FS/FS/part_pkg/flat.pm b/FS/FS/part_pkg/flat.pm index cb7e18369..d59c694b1 100644 --- a/FS/FS/part_pkg/flat.pm +++ b/FS/FS/part_pkg/flat.pm @@ -220,11 +220,7 @@ sub is_prepaid { 0; } #no, we're postpaid  sub can_start_date { ! shift->option('start_1st', 1) } -#XXX discounts only on recurring fees for now (no setup/one-time or usage) -sub can_discount { -  my $self = shift; -  $self->freq =~ /^\d+$/ && $self->freq > 0; -} +sub can_discount { 1; }  sub recur_temporality {    my $self = shift; diff --git a/httemplate/elements/order_pkg.js b/httemplate/elements/order_pkg.js index 2f53e3631..48073593a 100644 --- a/httemplate/elements/order_pkg.js +++ b/httemplate/elements/order_pkg.js @@ -8,8 +8,10 @@ function pkg_changed () {      if ( discountnum ) {        if ( form.pkgpart.options[form.pkgpart.selectedIndex].getAttribute('data-can_discount') == 1 ) {          form.discountnum.disabled = false; +        discountnum_changed(form.discountnum);        } else {          form.discountnum.disabled = true; +        discountnum_changed(form.discountnum);        }      } @@ -29,6 +31,7 @@ function pkg_changed () {    } else {      form.submitButton.disabled = true;      if ( discountnum ) { form.discountnum.disabled = true; } +    discountnum_changed(form.discountnum);    }  } diff --git a/httemplate/elements/tr-select-discount.html b/httemplate/elements/tr-select-discount.html index 6bfc48530..30a60ec85 100644 --- a/httemplate/elements/tr-select-discount.html +++ b/httemplate/elements/tr-select-discount.html @@ -81,12 +81,14 @@      function <% $name %>_changed(what) {        var <% $name %> = what.options[what.selectedIndex].value; -      if ( <% $name %> == '-1' ) { +      if ( <% $name %> == '-1' && ! what.disabled ) {          <% $ge %>('<% $name %>__type_label0').style.display = '';          <% $ge %>('<% $name %>__type_label0').style.visibility = '';          <% $ge %>('<% $name %>__type').style.display = '';          <% $ge %>('<% $name %>__type').style.visibility = ''; -%       #XXX retrieve previous visibility for amount, percent :/ + +        <% $name %>__type_changed( <% $ge %>('<% $name %>__type') ); +          <% $ge %>('<% $name %>_months_label0').style.display = '';          <% $ge %>('<% $name %>_months_label0').style.visibility = '';          <% $ge %>('<% $name %>_months').style.display = ''; @@ -104,19 +106,7 @@          <% $ge %>('<% $name %>__type').style.display = 'none';          <% $ge %>('<% $name %>__type').style.visibility = 'hidden'; -%       #XXX save visibility settings for amount, percent :/ -        <% $ge %>('<% $name %>_amount_label0').style.display = 'none'; -        <% $ge %>('<% $name %>_amount_label0').style.visibility = 'hidden'; -        <% $ge %>('<% $name %>_amount_input0').style.display = 'none'; -        <% $ge %>('<% $name %>_amount_input0').style.visibility = 'hidden'; -        <% $ge %>('<% $name %>_amount_input0').style.display = 'none'; -        <% $ge %>('<% $name %>_amount_input0').style.visibility = 'hidden'; -        <% $ge %>('<% $name %>_percent_label0').style.display = 'none'; -        <% $ge %>('<% $name %>_percent_label0').style.visibility = 'hidden'; -        <% $ge %>('<% $name %>_percent_input0').style.display = 'none'; -        <% $ge %>('<% $name %>_percent_input0').style.visibility = 'hidden'; -        <% $ge %>('<% $name %>_percent_input0').style.display = 'none'; -        <% $ge %>('<% $name %>_percent_input0').style.visibility = 'hidden'; +        <% $name %>__type_changed( <% $ge %>('<% $name %>__type') );          <% $ge %>('<% $name %>_months_label0').style.display = 'none';          <% $ge %>('<% $name %>_months_label0').style.visibility = 'hidden'; @@ -137,15 +127,15 @@      function <% $name %>__type_changed(what) {        var <% $name %>__type = what.options[what.selectedIndex].value; -      if ( <% $name %>__type == '<% $select %>' ) { +      if ( <% $name %>__type == '<% $select %>' || what.style.display == 'none' ) {          <% $ge %>('<% $name %>_amount_label0').style.display = 'none';          <% $ge %>('<% $name %>_amount_label0').style.visibility = 'hidden'; -        <% $ge %>('<% $name %>_amount').style.display = 'none'; -        <% $ge %>('<% $name %>_amount').style.visibility = 'hidden'; +        <% $ge %>('<% $name %>_amount_input0').style.display = 'none'; +        <% $ge %>('<% $name %>_amount_input0').style.visibility = 'hidden';          <% $ge %>('<% $name %>_percent_label0').style.display = 'none';          <% $ge %>('<% $name %>_percent_label0').style.visibility = 'hidden'; -        <% $ge %>('<% $name %>_percent').style.display = 'none'; -        <% $ge %>('<% $name %>_percent').style.visibility = 'hidden'; +        <% $ge %>('<% $name %>_percent_input0').style.display = 'none'; +        <% $ge %>('<% $name %>_percent_input0').style.visibility = 'hidden';        } else if ( <% $name %>__type == 'Amount' ) {          <% $ge %>('<% $name %>_amount_label0').style.display = '';          <% $ge %>('<% $name %>_amount_label0').style.visibility = ''; diff --git a/httemplate/view/cust_main/order_pkg_link.html b/httemplate/view/cust_main/order_pkg_link.html index 29398432e..7bc5eef31 100644 --- a/httemplate/view/cust_main/order_pkg_link.html +++ b/httemplate/view/cust_main/order_pkg_link.html @@ -5,7 +5,7 @@            'color'       => '#333399',            'cust_main'   => $cust_main,            'closetext'   => emt('Close'), -          'width'       => 763, +          'width'       => 960, #763,            'height'      => $height,            %optional,  &> @@ -17,6 +17,6 @@ my %optional = map { $_ => $opt{$_} }                   grep $opt{$_},                     qw( lock_pkgpart lock_locationnum qualnum svcpart ); -my $height = $opt{'lock_locationnum'} ? 296 : 538; +my $height = $opt{'lock_locationnum'} ? 336 : 576;  </%init> | 
