summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/misc/email-customers.html2
-rwxr-xr-xhttemplate/misc/process/bulk_change_pkg.cgi2
-rw-r--r--httemplate/misc/process/email-customers.html2
-rwxr-xr-xhttemplate/search/477.html2
-rwxr-xr-xhttemplate/search/cust_bill.html2
-rw-r--r--httemplate/search/cust_bill_event.cgi2
-rw-r--r--httemplate/search/cust_event.html2
-rwxr-xr-xhttemplate/search/cust_main.html2
-rwxr-xr-xhttemplate/search/cust_pkg.cgi2
-rwxr-xr-xhttemplate/search/report_svc_acct.html23
-rwxr-xr-xhttemplate/search/svc_acct.cgi75
-rwxr-xr-xhttemplate/view/cust_main/packages.html4
12 files changed, 46 insertions, 74 deletions
diff --git a/httemplate/misc/email-customers.html b/httemplate/misc/email-customers.html
index 46bf3b4fe..4e4c15f2a 100644
--- a/httemplate/misc/email-customers.html
+++ b/httemplate/misc/email-customers.html
@@ -132,7 +132,7 @@ my $title = 'Bulk send customer notices';
my $num_cust;
if ( $cgi->param('magic') eq 'preview' ) {
- my $sql_query = FS::cust_main->search_sql(\%search);
+ my $sql_query = FS::cust_main->search(\%search);
my $count_query = delete($sql_query->{'count_query'});
my $count_sth = dbh->prepare($count_query)
or die "Error preparing $count_query: ". dbh->errstr;
diff --git a/httemplate/misc/process/bulk_change_pkg.cgi b/httemplate/misc/process/bulk_change_pkg.cgi
index d2ab4bf49..e22dafef0 100755
--- a/httemplate/misc/process/bulk_change_pkg.cgi
+++ b/httemplate/misc/process/bulk_change_pkg.cgi
@@ -41,7 +41,7 @@ foreach my $field (qw( setup last_bill bill adjourn susp expire cancel )) {
}
-my $sql_query = FS::cust_pkg->search_sql(\%search_hash);
+my $sql_query = FS::cust_pkg->search(\%search_hash);
$sql_query->{'select'} = 'cust_pkg.pkgnum';
my $error = FS::cust_pkg::bulk_change( [ $cgi->param('new_pkgpart') ],
diff --git a/httemplate/misc/process/email-customers.html b/httemplate/misc/process/email-customers.html
index d254cfecb..c54bc6dca 100644
--- a/httemplate/misc/process/email-customers.html
+++ b/httemplate/misc/process/email-customers.html
@@ -4,6 +4,6 @@
die "access denied"
unless $FS::CurrentUser::CurrentUser->access_right('Bulk send customer notices');
-my $server = new FS::UI::Web::JSRPC 'FS::cust_main::process_email_search_sql', $cgi;
+my $server = new FS::UI::Web::JSRPC 'FS::cust_main::process_email_search_result', $cgi;
</%init>
diff --git a/httemplate/search/477.html b/httemplate/search/477.html
index b48516137..0f1502f2a 100755
--- a/httemplate/search/477.html
+++ b/httemplate/search/477.html
@@ -106,7 +106,7 @@ foreach my $row ( sort keys %row_option_name ) {
if $column_option_name{$column};
my $report_option = join(',', @report_option) if @report_option;
- my $sql_query = FS::cust_pkg->search_sql(
+ my $sql_query = FS::cust_pkg->search(
{ %search_hash,
($report_option ? ( 'report_option' => $report_option ) : () ),
}
diff --git a/httemplate/search/cust_bill.html b/httemplate/search/cust_bill.html
index 4ca3e2f78..c1f5517af 100755
--- a/httemplate/search/cust_bill.html
+++ b/httemplate/search/cust_bill.html
@@ -121,7 +121,7 @@ if ( $cgi->param('invnum') =~ /^\s*(FS-)?(\d+)\s*$/ ) {
$count_query = "SELECT COUNT(DISTINCT cust_bill.custnum), 'N/A', 'N/A'";
}
- my $extra_sql = ' WHERE '. FS::cust_bill->search_sql( \%search );
+ my $extra_sql = ' WHERE '. FS::cust_bill->search_sql_where( \%search );
unless ( $count_query ) {
$count_query = 'SELECT COUNT(*), '. join(', ',
diff --git a/httemplate/search/cust_bill_event.cgi b/httemplate/search/cust_bill_event.cgi
index ff4168d6d..16c9acdc7 100644
--- a/httemplate/search/cust_bill_event.cgi
+++ b/httemplate/search/cust_bill_event.cgi
@@ -96,7 +96,7 @@ if ( $cgi->param('invnum') =~ /^(\d+)$/ ) {
$search{invnum} = $1;
}
-my $where = 'WHERE '. FS::cust_bill_event->search_sql( \%search );
+my $where = 'WHERE '. FS::cust_bill_event->search_sql_where( \%search );
my $join = 'LEFT JOIN part_bill_event USING ( eventpart ) '.
'LEFT JOIN cust_bill USING ( invnum ) '.
diff --git a/httemplate/search/cust_event.html b/httemplate/search/cust_event.html
index b22644efe..a0429e44f 100644
--- a/httemplate/search/cust_event.html
+++ b/httemplate/search/cust_event.html
@@ -173,7 +173,7 @@ my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
$search{'beginning'} = $beginning;
$search{'ending'} = $ending;
-my $where = ' WHERE '. FS::cust_event->search_sql( \%search );
+my $where = ' WHERE '. FS::cust_event->search_sql_where( \%search );
my $join = FS::cust_event->join_sql();
diff --git a/httemplate/search/cust_main.html b/httemplate/search/cust_main.html
index 19eb1318d..829117b54 100755
--- a/httemplate/search/cust_main.html
+++ b/httemplate/search/cust_main.html
@@ -85,7 +85,7 @@ $search_hash{'current_balance'} =
# etc
###
-my $sql_query = FS::cust_main->search_sql(\%search_hash);
+my $sql_query = FS::cust_main->search(\%search_hash);
my $count_query = delete($sql_query->{'count_query'});
my @extra_headers = @{ delete($sql_query->{'extra_headers'}) };
my @extra_fields = @{ delete($sql_query->{'extra_fields'}) };
diff --git a/httemplate/search/cust_pkg.cgi b/httemplate/search/cust_pkg.cgi
index 37e8d6c5f..ff8ee5742 100755
--- a/httemplate/search/cust_pkg.cgi
+++ b/httemplate/search/cust_pkg.cgi
@@ -204,7 +204,7 @@ foreach my $field (qw( setup last_bill bill adjourn susp expire cancel )) {
}
-my $sql_query = FS::cust_pkg->search_sql(\%search_hash);
+my $sql_query = FS::cust_pkg->search(\%search_hash);
my $count_query = delete($sql_query->{'count_query'});
my $show = $curuser->default_customer_view =~ /^(jumbo|packages)$/
diff --git a/httemplate/search/report_svc_acct.html b/httemplate/search/report_svc_acct.html
index 59fd1f8b3..ee913c4f9 100755
--- a/httemplate/search/report_svc_acct.html
+++ b/httemplate/search/report_svc_acct.html
@@ -1,7 +1,8 @@
-<% include('/elements/header.html', 'Account Report' ) %>
+<% include('/elements/header.html', $title ) %>
<FORM ACTION="svc_acct.cgi" METHOD="GET">
<INPUT TYPE="hidden" NAME="magic" VALUE="advanced">
+<INPUT TYPE="hidden" NAME="custnum" VALUE="<% $custnum %>">
<TABLE BGCOLOR="#cccccc" CELLSPACING=0>
@@ -9,19 +10,21 @@
<TH BGCOLOR="#e8e8e8" COLSPAN=2 ALIGN="left"><FONT SIZE="+1">Search options</FONT></TH>
</TR>
+% unless ( $custnum ) {
<% include( '/elements/tr-select-agent.html',
'curr_value' => scalar( $cgi->param('agentnum') ),
'disable_empty' => 0,
)
%>
+% # just this customer's domains?
<% include( '/elements/tr-select-domain.html',
'element_name' => 'domsvc',
'curr_value' => scalar( $cgi->param('domsvc') ),
'disable_empty' => 0,
)
%>
-
+% }
<SCRIPT type="text/javascript">
function toggle(what) {
@@ -92,7 +95,21 @@
<%init>
die "access denied"
- unless $FS::CurrentUser::CurrentUser->access_right('List packages');
+ unless $FS::CurrentUser::CurrentUser->access_right('List packages'); #?
+
+my $title = 'Account Report';
+
+#false laziness w/report_cust_pkg.html
+my $custnum = '';
+if ( $cgi->param('custnum') =~ /^(\d+)$/ ) {
+ $custnum = $1;
+ my $cust_main = qsearchs({
+ 'table' => 'cust_main',
+ 'hashref' => { 'custnum' => $custnum },
+ 'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
+ }) or die "unknown custnum $custnum";
+ $title .= ': '. $cust_main->name;
+}
</%init>
<%once>
diff --git a/httemplate/search/svc_acct.cgi b/httemplate/search/svc_acct.cgi
index 7ddb3f000..e2abf5625 100755
--- a/httemplate/search/svc_acct.cgi
+++ b/httemplate/search/svc_acct.cgi
@@ -64,6 +64,7 @@ my $link_cust = sub {
}
};
+my %search_hash = ();
my @extra_sql = ();
my @header = ( '#', 'Service', 'Account', 'UID', 'Last Login' );
@@ -73,19 +74,8 @@ my $align = 'rlllr';
my @color = ( '', '', '', '', '' );
my @style = ( '', '', '', '', '' );
-if ( $cgi->param('domain') ) {
- my $svc_domain =
- qsearchs('svc_domain', { 'domain' => $cgi->param('domain') } );
- unless ( $svc_domain ) {
- #it would be nice if this looked more like the other "not found"
- #errors, but this will do for now.
- errorpage("Domain ". $cgi->param('domain'). " not found at all");
- } else {
- push @extra_sql, 'domsvc = '. $svc_domain->svcnum;
- }
-}
-if ( $cgi->param('domsvc') =~ /^(\d+)$/ ) {
- push @extra_sql, "domsvc = $1";
+for (qw( domain domsvc agentnum custnum popnum svcpart cust_fields )) {
+ $search_hash{$_} = $cgi->param($_) if length($cgi->param($_));
}
my $timepermonth = '';
@@ -93,7 +83,7 @@ my $timepermonth = '';
my $orderby = 'ORDER BY svcnum';
if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
- push @extra_sql, 'pkgnum IS NULL'
+ $search_hash{'unlinked'} = 1
if $cgi->param('magic') eq 'unlinked';
my $sortby = '';
@@ -101,7 +91,7 @@ if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
$sortby = $1;
$sortby = "LOWER($sortby)"
if $sortby eq 'username';
- push @extra_sql, "$sortby IS NOT NULL"
+ push @extra_sql, "$sortby IS NOT NULL" #XXX search_hash
if $sortby eq 'uid' || $sortby eq 'seconds' || $sortby eq 'last_login';
$orderby = "ORDER BY $sortby";
}
@@ -166,16 +156,11 @@ if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
}
} elsif ( $cgi->param('magic') =~ /^advanced$/ ) {
+
$orderby = "";
- if ( $cgi->param('agentnum') =~ /^(\d+)$/ and $1 ) {
- push @extra_sql, "agentnum = $1";
- }
+ $search_hash{'pkgpart'} = [ $cgi->param('pkgpart') ];
- my $pkgpart = join (' OR cust_pkg.pkgpart=',
- grep {$_} map { /^(\d+)$/; } ($cgi->param('pkgpart')));
- push @extra_sql, '(cust_pkg.pkgpart=' . $pkgpart . ')' if $pkgpart;
-
foreach my $field (qw( last_login last_logout )) {
my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi, $field);
@@ -201,11 +186,9 @@ if ( $cgi->param('magic') =~ /^(all|unlinked)$/ ) {
$orderby ||= "ORDER BY svcnum";
-} elsif ( $cgi->param('popnum') =~ /^(\d+)$/ ) {
- push @extra_sql, "popnum = $1";
+} elsif ( $cgi->param('popnum') ) {
$orderby = "ORDER BY LOWER(username)";
-} elsif ( $cgi->param('svcpart') =~ /^(\d+)$/ ) {
- push @extra_sql, "svcpart = $1";
+} elsif ( $cgi->param('svcpart') ) {
$orderby = "ORDER BY uid";
#$orderby = "ORDER BY svcnum";
} else {
@@ -260,40 +243,10 @@ $align .= FS::UI::Web::cust_aligns();
push @color, FS::UI::Web::cust_colors();
push @style, FS::UI::Web::cust_styles();
-my $addl_from = ' LEFT JOIN cust_svc USING ( svcnum ) '.
- ' LEFT JOIN part_svc USING ( svcpart ) '.
- ' LEFT JOIN cust_pkg USING ( pkgnum ) '.
- ' LEFT JOIN cust_main USING ( custnum ) ';
-
-#here is the agent virtualization
-push @extra_sql, $FS::CurrentUser::CurrentUser->agentnums_sql(
- 'null_right' => 'View/link unlinked services'
- );
-
-my $extra_sql =
- scalar(@extra_sql)
- ? ' WHERE '. join(' AND ', @extra_sql )
- : '';
-
-my $count_query = "SELECT COUNT(*) FROM svc_acct $addl_from $extra_sql";
-#if ( keys %svc_acct ) {
-# $count_query .= ' WHERE '.
-# join(' AND ', map "$_ = ". dbh->quote($svc_acct{$_}),
-# keys %svc_acct
-# );
-#}
-
-my $sql_query = {
- 'table' => 'svc_acct',
- 'hashref' => {}, # \%svc_acct,
- 'select' => join(', ',
- 'svc_acct.*',
- 'part_svc.svc',
- 'cust_main.custnum',
- FS::UI::Web::cust_sql_fields(),
- ),
- 'extra_sql' => "$extra_sql $orderby",
- 'addl_from' => $addl_from,
-};
+$search_hash{'order_by'} = $orderby;
+$search_hash{'where'} = \@extra_sql;
+
+my $sql_query = FS::svc_acct->search(\%search_hash);
+my $count_query = delete($sql_query->{'count_query'});
</%init>
diff --git a/httemplate/view/cust_main/packages.html b/httemplate/view/cust_main/packages.html
index dbbdf6797..bd056a31c 100755
--- a/httemplate/view/cust_main/packages.html
+++ b/httemplate/view/cust_main/packages.html
@@ -65,7 +65,9 @@ Current packages
</TD>
<TD ALIGN="right">
- <A HREF="<%$p%>search/report_cust_pkg.html?custnum=<% $cust_main->custnum %>">Package reports</A>
+ <A HREF="<%$p%>search/report_cust_pkg.html?custnum=<% $cust_main->custnum %>">Package reports</A><BR>
+ Service reports:
+ <A HREF="<%$p%>search/report_svc_acct.html?custnum=<% $cust_main->custnum %>">accounts</A>
</TD>
</TR>