cust_location editing features, RT#10766
[freeside.git] / httemplate / view / cust_main / packages.html
index ed98ba9..383c2a7 100755 (executable)
@@ -1,18 +1,13 @@
-<A NAME="cust_pkg"><FONT SIZE="+2">Packages</FONT></A><BR>
-
 % my $s = 0;
+
+% if ( $curuser->access_right('Qualify service') ) { 
+  <% $s++ ? ' | ' : '' %>
+  <% include('qual_link.html', $cust_main) %>
+% }
+
 % if ( $curuser->access_right('Order customer package') ) { 
   <% $s++ ? ' | ' : '' %>
-  <% include( '/elements/popup_link-cust_main.html',
-                'action'      => $p. 'misc/order_pkg.html',
-                'label'       => 'Order&nbsp;new&nbsp;package',
-                'actionlabel' => 'Order new package',
-                'color'       => '#333399',
-                'cust_main'   => $cust_main,
-                'closetext'   => 'Close',
-                'width'       => 763,
-            )
-  %>
+  <% include('order_pkg_link.html', $cust_main) %>
 % } 
 
 % if ( $curuser->access_right('One-time charge')
   <A HREF="<% $p %>edit/cust_pkg.cgi?<% $cust_main->custnum %>">Bulk order and cancel packages</A> (preserves services)
 % } 
 
-
 <BR><BR>
+
+<TABLE>
+  <TR>
+    <TD ALIGN="left">
+
 % if ( @$packages ) {
 
 Current packages
@@ -40,15 +39,14 @@ Current packages
 %             )
 %        )
 %     {
+%       my $prev = $cgi->param('showcancelledpackages');
 %       $cgi->param('showcancelledpackages', 1);
-%
-
   ( <a href="<% $cgi->self_url %>">show
+%       $cgi->param('showcancelledpackages', $prev);
 %   } else {
 %       $cgi->param('showcancelledpackages', 0);
-%
-
   ( <a href="<% $cgi->self_url %>">hide
+%       $cgi->param('showcancelledpackages', 1);
 %   } 
 
  cancelled packages</a> )
@@ -60,56 +58,40 @@ Current packages
 %   $cgi->param('showoldpackages', 0);
     ( <a href="<% $cgi->self_url %>">hide old packages</a> )
 % }
-% if ( @$packages ) { 
 
-<% include('/elements/table-grid.html') %>
-% my $bgcolor1 = '#eeeeee';
-%   my $bgcolor2 = '#ffffff';
-%   my $bgcolor = '';
-
-<TR>
-  <TH CLASS="grid" BGCOLOR="#cccccc">Package</TH>
-  <TH CLASS="grid" BGCOLOR="#cccccc">Status</TH>
-% if ( $show_location ) {
-  <TH CLASS="grid" BGCOLOR="#cccccc">Location</TH>
+    </TD>
+    <TD ALIGN="right">
+      <A HREF="<%$p%>search/report_cust_pkg.html?custnum=<% $cust_main->custnum %>">Package reports</A>
+% if ( $curuser->access_right('Qualify service') ) { 
+    | <A HREF="<%$p%>search/qual.cgi?custnum=<% $cust_main->custnum %>">View Qualifications</A>
 % }
-  <TH CLASS="grid" BGCOLOR="#cccccc">Services</TH>
-</TR>
-
-% #$FS::cust_pkg::DEBUG = 2;
-% foreach my $cust_pkg (@$packages) {
-%
-%   if ( $bgcolor eq $bgcolor1 ) {
-%     $bgcolor = $bgcolor2;
-%   } else {
-%     $bgcolor = $bgcolor1;
-%   }
-%
-%   my %iopt = (
-%     'bgcolor'  => $bgcolor,
-%     'cust_pkg' => $cust_pkg,
-%     'part_pkg' => $cust_pkg->part_pkg,
-%     %conf_opt,
-%   );
-%
-
-    <!--pkgnum: <% $cust_pkg->pkgnum %>-->
-    <TR>
-      <% include('packages/package.html',  %iopt) %>
-      <% include('packages/status.html',   %iopt) %>
-% if ( $show_location ) {
-      <% include('packages/location.html', %iopt) %>
-% }
-      <% include('packages/services.html', %iopt) %>
-    </TR>
-
+      <BR>
+      Service reports:
+        <A HREF="<%$p%>search/report_svc_acct.html?custnum=<% $cust_main->custnum %>">accounts</A><BR>
+      Usage reports:
+        <A HREF="<%$p%>search/report_cdr.html?custnum=<% $cust_main->custnum %>">CDRs</A>
+    </TD>
+  </TR>
+
+  <TR>
+    <TD COLSPAN=2>
+% if ( $conf->exists('cust_pkg-group_by_location') and $show_location ) {
+<% include('locations.html',
+    'cust_main'     => $cust_main,
+    'packages'      => $packages,
+) %>
 % }
-
+% else {
+% # in this format, put all packages in one section
+<% include('/elements/table-grid.html') %>
+<% include('packages/section.html',
+    'packages'      => $packages,
+    'show_location' => $show_location,
+) %>
 </TABLE>
-
-% } else {
-<BR>
-% } 
+% }
+    </TD>
+  </TR>
 
 % if ( $cgi->param('fragment') =~ /^cust_pkg(\d+)$/ ) {
   <SCRIPT>
@@ -120,36 +102,22 @@ Current packages
     if ( el ) el.scrollIntoView(true);
   </SCRIPT>
 % }
-
+</TABLE>
 <%init>
 
-my( $cust_main ) = @_;
+my $cust_main = shift;
+my %opt = @_;
 my $conf = new FS::Conf;
 
 my $curuser = $FS::CurrentUser::CurrentUser;
 
 my( $packages, $num_old_packages ) = get_packages($cust_main, $conf);
 
-my $show_location = $conf->exists('cust_pkg-always_show_location')
-                        || ( grep $_->locationnum, @$packages ); # ? '1' : '0';
 
-my $countrydefault = scalar($conf->config('countrydefault')) || 'US';
-my %conf_opt = (
-  #for services.html and status.html
-  'cust_pkg-display_times'    => $conf->exists('cust_pkg-display_times'),
-
-  #for status.html
-  'cust_pkg-show_autosuspend' => $conf->exists('cust_pkg-show_autosuspend'),
-
-  #for location.html
-  'countrydefault'            => $countrydefault,
-  'statedefault'              => ( scalar($conf->config('statedefault'))
-                                  || ($countrydefault eq 'US' ? 'CA' : '') ),
-  #for services.html
-  'svc_external-skip_manual'  => $conf->exists('svc_external-skip_manual'),
-  'legacy_link'               => $conf->exists('legacy_link'),
-);
+my $show_location = $conf->exists('cust_pkg-always_show_location') 
+                        || (grep $_->locationnum, @$packages); # ? '1' : '0';
 
+my $countrydefault = scalar($conf->config('countrydefault')) || 'US';
 #subroutines
 
 sub get_packages {
@@ -195,8 +163,7 @@ sub get_packages {
 
   unless ( $cgi->param('showoldpackages') ) {
     my $years = $conf->config('cust_main-packages-years') || 2;
-    my $seconds = 31556926; #60*60*24*365.2422 is close enough
-    my $then = time - $seconds;
+    my $then = time - $years * 31556926; #60*60*24*365.2422 is close enough
 
     my %hide = ( 'cancelled'       => 'cancel',
                  'one-time charge' => 'setup',