X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpackages%2Fpackage.html;h=1b397d851246058ef3c2a3420e839c2e2198089f;hp=e97c141d2010ef755ec2a0e68fe2809a0582f5dc;hb=4dc075fc38008d1c6cbe9b88b2bdb32bdc92adbf;hpb=6422e165313ee8d67790007581821217240734fb
diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html
index e97c141d2..1b397d851 100644
--- a/httemplate/view/cust_main/packages/package.html
+++ b/httemplate/view/cust_main/packages/package.html
@@ -1,7 +1,6 @@
-
>
+ |
+ <% join('', @marker ) %>
-
-
<% $opt{before_pkg_callback}
@@ -10,9 +9,36 @@
%>
<% $curuser->option('show_pkgnum') ? $cust_pkg->pkgnum.': ' : '' %><% $part_pkg->pkg |h %>
- -
- <% $part_pkg->custom_comment |h %>
+ ><% $opt{show_pkgnum} ? $cust_pkg->pkgnum.': ' : '' %><% $part_pkg->pkg |h %>
+%
+% 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 %>
|
@@ -25,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} ) {
%
@@ -46,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)%> )
% }
@@ -64,14 +89,14 @@
<% $br ? ' ' : '' %>
% }
-% if ( $cust_pkg->num_cust_event
-% && ( $curuser->access_right('Billing event reports')
+% if ( ( $curuser->access_right('Billing event reports')
% || $curuser->access_right('View customer billing events')
% )
+% && $cust_pkg->exists_cust_event
% ) {
( <%pkg_event_link($cust_pkg)%> )
% }
-% } #!$supplemental
+% } # a canceled recurring package, or else no_links is in effect
@@ -240,7 +265,7 @@
% if ( @cust_pkg_usage ) {
- <% mt('Included usage') %> |
+ <% emt('Included usage') %> |
% foreach my $usage (@cust_pkg_usage) {
% my $part = $usage->part_pkg_usage;
% my $ratio = 255 * ($usage->minutes / $part->minutes);
@@ -250,7 +275,7 @@
% $trstyle = ' CLASS="shared"' if $part->shared;
>
<% $part->description %>: |
- ALIGN="right"><% $usage->minutes %> |
+ ALIGN="right"><% sprintf('%.1f', $usage->minutes) %> |
> / |
><% $part->minutes %> |
% if ( $part->shared ) {
@@ -261,6 +286,7 @@
% }
+ <% join('', map '', @marker ) %>
<%init>
@@ -281,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+)$/;
@@ -321,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 {
@@ -349,7 +365,7 @@ sub pkg_change_location_link {
'actionlabel' => emt('Change'),
'cust_pkg' => $cust_pkg,
'width' => 960,
- 'height' => 490,
+ 'height' => 530,
);
}
@@ -405,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'
+ )
+ );
+
+}
+
%init>
|