X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fview%2Fcust_main%2Fpackages%2Fpackage.html;h=520305a9ad07dfb03f79f3f26c44a8d88602f192;hb=63973c641c4be00765fa27e55c57cc5b9aa4da19;hp=4311d8cf2dd09e4f9c698eb0e053a334700cd8a4;hpb=2b8ffc98529637ffddfe7cbf6b4f9b8deb90f0fa;p=freeside.git diff --git a/httemplate/view/cust_main/packages/package.html b/httemplate/view/cust_main/packages/package.html index 4311d8cf2..520305a9a 100644 --- a/httemplate/view/cust_main/packages/package.html +++ b/httemplate/view/cust_main/packages/package.html @@ -1,56 +1,79 @@ - - + @@ -174,6 +230,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 @@ -184,29 +256,67 @@ sub pkg_link { } sub pkg_change_link { + my $cust_pkg = shift; + my $locationnum = $cust_pkg->locationnum; + include( '/elements/popup_link-cust_pkg.html', + 'action' => $p. "misc/change_pkg.cgi?locationnum=$locationnum", + 'label' => emt('Change package'), + 'actionlabel' => emt('Change'), + 'cust_pkg' => $cust_pkg, + ); +} + +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?dummy=value', - 'label' => 'Change package', - 'actionlabel' => 'Change', - 'cust_pkg' => shift, - ) + '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, + ); } -sub pkg_dates_link { pkg_link('edit/REAL_cust_pkg', 'Edit dates', @_ ); } +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_dates_link { pkg_link('edit/REAL_cust_pkg', emt('Edit dates'), @_ ); } + +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 ''; + my $part_pkg = shift; my $custnum = $cust_pkg->custnum; 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 ) { -% } +% } @@ -58,38 +81,38 @@ % 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; +% my @invoice_detail = grep { $_->detailtype eq 'I' } @cust_pkg_detail; +% my @comments = grep { $_->detailtype eq 'C' } @cust_pkg_detail; % -% if ( $cust_pkg->cust_pkg_detail('I') -% || $cust_pkg->cust_pkg_detail('C') -% || $editi -% || $editc ) { +% 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 ( $cust_pkg->cust_pkg_detail('I') ) { +% if ( @invoice_detail ) { -% foreach my $cust_pkg_detail ( $cust_pkg->cust_pkg_detail('I') ) { +% foreach my $cust_pkg_detail ( @invoice_detail ) { @@ -102,8 +125,8 @@ ( <% 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, }) @@ -113,27 +136,27 @@ % } -% if ( $cust_pkg->cust_pkg_detail('C') ) { +% if ( @comments ) { -% foreach my $cust_pkg_detail ( $cust_pkg->cust_pkg_detail('C') ) { +% foreach my $cust_pkg_detail ( @comments ) { @@ -144,23 +167,56 @@ % } +% 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') ) { + +% } + +% } % } -
<% $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') ) { % -% 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 "Edit dates", "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 +% 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('Edit customer package dates') ) { +% $br=1; + ( <%pkg_dates_link($cust_pkg)%> ) +% } % -% if ( $curuser->access_right('Customize customer package') ) { -% $br=1; - ( <%pkg_customize_link($cust_pkg,$cust_pkg->custnum)%> ) -% } +% 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)%> ) +% } % - <% $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 + <% mt('Invoice details') |h %> % if ( $editi && ! $cust_pkg->get('cancel') ) { - (<% include('/elements/popup_link.html', { + (<& /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, - }) - %>) + } + &>) % }
 - <% $cust_pkg_detail->detail |h %>
- <% include('/elements/table-grid.html') %> + <& /elements/table-grid.html &>
- Comments + <% mt('Comments') |h %> % if ( $editc ) { - (<% include('/elements/popup_link.html', { + (<& /elements/popup_link.html, { 'action' => $editlink. 'C', - 'label' => 'edit', - 'actionlabel' => 'Edit comments', + 'label' => emt('edit'), + 'actionlabel' => emt('Edit comments'), 'color' => '#333399', 'width' => 763, - }) - %>) + } + &>) % }
 - <% $cust_pkg_detail->detail |h %>
% if ( $editc ) { - ( <% 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)
+% }