this should process default usergroup as well as fixed now
[freeside.git] / FS / FS / cust_main.pm
index cbcf6cc..f4568a8 100644 (file)
@@ -3670,18 +3670,17 @@ Returns a hex triplet color string for this customer's status.
 
 =cut
 
+use vars qw(%statuscolor);
+%statuscolor = (
+  'prospect'  => '7e0079', #'000000', #black?  naw, purple
+  'active'    => '00CC00', #green
+  'inactive'  => '0000CC', #blue
+  'suspended' => 'FF9900', #yellow
+  'cancelled' => 'FF0000', #red
+);
 
 sub statuscolor {
   my $self = shift;
-
-  my %statuscolor = (
-    'prospect'  => '7e0079', #'000000', #black?  naw, purple
-    'active'    => '00CC00', #green
-    'inactive'  => '0000CC', #blue
-    'suspended' => 'FF9900', #yellow
-    'cancelled' => 'FF0000', #red
-  );
-
   $statuscolor{$self->status};
 }
 
@@ -3703,6 +3702,10 @@ $select_count_pkgs =
   "SELECT COUNT(*) FROM cust_pkg
     WHERE cust_pkg.custnum = cust_main.custnum";
 
+sub select_count_pkgs_sql {
+  $select_count_pkgs;
+}
+
 sub prospect_sql { "
   0 = ( $select_count_pkgs )
 "; }
@@ -3863,6 +3866,11 @@ sub smart_search {
   } elsif ( $search =~ /^\s*(\S.*\S)\s*$/ ) { #value search
 
     my $value = lc($1);
+
+    # remove "(Last, First)" in "Company (Last, First"), otherwise the
+    # full strings the browser remembers won't work
+    $value =~ s/\([\w \,\.\-\']*\)$//; #false laziness w/Record::ut_name
+    
     my $q_value = dbh->quote($value);
 
     #exact
@@ -3935,6 +3943,10 @@ sub smart_search {
 
     }
 
+    #eliminate duplicates
+    my %saw = ();
+    @cust_main = grep { !$saw{$_->custnum}++ } @cust_main;
+
   }
 
   @cust_main;