cache foo
[freeside.git] / httemplate / search / cust_main.cgi
index 5defaf4..d8cd0a0 100755 (executable)
@@ -1,5 +1,5 @@
 <%
-#<!-- $Id: cust_main.cgi,v 1.4 2001-08-28 16:58:08 ivan Exp $ -->
+#<!-- $Id: cust_main.cgi,v 1.11 2001-10-26 10:24:56 ivan Exp $ -->
 
 use strict;
 #use vars qw( $conf %ncancelled_pkgs %all_pkgs $cgi @cust_main $sortby );
@@ -19,8 +19,8 @@ cgisuidsetup($cgi);
 
 $conf = new FS::Conf;
 
-if ( $cgi->keywords ) {
-  my($query)=$cgi->keywords;
+if ( $cgi->param('browse') ) {
+  my $query = $cgi->param('browse');
   if ( $query eq 'custnum' ) {
     $sortby=\*custnum_sort;
     @cust_main=qsearch('cust_main',{});  
@@ -31,7 +31,7 @@ if ( $cgi->keywords ) {
     $sortby=\*company_sort;
     @cust_main=qsearch('cust_main',{});
   } else {
-    die "unknown query string $query";
+    die "unknown browse field $query";
   }
 } else {
   @cust_main=();
@@ -42,7 +42,9 @@ if ( $cgi->keywords ) {
 }
 
 @cust_main = grep { $_->ncancelled_pkgs || ! $_->all_pkgs } @cust_main
-  if $conf->exists('hidecancelledcustomers');
+  if $cgi->param('showcancelledcustomers') eq '0' #see if it was set by me
+     || ( $conf->exists('hidecancelledcustomers')
+           && ! $cgi->param('showcancelledcustomers') );
 if ( $conf->exists('hidecancelledpackages' ) ) {
   %all_pkgs = map { $_->custnum => [ $_->ncancelled_pkgs ] } @cust_main;
 } else {
@@ -57,9 +59,20 @@ if ( scalar(@cust_main) == 1 && ! $cgi->param('referral_custnum') ) {
 } else { 
 
   my($total)=scalar(@cust_main);
-  print $cgi->header( '-expires' => 'now' ), header("Customer Search Results",menubar(
+  print $cgi->header( @FS::CGI::header ), header("Customer Search Results",menubar(
     'Main Menu', popurl(2)
-  )), "$total matching customers found";
+  )), "$total matching customers found ";
+  if ( $cgi->param('showcancelledcustomers') eq '0' #see if it was set by me
+       || ( $conf->exists('hidecancelledcustomers')
+            && ! $cgi->param('showcancelledcustomers')
+          )
+     ) {
+    $cgi->param('showcancelledcustomers', 1);
+    print qq!( <a href="!. $cgi->self_url. qq!">show cancelled customers</a> )!;
+  } else {
+    $cgi->param('showcancelledcustomers', 0);
+    print qq!( <a href="!. $cgi->self_url. qq!">hide cancelled customers</a> )!;
+  }
   if ( $cgi->param('referral_custnum') ) {
     $cgi->param('referral_custnum') =~ /^(\d+)$/
       or eidiot "Illegal referral_custnum\n";
@@ -253,13 +266,12 @@ sub lastsearch {
 
   } else {
 
-    my(%last);
+    &FS::cust_main::check_and_rebuild_fuzzyfiles;
+    my $all_last = &FS::cust_main::all_last;
 
-    my(@all_last)=map $_->getfield('last'), qsearch('cust_main',{});
-    push @all_last, grep $_, map $_->getfield('ship_last'), qsearch('cust_main',{})
-      if defined dbdef->table('cust_main')->column('ship_last');
+    my %last;
     if ($last_type{'Fuzzy'}) { 
-      foreach ( amatch($last, [ qw(i) ], @all_last) ) {
+      foreach ( amatch($last, [ qw(i) ], @$all_last) ) {
         $last{$_}++; 
       }
     }
@@ -300,13 +312,12 @@ sub companysearch {
 
   } else {
 
-    my(%company);
-    my(@all_company)=map $_->company, qsearch('cust_main',{});
-    push @all_company, grep $_, map $_->getfield('ship_company'), qsearch('cust_main',{})
-      if defined dbdef->table('cust_main')->column('ship_last');
+    &FS::cust_main::check_and_rebuild_fuzzyfiles;
+    my $all_company = &FS::cust_main::all_company;
 
+    my %company;
     if ($company_type{'Fuzzy'}) { 
-      foreach ( amatch($company, [ qw(i) ], @all_company ) ) {
+      foreach ( amatch($company, [ qw(i) ], @$all_company ) ) {
         $company{$_}++;
       }
     }