X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpackages%2Fpackage.html;h=c65263df35edaa3ec97c8ff9ca3bc658e4e20bd4;hb=24389dff37b486ed4f0281bd50a3ff1ee77ae74d;hp=520305a9ad07dfb03f79f3f26c44a8d88602f192;hpb=ded0ab5cac02f099b387de360fb6dd6bd8cbb6b4;p=freeside.git diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html index 520305a9a..c65263df3 100644 --- a/httemplate/view/cust_main/packages/package.html +++ b/httemplate/view/cust_main/packages/package.html @@ -1,39 +1,78 @@ - +> + + -% if ( $cust_pkg->quantity > 1 ) { - - - -% } + + + + + + + + + + + % my $editi = $curuser->access_right('Edit customer package invoice details'); % my $editc = $curuser->access_right('Edit customer package comments'); % my @cust_pkg_detail = $cust_pkg->cust_pkg_detail; @@ -99,7 +194,7 @@ -% if ( $curuser->access_right('Change customer package') and -% !$cust_pkg->get('cancel') and -% !$supplemental and -% $part_pkg->freq ne '0' ) { - -% if ( FS::Conf->new->exists('invoice-unitprice') ) { - -% } - -% } + + % }
+ <% $opt{before_pkg_callback} + ? &{ $opt{before_pkg_callback} }( $cust_pkg ) + : '' + %> <% $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 ( FS::part_pkg::flat->can('price_info') eq $part_pkg->can('price_info') ) { +% +% $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(); +% } + <% $custom_comment ? ' - ' : '' %> + <% $custom_comment |h %>
-       <% mt('Quantity:') |h %> - <% $cust_pkg->quantity %> -
-% unless ( $cust_pkg->get('cancel') ) { +% 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 ( $curuser->access_right('Discount customer package') +% && ! scalar($cust_pkg->cust_pkg_discount_active) +% && ! scalar($cust_pkg->part_pkg->part_pkg_discount) +% ) { + ( <%pkg_discount_link($cust_pkg)%> ) +% } +
% -% if ( $supplemental or $part_pkg->freq eq '0' ) { -% # Supplemental packages can't be changed independently. -% # One-time charges don't need to be changed. -% # For both of those, we only show "Edit dates", "Add comments", -% # and "Add invoice details". +% } 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 ) { +% # Show only "Add comments" and "Add invoice details". % if ( $curuser->access_right('Edit customer package dates') ) { ( <%pkg_dates_link($cust_pkg)%> ) % } +% % } else { % # the usual case: links to change package definition, % # discount, and customization @@ -43,15 +82,17 @@ ( <%pkg_change_link($cust_pkg)%> ) % } % -% if ( $curuser->access_right('Edit customer package dates') ) { +% if ( $curuser->access_right('Edit customer package dates') or $curuser->access_right('Change package contract end date') ) { % $br=1; ( <%pkg_dates_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) +% && ! scalar( @{ $cust_pkg->{_cust_pkg_discount_active} } ) +% && ( ! $opt{'term_discounts'} +% || ! scalar($cust_pkg->part_pkg->part_pkg_discount) +% ) % ) % { % $br=1; @@ -66,10 +107,10 @@ <% $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)%> ) % } @@ -79,6 +120,60 @@
+ +% 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) %> ) + +% } + +
<% mt('Invoice details') |h %> -% if ( $editi && ! $cust_pkg->get('cancel') ) { +% if ( $editi && ! $cust_pkg->get('cancel') && ! $opt{no_links} ) { (<& /elements/popup_link.html, { 'action' => $editlink. 'I', 'label' => emt('edit'), @@ -121,7 +216,7 @@ % } else { -% if ( $editi && ! $cust_pkg->get('cancel') ) { +% if ( $editi && ! $cust_pkg->get('cancel') && ! $opt{no_links} ) { ( <% include('/elements/popup_link.html', { 'action' => $editlink. 'I', @@ -143,7 +238,7 @@ <% mt('Comments') |h %> -% if ( $editc ) { +% if ( $editc && ! $opt{no_links} ) { (<& /elements/popup_link.html, { 'action' => $editlink. 'C', 'label' => emt('edit'), @@ -165,7 +260,7 @@ % } else { -% if ( $editc ) { +% if ( $editc && ! $opt{no_links} ) { ( <& /elements/popup_link.html, { 'action' => $editlink. 'C', @@ -181,23 +276,14 @@ % }
- ( <% pkg_change_quantity_link($cust_pkg) %> ) -
+ % if ( @cust_pkg_usage ) { - + % foreach my $usage (@cust_pkg_usage) { % my $part = $usage->part_pkg_usage; % my $ratio = 255 * ($usage->minutes / $part->minutes); @@ -207,7 +293,7 @@ % $trstyle = ' CLASS="shared"' if $part->shared; > - + % if ( $part->shared ) { @@ -234,7 +320,21 @@ my $countrydefault = $opt{'countrydefault'} || 'US'; my $statedefault = $opt{'statedefault'} || ($countrydefault eq 'US' ? 'CA' : ''); +# put a marker on the left edge of this column +# 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"!; +} $cust_pkg->pkgnum =~ /^(\d+)$/; my $pkgnum = $1; @@ -263,6 +363,21 @@ sub pkg_change_link { 'label' => emt('Change package'), 'actionlabel' => emt('Change'), 'cust_pkg' => $cust_pkg, + 'width' => 960, + 'height' => 490, + ); +} + +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' => 440, ); } @@ -276,15 +391,30 @@ sub pkg_change_location_link { 'label' => emt('Change location'), 'actionlabel' => emt('Change'), 'cust_pkg' => $cust_pkg, + 'width' => 960, + 'height' => 490, ); } sub pkg_change_quantity_link { + my( $cust_pkg, $label ) = @_; include( '/elements/popup_link-cust_pkg.html', 'action' => $p. 'edit/cust_pkg_quantity.html?', - 'label' => emt('Change quantity'), + 'label' => emt($label), + 'actionlabel' => emt('Change'), + 'cust_pkg' => $cust_pkg, + 'width' => 390, + 'height' => 220, + ); +} + +sub pkg_change_salesnum_link { + my( $cust_pkg, $label ) = @_; + include( '/elements/popup_link-cust_pkg.html', + 'action' => $p. 'edit/cust_pkg_salesnum.html?', + 'label' => emt($label), 'actionlabel' => emt('Change'), - 'cust_pkg' => shift, + 'cust_pkg' => $cust_pkg, 'width' => 390, 'height' => 220, );
<% mt('Included usage') %>
<% emt('Included usage') %>
<% $part->description %>: ALIGN="right"><% $usage->minutes %> ALIGN="right"><% sprintf('%.1f', $usage->minutes) %> > / ><% $part->minutes %>