-<TD CLASS="inv package" BGCOLOR="<% $bgcolor %>" VALIGN="top" <%$style%>>
+<TD CLASS="inv package" BGCOLOR="<% $bgcolor %>" VALIGN="top">
+ <% join('', @marker ) %>
<TABLE CLASS="inv package">
-
-
<TR>
<TD COLSPAN=2>
<% $opt{before_pkg_callback}
<A NAME="cust_pkg<% $cust_pkg->pkgnum %>"
ID ="cust_pkg<% $cust_pkg->pkgnum %>"
><% $opt{show_pkgnum} ? $cust_pkg->pkgnum.': ' : '' %><B><% $part_pkg->pkg |h %></B></A>
-% 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 %>
</TD>
% # One-time charge. Nothing you can do with this, unless:
% if ( $curuser->access_right('Modify one-time charge') ) {
( <%onetime_change_link($cust_pkg)%> )
- <BR>
% }
+% # also, you can discount it
+% if ( $can_discount_pkg ) {
+ ( <%pkg_discount_link($cust_pkg)%> )
+% }
+ <BR>
%
% } elsif ( !$cust_pkg->get('cancel') and !$opt{no_links} ) {
%
( <%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)%> )
% }
% 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
</FONT>
</TD>
% $trstyle = ' CLASS="shared"' if $part->shared;
<TR<%$trstyle%>>
<TD ALIGN="right"><% $part->description %>: </TD>
- <TD <%$color%> ALIGN="right"><% $usage->minutes %></TD>
+ <TD <%$color%> ALIGN="right"><% sprintf('%.1f', $usage->minutes) %></TD>
<TD <%$color%>> / </TD>
<TD <%$color%>><% $part->minutes %></TD>
% if ( $part->shared ) {
</TABLE>
% }
+ <% join('', map '</DIV>', @marker ) %>
</TD>
<%init>
# 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, '<DIV CLASS="package-marker-supplemental">';
+}
+if ( $change_from ) {
+ push @marker, '<DIV CLASS="package-marker-change_from">';
}
$cust_pkg->pkgnum =~ /^(\d+)$/;
'actionlabel' => emt('Change'),
'cust_pkg' => $cust_pkg,
'width' => 960,
- 'height' => 490,
+ 'height' => 538,
);
}
'actionlabel' => emt('Modify'),
'cust_pkg' => $cust_pkg,
'width' => 690,
- 'height' => 380,
+ 'height' => 440,
);
}
'</a>';
}
+# figure out if this user will be able to edit either the setup or recurring
+# discounts for this package
+my $can_discount_pkg = (
+ $part_pkg->can_discount
+ and
+ ( ( $curuser->access_right(['Discount customer package', 'Waive setup fee'])
+ and $cust_pkg->base_setup > 0
+ and !$cust_pkg->setup
+ )
+ or
+ ( $curuser->access_right('Discount customer package')
+ and $cust_pkg->base_recur > 0
+ and $cust_pkg->freq ne '0'
+ )
+ )
+);
+
</%init>