diff options
Diffstat (limited to 'httemplate')
-rw-r--r-- | httemplate/misc/email-customers.html | 2 | ||||
-rwxr-xr-x | httemplate/misc/process/bulk_change_pkg.cgi | 2 | ||||
-rw-r--r-- | httemplate/misc/process/email-customers.html | 2 | ||||
-rwxr-xr-x | httemplate/search/477.html | 2 | ||||
-rwxr-xr-x | httemplate/search/cust_bill.html | 2 | ||||
-rw-r--r-- | httemplate/search/cust_bill_event.cgi | 2 | ||||
-rw-r--r-- | httemplate/search/cust_event.html | 2 | ||||
-rwxr-xr-x | httemplate/search/cust_main.html | 2 | ||||
-rwxr-xr-x | httemplate/search/cust_pkg.cgi | 2 | ||||
-rwxr-xr-x | httemplate/search/report_svc_acct.html | 23 | ||||
-rwxr-xr-x | httemplate/search/svc_acct.cgi | 75 | ||||
-rwxr-xr-x | httemplate/view/cust_main/packages.html | 4 |
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> |