<% $opt{before_pkg_callback} ? &{ $opt{before_pkg_callback} }( $cust_pkg ) : '' %> <% $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 %> | |
% if ( $part_pkg->freq eq '0' and !$opt{no_links} ) {
% # 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} ) { % % if ( $change_from ) { % # This is the target package for a future change. % # Nothing you can do with it besides modify/cancel the % # future change, and that's on the current package. % } elsif ( $supplemental ) { % # Supplemental packages can't be changed independently. % # Show only "Add comments" and "Add invoice details". % } else { % # the usual case: links to change package definition, % # discount, and customization % my $br = 0; % if ( $curuser->access_right('Change customer package') ) { % $br=1; ( <%pkg_change_link($cust_pkg)%> ) % } % % if ( $can_discount_pkg ) { % $br=1; ( <%pkg_discount_link($cust_pkg)%> ) % } % % if ( $curuser->access_right('Customize customer package') ) { % $br=1; ( <%pkg_customize_link($cust_pkg,$part_pkg)%> ) % } % <% $br ? ' ' : '' %> % } % if ( ( $curuser->access_right('Billing event reports') % || $curuser->access_right('View customer billing events') % ) % && $cust_pkg->exists_cust_event % ) { ( <%pkg_event_link($cust_pkg)%> ) % } % } # a canceled recurring package, or else no_links is in effect |
|
% my $change_quan_label = 'Change quantity'; % if ( $cust_pkg->quantity > 1 ) { % $change_quan_label = 'change'; <% mt('Quantity:') |h %> <% $cust_pkg->quantity %> % } % if ( $curuser->access_right('Change customer package') % && ! $cust_pkg->get('cancel') % && ! $supplemental % && $part_pkg->freq ne '0' % && ! $opt{no_links} % && $opt{'invoice-unitprice'} % ) % { ( <% pkg_change_quantity_link($cust_pkg, $change_quan_label) %> ) % } | |
% my $change_sales_label = 'Change sales person'; % if ( $cust_pkg->salesnum ) { % $change_sales_label = 'change'; <% mt('Sales Person:') |h %> <% $cust_pkg->salesperson |h %> % } % if ( $curuser->access_right('Change customer package') % && ! $cust_pkg->get('cancel') % && ! $supplemental % #&& $part_pkg->freq ne '0' % && ! $opt{no_links} % ) % { ( <% pkg_change_salesnum_link($cust_pkg, $change_sales_label) %> ) % } | |
<& /elements/table-grid.html &> | |
<% mt('Invoice details') |h %> % if ( $editi && ! $cust_pkg->get('cancel') && ! $opt{no_links} ) { (<& /elements/popup_link.html, { 'action' => $editlink. 'I', 'label' => emt('edit'), 'actionlabel' => emt('Edit invoice details'), 'color' => '#333399', 'width' => 763, } &>) % } | |
---|---|
- <% $cust_pkg_detail->detail |h %> |
<% mt('Included usage') %> | ||||
---|---|---|---|---|
<% $part->description %>: | ALIGN="right"><% sprintf('%.1f', $usage->minutes) %> | > / | ><% $part->minutes %> | % if ( $part->shared ) {(shared) | % }