Missing comma.
[freeside.git] / httemplate / search / cust_main.cgi
index 1bd5fb6..5b39a09 100755 (executable)
@@ -82,22 +82,22 @@ if ( $cgi->param('browse')
 
   if ( driver_name eq 'mysql' ) {
 
-       my $query = "CREATE TEMPORARY TABLE temp1_$$ TYPE=MYISAM
-                      SELECT cust_pkg.custnum,COUNT(*) as count
-                        FROM cust_pkg,cust_main
-                          WHERE cust_pkg.custnum = cust_main.custnum
-                                AND ( cust_pkg.cancel IS NULL
-                                      OR cust_pkg.cancel = 0 )
-                          GROUP BY cust_pkg.custnum";
-       my $sth = dbh->prepare($query) or die dbh->errstr. " preparing $query";
-       $sth->execute or die "Error executing \"$query\": ". $sth->errstr;
-       $query = "CREATE TEMPORARY TABLE temp2_$$ TYPE=MYISAM
-                   SELECT cust_pkg.custnum,COUNT(*) as count
-                     FROM cust_pkg,cust_main
-                       WHERE cust_pkg.custnum = cust_main.custnum
-                       GROUP BY cust_pkg.custnum";
-       my $sth = dbh->prepare($query) or die dbh->errstr. " preparing $query";
-       $sth->execute or die "Error executing \"$query\": ". $sth->errstr;
+       my $sql = "CREATE TEMPORARY TABLE temp1_$$ TYPE=MYISAM
+                    SELECT cust_pkg.custnum,COUNT(*) as count
+                      FROM cust_pkg,cust_main
+                        WHERE cust_pkg.custnum = cust_main.custnum
+                              AND ( cust_pkg.cancel IS NULL
+                                    OR cust_pkg.cancel = 0 )
+                        GROUP BY cust_pkg.custnum";
+       my $sth = dbh->prepare($sql) or die dbh->errstr. " preparing $sql";
+       $sth->execute or die "Error executing \"$sql\": ". $sth->errstr;
+       $sql = "CREATE TEMPORARY TABLE temp2_$$ TYPE=MYISAM
+                 SELECT cust_pkg.custnum,COUNT(*) as count
+                   FROM cust_pkg,cust_main
+                     WHERE cust_pkg.custnum = cust_main.custnum
+                     GROUP BY cust_pkg.custnum";
+       $sth = dbh->prepare($sql) or die dbh->errstr. " preparing $sql";
+       $sth->execute or die "Error executing \"$sql\": ". $sth->errstr;
   }
 
   if (  $cgi->param('showcancelledcustomers') eq '0' #see if it was set by me
@@ -167,9 +167,9 @@ if ( $cgi->param('browse')
                               "$ncancelled $orderby $limit" );
   }
   if ( driver_name eq 'mysql' ) {
-    $query = "DROP TABLE temp1_$$,temp2_$$;";
-    my $sth = dbh->prepare($query) or die dbh->errstr. " preparing $query";
-    $sth->execute or die "Error executing \"$query\": ". $sth->errstr;
+    my $sql = "DROP TABLE temp1_$$,temp2_$$;";
+    my $sth = dbh->prepare($sql) or die dbh->errstr. " preparing $sql";
+    $sth->execute or die "Error executing \"$sql\": ". $sth->errstr;
   }
   @cust_main = @just_cust_main;
 
@@ -200,6 +200,8 @@ if ( $cgi->param('browse')
     if $cgi->param('last_on') && $cgi->param('last_text');
   push @cust_main, @{&companysearch}
     if $cgi->param('company_on') && $cgi->param('company_text');
+  push @cust_main, @{&address2search}
+    if $cgi->param('address2_on') && $cgi->param('address2_text');
   push @cust_main, @{&phonesearch}
     if $cgi->param('phone_on') && $cgi->param('phone_text');
   push @cust_main, @{&referralsearch}
@@ -455,7 +457,7 @@ sub custnumsearch {
   my $custnum = $cgi->param('custnum_text');
   $custnum =~ s/\D//g;
   $custnum =~ /^(\d{1,23})$/ or eidiot "Illegal customer number\n";
-  my $custnum = $1;
+  $custnum = $1;
   
   [ qsearchs('cust_main', { 'custnum' => $custnum } ) ];
 }
@@ -467,7 +469,9 @@ sub cardsearch {
   $card =~ /^(\d{13,16})$/ or eidiot "Illegal card number\n";
   my($payinfo)=$1;
 
-  [ qsearch('cust_main',{'payinfo'=>$payinfo, 'payby'=>'CARD'}) ];
+  [ qsearch('cust_main',{'payinfo'=>$payinfo, 'payby'=>'CARD'}),
+    qsearch('cust_main',{'payinfo'=>$payinfo, 'payby'=>'DCRD'})
+  ];
 }
 
 sub referralsearch {
@@ -555,9 +559,10 @@ sub companysearch {
     $company_type{$_}++ 
   };
 
-  $cgi->param('company_text') =~ /^([\w \,\.\-\']*)$/
-    or eidiot "Illegal company";
-  my($company)=$1;
+  $cgi->param('company_text') =~
+    /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=]*)$/
+      or eidiot "Illegal company";
+  my $company = $1;
 
   if ( $company_type{'Exact'} || $company_type{'Fuzzy'} ) {
     push @cust_main, qsearch( 'cust_main',
@@ -609,17 +614,43 @@ sub companysearch {
   \@cust_main;
 }
 
+sub address2search {
+  my @cust_main;
+
+  $cgi->param('address2_text') =~
+    /^([\w \!\@\#\$\%\&\(\)\-\+\;\:\'\"\,\.\?\/\=]*)$/
+      or eidiot "Illegal address2";
+  my $address2 = $1;
+
+  push @cust_main, qsearch( 'cust_main',
+                            { 'address2' => { 'op'    => 'ILIKE',
+                                              'value' => $address2 } } );
+  push @cust_main, qsearch( 'cust_main',
+                            { 'address2' => { 'op'    => 'ILIKE',
+                                              'value' => $address2 } } )
+    if defined dbdef->table('cust_main')->column('ship_last');
+
+  \@cust_main;
+}
+
 sub phonesearch {
   my @cust_main;
 
   my $phone = $cgi->param('phone_text');
 
-  #false laziness with Record::ut_phonen, only works with US/CA numbers...
+  #(no longer really) false laziness with Record::ut_phonen
+  #only works with US/CA numbers...
   $phone =~ s/\D//g;
-  $phone =~ /^(\d{3})(\d{3})(\d{4})(\d*)$/
-    or eidiot gettext('illegal_phone'). ": $phone";
-  $phone = "$1-$2-$3";
-  $phone .= " x$4" if $4;
+  if ( $phone =~ /^(\d{3})(\d{3})(\d{4})(\d*)$/ ) {
+    $phone = "$1-$2-$3";
+    $phone .= " x$4" if $4;
+  } elsif ( $phone =~ /^(\d{3})(\d{4})$/ ) {
+    $phone = "$1-$2";
+  } elsif ( $phone =~ /^(\d{3,4})$/ ) {
+    $phone = $1;
+  } else {
+    eidiot gettext('illegal_phone'). ": $phone";
+  }
 
   my @fields = qw(daytime night fax);
   push @fields, qw(ship_daytime ship_night ship_fax)
@@ -628,7 +659,7 @@ sub phonesearch {
   for my $field ( @fields ) {
     push @cust_main, qsearch ( 'cust_main', 
                                { $field => { 'op'    => 'LIKE',
-                                             'value' => "$phone%" } } );
+                                             'value' => "%$phone%" } } );
   }
 
   \@cust_main;