X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpackages%2Fpackage.html;h=0a5305ed5e7dd8c1ec3c079a67645ecd55fa00c6;hb=cd254e04ba204b5d0b4a69b65c392fb175dd1e97;hp=6a0c7f7dfc77dff3af4e49a6634fef8cb0e2c2ba;hpb=da0e47d64f0aabf03c308dd93ab0c7c88a98208b;p=freeside.git diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html index 6a0c7f7df..0a5305ed5 100644 --- a/httemplate/view/cust_main/packages/package.html +++ b/httemplate/view/cust_main/packages/package.html @@ -1,7 +1,6 @@ -> + + <% join('', @marker ) %> - - @@ -26,8 +51,12 @@ % # One-time charge. Nothing you can do with this, unless: % if ( $curuser->access_right('Modify one-time charge') ) { ( <%onetime_change_link($cust_pkg)%> ) -
% } +% # also, you can discount it +% if ( $can_discount_pkg ) { + ( <%pkg_discount_link($cust_pkg)%> ) +% } +
% % } elsif ( !$cust_pkg->get('cancel') and !$opt{no_links} ) { % @@ -47,12 +76,7 @@ ( <%pkg_change_link($cust_pkg)%> ) % } % -% if ( $curuser->access_right('Discount customer package') -% && $part_pkg->can_discount -% && ! scalar( @{ $cust_pkg->{_cust_pkg_discount_active} } ) -% && ! scalar($cust_pkg->part_pkg->part_pkg_discount) -% ) -% { +% if ( $can_discount_pkg ) { % $br=1; ( <%pkg_discount_link($cust_pkg)%> ) % } @@ -68,11 +92,11 @@ % if ( ( $curuser->access_right('Billing event reports') % || $curuser->access_right('View customer billing events') % ) -% && $cust_pkg->num_cust_event +% && $cust_pkg->exists_cust_event % ) { ( <%pkg_event_link($cust_pkg)%> ) % } -% } #!$supplemental +% } # a canceled recurring package, or else no_links is in effect @@ -251,7 +275,7 @@ % $trstyle = ' CLASS="shared"' if $part->shared; > - + % if ( $part->shared ) { @@ -262,6 +286,7 @@
<% $opt{before_pkg_callback} @@ -11,7 +10,33 @@ <% $opt{show_pkgnum} ? $cust_pkg->pkgnum.': ' : '' %><% $part_pkg->pkg |h %> -% my $custom_comment = $part_pkg->custom_comment('cust_pkg'=>$cust_pkg); +% +% my $custom_comment; +% if ( 0 && FS::part_pkg::flat->can('price_info') eq $part_pkg->can('price_info') ) { +% #perf hack / disabled in 4.x (feature pricing / cust_pkg_usageprice incompatible, well, harder) +% +% $part_pkg->{"_$_"} = $part_pkg->option($_) || 0 +% foreach grep !defined($part_pkg->{"_$_"} ), qw(setup_fee recur_fee); +% +% my $str = ''; +% $str = $opt{money_char} . $part_pkg->{_setup_fee}. +% ($part_pkg->{_recur_fee} ? ' setup' : ' one-time') +% if $part_pkg->{_setup_fee}; +% $str .= ', ' if $part_pkg->{_setup_fee} && $part_pkg->{_recur_fee}; +% $str .= $opt{money_char}. $part_pkg->{_recur_fee}. +% '/'. $part_pkg->freq_pretty +% if $part_pkg->{_recur_fee}; +% $str; +% +% $custom_comment = +% ( $part_pkg->custom ? '(CUSTOM) ' : '' ). +% $part_pkg->comment. +% ( ($part_pkg->custom || $part_pkg->comment) ? ' - ' : '' ). +% ($str || 'No charge'); +% +% } else { +% $custom_comment = $part_pkg->custom_comment('cust_pkg'=>$cust_pkg); +% } <% $custom_comment ? ' - ' : '' %> <% $custom_comment |h %> <% $part->description %>: ALIGN="right"><% $usage->minutes %> ALIGN="right"><% sprintf('%.1f', $usage->minutes) %> > / ><% $part->minutes %>
% } + <% join('', map '', @marker ) %> <%init> @@ -282,16 +307,12 @@ my $statedefault = $opt{'statedefault'} # if this package is somehow special my $supplemental = $opt{'supplemental'} || 0; my $change_from = $opt{'change_from'} || 0; -my $style = ''; -if ( $supplemental or $change_from ) { - $style = 'border-left-width: '.($supplemental + $change_from)*30 . 'px; '. - 'border-color: '; - if ( $supplemental ) { - $style .= '#bbbbff'; - } elsif ( $change_from ) { - $style .= '#bbffbb'; - } - $style = qq!STYLE="$style"!; +my @marker; +if ( $supplemental ) { + push @marker, '
'; +} +if ( $change_from ) { + push @marker, '
'; } $cust_pkg->pkgnum =~ /^(\d+)$/; @@ -322,21 +343,15 @@ sub pkg_change_link { 'actionlabel' => emt('Change'), 'cust_pkg' => $cust_pkg, 'width' => 960, - 'height' => 490, + 'height' => 538, ); } sub onetime_change_link { my $cust_pkg = shift; my $pkgnum = $cust_pkg->pkgnum; - include( '/elements/popup_link-cust_pkg.html', - 'action' => $p. "edit/quick-charge.html?change_pkgnum=$pkgnum", - 'label' => emt('Modify one-time charge'), - 'actionlabel' => emt('Modify'), - 'cust_pkg' => $cust_pkg, - 'width' => 690, - 'height' => 380, - ); + '' . emt('Modify one-time charge') . '' } sub pkg_change_location_link { @@ -350,7 +365,7 @@ sub pkg_change_location_link { 'actionlabel' => emt('Change'), 'cust_pkg' => $cust_pkg, 'width' => 960, - 'height' => 490, + 'height' => 530, ); } @@ -406,4 +421,27 @@ sub pkg_event_link { ''; } +# figure out if this user will be able to edit either the setup or recurring +# discounts for this package +my $can_discount_pkg = 0; + +if ( $part_pkg->can_discount ) { + #looking these up individually uses the ACL cache and is a big win for lots + # of packages + my $discount = $curuser->access_right('Discount customer package'); + my $waive = $curuser->access_right('Waive setup fee'); + + $can_discount_pkg = + ( ($discount || $waive) + && $cust_pkg->base_setup > 0 + && !$cust_pkg->setup + or + ( $discount + && $cust_pkg->base_recur > 0 + && $cust_pkg->freq ne '0' + ) + ); + +} +