X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fcust_event.html;h=241a0267a225c6c371227dd15bce260479c7a9f6;hb=8eb6542c022ac84b125416f3fb0828b278ba600a;hp=715d1ca9aebcc25fd3340fa6c9674af6b9d66a8a;hpb=d57a1feb48c55fecb95502e894575eebb306a58a;p=freeside.git
diff --git a/httemplate/search/cust_event.html b/httemplate/search/cust_event.html
index 715d1ca9a..241a0267a 100644
--- a/httemplate/search/cust_event.html
+++ b/httemplate/search/cust_event.html
@@ -1,4 +1,4 @@
-<% include( 'elements/search.html',
+<& elements/search.html,
'title' => $title,
'html_init' => $html_init,
'menubar' => $menubar,
@@ -62,42 +62,46 @@
#'',
FS::UI::Web::cust_styles(),
],
- )
-%>
+&>
<%once>
my $status_sub = sub {
my $cust_event = shift;
my $status = $cust_event->status;
- $status .= ': '.$cust_event->statustext
+ $status .= ': '. encode_entities($cust_event->statustext)
if $cust_event->statustext;
my $part_event = $cust_event->part_event;
- if ( $part_event->eventtable eq 'cust_bill' && $part_event->templatename ) {
- my $alt_templatename = $part_event->templatename;
- my $alt_link = "$alt_templatename-". $cust_event->tablenum;
+ if ( $part_event->eventtable eq 'cust_bill'
+ && ( $part_event->templatename || $part_event->option('notice_name') )
+ )
+ {
+ my $link = 'invnum='. $cust_event->tablenum;
+ $link .= ';template='. uri_escape($part_event->templatename)
+ if $part_event->templatename;
+ $link .= ';notice_name='. uri_escape($part_event->option('notice_name'))
+ if $part_event->option('notice_name');
my $conf = new FS::Conf;
my $cust_bill = $cust_event->cust_X;
$status .= qq{
- ( view
- | view
- typeset
- | re-print
+ ( view
+ | view typeset
+ | re-print
};
if ( grep { $_ ne 'POST' } $cust_bill->cust_main->invoicing_list ) {
$status .= qq{
- | re-email
+ | re-email
};
}
if ( $conf->exists('hylafax') && length($cust_bill->cust_main->fax) ) {
$status .= qq{
- | re-fax
+ | re-fax
}
}
@@ -148,23 +152,41 @@ die "access denied"
|| $cgi->param('pkgnum') =~ /^(\d+)$/
);
-my $title = $cgi->param('failed') ? 'Failed billing events' : 'Billing events';
+my @statuses = $cgi->multi_param('event_status');
+my $title = 'Billing events';
+if ( $statuses[0] eq 'failed' and !defined($statuses[1]) ) {
+ # tweak the title if we're showing only failed events
+ $title = 'Failed billing events';
+}
my %search = ();
-my @scalars = qw ( agentnum custnum invnum pkgnum failed );
-for my $param ( @scalars ) {
+my @scalars = qw( agentnum status custnum invnum pkgnum failed );
+for my $param (@scalars) {
$search{$param} = scalar( $cgi->param($param) )
if $cgi->param($param);
}
+$search{event_status} = \@statuses;
+
+#lists
+my @lists = qw( eventpart );
+foreach my $param (@lists) {
+ $search{$param} = [ $cgi->param($param) ];
+}
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();
+my $join = FS::cust_event->join_sql() .
+ 'LEFT JOIN cust_location bill_location '.
+ 'ON (cust_main.bill_locationnum = bill_location.locationnum) '.
+ 'LEFT JOIN cust_location ship_location '.
+ 'ON (cust_main.ship_locationnum = ship_location.locationnum)';
+ # warning: does not show the true service address for package events.
+ # the query to do that would be painfully slow.
my $sql_query = {
'table' => 'cust_event',
@@ -177,8 +199,10 @@ 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,
+ 'debug' => 2,
};
my $count_sql = "SELECT COUNT(*) FROM cust_event $join $where";
@@ -203,6 +227,11 @@ my $html_init = join("\n", map {
}
@params #keys %search
),
+ ( map { my $value = encode_entities( join(',', @{ $search{$_} } ) );
+ qq();
+ }
+ @lists
+ ),
qq!!
} qw( print_ email_ fax_ ) ).