#!/usr/bin/perl -Tw
#
-# svc_acct.cgi: Search for customers (process form)
+# $Id: svc_acct.cgi,v 1.11 1999-04-14 11:25:33 ivan Exp $
#
# Usage: post form to:
# http://server.name/path/svc_acct.cgi
# use FS::CGI, show total ivan@sisd.com 98-jul-17
#
# give service and customer info too ivan@sisd.com 98-aug-16
+#
+# $Log: svc_acct.cgi,v $
+# Revision 1.11 1999-04-14 11:25:33 ivan
+# *** empty log message ***
+#
+# Revision 1.10 1999/04/14 11:20:21 ivan
+# visual fix
+#
+# Revision 1.9 1999/04/10 01:53:18 ivan
+# oops, search usernames limited to 8 chars
+#
+# Revision 1.8 1999/04/09 23:43:29 ivan
+# just in case
+#
+# Revision 1.7 1999/02/07 09:59:38 ivan
+# more mod_perl fixes, and bugfixes Peter Wemm sent via email
+#
+# Revision 1.6 1999/01/19 05:14:14 ivan
+# for mod_perl: no more top-level my() variables; use vars instead
+# also the last s/create/new/;
+#
+# Revision 1.5 1999/01/18 09:41:39 ivan
+# all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl
+# (good idea anyway)
+#
+# Revision 1.4 1999/01/18 09:22:34 ivan
+# changes to track email addresses for email invoicing
+#
+# Revision 1.3 1998/12/23 03:06:28 ivan
+# $cgi->keywords instead of $cgi->query_string
+#
+# Revision 1.2 1998/12/17 09:41:10 ivan
+# s/CGI::(Base|Request)/CGI.pm/;
+#
use strict;
-use CGI::Request; # form processing module
+use vars qw( $cgi @svc_acct $sortby $query );
+use CGI;
use CGI::Carp qw(fatalsToBrowser);
use FS::UID qw(cgisuidsetup);
use FS::Record qw(qsearch qsearchs);
-use FS::CGI qw(header idiot);
-
-my($req)=new CGI::Request; # create form object
-&cgisuidsetup($req->cgi);
+use FS::CGI qw(header eidiot popurl table);
+use FS::svc_acct;
+use FS::cust_main;
-my(@svc_acct,$sortby);
+$cgi = new CGI;
+&cgisuidsetup($cgi);
-my($query)=$req->cgi->var('QUERY_STRING');
+($query)=$cgi->keywords;
+$query ||= ''; #to avoid use of unitialized value errors
#this tree is a little bit redundant
if ( $query eq 'svcnum' ) {
$sortby=\*svcnum_sort;
'pkgnum' => '',
}), qsearch('svc_acct',{});
} else {
+ $sortby=\*uid_sort;
&usernamesearch;
}
if ( scalar(@svc_acct) == 1 ) {
my($svcnum)=$svc_acct[0]->svcnum;
- $req->cgi->redirect("../view/svc_acct.cgi?$svcnum"); #redirect
+ print $cgi->redirect(popurl(2). "view/svc_acct.cgi?$svcnum"); #redirect
exit;
} elsif ( scalar(@svc_acct) == 0 ) { #error
- idiot("Account not found");
- exit;
+ eidiot("Account not found");
} else {
my($total)=scalar(@svc_acct);
- CGI::Base::SendHeaders(); # one guess
- print header("Account Search Results",''), <<END;
- $total matching accounts found
- <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
+ print $cgi->header( '-expires' => 'now' ),
+ header("Account Search Results",''),
+ "$total matching accounts found",
+ &table(), <<END;
<TR>
- <TH>Service #</TH>
- <TH>Username</TH>
- <TH>UID</TH>
- <TH>Service</TH>
- <TH>Customer #</TH>
- <TH>Contact name</TH>
- <TH>Company</TH>
+ <TH><FONT SIZE=-1>Service #</FONT></TH>
+ <TH><FONT SIZE=-1>Username</FONT></TH>
+ <TH><FONT SIZE=-1>UID</FONT></TH>
+ <TH><FONT SIZE=-1>Service</FONT></TH>
+ <TH><FONT SIZE=-1>Customer #</FONT></TH>
+ <TH><FONT SIZE=-1>Contact name</FONT></TH>
+ <TH><FONT SIZE=-1>Company</FONT></TH>
</TR>
END
- my($lines)=16;
- my($lcount)=$lines;
my(%saw,$svc_acct);
+ my $p = popurl(2);
foreach $svc_acct (
sort $sortby grep(!$saw{$_->svcnum}++, @svc_acct)
) {
$cust_svc->pkgnum ? $cust_main->company : '',
);
my($pcustnum) = $custnum
- ? "<A HREF=\"../view/cust_main.cgi?$custnum\"><FONT SIZE=-1>$custnum</FONT></A>"
+ ? "<A HREF=\"${p}view/cust_main.cgi?$custnum\"><FONT SIZE=-1>$custnum</FONT></A>"
: "<I>(unlinked)</I>"
;
- my($pname) = $custnum ? "$last, $first" : '';
+ my($pname) = $custnum ? "<A HREF=\"${p}view/cust_main.cgi?$custnum\">$last, $first</A>" : '';
+ my $pcompany = $custnum ? "<A HREF=\"${p}view/cust_main.cgi?$custnum\">$company</A>" : '';
print <<END;
<TR>
- <TD><A HREF="../view/svc_acct.cgi?$svcnum"><FONT SIZE=-1>$svcnum</FONT></A></TD>
- <TD><FONT SIZE=-1>$username</FONT></TD>
- <TD><FONT SIZE=-1>$uid</FONT></TD>
+ <TD><A HREF="${p}view/svc_acct.cgi?$svcnum"><FONT SIZE=-1>$svcnum</FONT></A></TD>
+ <TD><A HREF="${p}view/svc_acct.cgi?$svcnum"><FONT SIZE=-1>$username</FONT></A></TD>
+ <TD><A HREF="${p}view/svc_acct.cgi?$svcnum"><FONT SIZE=-1>$uid</FONT></A></TD>
<TD><FONT SIZE=-1>$svc</FONT></TH>
<TD><FONT SIZE=-1>$pcustnum</FONT></TH>
<TD><FONT SIZE=-1>$pname<FONT></TH>
- <TD><FONT SIZE=-1>$company</FONT></TH>
+ <TD><FONT SIZE=-1>$pcompany</FONT></TH>
</TR>
END
- if ($lcount-- == 0) { # lots of little tables instead of one big one
- $lcount=$lines;
- print <<END;
- </TABLE>
- <TABLE BORDER=4 CELLSPACING=0 CELLPADDING=0>
- <TR>
- <TH>Service #</TH>
- <TH>Userame</TH>
- <TH>UID</TH>
- <TH>Service</TH>
- <TH>Customer #</TH>
- <TH>Contact name</TH>
- <TH>Company</TH>
- </TR>
-END
- }
+
}
print <<END;
sub usernamesearch {
- $req->param('username') =~ /^([\w\d\-]{2,8})$/; #untaint username_text
+ $cgi->param('username') =~ /^([\w\d\-]+)$/; #untaint username_text
my($username)=$1;
@svc_acct=qsearch('svc_acct',{'username'=>$username});