X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_bill_event.cgi;h=90c89139c7106e91a563bbb84dbab187b3a525bb;hb=79ae09bffa5efc73ee1195ea06f8c14d399cef36;hp=ada7e43629668feb6fd9091b8f06917b45f441c0;hpb=590603ecaea3184f64530755a76626be8205da49;p=freeside.git
diff --git a/httemplate/search/cust_bill_event.cgi b/httemplate/search/cust_bill_event.cgi
index ada7e4362..90c89139c 100644
--- a/httemplate/search/cust_bill_event.cgi
+++ b/httemplate/search/cust_bill_event.cgi
@@ -64,39 +64,39 @@
%>
<%init>
+my $curuser = $FS::CurrentUser::CurrentUser;
+
die "access denied"
- unless $FS::CurrentUser::CurrentUser->access_right('Billing event reports');
+ unless $curuser->access_right('Billing event reports')
+ or $curuser->access_right('View customer billing events')
+ && $cgi->param('invnum') =~ /^(\d+)$/;
my $title = $cgi->param('failed')
? 'Failed invoice events'
: 'Invoice events';
-my @search = ();
+my %search = ();
if ( $cgi->param('agentnum') && $cgi->param('agentnum') =~ /^(\d+)$/ ) {
- push @search, "agentnum = $1";
- #my $agent = qsearchs('agent', { 'agentnum' => $1 } );
- #die "unknown agentnum $1" unless $agent;
+ $search{agentnum} = $1;
}
-my($beginning, $ending) = FS::UI::Web::parse_beginning_ending($cgi);
-push @search, "cust_bill_event._date >= $beginning",
- "cust_bill_event._date <= $ending";
+($search{beginning}, $search{ending})
+ = FS::UI::Web::parse_beginning_ending($cgi);
if ( $cgi->param('failed') ) {
- push @search, "statustext != ''",
- "statustext IS NOT NULL",
- "statustext != 'N/A'";
+ $search{failed} = '1';
}
if ( $cgi->param('part_bill_event.payby') =~ /^(\w+)$/ ) {
- push @search, "part_bill_event.payby = '$1'";
+ $search{payby} = $1;
}
-#here is the agent virtualization
-push @search, $FS::CurrentUser::CurrentUser->agentnums_sql;
+if ( $cgi->param('invnum') =~ /^(\d+)$/ ) {
+ $search{invnum} = $1;
+}
-my $where = 'WHERE '. join(' AND ', @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 ) '.
@@ -113,7 +113,8 @@ my $sql_query = {
FS::UI::Web::cust_sql_fields(),
),
'hashref' => {},
- 'extra_sql' => "$where ORDER BY _date ASC",
+ 'extra_sql' => $where,
+ 'order_by' => 'ORDER BY _date ASC',
'addl_from' => $join,
};
@@ -121,35 +122,40 @@ my $count_sql = "SELECT COUNT(*) FROM cust_bill_event $join $where";
my $conf = new FS::Conf;
-my $failed = $cgi->param('failed');
+my $html_init = '
+ Invoice events are the deprecated, old-style actions taken o
+n open invoices. See Reports->Billing events->Billing events for current event reports.
';
-my $html_init = join("\n", map {
+$html_init .= join("\n", map {
( my $action = $_ ) =~ s/_$//;
include('/elements/progress-init.html',
$_.'form',
- [ 'action', 'beginning', 'ending', 'failed' ],
+ [ keys(%search) ],
"../misc/${_}invoice_events.cgi",
{ 'message' => "Invoices re-${action}ed" }, #would be nice to show the number of them, but...
$_, #key
),
qq!