summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorivan <ivan>2002-03-25 14:59:06 +0000
committerivan <ivan>2002-03-25 14:59:06 +0000
commit4ea362bfa2d2ea984996439e0c32cb4ea6dda7ee (patch)
tree85b15171e4af2324ce5c28a5c62eb0bcaa24990e /httemplate
parent8932bfd9e536bc1e0c075500847e05f51f639a7a (diff)
customers by otaker report (ugly search/cust_main.cgi mods; revert if they
cause problems)
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/index.html4
-rwxr-xr-xhttemplate/search/cust_main-otaker.cgi29
-rwxr-xr-xhttemplate/search/cust_main.cgi63
3 files changed, 81 insertions, 15 deletions
diff --git a/httemplate/index.html b/httemplate/index.html
index 7b2970dc5..4558a3289 100644
--- a/httemplate/index.html
+++ b/httemplate/index.html
@@ -136,6 +136,10 @@
<LI> <A HREF="search/report_cc.html">credit card receipts</A>
<LI> <A HREF="search/report_credit.html">credit memos</A>
</UL>
+ Customers
+ <UL>
+ <LI><A HREF="search/cust_main-otaker.cgi">Search customers by otaker</A>
+ </UL>
<BR>
</TD></TR>
</TABLE>
diff --git a/httemplate/search/cust_main-otaker.cgi b/httemplate/search/cust_main-otaker.cgi
new file mode 100755
index 000000000..b7173c49c
--- /dev/null
+++ b/httemplate/search/cust_main-otaker.cgi
@@ -0,0 +1,29 @@
+<HTML>
+ <HEAD>
+ <TITLE>Customer Search</TITLE>
+ </HEAD>
+ <BODY BGCOLOR="#e8e8e8">
+ <FONT SIZE=7>
+ Customer Search
+ </FONT>
+ <BR>
+ <FORM ACTION="cust_main.cgi" METHOD="post">
+ Search for <B>Order taker</B>:
+ <INPUT TYPE="hidden" NAME="otaker_on" VALUE="TRUE">
+ <% my $dbh = dbh;
+ my $sth = dbh->prepare("SELECT DISTINCT otaker FROM cust_main")
+ or eidiot $dbh->errstr;
+ $sth->execute() or eidiot $sth->errstr;
+# my @otakers = map { $_->[0] } @{$sth->selectall_arrayref};
+ %>
+ <SELECT NAME="otaker">
+ <% my $otaker; while ( $otaker = $sth->fetchrow_arrayref ) { %>
+ <OPTION><%= $otaker->[0] %></OTAKER>
+ <% } %>
+ </SELECT>
+ <P><INPUT TYPE="submit" VALUE="Search">
+
+ </FORM>
+ </BODY>
+</HTML>
+
diff --git a/httemplate/search/cust_main.cgi b/httemplate/search/cust_main.cgi
index f153f02d4..799569898 100755
--- a/httemplate/search/cust_main.cgi
+++ b/httemplate/search/cust_main.cgi
@@ -48,19 +48,34 @@ $limit .= " OFFSET $offset" if $offset;
my $total = 0;
my(@cust_main, $sortby, $orderby);
-if ( $cgi->param('browse') ) {
- my $query = $cgi->param('browse');
- if ( $query eq 'custnum' ) {
- $sortby=\*custnum_sort;
- $orderby = 'ORDER BY custnum';
- } elsif ( $query eq 'last' ) {
- $sortby=\*last_sort;
- $orderby = 'ORDER BY last';
- } elsif ( $query eq 'company' ) {
- $sortby=\*company_sort;
- $orderby = 'ORDER BY company';
+if ( $cgi->param('browse')
+ || $cgi->param('otaker_on')
+) {
+
+ my %search = ();
+ if ( $cgi->param('browse') ) {
+ my $query = $cgi->param('browse');
+ if ( $query eq 'custnum' ) {
+ $sortby=\*custnum_sort;
+ $orderby = 'ORDER BY custnum';
+ } elsif ( $query eq 'last' ) {
+ $sortby=\*last_sort;
+ $orderby = 'ORDER BY last';
+ } elsif ( $query eq 'company' ) {
+ $sortby=\*company_sort;
+ $orderby = 'ORDER BY company';
+ } else {
+ die "unknown browse field $query";
+ }
} else {
- die "unknown browse field $query";
+ $sortby = \*last_sort; #??
+ $orderby = 'ORDER BY last'; #??
+ if ( $cgi->param('otaker_on') ) {
+ $cgi->param('otaker') =~ /^(\w{1,32})$/ or eidiot "Illegal otaker\n";
+ $search{otaker} = $1;
+ } else {
+ die "unknown query...";
+ }
}
my $ncancelled = '';
@@ -72,7 +87,7 @@ if ( $cgi->param('browse') ) {
#grep { $_->ncancelled_pkgs || ! $_->all_pkgs }
#needed for MySQL??? OR cust_pkg.cancel = \"\"
$ncancelled = "
- WHERE 0 < ( SELECT COUNT(*) FROM cust_pkg
+ 0 < ( SELECT COUNT(*) FROM cust_pkg
WHERE cust_pkg.custnum = cust_main.custnum
AND ( cust_pkg.cancel IS NULL
OR cust_pkg.cancel = 0
@@ -84,14 +99,32 @@ if ( $cgi->param('browse') ) {
";
}
- my $statement = "SELECT COUNT(*) FROM cust_main $ncancelled";
+ #EWWWWWW
+ my $qual = join(' AND ',
+ map { "$_ = ". dbh->quote($search{$_}) } keys %search );
+
+ if ( $ncancelled ) {
+ $qual .= ' AND ' if $qual;
+ $qual .= $ncancelled;
+ }
+
+ $qual = " WHERE $qual" if $qual;
+
+ my $statement = "SELECT COUNT(*) FROM cust_main $qual";
my $sth = dbh->prepare($statement)
or die dbh->errstr. " doing $statement";
$sth->execute or die "Error executing \"$statement\": ". $sth->errstr;
$total = $sth->fetchrow_arrayref->[0];
- my @just_cust_main = qsearch('cust_main',{}, '',
+ if ( $ncancelled ) {
+ if ( %search ) {
+ $ncancelled = " AND $ncancelled";
+ } else {
+ $ncancelled = " WHERE $ncancelled";
+ }
+ }
+ my @just_cust_main = qsearch('cust_main', \%search, '',
"$ncancelled $orderby $limit"
);