X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpackages%2Fpackage.html;h=7aad9a44e4345fb4c3422a12400052315158265a;hp=5edbb4d5969f2820de98667fe7ec4645bb6d77d6;hb=a6dd5bc6ba6c655b1707a016db4e97e269b718e5;hpb=77d3d252f8e577de62f0bd5d6d267bc2fd2e5278 diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html index 5edbb4d59..7aad9a44e 100644 --- a/httemplate/view/cust_main/packages/package.html +++ b/httemplate/view/cust_main/packages/package.html @@ -1,56 +1,75 @@ - - + @@ -174,6 +229,22 @@ my $part_pkg = $opt{'part_pkg'}; my $curuser = $FS::CurrentUser::CurrentUser; +my $countrydefault = $opt{'countrydefault'} || 'US'; +my $statedefault = $opt{'statedefault'} + || ($countrydefault eq 'US' ? 'CA' : ''); + +my $supplemental = $opt{'supplemental'} || 0; + +$cust_pkg->pkgnum =~ /^(\d+)$/; +my $pkgnum = $1; +my @cust_pkg_usage = qsearch({ + 'select' => 'cust_pkg_usage.*', + 'table' => 'cust_pkg_usage', + 'addl_from' => ' JOIN part_pkg_usage USING (pkgusagepart)', + 'extra_sql' => " WHERE pkgnum = $1", + 'order_by' => ' ORDER BY priority ASC, description ASC', +}); + #subroutines #false laziness w/status.html @@ -188,13 +259,50 @@ sub pkg_change_link { my $locationnum = $cust_pkg->locationnum; include( '/elements/popup_link-cust_pkg.html', 'action' => $p. "misc/change_pkg.cgi?locationnum=$locationnum", - 'label' => 'Change package', - 'actionlabel' => 'Change', + 'label' => emt('Change package'), + 'actionlabel' => emt('Change'), 'cust_pkg' => $cust_pkg, + 'width' => 763, + 'height' => 380, ); } -sub pkg_dates_link { pkg_link('edit/REAL_cust_pkg', 'Edit dates', @_ ); } +sub pkg_change_location_link { + my $cust_pkg = shift; + my $pkgpart = $cust_pkg->pkgpart; + include( '/elements/popup_link-cust_pkg.html', + 'action' => $p. "misc/change_pkg.cgi?locationnum=-1;pkgpart=$pkgpart;". + "address1=;address2=;city=;county=;state=$statedefault;". + "zip=;country=$countrydefault", + 'label' => emt('Change location'), + 'actionlabel' => emt('Change'), + 'cust_pkg' => $cust_pkg, + 'width' => 763, + 'height' => 380, + ); +} + +sub pkg_change_quantity_link { + include( '/elements/popup_link-cust_pkg.html', + 'action' => $p. 'edit/cust_pkg_quantity.html?', + 'label' => emt('Change quantity'), + 'actionlabel' => emt('Change'), + 'cust_pkg' => shift, + 'width' => 390, + 'height' => 220, + ); +} + +sub pkg_discount_link { + my $cust_pkg = shift or return ''; + include( '/elements/popup_link-cust_pkg.html', + 'action' => $p.'edit/cust_pkg_discount.html', + 'label' => emt('Discount'), + 'actionlabel' => emt('Discount'), + 'cust_pkg' => $cust_pkg, + 'width' => 616, + ); +} sub pkg_customize_link { my $cust_pkg = shift or return ''; @@ -203,13 +311,13 @@ sub pkg_customize_link { qq!Customize!; + qq!">!.emt('Customize').''; } sub pkg_event_link { my($cust_pkg) = @_; qq!!. - 'View package events'. + emt('View package events'). ''; }
+ % if ( $cust_pkg->quantity > 1 ) { -% } +% } @@ -64,27 +83,27 @@ % % if ( scalar(@invoice_detail) || scalar(@comments) || $editi || $editc ) { % -% my $editlink = $p. 'edit/cust_pkg_detail?pkgnum='. $cust_pkg->pkgnum. +% my $editlink = $p. 'edit/cust_pkg_detail.html?pkgnum='. $cust_pkg->pkgnum. % ';detailtype='; % if ( @invoice_detail ) { @@ -98,12 +117,12 @@ % } else { @@ -142,25 +161,61 @@ % } else { % } +% if ( $curuser->access_right('Change customer package') +% && ! $cust_pkg->get('cancel') +% && ! $supplemental +% && $part_pkg->freq ne '0' +% && ! $opt{no_links} +% ) +% { + +% 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->comment |h %> + <% $part_pkg->custom_comment |h %>
-       Quantity: +       <% mt('Quantity:') |h %> <% $cust_pkg->quantity %>
-% unless ( $cust_pkg->get('cancel') ) { +% unless ( $cust_pkg->get('cancel') || $opt{no_links} ) { % -% my $br = 0; -% if ( $curuser->access_right('Change customer package') ) { -% $br=1; - ( <%pkg_change_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 "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 ( $curuser->access_right('Edit customer package dates') ) { -% $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) +% ) +% { +% $br=1; + ( <%pkg_discount_link($cust_pkg)%> ) +% } % -% if ( $curuser->access_right('Customize customer package') ) { -% $br=1; - ( <%pkg_customize_link($cust_pkg,$part_pkg)%> ) -% } +% if ( $curuser->access_right('Customize customer package') ) { +% $br=1; + ( <%pkg_customize_link($cust_pkg,$part_pkg)%> ) +% } % - <% $br ? '
' : '' %> -% } + <% $br ? '
' : '' %> +% } -% if ( $cust_pkg->num_cust_event -% && ( $curuser->access_right('Billing event reports') -% || $curuser->access_right('View customer billing events') -% ) -% ) { - ( <%pkg_event_link($cust_pkg)%> ) -% } +% if ( $cust_pkg->num_cust_event +% && ( $curuser->access_right('Billing event reports') +% || $curuser->access_right('View customer billing events') +% ) +% ) { + ( <%pkg_event_link($cust_pkg)%> ) +% } +% } #!$supplemental
- <% include('/elements/table-grid.html') %> + <& /elements/table-grid.html &>
- Invoice details -% if ( $editi && ! $cust_pkg->get('cancel') ) { - (<% include('/elements/popup_link.html', { + <% mt('Invoice details') |h %> +% if ( $editi && ! $cust_pkg->get('cancel') && ! $opt{no_links} ) { + (<& /elements/popup_link.html, { 'action' => $editlink. 'I', - 'label' => 'edit', - 'actionlabel' => 'Edit invoice details', + 'label' => emt('edit'), + 'actionlabel' => emt('Edit invoice details'), 'color' => '#333399', 'width' => 763, - }) - %>) + } + &>) % } -% if ( $editi && ! $cust_pkg->get('cancel') ) { +% if ( $editi && ! $cust_pkg->get('cancel') && ! $opt{no_links} ) { ( <% include('/elements/popup_link.html', { 'action' => $editlink. 'I', - 'label' => 'Add invoice details', - 'actionlabel' => 'Add invoice details', + 'label' => emt('Add invoice details'), + 'actionlabel' => emt('Add invoice details'), 'color' => '#333399', 'width' => 763, }) @@ -115,20 +134,20 @@ % if ( @comments ) { - <% include('/elements/table-grid.html') %> + <& /elements/table-grid.html &>
- Comments -% if ( $editc ) { - (<% include('/elements/popup_link.html', { + <% mt('Comments') |h %> +% if ( $editc && ! $opt{no_links} ) { + (<& /elements/popup_link.html, { 'action' => $editlink. 'C', - 'label' => 'edit', - 'actionlabel' => 'Edit comments', + 'label' => emt('edit'), + 'actionlabel' => emt('Edit comments'), 'color' => '#333399', 'width' => 763, - }) - %>) + } + &>) % } -% if ( $editc ) { +% if ( $editc && ! $opt{no_links} ) { - ( <% include('/elements/popup_link.html', { + ( <& /elements/popup_link.html, { 'action' => $editlink. 'C', - 'label' => 'Add comments', - 'actionlabel' => 'Add comments', + 'label' => emt('Add comments'), + 'actionlabel' => emt('Add comments'), 'color' => '#333399', 'width' => 763, - }) - %> ) + } + &> ) % }
+ ( <% 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); +% $ratio = 255 if $ratio > 255; # because rollover +% my $color = sprintf('STYLE="font-weight: bold; color: #%02x%02x00"', 255 - $ratio, $ratio); +% my $trstyle = ''; +% $trstyle = ' CLASS="shared"' if $part->shared; + > + + + + +% if ( $part->shared ) { + +% } + +% } +
<% mt('Included usage') %>
<% $part->description %>: ALIGN="right"><% $usage->minutes %>> / ><% $part->minutes %>(shared)
+% }